From d6c8f09fd628bd0111de4ee7071844465df9adb1 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 28 十月 2024 18:57:35 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java                                     |    8 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java                                   |  235 +++++++++++++--
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyServiceImpl.java                |   22 +
 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java      |    5 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java          |    1 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java                                   |    3 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java                                          |    3 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java                                              |    3 
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml                                                |   12 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TParkingRecord.java                                   |    7 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/AccountingStrategyDetailOrderVo.java                                   |   47 +++
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java                       |    2 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserCar.java                                                |    2 
 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java                       |    5 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java                               |   11 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java                                   |   25 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java                                  |   46 --
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java                   |    9 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java            |    6 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java                                      |    5 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java                                        |   13 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java                            |    2 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserSign.java                                               |    2 
 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java           |    3 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml                                                    |    2 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyService.java                         |    3 
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml                                 |   19 +
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java                                      |   14 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java                                      |   10 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java                                          |    7 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java                                                     |   27 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java |   13 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml                                                    |    1 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java                      |   28 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TAccountingStrategyMapper.java                           |    3 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java                               |    1 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml                                                    |    2 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TVip.java                                                       |  156 ++++++++++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java                                           |    2 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java                         |   46 ++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java                                      |   10 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java                               |    4 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java                                    |    2 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java                       |   54 --
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java                                          |    2 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java                                           |    3 
 46 files changed, 682 insertions(+), 204 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserCar.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserCar.java
index fc25220..1d09ba7 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserCar.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserCar.java
@@ -33,6 +33,8 @@
     @TableId("id")
     private Long id;
     @TableField(exist = false)
+    private String id_;
+    @TableField(exist = false)
     private String uid;
 
     @ApiModelProperty(value = "app用户id")
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserSign.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserSign.java
index 9f40e3a..022da3d 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserSign.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserSign.java
@@ -54,6 +54,8 @@
     @TableField("create_time")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime createTime;
+    @TableField(exist = false)
+    private Integer continueDays;
 
 
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java
index 865d080..701a010 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java
@@ -91,6 +91,9 @@
     @TableField(exist = false)
     private Integer type;
 
+    @TableField(exist = false)
+    private TVip vip;
+
 
 
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TVip.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TVip.java
new file mode 100644
index 0000000..830ebda
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TVip.java
@@ -0,0 +1,156 @@
+package com.ruoyi.account.api.model;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.web.domain.BasePojo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 无关风月
+ * @since 2024-08-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("t_vip")
+@ApiModel(value="TVip对象", description="")
+public class TVip extends BasePojo {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "会员名称")
+    @TableField("name")
+    private String name;
+
+    @ApiModelProperty(value = "前端是否显示(0=否,1=是)")
+    @TableField("reveal")
+    private Integer reveal;
+
+    @ApiModelProperty(value = "月卡价格")
+    @TableField("monthly_card")
+    private BigDecimal monthlyCard;
+
+    @ApiModelProperty(value = "月卡显示(0=否,1=是)")
+    @TableField("monthly_card_reveal")
+    private Integer monthlyCardReveal;
+
+    @ApiModelProperty(value = "月卡折扣")
+    @TableField("monthly_card_discount")
+    private BigDecimal monthlyCardDiscount;
+
+    @ApiModelProperty(value = "月卡折扣开始时间")
+    @TableField("monthly_card_discount_start")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private LocalDateTime monthlyCardDiscountStart;
+
+    @ApiModelProperty(value = "月卡折扣结束时间")
+    @TableField("monthly_card_discount_end")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private LocalDateTime monthlyCardDiscountEnd;
+
+    @ApiModelProperty(value = "月卡折扣显示(0=否,1=是)")
+    @TableField("monthly_card_discount_reveal")
+    private Integer monthlyCardDiscountReveal;
+
+    @ApiModelProperty(value = "季卡价格")
+    @TableField("season_card")
+    private BigDecimal seasonCard;
+
+    @ApiModelProperty(value = "季卡显示(0=否,1=是)")
+    @TableField("season_card_reveal")
+    private Integer seasonCardReveal;
+
+    @ApiModelProperty(value = "季卡折扣")
+    @TableField("season_card_discount")
+    private BigDecimal seasonCardDiscount;
+
+    @ApiModelProperty(value = "季卡折扣开始时间")
+    @TableField("season_card_discount_start")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private LocalDateTime seasonCardDiscountStart;
+
+    @ApiModelProperty(value = "季卡折扣结束时间")
+    @TableField("season_card_discount_end")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private LocalDateTime seasonCardDiscountEnd;
+
+    @ApiModelProperty(value = "季卡折扣显示(0=否,1=是)")
+    @TableField("season_card_discount_reveal")
+    private Integer seasonCardDiscountReveal;
+
+    @ApiModelProperty(value = "年卡价格")
+    @TableField("annual_card")
+    private BigDecimal annualCard;
+
+    @ApiModelProperty(value = "年卡显示(0=否,1=是)")
+    @TableField("annual_card_reveal")
+    private Integer annualCardReveal;
+
+    @ApiModelProperty(value = "年卡折扣")
+    @TableField("annual_card_discount")
+    private BigDecimal annualCardDiscount;
+
+    @ApiModelProperty(value = "年卡折扣开始时间")
+    @TableField("annual_card_discount_start")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private LocalDateTime annualCardDiscountStart;
+
+    @ApiModelProperty(value = "年卡折扣结束时间")
+    @TableField("annual_card_discount_end")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private LocalDateTime annualCardDiscountEnd;
+
+    @ApiModelProperty(value = "年卡折扣显示(0=否,1=是)")
+    @TableField("annual_card_discount_reveal")
+    private Integer annualCardDiscountReveal;
+
+    @ApiModelProperty(value = "折扣次数")
+    @TableField("discount_times")
+    private Integer discountTimes;
+
+    @ApiModelProperty(value = "最高抵扣金额")
+    @TableField("maximum_deduction")
+    private BigDecimal maximumDeduction;
+
+    @ApiModelProperty(value = "抵扣类型(1=服务费)")
+    @TableField("deduction_type")
+    private Integer deductionType;
+
+    @ApiModelProperty(value = "优惠券[{\"id\":1,\"number\":1}]")
+    @TableField("coupon")
+    private String coupon;
+
+    @ApiModelProperty(value = "双倍积分开关(0=否,1=是)")
+    @TableField("double_integration")
+    private Integer doubleIntegration;
+
+    @ApiModelProperty(value = "商城专享价开关(0=否,1=是)")
+    @TableField("mall_exclusive_price")
+    private Integer mallExclusivePrice;
+    @ApiModelProperty(value = "内部会员折扣")
+    @TableField("discount")
+    private BigDecimal discount;
+    @ApiModelProperty(value = "添加的会员类型 1常规 2内部")
+    @TableField("type")
+    private Integer type;
+
+    @ApiModelProperty(value = "优惠券名称和张数 后台列表展示使用")
+    @TableField(exist = false)
+    private String couponName;
+
+
+}
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 3e5d867..6a147e5 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,13 +36,14 @@
     @ApiModelProperty(value = "用户id")
     @TableField("app_user_id")
     private Long appUserId;
+    
+    @ApiModelProperty(value = "停车场名称")
+    @TableField("name")
+    private String name;
 
     @ApiModelProperty(value = "车牌号")
     @TableField("license_plate")
     private String licensePlate;
-    
-    @TableField(exist = false)
-    private String name;
     
     @TableField(exist = false)
     private String uid;
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java
index 485fae2..7507994 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java
@@ -42,5 +42,5 @@
     @ApiModelProperty(value = "上次选择车辆品牌")
     private String vehicleBrand;
     @ApiModelProperty(value = "上次选择车辆id")
-    private Long id;
+    private String id;
 }
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 3f5bf8b..5a46c09 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
@@ -47,6 +47,11 @@
             public R<UploadRealTimeMonitoringPageData> getAll(MongoChargingOrderQuery mongoChargingOrderQuery) {
                 return null;
             }
+
+            @Override
+            public R delete(String id) {
+                return null;
+            }
         };
     }
 }
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 824cb1f..5d89233 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
@@ -46,4 +46,7 @@
 
 	@PostMapping("/uploadRealTimeMonitoringData/getAll")
 	R<UploadRealTimeMonitoringPageData> getAll(@RequestBody MongoChargingOrderQuery mongoChargingOrderQuery);
+
+	@PostMapping("/uploadRealTimeMonitoringData/delete")
+	R delete(@RequestParam("id") String id);
 }
diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java
index 58d5b85..17e5517 100644
--- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java
@@ -18,6 +18,8 @@
 @Document(collection = "upload_real_time_monitoring_data") //指定要对应的文档名(表名)
 @Accessors(chain = true)
 public class UploadRealTimeMonitoringData extends BaseModel {
+    @Id
+    private String id;
     private String transaction_serial_number; // 交易流水号
     private String charging_pile_code; // 桩编码
     private String charging_gun_code; // 抢号
@@ -48,6 +50,9 @@
 
     private BigDecimal period_charging_degree;// @ApiModelProperty("时段充电度数")
 
+
+
+
     private Integer orderType; //1=充电订单(小程序),2=充电订单(刷卡))
     private Integer siteId;
     private Integer status; //状态(0=未知,1=等待中/已插枪,2=启动中,3=充电中,4=停止中,5=已结束)"
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java
index 39f3408..53137bd 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java
@@ -105,5 +105,4 @@
 
 
 
-
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/AccountingStrategyDetailOrderVo.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/AccountingStrategyDetailOrderVo.java
new file mode 100644
index 0000000..b99cac8
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/AccountingStrategyDetailOrderVo.java
@@ -0,0 +1,47 @@
+package com.ruoyi.order.api.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/9/3 14:00
+ */
+@Data
+public class AccountingStrategyDetailOrderVo {
+	@ApiModelProperty(value = "主键")
+	private Integer id;
+	@ApiModelProperty(value = "策略id")
+	private Integer accountingStrategyId;
+	
+	@ApiModelProperty(value = "阶段(1=尖阶段,2=峰阶段,3=平阶段,4=谷阶段)")
+	private Integer type;
+	
+	@ApiModelProperty(value = "开始时间")
+	private String startTime;
+	
+	@ApiModelProperty(value = "结束时间")
+	private String endTime;
+	
+	@ApiModelProperty(value = "电价")
+	private BigDecimal electrovalence;
+	
+	@ApiModelProperty(value = "服务费")
+	private BigDecimal serviceCharge;
+	
+	@ApiModelProperty(value = "原价服务费")
+	private BigDecimal costServiceCharge;
+	
+	@ApiModelProperty(value = "充电订单id")
+	private Long chargingOrderId;
+	
+	private Long start;
+	private Long end;
+	private BigDecimal chargingCapacity;
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
index acc6b84..64de41c 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
@@ -7,10 +7,7 @@
 import com.ruoyi.system.api.factory.SysUserFallbackFactory;
 import com.ruoyi.system.api.model.*;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.*;
 
 import javax.management.relation.Role;
 import java.util.List;
@@ -22,7 +19,7 @@
     R<List<CompanyUserListVo>> getSysUserFromCompanyId(@RequestBody CompanySysUserReq companySysUserReq);
 
     @PostMapping("/user/getSysUser")
-    R<SysUser> getSysUser(Long userId);
+    R<SysUser> getSysUser(@RequestParam("userId")Long userId);
 
     @PostMapping("/user/updateSysUser")
     R<Boolean>  updateSysUser(@RequestBody SysUser sysUser);
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
index 30e4c24..d69b216 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -354,7 +354,7 @@
     }
 
     @PostMapping("/getSysUser")
-    public R<SysUser> getSysUser(@RequestBody Long userId) {
+    public R<SysUser> getSysUser(@RequestParam("userId") Long userId) {
         try {
             SysUser sysUser = userService.selectUserById(userId);
             return R.ok(sysUser);
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
index d11a972..3f0099d 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
@@ -122,13 +122,13 @@
                 // 没有充电订单 展示最新添加的车辆
                 data.setLicensePlate(cars.get(0).getLicensePlate());
                 data.setVehicleBrand(cars.get(0).getVehicleBrand());
-                data.setId(cars.get(0).getId());
+                data.setId(cars.get(0).getId().toString());
             }else{
                 for (TAppUserCar car : cars) {
                     if (car.getId().equals(data1)){
                         data.setLicensePlate(car.getLicensePlate());
                         data.setVehicleBrand(car.getVehicleBrand());
-                        data.setId(car.getId());
+                        data.setId(car.getId().toString());
                     }
                 }
             }
@@ -164,6 +164,7 @@
     public R<List<TAppUserCar>> carList() {
         List<TAppUserCar> appUserId = appUserCarService.list(new QueryWrapper<TAppUserCar>()
                 .eq("app_user_id",tokenService.getLoginUserApplet().getUserId()));
+        appUserId.forEach(s->s.setId_(s.getId().toString()));
         return R.ok(appUserId);
     }
 
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 997ac14..6a9293c 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
@@ -40,6 +40,7 @@
 import com.ruoyi.order.api.model.TGrantVip;
 import com.ruoyi.other.api.domain.*;
 import com.ruoyi.other.api.domain.TCoupon;
+import com.ruoyi.other.api.domain.TVip;
 import com.ruoyi.other.api.dto.UnitListQueryDto;
 import com.ruoyi.other.api.feignClient.IntegralRuleClient;
 import com.ruoyi.other.api.feignClient.OtherClient;
@@ -705,7 +706,7 @@
 
 
     @ApiOperation(value = "优惠卷详情(1可使用2不可用)", tags = {"小程序-个人中心"})
-    @GetMapping(value = "/user/coupon/getById")
+    @PostMapping(value = "/user/coupon/getById")
     public R<TAppCoupon> couponGetById(@RequestParam("id")Long id) {
         TAppCoupon appCoupon = appCouponService.getById(id);
         appCoupon.setUid(id.toString());
@@ -736,13 +737,13 @@
             TVip info = vipClient.getInfo1(giveVipDto.getVipId()).getData();
         switch (giveVipDto.getType()){
             case 1:
-                bigDecimal = bigDecimal.add(info.getMonthlyCard());
+                bigDecimal = bigDecimal.add(info.getMonthlyCard()==null?new BigDecimal(0):info.getMonthlyCard());
                 break;
             case 2:
-                bigDecimal = bigDecimal.add(info.getSeasonCard());
+                bigDecimal = bigDecimal.add(info.getSeasonCard()==null?new BigDecimal(0):info.getSeasonCard());
                 break;
             case 3:
-                bigDecimal = bigDecimal.add(info.getAnnualCard());
+                bigDecimal = bigDecimal.add(info.getAnnualCard()==null?new BigDecimal(0):info.getAnnualCard());
                 break;
         }
             //增加vipDetail
@@ -964,6 +965,10 @@
                 .eq(TAppUserSign::getAppUserId, userId)
                 .orderByDesc(TAppUserSign::getSignDay)
                 .list();
+        for (TAppUserSign signRecord : signRecords) {
+            int i = signDayUtil.calculateContinuousSignDays1(signRecord.getAppUserId(), signRecord.getSignDay());
+            signRecord.setContinueDays(i);
+        }
         return R.ok(signRecords);
 
     }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java
index 196895d..27c8667 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java
@@ -1,15 +1,16 @@
 package com.ruoyi.account.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.account.api.dto.SendCouponDto;
 import com.ruoyi.account.api.model.TAppUserVipDetail;
+import com.ruoyi.account.api.model.TVip;
 import com.ruoyi.account.api.vo.GetAppUserVipDetail;
 import com.ruoyi.account.service.TAppUserVipDetailService;
 import com.ruoyi.account.util.VipInfoDto;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.other.api.domain.TCoupon;
-import com.ruoyi.other.api.domain.TVip;
 import com.ruoyi.other.api.dto.VipCouponDto;
 import com.ruoyi.other.api.feignClient.OtherClient;
 import com.ruoyi.other.api.feignClient.VipClient;
@@ -62,9 +63,11 @@
 
 		for (TAppUserVipDetail tAppUserVipDetail : list) {
             if(null != tAppUserVipDetail.getVipId()){
-                TVip data = vipClient.getInfo1(tAppUserVipDetail.getVipId()).getData();
-                tAppUserVipDetail.setVipName(data.getName());
-				tAppUserVipDetail.setType(data.getType());
+				TVip tVip = JSONObject.parseObject(tAppUserVipDetail.getVipJson(), TVip.class);
+//				TVip data = vipClient.getInfo1(tAppUserVipDetail.getVipId()).getData();
+                tAppUserVipDetail.setVipName(tVip.getName());
+				tAppUserVipDetail.setType(tVip.getType());
+				tAppUserVipDetail.setVip(tVip);
             }
         }
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
index bd17572..da2a033 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
@@ -72,8 +72,8 @@
             }
         }
 
-        appUser.setAvatar(StringUtils.hasLength(appletUserDecodeData.getAvatarUrl())?appletUserDecodeData.getAvatarUrl():"http://221.182.45.100:8090/2024-10-26/logo.png");
-        appUser.setName(StringUtils.hasLength(appletUserDecodeData.getNickName())?appletUserDecodeData.getNickName():RptUtils.around(appletUserDecodeData.getPhoneNumber(),3,4));
+        appUser.setAvatar(StringUtils.hasLength(appUser.getAvatar())?appUser.getAvatar():"http://221.182.45.100:8090/2024-10-26/logo.png");
+        appUser.setName(StringUtils.hasLength(appUser.getName())?appUser.getName():RptUtils.around(appletUserDecodeData.getPhoneNumber(),3,4));
         appUser.setCity(appletUserDecodeData.getCity());
         appUser.setProvince(appletUserDecodeData.getProvince());
         appUser.setWxOpenid(appletUserDecodeData.getOpenId());
@@ -116,8 +116,8 @@
             }
         }
         appUser.setAliOpenid(response.getOpenId());
