From 9a1173507d06c59a7c02e92ad083073e0036eadc Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 26 九月 2024 18:52:35 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |  137 ++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 120 insertions(+), 17 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index 3d0b7e4..7fabc18 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -51,10 +51,8 @@
 import com.ruoyi.other.api.domain.TGoods;
 import com.ruoyi.order.vo.ChargingOrderListInfoVO;
 import com.ruoyi.other.api.domain.TIntegralRule;
-import com.ruoyi.other.api.feignClient.IntegralRuleClient;
-import com.ruoyi.other.api.feignClient.OtherClient;
-import com.ruoyi.other.api.feignClient.RoleSiteClient;
-import com.ruoyi.other.api.feignClient.UserSiteClient;
+import com.ruoyi.other.api.domain.TVip;
+import com.ruoyi.other.api.feignClient.*;
 import com.ruoyi.payment.api.feignClient.AliPaymentClient;
 import com.ruoyi.payment.api.feignClient.WxPaymentClient;
 import com.ruoyi.payment.api.model.RefundReq;
@@ -70,6 +68,7 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
@@ -181,6 +180,9 @@
 
 	@Resource
 	private IntegralRuleClient integralRuleClient;
+	
+	@Resource
+	private VipClient vipClient;
 
 	//计数器
 	private Map<String, Integer> counter_map = new HashMap<>();
@@ -650,7 +652,7 @@
 				model.setOut_trade_no(chargingOrder.getCode());
 				model.setOut_refund_no(chargingOrderRefund.getRefundCode());
 				model.setReason("充电失败,取消充电订单");
-				model.setNotify_url("http://221.182.45.100:9000/order/t-charging-order/chargingOrderStartupFailureWxRefund");
+				model.setNotify_url("/order/t-charging-order/chargingOrderStartupFailureWxRefund");
 				WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount();
 				amount.setRefund(rechargeAmount.multiply(new BigDecimal(100)).intValue());
 				amount.setTotal(rechargeAmount.multiply(new BigDecimal(100)).intValue());
@@ -827,13 +829,24 @@
 			String inviteUsersToEarnPoints = integralRule.getInviteUsersToEarnPoints();
 			JSONObject jsonObject = JSON.parseObject(inviteUsersToEarnPoints);
 			Integer num1 = jsonObject.getInteger("num1");
+			
+			TAppUser appUser1 = appUserClient.getUserById(appUser.getInviteUserId()).getData();
+			if(null != appUser1.getVipId()){
+				TVip vip = vipClient.getInfo(appUser1.getVipId()).getData();
+				Integer doubleIntegration = vip.getDoubleIntegration();
+				//双倍积分
+				if(1 == doubleIntegration){
+					num1 *= 2;
+				}
+			}
+			
 			GetInviteUser query = new GetInviteUser();
-			query.setAppUserId(appUser.getInviteUserId());
+			query.setAppUserId(appUser1.getId());
 			query.setBeInvitedAppUserId(chargingOrder.getAppUserId());
 			TInviteUser inviteUser = inviteUserClient.getInviteUser(query).getData();
 			if(null == inviteUser){
 				inviteUser = new TInviteUser();
-				inviteUser.setAppUserId(appUser.getInviteUserId());
+				inviteUser.setAppUserId(appUser1.getId());
 				inviteUser.setBeInvitedAppUserId(chargingOrder.getAppUserId());
 				inviteUser.setAward(num1);
 				inviteUser.setCreateTime(LocalDateTime.now());
@@ -842,11 +855,10 @@
 				inviteUser.setAward(num1);
 				inviteUserClient.updateInviteUser(inviteUser);
 			}
-			TAppUser appUser1 = appUserClient.getUserById(appUser.getInviteUserId()).getData();
 			TAppUserIntegralChange appUserIntegralChange = new TAppUserIntegralChange();
 			String code = Double.valueOf(Math.random() * 1000).intValue() + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
 			appUserIntegralChange.setCode(code);
