From d2230c638cc57b7dc4fa4570e79cbc93107926b0 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 24 十月 2024 15:44:38 +0800
Subject: [PATCH] 合并代码
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 232 +++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 148 insertions(+), 84 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 521ff24..be18d9b 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
@@ -889,57 +889,48 @@
//处理用户标签数据
List<TUserTag> data = userTagClient.getAllUserTag().getData();
//累计充电次数
- long count1 = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId())
- .eq(TChargingOrder::getRechargePaymentStatus, 2).isNotNull(TChargingOrder::getPaymentAmount).eq(TChargingOrder::getDelFlag, 0));
List<TUserTag> userTagList1 = data.stream().filter(s -> s.getStandardCondition() == 1).collect(Collectors.toList());
- int old_times = 0;
- Integer userTagId = null;
for (TUserTag tUserTag : userTagList1) {
Integer times = JSON.parseObject(tUserTag.getConditions()).getInteger("times");
- //加上本次充电
- //获取最大值标签
- if((count1 + 1) >= times && old_times < times){
- userTagId = tUserTag.getId();
- old_times = times;
- }
- }
- if(null != userTagId){
TAppUserTag appUserTag = new TAppUserTag();
appUserTag.setAppUserId(chargingOrder.getAppUserId());
- appUserTag.setUserTagId(userTagId);
+ appUserTag.setUserTagId(tUserTag.getId());
TAppUserTag data1 = appUserTagClient.getUserTag(appUserTag).getData();
- if(null == data1){
+
+ String start = tUserTag.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ String end = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ long count1 = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId())
+ .eq(TChargingOrder::getRechargePaymentStatus, 2).between(TChargingOrder::getStartTime, start, end).eq(TChargingOrder::getDelFlag, 0));
+ if(null == data1 && count1 >= times){
data1 = new TAppUserTag();
data1.setAppUserId(chargingOrder.getAppUserId());
- data1.setUserTagId(userTagId);
+ data1.setUserTagId(tUserTag.getId());
data1.setCreateTime(LocalDateTime.now());
appUserTagClient.addUserTag(data1);
}
}
- //充电评率
+ //充电频率
List<TUserTag> userTagList2 = data.stream().filter(s -> s.getStandardCondition() == 2).collect(Collectors.toList());
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (TUserTag tUserTag : userTagList2) {
TAppUserTag appUserTag = new TAppUserTag();
appUserTag.setAppUserId(chargingOrder.getAppUserId());
appUserTag.setUserTagId(tUserTag.getId());
TAppUserTag data1 = appUserTagClient.getUserTag(appUserTag).getData();
- if(null == data1){
- Integer day = JSON.parseObject(tUserTag.getConditions()).getInteger("day");
- Integer times = JSON.parseObject(tUserTag.getConditions()).getInteger("times");
- Calendar start = Calendar.getInstance();
- start.set(Calendar.DAY_OF_YEAR, start.get(Calendar.DAY_OF_YEAR) + day);
- count1 = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId())
- .eq(TChargingOrder::getRechargePaymentStatus, 2).isNotNull(TChargingOrder::getPaymentAmount)
- .between(TChargingOrder::getStartTime, sdf.format(start.getTime()), sdf.format(new Date())).eq(TChargingOrder::getDelFlag, 0));
- //加上本次充电
- if(count1 >= times){
- data1 = new TAppUserTag();
- data1.setAppUserId(chargingOrder.getAppUserId());
- data1.setUserTagId(tUserTag.getId());
- data1.setCreateTime(LocalDateTime.now());
- appUserTagClient.addUserTag(data1);
- }
+
+ Integer day = JSON.parseObject(tUserTag.getConditions()).getInteger("day");
+ Integer times = JSON.parseObject(tUserTag.getConditions()).getInteger("times");
+ LocalDateTime endTime = LocalDateTime.now();
+ endTime.plusDays(day);
+ String start = tUserTag.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ String end = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ long count1 = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId())
+ .eq(TChargingOrder::getRechargePaymentStatus, 2).between(TChargingOrder::getStartTime, start, end).eq(TChargingOrder::getDelFlag, 0));
+ if(null == data1 && count1 >= times){
+ data1 = new TAppUserTag();
+ data1.setAppUserId(chargingOrder.getAppUserId());
+ data1.setUserTagId(tUserTag.getId());
+ data1.setCreateTime(LocalDateTime.now());
+ appUserTagClient.addUserTag(data1);
}
}
}
@@ -1073,6 +1064,7 @@
endTime2 = split[1];
}
PageInfo<ChargingOrderVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
+ PageInfo<ChargingOrderVO> pageInfo1 = new PageInfo<>(1,9999999);
if (StringUtils.hasLength(dto.getPhone())){
List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData();
@@ -1083,12 +1075,15 @@
dto.setUserIds(data);
}
List<ChargingOrderVO> list = this.baseMapper.chargingOrder(pageInfo,dto,startTime1,startTime2,endTime1,endTime2);
+ List<ChargingOrderVO> list1 = this.baseMapper.chargingOrder(pageInfo1,dto,startTime1,startTime2,endTime1,endTime2);
BigDecimal total = new BigDecimal("0");
long time = 0L;
BigDecimal income = new BigDecimal("0");
BigDecimal electronicMoney = new BigDecimal("0");
BigDecimal serviceMoney = new BigDecimal("0");
for (ChargingOrderVO chargingOrderVO : list) {
+ chargingOrderVO.setCommissionAmount(chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.006")));
+ chargingOrderVO.setPlatFormMoney(chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.006")));
chargingOrderVO.setUid(chargingOrderVO.getId()+"");
TChargingGun data3 = chargingGunClient.getChargingGunById(chargingOrderVO.getChargingGunId()).getData();
TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderVO.getChargingPileId()).getData();
@@ -1100,10 +1095,6 @@
}
if (data2!=null && data3!=null){
chargingOrderVO.setTerminalName(data2.getName()+"-"+data3.getName());
-
- }
- if (chargingOrderVO.getChargingCapacity()!=null){
- total = total.add(chargingOrderVO.getElectricity());
}
// 充电订单 明细记录
List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>()
@@ -1112,14 +1103,6 @@
if (data5!=null){
long l = data5.getCumulative_charging_time() * 60L;
chargingOrderVO.setChargingSecond(l);
- time+=l;
- }
- electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence());
- serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge());
-
- income = income.add(chargingOrderVO.getServiceCharge().add(chargingOrderVO.getElectrovalence()));
- if (chargingOrderVO.getRefundAmount()!=null){
- income = income.subtract(chargingOrderVO.getRefundAmount());
}
// 充电时段数
int size = chargingOrderId.size();
@@ -1140,6 +1123,27 @@
}
}
+ for (ChargingOrderVO chargingOrderVO : list1) {
+ if (chargingOrderVO.getChargingCapacity()!=null){
+ total = total.add(chargingOrderVO.getElectricity());
+ }
+ // 充电订单 明细记录
+ List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>()
+ .eq("charging_order_id", chargingOrderVO.getId()));
+ UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderVO.getCode()).getData();
+ if (data5!=null){
+ long l = data5.getCumulative_charging_time() * 60L;
+ chargingOrderVO.setChargingSecond(l);
+ time+=l;
+ }
+ electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence());
+ serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge());
+
+ income = income.add(chargingOrderVO.getOrderAmount());
+
+
+
+ }
tCharingOrderVO.setTotal(total);
tCharingOrderVO.setTime(time);
tCharingOrderVO.setIncome(income);
@@ -1154,6 +1158,16 @@
public R<PageInfo<PayOrderDto>> payOrderQuery(PayOrderQueryDto payOrderQueryDto) {
PageInfo<PayOrderDto> pageInfo = new PageInfo<>(payOrderQueryDto.getPageCurr(),payOrderQueryDto.getPageSize());
List<PayOrderDto> list = this.baseMapper.payOrderQuery(pageInfo,payOrderQueryDto);
+ for (PayOrderDto payOrderDto : list) {
+ if (payOrderDto.getType()==2||payOrderDto.getType()==3){
+ payOrderDto.setFinalAmount(payOrderDto.getOrderAmount());
+ }
+ if (payOrderDto.getType()==1&&payOrderDto.getStatus()==3){
+ payOrderDto.setFinalAmount(payOrderDto.getRechargeAmount());
+ payOrderDto.setOrderAmount(payOrderDto.getRechargeAmount());
+ payOrderDto.setPaymentAmount(payOrderDto.getRechargeAmount());
+ }
+ }
pageInfo.setRecords(list);
return R.ok(pageInfo);
}
@@ -1242,7 +1256,7 @@
dto.setUserIds(carIds);
}
}
- if (StringUtils.hasLength(dto.getPhone())){
+ if (StringUtils.hasLength(dto.getLicensePlate())){
List<Long> data = appUserCarClient.getAppUserCarByLicensePlates(dto.getLicensePlate()).getData();
if(data!=null){
if (!data.isEmpty()){
@@ -1260,7 +1274,13 @@
PageInfo<ChargingOrderListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo,dto,startTime1,startTime2,endTime1,endTime2);
for (ChargingOrderListVO chargingOrderListVO : list) {
- chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getResidualAmount()==null?chargingOrderListVO.getPaymentAmount():chargingOrderListVO.getPaymentAmount().subtract(chargingOrderListVO.getResidualAmount()));
+ chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity());
+ chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getPaymentAmount());
+ BigDecimal bigDecimal = new BigDecimal("0.006");
+ if (chargingOrderListVO.getServiceCharge()!=null){
+ chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getServiceCharge().multiply(bigDecimal));
+ }
+ chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getResidualAmount()==null?chargingOrderListVO.getPaymentAmount():chargingOrderListVO.getPaymentAmount());
chargingOrderListVO.setUid(chargingOrderListVO.getId()+"");
List<Integer> integers = new ArrayList<>();
integers.add(chargingOrderListVO.getSiteId());
@@ -1301,7 +1321,9 @@
carId.add(chargingOrderListVO.getAppUserCarId());
if (!carId.isEmpty()){
List<TAppUserCar> data4 = appUserCarClient.getCarByIds(carId).getData();
- if (data4!=null && !data4.isEmpty()) chargingOrderListVO.setLicensePlate(data4.get(0).getLicensePlate());
+ if (data4!=null && !data4.isEmpty()) {
+ chargingOrderListVO.setLicensePlate(data4.get(0).getLicensePlate());
+ }
}
}
chargingOrderListVO.setPhone(data3.getPhone());
@@ -1317,6 +1339,9 @@
BigDecimal gu = new BigDecimal("0");
BigDecimal total = new BigDecimal("0");
for (TChargingOrderAccountingStrategy temp : list2) {
+ if (temp.getChargingCapacity() == null){
+ temp.setChargingCapacity(BigDecimal.ZERO);
+ }
switch (temp.getType()) {
case 1:
jian = jian.add(temp.getChargingCapacity());
@@ -1377,7 +1402,7 @@
BigDecimal ping = new BigDecimal("0");
BigDecimal gu = new BigDecimal("0");
for (ChargingOrderListVO chargingOrderListVO : list1) {
- if (chargingOrderListVO.getChargingCapacity()!=null)electronic = electronic.add(chargingOrderListVO.getChargingCapacity());
+ if (chargingOrderListVO.getChargingCapacity()!=null)electronic = electronic.add(chargingOrderListVO.getElectricity());
if (chargingOrderListVO.getPaymentAmount()!=null)paymentAmount = paymentAmount.add(chargingOrderListVO.getPaymentAmount());
if (chargingOrderListVO.getElectrovalence()!=null)electrovalence = electrovalence.add(chargingOrderListVO.getElectrovalence());
@@ -1466,6 +1491,12 @@
TChargingOrder chargingOrder= this.getById(uid);
ChargingOrderListInfoVO chargingOrderListInfoVO = new ChargingOrderListInfoVO();
+
+ chargingOrderListInfoVO.setStatus(chargingOrder.getStatus());
+ BigDecimal bigDecimal = new BigDecimal("0.006");
+ if (chargingOrder.getServiceCharge()!=null){
+ chargingOrderListInfoVO.setCommissionAmount(chargingOrder.getServiceCharge().multiply(bigDecimal));
+ }
chargingOrderListInfoVO.setElectrovalence(chargingOrder.getElectrovalence());
chargingOrderListInfoVO.setServiceCharge(chargingOrder.getServiceCharge());
if (chargingOrder.getElectrovalence()!=null && chargingOrder.getServiceCharge()!=null){
@@ -1505,6 +1536,13 @@
if (chargingOrder.getCode()!=null){
List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrder.getCode()).getData();
if (data6!=null){
+ for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) {
+ if (uploadRealTimeMonitoringData.getOutput_current()!=null&&
+ uploadRealTimeMonitoringData.getOutput_voltage()!=null){
+ uploadRealTimeMonitoringData.setPower(uploadRealTimeMonitoringData.getOutput_voltage()
+ .multiply(uploadRealTimeMonitoringData.getOutput_current()));
+ }
+ }
if (!data6.isEmpty()){
// 第一条数据soc为开始 最后一条数据soc为结束soc
chargingOrderListInfoVO.setStartSoc(data6.get(0).getSoc().toString());
@@ -1616,11 +1654,6 @@
return;
}
- //计算用户标签
- editUserTag(chargingOrder);
- //用户推荐奖励
- referralReward(chargingOrder);
-
//如果使用优惠券需要判断优惠券是否满足使用条件
//根据实际的充电金额计算退款金额 退回费用=(原金额/总金额)*(总金额-实际充电金额)
//退款金额=优惠券金额+剩余充电金额
@@ -1630,6 +1663,8 @@
//获取订单的计费策略
List<AccountingStrategyDetailOrder> accountingStrategyDetailOrderList = accountingStrategyDetailOrderClient.getAllAccountingStrategyDetailOrder(chargingOrder.getId()).getData();
+
+ //开始处理计费明细数据和优惠数据
chargingOrderAccountingStrategyService.remove(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId()));
for (int i = 0; i < accountingStrategyDetailOrderList.size(); i++) {
Class<? extends TransactionRecordMessageVO> clazz = vo.getClass();
@@ -1672,22 +1707,23 @@
BigDecimal electrovalenc = strategyDetail.getElectrovalence().multiply(sharp_peak_charge).setScale(2, RoundingMode.DOWN);
BigDecimal originalServicePrice = strategyDetail.getServiceCharge().multiply(sharp_peak_charge).setScale(2, RoundingMode.DOWN);
BigDecimal serviceCharge = originalServicePrice;
+ BigDecimal vipDiscountAmount = BigDecimal.ZERO;
//计算优惠金额
if(null != chargingOrder.getVipDiscount()){
+ vipDiscountAmount = serviceCharge.multiply(new BigDecimal(1).subtract(chargingOrder.getVipDiscount())).setScale(2, RoundingMode.DOWN);
serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount()).setScale(2, RoundingMode.DOWN);
}
chargingOrderAccountingStrategy.setChargingCapacity(sharp_peak_charge);
chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc);
chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge);
chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice);
+ chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount);
chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now());
chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy);
- BigDecimal periodElectricPrice = chargingOrderAccountingStrategy.getPeriodElectricPrice();
- BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodOriginalServicePrice();
- periodElectricPrice_total = periodElectricPrice_total.add(periodElectricPrice);
- periodServicePrice_total = periodServicePrice_total.add(periodServicePrice);
- total = total.add(periodElectricPrice.add(periodServicePrice));
+ periodElectricPrice_total = periodElectricPrice_total.add(electrovalenc);
+ periodServicePrice_total = periodServicePrice_total.add(originalServicePrice);
+ total = total.add(electrovalenc.add(originalServicePrice));
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
} catch (InvocationTargetException e) {
@@ -1710,21 +1746,19 @@
//折扣金额
BigDecimal discountAmount = BigDecimal.ZERO;
if(null != chargingOrder.getVipDiscount()){
- //服务费折扣
- discountAmount = periodServicePrice_total.multiply((new BigDecimal(1).subtract(chargingOrder.getVipDiscount())));
- periodServicePrice_total = periodServicePrice_total.multiply(chargingOrder.getVipDiscount());
-
TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
- if(null != appUser.getVipId()){
- //判断会员是否还有充电优惠次数
- GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
- getAppUserVipDetail.setAppUserId(chargingOrder.getAppUserId());
- getAppUserVipDetail.setVipId(appUser.getVipId());
- TAppUserVipDetail data = appUserVipDetailClient.getAppUserVipDetail(getAppUserVipDetail).getData();
- if(null != data && data.getChargeNum() > 0){
- data.setChargeNum(data.getChargeNum() - 1);
- appUserVipDetailClient.updateAppUserVipDetail(data);
- }
+ //判断会员是否还有充电优惠次数
+ GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
+ getAppUserVipDetail.setAppUserId(chargingOrder.getAppUserId());
+ getAppUserVipDetail.setVipId(appUser.getVipId());
+ TAppUserVipDetail data = appUserVipDetailClient.getAppUserVipDetail(getAppUserVipDetail).getData();
+ if(null != data && data.getChargeNum() > 0){
+ data.setChargeNum(data.getChargeNum() - 1);
+ appUserVipDetailClient.updateAppUserVipDetail(data);
+
+ //服务费折扣
+ discountAmount = periodServicePrice_total.multiply((new BigDecimal(1).subtract(chargingOrder.getVipDiscount())));
+ periodServicePrice_total = periodServicePrice_total.multiply(chargingOrder.getVipDiscount());
TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
BigDecimal maximumDeduction = vip.getMaximumDeduction();
@@ -1733,8 +1767,8 @@
discountAmount = maximumDeduction;
}
}
- payAmount = payAmount.subtract(discountAmount);
}
+ payAmount = payAmount.subtract(discountAmount);
TChargingOrder order = new TChargingOrder();
order.setId(chargingOrder.getId());
@@ -1751,7 +1785,6 @@
order.setStatus(5);
order.setOrderAmount(orderAmount);
order.setVipDiscountAmount(discountAmount);
- order.setServiceCharge(periodServicePrice_total);
order.setElectrovalence(periodElectricPrice_total);
order.setChargingCapacity(vo.getTotal_electricity());
order.setElectricity(vo.getTotal_electricity());
@@ -1772,11 +1805,16 @@
refundAmount = refundAmount.add(periodServicePrice_total);
order.setCouponDiscountAmount(periodServicePrice_total);
payAmount = payAmount.subtract(periodServicePrice_total);
+ periodServicePrice_total = BigDecimal.ZERO;
}else{
refundAmount = refundAmount.add(couponDiscountAmount);
order.setCouponDiscountAmount(couponDiscountAmount);
payAmount = payAmount.subtract(couponDiscountAmount);
+ periodServicePrice_total = periodServicePrice_total.subtract(couponDiscountAmount);
}
+
+ appCoupon.setStatus(2);
+ appCouponClient.updateAppCoupon(appCoupon);
}else{
order.setAppCouponId(null);
order.setCouponDiscountAmount(BigDecimal.ZERO);
@@ -1794,11 +1832,16 @@
refundAmount = refundAmount.add(periodServicePrice_total);
order.setCouponDiscountAmount(periodServicePrice_total);
payAmount = payAmount.subtract(periodServicePrice_total);
+ periodServicePrice_total = BigDecimal.ZERO;
}else{
refundAmount = refundAmount.add(divide);
order.setCouponDiscountAmount(divide);
payAmount = payAmount.subtract(divide);
+ periodServicePrice_total = periodServicePrice_total.subtract(divide);
}
+
+ appCoupon.setStatus(2);
+ appCouponClient.updateAppCoupon(appCoupon);
}else{
order.setAppCouponId(null);
order.setCouponDiscountAmount(BigDecimal.ZERO);
@@ -1806,11 +1849,27 @@
}
}
}
+
+ order.setServiceCharge(periodServicePrice_total);
order.setPaymentAmount(payAmount);
order.setRefundAmount(refundAmount);
order.setRefundStatus(1);
this.updateById(order);
chargingOrder = this.getById(order.getId());
+
+ //开始将优惠券优惠的金额添加到明细中
+ BigDecimal couponDiscountAmount = order.getCouponDiscountAmount();
+ if(couponDiscountAmount.compareTo(BigDecimal.ZERO) > 0){
+ List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.list(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, order.getId()));
+ for (TChargingOrderAccountingStrategy chargingOrderAccountingStrategy : list) {
+ BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodServicePrice();
+ BigDecimal multiply = couponDiscountAmount.multiply(periodServicePrice.divide(periodServicePrice_total, new MathContext(4, RoundingMode.HALF_EVEN)));
+ periodServicePrice = periodServicePrice.subtract(multiply);
+ chargingOrderAccountingStrategy.setPeriodServicePrice(periodServicePrice);
+ chargingOrderAccountingStrategy.setCouponDiscountAmount(multiply);
+ }
+ chargingOrderAccountingStrategyService.updateBatchById(list);
+ }
// 将枪状态重置为空闲
TChargingGun chargingGun = new TChargingGun();
@@ -1846,7 +1905,11 @@
appUserClient.updateAppUser(appUser);
appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange);
}
-
+
+ //计算用户标签
+ editUserTag(chargingOrder);
+ //用户推荐奖励
+ referralReward(chargingOrder);
//开始构建退款费用
if(refundAmount.compareTo(BigDecimal.ZERO) > 0){
@@ -1938,7 +2001,7 @@
}
@Override
public List<Map<String, Object>> usersByQuery1(ChargingStatisticsQueryDto statisticsQueryDto) {
- return this.baseMapper.usersByQuery(statisticsQueryDto);
+ return this.baseMapper.usersByQuery1(statisticsQueryDto);
}
@Override
@@ -2002,7 +2065,7 @@
chargingOrderRefund.setRefundTitle("后台退款");
chargingOrderRefund.setRefundContent("后台退款");
chargingOrderRefund.setRefundReason("后台退款");
- chargingOrderRefund.setRefundRemark("后台退款");
+ chargingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark());
chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount());
@@ -2015,7 +2078,7 @@
model.setNotify_url("/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.setTotal(tChargingOrder.getRechargeAmount().multiply(new BigDecimal(100)).intValue());
amount.setCurrency("CNY");
model.setAmount(amount);
R<String> orderR = wxPaymentClient.refundOrderR(model);
@@ -2063,7 +2126,7 @@
chargingOrderRefund.setRefundTitle("后台退款");
chargingOrderRefund.setRefundContent("后台退款");
chargingOrderRefund.setRefundReason("后台退款");
- chargingOrderRefund.setRefundRemark("后台退款");
+ chargingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark());
chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount());
@@ -2583,12 +2646,13 @@
info.setRefundAmount(chargingOrder.getRefundAmount());
LocalDateTime startTime = chargingOrder.getStartTime();
LocalDateTime endTime = chargingOrder.getEndTime();
- info.setStartDay(startTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " 周" + startTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE));
+ info.setStartDay(startTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " " + startTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE));
info.setStartHour(startTime.format(DateTimeFormatter.ofPattern("HH:mm")));
- info.setEndDay(endTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " 周" + endTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE));
+ info.setEndDay(endTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " " + endTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE));
info.setEndHour(endTime.format(DateTimeFormatter.ofPattern("HH:mm")));
- int hour = endTime.getHour() - startTime.getHour();
- int second = endTime.getMinute() - startTime.getMinute();
+ long time = (endTime.toEpochSecond(ZoneOffset.UTC) - startTime.toEpochSecond(ZoneOffset.UTC)) / 60;
+ long hour = time / 60;
+ long second = time % 60;
info.setDuration(0 == hour ? String.format("%s分钟", second) : String.format("%s小时%s分钟", hour, second));
return info;
}
--
Gitblit v1.7.1