-        appUser.setAvatar("http://221.182.45.100:8090/2024-10-26/logo.png");
-        appUser.setName(RptUtils.around(phone,3,4));
+        appUser.setAvatar(StringUtils.hasLength(appUser.getAvatar())?appUser.getAvatar():"http://221.182.45.100:8090/2024-10-26/logo.png");
+        appUser.setName(StringUtils.hasLength(appUser.getName())?appUser.getName():RptUtils.around(phone,3,4));
         this.saveOrUpdate(appUser);
         if(Objects.nonNull(inviteUserId)){
             inviteUserService.saveInviteUser(appUser.getId(), inviteUserId);
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java
index 3431f5f..f2f1b87 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java
@@ -4,7 +4,9 @@
 import cn.hutool.core.date.DateUtil;
 import com.ruoyi.account.api.model.TAppUserSign;
 import com.ruoyi.account.service.TAppUserSignService;
+import org.springframework.cglib.core.Local;
 import org.springframework.stereotype.Component;
+import sun.rmi.server.LoaderHandler;
 
 import javax.annotation.Resource;
 import java.time.LocalDate;
@@ -48,6 +50,31 @@
         return calculateMaxContinuousSignDays(signDays);
     }
 
+    public int calculateContinuousSignDays1(Long userId, LocalDate date) {
+        DateTime startOfMonth = DateUtil.beginOfMonth(new Date());
+//        DateTime endOfMonth = DateUtil.endOfMonth(new Date());
+        // 获取用户的所有签到记录
+        List<TAppUserSign> signRecords = signService.lambdaQuery()
+                .between(TAppUserSign::getSignDay, startOfMonth, date)
+                .eq(TAppUserSign::getAppUserId, userId)
+                .orderByDesc(TAppUserSign::getSignDay)
+                .list();
+
+        // 如果没有签到记录,则返回0
+        if (signRecords.isEmpty()) {
+            return 0;
+        }
+
+        // 将签到日期转换为 LocalDate 列表,并按照日期排序
+        List<LocalDate> signDays = signRecords.stream()
+                .map(TAppUserSign::getSignDay)
+                .sorted()
+                .collect(Collectors.toList());
+
+        // 计算连续签到的最大天数
+        return calculateMaxContinuousSignDays(signDays);
+    }
+
     /**
      * 根据签到日期列表计算连续签到的最大天数
      * @param signDays 签到日期列表
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 dbd0aa4..8081c4e 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
@@ -123,33 +123,16 @@
 		SiteInfoVO siteInfoVO = new SiteInfoVO();
 		TChargingGun chargingGun = chargingGunService.getOne(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getFullNumber, number));
 		TChargingPile one = chargingPileService.getById(chargingGun.getChargingPileId());
-		Site byId = siteService.getById(one.getSiteId());
-		TAccountingStrategy byId1 = accountingStrategyService.getById(byId.getAccountingStrategyId());
+		Site byId = siteService.getById(chargingGun.getSiteId());
+		TAccountingStrategy byId1 = accountingStrategyService.getById(chargingGun.getAccountingStrategyId());
 		List<TAccountingStrategyDetail> list = accountingStrategyDetailService.lambdaQuery().eq(TAccountingStrategyDetail::getAccountingStrategyId, byId1.getId()).list();
 		list.stream().filter(item -> "00:00".equals(item.getEndTime())).forEach(item -> item.setEndTime("23:59:59"));
 		for (TAccountingStrategyDetail tAccountingStrategyDetail : list) {
 			// 当前时间属于那个阶段 取哪个阶段的电价
 			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.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.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence().setScale(4, BigDecimal.ROUND_HALF_UP));
+				siteInfoVO.setElectrovalence(tAccountingStrategyDetail.getElectrovalence().setScale(4, BigDecimal.ROUND_HALF_UP));
 			}
 		}
 		siteInfoVO.setChargingGunId(chargingGun.getId());
@@ -176,25 +159,8 @@
 			// 当前时间属于那个阶段 取哪个阶段的电价
 			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.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.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence().setScale(4, BigDecimal.ROUND_HALF_UP));
+				siteInfoVO.setElectrovalence(tAccountingStrategyDetail.getElectrovalence().setScale(4, BigDecimal.ROUND_HALF_UP));
 			}
 		}
 		siteInfoVO.setChargingPileId(one.getId());
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 2670e36..562043a 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
@@ -327,7 +327,7 @@
     @PostMapping(value = "/auth/pageList")
     public AjaxResult<PageInfo<TAccountingStrategyVO>> authPageList(@RequestBody TAccountingStrategyQuery query) {
 
-        return AjaxResult.ok(accountingStrategyService.pageList(query));
+        return AjaxResult.ok(accountingStrategyService.pageList1(query));
     }
     
 
@@ -361,8 +361,11 @@
                     byId.setSiteId(one.getSiteId());
                     //将site表对应的模板id修改为新的这个
                     Site byId1 = siteService.getById(one.getSiteId());
-                    byId1.setAccountingStrategyId(byId.getId());
-                    siteService.updateById(byId1);
+                    if (byId1!=null) {
+                        byId1.setAccountingStrategyId(byId.getId());
+                        siteService.updateById(byId1);
+                    }
+                    accountingStrategyService.removeById(one.getId());
                 }
                 //硬件
                 List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, byId.getSiteId()).list();
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 ff411ec..bca4199 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
@@ -225,10 +225,10 @@
 		if(null != chargingPile){
 			//充电桩正常,返回异常,处理充电桩状态和添加故障记录
 			if(chargingPile.getStatus() == 1 && 1 == status){
-				TFaultMessage faultMessage = faultMessageService.getOne(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingPileId, chargingPile.getId())
+				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(null == faultMessage){
-					faultMessage = new TFaultMessage();
+				if(faultMessages.isEmpty()){
+					TFaultMessage faultMessage = new TFaultMessage();
 					faultMessage.setSiteId(chargingPile.getSiteId());
 					faultMessage.setChargingPileId(chargingPile.getId());
 					faultMessage.setStatus(2);
@@ -237,21 +237,41 @@
 					faultMessage.setDelFlag(false);
 					faultMessage.setContent("设备故障");
 					faultMessageService.save(faultMessage);
-
-					chargingPile.setStatus(0 == status ? 1 : 3);
-					chargingPileService.updateById(chargingPile);
+					
+					TChargingPile chargingPile1 = new TChargingPile();
+					chargingPile1.setId(chargingPile.getId());
+					chargingPile1.setStatus(3);
+					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){
-				TFaultMessage one = faultMessageService.getOne(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingPileId, chargingPile.getId())
+				List<TFaultMessage> list = faultMessageService.list(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingPileId, chargingPile.getId())
 						.isNull(TFaultMessage::getEndTime));
-				if(null != one){
-					one.setEndTime(LocalDateTime.now());
-					faultMessageService.updateById(one);
+				if(!list.isEmpty()){
+					list.forEach(s->s.setEndTime(LocalDateTime.now()));
+					faultMessageService.updateBatchById(list);
 				}
-
-				chargingPile.setStatus(0 == status ? 1 : 3);
-				chargingPileService.updateById(chargingPile);
+				
+				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");
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TAccountingStrategyMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TAccountingStrategyMapper.java
index 6b3ce5d..efbf492 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TAccountingStrategyMapper.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TAccountingStrategyMapper.java
@@ -28,7 +28,8 @@
      * @return
      */
     List<TAccountingStrategyVO> pageList(@Param("query") TAccountingStrategyQuery query, @Param("pageInfo")PageInfo<TAccountingStrategyVO> pageInfo);
