From 94b0a6092c7bcc11bec5f8a3cbee3c46acf12a23 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期三, 23 十月 2024 19:14:37 +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 | 50 +++++++++------- ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java | 5 + ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java | 6 +- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderChargingInfo.java | 16 +++++ ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderAppealVO.java | 3 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java | 21 ++++-- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java | 2 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java | 11 +++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java | 10 +++ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java | 8 +- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 13 +++- ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java | 9 +++ 12 files changed, 112 insertions(+), 42 deletions(-) diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java index 9d3b023..b0deac8 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java @@ -59,6 +59,11 @@ public R<TAppCoupon> getAppCouponById(Long id) { return R.fail("根据id获取优惠券领取记录失败:" + throwable.getMessage()); } + + @Override + public R updateAppCoupon(TAppCoupon appCoupon) { + return R.fail("修改用户优惠券失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java index ceeb10c..9444f2b 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java @@ -62,4 +62,13 @@ */ @PostMapping(value = "/t-app-coupon/getAppCouponById") R<TAppCoupon> getAppCouponById(@RequestParam("id") Long id); + + + /** + * 修改用户优惠券 + * @param appCoupon + * @return + */ + @PostMapping(value = "/t-app-coupon/updateAppCoupon") + R updateAppCoupon(@RequestBody TAppCoupon appCoupon); } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderAppealVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderAppealVO.java index b991d8e..a02ee90 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderAppealVO.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderAppealVO.java @@ -13,7 +13,8 @@ @ApiModelProperty(value = "uid") private String uid; - + @ApiModelProperty(value = "orderIdStr") + private String orderIdStr; @ApiModelProperty(value = "充电订单") private TChargingOrder chargingOrder; diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java index 88236a3..da21e71 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java @@ -306,5 +306,16 @@ TAppCoupon appCoupon = tAppCouponService.getById(id); return R.ok(appCoupon); } + + /** + * 修改用户优惠券 + * @param appCoupon + * @return + */ + @PostMapping("/updateAppCoupon") + public R updateAppCoupon(@RequestBody TAppCoupon appCoupon){ + tAppCouponService.updateById(appCoupon); + return R.ok(); + } } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java index 920cac1..aaf608f 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java @@ -64,6 +64,9 @@ private ISiteService siteService; @Autowired private SysUserClient sysUserClient; + + @Resource + private IntegrationClient integrationClient; @Autowired @@ -118,7 +121,7 @@ accountingStrategyService.save(dto); if(null != dto.getSiteId()){ //下发硬件数据 - List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, dto.getSiteId()).list(); + List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, dto.getSiteId()).eq(TChargingPile::getDelFlag, 0).list(); for (TChargingPile tChargingPile : list) { integrationClient.setupBillingModel1(tChargingPile.getCode()); } @@ -178,11 +181,6 @@ }); accountingStrategyDetailService.saveBatch(accountingStrategyDetails); } - //下发硬件数据 - List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, dto.getSiteId()).list(); - for (TChargingPile tChargingPile : list) { - integrationClient.setupBillingModel1(tChargingPile.getCode()); - } }else { // 删除计费策略明细信息 accountingStrategyDetailService.remove(Wrappers.lambdaQuery(TAccountingStrategyDetail.class) @@ -192,6 +190,14 @@ // 添加明细 dto.getAccountingStrategyDetails().forEach(detail -> detail.setAccountingStrategyId(dto.getId())); accountingStrategyDetailService.saveBatch(dto.getAccountingStrategyDetails()); + } + + if(null != dto.getSiteId()){ + //下发硬件数据 + List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, dto.getSiteId()).eq(TChargingPile::getDelFlag, 0).list(); + for (TChargingPile tChargingPile : list) { + integrationClient.setupBillingModel1(tChargingPile.getCode()); + } } return AjaxResult.success(); } @@ -323,8 +329,7 @@ return AjaxResult.ok(accountingStrategyService.pageList(query)); } - @Resource - private IntegrationClient integrationClient; + @ApiOperation(tags = {"后台-申请表单-计费模板审核"},value = "审核") @PostMapping(value = "/auth/pass") diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java index 44d5079..8228a4c 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java @@ -24,6 +24,7 @@ import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.integration.api.feignClient.IntegrationClient; import com.ruoyi.other.api.domain.TVip; import com.ruoyi.other.api.feignClient.RoleSiteClient; import com.ruoyi.other.api.feignClient.UserSiteClient; @@ -76,6 +77,9 @@ private SysUserRoleClient sysUserRoleClient; @Resource private TParkingLotService parkingLotService; + + @Resource + private IntegrationClient integrationClient; @@ -395,5 +399,11 @@ tChargingGun.setAccountingStrategyId(accountingStrategyId); } chargingGunService.updateBatchById(list); + + //下发硬件数据 + List<TChargingPile> list1 = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, id).eq(TChargingPile::getDelFlag, 0).list(); + for (TChargingPile tChargingPile : list1) { + integrationClient.setupBillingModel1(tChargingPile.getCode()); + } } } 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 b5458b9..401f10d 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 @@ -265,10 +265,15 @@ Long count = chargingOrderAccountingStrategyService.lambdaQuery().eq(TChargingOrderAccountingStrategy::getChargingOrderId, orderId).count(); payOrderChargingInfo.setPeriodCount(count); - List<Long> carid = new ArrayList<>(); - carid.add(byId.getAppUserCarId()); - R<List<TAppUserCar>> carByIds = appUserCarClient.getCarByIds(carid); - payOrderChargingInfo.setCarNum(carByIds.getData().get(0).getLicensePlate()); + if (byId.getAppUserCarId()!=null) { + List<Long> carid = new ArrayList<>(); + carid.add(byId.getAppUserCarId()); + R<List<TAppUserCar>> carByIds = appUserCarClient.getCarByIds(carid); + payOrderChargingInfo.setCarNum(carByIds.getData().get(0).getLicensePlate()); + } + payOrderChargingInfo.setStartTime(byId.getStartTime()); + payOrderChargingInfo.setEndTime(byId.getEndTime()); + payOrderChargingInfo.setTimeCount(payOrderChargingInfo.calculateDuration()); return R.ok(payOrderChargingInfo); } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderChargingInfo.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderChargingInfo.java index 9d0b2cd..32db2d9 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderChargingInfo.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderChargingInfo.java @@ -5,7 +5,7 @@ import com.ruoyi.order.api.model.TChargingOrder; import io.swagger.annotations.ApiModelProperty; import lombok.Data; - +import java.time.Duration; import java.math.BigDecimal; import java.time.LocalDateTime; @@ -37,4 +37,18 @@ private String carNum; private TChargingOrder tChargingOrder; private Long periodCount; + private String timeCount; + public String calculateDuration() { + if (startTime == null || endTime == null) { + return "00:00:00"; + } + + Duration duration = Duration.between(startTime, endTime); + long totalSeconds = duration.getSeconds(); + long hours = totalSeconds / 3600; + long minutes = (totalSeconds % 3600) / 60; + long seconds = totalSeconds % 60; + + return String.format("%02d:%02d:%02d", hours, minutes, seconds); + } } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java index c114305..3ce44cb 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java @@ -199,7 +199,7 @@ } BigDecimal add = tChargingOrder.getElectrovalence().add(tChargingOrder.getServiceCharge()); tChargingOrder.setTotalAmount(add.toString()); - tChargingOrder.setDiscount(tChargingOrder.getCouponDiscountAmount().toString()); + tChargingOrder.setDiscount(tChargingOrder.getCouponDiscountAmount()!=null?tChargingOrder.getCouponDiscountAmount().toString():"0"); UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(tChargingOrder.getCode()).getData(); if (data5!=null){ if (data5.getTime_remaining()!=null){ @@ -247,7 +247,7 @@ if (tChargingOrder.getElectrovalence()!=null){ electrovalence = electrovalence.add(tChargingOrder.getElectrovalence()); } - if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus() == 2){ + if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus()!=null && tChargingOrder.getRefundStatus()== 2){ refundAmount = refundAmount.add(tChargingOrder.getRefundAmount()); } // 累加累计服务费 @@ -621,7 +621,7 @@ chargingBillListVO.setPaymentAmount(paymentAmount); chargingBillListVO.setOrderAmount(orderAmount); chargingBillListVO.setElectrovalence(electrovalence); - chargingBillListVO.setServiceCharge(serviceCharge); + chargingBillListVO.setServiceCharge(serviceCharge.setScale(2,RoundingMode.HALF_DOWN)); chargingBillListVO.setCommissionAmount(commissionAmount); chargingBillListVO.setSharingAmount(sharingAmount); chargingBillListVO.setChargingCapacity(chargingCapacity); 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 312ee26..c337f27 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 @@ -916,30 +916,29 @@ 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")); + count1 = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId()) + .eq(TChargingOrder::getRechargePaymentStatus, 2).isNotNull(TChargingOrder::getPaymentAmount) + .between(TChargingOrder::getStartTime, start, end).eq(TChargingOrder::getDelFlag, 0)); + if(null == data1 && (count1 + 1) >= times){ + data1 = new TAppUserTag(); + data1.setAppUserId(chargingOrder.getAppUserId()); + data1.setUserTagId(tUserTag.getId()); + data1.setCreateTime(LocalDateTime.now()); + appUserTagClient.addUserTag(data1); } } } @@ -1807,6 +1806,9 @@ order.setCouponDiscountAmount(couponDiscountAmount); payAmount = payAmount.subtract(couponDiscountAmount); } + + appCoupon.setStatus(2); + appCouponClient.updateAppCoupon(appCoupon); }else{ order.setAppCouponId(null); order.setCouponDiscountAmount(BigDecimal.ZERO); @@ -1829,6 +1831,9 @@ order.setCouponDiscountAmount(divide); payAmount = payAmount.subtract(divide); } + + appCoupon.setStatus(2); + appCouponClient.updateAppCoupon(appCoupon); }else{ order.setAppCouponId(null); order.setCouponDiscountAmount(BigDecimal.ZERO); @@ -2617,12 +2622,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; } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java index 544e9ff..e294a86 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java @@ -76,6 +76,7 @@ TShoppingOrder tShoppingOrder = shoppingOrders.stream().filter(shoppingOrder -> shoppingOrder.getId().equals(item.getOrderId())).findFirst().orElse(null); setGoodsInfo(item,tShoppingOrder); } + item.setOrderIdStr(item.getOrderId().toString()); }); list.forEach(e->e.setUid(e.getId().toString())); pageInfo.setRecords(list); @@ -98,6 +99,7 @@ TShoppingOrder tShoppingOrder = shoppingOrderMapper.selectById(orderAppeal.getOrderId()); setGoodsInfo(orderAppealVO,tShoppingOrder); } + orderAppealVO.setOrderIdStr(orderAppealVO.getOrderId().toString()); return orderAppealVO; } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java index a3e47c7..dba9058 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java @@ -162,9 +162,11 @@ public List<OrderInvoiceList> getMyOrderInvoiceList(GetOrderInvoiceList query) { Long userId = tokenService.getLoginUserApplet().getUserId(); Integer pageCurr = (query.getPageCurr() - 1) * query.getPageSize(); - List<TOrderInvoice> list = this.list(new LambdaQueryWrapper<TOrderInvoice>().eq(TOrderInvoice::getAppUserId, userId) - .eq(TOrderInvoice::getStatus, query.getStatus()).orderByDesc(TOrderInvoice::getCreateTime) - .last(" limit " + pageCurr + ", " + query.getPageSize())); + LambdaQueryWrapper<TOrderInvoice> wrapper = new LambdaQueryWrapper<TOrderInvoice>().eq(TOrderInvoice::getAppUserId, userId); + if(query.getStatus() != 1){ + wrapper.eq(TOrderInvoice::getStatus, query.getStatus()); + } + List<TOrderInvoice> list = this.list(wrapper.orderByDesc(TOrderInvoice::getCreateTime).last(" limit " + pageCurr + ", " + query.getPageSize())); List<OrderInvoiceList> pageList = new ArrayList<>(); for (TOrderInvoice tOrderInvoice : list) { OrderInvoiceList orderInvoiceList = new OrderInvoiceList(); -- Gitblit v1.7.1