-			appUserIntegralChange.setAppUserId(appUser.getInviteUserId());
+			appUserIntegralChange.setAppUserId(appUser1.getId());
 			appUserIntegralChange.setChangeType(5);
 			appUserIntegralChange.setHistoricalIntegral(appUser1.getPoints());
 			appUserIntegralChange.setCurrentIntegral(appUser1.getPoints() + num1);
@@ -894,7 +906,33 @@
 		chargingOrder.setStatus(5);
 		chargingOrder.setPaymentAmount(payAmount);
 		this.updateById(chargingOrder);
-
+		
+		//添加积分
+		TIntegralRule integralRule = integralRuleClient.getSet().getData();
+		if(null != integralRule){
+			TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
+			Integer num1 = JSON.parseObject(integralRule.getChargeCredit()).getInteger("num1");
+			Integer integral = payAmount.multiply(new BigDecimal(num1)).intValue();
+			if(null != appUser.getVipId()){
+				TVip vip = vipClient.getInfo(appUser.getVipId()).getData();
+				Integer doubleIntegration = vip.getDoubleIntegration();
+				//双倍积分
+				if(1 == doubleIntegration){
+					integral *= 2;
+				}
+			}
+			
+			TAppUserIntegralChange appUserIntegralChange = new TAppUserIntegralChange();
+			appUserIntegralChange.setAppUserId(appUser.getId());
+			appUserIntegralChange.setChangeType(2);
+			appUserIntegralChange.setHistoricalIntegral(appUser.getPoints());
+			appUser.setPoints(appUser.getPoints() + integral);
+			appUserIntegralChange.setCurrentIntegral(appUser.getPoints());
+			appUserIntegralChange.setCreateTime(LocalDateTime.now());
+			appUserClient.updateAppUser(appUser);
+			appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange);
+		}
+		
 		//计算优惠券
 		if(null != chargingOrder.getAppCouponId()){
 			//判断实际充电金额是否满足优惠券使用条件,如果不满足则不适用优惠券。
@@ -989,6 +1027,7 @@
 
 		}
 
+		
 	}
 
 
@@ -1584,7 +1623,7 @@
 
 		//计算费用,处理退款
 		endCharge(chargingOrder);
-
+		
 		//处理推荐奖励(被推荐首单奖励)
 		TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
 		long count = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId())
@@ -1594,13 +1633,24 @@
 			String inviteUsersToEarnPoints = integralRule.getInviteUsersToEarnPoints();
 			JSONObject jsonObject = JSON.parseObject(inviteUsersToEarnPoints);
 			Integer num1 = jsonObject.getInteger("num1");
+			
+			TAppUser appUser1 = appUserClient.getUserById(appUser.getInviteUserId()).getData();
+			if(null != appUser1.getVipId()){
+				TVip vip = vipClient.getInfo(appUser1.getVipId()).getData();
+				Integer doubleIntegration = vip.getDoubleIntegration();
+				//双倍积分
+				if(1 == doubleIntegration){
+					num1 *= 2;
+				}
+			}
+			
 			GetInviteUser query = new GetInviteUser();
-			query.setAppUserId(appUser.getInviteUserId());
+			query.setAppUserId(appUser1.getId());
 			query.setBeInvitedAppUserId(chargingOrder.getAppUserId());
 			TInviteUser inviteUser = inviteUserClient.getInviteUser(query).getData();
 			if(null == inviteUser){
 				inviteUser = new TInviteUser();
-				inviteUser.setAppUserId(appUser.getInviteUserId());
+				inviteUser.setAppUserId(appUser1.getId());
 				inviteUser.setBeInvitedAppUserId(chargingOrder.getAppUserId());
 				inviteUser.setAward(num1);
 				inviteUser.setCreateTime(LocalDateTime.now());
@@ -1609,20 +1659,20 @@
 				inviteUser.setAward(num1);
 				inviteUserClient.updateInviteUser(inviteUser);
 			}