-    
+    List<TAccountingStrategyVO> pageList1(@Param("query") TAccountingStrategyQuery query, @Param("pageInfo")PageInfo<TAccountingStrategyVO> pageInfo);
+
     
     /**
      * 获取平台添加的计费策略
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyService.java
index 06834ef..f805cd0 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyService.java
@@ -24,7 +24,8 @@
      * @return
      */
     PageInfo<TAccountingStrategyVO> pageList(TAccountingStrategyQuery query);
-    
+    PageInfo<TAccountingStrategyVO> pageList1(TAccountingStrategyQuery query);
+
     /**
      * 获取平台添加的计费策略
      * @return
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
index e02da4e..ea74c61 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
@@ -375,7 +375,7 @@
 				child.put("selected", collect.contains(siteMenu.getMenuId()));
 				list2.add(child);
 			}
-			menu.put("selected", list2.size() > 0 ? true : false);
+			menu.put("selected", collect.contains(tSiteMenu.getMenuId()));
 			menu.put("child", list2);
 			list1.add(menu);
 		}
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 aacf87e..9a33506 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
@@ -293,7 +293,9 @@
 			TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
 			if(Objects.nonNull(vip) && vip.getType() == 2){
 				list.forEach(item -> {
-					item.setVipElectrovalence(vip.getDiscount().divide(new BigDecimal(10)).multiply(item.getServiceCharge()).add(item.getElectrovalenceOriginal()));
+					if(Objects.nonNull(vip.getDiscount())){
+						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/TAccountingStrategyServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyServiceImpl.java
index 472d616..29d8c4a 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyServiceImpl.java
@@ -64,6 +64,28 @@
         pageInfo.setRecords(list);
         return pageInfo;
     }
+    @Override
+    public PageInfo<TAccountingStrategyVO> pageList1(TAccountingStrategyQuery query) {
+        PageInfo<TAccountingStrategyVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
+        List<TAccountingStrategyVO> list = this.baseMapper.pageList1(query,pageInfo);
+        List<Integer> parentIds = list.stream().map(TAccountingStrategyVO::getId).collect(Collectors.toList());
+
+        for (TAccountingStrategyVO tAccountingStrategyVO : list) {
+            SysUser data = sysUserClient.getSysUser(tAccountingStrategyVO.getUserId()).getData();
+            tAccountingStrategyVO.setUserName(data.getNickName());
+            if (tAccountingStrategyVO.getFirstUserId()!=null){
+                SysUser first = sysUserClient.getSysUser(tAccountingStrategyVO.getFirstUserId()).getData();
+                tAccountingStrategyVO.setFirstUserName(first==null?null:first.getNickName());
+            }
+            if (tAccountingStrategyVO.getTwoUserId()!=null){
+                SysUser two = sysUserClient.getSysUser(tAccountingStrategyVO.getTwoUserId()).getData();
+                tAccountingStrategyVO.setTwoUserName(two==null?null:two.getNickName());
+            }
+
+        }
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
     
     
     /**
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 640d886..70a11ec 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
@@ -586,24 +586,29 @@
 	@Override
 	public void updateStatus() {
 		List<TChargingPile> list = this.list(new LambdaQueryWrapper<TChargingPile>().eq(TChargingPile::getDelFlag, 0));
-		List<TChargingPile> datas = new ArrayList();
 		Map<String, Object> charging_pile_online = redisService.getCacheMap("charging_pile_online");
 		for (TChargingPile chargingPile : list) {
 			Long time = (Long) charging_pile_online.get(chargingPile.getCode());
 			if(null != time && System.currentTimeMillis() - time > 60000){
-				chargingPile.setStatus(2);
-				datas.add(chargingPile);
-			}
-		}
-		
-		if(datas.size() > 0){
-			for (TChargingPile data : datas) {
-				TFaultMessage faultMessage = faultMessageService.getOne(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingPileId, data.getId())
+				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);
+				}
+				
+				//添加记录
+				TFaultMessage faultMessage = faultMessageService.getOne(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingPileId, chargingPile.getId())
 						.eq(TFaultMessage::getStatus, 1).eq(TFaultMessage::getDelFlag, 0).isNull(TFaultMessage::getEndTime));
 				if(null == faultMessage){
 					faultMessage = new TFaultMessage();
-					faultMessage.setSiteId(data.getSiteId());
-					faultMessage.setChargingPileId(data.getId());
+					faultMessage.setSiteId(chargingPile.getSiteId());
+					faultMessage.setChargingPileId(chargingPile.getId());
 					faultMessage.setStatus(1);
 					faultMessage.setDownTime(LocalDateTime.now());
 					faultMessage.setCreateTime(LocalDateTime.now());
@@ -612,7 +617,6 @@
 					faultMessageService.save(faultMessage);
 				}
 			}
-			this.updateBatchById(datas);
 		}
 	}
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
index 934b624..4851c30 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
@@ -154,13 +154,14 @@
 			a.service_charge AS serviceCharge,
 			a.electrovalence AS electrovalenceOriginal,
 			(a.electrovalence+a.service_charge) AS electrovalence,
-			(a.electrovalence + (a.service_charge*b.discount)) AS vipElectrovalence
+			(a.electrovalence + (a.service_charge*(CASE WHEN b.discount IS NULL THEN 1 ELSE b.discount END))) AS vipElectrovalence
 		from
 		    t_accounting_strategy_detail a
 		left join
 		        t_accounting_strategy b on (a.accounting_strategy_id = b.id)
 		where b.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
-		AND DATE_FORMAT(NOW(), '%H:%i:%s') between a.start_time and a.end_time) tasd on (ts.accounting_strategy_id = tasd.accounting_strategy_id)
+		AND DATE_FORMAT(NOW(), '%H:%i:%s') between a.start_time and
+		CASE WHEN a.end_time = '00:00' THEN '23:59:59' ELSE a.end_time END) tasd on (ts.accounting_strategy_id = tasd.accounting_strategy_id)
 		<where>
 			<if test="null != query.name and '' != query.name">
 				and ts.`name` like CONCAT('%', #{query.name}, '%')
@@ -288,19 +289,20 @@
 		a.service_charge AS serviceCharge,
 		a.electrovalence AS electrovalenceOriginal,
 		(a.electrovalence+a.service_charge) AS electrovalence,
-		(a.electrovalence+(a.service_charge*b.discount)) AS vipElectrovalence
+		(a.electrovalence+(a.service_charge*(CASE WHEN b.discount IS NULL THEN 1 ELSE b.discount END))) AS vipElectrovalence
 		from
 		t_accounting_strategy_detail a
 		left join
 		t_accounting_strategy b on (a.accounting_strategy_id = b.id)
 		where b.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
-		AND DATE_FORMAT(NOW(), '%H:%i:%s') between a.start_time and a.end_time) tasd on (ts.accounting_strategy_id = tasd.accounting_strategy_id)
+		AND DATE_FORMAT(NOW(), '%H:%i:%s') between a.start_time AND
+		CASE WHEN a.end_time = '00:00' THEN '23:59:59' ELSE a.end_time END) tasd on (ts.accounting_strategy_id = tasd.accounting_strategy_id)
 		<where>
 			<if test="null != query.name and '' != query.name">
 				and ts.`name` like CONCAT('%', #{query.name}, '%')
 			</if>
 			<if test="null != query.cityCode and '' != query.cityCode">
-				and ts.cityCode = #{query.cityCode}
+				and ts.city_code = #{query.cityCode}
 			</if>
 			AND ts.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
 			AND ts.status = ${@com.ruoyi.common.core.enums.status.SiteStatusEnum@NORMAL_USE.getCode()}
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 e218c2a..c9b1ea5 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
@@ -43,6 +43,25 @@
         ORDER BY create_time DESC
     </select>
 
+
+    <select id="pageList1" resultType="com.ruoyi.chargingPile.api.vo.TAccountingStrategyVO">
+        SELECT
+        id, site_id, `name`, description, discount,first_user_id,two_user_id,first_remark,two_remark,audit_status,first_audit_time,two_audit_time, create_time, del_flag,user_id,parent_id
+        FROM t_accounting_strategy
+        <where>
+            <if test="query.name != null and query.name != ''">
+                AND `name` LIKE concat('%',#{query.name}, '%')
+            </if>
+            <if test="query.auditStatus != null">
+                AND audit_status = #{query.auditStatus}
+            </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>
+
     
     
     <select id="getPlatformAccountingStrategy" resultType="com.ruoyi.chargingPile.api.vo.TAccountingStrategyVO">
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
index f3ece3c..1a3c63c 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
@@ -51,6 +51,7 @@
 		parkingRecord.setCode(code);
 		parkingRecord.setVehicleColor(order.getPlateColor());
 		TParkingLot data = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData();
+		parkingRecord.setName(data.getName());
 		parkingRecord.setParkingLotId(data.getId());
 		parkingRecord.setInParkingTime(LocalDateTime.parse(order.getEnterDateTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
 		parkingRecord.setStatus(1);
@@ -101,6 +102,7 @@
 		parkingRecord.setCode(code);
 		parkingRecord.setVehicleColor(order.getPlatecolor());
 		TParkingLot data = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData();
+		parkingRecord.setName(data.getName());
 		parkingRecord.setParkingLotId(data.getId());
 		parkingRecord.setInParkingTime(LocalDateTime.parse(order.getEntertime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
 		parkingRecord.setStatus(1);
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 e2a7f77..f1271ae 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
@@ -79,6 +79,12 @@
         return R.ok(list);
     }
 
+    @PostMapping(value = "/delete")
+    public R delete(@RequestParam String id) throws ParseException {
+        uploadRealTimeMonitoringDataService.delete(id);
+        return R.ok();
+    }
+
     
 }
 
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 c5b2e12..2463e5e 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
@@ -25,4 +25,5 @@
 	 */
     UploadRealTimeMonitoringData getLastDataById(String transaction_serial_number);
 
