| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package com.fdkankan.ucenter.pay.strategy.impl;
- import com.fdkankan.ucenter.entity.CameraDetail;
- import com.fdkankan.ucenter.entity.CameraSpace;
- import com.fdkankan.ucenter.entity.ExpansionOrder;
- import com.fdkankan.ucenter.pay.strategy.OrderStrategy;
- import com.fdkankan.ucenter.service.ICameraDetailService;
- import com.fdkankan.ucenter.service.ICameraSpaceService;
- import com.fdkankan.ucenter.service.IExpansionOrderService;
- import com.fdkankan.ucenter.service.ISceneProService;
- import lombok.extern.log4j.Log4j2;
- import org.joda.time.DateTime;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- @Log4j2
- @Component
- public class ExpansionOrderImpl implements OrderStrategy {
- @Autowired
- private IExpansionOrderService expansionOrderService;
- @Autowired
- private ICameraSpaceService cameraSpaceService;
- @Autowired
- private ICameraDetailService cameraDetailService;
- @Autowired
- private ISceneProService sceneProService;
- @Override
- public void handleOrder(String orderSn, String tradeNo, String openId, int paymentTypeName, Long spaceId) throws Exception {
- ExpansionOrder expansionOrder = expansionOrderService.getByOrderSnNoPay(orderSn);
- if (expansionOrder == null) {
- log.error("找不到订单:" + orderSn);
- throw new Exception("找不到订单,out_trade_no错误");
- }
- //1表示充值,0表示系统赠送,2表示升级套餐
- int status = 1;
- if(spaceId == null){
- status = 2;
- }
- // 更新扩容订单
- boolean result = expansionOrderService.paySuccessExpansionOrder(orderSn, tradeNo, paymentTypeName, status);
- if (!result){
- log.error("更新扩容订单失败");
- throw new Exception("更新扩容订单失败");
- }
- CameraSpace cameraSpaceEntity = new CameraSpace();
- if(spaceId == null){
- //新的容量套餐方案
- cameraSpaceService.removeByCameraId(expansionOrder.getCameraId());
- cameraSpaceEntity = cameraSpaceService.saveByExpansionOrder(expansionOrder);
- CameraDetail detailEntity = cameraDetailService.getByCameraId(expansionOrder.getCameraId());
- detailEntity.setTotalSpace(cameraSpaceEntity.getSpace());
- cameraDetailService.updateById(detailEntity);
- //sceneProService.lockOrUnLockBySpace(detailEntity,detailEntity.getCameraId() ,1);
- }else {
- cameraSpaceEntity = cameraSpaceService.getById(spaceId);
- DateTime date = null;
- if(expansionOrder.getMonth() == 12){
- date = new DateTime(cameraSpaceEntity.getSpaceEndTime()).plusYears(1);
- if(cameraSpaceEntity.getSpaceEndTime().getYear() % 4 == 0){
- date.plusDays(1);
- }
- }else {
- date = new DateTime(cameraSpaceEntity.getSpaceEndTime()).plusDays(expansionOrder.getMonth() * 31);
- }
- cameraSpaceEntity.setSpaceEndTime(date.toDate());
- cameraSpaceEntity.setOrderSn(cameraSpaceEntity.getOrderSn() + "," + orderSn);
- cameraSpaceService.updateById(cameraSpaceEntity);
- }
- }
- @Override
- public String getType() {
- return "expansion";
- }
- }
|