-			TAppUser appUser1 = appUserClient.getUserById(appUser.getInviteUserId()).getData();
 			TAppUserIntegralChange appUserIntegralChange = new TAppUserIntegralChange();
 			String code = Double.valueOf(Math.random() * 1000).intValue() + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
 			appUserIntegralChange.setCode(code);
-			appUserIntegralChange.setAppUserId(appUser.getInviteUserId());
+			appUserIntegralChange.setAppUserId(appUser1.getId());
 			appUserIntegralChange.setChangeType(5);
 			appUserIntegralChange.setHistoricalIntegral(appUser1.getPoints());
 			appUserIntegralChange.setCurrentIntegral(appUser1.getPoints() + num1);
 			appUserIntegralChange.setCreateTime(LocalDateTime.now());
 			appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange);
-
+			
 			appUser1.setPoints(appUser1.getPoints() + num1);
 			appUserClient.updateAppUser(appUser1);
 		}
+		
 	}
 
 	/**
@@ -1705,6 +1755,8 @@
 	}
 
 
+	@Resource
+	private TShoppingOrderService shoppingOrderService;
 	@Override
 	public R payRefund(PayOrderRefundDto payOrderQueryDto) {
 			if (payOrderQueryDto.getType()==1){
@@ -1762,10 +1814,61 @@
 
 
 			}
+			if (payOrderQueryDto.getType()==2){
+				TShoppingOrder tChargingOrder = shoppingOrderService.getById(payOrderQueryDto.getOrderId());
+				TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund();
+				chargingOrderRefund.setChargingOrderId(tChargingOrder.getId());
+				chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount());
+				chargingOrderRefund.setRefundStatus(1);
+				chargingOrderRefund.setPayType(tChargingOrder.getPaymentType());
+				chargingOrderRefund.setRefundTime(LocalDateTime.now());
+				chargingOrderRefund.setCode(tChargingOrder.getCode());
+				SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+				chargingOrderRefund.setRefundCode("GDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue()));
+				chargingOrderRefund.setRefundTitle("后台退款");
+				chargingOrderRefund.setRefundContent("后台退款");
+				chargingOrderRefund.setRefundReason("后台退款");
+				chargingOrderRefund.setRefundRemark("后台退款");
+				chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
+				chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount());
+
+				if(1 == tChargingOrder.getPaymentType()){
+					WxPaymentRefundModel model = new WxPaymentRefundModel();
+					model.setOut_trade_no(tChargingOrder.getCode());
+					model.setOut_refund_no(chargingOrderRefund.getRefundCode());
+					model.setTransaction_id(tChargingOrder.getSerialNumber());
+					model.setReason("取消订单");
+					model.setNotify_url("http://221.182.45.100:9000/order/t-shopping-order/cancelShoppingOrderWxRefund");
+					WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount();
+					amount.setRefund(payOrderQueryDto.getRefundAmount().multiply(new BigDecimal(100)).intValue());
+					amount.setTotal(tChargingOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue());
+					amount.setCurrency("CNY");
+					model.setAmount(amount);
+					R<String> orderR = wxPaymentClient.refundOrderR(model);
+					if(200 == orderR.getCode()){
+						chargingOrderRefundService.save(chargingOrderRefund);
+					}
+				}
+
+				if(2 == tChargingOrder.getPaymentType()){
+					RefundReq dto = new RefundReq();
+					dto.setOutTradeNo(tChargingOrder.getCode());
+					dto.setOutRequestNo(tChargingOrder.getCode());
+					dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString());
+					dto.setRefundReason("取消订单");
+					RefundResp resp = aliPaymentClient.refund(dto).getData();
+					if(null != resp){
+						SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-DDTHH:mm:ss+TIMEZONE");
+						chargingOrderRefundService.save(chargingOrderRefund);
+
+					}
+				}
+
+			}
 
 
 
-		return null;
+		return R.ok();
 	}
 
 

--
Gitblit v1.7.1