+	void delete(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 42fbedb..c23a6a6 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
@@ -108,6 +108,10 @@
 
 
 
+
+
+
+        long totalElements = mongoTemplate.count(query, UploadRealTimeMonitoringData.class);
         // 设置分页
         Pageable pageable = PageRequest.of(mongoChargingOrderQuery.getPageCurr(), mongoChargingOrderQuery.getPageSize());
         query.with(pageable);
@@ -115,9 +119,6 @@
         List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData = mongoTemplate.find(
                 query
                 , UploadRealTimeMonitoringData.class);
-
-
-        long totalElements = mongoTemplate.count(query, UploadRealTimeMonitoringData.class);
 
         UploadRealTimeMonitoringPageData uploadRealTimeMonitoringPageData = new UploadRealTimeMonitoringPageData();
         uploadRealTimeMonitoringPageData.setCount(totalElements);
@@ -138,4 +139,10 @@
         return mongoTemplate.findOne(query, UploadRealTimeMonitoringData.class);
     }
 
+    @Override
+    public void delete(String id) {
+        UploadRealTimeMonitoringData byId = findById(id.toString());
+        mongoTemplate.remove(byId);
+    }
+
 }
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 afe00bd..be490dc 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
@@ -201,7 +201,7 @@
                     uploadRealTimeMonitoringData.setElectrovalence_all(accountingStrategyDetail.getElectrovalence());
                     uploadRealTimeMonitoringData.setService_charge(accountingStrategyDetail.getServiceCharge());
                     if (Objects.nonNull(data)) {
-                        uploadRealTimeMonitoringData.setLast_time(data.getLast_time());
+                        data.setLast_time(new Date());
                         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));
@@ -214,8 +214,8 @@
                     uploadRealTimeMonitoringData.setOrderType(chargingOrder.getOrderType());
                     uploadRealTimeMonitoringData.setSiteId(chargingOrder.getSiteId());
                     uploadRealTimeMonitoringData.setStatus(chargingOrder.getStatus());
-                    uploadRealTimeMonitoringData.setStartTime(chargingOrder.getStartTime());
-                    uploadRealTimeMonitoringData.setEndTime(chargingOrder.getEndTime());
+//                    uploadRealTimeMonitoringData.setStartTime(chargingOrder.getStartTime());
+//                    uploadRealTimeMonitoringData.setEndTime(chargingOrder.getEndTime());
                     int i = uploadRealTimeMonitoringDataService.create(uploadRealTimeMonitoringData);
                     if(i == 0){
                         log.error("数据存储mongo失败");
@@ -224,47 +224,6 @@
                     UploadRealTimeMonitoringDataQuery query = new UploadRealTimeMonitoringDataQuery();
                     BeanUtils.copyProperties(uploadRealTimeMonitoringData, query);
                     chargingOrderClient.chargeMonitoring(query);
-                    GetChargingGunByCode code = new GetChargingGunByCode();
-                    code.setCharging_pile_code(uploadRealTimeMonitoringDataMessage.getCharging_pile_code());
-                    code.setCharging_gun_code(uploadRealTimeMonitoringDataMessage.getCharging_gun_code());
-                    TChargingGun chargingGun = chargingGunClient.getChargingGunByCode(code).getData();
-                    if(Objects.nonNull(chargingGun)){
-                        // 存储状态信息
-                        TFaultMessage faultMessage = new TFaultMessage();
-                        if(uploadRealTimeMonitoringDataMessage.getCharging_gun_status().equals(0) || uploadRealTimeMonitoringDataMessage.getCharging_gun_status().equals(1)){
-                            faultMessage.setSiteId(chargingGun.getSiteId());
-                            faultMessage.setChargingPileId(chargingGun.getChargingPileId());
-                            faultMessage.setChargingGunId(chargingGun.getId());
-                            switch (uploadRealTimeMonitoringDataMessage.getCharging_gun_status()){
-                                case 0:
-                                    faultMessage.setStatus(1);
-                                    chargingGun.setStatus(1);
-                                    break;
-                                case 1:
-                                    faultMessage.setStatus(2);
-                                    chargingGun.setStatus(7);
-                                    break;
-                            }
-                            faultMessage.setDownTime(LocalDateTime.now());
-                            faultMessageClient.createFaultMessage(faultMessage);
-                        }else {
-                            switch (uploadRealTimeMonitoringDataMessage.getCharging_gun_status()){
-                                case 2:
-                                    chargingGun.setStatus(2);
-                                    break;
-                                case 3:
-                                    chargingGun.setStatus(4);
-                                    break;
-                            }
-                            // 空闲 充电 查询是否该设备之前存在离线记录或者故障记录
-                            faultMessage = faultMessageClient.getFaultMessageByGunId(chargingGun.getId()).getData();
-                            if(Objects.nonNull(faultMessage)){
-                                faultMessage.setEndTime(LocalDateTime.now());
-                                faultMessageClient.updateFaultMessage(faultMessage);
-                            }
-                        }
-                        chargingGunClient.updateChargingGunById(chargingGun);
-                    }
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
@@ -375,6 +334,13 @@
                 TransactionRecordMessageVO vo = new TransactionRecordMessageVO();
                 BeanUtils.copyProperties(transactionRecordMessage,vo);
                 chargingOrderClient.endChargeBillingCharge(vo);
+                // 添加实时上传记录结束记录
+                // 查询mogondb上一条数据
+                UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataService.getLastDataById(transactionRecordMessage.getTransaction_serial_number());
+                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 4046d55..4c48815 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
@@ -348,7 +348,6 @@
     public AjaxResult<ChargingOrderInfoVO> chargingOrderInfo(String strategyId) {
         TChargingOrder byId = chargingOrderService.getById(strategyId);
         ChargingOrderInfoVO chargingOrderInfoVO = new ChargingOrderInfoVO();
-
         chargingOrderInfoVO.setCdElectronic(byId.getCurrent()!=null?byId.getCurrent().setScale(2, BigDecimal.ROUND_HALF_DOWN)+"":"");
         chargingOrderInfoVO.setCdVoltage(byId.getVoltage()!=null?byId.getVoltage().setScale(2, BigDecimal.ROUND_HALF_DOWN)+"":"");
         chargingOrderInfoVO.setSurplus(byId.getTotalElectricity()!=null?byId.getTotalElectricity().setScale(2, BigDecimal.ROUND_HALF_DOWN)+"":"");
@@ -838,9 +837,16 @@
 
         return R.ok(page);
     }
-    
-    
-    
+
+
+
+    @ResponseBody
+    @GetMapping(value = "/watch/deletes")
+    @ApiOperation(value = "监控订单-删除", tags = {"管理后台-订单管理"})
+    public R watchChargingOrder(@RequestParam String id) {
+        uploadRealTimeMonitoringDataClient.delete(id);
+        return R.ok();
+    }
     
     /**
      * 处理充电订单实时监控数据相关的业务逻辑
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 8d1ff8f..00bbda4 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
@@ -1,9 +1,11 @@
 package com.ruoyi.order.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.order.api.model.TOrderEvaluate;
+import com.ruoyi.order.api.model.TOrderEvaluateTag;
 import com.ruoyi.order.api.query.TOrderEvaluateQuery;
 import com.ruoyi.order.api.vo.SiteDetailEvaluateVO;
 import com.ruoyi.order.api.vo.TOrderEvaluateVO;
@@ -11,12 +13,14 @@
 import com.ruoyi.order.dto.GetOrderEvaluatePageListDTO;
 import com.ruoyi.order.dto.OrderEvaluateVo;
 import com.ruoyi.order.service.TOrderEvaluateService;
+import com.ruoyi.order.service.TOrderEvaluateTagService;
 import com.ruoyi.order.vo.ReplyEvaluationVO;
 import com.ruoyi.other.api.vo.TEvaluationTagVO;
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -35,6 +39,11 @@
 
     @Autowired
     private TOrderEvaluateService orderEvaluateService;
+    
+    @Resource
+    private TOrderEvaluateTagService orderEvaluateTagService;
+    
+    
 
 
     @ApiOperation(tags = {"小程序-订单评价"},value = "充电订单评价标签及数量查询")
@@ -69,6 +78,7 @@
     public AjaxResult delOrderEvaluate(@PathVariable("id") Long id){
         TOrderEvaluate orderEvaluate = orderEvaluateService.getById(id);
         orderEvaluateService.removeById(orderEvaluate);
+        orderEvaluateTagService.remove(new LambdaQueryWrapper<TOrderEvaluateTag>().eq(TOrderEvaluateTag::getOrderEvaluateId, id));
         return AjaxResult.success();
     }
     
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java
index 68f7c00..a1649f7 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java
@@ -82,6 +82,13 @@
 	private SysUserClient sysUserClient;
 	@Resource
 	private TShoppingOrderRefundService shoppingOrderRefundService;
+	@Resource
+	private AppUserAddressClient appUserAddressClient;
+	
+	
+	
+	
+	
 	/**
 	 * 远程管理后台取消订单后退款回调
 	 */
@@ -350,8 +357,7 @@
 		return AjaxResult.success(list);
 	}
 
