ExpansionOrderImpl.java 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package com.fdkankan.ucenter.pay.strategy.impl;
  2. import com.fdkankan.ucenter.entity.CameraDetail;
  3. import com.fdkankan.ucenter.entity.CameraSpace;
  4. import com.fdkankan.ucenter.entity.ExpansionOrder;
  5. import com.fdkankan.ucenter.pay.strategy.OrderStrategy;
  6. import com.fdkankan.ucenter.service.ICameraDetailService;
  7. import com.fdkankan.ucenter.service.ICameraSpaceService;
  8. import com.fdkankan.ucenter.service.IExpansionOrderService;
  9. import com.fdkankan.ucenter.service.ISceneProService;
  10. import lombok.extern.log4j.Log4j2;
  11. import org.joda.time.DateTime;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Component;
  14. @Log4j2
  15. @Component
  16. public class ExpansionOrderImpl implements OrderStrategy {
  17. @Autowired
  18. private IExpansionOrderService expansionOrderService;
  19. @Autowired
  20. private ICameraSpaceService cameraSpaceService;
  21. @Autowired
  22. private ICameraDetailService cameraDetailService;
  23. @Autowired
  24. private ISceneProService sceneProService;
  25. @Override
  26. public void handleOrder(String orderSn, String tradeNo, String openId, int paymentTypeName, Long spaceId) throws Exception {
  27. ExpansionOrder expansionOrder = expansionOrderService.getByOrderSnNoPay(orderSn);
  28. if (expansionOrder == null) {
  29. log.error("找不到订单:" + orderSn);
  30. throw new Exception("找不到订单,out_trade_no错误");
  31. }
  32. //1表示充值,0表示系统赠送,2表示升级套餐
  33. int status = 1;
  34. if(spaceId == null){
  35. status = 2;
  36. }
  37. // 更新扩容订单
  38. boolean result = expansionOrderService.paySuccessExpansionOrder(orderSn, tradeNo, paymentTypeName, status);
  39. if (!result){
  40. log.error("更新扩容订单失败");
  41. throw new Exception("更新扩容订单失败");
  42. }
  43. CameraSpace cameraSpaceEntity = new CameraSpace();
  44. if(spaceId == null){
  45. //新的容量套餐方案
  46. cameraSpaceService.removeByCameraId(expansionOrder.getCameraId());
  47. cameraSpaceEntity = cameraSpaceService.saveByExpansionOrder(expansionOrder);
  48. CameraDetail detailEntity = cameraDetailService.getByCameraId(expansionOrder.getCameraId());
  49. detailEntity.setTotalSpace(cameraSpaceEntity.getSpace());
  50. cameraDetailService.updateById(detailEntity);
  51. //sceneProService.lockOrUnLockBySpace(detailEntity,detailEntity.getCameraId() ,1);
  52. }else {
  53. cameraSpaceEntity = cameraSpaceService.getById(spaceId);
  54. DateTime date = null;
  55. if(expansionOrder.getMonth() == 12){
  56. date = new DateTime(cameraSpaceEntity.getSpaceEndTime()).plusYears(1);
  57. if(cameraSpaceEntity.getSpaceEndTime().getYear() % 4 == 0){
  58. date.plusDays(1);
  59. }
  60. }else {
  61. date = new DateTime(cameraSpaceEntity.getSpaceEndTime()).plusDays(expansionOrder.getMonth() * 31);
  62. }
  63. cameraSpaceEntity.setSpaceEndTime(date.toDate());
  64. cameraSpaceEntity.setOrderSn(cameraSpaceEntity.getOrderSn() + "," + orderSn);
  65. cameraSpaceService.updateById(cameraSpaceEntity);
  66. }
  67. }
  68. @Override
  69. public String getType() {
  70. return "expansion";
  71. }
  72. }