Sfoglia il codice sorgente

取消支付加上判断

july 4 anni fa
parent
commit
1eee652e00

+ 51 - 46
ldt-core/src/main/java/org/springblade/payment/handle/handler/CancelTradeHandle.java

@@ -44,61 +44,66 @@ public class CancelTradeHandle {
 	private IAgentLeagueRecordService agentLeagueRecordService;
 
 	public void handle(SuccessParams successParams) throws ServiceException {
-		Bills bills = successParams.getBills();
-		synchronized (bills.getId().toString().intern()) {
-			FrozenRec frozenRec = frozenRecService.getOne(Wrappers.<FrozenRec>lambdaQuery().eq(FrozenRec::getTradeNo, bills.getId()));
-			UserChannelPoint channelPoint = userChannelPointService.getById(successParams.getChannelId());
+		Bills successParamsBills = successParams.getBills();
+		synchronized (successParams.getBills().getId().toString().intern()) {
 
-			//修改用户冻结余额或积分
-			LoginUser user = loginUserService.getById(bills.getPayId());
-			if (ObjectUtils.isNotEmpty(user) && ObjectUtils.isNotEmpty(frozenRec)) {
-				frozenRec.setFrozenSatus(FrozenSatus.RETURNED_FROZEN);
-				if (Objects.equals(frozenRec.getFrozenType(), FrozenType.POINT)) {
-					user.setChannelPoint(user.getChannelPoint().add(frozenRec.getFrozenNum()));
-					user.setFrozenPoint(user.getFrozenPoint().subtract(frozenRec.getFrozenNum()));
-					if (ObjectUtils.isNotEmpty(channelPoint)) {
-						channelPoint.setAvailable(channelPoint.getAvailable().add(frozenRec.getFrozenNum()));
-						userChannelPointService.saveOrUpdate(channelPoint);
+			Bills bills = billsService.getById(successParamsBills.getId());
+			if (ObjectUtils.isNotEmpty(bills) && !bills.getPayStatus().equals(AppConstant.BillPayStatus.取消付款.name())) {
+
+				FrozenRec frozenRec = frozenRecService.getOne(Wrappers.<FrozenRec>lambdaQuery().eq(FrozenRec::getTradeNo, bills.getId()));
+				UserChannelPoint channelPoint = userChannelPointService.getById(successParams.getChannelId());
+
+				//修改用户冻结余额或积分
+				LoginUser user = loginUserService.getById(bills.getPayId());
+				if (ObjectUtils.isNotEmpty(user) && ObjectUtils.isNotEmpty(frozenRec)) {
+					frozenRec.setFrozenSatus(FrozenSatus.RETURNED_FROZEN);
+					if (Objects.equals(frozenRec.getFrozenType(), FrozenType.POINT)) {
+						user.setChannelPoint(user.getChannelPoint().add(frozenRec.getFrozenNum()));
+						user.setFrozenPoint(user.getFrozenPoint().subtract(frozenRec.getFrozenNum()));
+						if (ObjectUtils.isNotEmpty(channelPoint)) {
+							channelPoint.setAvailable(channelPoint.getAvailable().add(frozenRec.getFrozenNum()));
+							userChannelPointService.saveOrUpdate(channelPoint);
+						}
+					} else if (Objects.equals(frozenRec.getFrozenType(), FrozenType.BALANCE)) {
+						user.setBalance(user.getBalance().add(frozenRec.getFrozenNum()));
+						user.setFrozenBalance(user.getFrozenBalance().subtract(frozenRec.getFrozenNum()));
 					}
-				} else if (Objects.equals(frozenRec.getFrozenType(), FrozenType.BALANCE)) {
-					user.setBalance(user.getBalance().add(frozenRec.getFrozenNum()));
-					user.setFrozenBalance(user.getFrozenBalance().subtract(frozenRec.getFrozenNum()));
 				}
-			}
 
-			if (ObjectUtils.isNotEmpty(frozenRec)) {
-				frozenRecService.saveOrUpdate(frozenRec);
+				if (ObjectUtils.isNotEmpty(frozenRec)) {
+					frozenRecService.saveOrUpdate(frozenRec);
+				}
+				loginUserService.saveOrUpdate(user);
 			}
-			loginUserService.saveOrUpdate(user);
-		}
-		bills.setPayStatus(AppConstant.BillPayStatus.取消付款.name());
-		billsService.saveOrUpdate(bills);
+			bills.setPayStatus(AppConstant.BillPayStatus.取消付款.name());
+			billsService.saveOrUpdate(bills);
 
-		PointBills pointBills = pointBillsService.getById(successParams.getPointBillsId());
-		if (ObjectUtils.isNotEmpty(pointBills)) {
-			pointBills.setPayStatus(AppConstant.BillPayStatus.取消付款.name());
-			pointBillsService.saveOrUpdate(pointBills);
-		}
+			PointBills pointBills = pointBillsService.getById(successParams.getPointBillsId());
+			if (ObjectUtils.isNotEmpty(pointBills)) {
+				pointBills.setPayStatus(AppConstant.BillPayStatus.取消付款.name());
+				pointBillsService.saveOrUpdate(pointBills);
+			}
 
-		BalanceBills balanceBills = balanceBillsService.getById(successParams.getBalanceBillsId());
-		if (ObjectUtils.isNotEmpty(balanceBills)) {
-			balanceBills.setPayStatus(AppConstant.BillPayStatus.取消付款.name());
-			balanceBillsService.saveOrUpdate(balanceBills);
-		}
+			BalanceBills balanceBills = balanceBillsService.getById(successParams.getBalanceBillsId());
+			if (ObjectUtils.isNotEmpty(balanceBills)) {
+				balanceBills.setPayStatus(AppConstant.BillPayStatus.取消付款.name());
+				balanceBillsService.saveOrUpdate(balanceBills);
+			}
 
-		AgentLeagueRecord agentLeagueRecord = agentLeagueRecordService.getOne(Wrappers.<AgentLeagueRecord>lambdaQuery()
-			.eq(AgentLeagueRecord::getTradeNo, successParams.getBills().getId()));
-		if (ObjectUtils.isNotEmpty(agentLeagueRecord)) {
-			agentLeagueRecord.setPayStatus(AppConstant.BillPayStatus.取消付款.name());
-			agentLeagueRecordService.saveOrUpdate(agentLeagueRecord);
-		}
+			AgentLeagueRecord agentLeagueRecord = agentLeagueRecordService.getOne(Wrappers.<AgentLeagueRecord>lambdaQuery()
+				.eq(AgentLeagueRecord::getTradeNo, successParams.getBills().getId()));
+			if (ObjectUtils.isNotEmpty(agentLeagueRecord)) {
+				agentLeagueRecord.setPayStatus(AppConstant.BillPayStatus.取消付款.name());
+				agentLeagueRecordService.saveOrUpdate(agentLeagueRecord);
+			}
 
-		//取消商品订单
-		GoodsBills goodsBills = goodsBillsService.getOne(Condition.getQueryWrapper(new GoodsBills()).lambda().eq(GoodsBills::getBillsId, bills.getId()));
-		if (ObjectUtil.isNotEmpty(goodsBills)) {
-			goodsBills.setPayStatus(AppConstant.BillPayStatus.取消付款.name());
-			goodsBills.setOrderStatus(GoodsConstant.GOODS_STATUS.取消付款.name());
-			goodsBillsService.updateById(goodsBills);
+			//取消商品订单
+			GoodsBills goodsBills = goodsBillsService.getOne(Condition.getQueryWrapper(new GoodsBills()).lambda().eq(GoodsBills::getBillsId, bills.getId()));
+			if (ObjectUtil.isNotEmpty(goodsBills)) {
+				goodsBills.setPayStatus(AppConstant.BillPayStatus.取消付款.name());
+				goodsBills.setOrderStatus(GoodsConstant.GOODS_STATUS.取消付款.name());
+				goodsBillsService.updateById(goodsBills);
+			}
 		}
 	}
 }