-	@Resource
-	private AppUserAddressClient appUserAddressClient;
+	
 	@PostMapping("/create")
 	public R<TShoppingOrder> shopCreate(@RequestBody ExchangeDto exchangeDto) {
 		TShoppingOrder shoppingOrder = new TShoppingOrder();
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 e7152ca..dba79d4 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
@@ -50,6 +50,7 @@
 import com.ruoyi.order.vo.EndOfChargePageInfo;
 import com.ruoyi.other.api.domain.*;
 import com.ruoyi.order.vo.ChargingOrderListInfoVO;
+import com.ruoyi.other.api.domain.TVip;
 import com.ruoyi.other.api.feignClient.*;
 import com.ruoyi.payment.api.feignClient.AliPaymentClient;
 import com.ruoyi.payment.api.feignClient.WxPaymentClient;
@@ -65,10 +66,12 @@
 import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
+import javax.crypto.MacSpi;
 import java.lang.reflect.InvocationTargetException;
 import java.math.BigDecimal;
 import java.math.MathContext;
 import java.math.RoundingMode;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.*;
 import java.time.format.DateTimeFormatter;
@@ -656,10 +659,107 @@
 		
 		log.error(chargingOrder.getCode() + ":-------------------远程调起开始充电请求-------------------" + platformStartCharging.toString());
 		sendMessageClient.platformStartCharging(platformStartCharging);
+		//异步线程检测远程启动的应答结果。如果失败,则需要全额退款
+		Long id = chargingOrder.getId();
+		//执行5分钟的定时任务检测
+		ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
+		scheduler.scheduleAtFixedRate(()->{
+			if(timingDetection(id)){
+				scheduler.shutdown();
+			}
+		}, 5, 1, TimeUnit.SECONDS);
 		return AjaxResult.success();
 	}
 	
