From ea4e6cf0a63fa8470846fd5188da9e912faf661e Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 01 十一月 2024 10:01:24 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/AppUserInfoDto.java | 3 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 156 ++++-- ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java | 5 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TRepairServiceImpl.java | 62 ++ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java | 8 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingPileClient.java | 2 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java | 3 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java | 6 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java | 2 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TParkingRecord.java | 6 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java | 2 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileMapper.xml | 2 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java | 56 ++ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java | 85 ++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TRepairService.java | 2 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java | 7 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderInfoDto.java | 1 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java | 8 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml | 48 + ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java | 1 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java | 2 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TChargingOrderVo.java | 15 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml | 2 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java | 4 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java | 10 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileNotificationMapper.java | 12 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java | 48 + ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TInviteUser.java | 2 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BaseModel.java | 4 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/MongoChargingOrderQuery.java | 4 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml | 11 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/PartnerClient.java | 13 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java | 86 +- ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java | 5 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingPileFallbackFactory.java | 2 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TFaultMessageMapper.xml | 7 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TRepairMapper.java | 4 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/model/SwitchwayGate.java | 5 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/PartnerFallbackFactory.java | 7 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java | 136 +++-- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java | 41 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TFaultMessageServiceImpl.java | 57 ++ ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileNotificationMapper.xml | 18 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/CodeController.java | 4 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java | 2 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetOrderEvaluatePageList.java | 2 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java | 3 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java | 2 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateMapper.java | 2 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java | 14 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java | 14 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java | 9 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/SwitchwayGateService.java | 14 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TInviteUserServiceImpl.java | 36 + ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java | 11 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java | 73 ++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java | 23 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java | 2 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 14 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java | 9 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TFaultMessageMapper.java | 3 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 66 ++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java | 18 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MD5Util.java | 79 -- ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TVipOrderMapper.xml | 2 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java | 4 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java | 5 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java | 40 + ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TRepairMapper.xml | 7 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java | 14 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java | 11 ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml | 4 72 files changed, 1,014 insertions(+), 433 deletions(-) diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/AppUserInfoDto.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/AppUserInfoDto.java index 72db785..ce10ebb 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/AppUserInfoDto.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/AppUserInfoDto.java @@ -17,7 +17,7 @@ @ApiModelProperty("最低会员价格") private BigDecimal minPrice; @ApiModelProperty("vip结束时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private LocalDateTime vipExpireTime; @ApiModelProperty("当天是否签到") private Integer isSign; @@ -25,6 +25,7 @@ private Integer points; @ApiModelProperty("当前优惠卷数量") private Integer couponNum; + private Long vipCouponNum; @ApiModelProperty("是否第一次添加车") private Integer firstAdd; @ApiModelProperty("当前绑定的车辆") diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java index d51745e..2acc636 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java @@ -87,6 +87,9 @@ @TableField("coupon_json") private String couponJson; + @TableField("detail_id") + private Long detailId; + } diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TInviteUser.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TInviteUser.java index 79cae9d..be66883 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TInviteUser.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TInviteUser.java @@ -52,6 +52,8 @@ private LocalDateTime createTime; @TableField(exist = false) private String avatar; + @TableField(exist = false) + private String name; } diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingPileFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingPileFallbackFactory.java index 2948838..eb221dd 100644 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingPileFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingPileFallbackFactory.java @@ -58,7 +58,7 @@ } @Override - public void updateChargingPileStatus(String code, Integer status) { + public void updateChargingPileStatus(String pile_code, String gun_code, Integer status) { log.error("修改充电桩状态失败:" + throwable.getMessage()); } diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/PartnerFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/PartnerFallbackFactory.java index d2f3666..f5053f5 100644 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/PartnerFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/PartnerFallbackFactory.java @@ -7,6 +7,8 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import java.util.Set; + /** * 充电桩服务降级处理 @@ -27,6 +29,11 @@ public R<Partner> getPartnerById(Integer id) { return R.fail("根据id获取合作商信息失败:" + throwable.getMessage()); } + + @Override + public R<Set<Integer>> authSite(Integer partnerId, String siteMenu) { + return R.fail("获取合作商授权的站点数据失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingPileClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingPileClient.java index 9b19c6f..60448b2 100644 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingPileClient.java +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingPileClient.java @@ -57,5 +57,5 @@ * @param status */ @PostMapping("/t-charging-pile/updateChargingPileStatus") - void updateChargingPileStatus(@RequestParam("code") String code, @RequestParam("status") Integer status); + void updateChargingPileStatus(@RequestParam("pile_code") String pile_code, @RequestParam("gun_code") String gun_code, @RequestParam("status") Integer status); } diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/PartnerClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/PartnerClient.java index 198aeaa..5d3aa49 100644 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/PartnerClient.java +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/PartnerClient.java @@ -8,6 +8,9 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.Set; /** * @author zhibing.pu @@ -24,4 +27,14 @@ */ @PostMapping("/partner/getPartnerById/{id}") R<Partner> getPartnerById(@PathVariable("id") Integer id); + + + /** + * 获取合作商授权的站点数据 + * @param partnerId + * @param siteMenu + * @return + */ + @PostMapping("/partner/authSite/{partnerId}") + R<Set<Integer>> authSite(@PathVariable("partnerId") Integer partnerId, @RequestParam("siteMenu") String siteMenu); } diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TParkingRecord.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TParkingRecord.java index 6a147e5..39343ad 100644 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TParkingRecord.java +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TParkingRecord.java @@ -36,7 +36,7 @@ @ApiModelProperty(value = "用户id") @TableField("app_user_id") private Long appUserId; - + @ApiModelProperty(value = "停车场名称") @TableField("name") private String name; @@ -44,7 +44,7 @@ @ApiModelProperty(value = "车牌号") @TableField("license_plate") private String licensePlate; - + @TableField(exist = false) private String uid; @@ -123,5 +123,7 @@ @TableField("serialnumber") private String serialnumber; + @TableField(exist = false) + private String parkName; } diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java index 5a46c09..e5298d0 100644 --- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java @@ -34,9 +34,10 @@ } @Override - public R<List<UploadRealTimeMonitoringData>> getOrderInfoByCodes(String orderId) { + public R<List<UploadRealTimeMonitoringData>> getOrderInfoByCodes(String ids) { return R.fail("根据订单编号s获取所有监测数据失败:" + throwable.getMessage()); } + @Override public R<List<UploadRealTimeMonitoringData>> getDataByOrderCode(String code) { @@ -45,7 +46,7 @@ @Override public R<UploadRealTimeMonitoringPageData> getAll(MongoChargingOrderQuery mongoChargingOrderQuery) { - return null; + return R.fail("getAll:" + throwable.getMessage()); } @Override diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java index 5d89233..5d6df9f 100644 --- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java +++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java @@ -7,9 +7,7 @@ import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringPageData; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Set; @@ -31,11 +29,10 @@ /** * 批量查询 - * @param orderId * @return */ - @PostMapping(value = "/uploadRealTimeMonitoringData/getOrderInfoByCodes") - public R<List<UploadRealTimeMonitoringData>> getOrderInfoByCodes(@RequestParam("orderId") String orderId); + @GetMapping(value = "/uploadRealTimeMonitoringData/getOrderInfoByCodes/{ids}") + public R<List<UploadRealTimeMonitoringData>> getOrderInfoByCodes(@PathVariable("ids") String ids); /** * 根据订单编号获取所有监测数据 * @param code diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BaseModel.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BaseModel.java index fe393ff..342055e 100644 --- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BaseModel.java +++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BaseModel.java @@ -1,5 +1,6 @@ package com.ruoyi.integration.api.model; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.util.Date; @@ -10,7 +11,8 @@ */ @Data public class BaseModel { + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date last_time = new Date(); - + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date create_time = new Date(); } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java index e4a99c5..a6ff664 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java @@ -158,6 +158,11 @@ public void endChargeBillingCharge(TransactionRecordMessageVO vo) { log.error("停止充电返回账单后计算费用处理失败:" + throwable.getMessage()); } + + @Override + public R<List<TChargingOrder>> getChargingOrder(TChargingOrderVo order) { + return R.fail("获取充电订单数据失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java index 20929f8..19ec997 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java @@ -46,6 +46,12 @@ } @Override + public R<Integer> getSalesCountByGoodsIdgetCount(Integer goodId, Integer goodeType, Integer buyType) { + return null; + } + + + @Override public R<List<String>> getCodeByOrderId(String goodsIds) { return R.fail("根据订单ids查询现金购买优惠券订单编号:" + cause.getMessage()); } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java index 3f10657..94b480a 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java @@ -206,4 +206,12 @@ */ @PostMapping("/t-charging-order/endChargeBillingCharge") void endChargeBillingCharge(@RequestBody TransactionRecordMessageVO vo); + + /** + * 获取充电订单数据 + * @param order + * @return + */ + @PostMapping("/t-charging-order/getChargingOrder") + R<List<TChargingOrder>> getChargingOrder(@RequestBody TChargingOrderVo order); } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java index 210327e..02994b0 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java @@ -28,6 +28,8 @@ public R managementGiveVip(@RequestBody TGrantVip grantVip); @GetMapping("/t-exchange-order/getSalesCountByGoodsIds/{goodsIds}") R<List<Integer>> getSalesCountByGoodsId(@PathVariable("goodsIds") String goodsIds); + @GetMapping("/t-exchange-order/getCount") + R<Integer> getSalesCountByGoodsIdgetCount(@RequestParam("goodId") Integer goodId,@RequestParam("goodeType")Integer goodeType,@RequestParam("buyType")Integer buyType); /** * 管理后台 根据t_app_coupon订单购买或者兑换优惠券的订单编号 diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TChargingOrderVo.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TChargingOrderVo.java new file mode 100644 index 0000000..ee3dbbf --- /dev/null +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TChargingOrderVo.java @@ -0,0 +1,15 @@ +package com.ruoyi.order.api.vo; + +import com.ruoyi.order.api.model.TChargingOrder; +import lombok.Data; + +import java.util.List; + +/** + * @author zhibing.pu + * @Date 2024/10/29 13:35 + */ +@Data +public class TChargingOrderVo extends TChargingOrder { + private List<Integer> statusList; +} diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java index ebe7621..5a99b2a 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java @@ -122,6 +122,10 @@ @TableField(exist = false) private Integer useCount; + @ApiModelProperty(value = "销量") + @TableField(exist = false) + private Integer salesCount; + } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/MongoChargingOrderQuery.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/MongoChargingOrderQuery.java index a96a982..f9b33fb 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/MongoChargingOrderQuery.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/MongoChargingOrderQuery.java @@ -25,9 +25,9 @@ @ApiModelProperty(value = "充电枪code ") private String chargingGunCode; @ApiModelProperty(value = "开始时间2020-01-01 00:00:00 - 2021-01-01 23:59:59") - private String startTime; + private String createTime; @ApiModelProperty(value = "结束时间2020-01-01 00:00:00 - 2021-01-01 23:59:59") - private String endTime; + private String lastTime; @ApiModelProperty(value = "订单来源 1明星 2快电 3新电途") private Integer orderSource; @ApiModelProperty(value = "用户ids 前端忽略") diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MD5Util.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MD5Util.java index 0f28ea6..e13282a 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MD5Util.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MD5Util.java @@ -52,79 +52,24 @@ public static String getMD5(String str) { if (StringUtils.isNotEmpty(str)) { try { + // 创建MD5加密实例 MessageDigest md = MessageDigest.getInstance("MD5"); - md.update(str.getBytes()); - byte b[] = md.digest(); - int i; - StringBuffer buf = new StringBuffer(""); - for (int offset = 0; offset < b.length; offset++) { - i = b[offset]; - if (i < 0) - i += 256; - if (i < 16) - buf.append("0"); - buf.append(Integer.toHexString(i)); + + // 执行加密操作 + byte[] messageDigest = md.digest(str.getBytes()); + + // 将得到的散列值转换为十六进制 + StringBuilder sb = new StringBuilder(); + for (byte b : messageDigest) { + sb.append(String.format("%02x", b)); } - //32位加密(小写) - return buf.toString(); - //32位加密(大写) - //return buf.toString().toUpperCase(); - // 16位的加密(小写) - //return buf.toString().substring(8, 24); - // 16位的加密(大写) - //return buf.toString().substring(8, 24).toUpperCase(); + + // 返回MD5散列值 + return sb.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } } - return ""; - } - - /** - * 获取32位大写 - * - * @param str - * @return - */ - public static String getMD5_32_upper(String str) { - if (StringUtils.isNotEmpty(str)) - return getMD5(str).toUpperCase(); - return ""; - } - - /** - * 获取32位小写 - * - * @param str - * @return - */ - public static String getMD5_32_lower(String str) { - if (StringUtils.isNotEmpty(str)) - return getMD5(str).toLowerCase(); - return ""; - } - - /** - * 获取16位大写 - * - * @param str - * @return - */ - public static String getMD5_16_upper(String str) { - if (StringUtils.isNotEmpty(str)) - return getMD5(str).substring(8, 24).toUpperCase(); - return ""; - } - - /** - * 获取16位小写 - * - * @param str - * @return - */ - public static String getMD5_16_lower(String str) { - if (StringUtils.isNotEmpty(str)) - return getMD5(str).substring(8, 24).toLowerCase(); return ""; } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java index 6a9293c..3a6752e 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -586,6 +587,8 @@ return R.ok(); } + @Resource + private TAppUserVipDetailService appUserVipDetailService; @ApiOperation(value = "个人中心信息", tags = {"小程序-个人中心"}) @GetMapping(value = "/user/info") @@ -602,12 +605,14 @@ if (byId.getVipEndTime()==null||byId.getVipEndTime().isBefore(LocalDateTime.now())){ appUserInfoDto.setIsVip(0); }else { + TAppUserVipDetail one = appUserVipDetailService.getOne(new LambdaQueryWrapper<TAppUserVipDetail>() + .eq(TAppUserVipDetail::getAppUserId, userId) + .eq(TAppUserVipDetail::getVipId, byId.getVipId()) + .last(" and now() between start_time and end_time")); + Long count = appCouponService.lambdaQuery().eq(TAppCoupon::getDetailId, one.getId()).count(); + appUserInfoDto.setVipCouponNum(count); appUserInfoDto.setIsVip(1); appUserInfoDto.setVipExpireTime(byId.getVipEndTime()); - - - - @@ -770,6 +775,7 @@ for (TInviteUser record : page.getRecords()) { TAppUser byId = appUserService.getById(record.getBeInvitedAppUserId()); record.setAvatar(byId.getAvatar()); + record.setName(byId.getName()); } return R.ok(page); } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TInviteUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TInviteUserServiceImpl.java index 85ec054..692caa6 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TInviteUserServiceImpl.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TInviteUserServiceImpl.java @@ -1,16 +1,26 @@ package com.ruoyi.account.service.impl; +import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.account.api.feignClient.AppUserVipDetailClient; +import com.ruoyi.account.api.model.TAppUser; +import com.ruoyi.account.api.model.TAppUserVipDetail; import com.ruoyi.account.api.model.TInviteUser; +import com.ruoyi.account.api.vo.GetAppUserVipDetail; import com.ruoyi.account.mapper.TInviteUserMapper; +import com.ruoyi.account.service.TAppUserService; import com.ruoyi.account.service.TInviteUserService; +import com.ruoyi.common.core.domain.R; import com.ruoyi.other.api.domain.TIntegralRule; +import com.ruoyi.other.api.domain.TVip; import com.ruoyi.other.api.feignClient.IntegralRuleClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.time.LocalDateTime; +import java.util.Objects; /** * <p> @@ -25,9 +35,29 @@ @Autowired private IntegralRuleClient integralRuleClient; + @Autowired + private TAppUserService appUserService; + @Resource + private AppUserVipDetailClient vipDetailClient; + /** + * + * @param appUserId 被邀请人 + * @param beInvitedAppUserId 邀请人 + */ @Override public void saveInviteUser(Long appUserId, Long beInvitedAppUserId) { + + // 查询用户信息 + TAppUser user = appUserService.getById(beInvitedAppUserId); + GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail(); + getAppUserVipDetail.setAppUserId(beInvitedAppUserId); + getAppUserVipDetail.setVipId(user.getVipId()); + R<TAppUserVipDetail> appUserVipDetail = vipDetailClient.getAppUserVipDetail(getAppUserVipDetail); + TAppUserVipDetail data1 = appUserVipDetail.getData(); + String vipJson = data1.getVipJson(); + TVip vip = JSON.parseObject(vipJson, TVip.class); + // 查询邀请用户获得积分配置 TIntegralRule integralRule = integralRuleClient.getSet().getData(); JSONObject jsonObject = JSONObject.parseObject(integralRule.getInviteUsersToEarnPoints()); @@ -35,7 +65,11 @@ inviteUser.setAppUserId(beInvitedAppUserId); inviteUser.setBeInvitedAppUserId(appUserId); inviteUser.setCreateTime(LocalDateTime.now()); - inviteUser.setAward(jsonObject.getInteger("num1")); + if(Objects.nonNull(vip) && vip.getDoubleIntegration() == 1){ + inviteUser.setAward(jsonObject.getInteger("num1")*2); + }else { + inviteUser.setAward(jsonObject.getInteger("num1")); + } this.save(inviteUser); } } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java index 12dccfc..2e9bd75 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java @@ -77,6 +77,7 @@ tAppCoupon.setWaysToObtain(4); tAppCoupon.setStatus(1); tAppCoupon.setCouponJson(JSON.toJSONString(coupon)); + tAppCoupon.setDetailId(tAppUserVipDetail.getId()); appCouponService.save(tAppCoupon); } } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/CodeController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/CodeController.java index 8a7e076..3a24689 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/CodeController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/CodeController.java @@ -51,7 +51,7 @@ String reqStr = MsgUtil.codeMsg(phone, code); String result = HttpUtils.post(MsgConstants.SEND_URL, reqStr); // 记录短信发送 - chargingPileNotificationService.saveData(1,null,null,phone,"验证码:"+code+",用于更换手机号。请勿转发。"); + chargingPileNotificationService.saveData(1,-1,-1,phone,"验证码:"+code+",用于更换手机号。请勿转发。"); return AjaxResult.success(result); } @@ -70,7 +70,7 @@ String reqStr = MsgUtil.applyCodeMsg(phone, code); String result = HttpUtils.post(MsgConstants.SEND_URL, reqStr); // 记录短信发送 - chargingPileNotificationService.saveData(1,null,null,phone,"验证码:"+code+",用于申请建桩。请勿转发。"); + chargingPileNotificationService.saveData(1,-1,-1,phone,"验证码:"+code+",用于申请建桩。请勿转发。"); return AjaxResult.success(result); } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java index 9739d0d..8494f33 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java @@ -7,6 +7,7 @@ import com.ruoyi.chargingPile.api.model.Partner; import com.ruoyi.chargingPile.api.query.GetPartnerList; import com.ruoyi.chargingPile.api.query.SetPermissionConfiguration; +import com.ruoyi.chargingPile.domain.SiteMenu; import com.ruoyi.chargingPile.dto.ResetPassword; import com.ruoyi.chargingPile.service.IPartnerService; import com.ruoyi.common.core.domain.R; @@ -24,6 +25,7 @@ import javax.annotation.Resource; import java.util.List; +import java.util.Set; /** * @author zhibing.pu @@ -158,4 +160,16 @@ Partner partner = partnerService.getPartner(id); return R.ok(partner); } + + /** + * 获取合作商授权的站点数据 + * @param partnerId + * @param siteMenu + * @return + */ + @PostMapping("/authSite/{partnerId}") + public R<Set<Integer>> authSite(@PathVariable("partnerId") Integer partnerId, @RequestParam("siteMenu") String siteMenu){ + Set<Integer> integers = partnerService.authSite(partnerId, SiteMenu.valueOf(siteMenu)); + return R.ok(integers); + } } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java index 8081c4e..06a4e3f 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java @@ -131,8 +131,25 @@ // 当前时间属于那个阶段 取哪个阶段的电价 if(DateUtils.string2LocalTime(tAccountingStrategyDetail.getStartTime() + ":00").compareTo(LocalTime.now()) <= 0 && DateUtils.string2LocalTime(tAccountingStrategyDetail.getEndTime() + ("23:59:59".equals(tAccountingStrategyDetail.getEndTime())?"":":00")).compareTo(LocalTime.now()) > 0){ - siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence().setScale(4, BigDecimal.ROUND_HALF_UP)); - siteInfoVO.setElectrovalence(tAccountingStrategyDetail.getElectrovalence().setScale(4, BigDecimal.ROUND_HALF_UP)); + siteInfoVO.setElectrovalence(tAccountingStrategyDetail.getElectrovalence().add(tAccountingStrategyDetail.getServiceCharge()).setScale(4, BigDecimal.ROUND_HALF_UP)); + if(null != byId1.getDiscount()){ + siteInfoVO.setVipElectrovalence((tAccountingStrategyDetail.getServiceCharge().multiply(byId1.getDiscount()).add(tAccountingStrategyDetail.getElectrovalence())).setScale(4, BigDecimal.ROUND_HALF_UP)); + }else{ + // 获取当前登录用户id + Long userId = tokenService.getLoginUserApplet().getUserId(); + // 根据id查询用户信息 + TAppUser appUser = appUserClient.getUserById(userId).getData(); + if(Objects.nonNull(appUser)){ + TVip vip = vipClient.getInfo1(appUser.getVipId()).getData(); + if(Objects.nonNull(vip) && vip.getType() == 2){ + siteInfoVO.setVipElectrovalence(vip.getDiscount().divide(new BigDecimal(10)).multiply(tAccountingStrategyDetail.getServiceCharge()).add(tAccountingStrategyDetail.getElectrovalence())); + }else { + siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence()); + } + }else { + siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence()); + } + } } } siteInfoVO.setChargingGunId(chargingGun.getId()); @@ -159,8 +176,25 @@ // 当前时间属于那个阶段 取哪个阶段的电价 if(DateUtils.string2LocalTime(tAccountingStrategyDetail.getStartTime() + ":00").compareTo(LocalTime.now()) <= 0 && DateUtils.string2LocalTime(tAccountingStrategyDetail.getEndTime() + ("23:59:59".equals(tAccountingStrategyDetail.getEndTime())?"":":00")).compareTo(LocalTime.now()) > 0){ - siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence().setScale(4, BigDecimal.ROUND_HALF_UP)); - siteInfoVO.setElectrovalence(tAccountingStrategyDetail.getElectrovalence().setScale(4, BigDecimal.ROUND_HALF_UP)); + siteInfoVO.setElectrovalence(tAccountingStrategyDetail.getElectrovalence().add(tAccountingStrategyDetail.getServiceCharge()).setScale(4, BigDecimal.ROUND_HALF_UP)); + if(null != byId1.getDiscount()){ + siteInfoVO.setVipElectrovalence((tAccountingStrategyDetail.getServiceCharge().multiply(byId1.getDiscount()).add(tAccountingStrategyDetail.getElectrovalence())).setScale(4, BigDecimal.ROUND_HALF_UP)); + }else{ + // 获取当前登录用户id + Long userId = tokenService.getLoginUserApplet().getUserId(); + // 根据id查询用户信息 + TAppUser appUser = appUserClient.getUserById(userId).getData(); + if(Objects.nonNull(appUser)){ + TVip vip = vipClient.getInfo1(appUser.getVipId()).getData(); + if(Objects.nonNull(vip) && vip.getType() == 2){ + siteInfoVO.setVipElectrovalence(vip.getDiscount().divide(new BigDecimal(10)).multiply(tAccountingStrategyDetail.getServiceCharge()).add(tAccountingStrategyDetail.getElectrovalence())); + }else { + siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence()); + } + }else { + siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence()); + } + } } } siteInfoVO.setChargingPileId(one.getId()); @@ -195,17 +229,22 @@ siteList.setPageSize(99999); PageInfo<GetSiteListDTO> list = siteService.getSiteList(siteList); for (GetSiteListDTO record : list.getRecords()) { - Long count = chargingGunService.lambdaQuery().eq(TChargingGun::getSiteId, record.getId()).eq(TChargingGun::getChargeMode, 1).eq(TChargingGun::getStatus, new int[]{3, 4, 5, 6}).count(); + List<Integer> c1 = new ArrayList<>(); + c1.add(3); + c1.add(4); + c1.add(5); + c1.add(6); + Long count = chargingGunService.lambdaQuery().eq(TChargingGun::getSiteId, record.getId()).eq(TChargingGun::getChargeMode, 1).eq(TChargingGun::getStatus, 2).count(); record.setC1(count); - Long count1 = chargingGunService.lambdaQuery().eq(TChargingGun::getSiteId, record.getId()).eq(TChargingGun::getChargeMode, 1).eq(TChargingGun::getStatus, 2).count(); + Long count1 = chargingGunService.lambdaQuery().eq(TChargingGun::getSiteId, record.getId()).eq(TChargingGun::getChargeMode, 1).count(); record.setC2(count1); - Long count2 = chargingGunService.lambdaQuery().eq(TChargingGun::getSiteId, record.getId()).eq(TChargingGun::getChargeMode, 2).eq(TChargingGun::getStatus, new int[]{3, 4, 5, 6}).count(); + Long count2 = chargingGunService.lambdaQuery().eq(TChargingGun::getSiteId, record.getId()).eq(TChargingGun::getChargeMode, 2).eq(TChargingGun::getStatus, 2).count(); record.setK1(count2); - Long count3 = chargingGunService.lambdaQuery().eq(TChargingGun::getSiteId, record.getId()).eq(TChargingGun::getChargeMode, 2).eq(TChargingGun::getStatus, 2).count(); + Long count3 = chargingGunService.lambdaQuery().eq(TChargingGun::getSiteId, record.getId()).eq(TChargingGun::getChargeMode, 2).count(); record.setK2(count3); - Long count4 = chargingGunService.lambdaQuery().eq(TChargingGun::getSiteId, record.getId()).eq(TChargingGun::getChargeMode, 3).eq(TChargingGun::getStatus, new int[]{3, 4, 5, 6}).count(); + Long count4 = chargingGunService.lambdaQuery().eq(TChargingGun::getSiteId, record.getId()).eq(TChargingGun::getChargeMode, 3).eq(TChargingGun::getStatus, 2).count(); record.setM1(count4); - Long count5 = chargingGunService.lambdaQuery().eq(TChargingGun::getSiteId, record.getId()).eq(TChargingGun::getChargeMode, 3).eq(TChargingGun::getStatus, 2).count(); + Long count5 = chargingGunService.lambdaQuery().eq(TChargingGun::getSiteId, record.getId()).eq(TChargingGun::getChargeMode, 3).count(); record.setM2(count5); //利用率 @@ -261,14 +300,7 @@ @ApiOperation(value = "获取该充电站的利用率", tags = {"管理后台-数据分析-电站分析"}) public R getPercentByCityCode(@RequestBody ChargingPercentProvinceDto chargingPercentProvinceDto){ - if (chargingPercentProvinceDto.getDate1()==null){ - LocalDate today = LocalDate.now(); - LocalDate lastMonth = today.minusMonths(1); - LocalDate firstDayOfLastMonth = lastMonth.withDayOfMonth(1); - LocalDate lastDayOfLastMonth =lastMonth.withDayOfMonth(lastMonth.lengthOfMonth()); - chargingPercentProvinceDto.setDate1(firstDayOfLastMonth); - chargingPercentProvinceDto.setDate2(lastDayOfLastMonth); - } + @@ -282,6 +314,9 @@ List<GetSiteListDTO> records = siteService.getSiteList(siteList).getRecords(); List<Integer> collect = records.stream().map(GetSiteListDTO::getId).collect(Collectors.toList()); // 通过时间段获取和充电桩id获取各个充电站的充电订单 + if (chargingPercentProvinceDto.getDate1().equals(chargingPercentProvinceDto.getDate2())){ + chargingPercentProvinceDto.setDate2(chargingPercentProvinceDto.getDate1().plusDays(1)); + } List<ChargingOrderGroup> data = chargingOrderClient.getBySiteIdAndTime(chargingPercentProvinceDto).getData(); // 计算利用率展示 for (ChargingOrderGroup datum : data) { @@ -291,7 +326,7 @@ bigDecimal1 = bigDecimal1.add(chargingPile.getRatedPower()); } - long daysBetween = ChronoUnit.DAYS.between(chargingPercentProvinceDto.getDate1(), chargingPercentProvinceDto.getDate2()) + 1; + long daysBetween = ChronoUnit.DAYS.between(chargingPercentProvinceDto.getDate1(), chargingPercentProvinceDto.getDate2()); BigDecimal multiply = bigDecimal1.multiply(new BigDecimal("24")).multiply(BigDecimal.valueOf(daysBetween)); //得到利用率 BigDecimal divide = datum.getChargingCapacity().divide(multiply, 0, BigDecimal.ROUND_HALF_UP); 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 562043a..5661ba5 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 @@ -164,7 +164,10 @@ dto.setAuditStatus(1); accountingStrategyService.updateById(dto); // 添加明细 - dto.getAccountingStrategyDetails().forEach(detail -> detail.setAccountingStrategyId(dto.getId())); + dto.getAccountingStrategyDetails().forEach(detail -> { + detail.setAccountingStrategyId(dto.getId()); + detail.setId(null); + }); accountingStrategyDetailService.saveBatch(dto.getAccountingStrategyDetails()); }else { Long userId = SecurityUtils.getLoginUser().getUserid(); @@ -188,7 +191,10 @@ dto.setAuditStatus(1); accountingStrategyService.updateById(dto); // 添加明细 - dto.getAccountingStrategyDetails().forEach(detail -> detail.setAccountingStrategyId(dto.getId())); + dto.getAccountingStrategyDetails().forEach(detail -> { + detail.setAccountingStrategyId(dto.getId()); + detail.setId(null); + }); accountingStrategyDetailService.saveBatch(dto.getAccountingStrategyDetails()); } @@ -360,11 +366,16 @@ TAccountingStrategy one = accountingStrategyService.lambdaQuery().eq(TAccountingStrategy::getId, byId.getParentId()).one(); byId.setSiteId(one.getSiteId()); //将site表对应的模板id修改为新的这个 - Site byId1 = siteService.getById(one.getSiteId()); - if (byId1!=null) { - byId1.setAccountingStrategyId(byId.getId()); - siteService.updateById(byId1); + List<Site> list = siteService.lambdaQuery().eq(Site::getAccountingStrategyId, one.getId()).list(); + for (Site site : list) { + site.setAccountingStrategyId(byId.getId()); } + siteService.updateBatchById(list); + // + + + + // accountingStrategyService.removeById(one.getId()); } //硬件 diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java index 191076b..aba788a 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java @@ -483,26 +483,28 @@ settlementExportVO.setCreateTime1(createTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); settlementExportVO.setStartTime1(startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); settlementExportVO.setEndTime1(endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); - switch (settlementExportVO.getStatus()){ - case 0: - settlementExportVO.setStatusName("未知"); - break; - case 1: - settlementExportVO.setStatusName("等待中/已插枪"); - break; - case 2: - settlementExportVO.setStatusName("启动中"); - break; - case 3: - settlementExportVO.setStatusName("充电中"); - break; - case 4: - settlementExportVO.setStatusName("停止中"); - break; - case 5: - settlementExportVO.setStatusName("已结束"); - break; + if (chargingOrder.getStatus()!=null){ + switch (chargingOrder.getStatus()){ + case 0: + settlementExportVO.setStatusName("未知"); + break; + case 1: + settlementExportVO.setStatusName("等待中/已插枪"); + break; + case 2: + settlementExportVO.setStatusName("启动中"); + break; + case 3: + settlementExportVO.setStatusName("充电中"); + break; + case 4: + settlementExportVO.setStatusName("停止中"); + break; + case 5: + settlementExportVO.setStatusName("已结束"); + break; + } } settlementExportVO.setOrderTypeName("充电订单"); settlementExportVO.setChargingType("单桩双充"); @@ -589,7 +591,6 @@ excelWriter.fill(new FillWrapper("data1", chargingBillVOS), fillConfig, writeSheet); excelWriter.fill(new FillWrapper("data2", chargingBillVOS), fillConfig, writeSheet2); excelWriter.fill(new FillWrapper("data3", data.getList()), fillConfig, writeSheet3); - excelWriter.fill(new FillWrapper("data4", data.getList()), fillConfig, writeSheet3); excelWriter.finish(); } catch (Exception e) { return R.fail("excel导出失败!"); diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java index bca4199..4a4feea 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java @@ -27,6 +27,9 @@ import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.log.enums.OperatorType; import com.ruoyi.common.redis.service.RedisService; +import com.ruoyi.order.api.feignClient.ChargingOrderClient; +import com.ruoyi.order.api.model.TChargingOrder; +import com.ruoyi.order.api.vo.TChargingOrderVo; import com.ruoyi.other.api.domain.TVip; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -41,9 +44,8 @@ import java.math.BigDecimal; import java.time.LocalDateTime; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * <p> @@ -66,6 +68,9 @@ @Resource private TFaultMessageService faultMessageService; + + @Resource + private ChargingOrderClient chargingOrderClient; @Autowired @@ -206,7 +211,7 @@ */ @ResponseBody @PostMapping("/getChargingPileById/{id}") - public R<TChargingPile> getChargingPileById(@PathVariable Integer id){ + public R<TChargingPile> getChargingPileById(@PathVariable("id") Integer id){ TChargingPile chargingPile = chargingPileService.getById(id); return R.ok(chargingPile); } @@ -214,69 +219,94 @@ /** * 更新充电桩状态 - * @param code * @param status */ @ResponseBody @PostMapping("/updateChargingPileStatus") - public void updateChargingPileStatus(@RequestParam("code") String code, @RequestParam("status") Integer status){ - TChargingPile chargingPile = chargingPileService.getOne(new LambdaQueryWrapper<TChargingPile>() - .eq(TChargingPile::getCode, code).eq(TChargingPile::getDelFlag, 0)); - if(null != chargingPile){ - //充电桩正常,返回异常,处理充电桩状态和添加故障记录 - if(chargingPile.getStatus() == 1 && 1 == status){ - List<TFaultMessage> faultMessages = faultMessageService.list(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingPileId, chargingPile.getId()) - .eq(TFaultMessage::getStatus, 2).eq(TFaultMessage::getDelFlag, 0).isNull(TFaultMessage::getEndTime)); - if(faultMessages.isEmpty()){ - TFaultMessage faultMessage = new TFaultMessage(); - faultMessage.setSiteId(chargingPile.getSiteId()); - faultMessage.setChargingPileId(chargingPile.getId()); - faultMessage.setStatus(2); - faultMessage.setDownTime(LocalDateTime.now()); - faultMessage.setCreateTime(LocalDateTime.now()); - faultMessage.setDelFlag(false); - faultMessage.setContent("设备故障"); - faultMessageService.save(faultMessage); - + public void updateChargingPileStatus(@RequestParam("pile_code") String pile_code, @RequestParam("gun_code") String gun_code, @RequestParam("status") Integer status){ + Map<String, Object> charging_pile_online = redisService.getCacheMap("charging_gun_online"); + Long time = (Long) charging_pile_online.get(pile_code + gun_code); + //小于30秒才处理数据,防止频繁查询数据 + if(null != time && (System.currentTimeMillis() - time) < 30000){ + return; + } + TChargingGun tChargingGun = chargingGunService.getOne(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getFullNumber, (pile_code + gun_code)).eq(TChargingGun::getDelFlag, 0)); + if(null != tChargingGun){ + TChargingPile chargingPile = chargingPileService.getById(tChargingGun.getChargingPileId()); + //枪处于离线或者故障,返回状态为正常,则修改其状态 + if(0 == status && tChargingGun.getStatus() != 2){ + TChargingGun tChargingGun1 = new TChargingGun(); + tChargingGun1.setId(tChargingGun.getId()); + tChargingGun1.setStatus(2); + chargingGunService.updateById(tChargingGun1); + if(chargingPile.getStatus() != 1){ TChargingPile chargingPile1 = new TChargingPile(); chargingPile1.setId(chargingPile.getId()); - chargingPile1.setStatus(3); + chargingPile1.setStatus(1); chargingPileService.updateById(chargingPile1); - - List<TChargingGun> list1 = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, chargingPile.getId())); - for (TChargingGun chargingGun : list1) { - TChargingGun chargingGun1 = new TChargingGun(); - chargingGun1.setId(chargingGun.getId()); - chargingGun1.setStatus(7); - chargingGunService.updateById(chargingGun1); - } } - } - if(chargingPile.getStatus() != 1 && 0 == status){ - List<TFaultMessage> list = faultMessageService.list(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingPileId, chargingPile.getId()) + + List<TFaultMessage> list = faultMessageService.list(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingGunId, tChargingGun.getId()) .isNull(TFaultMessage::getEndTime)); if(!list.isEmpty()){ list.forEach(s->s.setEndTime(LocalDateTime.now())); faultMessageService.updateBatchById(list); } - - TChargingPile chargingPile1 = new TChargingPile(); - chargingPile1.setId(chargingPile.getId()); - chargingPile1.setStatus(1); - chargingPileService.updateById(chargingPile1); - - List<TChargingGun> list1 = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, chargingPile.getId())); - for (TChargingGun chargingGun : list1) { - TChargingGun chargingGun1 = new TChargingGun(); - chargingGun1.setId(chargingGun.getId()); - chargingGun1.setStatus(2); - chargingGunService.updateById(chargingGun1); - } } - if(0 == status){ - Map<String, Object> charging_pile_online = redisService.getCacheMap("charging_pile_online"); - charging_pile_online.put(code, System.currentTimeMillis()); - redisService.setCacheMap("charging_pile_online", charging_pile_online); + //枪处于正常,返回状态为故障,则修改其状态 + if(1 == status && tChargingGun.getStatus() != 1 && tChargingGun.getStatus() != 7){ + TChargingGun tChargingGun1 = new TChargingGun(); + tChargingGun1.setId(tChargingGun.getId()); + tChargingGun1.setStatus(7); + chargingGunService.updateById(tChargingGun1); + + //桩处于正常,桩所属的枪都处于非正常,修改桩状态为异常 + List<TChargingGun> list = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, chargingPile.getId()).eq(TChargingGun::getDelFlag, 0)); + int size = list.stream().filter(s -> s.getStatus() == 1 || s.getStatus() == 7).collect(Collectors.toList()).size(); + if(chargingPile.getStatus() == 1 && list.size() == size){ + TChargingPile chargingPile1 = new TChargingPile(); + chargingPile1.setId(chargingPile.getId()); + chargingPile1.setStatus(3); + chargingPileService.updateById(chargingPile1); + } + + TFaultMessage faultMessage = new TFaultMessage(); + faultMessage.setSiteId(chargingPile.getSiteId()); + faultMessage.setChargingPileId(chargingPile.getId()); + faultMessage.setChargingGunId(tChargingGun.getId()); + faultMessage.setStatus(2); + faultMessage.setDownTime(LocalDateTime.now()); + faultMessage.setCreateTime(LocalDateTime.now()); + faultMessage.setDelFlag(false); + faultMessage.setContent("设备故障"); + faultMessageService.save(faultMessage); + } + + if(1 != status){ + charging_pile_online.put(tChargingGun.getFullNumber(), System.currentTimeMillis()); + redisService.setCacheMap("charging_gun_online", charging_pile_online); + } + if(2 == status){ + TChargingOrderVo order = new TChargingOrderVo(); + order.setChargingPileId(tChargingGun.getChargingPileId()); + order.setChargingGunId(tChargingGun.getId()); + order.setStatusList(Arrays.asList(1, 2, 3, 4, 5)); + List<TChargingOrder> orders = chargingOrderClient.getChargingOrder(order).getData(); + if(orders.size() > 0){ + TChargingOrder chargingOrder = orders.get(0); + TChargingGun tChargingGun1 = new TChargingGun(); + if(Arrays.asList(1, 2).contains(chargingOrder.getStatus())){ + tChargingGun1.setStatus(3); + } + if(Arrays.asList(3).contains(chargingOrder.getStatus())){ + tChargingGun1.setStatus(4); + } + if(Arrays.asList(4).contains(chargingOrder.getStatus()) && chargingOrder.getEndMode() == 2){ + tChargingGun1.setStatus(5); + } + tChargingGun1.setId(tChargingGun.getId()); + chargingGunService.updateById(tChargingGun1); + } } } } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java index 3c8920c..7db9f8c 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java @@ -148,7 +148,7 @@ .eq(TParkingLot::getSiteId, siteId))); } - @PostMapping(value = "/getRecordById") + @GetMapping(value = "/getRecordById") public R<TParkingRecord> getRecordById(@RequestParam("id") Long id){ return R.ok(parkingRecordService.getById(id)); } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java index 041fbc6..5d91a4c 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java @@ -70,8 +70,11 @@ .page(Page.of(query.getPageCurr(), query.getPageSize())); for (TParkingRecord record : page.getRecords()) { - record.setName(parkingLotService.getById(record.getParkingLotId()).getName()); + TParkingLot byId = parkingLotService.getById(record.getParkingLotId()); record.setUid(record.getId().toString()); + if (byId!=null) { + record.setParkName(byId.getName()); + } } return R.ok(page); } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java index 7fb53ff..fd964e2 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java @@ -1,6 +1,8 @@ package com.ruoyi.chargingPile.controller; +import com.ruoyi.account.api.feignClient.AppUserClient; +import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.chargingPile.api.model.TFaultMessage; import com.ruoyi.chargingPile.api.model.TRepair; import com.ruoyi.chargingPile.service.TRepairService; @@ -38,8 +40,8 @@ private TRepairService repairService; @Resource private TokenService tokenService; - @Autowired - private SysUserClient userClient; + @Resource + private AppUserClient appUserClient; /** * 添加故障报修管理 @@ -50,9 +52,9 @@ public AjaxResult<String> add(@Validated @RequestBody TRepair dto) { Long userId = tokenService.getLoginUserApplet().getUserId(); // 查询报修人员信息 - SysUser user = userClient.getSysUser(userId).getData(); - if(Objects.nonNull(user)){ - dto.setRepairman(user.getUserName()); + TAppUser user = appUserClient.getUserById(userId).getData(); + if(Objects.nonNull(user)){ + dto.setRepairman(user.getName()); } repairService.add(dto); return AjaxResult.success(); @@ -61,7 +63,7 @@ @ResponseBody @GetMapping("/getRepairList") @ApiOperation(value = "获取报修记录列表数据", tags = {"管理后台-设备监控"}) - public AjaxResult<PageInfo<TRepair>> getRepairList(String name, String siteId, BasePage basePage){ + public AjaxResult<PageInfo<TRepair>> getRepairList(String name, Integer siteId, BasePage basePage){ PageInfo<TRepair> pageInfo = new PageInfo<>(basePage.getPageCurr(), basePage.getPageSize()); List<TRepair> repairList = repairService.getRepairList(pageInfo, name, siteId); pageInfo.setRecords(repairList); diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java index c15b6af..dfe127a 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java @@ -113,7 +113,7 @@ TVehicleRamp vehicleRamp = vehicleRampService.getById(dto.getId()); TParkingLot parkingLot = parkingLotService.getById(vehicleRamp.getParkingLotId()); SwitchwayGateReq req = new SwitchwayGateReq(); - req.setAction(vehicleRamp.getAction()); + req.setAction(dto.getAction()); req.setChannel(vehicleRamp.getCarportNum()); req.setAppkey(parkingLot.getAppKey()); req.setSecretkey(parkingLot.getSecretKey()); diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileNotificationMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileNotificationMapper.java index d093e4c..abc3c3d 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileNotificationMapper.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileNotificationMapper.java @@ -27,4 +27,16 @@ */ List<TChargingPileNotification> chargingPileNotificationPageList(PageInfo<TChargingPileNotification> pageInfo, @Param("siteIds") Set<Integer> siteIds); + /** + * 保存通知数据 + * @param siteId + * @param chargingPileId + * @param phone + * @param content + */ + void saveData(@Param("siteId") Integer siteId, + @Param("chargingPileId")Integer chargingPileId, + @Param("phone")String phone, + @Param("content")String content); + } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TFaultMessageMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TFaultMessageMapper.java index 70c0e9c..f85b500 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TFaultMessageMapper.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TFaultMessageMapper.java @@ -20,8 +20,7 @@ /** * 获取故障信息列表 * @param pageInfo - * @param siteId * @return */ - List<TFaultMessage> getFaultMessageList(PageInfo<TFaultMessage> pageInfo, @Param("siteId") Integer siteId); + List<TFaultMessage> getFaultMessageList(PageInfo<TFaultMessage> pageInfo, @Param("siteIds") List<Integer> siteIds); } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TRepairMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TRepairMapper.java index c9190aa..1da2e90 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TRepairMapper.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TRepairMapper.java @@ -22,9 +22,9 @@ * 获取列表数据 * @param pageInfo * @param name - * @param siteId + * @param siteIds * @return */ - List<TRepair> getRepairList(PageInfo<TRepair> pageInfo, @Param("name") String name, @Param("siteId") String siteId); + List<TRepair> getRepairList(PageInfo<TRepair> pageInfo, @Param("name") String name, @Param("siteIds") List<Integer> siteIds); } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TRepairService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TRepairService.java index 02edf11..9bedb5f 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TRepairService.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TRepairService.java @@ -23,7 +23,7 @@ * @param siteId * @return */ - List<TRepair> getRepairList(PageInfo<TRepair> pageInfo, String name, String siteId); + List<TRepair> getRepairList(PageInfo<TRepair> pageInfo, String name, Integer siteId); /** * 添加报修记录 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 9a33506..3a4d301 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 @@ -1,9 +1,13 @@ package com.ruoyi.chargingPile.service.impl; +import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.api.feignClient.AppUserClient; +import com.ruoyi.account.api.feignClient.AppUserVipDetailClient; import com.ruoyi.account.api.model.TAppUser; +import com.ruoyi.account.api.model.TAppUserVipDetail; +import com.ruoyi.account.api.vo.GetAppUserVipDetail; import com.ruoyi.chargingPile.api.dto.GetSiteListDTO; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.model.TChargingGun; @@ -18,6 +22,7 @@ import com.ruoyi.chargingPile.domain.SiteMenu; import com.ruoyi.chargingPile.mapper.SiteMapper; import com.ruoyi.chargingPile.service.*; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.ServletUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.AjaxResult; @@ -80,7 +85,8 @@ @Resource private IntegrationClient integrationClient; - + @Resource + private AppUserVipDetailClient vipDetailClient; /** @@ -88,6 +94,7 @@ * @param siteList * @return */ + @Override public PageInfo<GetSiteListDTO> getSiteList(GetSiteList siteList) { Set<Integer> ids = null; @@ -95,12 +102,15 @@ SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData(); Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); + R<Integer> admin = sysUserClient.isAdmin(SecurityUtils.getUserId()); //合作商 if(roleType == 2){ ids = partnerService.authSite(objectId, SiteMenu.SITE_LIST); }else{ //非管理员需要根据角色和用户配置查询允许的站点数据 - if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ + //改用roleId=1来判断 + if(admin.getData()!=1){ +// if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData(); List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData(); if(data2.size() > 0){ @@ -134,12 +144,14 @@ SysUser sysUser = sysUserClient.getSysUser(userId).getData(); Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); + R<Integer> admin = sysUserClient.isAdmin(SecurityUtils.getUserId()); + //合作商 if(roleType == 2){ ids = partnerService.authSite(objectId, SiteMenu.SITE_LIST); }else{ //非管理员需要根据角色和用户配置查询允许的站点数据 - if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ + if(admin.getData()!=1){ List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData(); List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData(); List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData(); @@ -280,9 +292,9 @@ @Override public PageInfo<SiteVO> pageList(SiteQuery query,Integer isLogin) { TAppUser appUser = null; + // 获取当前登录用户id + Long userId = tokenService.getLoginUserApplet().getUserId(); if(isLogin == 1){ - // 获取当前登录用户id - Long userId = tokenService.getLoginUserApplet().getUserId(); // 根据id查询用户信息 appUser = appUserClient.getUserById(userId).getData(); } @@ -290,7 +302,14 @@ List<SiteVO> list = this.baseMapper.pageList(query,pageInfo); if(Objects.nonNull(appUser) && Objects.nonNull(appUser.getVipId())){ // 查询会员信息 - TVip vip = vipClient.getInfo1(appUser.getVipId()).getData(); +// TVip vip = vipClient.getInfo1(appUser.getVipId()).getData(); + GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail(); + getAppUserVipDetail.setAppUserId(userId); + getAppUserVipDetail.setVipId(appUser.getVipId()); + R<TAppUserVipDetail> appUserVipDetail = vipDetailClient.getAppUserVipDetail(getAppUserVipDetail); + TAppUserVipDetail data1 = appUserVipDetail.getData(); + String vipJson = data1.getVipJson(); + TVip vip = JSON.parseObject(vipJson, TVip.class); if(Objects.nonNull(vip) && vip.getType() == 2){ list.forEach(item -> { if(Objects.nonNull(vip.getDiscount())){ @@ -380,7 +399,14 @@ List<SiteVO> list = this.baseMapper.getMapSiteList(query); if(Objects.nonNull(appUser) && Objects.nonNull(appUser.getVipId())){ // 查询会员信息 - TVip vip = vipClient.getInfo1(appUser.getVipId()).getData(); +// TVip vip = vipClient.getInfo1(appUser.getVipId()).getData(); + GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail(); + getAppUserVipDetail.setAppUserId(userId); + getAppUserVipDetail.setVipId(appUser.getVipId()); + R<TAppUserVipDetail> appUserVipDetail = vipDetailClient.getAppUserVipDetail(getAppUserVipDetail); + TAppUserVipDetail data1 = appUserVipDetail.getData(); + String vipJson = data1.getVipJson(); + TVip vip = JSON.parseObject(vipJson, TVip.class); if(Objects.nonNull(vip) && vip.getType() == 2){ list.forEach(item -> { item.setVipElectrovalence(vip.getDiscount().divide(new BigDecimal(10)).multiply(item.getServiceCharge()).add(item.getElectrovalenceOriginal())); diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java index 9bead20..67f62d0 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java @@ -95,20 +95,10 @@ @Override public void saveData(Integer type,Integer siteId,Integer chargingPileId, String phone, String data) { TChargingPileNotification notification = new TChargingPileNotification(); - switch (type){ - case 1: - // 验证码 - notification.setPhone(phone); - notification.setContent(data); - break; - default: - // 停车占位 - notification.setSiteId(siteId); - notification.setChargingPileId(chargingPileId); - notification.setPhone(phone); - notification.setContent(data); - break; - } + notification.setSiteId(siteId); + notification.setChargingPileId(chargingPileId); + notification.setPhone(phone); + notification.setContent(data); this.save(notification); } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java index 70a11ec..f7019e4 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java @@ -170,19 +170,19 @@ return AjaxResult.error("设备编号已存在"); } //调用华为Iot创建设备 - AddDevice addDevice = new AddDevice(); - addDevice.setProductId("66da68d21837002b28b34ec0"); - addDevice.setNodeId(chargingPile.getCode()); - addDevice.setDeviceName(chargingPile.getName()); - addDevice.setDescription(chargingPile.getNumber().toString()); - AddDeviceResp deviceResp = iotInterfaceClient.addDevice(addDevice).getData(); - if(null != deviceResp){ - int httpStatusCode = deviceResp.getHttpStatusCode(); - if(httpStatusCode == 201){ - chargingPile.setIotdDeviceId(deviceResp.getDeviceId()); - this.save(chargingPile); - } - } +// AddDevice addDevice = new AddDevice(); +// addDevice.setProductId("66da68d21837002b28b34ec0"); +// addDevice.setNodeId(chargingPile.getCode()); +// addDevice.setDeviceName(chargingPile.getName()); +// addDevice.setDescription(chargingPile.getNumber().toString()); +// AddDeviceResp deviceResp = iotInterfaceClient.addDevice(addDevice).getData(); +// if(null != deviceResp){ +// int httpStatusCode = deviceResp.getHttpStatusCode(); +// if(httpStatusCode == 201){ +// chargingPile.setIotdDeviceId(deviceResp.getDeviceId()); +// } +// } + this.save(chargingPile); return AjaxResult.success(); } @@ -266,12 +266,12 @@ for (Integer id : ids) { TChargingPile chargingPile = this.getById(id); //调用华为Iot删除设备 - if(StringUtils.isNotEmpty(chargingPile.getIotdDeviceId())){ - DeleteDeviceResp deviceResp = iotInterfaceClient.deleteDevice(chargingPile.getIotdDeviceId()).getData(); - if(null != deviceResp && deviceResp.getHttpStatusCode() == 0){ - this.removeById(chargingPile); - } - } +// if(StringUtils.isNotEmpty(chargingPile.getIotdDeviceId())){ +// DeleteDeviceResp deviceResp = iotInterfaceClient.deleteDevice(chargingPile.getIotdDeviceId()).getData(); +// if(null != deviceResp && deviceResp.getHttpStatusCode() == 0){ +// } +// } + this.removeById(chargingPile); } return AjaxResult.success(); } @@ -482,13 +482,14 @@ Set<Integer> siteIds = new HashSet<>(); if(0 == query.getSiteId()){ SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData(); + R<Integer> admin = sysUserClient.isAdmin(SecurityUtils.getUserId()); Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); if(2 == roleType){ siteIds = partnerService.authSite(objectId, SiteMenu.SITE_LIST); }else{ //非管理员需要根据角色和用户配置查询允许的站点数据 - if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ + if(admin.getData()!=1){ List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData(); List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData(); List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData(); @@ -585,30 +586,39 @@ */ @Override public void updateStatus() { - List<TChargingPile> list = this.list(new LambdaQueryWrapper<TChargingPile>().eq(TChargingPile::getDelFlag, 0)); - Map<String, Object> charging_pile_online = redisService.getCacheMap("charging_pile_online"); - for (TChargingPile chargingPile : list) { - Long time = (Long) charging_pile_online.get(chargingPile.getCode()); + Map<String, Object> charging_gun_online = redisService.getCacheMap("charging_gun_online"); + Set<String> keySet = charging_gun_online.keySet(); + List<TChargingGun> list = new ArrayList<>(); + if(keySet.size() > 0){ + list = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getDelFlag, 0).in(TChargingGun::getFullNumber, keySet)); + } + for (TChargingGun chargingGun : list) { + Long time = (Long) charging_gun_online.get(chargingGun.getFullNumber()); if(null != time && System.currentTimeMillis() - time > 60000){ - TChargingPile chargingPile1 = new TChargingPile(); - chargingPile1.setId(chargingPile.getId()); - chargingPile1.setStatus(2); - this.updateById(chargingPile1); - List<TChargingGun> list1 = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, chargingPile.getId())); - for (TChargingGun chargingGun : list1) { - TChargingGun chargingGun1 = new TChargingGun(); - chargingGun1.setId(chargingGun.getId()); - chargingGun1.setStatus(1); - chargingGunService.updateById(chargingGun1); + TChargingGun chargingGun1 = new TChargingGun(); + chargingGun1.setId(chargingGun.getId()); + chargingGun1.setStatus(1); + chargingGunService.updateById(chargingGun1); + + //桩处于正常,桩所属的枪都处于非正常,修改桩状态为异常 + TChargingPile chargingPile = this.getById(chargingGun.getChargingPileId()); + List<TChargingGun> list1 = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, chargingPile.getId()).eq(TChargingGun::getDelFlag, 0)); + int size = list1.stream().filter(s -> s.getStatus() == 1 || s.getStatus() == 7).collect(Collectors.toList()).size(); + if(chargingPile.getStatus() == 1 && list1.size() == size){ + TChargingPile chargingPile1 = new TChargingPile(); + chargingPile1.setId(chargingGun.getChargingPileId()); + chargingPile1.setStatus(2); + this.updateById(chargingPile1); } //添加记录 - TFaultMessage faultMessage = faultMessageService.getOne(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingPileId, chargingPile.getId()) - .eq(TFaultMessage::getStatus, 1).eq(TFaultMessage::getDelFlag, 0).isNull(TFaultMessage::getEndTime)); + TFaultMessage faultMessage = faultMessageService.getOne(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingPileId, chargingGun.getChargingPileId()) + .eq(TFaultMessage::getChargingGunId, chargingGun.getId()).eq(TFaultMessage::getStatus, 1).eq(TFaultMessage::getDelFlag, 0).isNull(TFaultMessage::getEndTime)); if(null == faultMessage){ faultMessage = new TFaultMessage(); - faultMessage.setSiteId(chargingPile.getSiteId()); - faultMessage.setChargingPileId(chargingPile.getId()); + faultMessage.setSiteId(chargingGun.getSiteId()); + faultMessage.setChargingPileId(chargingGun.getChargingPileId()); + faultMessage.setChargingGunId(chargingGun.getId()); faultMessage.setStatus(1); faultMessage.setDownTime(LocalDateTime.now()); faultMessage.setCreateTime(LocalDateTime.now()); diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TFaultMessageServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TFaultMessageServiceImpl.java index c9cf126..6ddc88c 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TFaultMessageServiceImpl.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TFaultMessageServiceImpl.java @@ -2,24 +2,33 @@ import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.chargingPile.api.feignClient.PartnerClient; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.model.TChargingPile; import com.ruoyi.chargingPile.api.model.TFaultMessage; +import com.ruoyi.chargingPile.domain.SiteMenu; import com.ruoyi.chargingPile.mapper.TFaultMessageMapper; -import com.ruoyi.chargingPile.service.ISiteService; -import com.ruoyi.chargingPile.service.TChargingPileNotificationService; -import com.ruoyi.chargingPile.service.TChargingPileService; -import com.ruoyi.chargingPile.service.TFaultMessageService; +import com.ruoyi.chargingPile.service.*; import com.ruoyi.common.core.constant.MsgConstants; import com.ruoyi.common.core.utils.HttpUtils; import com.ruoyi.common.core.utils.MsgUtil; import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.other.api.feignClient.RoleSiteClient; +import com.ruoyi.other.api.feignClient.UserSiteClient; +import com.ruoyi.system.api.domain.SysUser; +import com.ruoyi.system.api.feignClient.SysUserClient; +import com.ruoyi.system.api.feignClient.SysUserRoleClient; +import com.ruoyi.system.api.model.SysUserRoleVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; +import java.util.Set; /** * <p> @@ -39,6 +48,21 @@ private TChargingPileService chargingPileService; @Autowired private TChargingPileNotificationService chargingPileNotificationService; + + @Resource + private SysUserClient sysUserClient; + + @Resource + private IPartnerService partnerService; + + @Resource + private UserSiteClient userSiteClient; + + @Resource + private RoleSiteClient roleSiteClient; + + @Resource + private SysUserRoleClient sysUserRoleClient; @Override public void add(TFaultMessage dto) { @@ -66,6 +90,29 @@ */ @Override public List<TFaultMessage> getFaultMessageList(PageInfo<TFaultMessage> pageInfo, Integer siteId) { - return this.baseMapper.getFaultMessageList(pageInfo, siteId); + //校验合作商权限 + List<Integer> siteIds = new ArrayList<>(); + if(null == siteId || 0 == siteId){ + SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData(); + Integer roleType = sysUser.getRoleType(); + Integer objectId = sysUser.getObjectId(); + //合作商 + if(roleType == 2){ + Set<Integer> data = partnerService.authSite(objectId, SiteMenu.SITE_LIST); + siteIds = new ArrayList<>(data); + }else{ + //非管理员需要根据角色和用户配置查询允许的站点数据 + if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ + List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData(); + List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData(); + List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData(); + data.addAll(data1); + siteIds = data; + } + } + }else{ + siteIds.add(siteId); + } + return this.baseMapper.getFaultMessageList(pageInfo, siteIds); } } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TRepairServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TRepairServiceImpl.java index 3832dc5..c1f07c9 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TRepairServiceImpl.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TRepairServiceImpl.java @@ -5,24 +5,32 @@ import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.model.TChargingPile; import com.ruoyi.chargingPile.api.model.TRepair; +import com.ruoyi.chargingPile.domain.SiteMenu; import com.ruoyi.chargingPile.mapper.TRepairMapper; -import com.ruoyi.chargingPile.service.ISiteService; -import com.ruoyi.chargingPile.service.TChargingPileNotificationService; -import com.ruoyi.chargingPile.service.TChargingPileService; -import com.ruoyi.chargingPile.service.TRepairService; +import com.ruoyi.chargingPile.service.*; import com.ruoyi.common.core.constant.MsgConstants; import com.ruoyi.common.core.utils.HttpUtils; import com.ruoyi.common.core.utils.MsgUtil; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.page.BasePage; import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.other.api.feignClient.RoleSiteClient; +import com.ruoyi.other.api.feignClient.UserSiteClient; +import com.ruoyi.system.api.domain.SysUser; +import com.ruoyi.system.api.feignClient.SysUserClient; +import com.ruoyi.system.api.feignClient.SysUserRoleClient; +import com.ruoyi.system.api.model.SysUserRoleVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Set; /** * <p> @@ -41,6 +49,25 @@ private TChargingPileService chargingPileService; @Autowired private TChargingPileNotificationService chargingPileNotificationService; + + @Resource + private SysUserClient sysUserClient; + + @Resource + private IPartnerService partnerService; + + @Resource + private UserSiteClient userSiteClient; + + @Resource + private RoleSiteClient roleSiteClient; + + @Resource + private SysUserRoleClient sysUserRoleClient; + + + + /** * 获取报修记录列表 * @param name @@ -48,8 +75,31 @@ * @return */ @Override - public List<TRepair> getRepairList(PageInfo<TRepair> pageInfo, String name, String siteId) { - return this.baseMapper.getRepairList(pageInfo, name, siteId); + public List<TRepair> getRepairList(PageInfo<TRepair> pageInfo, String name, Integer siteId) { + //校验合作商权限 + List<Integer> siteIds = new ArrayList<>(); + if(null == siteId || 0 == siteId){ + SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData(); + Integer roleType = sysUser.getRoleType(); + Integer objectId = sysUser.getObjectId(); + //合作商 + if(roleType == 2){ + Set<Integer> data = partnerService.authSite(objectId, SiteMenu.SITE_LIST); + siteIds = new ArrayList<>(data); + }else{ + //非管理员需要根据角色和用户配置查询允许的站点数据 + if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ + List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData(); + List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData(); + List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData(); + data.addAll(data1); + siteIds = data; + } + } + }else{ + siteIds.add(siteId); + } + return this.baseMapper.getRepairList(pageInfo, name, siteIds); } @Override diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml index c9b1ea5..34cc583 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml +++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml @@ -57,7 +57,7 @@ </if> AND site_id IS NULL AND (parent_id IS NULL OR audit_status = 1 OR audit_status = 2) - AND del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} + </where> ORDER BY create_time DESC </select> diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileMapper.xml index 6a5ef5e..2b4d866 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileMapper.xml +++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileMapper.xml @@ -87,7 +87,7 @@ select a.id, a.status, - CONCAT(b.number, a.name) as name, + CONCAT(b.name, a.name) as name, a.parking_number as parkingNumber from t_charging_gun a left join t_charging_pile b on (a.charging_pile_id = b.id) diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileNotificationMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileNotificationMapper.xml index e35a362..2901664 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileNotificationMapper.xml +++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileNotificationMapper.xml @@ -17,9 +17,23 @@ <sql id="Base_Column_List"> id, site_id, charging_pile_id, content, create_time, del_flag </sql> + <insert id="saveData"> + insert into t_charging_pile_notification( + <if test="siteId != null and siteId != 0">site_id,</if> + <if test="chargingPileId != null and chargingPileId != 0">charging_pile_id,</if> + <if test="phone != null and phone != ''">phone,</if> + <if test="content != null and content != ''">content,</if> + create_time + )values( + <if test="siteId != null and siteId != 0">#{siteId},</if> + <if test="chargingPileId != null and chargingPileId != 0">#{chargingPileId},</if> + <if test="phone != null and phone != ''">#{phone},</if> + <if test="content != null and content != ''">#{content},</if> + sysdate() + ) + </insert> - - + <select id="chargingPileNotificationPageList" resultType="com.ruoyi.chargingPile.api.model.TChargingPileNotification"> select a.id, diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TFaultMessageMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TFaultMessageMapper.xml index cd1ff30..538c633 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TFaultMessageMapper.xml +++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TFaultMessageMapper.xml @@ -32,8 +32,11 @@ left join t_charging_pile b on (a.charging_pile_id = b.id) left join t_site c on (a.site_id = c.id) where a.del_flag = 0 - <if test="null != siteId"> - and a.site_id = #{siteId} + <if test="null != siteIds and siteIds.size() > 0"> + and a.site_id in + <foreach collection="siteIds" item="item" index="index" open="(" close=")" separator=","> + #{item} + </foreach> </if> order by a.create_time desc </select> diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TRepairMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TRepairMapper.xml index 6c7b52f..6e02964 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TRepairMapper.xml +++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TRepairMapper.xml @@ -33,8 +33,11 @@ <if test="null != name and '' != name"> and a.repairman like CONCAT('%', #{name}, '%') </if> - <if test="null != siteId"> - and a.site_id = #{siteId} + <if test="null != siteIds and siteIds.size() > 0"> + and a.site_id in + <foreach collection="siteIds" item="item" index="index" open="(" separator="," close=")"> + #{item} + </foreach> </if> order by a.create_time desc </select> diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/model/SwitchwayGate.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/model/SwitchwayGate.java index 2ab74a0..c7750d3 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/model/SwitchwayGate.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/model/SwitchwayGate.java @@ -1,9 +1,13 @@ package com.ruoyi.integration.barrierGate.model; +import com.alibaba.nacos.common.utils.MD5Utils; import com.ruoyi.common.core.utils.MD5Util; import lombok.Data; import lombok.experimental.Accessors; import lombok.extern.slf4j.Slf4j; +import org.apache.tomcat.util.security.MD5Encoder; + +import java.nio.charset.Charset; /** * @author zhibing.pu @@ -46,5 +50,4 @@ this.setSign(encoder); return this; } - } diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/SwitchwayGateService.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/SwitchwayGateService.java index 4904d6b..ab49ae7 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/SwitchwayGateService.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/SwitchwayGateService.java @@ -40,18 +40,4 @@ } return success; } - - -// public static void main(String[] args) { -// SwitchwayGateService switchwayGateService = new SwitchwayGateService(); -// SwitchwayGateReq req = new SwitchwayGateReq(); -// req.setAction("close"); -// req.setChannel("001"); -// Boolean success = switchwayGateService.gateService(req); -// if(success){ -// log.info("调用成功"); -// }else{ -// log.info("调用失败"); -// } -// } } diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java index f1271ae..1fa5baf 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java @@ -43,13 +43,12 @@ /** * 批量查询 - * @param orderId * @return */ - @PostMapping(value = "/getOrderInfoByCodes") - public R<List<UploadRealTimeMonitoringData>> getOrderInfoByCodes(@RequestParam("orderId") String orderId){ + @GetMapping(value = "/getOrderInfoByCodes/{ids}") + public R<List<UploadRealTimeMonitoringData>> getOrderInfoByCodes(@PathVariable("ids") String ids){ List<UploadRealTimeMonitoringData> res = new ArrayList<>(); - for (String s : orderId.split(",")) { + for (String s : ids.split(",")) { List<UploadRealTimeMonitoringData> dataByOrderCode = uploadRealTimeMonitoringDataService.getDataByOrderCode(s); if(dataByOrderCode.size() > 0){ UploadRealTimeMonitoringData uploadRealTimeMonitoringData = dataByOrderCode.get(0); diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java index 2463e5e..ed002bf 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java @@ -6,6 +6,7 @@ import com.ruoyi.common.core.dto.MongoChargingOrderQuery; import java.text.ParseException; +import java.util.Date; import java.util.List; public interface UploadRealTimeMonitoringDataService extends BaseService<UploadRealTimeMonitoringData> { @@ -26,4 +27,6 @@ UploadRealTimeMonitoringData getLastDataById(String transaction_serial_number); void delete(String id); + + void updateById(String id); } diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java index c23a6a6..6d56cff 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java @@ -8,12 +8,14 @@ import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService; import com.ruoyi.common.core.dto.MongoChargingOrderQuery; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Service; import java.text.ParseException; @@ -68,7 +70,7 @@ // query.addCriteria(Criteria.where("transaction_serial_number").in(values)); // } if (mongoChargingOrderQuery.getCode() != null && !mongoChargingOrderQuery.getCode().isEmpty()) { - query.addCriteria(Criteria.where("transaction_serial_number").regex(mongoChargingOrderQuery.getCode(), "i")); // "i" 表示不区分大小写 + query.addCriteria(Criteria.where("transaction_serial_number").regex(mongoChargingOrderQuery.getCode(),"i")); // "i" 表示不区分大小写 } if (mongoChargingOrderQuery.getOrderType() !=null){ query.addCriteria(Criteria.where("orderType").is(mongoChargingOrderQuery.getOrderType())); @@ -86,21 +88,21 @@ query.addCriteria(Criteria.where("status").is(mongoChargingOrderQuery.getStatus())); } - if (mongoChargingOrderQuery.getStartTime() != null) { - String[] split = mongoChargingOrderQuery.getStartTime().split(" - "); + if (mongoChargingOrderQuery.getCreateTime() != null) { + String[] split = mongoChargingOrderQuery.getCreateTime().split(" - "); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date start = dateFormat.parse(split[0]); Date end = dateFormat.parse(split[1]); - query.addCriteria(Criteria.where("startTime").gte(start).lt(end)); + query.addCriteria(Criteria.where("create_time").gte(start).lt(end)); } - if (mongoChargingOrderQuery.getEndTime() != null && mongoChargingOrderQuery.getEndTime() != null) { - String[] split = mongoChargingOrderQuery.getEndTime().split(" - "); + if (mongoChargingOrderQuery.getLastTime() != null && mongoChargingOrderQuery.getLastTime() != null) { + String[] split = mongoChargingOrderQuery.getLastTime().split(" - "); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date start = dateFormat.parse(split[0]); Date end = dateFormat.parse(split[1]); - query.addCriteria(Criteria.where("lastTime").gte(start).lt(end)); + query.addCriteria(Criteria.where("last_time").gte(start).lt(end)); } @@ -112,17 +114,31 @@ long totalElements = mongoTemplate.count(query, UploadRealTimeMonitoringData.class); - // 设置分页 - Pageable pageable = PageRequest.of(mongoChargingOrderQuery.getPageCurr(), mongoChargingOrderQuery.getPageSize()); + + // 创建带有排序的 Pageable 对象 + Pageable pageable = PageRequest.of( + mongoChargingOrderQuery.getPageCurr()-1, + mongoChargingOrderQuery.getPageSize(), + Sort.by(Sort.Direction.DESC, "create_time") + ); + + // 设置分页和排序 query.with(pageable); - query.with(Sort.by(Sort.Direction.DESC,"create_time")); + + // 执行查询并获取 Page 对象 + List<UploadRealTimeMonitoringData> page = mongoTemplate.find(query, UploadRealTimeMonitoringData.class,"upload_real_time_monitoring_data"); + + // 设置分页 +// Pageable pageable = PageRequest.of(mongoChargingOrderQuery.getPageSize()*(mongoChargingOrderQuery.getPageCurr()-1), mongoChargingOrderQuery.getPageSize()); +// query.with(pageable); +// query.with(Sort.by(Sort.Direction.DESC,"create_time")); List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData = mongoTemplate.find( query , UploadRealTimeMonitoringData.class); UploadRealTimeMonitoringPageData uploadRealTimeMonitoringPageData = new UploadRealTimeMonitoringPageData(); uploadRealTimeMonitoringPageData.setCount(totalElements); - uploadRealTimeMonitoringPageData.setRecords(uploadRealTimeMonitoringData); + uploadRealTimeMonitoringPageData.setRecords(page); return uploadRealTimeMonitoringPageData; } @@ -145,4 +161,14 @@ mongoTemplate.remove(byId); } + @Override + public void updateById(String id) { + // 创建查询条件 + Query query = new Query(Criteria.where("_id").is(id)); + // 创建更新对象 + Update update = new Update().set("last_time", new Date()); + // 执行更新操作 + mongoTemplate.updateFirst(query, update, UploadRealTimeMonitoringData.class); + } + } diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java index be490dc..4a4cb95 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java @@ -149,7 +149,7 @@ BeanUtils.copyProperties(pingMessage,ping); pingService.create(ping); - chargingPileClient.updateChargingPileStatus(pingMessage.getCharging_pile_code(), pingMessage.getCharging_gun_status()); + chargingPileClient.updateChargingPileStatus(pingMessage.getCharging_pile_code(), pingMessage.getCharging_gun_code(), pingMessage.getCharging_gun_status()); break; case SendTagConstant.END_CHARGE: EndChargeMessage endChargeMessage = message.getEndChargeMessage(); @@ -201,7 +201,7 @@ uploadRealTimeMonitoringData.setElectrovalence_all(accountingStrategyDetail.getElectrovalence()); uploadRealTimeMonitoringData.setService_charge(accountingStrategyDetail.getServiceCharge()); if (Objects.nonNull(data)) { - data.setLast_time(new Date()); + uploadRealTimeMonitoringDataService.updateById(data.getId()); uploadRealTimeMonitoringData.setPeriod_electric_price(uploadRealTimeMonitoringDataMessage.getPaid_amount().subtract(data.getPaid_amount())); uploadRealTimeMonitoringData.setPeriod_charging_degree(uploadRealTimeMonitoringDataMessage.getCharging_degree().subtract(data.getCharging_degree())); uploadRealTimeMonitoringData.setPeriod_service_price(uploadRealTimeMonitoringDataMessage.getCharging_degree().multiply(accountingStrategyDetail.getServiceCharge()).setScale(4, RoundingMode.HALF_UP)); @@ -337,10 +337,12 @@ // 添加实时上传记录结束记录 // 查询mogondb上一条数据 UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataService.getLastDataById(transactionRecordMessage.getTransaction_serial_number()); - UploadRealTimeMonitoringData uploadRealTimeMonitoringData = new UploadRealTimeMonitoringData(); - BeanUtils.copyProperties(data,uploadRealTimeMonitoringData); - uploadRealTimeMonitoringData.setStatus(5); - uploadRealTimeMonitoringDataService.create(uploadRealTimeMonitoringData); + if(Objects.nonNull(data) && data.getStatus() != 5){ + UploadRealTimeMonitoringData uploadRealTimeMonitoringData = new UploadRealTimeMonitoringData(); + BeanUtils.copyProperties(data,uploadRealTimeMonitoringData); + uploadRealTimeMonitoringData.setStatus(5); + uploadRealTimeMonitoringDataService.create(uploadRealTimeMonitoringData); + } break; case SendTagConstant.UPDATE_BALANCE_REPLY: UpdateBalanceReplyMessage updateBalanceReplyMessage = message.getUpdateBalanceReplyMessage(); 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 8c33638..3932ca0 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 @@ -196,6 +196,7 @@ payOrderInfoDto.setPayAmount(byId.getPaymentAmount()); payOrderInfoDto.setPayTime(byId.getCreateTime()); payOrderInfoDto.setRefundAmount(byId.getRefundAmount()); + payOrderInfoDto.setRechargeAmount(byId.getRechargeAmount()); return R.ok(payOrderInfoDto); case 2: TShoppingOrder byId1 = shoppingOrderService.getById(orderId); @@ -207,6 +208,7 @@ payOrderInfoDto1.setPayAmount(byId1.getPaymentAmount()); payOrderInfoDto1.setPayTime(byId1.getCreateTime()); payOrderInfoDto1.setRefundAmount(byId1.getRefundAmount()); + payOrderInfoDto1.setRechargeAmount(byId1.getPaymentAmount()); return R.ok(payOrderInfoDto1); case 3: TVipOrder byId2 = vipOrderService.getById(orderId); @@ -218,6 +220,7 @@ payOrderInfoDto2.setPayAmount(byId2.getPaymentAmount()); payOrderInfoDto2.setPayTime(byId2.getCreateTime()); payOrderInfoDto2.setRefundAmount(byId2.getRefundAmount()); + payOrderInfoDto2.setRechargeAmount(byId2.getPaymentAmount()); return R.ok(payOrderInfoDto2); //todo luo 停车场订单 // case 4: @@ -368,6 +371,18 @@ String format = tChargingOrderAccountingStrategy.getCreateTime().format(formatter); tChargingOrderAccountingStrategy.setStartTime(format+" "+tChargingOrderAccountingStrategy.getStartTime()); tChargingOrderAccountingStrategy.setEndTime(format+" "+tChargingOrderAccountingStrategy.getEndTime()); + if (byId.getVipDiscountAmount()!=null && byId.getServiceCharge().compareTo(BigDecimal.ZERO) != 0){ + BigDecimal multiply = byId.getVipDiscountAmount().divide(byId.getServiceCharge(), 2) + .multiply(tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice()); + tChargingOrderAccountingStrategy.setVipDiscount(multiply); + } + bigDecimal = bigDecimal.add(tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice()); + + if (byId.getCouponDiscountAmount()!=null && byId.getServiceCharge().compareTo(BigDecimal.ZERO) != 0){ + BigDecimal multiply = byId.getCouponDiscountAmount().divide(byId.getServiceCharge(), 2) + .multiply(tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice()); + tChargingOrderAccountingStrategy.setCouponDiscount(multiply); + } } chargingOrderInfoVO.setList(list); return AjaxResult.success(chargingOrderInfoVO); @@ -500,7 +515,7 @@ @PostMapping(value = "/chargingOrderWXCallback") public void chargingOrderWXCallback(@RequestParam("out_trade_no") String out_trade_no, @RequestParam("transaction_id") String transaction_id, @RequestParam("attach") String attach) { - AjaxResult ajaxResult = chargingOrderService.chargingOrderCallback(1, out_trade_no, transaction_id, attach); + chargingOrderService.chargingOrderCallback(1, out_trade_no, transaction_id, attach); } @@ -765,6 +780,9 @@ LocalDate sixBefore = PreviousSixMonths.get(); Map<String,Object> map = chargingOrderService.countAll(sixBefore); BigDecimal data = parkingLotClient.getRecordAmount(sixBefore).getData(); + if (map ==null){ + map = new HashMap<String,Object>(); + } map.put("parkingAmount",data); BigDecimal data1 = shoppingOrderService.getSumAmount(sixBefore); map.put("shopAmount",data1); @@ -784,7 +802,8 @@ public R watchChargingOrder(@RequestBody MongoChargingOrderQuery mongoChargingOrderQuery) { mongoChargingOrderQuery.setPageSize(10); - UploadRealTimeMonitoringPageData data1 = uploadRealTimeMonitoringDataClient.getAll(mongoChargingOrderQuery).getData(); + R<UploadRealTimeMonitoringPageData> all = uploadRealTimeMonitoringDataClient.getAll(mongoChargingOrderQuery); + UploadRealTimeMonitoringPageData data1 = all.getData(); List<ChargingOrderAndUploadRealTimeMonitoringDataDto> dtos = new ArrayList<>(); Map<String,ChargingOrderVO> map = new HashMap<>(); @@ -898,16 +917,13 @@ // 获取当前日期 LocalDate today = LocalDate.now(); start = statisticsQueryDto.getStartTime(); - end = statisticsQueryDto.getEndTime(); + end = statisticsQueryDto.getEndTime().plusDays(1); // 获取本月1号的日期 - YearMonth yearMonth = YearMonth.from(today); // start = yearMonth.atDay(1); // // System.out.println("本月1号是: " + start); }else if (statisticsQueryDto.getDayType()==4){ - LocalDate today = LocalDate.now(); - // 获取当前年份 - int currentYear = today.getYear(); + // 获取今年1月1日的日期 start = statisticsQueryDto.getStartTime(); end = statisticsQueryDto.getEndTime(); @@ -916,7 +932,11 @@ // 获取今年1月1日的日期 start = statisticsQueryDto.getStartTime(); end = statisticsQueryDto.getEndTime(); + if (start.equals(end)){ + end = end.plusDays(1); + } } + List<TChargingOrder> list = chargingOrderService.lambdaQuery().ge(TChargingOrder::getCreateTime, start).le(TChargingOrder::getCreateTime, end).in(TChargingOrder::getSiteId, siteIds).list(); List<Long> chargingOrderIds = list.stream().map(TChargingOrder::getId).collect(Collectors.toList()); chargingOrderIds.add(-1L); @@ -1016,6 +1036,7 @@ LocalDate startDate = statisticsQueryDto.getStartTime(); LocalDate endDate = statisticsQueryDto.getEndTime(); + List<Map<String, Object>> dateRangeStatistics = new ArrayList<>(); // 遍历日期范围 @@ -1045,6 +1066,8 @@ LocalDate startDate = statisticsQueryDto.getStartTime(); LocalDate endDate = statisticsQueryDto.getEndTime(); + + List<Map<String, Object>> dateRangeStatistics = new ArrayList<>(); @@ -1165,6 +1188,8 @@ tCharingUserMapVO.setMap(charMap); tCharingUserMapVO.setMap1(charMap1); }else { + + List<Map<String,Object>> map = chargingOrderService.usersByQuery(statisticsQueryDto); @@ -1245,8 +1270,19 @@ //车辆用途 List<Map<String, Object>> carMap = chargingOrderService.carUserMethod(); + //车辆品牌 List<Map<String, Object>> carBrandMap = chargingOrderService.carUserBrand(); + List<String> brands = new ArrayList<>(); + for (Map<String, Object> objectMap : carBrandMap) { + brands.add(objectMap.get("vehicle_brand").toString()); + } + + Long count = chargingOrderService.countCar(brands); + Map<String, Object> others = new HashMap<>(); + others.put("vehicle_brand","其他"); + others.put("counts",count); + carBrandMap.add(others); //本地车数量 Map<String,Object> localCarMap = chargingOrderService.countLocalCar(); @@ -1309,7 +1345,7 @@ @ApiOperation(value = "电站评价", tags = {"管理后台-数据分析-设备运维分析"}) public R<TCharingUserEquimentVO> equipment(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto){ List<Integer> siteIds =new ArrayList<>(); - if (statisticsQueryDto.getSiteId()==null) { + if (statisticsQueryDto.getSiteId()==null||statisticsQueryDto.getSiteId()==0) { Long userId = SecurityUtils.getUserId(); //获取当前登录的siteIds List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData(); @@ -1669,7 +1705,7 @@ Long userId = tokenService.getLoginUserApplet().getUserId(); List<TChargingOrder> list = chargingOrderService.list(Wrappers.lambdaQuery(TChargingOrder.class) .eq(TChargingOrder::getAppUserId, userId) - .eq(TChargingOrder::getStatus, 3)); + .in(TChargingOrder::getStatus, Arrays.asList(1,2,3,4))); List<Integer> gunIds = list.stream().map(TChargingOrder::getChargingGunId).collect(Collectors.toList()); return R.ok(gunIds); } @@ -1773,4 +1809,16 @@ EndOfChargePageInfo endOfChargePageInfo = chargingOrderService.getEndOfChargePageInfo(id); return AjaxResult.success(endOfChargePageInfo); } + + + /** + * 获取订单数据 + * @param order + * @return + */ + @PostMapping("/getChargingOrder") + public R<List<TChargingOrder>> getChargingOrder(@RequestBody TChargingOrderVo order){ + List<TChargingOrder> chargingOrder = chargingOrderService.getChargingOrder(order); + return R.ok(chargingOrder); + } } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java index 9dadd2f..7d688c5 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java @@ -28,6 +28,8 @@ import com.ruoyi.order.service.TShoppingOrderService; import com.ruoyi.common.core.dto.ExchangeDto; import com.ruoyi.common.core.utils.OrderCodeUtil; +import com.ruoyi.other.api.domain.TCoupon; +import com.ruoyi.other.api.domain.TGoods; import com.ruoyi.other.api.feignClient.CouponClient; import com.ruoyi.other.api.feignClient.GoodsClient; import com.ruoyi.payment.api.feignClient.AliPaymentClient; @@ -118,6 +120,20 @@ byId.setReceivingName(data.getName()+"-"+data.getPhone()); byId.setReceivingAddress(data.getAddress()); } + } + switch (byId.getOrderType()){ + case 1: + TGoods data = goodsClient.getGoodsById(byId.getGoodsId()).getData(); + if (data!=null){ + byId.setName(data.getName()); + } + break; + case 2: + TCoupon data1 = couponClient.getCouponById1(byId.getCouponId()).getData(); + if (data1!=null){ + byId.setName(data1.getName()); + } + break; } return AjaxResult.success(byId); } @@ -221,6 +237,46 @@ } return R.ok(res); } + + @GetMapping("/getCount") + public R<Integer> getCount(@RequestParam("goodId") Integer goodId,@RequestParam("goodeType")Integer goodeType,@RequestParam("buyType")Integer buyType){ + if (buyType==1){ + //现金 + if (goodeType==1){ + //商品 + Integer reduce = tShoppingOrderService.list(new QueryWrapper<TShoppingOrder>() + .eq("order_type",1) + .eq("goods_id", goodId) + .isNull("refund_status")) + .stream().map(TShoppingOrder::getPurchaseQuantity).reduce(0, Integer::sum); + return R.ok(reduce); + }else { + //优惠券 + Integer reduce = tShoppingOrderService.list(new QueryWrapper<TShoppingOrder>() + .eq("order_type",2) + .eq("coupon_id", goodId) + .isNull("refund_status")) + .stream().map(TShoppingOrder::getPurchaseQuantity).reduce(0, Integer::sum); + return R.ok(reduce); + } + + }else { + //兑换 + if (goodeType==1){ + Integer reduce = exchangeOrderService.list(new QueryWrapper<TExchangeOrder>().eq("order_type",1) + .ne("status",4).eq("goods_id", goodId)) + .stream().map(TExchangeOrder::getPurchaseQuantity).reduce(0, Integer::sum); + return R.ok(reduce); + }else { + Integer reduce = exchangeOrderService.list(new QueryWrapper<TExchangeOrder>().eq("order_type",2) + .ne("status",4).eq("coupon_id", goodId)) + .stream().map(TExchangeOrder::getPurchaseQuantity).reduce(0, Integer::sum); + return R.ok(reduce); + } + } + + + } /** * 管理后台 根据t_app_coupon订单ids查询优惠券的订单编号 * @param goodsIds 订单号-商品类型 diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java index 96f71ec..0322582 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java @@ -65,7 +65,7 @@ .like(manageOrderAppealQuery.getPhone() != null, TOrderAppeal::getPhone, manageOrderAppealQuery.getPhone()) .eq(manageOrderAppealQuery.getOrderType() != null, TOrderAppeal::getOrderType, manageOrderAppealQuery.getOrderType()) .in(TOrderAppeal::getOrderType, 1, 2) - .orderByDesc(TOrderAppeal::getFeedbackTime) + .orderByDesc(TOrderAppeal::getCreateTime) .page(Page.of(manageOrderAppealQuery.getPageCurr(), manageOrderAppealQuery.getPageSize())); for (TOrderAppeal record : page.getRecords()) { diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java index 00bbda4..1db4d3a 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java @@ -48,8 +48,8 @@ @ApiOperation(tags = {"小程序-订单评价"},value = "充电订单评价标签及数量查询") @GetMapping(value = "/getTagCount") - public AjaxResult<List<TEvaluationTagVO>> getTagCount() { - return AjaxResult.ok(orderEvaluateService.getTagCount()); + public AjaxResult<List<TEvaluationTagVO>> getTagCount(@RequestParam(value = "siteId")@ApiParam(value = "站点id")Integer siteId) { + return AjaxResult.ok(orderEvaluateService.getTagCount(siteId)); } @ApiOperation(tags = {"小程序-订单评价"},value = "充电订单评价分页列表查询") diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetOrderEvaluatePageList.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetOrderEvaluatePageList.java index c195f20..9bfc93d 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetOrderEvaluatePageList.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetOrderEvaluatePageList.java @@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @author zhibing.pu * @Date 2024/8/12 19:07 diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderInfoDto.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderInfoDto.java index 880dca7..ae3424d 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderInfoDto.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderInfoDto.java @@ -24,6 +24,7 @@ private LocalDateTime payTime; @ApiModelProperty("退款金额") private BigDecimal refundAmount; + private BigDecimal rechargeAmount; } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java index f5d173a..ee99d41 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java @@ -139,4 +139,6 @@ List<Map<String, Object>> needElec1(@Param("siteIds")List<Integer> siteIds,@Param("statisticsQueryDto") ChargingStatisticsQueryDto statisticsQueryDto); Long countNoTag(); + + Long countCar(@Param("brands") List<String> brands); } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateMapper.java index 75a7287..831fde2 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateMapper.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateMapper.java @@ -41,7 +41,7 @@ * @return */ List<GetOrderEvaluatePageListDTO> getPageList(@Param("query") GetOrderEvaluatePageList pageList, @Param("evaluationTagIds") List<Integer> evaluationTagIds, - PageInfo<GetOrderEvaluatePageListDTO> pageInfo); + @Param("siteIds") List<Integer> siteIds, PageInfo<GetOrderEvaluatePageListDTO> pageInfo); /** * 查询站点下的所有订单评价 diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java index 705fae3..c6ed1b2 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java @@ -18,6 +18,7 @@ import com.ruoyi.order.dto.*; import com.ruoyi.order.vo.ChargingOrderListInfoVO; import com.ruoyi.order.vo.EndOfChargePageInfo; +import org.springframework.web.bind.annotation.RequestBody; import java.time.LocalDate; import java.util.List; @@ -268,4 +269,14 @@ EndOfChargePageInfo getEndOfChargePageInfo(String id); Long countNoTag(); + + + /** + * 获取订单数据 + * @param order + * @return + */ + List<TChargingOrder> getChargingOrder(TChargingOrderVo order); + + Long countCar(List<String> brands); } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java index 8444a5b..e95295d 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java @@ -31,7 +31,7 @@ * 获取评价标签 * @return */ - List<TEvaluationTagVO> getTagCount(); + List<TEvaluationTagVO> getTagCount(Integer siteId); /** * 充电订单评价分页列表查询 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 9d59216..bb69665 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 @@ -91,6 +91,7 @@ chargingBillVO.setOrderCount(list1.size()); BigDecimal paymentAmountTotal = new BigDecimal("0"); BigDecimal orderAmountTotal = new BigDecimal("0"); + BigDecimal refundAmountTotal = new BigDecimal("0"); BigDecimal electrovalenceTotal = new BigDecimal("0"); BigDecimal serviceChargeTotal = new BigDecimal("0"); BigDecimal commissionAmountTotal = new BigDecimal("0"); @@ -364,6 +365,7 @@ }else if (tChargingOrder.getPaymentAmount()!=null){ paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount()); } + // 累加订单金额 if (tChargingOrder.getOrderAmount()!=null){ orderAmountTotal = orderAmountTotal.add(tChargingOrder.getOrderAmount()); @@ -372,8 +374,10 @@ if (tChargingOrder.getElectrovalence()!=null){ electrovalenceTotal = electrovalenceTotal.add(tChargingOrder.getElectrovalence()); } - if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus()!=null&& tChargingOrder.getRefundStatus()==2){ - refundAmount = refundAmount.add(tChargingOrder.getRefundAmount()); + List<TChargingOrderRefund> list2 = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getChargingOrderId, tChargingOrder.getId()) + .eq(TChargingOrderRefund::getRefundStatus, 2).list(); + for (TChargingOrderRefund tChargingOrderRefund : list2) { + refundAmountTotal =refundAmountTotal.add(tChargingOrder.getRefundAmount()); } // 累加累计服务费 if (tChargingOrder.getServiceCharge()!=null){ @@ -410,7 +414,7 @@ chargingBillVO.setCommissionAmount(commissionAmountTotal.setScale(2, RoundingMode.HALF_DOWN)); chargingBillVO.setSharingAmount(sharingAmountTotal.setScale(2, RoundingMode.HALF_DOWN)); chargingBillVO.setDiscount(discountTotal); - + chargingBillVO.setRefundAmount(refundAmountTotal); pageInfo.setRecords(list); chargingBillVO.setList(pageInfo); 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 767007b..deab138 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 @@ -256,11 +256,13 @@ myChargingOrderInfo.setChargeMode(chargingGun.getChargeMode()); String name = chargingGunClient.getAllName(chargingOrder.getChargingGunId()).getData(); myChargingOrderInfo.setName(name); - if(null != chargingOrder.getAppUserCarId()){ - TAppUserCar tAppUserCar = appUserCarClient.getCarByIds(Arrays.asList(chargingOrder.getAppUserCarId())).getData().get(0); - myChargingOrderInfo.setLicensePlate(tAppUserCar.getLicensePlate()); - }else{ - myChargingOrderInfo.setLicensePlate("无"); + if(Objects.nonNull(chargingOrder.getAppUserCarId())){ + TAppUserCar tAppUserCar = appUserCarClient.getCarById(chargingOrder.getAppUserCarId().toString()).getData(); + if(null != tAppUserCar){ + myChargingOrderInfo.setLicensePlate(tAppUserCar.getLicensePlate()); + }else{ + myChargingOrderInfo.setLicensePlate("无"); + } } myChargingOrderInfo.setStartTime(chargingOrder.getStartTime().atZone(ZoneId.systemDefault()).toInstant().getEpochSecond() * 1000); myChargingOrderInfo.setEndTime(chargingOrder.getEndTime().atZone(ZoneId.systemDefault()).toInstant().getEpochSecond() * 1000); @@ -387,7 +389,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)); if(null != one){ - return AjaxResult.error("充电枪正在充电桩中,启动失败"); + return AjaxResult.error("充电枪正在充电中,启动失败"); } //查询当前充电枪是否有正在支付的订单 one = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getChargingGunId, addChargingOrder.getId()) @@ -447,6 +449,7 @@ chargingOrder.setVipDiscountAmount(BigDecimal.ZERO); chargingOrder.setOrderSource(0); chargingOrder.setTitle("【充电桩充电】" + chargingPile.getNumber() + "号桩/" + tChargingGun.getCode() + "号枪"); + chargingOrder.setStatus(1); Site site = siteClient.getSiteByIds(Arrays.asList(tChargingGun.getSiteId())).getData().get(0); Integer accountingStrategyId = tChargingGun.getAccountingStrategyId(); @@ -685,9 +688,6 @@ String code = chargingOrder.getCode(); String key = "AQJC_" + chargingOrder.getChargingGunId(); List<PlatformStartChargingReply> data = platformStartChargingReplyClient.getPlatformStartChargingReply(code).getData(); - if(null == data || data.size() == 0){ - return false; - } log.error(code + ":-------------------开始检查调起充电结果-------------------" + data.toString()); if(data.size() != 0){ PlatformStartChargingReply platformStartChargingReply = data.get(1); @@ -737,7 +737,7 @@ counter = (null == counter ? 0 : counter) + 1; boot_failed_map.put(code, counter); //启动失败 - preChargeCheck1.setStartupSuccess(3); + preChargeCheck1.setStartupSuccess(1); preChargeCheck1.setFailureCause(0); redisService.setCacheObject(key, preChargeCheck1, 24L, TimeUnit.HOURS); return false; @@ -981,16 +981,17 @@ chargingOrder.setId(Long.valueOf(id)); chargingOrder.setAppUserId(order.getAppUserId()); chargingOrder.setEndTime(LocalDateTime.now()); + chargingOrder.setStatus(4); chargingOrder.setEndMode(1); this.updateById(chargingOrder); - String code1 = chargingOrder.getCode(); - TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); + String code1 = order.getCode(); + TChargingGun chargingGun = chargingGunClient.getChargingGunById(order.getChargingGunId()).getData(); //异步线程处理停机 ExecutorService cachedThreadPool = Executors.newFixedThreadPool(1); cachedThreadPool.execute(()->{ //调用硬件停止充电,停止成功后开始计算费用退款 - TChargingPile chargingPile = chargingPileClient.getChargingPileById(chargingOrder.getChargingPileId()).getData(); + TChargingPile chargingPile = chargingPileClient.getChargingPileById(order.getChargingPileId()).getData(); PlatformStopCharging platformStopCharging = new PlatformStopCharging(); platformStopCharging.setCharging_pile_code(chargingPile.getCode()); platformStopCharging.setCharging_gun_code(chargingGun.getCode()); @@ -1097,20 +1098,22 @@ inviteUser.setAward(num1); inviteUserClient.updateInviteUser(inviteUser); } - TAppUserIntegralChange appUserIntegralChange = new TAppUserIntegralChange(); - String code = Double.valueOf(Math.random() * 1000).intValue() + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")); - appUserIntegralChange.setCode(code); - appUserIntegralChange.setAppUserId(appUser1.getId()); - appUserIntegralChange.setChangeType(5); - appUserIntegralChange.setHistoricalIntegral(appUser1.getPoints()); - appUserIntegralChange.setCurrentIntegral(appUser1.getPoints() + num1); - appUserIntegralChange.setCreateTime(LocalDateTime.now()); - appUserIntegralChange.setOrderCode(chargingOrder.getCode()); - appUserIntegralChange.setExtension(chargingOrder.getId().toString()); - appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange); - - appUser1.setPoints(appUser1.getPoints() + num1); - appUserClient.updateAppUser(appUser1); + if(num1 > 0){ + TAppUserIntegralChange appUserIntegralChange = new TAppUserIntegralChange(); + String code = Double.valueOf(Math.random() * 1000).intValue() + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")); + appUserIntegralChange.setCode(code); + appUserIntegralChange.setAppUserId(appUser1.getId()); + appUserIntegralChange.setChangeType(4); + appUserIntegralChange.setHistoricalIntegral(appUser1.getPoints()); + appUserIntegralChange.setCurrentIntegral(appUser1.getPoints() + num1); + appUserIntegralChange.setCreateTime(LocalDateTime.now()); + appUserIntegralChange.setOrderCode(chargingOrder.getCode()); + appUserIntegralChange.setExtension(chargingOrder.getId().toString()); + appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange); + + appUser1.setPoints(appUser1.getPoints() + num1); + appUserClient.updateAppUser(appUser1); + } } } @@ -1768,7 +1771,7 @@ public void endChargeBillingCharge(TransactionRecordMessageVO vo) { TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, vo.getTransaction_serial_number())); Integer status = chargingOrder.getStatus(); - if(status == 4 || status == 5){ + if(status == 5){ return; } @@ -1861,9 +1864,7 @@ } catch (ParseException e) { throw new RuntimeException(e); } - System.err.println(start.getTime() + "\n" + end.getTime() + "\n" + lists.get(0).getStart() + "\n" + lists.get(0).getEnd()); - - + for (AccountingStrategyDetailOrderVo strategyDetail : lists) { BigDecimal sharp_peak_charge = strategyDetail.getChargingCapacity(); TChargingOrderAccountingStrategy chargingOrderAccountingStrategy = new TChargingOrderAccountingStrategy(); @@ -2026,7 +2027,7 @@ } } - order.setServiceCharge(periodServicePrice_total); + order.setServiceCharge(periodServicePrice_total.setScale(2, RoundingMode.DOWN)); order.setPaymentAmount(payAmount); order.setRefundAmount(refundAmount); order.setRefundStatus(1); @@ -2070,17 +2071,19 @@ } } - 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()); - appUserIntegralChange.setOrderCode(chargingOrder.getCode()); - appUserIntegralChange.setExtension(chargingOrder.getId().toString()); - appUserClient.updateAppUser(appUser); - appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange); + if(integral > 0){ + 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()); + appUserIntegralChange.setOrderCode(chargingOrder.getCode()); + appUserIntegralChange.setExtension(chargingOrder.getId().toString()); + appUserClient.updateAppUser(appUser); + appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange); + } } //计算用户标签 @@ -2104,7 +2107,7 @@ chargingOrderRefund.setRefundTitle("充电完成退款"); chargingOrderRefund.setRefundContent("充电完成退款"); chargingOrderRefund.setRefundReason("充电完成退款"); - chargingOrderRefund.setRefundRemark("实际充电消费金额:" + refundAmount); + chargingOrderRefund.setRefundRemark("实际充电消费金额:" + chargingOrder.getPaymentAmount()); chargingOrderRefund.setRefundTotalAmount(refundAmount); chargingOrderRefund.setPayAmount(rechargeAmount); if(1 == rechargePaymentType){ @@ -2237,6 +2240,9 @@ if (tChargingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount())==-1){ return R.fail("退款金额需小于支付金额"); } + if ((tChargingOrder.getRechargeAmount().subtract(payOrderQueryDto.getRefundAmount()).compareTo(tChargingOrder.getPaymentAmount()))==0){ + tChargingOrder.setStatus(5); + } TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund(); @@ -2303,6 +2309,10 @@ if (tChargingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount())==-1){ return R.fail("退款金额需小于支付金额"); } + if ((tChargingOrder.getPaymentAmount().subtract(payOrderQueryDto.getRefundAmount()).compareTo(tChargingOrder.getPaymentAmount()))==0){ + tChargingOrder.setStatus(5); + } + TShoppingOrderRefund chargingOrderRefund = new TShoppingOrderRefund(); chargingOrderRefund.setShoppingOrderId(tChargingOrder.getId()); chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount()); @@ -2353,9 +2363,7 @@ tChargingOrder.setRefundStatus(2); tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); - if (payOrderQueryDto.getRefundAmount().compareTo(tChargingOrder.getPaymentAmount())==0){ - tChargingOrder.setStatus(5); - } + shoppingOrderService.updateById(tChargingOrder); shoppingOrderRefundService.save(chargingOrderRefund); @@ -2370,6 +2378,8 @@ if (tChargingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount())==-1){ return R.fail("退款金额需小于支付金额"); } + + TVipOrderRefund chargingOrderRefund = new TVipOrderRefund(); chargingOrderRefund.setVipOrderId(tChargingOrder.getId()); chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount()); @@ -2449,7 +2459,7 @@ } TChargingOrder one = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserCarId, appUserCar.getId()) .eq(TChargingOrder::getDelFlag, 0).gt(TChargingOrder::getStartTime, query.getStartTime()) - .eq(TChargingOrder::getRechargePaymentStatus, 2).ne(TChargingOrder::getStatus, -1)); + .eq(TChargingOrder::getRechargePaymentStatus, 2).ne(TChargingOrder::getStatus, 5)); return one; } @@ -2582,7 +2592,7 @@ tSettlementConfirm.setRemark(dto.getRemark()); tSettlementConfirm.setServicePartner(dto.getServicePartner()); tSettlementConfirm.setServiceMoney(dto.getServiceMoney()); - BigDecimal subtract = new BigDecimal("1").subtract(dto.getProportionPartner()); + BigDecimal subtract = new BigDecimal("1").subtract(dto.getProportionPartner().multiply(new BigDecimal("0.01"))); // 总电损费用 BigDecimal divide = tSettlementConfirm.getProportionMoney().divide(subtract, 2, RoundingMode.HALF_DOWN); // 平台承担电损 @@ -2744,10 +2754,17 @@ } // 充电总时长 - Long temp = 0L; + Long temp = 1L; if (StringUtils.hasLength(stringBuilder.toString())){ - List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getOrderInfoByCodes(stringBuilder.substring(0,stringBuilder.length()-1)).getData(); - temp+=(data6.stream().mapToLong(UploadRealTimeMonitoringData::getCumulative_charging_time).sum()*60); + String substring = stringBuilder.substring(0, stringBuilder.length() - 1); + for (String s : substring.split(",")) { + UploadRealTimeMonitoringData data6 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(s).getData(); + if (data6!=null){ + temp+=(data6.getCumulative_charging_time()*60); + + } + + } } List<TChargingPile> data = siteClient.getPileListBySiteId(tSettlementConfirm.getSiteId()).getData(); // 计算充电桩的功率平均值 @@ -2787,7 +2804,7 @@ if (tSettlementConfirm.getSiteId().equals(settlementConfirm.getSiteId())){ // 电站相同比较收入涨幅跌幅 if (tSettlementConfirm.getIncome().compareTo(BigDecimal.ZERO)>0){ - BigDecimal subtract = tSettlementConfirm.getIncome().subtract(settlementConfirm.getIncome()).divide(tSettlementConfirm.getIncome()).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100")); + BigDecimal subtract = tSettlementConfirm.getIncome().subtract(settlementConfirm.getIncome()).divide(tSettlementConfirm.getIncome(),2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100")); tSettlementConfirm.setIncomePercentage(subtract+"%"); }else { tSettlementConfirm.setIncomePercentage("100"+"%"); @@ -2965,4 +2982,37 @@ public Long countNoTag() { return this.baseMapper.countNoTag(); } + + + @Override + public List<TChargingOrder> getChargingOrder(TChargingOrderVo order) { + LambdaQueryWrapper<TChargingOrder> queryWrapper = new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getDelFlag, 0); + if(null != order.getChargingPileId()){ + queryWrapper.eq(TChargingOrder::getChargingPileId, order.getChargingPileId()); + } + if(null != order.getChargingGunId()){ + queryWrapper.eq(TChargingOrder::getChargingGunId, order.getChargingGunId()); + } + if(null != order.getStatus()){ + queryWrapper.eq(TChargingOrder::getStatus, order.getStatus()); + } + if(null != order.getAppUserId()){ + queryWrapper.eq(TChargingOrder::getAppUserId, order.getAppUserId()); + } + if(null != order.getAppUserId()){ + queryWrapper.eq(TChargingOrder::getAppUserId, order.getAppUserId()); + } + if(null != order.getStatusList()){ + queryWrapper.in(TChargingOrder::getAppUserId, order.getStatusList()); + } + if(null != order.getEndMode()){ + queryWrapper.eq(TChargingOrder::getEndMode, order.getEndMode()); + } + return this.list(queryWrapper.orderByDesc(TChargingOrder::getCreateTime)); + } + + @Override + public Long countCar(List<String> brands) { + return this.baseMapper.countCar(brands); + } } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java index f216c5c..dee224b 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java @@ -15,6 +15,7 @@ import com.ruoyi.account.api.feignClient.AppUserClient; import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.account.api.model.TAppUserIntegralChange; +import com.ruoyi.chargingPile.api.feignClient.PartnerClient; import com.ruoyi.chargingPile.api.feignClient.SiteClient; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.vo.TAccountingStrategyVO; @@ -24,6 +25,7 @@ import com.ruoyi.common.core.web.domain.AjaxResult; 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.order.api.model.TChargingOrder; import com.ruoyi.order.api.model.TOrderEvaluate; import com.ruoyi.order.api.model.TOrderEvaluateTag; @@ -41,10 +43,12 @@ import com.ruoyi.other.api.domain.TEvaluationTag; import com.ruoyi.other.api.domain.TIntegralRule; import com.ruoyi.other.api.domain.TVip; -import com.ruoyi.other.api.feignClient.IntegralRuleClient; -import com.ruoyi.other.api.feignClient.TEvaluationTagClient; -import com.ruoyi.other.api.feignClient.VipClient; +import com.ruoyi.other.api.feignClient.*; import com.ruoyi.other.api.vo.TEvaluationTagVO; +import com.ruoyi.system.api.domain.SysUser; +import com.ruoyi.system.api.feignClient.SysUserClient; +import com.ruoyi.system.api.feignClient.SysUserRoleClient; +import com.ruoyi.system.api.model.SysUserRoleVo; import io.seata.spring.annotation.GlobalTransactional; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -54,11 +58,7 @@ import java.math.BigDecimal; import javax.annotation.Resource; import java.time.LocalDateTime; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -101,6 +101,21 @@ @Resource private VipClient vipClient; + @Resource + private SysUserClient sysUserClient; + + @Resource + private PartnerClient partnerService; + + @Resource + private UserSiteClient userSiteClient; + + @Resource + private RoleSiteClient roleSiteClient; + + @Resource + private SysUserRoleClient sysUserRoleClient; + @@ -116,10 +131,20 @@ @Resource private TOrderEvaluateMapper orderEvaluateMapper; @Override - public List<TEvaluationTagVO> getTagCount() { + public List<TEvaluationTagVO> getTagCount(Integer siteId) { // 查询标签列表 R<List<TEvaluationTagVO>> r = evaluationTagClient.getList(); List<TEvaluationTagVO> tagList = r.getData(); + // 查询站点下的所有订单 + List<TChargingOrder> tChargingOrders = chargingOrderMapper.selectList(Wrappers.lambdaQuery(TChargingOrder.class) + .eq(TChargingOrder::getSiteId, siteId)); + if(CollectionUtils.isEmpty(tChargingOrders)){ + tagList.forEach(e->e.setTagCount(0)); + packageTagCount(0L,"有图",2,tagList); + packageTagCount(0L,"好评",3,tagList); + packageTagCount(0L,"中差评",4,tagList); + return tagList; + } List<Integer> tagIds = tagList.stream().map(TEvaluationTagVO::getId).collect(Collectors.toList()); // 统计标签使用数量 List<TEvaluationTagVO> counts = orderEvaluateTagMapper.getCountByTagIds(tagIds); @@ -251,7 +276,32 @@ List<TEvaluationTagVO> data = evaluationTagClient.getTagList(pageList.getEvaluateType()).getData(); evaluationTagIds = data.stream().map(TEvaluationTagVO::getId).collect(Collectors.toList()); } - List<GetOrderEvaluatePageListDTO> list = this.baseMapper.getPageList(pageList, evaluationTagIds, pageInfo); + + //校验合作商权限 + List<Integer> siteIds = new ArrayList<>(); + if(null == pageList.getSiteId() || 0 == pageList.getSiteId()){ + SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData(); + Integer roleType = sysUser.getRoleType(); + Integer objectId = sysUser.getObjectId(); + //合作商 + if(roleType == 2){ + Set<Integer> data = partnerService.authSite(objectId, "/data/site").getData(); + siteIds = new ArrayList<>(data); + }else{ + //非管理员需要根据角色和用户配置查询允许的站点数据 + if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ + List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData(); + List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData(); + List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData(); + data.addAll(data1); + siteIds = data; + } + } + }else{ + siteIds.add(pageList.getSiteId()); + } + + List<GetOrderEvaluatePageListDTO> list = this.baseMapper.getPageList(pageList, evaluationTagIds, siteIds, pageInfo); for (GetOrderEvaluatePageListDTO dto : list) { TAppUser appUser = appUserClient.getUserById(dto.getAppUserId()).getData(); if(null != appUser){ @@ -259,8 +309,11 @@ String phone = appUser.getPhone(); dto.setPhone(phone.substring(0, 3) + "****" + phone.substring(6)); } - Site site = siteClient.getSiteByIds(Arrays.asList(dto.getSiteId())).getData().get(0); - dto.setSiteName(site.getName()); + List<Site> data1 = siteClient.getSiteByIds(Arrays.asList(dto.getSiteId())).getData(); + if(null != data1 && data1.size() > 0){ + Site site = data1.get(0); + dto.setSiteName(site.getName()); + } List<TOrderEvaluateTag> tOrderEvaluateTags = orderEvaluateTagMapper.selectList(new LambdaQueryWrapper<TOrderEvaluateTag>().eq(TOrderEvaluateTag::getOrderEvaluateId, dto.getId())); List<Integer> tagIds = tOrderEvaluateTags.stream().map(TOrderEvaluateTag::getEvaluationTagId).collect(Collectors.toList()); if(tagIds.size() > 0){ @@ -387,9 +440,11 @@ BeanUtils.copyProperties(orderEvaluate, orderEvaluateVo); List<TOrderEvaluateTag> tOrderEvaluateTags = orderEvaluateTagMapper.selectList(new LambdaQueryWrapper<TOrderEvaluateTag>().eq(TOrderEvaluateTag::getOrderEvaluateId, orderEvaluate.getId())); List<Integer> tagId = tOrderEvaluateTags.stream().map(TOrderEvaluateTag::getEvaluationTagId).collect(Collectors.toList()); - List<TEvaluationTag> data = evaluationTagClient.getListByIds(tagId).getData(); - List<String> collect = data.stream().map(TEvaluationTag::getName).collect(Collectors.toList()); - orderEvaluateVo.setTagName(collect); + if(tagId.size() > 0){ + List<TEvaluationTag> data = evaluationTagClient.getListByIds(tagId).getData(); + List<String> collect = data.stream().map(TEvaluationTag::getName).collect(Collectors.toList()); + orderEvaluateVo.setTagName(collect); + } return orderEvaluateVo; } return null; diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java index f25778c..5716b77 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java @@ -187,7 +187,15 @@ break; } } + + List<Long> appUserIds = list.stream().map(TActivityStatisticslVO::getAppUserId).collect(Collectors.toList()); + List<TAppUser> appUsers = appUserClient.getUserByIds(appUserIds).getData(); + for (TActivityStatisticslVO tActivityStatisticslVO : list) { + TAppUser appUser = appUsers.stream().filter(user -> user.getId().equals(tActivityStatisticslVO.getAppUserId())).findFirst().orElse(null); + if(Objects.nonNull(appUser)){ + tActivityStatisticslVO.setPhone(appUser.getPhone()); + } // 判断享有了哪些类型 switch (tActivityStatisticslVO.getOrderType()){ case 1: diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml index 2f94bc4..162f271 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml @@ -62,7 +62,7 @@ </if> </select> <select id="getNoInvoicedOrder" resultMap="BaseResultMap"> - select * from t_charging_order where del_flag = 0 and status = 5 and recharge_payment_status = 2 and payment_amount is not null and app_user_id = #{appUserId} and refund_status is null + select * from t_charging_order where del_flag = 0 and status = 5 and recharge_payment_status = 2 and payment_amount is not null and app_user_id = #{appUserId} <if test="null != month and '' != month"> and DATE_FORMAT(end_time, '%Y-%m') = #{month} </if> @@ -121,12 +121,12 @@ title, `status`, order_amount, - order_amount as payment_amount , + payment_amount as payment_amount , create_time, end_time, pay_time, refund_status, - (order_amount) as final_amount, + (recharge_amount-refund_amount) as final_amount, del_flag, app_user_id FROM @@ -372,7 +372,7 @@ </select> <select id="countAll" resultType="java.util.Map"> - select sum(electrovalence) as electrovalence,sum(service_charge) as service_charge,ROUND(sum(electrovalence+service_charge) * 0.0006, 2) as commission_amount,sum(sharing_amount) as sharing_amount + select sum(electrovalence) as electrovalence,sum(service_charge) as service_charge,ROUND(sum(electrovalence+service_charge) * 0.006, 2) as commission_amount,sum(sharing_amount) as sharing_amount from t_charging_order where create_time >= #{sixBefore} and del_flag = 0 and recharge_payment_status = 2 </select> @@ -398,7 +398,7 @@ <select id="getDateData" resultType="java.util.Map"> SELECT DATE_FORMAT( create_time, '%H:00' ) as time, - CAST(SUM(service_charge-coupon_discount_amount) AS DECIMAL(20, 6)) as servicecharge, + CAST(SUM(service_charge) AS DECIMAL(20, 6)) as servicecharge, CAST(SUM(charging_capacity) AS DECIMAL(20, 6)) as electrovalence, CAST(SUM(electrovalence) AS DECIMAL(20, 4)) AS paymentAmount, SUM(payment_amount) AS paymoney, @@ -423,7 +423,7 @@ <select id="getWeekData" resultType="java.util.Map"> SELECT DATE_FORMAT( create_time, '%Y-%m-%d' ) as time, - SUM(service_charge-coupon_discount_amount) as servicecharge, + SUM(service_charge) as servicecharge, SUM(charging_capacity) as electrovalence, SUM(electrovalence) AS paymentAmount, SUM(payment_amount) AS paymoney, @@ -448,7 +448,7 @@ <select id="getMonthData" resultType="java.util.Map"> SELECT DATE_FORMAT( create_time, '%Y-%m-%d' ) as time, - SUM(service_charge-coupon_discount_amount) as servicecharge, + SUM(service_charge) as servicecharge, SUM(charging_capacity) as electrovalence, SUM(electrovalence) AS paymentAmount, SUM(payment_amount) AS paymoney, @@ -473,7 +473,7 @@ <select id="getYearData" resultType="java.util.Map"> SELECT DATE_FORMAT( create_time, '%Y-%m-%d' ) as time, - SUM(service_charge-coupon_discount_amount) as servicecharge, + SUM(service_charge) as servicecharge, SUM(charging_capacity) as electrovalence, SUM(electrovalence) AS paymentAmount, SUM(payment_amount) AS paymoney, @@ -500,7 +500,7 @@ <select id="getByDate" resultType="java.util.Map"> SELECT DATE_FORMAT( create_time, '%Y-%m-%d' ) as time, - SUM(service_charge-coupon_discount_amount) as servicecharge, + SUM(service_charge) as servicecharge, SUM(charging_capacity) as electrovalence, SUM(electrovalence) AS paymentAmount, SUM(payment_amount) AS paymoney, @@ -629,14 +629,12 @@ SELECT 'today' AS data_type, '1' as type, - DATE_FORMAT( create_time, '%Y-%m-%d %H' ) AS time, + DATE_FORMAT( create_time, '%H:00' ) AS time, count(DISTINCT app_user_id) AS counts FROM t_charging_order WHERE del_flag = 0 - AND recharge_payment_status = 2 - AND ISNULL( refund_status ) AND DATE ( create_time ) = CURDATE() GROUP BY time @@ -704,10 +702,10 @@ </if> <if test="statisticsQueryDto.dayType ==5"> <if test="statisticsQueryDto.startTime != null"> - AND create_time >= #{statisticsQueryDto.startTime} + AND DATE(create_time) >= #{statisticsQueryDto.startTime} </if> <if test="statisticsQueryDto.endTime != null"> - AND create_time <= #{statisticsQueryDto.endTime} + AND DATE(create_time) <= #{statisticsQueryDto.endTime} </if> </if> GROUP BY @@ -972,7 +970,7 @@ `charging_pile_order`.`t_charging_order` co LEFT JOIN `charging_pile_service`.`t_charging_gun` tc on co.charging_gun_id = tc.id LEFT JOIN `charging_pile_service`.`t_charging_pile` cp on tc.charging_pile_id = cp.id - WHERE + WHERE co.del_flag = 0 and co.start_time IS NOT NULL AND co.end_time IS NOT NULL and tc.type = 4 <if test="siteIds != null and siteIds.size() > 0"> and co.site_id IN @@ -1032,7 +1030,7 @@ `charging_pile_order`.`t_charging_order` co LEFT JOIN `charging_pile_service`.`t_charging_gun` tc on co.charging_gun_id = tc.id LEFT JOIN `charging_pile_service`.`t_charging_pile` cp on tc.charging_pile_id = cp.id - WHERE + WHERE co.del_flag = 0 and co.start_time IS NOT NULL AND co.end_time IS NOT NULL and tc.type in (2,3) <if test="siteIds != null and siteIds.size() > 0"> and co.site_id IN @@ -1254,7 +1252,7 @@ `charging_pile_service`.`t_fault_message` co LEFT JOIN `charging_pile_service`.`t_charging_pile` cp on co.charging_pile_id = cp.id WHERE - co.down_time IS NOT NULL AND co.end_time IS NOT NULL and cp.type = 1 and co.status =1 + co.down_time IS NOT NULL AND co.end_time IS NOT NULL and cp.type = 2 and co.status =1 <if test="siteIds != null and siteIds.size() > 0"> and co.site_id IN <foreach collection="siteIds" item="siteId" open="(" separator="," close=")"> @@ -1448,6 +1446,13 @@ <if test="statisticsQueryDto.dayType == 1"> AND DATE( create_time ) between #{statisticsQueryDto.startTime} and #{statisticsQueryDto.endTime} </if> + + <if test="siteIds != null and siteIds.size() > 0"> + and site_id IN + <foreach collection="siteIds" item="siteId" open="(" separator="," close=")"> + #{siteId} + </foreach> + </if> GROUP BY time ORDER BY @@ -1533,4 +1538,13 @@ ) and au.del_flag = 0 </select> + <select id="countCar" resultType="java.lang.Long"> + select count(1) + from + charging_pile_account.t_app_user_car + where del_flag = 0 and vehicle_brand not in + <foreach collection="brands" item="brand" open="(" separator="," close=")"> + #{brand} + </foreach> + </select> </mapper> diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml index 7a4d65a..872f114 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml @@ -84,8 +84,9 @@ select id, order_type, order_id, app_user_id,app_user_car_id, mark, content, img_url, evaluation_response, create_time, response_time, del_flag from t_order_evaluate - where order_id in - (select order_id + where del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} + and order_id in + (select id from t_charging_order where site_id = #{siteId} and del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}) @@ -123,6 +124,12 @@ <if test="null != query.siteId"> and b.site_id = #{query.siteId} </if> + <if test="null != siteIds and siteIds.size() > 0"> + and b.site_id in + <foreach collection="siteIds" item="item" index="index" open="(" separator="," close=")"> + #{item} + </foreach> + </if> order by a.create_time desc </select> <select id="goodTop" resultType="java.util.Map"> diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TVipOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TVipOrderMapper.xml index 8c13bc7..b8f42ed 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TVipOrderMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TVipOrderMapper.xml @@ -78,7 +78,7 @@ </select> <select id="getSumAmout" resultType="java.math.BigDecimal"> SELECT - SUM(payment_amount) AS paymentAmount + SUM(payment_amount-refund_amount) AS paymentAmount FROM t_vip_order WHERE diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java index 3ea9ee4..c003b2e 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java @@ -125,7 +125,7 @@ @GetMapping("/getInfoByType") @ApiOperation(tags = {"小程序-兑换商城"},value = "商品查看详情") - public R getInfoByType(Integer goodType,Integer id) { + public R getInfoByType(Integer goodType,Integer id,Integer type) { if (goodType==1){ TGoods byId = goodsService.getById(id); if (byId==null||byId.getStatus()==2){ @@ -135,7 +135,8 @@ // for (int i = 0; i < list.size(); i++) { // list.get(i).setSalesCount(data.get(i)); // } - + Integer data = orderClient.getSalesCountByGoodsIdgetCount(byId.getId(), 1, type).getData(); + byId.setSalesCount(data); return R.ok(byId); } else { @@ -143,7 +144,9 @@ if (byId==null||byId.getStatus()==2){ return R.fail(2,"该商品已不存在"); } - return R.ok(byId); + Integer data = orderClient.getSalesCountByGoodsIdgetCount(byId.getId(),2, type).getData(); + byId.setSalesCount(data); + return R.ok(byId); } } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java index 5f390ad..d5e2f68 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java @@ -78,14 +78,11 @@ pageInfo.setRecords(list); return pageInfo; } - String string = stringBuilder.toString(); - // 订单号加上商品类型 - String res = string+"-"+basePage.getType(); - - List<Integer> data = orderClient.getSalesCountByGoodsId(res).getData(); - for (int i = 0; i < list.size(); i++) { - list.get(i).setSalesCount(data.get(i)); + for (TGoods tGoods : list) { + Integer data = orderClient.getSalesCountByGoodsIdgetCount(tGoods.getId(), tGoods.getGoodType(), basePage.getType()).getData(); + tGoods.setSalesCount(data); } + pageInfo.setRecords(list); return pageInfo; } diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml index c8879ee..4351904 100644 --- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml +++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml @@ -55,13 +55,13 @@ <select id="pageList1" resultType="com.ruoyi.other.api.domain.TGoods"> SELECT - id,name,redeem_points as redeemPoints,inventory,original_price as originalPrice ,preferential_price as preferentialPrice,vip_price as vipPrice,1 as goodType,cover_picture as coverPicture + id,name,redeem_points as redeemPoints,inventory,original_price as originalPrice ,preferential_price as preferentialPrice,vip_price as vipPrice,1 as goodType,cover_picture as coverPicture,underlying_sales as underlyingSales FROM t_goods WHERE `status` = 1 and del_flag = 0 and type = #{appGoodQuery.type} UNION ALL SELECT - id,name,redeem_points as redeemPoints,inventory_quantity as inventory,payment_amount as originalPrice,payment_amount as preferentiaPrice,vip_payment_amount as vipPrice,2 as goodType,cover_picture as coverPicture + id,name,redeem_points as redeemPoints,inventory_quantity as inventory,payment_amount as originalPrice,payment_amount as preferentiaPrice,vip_payment_amount as vipPrice,2 as goodType,cover_picture as coverPicture,0 as underlyingSales FROM t_coupon WHERE `status`= 1 and del_flag = 0 and ways_to_obtain != #{appGoodQuery.type} -- Gitblit v1.7.1