From 49fb5dff4e64c84572f9fad27ebd2969705d3eaf Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 10 三月 2025 11:23:06 +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 | 53 +++++++++++++++++++-------
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java | 20 ++++++++--
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java | 2
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 2 +
4 files changed, 58 insertions(+), 19 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index f102abb..f269681 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -2266,4 +2266,6 @@
return chargingOrderService.getNotPaymentChargingOrder();
}
+
+
}
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 e50aeb3..9910897 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
@@ -648,21 +648,19 @@
long times = rechargeAmount1.divide(s_total_amount, 0, RoundingMode.DOWN).longValue();
if(times > m){
//充电时间跨度两个计费策略,需要继续对下一个策略进行计算
- serviceCharge = s_server_amount.multiply(new BigDecimal(m));
+ serviceCharge = serviceCharge.add(s_server_amount.multiply(new BigDecimal(m)));
rechargeAmount1 = rechargeAmount1.subtract(s_total_amount.multiply(new BigDecimal(m)));
- if(null != discount){
- discountAmount = discountAmount.add(serviceCharge.multiply(new BigDecimal(1).subtract(discount)));
- }
nowTimeMillis = null;
}else{
- serviceCharge = s_server_amount.multiply(new BigDecimal(times));
- if(null != discount){
- discountAmount = discountAmount.add(serviceCharge.multiply(new BigDecimal(1).subtract(discount)));
- }
+ serviceCharge = serviceCharge.add(s_server_amount.multiply(new BigDecimal(times)));
break;
}
}
}
+ if(null != discount){
+ discountAmount = serviceCharge.multiply(new BigDecimal(1).subtract(discount));
+ }
+
if(discountAmount.compareTo(BigDecimal.ZERO) >= 0){
//计算会员最大优惠金额
TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
@@ -673,9 +671,12 @@
}
}
discountAmount = discountAmount.setScale(4, RoundingMode.HALF_EVEN);
+ if(discountAmount.compareTo(BigDecimal.ZERO) >= 0){
+ data.setChargeNum(data.getChargeNum() - 1);
+ appUserVipDetailClient.updateAppUserVipDetail(data);
+ }
}
}
-
//机子上显示的金额为用户充值的金额+会员折扣金额
BigDecimal account_balance = chargingOrder.getRechargeAmount().add(discountAmount).setScale(4, RoundingMode.HALF_EVEN);
@@ -924,6 +925,18 @@
BigDecimal refund_fee = new BigDecimal(null == refund_fee1 ? "0" : refund_fee1.toString()).divide(new BigDecimal(100));
chargingOrderRefund.setRefundFee(refund_fee);
chargingOrderRefundService.updateById(chargingOrderRefund);
+ //回退会员折扣次数
+ if(chargingOrder.getVipDiscountAmount().compareTo(BigDecimal.ZERO) > 0){
+ TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
+ GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
+ getAppUserVipDetail.setAppUserId(chargingOrder.getAppUserId());
+ getAppUserVipDetail.setVipId(appUser.getVipId());
+ TAppUserVipDetail data = appUserVipDetailClient.getAppUserVipDetail(getAppUserVipDetail).getData();
+ if(null != data){
+ data.setChargeNum(data.getChargeNum() + 1);
+ appUserVipDetailClient.updateAppUserVipDetail(data);
+ }
+ }
}
}
if(2 == rechargePaymentType){
@@ -935,6 +948,19 @@
RefundResp resp = aliPaymentClient.refund(dto).getData();
if(null != resp){
chargingOrderRefundService.save(chargingOrderRefund);
+ //回退会员折扣次数
+ if(chargingOrder.getVipDiscountAmount().compareTo(BigDecimal.ZERO) > 0){
+ TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
+ GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
+ getAppUserVipDetail.setAppUserId(chargingOrder.getAppUserId());
+ getAppUserVipDetail.setVipId(appUser.getVipId());
+ TAppUserVipDetail data = appUserVipDetailClient.getAppUserVipDetail(getAppUserVipDetail).getData();
+ if(null != data){
+ data.setChargeNum(data.getChargeNum() + 1);
+ appUserVipDetailClient.updateAppUserVipDetail(data);
+ }
+ }
+
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
@@ -2075,10 +2101,10 @@
if(null == chargingOrder){
return R.ok();
}
-// Integer status = chargingOrder.getStatus();
-// if(status == 5){
-// return R.ok();
-// }
+ Integer status = chargingOrder.getStatus();
+ if(status == 5){
+ return R.ok();
+ }
//如果使用优惠券需要判断优惠券是否满足使用条件
//根据实际的充电金额计算退款金额 退回费用=(原金额/总金额)*(总金额-实际充电金额)
@@ -3728,7 +3754,6 @@
chargingOrder.setStatus(2);
chargingOrder.setPayTime(LocalDateTime.now());
chargingOrder.setChargeAmount(chargingOrder.getRechargeAmount());
- chargingOrder.setVipDiscountAmount(BigDecimal.ZERO);
this.save(chargingOrder);
Integer accountingStrategyId = tChargingGun.getAccountingStrategyId();
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
index 27ccbfa..e6d49d2 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
@@ -344,17 +344,29 @@
@ApiOperation(value = "购买会员", tags = {"小程序-个人中心"})
@GetMapping("/vipInfo/pay")
public Object vipInfoPay(@RequestParam("vipId")Integer vipId,@RequestParam("buyType") Integer buyType,
- @RequestParam("payType") Integer payType
- ) {
-
+ @RequestParam("payType") Integer payType) {
+
+ LocalDateTime now = LocalDateTime.now();
TVip byId = vipService.getById(vipId);
if (byId==null){
return R.ok("当前会员不存在,请刷新后重试。");
}
+ if(byId.getReveal() == 0){
+ return R.ok("无效的会员");
+ }
+ if(1 == buyType && byId.getMonthlyCardDiscountReveal() == 0){
+ return R.ok("无效的会员");
+ }
+ if(2 == buyType && byId.getSeasonCardDiscountReveal() == 0){
+ return R.ok("无效的会员");
+ }
+ if(3 == buyType && byId.getAnnualCardReveal() == 0){
+ return R.ok("无效的会员");
+ }
+
BigDecimal payMoney = BigDecimal.ZERO;
BigDecimal discountMoney = BigDecimal.ZERO;
BigDecimal discount = BigDecimal.ZERO;
- LocalDateTime now = LocalDateTime.now();
switch (buyType){
case 1:
if (byId.getMonthlyCardDiscountStart()!=null&&(now.isAfter(byId.getMonthlyCardDiscountStart())&&now.isBefore(byId.getMonthlyCardDiscountEnd()))){
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java
index ef7f4b5..47fb78a 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java
@@ -124,7 +124,7 @@
paymentOrder.setAmount(shopOrder.getPaymentAmount());
paymentOrder.setOpenId(user.getWxOpenid());
paymentOrder.setDescription("购买会员");
- return AjaxResult.success(wxPaymentClient.orderPay(paymentOrder).getData());
+ return AjaxResult.success(wxPaymentClient.orderPay(paymentOrder).getData());
}else {
AliPaymentReq req = new AliPaymentReq();
req.setOutTradeNo(shopOrder.getCode());
--
Gitblit v1.7.1