-
+	
+	/**
+	 * 定时检测mongodb数据库数据
+	 * @param id
+	 * @return
+	 */
+	public boolean timingDetection(Long id){
+		TChargingOrder chargingOrder = this.getById(id);
+		if(chargingOrder.getStatus() != 2){
+			return true;
+		}
+		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);
+			Integer startup_result = platformStartChargingReply.getStartup_result();
+			Integer failure_cause = platformStartChargingReply.getFailure_cause();
+			Integer counter = counter_map.get(code);
+			PreChargeCheck preChargeCheck1 = redisService.getCacheObject(key);
+			//5分钟内还未插枪则取消充电,退回金额。
+			if(failure_cause == 5 && (null == counter || counter < 300)){
+				counter = (null == counter ? 0 : counter) + 1;
+				counter_map.put(code, counter);
+				//启动失败
+				preChargeCheck1.setStartupSuccess(3);
+				preChargeCheck1.setFailureCause(failure_cause);
+				redisService.setCacheObject(key, preChargeCheck1, 24L, TimeUnit.HOURS);
+				return false;
+			}
+			
+			//清除计时器中的无效数据
+			counter_map.remove(code);
+			TChargingOrder order = new TChargingOrder();
+			order.setId(id);
+			order.setAppUserId(chargingOrder.getAppUserId());
+			if(0 == startup_result){
+				//启动失败
+				preChargeCheck1.setStartupSuccess(3);
+				preChargeCheck1.setFailureCause(failure_cause);
+				//启动失败后取消订单,退款操作
+				refund(code);
+				order.setStatus(-1);
+				order.setEndMode(0);
+			}else{
+				//启动成功
+				preChargeCheck1.setStartupSuccess(2);
+				order.setStatus(3);
+				order.setStartTime(LocalDateTime.now());
+			}
+			this.updateById(order);
+			redisService.setCacheObject(key, preChargeCheck1, 24L, TimeUnit.HOURS);
+			return true;
+		}else{
+			Integer counter = boot_failed_map.get(code);
+			log.error(code + ":-------------------未上传开启充电结果-------------------" + counter);
+			PreChargeCheck preChargeCheck1 = redisService.getCacheObject(key);
+			//5分钟内未启动成功,退回金额。
+			if(null == counter || counter < 300){
+				counter = (null == counter ? 0 : counter) + 1;
+				boot_failed_map.put(code, counter);
+				//启动失败
+				preChargeCheck1.setStartupSuccess(3);
+				preChargeCheck1.setFailureCause(0);
+				redisService.setCacheObject(key, preChargeCheck1, 24L, TimeUnit.HOURS);
+				return false;
+			}
+			
+			//清除计时器中的无效数据
+			boot_failed_map.remove(code);
+			TChargingOrder order = new TChargingOrder();
+			order.setId(id);
+			order.setAppUserId(chargingOrder.getAppUserId());
+			//启动失败
+			preChargeCheck1.setStartupSuccess(3);
+			preChargeCheck1.setFailureCause(0);
+			//启动失败后取消订单,退款操作
+			refund(code);
+			order.setStatus(-1);
+			order.setEndMode(0);
+			this.updateById(order);
+			redisService.setCacheObject(key, preChargeCheck1, 24L, TimeUnit.HOURS);
+			return true;
+		}
+	}
 	
 	
 	/**
@@ -798,7 +898,10 @@
 		one.setRefundTime(LocalDateTime.now());
 		chargingOrderRefundService.updateById(one);
 		
-		TChargingOrder chargingOrder = this.getById(one.getChargingOrderId());
+		TChargingOrder order = this.getById(one.getChargingOrderId());
+		TChargingOrder chargingOrder = new TChargingOrder();
+		chargingOrder.setId(one.getChargingOrderId());
+		chargingOrder.setAppUserId(order.getAppUserId());
 		chargingOrder.setRefundStatus(2);
 		chargingOrder.setRefundSerialNumber(refund_id);
 		chargingOrder.setRefundTime(LocalDateTime.now());
@@ -866,14 +969,17 @@
 	@Override
 	@GlobalTransactional(rollbackFor = Exception.class)
 	public AjaxResult stopCharging(String id) {
-		TChargingOrder chargingOrder = this.getById(id);
-		Integer status = chargingOrder.getStatus();
+		TChargingOrder order = this.getById(id);
+		Integer status = order.getStatus();
 		if(status != 3){
 			return AjaxResult.error("还未开始充电");
 		}
 		if(status == 4 || status == 5){
 			return AjaxResult.error("不能重复操作");
 		}
+		TChargingOrder chargingOrder = new TChargingOrder();
+		chargingOrder.setId(Long.valueOf(id));
+		chargingOrder.setAppUserId(order.getAppUserId());
 		chargingOrder.setEndTime(LocalDateTime.now());
 		chargingOrder.setEndMode(1);
 		this.updateById(chargingOrder);
@@ -1681,6 +1787,8 @@
 		
 		//开始处理计费明细数据和优惠数据
 		chargingOrderAccountingStrategyService.remove(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId()));
+		SimpleDateFormat sdfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		List<AccountingStrategyDetailOrderVo> lists = new ArrayList<>();
 		for (int i = 0; i < accountingStrategyDetailOrderList.size(); i++) {
 			Class<? extends TransactionRecordMessageVO> clazz = vo.getClass();
 			try {
@@ -1709,44 +1817,100 @@
 					continue;
 				}
 				BigDecimal sharp_peak_charge = new BigDecimal(invoke.toString());
-				TChargingOrderAccountingStrategy chargingOrderAccountingStrategy = new TChargingOrderAccountingStrategy();
-				chargingOrderAccountingStrategy.setChargingOrderId(chargingOrder.getId());
-				chargingOrderAccountingStrategy.setAccountingStrategyDetailId(strategyDetail.getId());
-				chargingOrderAccountingStrategy.setType(strategyDetail.getType());
-				chargingOrderAccountingStrategy.setStartTime(chargingOrder.getStartTime().format(DateTimeFormatter.ofPattern("HH:mm")));
-				chargingOrderAccountingStrategy.setEndTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("HH:mm")));
-				chargingOrderAccountingStrategy.setElectrovalence(strategyDetail.getElectrovalence());
-				chargingOrderAccountingStrategy.setServiceCharge(strategyDetail.getServiceCharge());
-				chargingOrderAccountingStrategy.setCostServiceCharge(strategyDetail.getCostServiceCharge());
-				//已充电总度数
-				BigDecimal electrovalenc = strategyDetail.getElectrovalence().multiply(sharp_peak_charge).setScale(2, RoundingMode.DOWN);
-				BigDecimal originalServicePrice = strategyDetail.getServiceCharge().multiply(sharp_peak_charge).setScale(2, RoundingMode.DOWN);
-				BigDecimal serviceCharge = originalServicePrice;
-				BigDecimal vipDiscountAmount = BigDecimal.ZERO;
-				//计算优惠金额
-				if(null != chargingOrder.getVipDiscount()){
-					vipDiscountAmount = serviceCharge.multiply(new BigDecimal(1).subtract(chargingOrder.getVipDiscount())).setScale(2, RoundingMode.DOWN);
-					serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount()).setScale(2, RoundingMode.DOWN);
-				}
-				chargingOrderAccountingStrategy.setChargingCapacity(sharp_peak_charge);
-				chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc);
-				chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge);
-				chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice);
-				chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount);
-				chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now());
-				chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy);
-				
-				periodElectricPrice_total = periodElectricPrice_total.add(electrovalenc);
-				periodServicePrice_total = periodServicePrice_total.add(originalServicePrice);
-				total = total.add(electrovalenc.add(originalServicePrice));
+				AccountingStrategyDetailOrderVo vo1 = new AccountingStrategyDetailOrderVo();
+				BeanUtils.copyProperties(strategyDetail, vo1);
+				vo1.setStart(sdfs.parse(vo.getStart_time().split(" ")[0] + " " + strategyDetail.getStartTime() + ":00").getTime());
+				vo1.setEnd(sdfs.parse(vo.getStart_time().split(" ")[0] + " " + strategyDetail.getEndTime() + ":00").getTime());
+				vo1.setChargingCapacity(sharp_peak_charge);
+				lists.add(vo1);
 			} catch (IllegalAccessException e) {
 				throw new RuntimeException(e);
 			} catch (InvocationTargetException e) {
 				throw new RuntimeException(e);
 			} catch (NoSuchMethodException e) {
 				throw new RuntimeException(e);
+			} catch (ParseException e) {
+				throw new RuntimeException(e);
 			}
 		}
+		Collections.sort(lists, new Comparator<AccountingStrategyDetailOrderVo>() {
+			public int compare(AccountingStrategyDetailOrderVo s1, AccountingStrategyDetailOrderVo s2) {
+				return s1.getStart() < s2.getStart() ? -1 : s1.getStart() == s2.getStart() ? 0 : 1;
+			}
+		});
+		if(!vo.getStart_time().split(" ")[0].equals(vo.getEnd_time().split(" ")[0])){
+			List<AccountingStrategyDetailOrderVo> list1 = new ArrayList<>(lists);
+			for (AccountingStrategyDetailOrderVo orderVo : list1) {
+				Calendar start = Calendar.getInstance();
+				start.setTimeInMillis(orderVo.getStart());
+				start.set(Calendar.DAY_OF_YEAR, start.get(Calendar.DAY_OF_YEAR) + 1);
+				orderVo.setStart(start.getTimeInMillis());
+				Calendar end = Calendar.getInstance();
+				end.setTimeInMillis(orderVo.getEnd());
+				end.set(Calendar.DAY_OF_YEAR, end.get(Calendar.DAY_OF_YEAR) + 1);
+				orderVo.setEnd(end.getTimeInMillis());
+			}
+			lists.addAll(list1);
+		}
+		
+		//开始处理明细
+		SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SS");
+		SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm");
+		Date start = null;
+		Date end = null;
+		try {
+			start = sdf3.parse(vo.getStart_time());
+			end = sdf3.parse(vo.getEnd_time());
+		} 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();
+			chargingOrderAccountingStrategy.setChargingOrderId(chargingOrder.getId());
+			chargingOrderAccountingStrategy.setAccountingStrategyDetailId(strategyDetail.getId());
+			chargingOrderAccountingStrategy.setType(strategyDetail.getType());
+			chargingOrderAccountingStrategy.setElectrovalence(strategyDetail.getElectrovalence());
+			chargingOrderAccountingStrategy.setServiceCharge(strategyDetail.getServiceCharge());
+			chargingOrderAccountingStrategy.setCostServiceCharge(strategyDetail.getCostServiceCharge());
+			
+			if(start.getTime() >= strategyDetail.getStart()){
+				chargingOrderAccountingStrategy.setStartTime(sdf2.format(start));
+			}else{
+				chargingOrderAccountingStrategy.setStartTime(strategyDetail.getStartTime());
+			}
+			if(end.getTime() >= strategyDetail.getEnd()){
+				chargingOrderAccountingStrategy.setEndTime(strategyDetail.getEndTime());
+			}else{
+				chargingOrderAccountingStrategy.setEndTime(sdf2.format(end));
+			}
+			
+			//已充电总度数
+			BigDecimal electrovalenc = strategyDetail.getElectrovalence().multiply(sharp_peak_charge).setScale(2, RoundingMode.DOWN);
+			BigDecimal originalServicePrice = strategyDetail.getServiceCharge().multiply(sharp_peak_charge).setScale(2, RoundingMode.DOWN);
+			BigDecimal serviceCharge = originalServicePrice;
+			BigDecimal vipDiscountAmount = BigDecimal.ZERO;
+			//计算优惠金额
+			if(null != chargingOrder.getVipDiscount()){
+				vipDiscountAmount = serviceCharge.multiply(new BigDecimal(1).subtract(chargingOrder.getVipDiscount())).setScale(2, RoundingMode.DOWN);
+				serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount()).setScale(2, RoundingMode.DOWN);
+			}
+			chargingOrderAccountingStrategy.setChargingCapacity(sharp_peak_charge);
+			chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc);
+			chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge);
+			chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice);
+			chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount);
+			chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now());
+			chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy);
+			
+			periodElectricPrice_total = periodElectricPrice_total.add(electrovalenc);
+			periodServicePrice_total = periodServicePrice_total.add(originalServicePrice);
+			total = total.add(electrovalenc.add(originalServicePrice));
+		}
+		
 		
 		
 		//原金额
@@ -1876,9 +2040,10 @@
 		BigDecimal couponDiscountAmount = order.getCouponDiscountAmount();
 		if(null != couponDiscountAmount && couponDiscountAmount.compareTo(BigDecimal.ZERO) > 0){
 			List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.list(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, order.getId()));
+			BigDecimal reduce = list.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
 			for (TChargingOrderAccountingStrategy chargingOrderAccountingStrategy : list) {
 				BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodServicePrice();
-				BigDecimal multiply = couponDiscountAmount.multiply(periodServicePrice.divide(periodServicePrice_total, new MathContext(4, RoundingMode.HALF_EVEN)));
+				BigDecimal multiply = couponDiscountAmount.multiply(periodServicePrice.divide(reduce, new MathContext(4, RoundingMode.HALF_EVEN)));
 				periodServicePrice = periodServicePrice.subtract(multiply);
 				chargingOrderAccountingStrategy.setPeriodServicePrice(periodServicePrice);
 				chargingOrderAccountingStrategy.setCouponDiscountAmount(multiply);
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 2366b45..f216c5c 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
@@ -139,14 +139,15 @@
         tagList = tagList.stream().sorted(Comparator.comparing(TEvaluationTagVO::getTagCount).reversed()).collect(Collectors.toList());
         // 统计有图,好评,中差评数量
         long imgUrlCount = this.count(Wrappers.lambdaQuery(TOrderEvaluate.class)
-                .isNotNull(TOrderEvaluate::getImgUrl));
-        packageTagCount(imgUrlCount,"有图",tagList);
+                .isNotNull(TOrderEvaluate::getImgUrl)
+                .ne(TOrderEvaluate::getImgUrl,""));
+        packageTagCount(imgUrlCount,"有图",2,tagList);
         long goodCount = this.count(Wrappers.lambdaQuery(TOrderEvaluate.class)
                 .ge(TOrderEvaluate::getMark,4));
-        packageTagCount(goodCount,"好评",tagList);
+        packageTagCount(goodCount,"好评",3,tagList);
         long badCount = this.count(Wrappers.lambdaQuery(TOrderEvaluate.class)
                 .le(TOrderEvaluate::getMark,3));
-        packageTagCount(badCount,"中差评",tagList);
+        packageTagCount(badCount,"中差评",4,tagList);
         return tagList;
     }
 
@@ -172,9 +173,11 @@
                 orderEvaluateVO.setName(appUser.getName());
                 orderEvaluateVO.setAvatar(appUser.getAvatar());
             }
-            TAppUserCar appUserCar = appUserCars.stream().filter(car -> car.getId().equals(Long.parseLong(String.valueOf(orderEvaluateVO.getAppUserCarId())))).findFirst().orElse(null);
-            if(Objects.nonNull(appUserCar)){
-                orderEvaluateVO.setCarName(appUserCar.getVehicleBrand());
+            if(Objects.nonNull(orderEvaluateVO.getAppUserCarId())){
+                TAppUserCar appUserCar = appUserCars.stream().filter(car -> car.getId().equals(Long.parseLong(String.valueOf(orderEvaluateVO.getAppUserCarId())))).findFirst().orElse(null);
+                if(Objects.nonNull(appUserCar)){
+                    orderEvaluateVO.setCarName(appUserCar.getVehicleBrand());
+                }
             }
         });
         pageInfo.setRecords(list);
@@ -206,6 +209,11 @@
                         List<TEvaluationTag> data = evaluationTagClient.getListByIds(tagIds).getData();
                         tOrderEvaluateVO.setOrderEvaluateTags(data);
                     }
+                    TAppUser data = appUserClient.getUserById(tOrderEvaluateVO.getAppUserId()).getData();
+                    if(Objects.nonNull(data)){
+                        tOrderEvaluateVO.setName(data.getName());
+                        tOrderEvaluateVO.setAvatar(data.getAvatar());
+                    }
                 }
             }
             siteDetailEvaluateVO.setOrderEvaluateVOS(collect);
@@ -219,11 +227,12 @@
      * @param name
      * @param tagList
      */
