From 901843cdf54978385c52f34ff7aff9c7dec4b6ac Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期四, 10 七月 2025 11:36:41 +0800 Subject: [PATCH] 修改定时任务时长 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 120 +++++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 82 insertions(+), 38 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 35a250f..3bff3ab 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,6 +51,7 @@ import com.ruoyi.order.service.TChargingOrderService; import com.ruoyi.order.service.TOrderEvaluateService; import com.ruoyi.order.service.*; +import com.ruoyi.order.util.RedisLock; import com.ruoyi.order.util.mongodb.service.PlatformStartChargingReplyService; import com.ruoyi.order.util.mongodb.service.TransactionRecordService; import com.ruoyi.order.util.mongodb.service.UploadRealTimeMonitoringDataService; @@ -71,10 +72,14 @@ import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; import io.seata.spring.annotation.GlobalTransactional; +import org.redisson.Redisson; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; @@ -221,6 +226,9 @@ private ITChargingOrderSummaryDataService chargingOrderSummaryDataService; @Resource private TOrderAppealService orderAppealService; + + @Autowired + private RedissonClient redissonClient; @@ -443,7 +451,7 @@ //检查当前枪是否是正在使用中 TChargingOrder one = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getChargingGunId, addChargingOrder.getId()) - .in(TChargingOrder::getStatus, Arrays.asList(1, 2, 3)).eq(TChargingOrder::getDelFlag, 0)); + .in(TChargingOrder::getStatus, Arrays.asList(3)).eq(TChargingOrder::getDelFlag, 0)); if(null != one){ return AjaxResult.error("充电枪正在充电中,启动失败"); } @@ -1027,7 +1035,7 @@ } if(3 == rechargePaymentType){ RefundReq dto = new RefundReq(); - dto.setOutTradeNo(chargingOrder.getCode()); + dto.setOutTradeNo(chargingOrder.getRechargeSerialNumber()); dto.setOutRequestNo(chargingOrderRefund.getCode()); dto.setRefundAmount(rechargeAmount.toString()); dto.setRefundReason("充电失败,取消充电订单"); @@ -1124,7 +1132,7 @@ } if(3 == rechargePaymentType){ RefundReq dto = new RefundReq(); - dto.setOutTradeNo(chargingOrder.getCode()); + dto.setOutTradeNo(chargingOrder.getRechargeSerialNumber()); dto.setOutRequestNo(chargingOrderRefund.getCode()); dto.setRefundAmount(money.toString()); dto.setRefundReason("充电完成退款"); @@ -2278,12 +2286,18 @@ */ @Override public R endChargeBillingCharge(TransactionRecordMessageVO vo) { - Boolean hasKey = redisService.hasKey("endOrder:" + vo.getTransaction_serial_number()); - if(hasKey){ + RLock lock = redissonClient.getLock("endOrder:" + vo.getTransaction_serial_number()); + boolean tryLock = false; + try { + tryLock = lock.tryLock(100, TimeUnit.SECONDS); + } catch (InterruptedException e) { + e.printStackTrace(); + lock.unlock(); return R.ok(); } - //添加1分钟的缓存 - redisService.setCacheObject("endOrder:" + vo.getTransaction_serial_number(), vo.getTransaction_serial_number(), 1L, TimeUnit.MINUTES); + if(!tryLock){ + return R.ok(); + } try { TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, vo.getTransaction_serial_number())); if(null == chargingOrder){ @@ -2718,7 +2732,7 @@ } if(3 == rechargePaymentType){ RefundReq dto = new RefundReq(); - dto.setOutTradeNo(chargingOrder.getCode()); + dto.setOutTradeNo(chargingOrder.getRechargeSerialNumber()); dto.setOutRequestNo(chargingOrderRefund.getRefundCode()); dto.setRefundAmount(refundAmount.toString()); dto.setRefundReason("充电完成退款"); @@ -2763,7 +2777,7 @@ }catch (Exception e) { e.printStackTrace(); }finally { - redisService.deleteObject("endOrder:" + vo.getTransaction_serial_number()); + lock.unlock(); } return R.ok(); } @@ -2935,7 +2949,7 @@ } if(3 == tChargingOrder.getRechargePaymentType()){ RefundReq dto = new RefundReq(); - dto.setOutTradeNo(tChargingOrder.getCode()); + dto.setOutTradeNo(tChargingOrder.getRechargeSerialNumber()); dto.setOutRequestNo(tChargingOrder.getCode()); dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString()); dto.setRefundReason("取消订单"); @@ -3015,20 +3029,20 @@ shoppingOrderRefundService.save(chargingOrderRefund); } } - if(3 == tChargingOrder.getPaymentType()){ - RefundReq dto = new RefundReq(); - dto.setOutTradeNo(tChargingOrder.getCode()); - dto.setOutRequestNo(tChargingOrder.getCode()); - dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString()); - dto.setRefundReason("取消订单"); - RefundResp resp = h5AliPaymentClient.refund(dto).getData(); - if(null != resp){ - tChargingOrder.setRefundStatus(2); - tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); - shoppingOrderService.updateById(tChargingOrder); - shoppingOrderRefundService.save(chargingOrderRefund); - } - } +// if(3 == tChargingOrder.getPaymentType()){ +// RefundReq dto = new RefundReq(); +// dto.setOutTradeNo(tChargingOrder.getCode()); +// dto.setOutRequestNo(tChargingOrder.getCode()); +// dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString()); +// dto.setRefundReason("取消订单"); +// RefundResp resp = h5AliPaymentClient.refund(dto).getData(); +// if(null != resp){ +// tChargingOrder.setRefundStatus(2); +// tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); +// shoppingOrderService.updateById(tChargingOrder); +// shoppingOrderRefundService.save(chargingOrderRefund); +// } +// } } @@ -3094,20 +3108,20 @@ vipOrderRefundService.save(chargingOrderRefund); } } - if(3 == tChargingOrder.getPaymentType()){ - RefundReq dto = new RefundReq(); - dto.setOutTradeNo(tChargingOrder.getCode()); - dto.setOutRequestNo(tChargingOrder.getCode()); - dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString()); - dto.setRefundReason("取消订单"); - RefundResp resp = h5AliPaymentClient.refund(dto).getData(); - if(null != resp){ - tChargingOrder.setRefundStatus(2); - tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); - vipOrderService.updateById(tChargingOrder); - vipOrderRefundService.save(chargingOrderRefund); - } - } +// if(3 == tChargingOrder.getPaymentType()){ +// RefundReq dto = new RefundReq(); +// dto.setOutTradeNo(tChargingOrder.getCode()); +// dto.setOutRequestNo(tChargingOrder.getCode()); +// dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString()); +// dto.setRefundReason("取消订单"); +// RefundResp resp = h5AliPaymentClient.refund(dto).getData(); +// if(null != resp){ +// tChargingOrder.setRefundStatus(2); +// tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); +// vipOrderService.updateById(tChargingOrder); +// vipOrderRefundService.save(chargingOrderRefund); +// } +// } } return R.ok(); } @@ -4279,4 +4293,34 @@ return this.baseMapper.getSumDegreeBySiteIds(siteIds); } + + + /** + * 获取启动失败且时间超过1小时的订单 + * @return + */ + @Override + public List<TChargingOrder> findFailedStartupOrder() { + return this.baseMapper.findFailedStartupOrder(); + } + + + /** + * 获取停止中的数据 + * @return + */ + @Override + public List<TChargingOrder> findStoppedOrder() { + return this.baseMapper.findStoppedOrder(); + } + + + /** + * 获取充电中的数据 + * @return + */ + @Override + public List<TChargingOrder> findChargingOrder() { + return this.baseMapper.findChargingOrder(); + } } -- Gitblit v1.7.1