-    private void packageTagCount(Long count,String name,List<TEvaluationTagVO> tagList){
+    private void packageTagCount(Long count,String name,Integer type,List<TEvaluationTagVO> tagList){
         if(count>0){
             TEvaluationTagVO evaluationTagVO = new TEvaluationTagVO();
             evaluationTagVO.setName(name);
             evaluationTagVO.setTagCount(Integer.parseInt(String.valueOf(count)));
+            evaluationTagVO.setType(type);
             tagList.add(evaluationTagVO);
         }
     }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
index a4aed6f..6cd271a 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
@@ -218,6 +218,8 @@
 				BigDecimal payMoney = tChargingOrder.getStatus() < 4 ? tChargingOrder.getRechargeAmount() : tChargingOrder.getPaymentAmount();
 				myChargingOrderList.setPayMoney(payMoney);
 				myChargingOrderList.setCreateTime(tChargingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm:ss")));
+				myChargingOrderList.setElectricCharge(tChargingOrder.getElectrovalence());
+				myChargingOrderList.setServiceCharge(tChargingOrder.getServiceCharge());
 				chargingOrder.add(myChargingOrderList);
 			}
 			myOrderInvoiceInfo.setChargingOrder(chargingOrder);
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 674d491..f25778c 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
@@ -1,5 +1,6 @@
 package com.ruoyi.order.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -315,7 +316,7 @@
         MyShoppingOrderInfo info = new MyShoppingOrderInfo();
         info.setId(id);
         info.setStatus(shoppingOrder.getStatus());
-        TAppUserAddress userAddress = appUserAddressClient.getAppUserAddressById(shoppingOrder.getAppUserAddressId()).getData();
+        TAppUserAddress userAddress = JSON.parseObject(shoppingOrder.getAddressJson(), TAppUserAddress.class);
         info.setConsignee(userAddress.getName());
         info.setPhone(userAddress.getPhone());
         info.setAddress(userAddress.getProvince() + userAddress.getCity() + userAddress.getDistrict() + userAddress.getAddress() + userAddress.getHouseNumber());
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 232d838..2f94bc4 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}
+        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
         <if test="null != month and '' != month">
             and DATE_FORMAT(end_time, '%Y-%m') = #{month}
         </if>
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 02e93b7..7a4d65a 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
@@ -40,6 +40,7 @@
                 <choose>
                     <when test="query.tagType == 2">
                         AND toe.img_url IS NOT NULL
+                        AND toe.img_url != ''
                     </when>
                     <when test="query.tagType == 3">
                         AND toe.mark &gt;= 4
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
index 51bc3bb..2a71016 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
@@ -203,7 +203,7 @@
     
     
     <select id="getNoInvoicedOrder" resultMap="BaseResultMap">
-        select * from t_shopping_order where del_flag = 0 and payment_status = 2 and status = 3 and app_user_id = #{appUserId}
+        select * from t_shopping_order where del_flag = 0 and payment_status = 2 and status = 3 and app_user_id = #{appUserId} and refund_status is null
         <if test="null != month and '' != month">
             and DATE_FORMAT(create_time, '%Y-%m') = #{month}
         </if>
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 e09a61f..3ea9ee4 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
@@ -351,10 +351,11 @@
             //调起支付
             PaymentOrder paymentOrder = new PaymentOrder();
             paymentOrder.setCode(shopOrder.getCode());
-            paymentOrder.setAmount(exchangeDto.getOrderPrice());
+            paymentOrder.setAmount(exchangeDto.getPayPrice());
             paymentOrder.setOpenId(user.getWxOpenid());
             paymentOrder.setDescription("购买商品");
             R<Map<String, Object>> mapR = wxPaymentClient.orderPay(paymentOrder);
+            mapR.getData().put("orderId",shopOrder.getId().toString());
             return    mapR;
         }else {
             //todo 罗 支付宝支付
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 7a58640..5f390ad 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
@@ -60,7 +60,6 @@
     @Override
     public PageInfo<TGoods> pageList1(AppGoodQuery basePage) {
         GoodsDTO dto = new GoodsDTO();
-        dto.setType(2);
         dto.setStatus(1);
         dto.setPageCurr(basePage.getPageCurr());
         dto.setPageSize(basePage.getPageSize());
@@ -81,7 +80,7 @@
         }
         String string = stringBuilder.toString();
         // 订单号加上商品类型
-        String res = string+"-"+dto.getType();
+        String res = string+"-"+basePage.getType();
 
         List<Integer> data = orderClient.getSalesCountByGoodsId(res).getData();
         for (int i = 0; i < list.size(); i++) {

--
Gitblit v1.7.1