From 10de85f85ad0874b2d93c851bb4d3eacab24a183 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期三, 21 八月 2024 14:45:25 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyServiceImpl.java    |   18 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/api/IotInterfaceUtil.java                 |  261 +++++++++
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/TAccountingStrategyQuery.java             |    3 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserListQueryDto.java                                 |    6 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java                                |    2 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TChargingGunVO.java                          |   18 
 ruoyi-service/ruoyi-chargingPile/pom.xml                                                                                  |    8 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java                             |   13 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/builder/IotBuilder.java                         |   57 ++
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java                             |    6 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetPermissionConfigurationDTO.java          |    2 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java                      |    9 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/query/PassDto.java                                                |   13 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/EnterpriseQuery.java                                  |   10 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java              |    2 
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileMapper.xml                           |   15 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java                          |   39 +
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TGoodsService.java                                        |    2 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/config/FileUploadConfig.java                        |   21 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java                |   14 
 ruoyi-modules/ruoyi-system/pom.xml                                                                                        |    1 
 ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java                                                      |   27 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEnterpriseUserApplicationController.java              |   62 +
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java                                  |    9 
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml                     |    5 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetSiteListDTO.java                         |    2 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUser.java                                       |    4 
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/SteategyPassDto.java                               |   14 
 ruoyi-auth/pom.xml                                                                                                        |    6 
 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml                                        |    2 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileNotificationController.java |    3 
 ruoyi-service/ruoyi-chargingPile/src/main/resources/logback.xml                                                           |    6 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/config/IotAccountConfig.java                    |   27 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/UnitListQueryDto.java                                     |    9 
 ruoyi-service/ruoyi-order/pom.xml                                                                                         |    8 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserAddressController.java                     |   12 
 ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java                                                   |   13 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java                                  |    2 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/config/IotDAConfig.java                         |   35 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java             |    2 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TAccountingStrategy.java                  |    4 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java        |   14 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java                                 |    3 
 ruoyi-service/ruoyi-account/pom.xml                                                                                       |   14 
 ruoyi-service/ruoyi-integration/pom.xml                                                                                   |   20 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/IotConstant.java                       |   25 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java                                  |    8 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysOperLog.java                                      |   31 +
 pom.xml                                                                                                                   |   37 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/produce/IotMessageProduce.java            |   13 
 ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TAdvertisingMapper.xml                                          |   10 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java                                  |   55 +
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml                                    |    1 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java                      |   12 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java       |   53 +
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingGunMapper.xml                            |   22 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java                          |    4 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java                            |   32 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java                         |    5 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPile.java                        |    4 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/token/IotTokenUtil.java                   |   72 ++
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/time/UtcToSeconds.java                    |   19 
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/CodeGenerateUtils.java                           |  106 +++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TGoodsMapper.java                                          |    1 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileMapper.java                     |    2 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/vo/CouponListVOVO.java                                        |   40 +
 ruoyi-service/ruoyi-other/src/main/resources/mybatis-config.xml                                                           |    2 
 ruoyi-api/ruoyi-api-other/pom.xml                                                                                         |    7 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TAccountingStrategyVO.java                   |    2 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/ExchangeDto.java                                          |   18 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/FileController.java                      |  142 +++++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java                       |   11 
 ruoyi-service/ruoyi-other/pom.xml                                                                                         |    6 
 ruoyi-gateway/pom.xml                                                                                                     |    4 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java                                 |    3 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ExchangeDto.java                                           |   18 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/TagListQueryDto.java                                      |    9 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java          |   13 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java                               |   34 +
 ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml                                                |   10 
 80 files changed, 1,448 insertions(+), 206 deletions(-)

diff --git a/pom.xml b/pom.xml
index 24b8e84..dba8ee3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -204,11 +204,48 @@
                 <artifactId>ruoyi-api-system</artifactId>
                 <version>${ruoyi.version}</version>
             </dependency>
+            
+            <!-- 账户接口 -->
             <dependency>
                 <groupId>com.ruoyi</groupId>
                 <artifactId>ruoyi-api-account</artifactId>
                 <version>${ruoyi.version}</version>
             </dependency>
+    
+            <!-- 充电桩接口 -->
+            <dependency>
+                <groupId>com.ruoyi</groupId>
+                <artifactId>ruoyi-api-chargingPile</artifactId>
+                <version>${ruoyi.version}</version>
+            </dependency>
+    
+            <!-- 充电桩硬件交互接口 -->
+            <dependency>
+                <groupId>com.ruoyi</groupId>
+                <artifactId>ruoyi-api-integration</artifactId>
+                <version>${ruoyi.version}</version>
+            </dependency>
+    
+            <!-- 订单接口 -->
+            <dependency>
+                <groupId>com.ruoyi</groupId>
+                <artifactId>ruoyi-api-order</artifactId>
+                <version>${ruoyi.version}</version>
+            </dependency>
+    
+            <!-- 系统其他接口 -->
+            <dependency>
+                <groupId>com.ruoyi</groupId>
+                <artifactId>ruoyi-api-other</artifactId>
+                <version>${ruoyi.version}</version>
+            </dependency>
+    
+            <!-- 支付接口 -->
+            <dependency>
+                <groupId>com.ruoyi</groupId>
+                <artifactId>ruoyi-api-payment</artifactId>
+                <version>${ruoyi.version}</version>
+            </dependency>
 
         </dependencies>
     </dependencyManagement>
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/EnterpriseQuery.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/EnterpriseQuery.java
new file mode 100644
index 0000000..dca0181
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/EnterpriseQuery.java
@@ -0,0 +1,10 @@
+package com.ruoyi.account.api.dto;
+
+import com.ruoyi.common.core.web.domain.BasePojo;
+import com.ruoyi.common.core.web.page.BasePage;
+import lombok.Data;
+
+@Data
+public class EnterpriseQuery extends BasePage {
+    private String phone;
+}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserListQueryDto.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserListQueryDto.java
index b958d1d..54ad4db 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserListQueryDto.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserListQueryDto.java
@@ -18,4 +18,10 @@
     Integer vipTypeId;
     @ApiModelProperty(value = "单位id")
     Integer companyId;
+
+    @ApiModelProperty(value = "到期天数1")
+    Integer vipEndTime1;
+    @ApiModelProperty(value = "到期天数2")
+    Integer vipEndTime2;
+
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUser.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUser.java
index 4ddbf88..0cfdd15 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUser.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUser.java
@@ -118,5 +118,9 @@
     @TableField(exist = false)
     private Long orderCount;
 
+    @ApiModelProperty("剩余天数")
+    @TableField(exist = false)
+    private Long lastDays;
+
 
 }
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetPermissionConfigurationDTO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetPermissionConfigurationDTO.java
index dfe66c9..a09885e 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetPermissionConfigurationDTO.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetPermissionConfigurationDTO.java
@@ -17,5 +17,5 @@
 	@ApiModelProperty(value = "备注")
 	private String permissionRemarks;
 	@ApiModelProperty(value = "权限菜单")
-	private Map<String, Object> menu;
+	private List<Map<String, Object>> menu;
 }
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetSiteListDTO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetSiteListDTO.java
index f971f06..5e1f33d 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetSiteListDTO.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetSiteListDTO.java
@@ -17,6 +17,8 @@
 	private String code;
 	@ApiModelProperty(value = "站点名称")
 	private String name;
+	@ApiModelProperty(value = "合作商id")
+	private Integer partnerId;
 	@ApiModelProperty(value = "合作商名称")
 	private String partnerName;
 	@ApiModelProperty(value = "站点类型(0=其他,1=公共,2=个人,3=公交(专业),4=环卫(专用),5=物流(专用),6=出租车(专用))")
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java
index 5bace65..2e131e2 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java
@@ -10,6 +10,7 @@
 import lombok.Data;
 
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 
 /**
  * @author zhibing.pu
@@ -204,7 +205,7 @@
 	@TableField("establishment_time")
 	@ApiModelProperty(value = "建站时间", notes = "yyyy-MM-dd HH:mm:ss")
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	private LocalDate establishmentTime;
+	private LocalDateTime establishmentTime;
 	/**
 	 * 排序
 	 */
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TAccountingStrategy.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TAccountingStrategy.java
index f6c9c95..37f71b0 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TAccountingStrategy.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TAccountingStrategy.java
@@ -39,6 +39,10 @@
     @TableField("site_id")
     private Integer siteId;
 
+    @ApiModelProperty(value = "申请人id")
+    @TableField("user_id")
+    private Long userId;
+
     @ApiModelProperty(value = "策略名称")
     @TableField("name")
     private String name;
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPile.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPile.java
index 289f788..e1d69a9 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPile.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPile.java
@@ -58,7 +58,7 @@
     
     @ApiModelProperty(value = "站点名称")
     @TableField(exist = false)
-    private Integer siteName;
+    private String siteName;
 
     @ApiModelProperty(value = "合作商id", required = true)
     @TableField("partner_id")
@@ -66,7 +66,7 @@
     
     @ApiModelProperty(value = "合作商名称")
     @TableField(exist = false)
-    private Integer partnerName;
+    private String partnerName;
 
     @ApiModelProperty(value = "生产商机构代码")
     @TableField("manufacturer_code")
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/TAccountingStrategyQuery.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/TAccountingStrategyQuery.java
index bd7fd41..80ffa4d 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/TAccountingStrategyQuery.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/TAccountingStrategyQuery.java
@@ -11,5 +11,8 @@
 
     @ApiModelProperty(value = "计费策略名称")
     private String name;
+    @ApiModelProperty(value = "1=待审核一级,2=待审核二级,3=审核通过,4=驳回")
+    private Integer auditStatus;
+
 
 }
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TAccountingStrategyVO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TAccountingStrategyVO.java
index 5e7a7ff..40ea660 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TAccountingStrategyVO.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TAccountingStrategyVO.java
@@ -21,6 +21,8 @@
 
     @ApiModelProperty(value = "二級审核人员")
     private String twoUserName;
+    @ApiModelProperty(value = "申请人名字")
+    private String userName;
 
 
 }
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TChargingGunVO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TChargingGunVO.java
index db1d3e4..51dd56f 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TChargingGunVO.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TChargingGunVO.java
@@ -11,23 +11,23 @@
 
     @ApiModelProperty(value = "策略名称")
     private String strategyName;
-    
+
     @ApiModelProperty(value = "编辑权限")
     private boolean authUpdate = true;
-    
+
     @ApiModelProperty(value = "删除权限")
     private boolean authDelete = true;
-    
+
     @ApiModelProperty(value = "查看费率权限")
     private boolean authViewRates = true;
-    
-    @ApiModelProperty(value = "编辑权限")
+
+    @ApiModelProperty(value = "下载二维码权限")
     private boolean authDownloadQRCode = true;
-    
-    @ApiModelProperty(value = "编辑权限")
+
+    @ApiModelProperty(value = "查看详情权限")
     private boolean authQueryInfo = true;
-    
-    @ApiModelProperty(value = "编辑权限")
+
+    @ApiModelProperty(value = "结束充电权限")
     private boolean authEndCharge = true;
 
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
index 4177dd3..04ea275 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
@@ -4,8 +4,10 @@
 import com.ruoyi.order.api.feignClient.ChargingOrderClient;
 import com.ruoyi.order.api.feignClient.OrderClient;
 import com.ruoyi.order.api.model.TChargingOrder;
+import com.ruoyi.order.api.model.TExchangeOrder;
 import com.ruoyi.order.api.query.TActivityStatisticsQuery;
 import com.ruoyi.order.api.vo.TActivityVO;
+import com.ruoyi.order.api.vo.ExchangeDto;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -41,6 +43,17 @@
             }
 
             @Override
+            public R<Long> getExchangeById(Integer goodsIds, Long userId) {
+                return R.fail("根据订单数" + cause.getMessage());
+            }
+
+            @Override
+            public R<Long> exchangeCreate(ExchangeDto exchangeDto) {
+                return R.fail("创建订单" + cause.getMessage());
+            }
+
+
+            @Override
             public R<TActivityVO> activityStatistics(TActivityStatisticsQuery dto) {
                 return R.fail("查询活动费用统计失败:" + cause.getMessage());
             }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
index 9e59397..ff507cd 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
@@ -4,12 +4,15 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.order.api.factory.ChargingOrderFallbackFactory;
 import com.ruoyi.order.api.factory.OrderFallbackFactory;
+import com.ruoyi.order.api.model.TExchangeOrder;
+import com.ruoyi.order.api.vo.ExchangeDto;
 import com.ruoyi.order.api.query.TActivityStatisticsQuery;
 import com.ruoyi.order.api.vo.TActivityVO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
 
@@ -30,6 +33,12 @@
      */
     @PostMapping("/t-exchange-order/getCodeByOrderId")
     public R<List<String>> getCodeByOrderId(String goodsIds);
+    //查询已兑换的订单数
+    @PostMapping("/t-exchange-order/getById")
+    public R<Long> getExchangeById(@RequestParam("goodId") Integer goodId,@RequestParam("userId")  Long userId);
+    @PostMapping("/t-exchange-order/create")
+    public R<Long> exchangeCreate(@RequestBody ExchangeDto exchangeDto);
+
     /**
      * 管理后台 活动费用统计
      * @param
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ExchangeDto.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ExchangeDto.java
new file mode 100644
index 0000000..e0bdeb2
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ExchangeDto.java
@@ -0,0 +1,18 @@
+package com.ruoyi.order.api.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ExchangeDto {
+    @ApiModelProperty("商品id")
+    Integer goodId;
+    @ApiModelProperty("地址id")
+    Integer addressId;
+    @ApiModelProperty("备注")
+    String remark;
+    @ApiModelProperty(hidden = true)
+    Long userId;
+
+
+}
diff --git a/ruoyi-api/ruoyi-api-other/pom.xml b/ruoyi-api/ruoyi-api-other/pom.xml
index 6327080..0e43900 100644
--- a/ruoyi-api/ruoyi-api-other/pom.xml
+++ b/ruoyi-api/ruoyi-api-other/pom.xml
@@ -28,13 +28,6 @@
                 </exclusion>
             </exclusions>
         </dependency>
-        <dependency>
-            <groupId>com.ruoyi</groupId>
-            <artifactId>ruoyi-api-account</artifactId>
-            <version>3.6.2</version>
-            <scope>compile</scope>
-        </dependency>
-
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/ExchangeDto.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/ExchangeDto.java
new file mode 100644
index 0000000..9c3969d
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/ExchangeDto.java
@@ -0,0 +1,18 @@
+package com.ruoyi.other.api.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ExchangeDto {
+    @ApiModelProperty("商品id")
+    Integer goodId;
+    @ApiModelProperty("地址id")
+    Integer addressId;
+    @ApiModelProperty("备注")
+    String remark;
+    @ApiModelProperty(hidden = true)
+    Long userId;
+
+
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/TagListQueryDto.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/TagListQueryDto.java
new file mode 100644
index 0000000..f82718f
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/TagListQueryDto.java
@@ -0,0 +1,9 @@
+package com.ruoyi.other.api.dto;
+
+import com.ruoyi.common.core.web.page.BasePage;
+import lombok.Data;
+
+@Data
+public class TagListQueryDto extends BasePage {
+    private  String tagName;
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/UnitListQueryDto.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/UnitListQueryDto.java
new file mode 100644
index 0000000..effd666
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/UnitListQueryDto.java
@@ -0,0 +1,9 @@
+package com.ruoyi.other.api.dto;
+
+import com.ruoyi.common.core.web.page.BasePage;
+import lombok.Data;
+
+@Data
+public class UnitListQueryDto extends BasePage {
+    private  String companyName;
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java
index a1f7ab5..dc46061 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java
@@ -1,22 +1,13 @@
 package com.ruoyi.other.api.factory;
 
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.account.api.dto.TagListQueryDto;
-import com.ruoyi.account.api.dto.UnitListQueryDto;
-import com.ruoyi.account.api.vo.CouponListVOVO;
 import com.ruoyi.common.core.domain.R;
-import com.ruoyi.other.api.domain.TCompany;
 import com.ruoyi.other.api.domain.TIntegralRule;
-import com.ruoyi.other.api.domain.TUserTag;
 import com.ruoyi.other.api.feignClient.IntegralRuleClient;
-import com.ruoyi.other.api.feignClient.OtherClient;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 
-import java.util.List;
-import java.util.Map;
 
 /**
  * 商品服务降级处理
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java
index 0070fdc..044ac01 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java
@@ -1,14 +1,14 @@
 package com.ruoyi.other.api.factory;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.account.api.dto.TagListQueryDto;
-import com.ruoyi.account.api.dto.UnitListQueryDto;
-import com.ruoyi.account.api.vo.CouponListVOVO;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.other.api.domain.TCompany;
 import com.ruoyi.other.api.domain.TCoupon;
 import com.ruoyi.other.api.domain.TUserTag;
+import com.ruoyi.other.api.dto.TagListQueryDto;
+import com.ruoyi.other.api.dto.UnitListQueryDto;
 import com.ruoyi.other.api.feignClient.OtherClient;
+import com.ruoyi.other.api.vo.CouponListVOVO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java
index 1550b79..b5179bc 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java
@@ -1,15 +1,15 @@
 package com.ruoyi.other.api.feignClient;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.account.api.dto.TagListQueryDto;
-import com.ruoyi.account.api.dto.UnitListQueryDto;
-import com.ruoyi.account.api.vo.CouponListVOVO;
 import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.other.api.domain.TCompany;
 import com.ruoyi.other.api.domain.TCoupon;
 import com.ruoyi.other.api.domain.TUserTag;
+import com.ruoyi.other.api.dto.TagListQueryDto;
+import com.ruoyi.other.api.dto.UnitListQueryDto;
 import com.ruoyi.other.api.factory.OtherFallbackFactory;
+import com.ruoyi.other.api.vo.CouponListVOVO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -74,4 +74,6 @@
 
 
 
+
+
 }
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/vo/CouponListVOVO.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/vo/CouponListVOVO.java
new file mode 100644
index 0000000..d6cc19a
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/vo/CouponListVOVO.java
@@ -0,0 +1,40 @@
+package com.ruoyi.other.api.vo;
+
+import com.ruoyi.common.core.web.domain.BasePojo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel("管理后台 优惠券兑换记录列表返回VO")
+public class CouponListVOVO extends BasePojo {
+    @ApiModelProperty(value = "优惠券名称")
+    private String couponName;
+    @ApiModelProperty(value = "优惠方式 1满减 2折扣")
+    private Integer preferentialMode;
+    @ApiModelProperty(value = "满减--优惠金额")
+    private BigDecimal discountAmount;
+    @ApiModelProperty(value = "满减--使用门槛 满减条件")
+    private BigDecimal meetTheConditions;
+    @ApiModelProperty(value = "折扣--折扣")
+    private BigDecimal discount;
+    @ApiModelProperty(value = "折扣--最高折扣金额")
+    private BigDecimal maximumDiscountAmount;
+    @ApiModelProperty(value = "优惠券数量")
+    private Integer couponCount;
+    @ApiModelProperty(value = "有效期")
+    private String validityTime;
+    @ApiModelProperty(value = "结束时间 前端忽略")
+    private LocalDateTime endTime;
+    @ApiModelProperty(value = "是否可用")
+    private Integer isUse;
+    @ApiModelProperty(value = "优惠券id")
+    private Long couponId;
+    @ApiModelProperty(value = "使用了优惠券后的服务费 用于判断哪一张优惠券优惠力度最大 前端忽略")
+    private BigDecimal money;
+    @ApiModelProperty(value = "当前用户是否为会员0否1是 前端忽略")
+    private Integer isVip;
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysOperLog.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysOperLog.java
index 1e04af6..bf1a7fd 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysOperLog.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysOperLog.java
@@ -2,16 +2,26 @@
 
 import java.util.Date;
 
+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 com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.annotation.Excel;
 import com.ruoyi.common.core.annotation.Excel.ColumnType;
 import com.ruoyi.common.core.web.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 /**
  * 操作日志记录表 oper_log
  *
  * @author ruoyi
  */
+@Data
+@ApiModel
+@TableName("")
 public class SysOperLog extends BaseEntity {
 	private static final long serialVersionUID = 1L;
 	
@@ -19,18 +29,23 @@
 	 * 日志主键
 	 */
 	@Excel(name = "操作序号", cellType = ColumnType.NUMERIC)
+	@ApiModelProperty("数据id")
+	@TableId(value = "oper_id", type = IdType.AUTO)
 	private Long operId;
 	
 	/**
 	 * 操作模块
 	 */
 	@Excel(name = "操作模块")
+	@ApiModelProperty("操作模块")
 	private String title;
 	
 	/**
 	 * 业务类型(0其它 1新增 2修改 3删除)
 	 */
 	@Excel(name = "业务类型", readConverterExp = "0=其它,1=新增,2=修改,3=删除,4=授权,5=导出,6=导入,7=强退,8=生成代码,9=清空数据")
+	@ApiModelProperty("0=其它,1=新增,2=修改,3=删除,4=授权,5=导出,6=导入,7=强退,8=生成代码,9=清空数据")
+	@TableField("business_type")
 	private Integer businessType;
 	
 	/**
@@ -42,66 +57,80 @@
 	 * 请求方法
 	 */
 	@Excel(name = "请求方法")
+	@ApiModelProperty("请求方法")
 	private String method;
 	
 	/**
 	 * 请求方式
 	 */
 	@Excel(name = "请求方式")
+	@ApiModelProperty("请求方式")
+	@TableField("request_method")
 	private String requestMethod;
 	
 	/**
 	 * 操作类别(0其它 1后台用户 2手机端用户)
 	 */
 	@Excel(name = "操作类别", readConverterExp = "0=其它,1=后台用户,2=手机端用户")
+	@ApiModelProperty("0=其它,1=后台用户,2=手机端用户")
+	@TableField("operator_type")
 	private Integer operatorType;
 	
 	/**
 	 * 操作人员
 	 */
 	@Excel(name = "操作人员")
+	@ApiModelProperty("操作人员")
+	@TableField("operator_type")
 	private String operName;
 	
 	/**
 	 * 部门名称
 	 */
 	@Excel(name = "部门名称")
+	@ApiModelProperty("部门名称")
 	private String deptName;
 	
 	/**
 	 * 请求url
 	 */
 	@Excel(name = "请求地址")
+	@ApiModelProperty("请求地址")
 	private String operUrl;
 	
 	/**
 	 * 操作地址
 	 */
 	@Excel(name = "操作地址")
+	@ApiModelProperty("操作地址")
 	private String operIp;
 	
 	/**
 	 * 请求参数
 	 */
 	@Excel(name = "请求参数")
+	@ApiModelProperty("请求参数")
 	private String operParam;
 	
 	/**
 	 * 返回参数
 	 */
 	@Excel(name = "返回参数")
+	@ApiModelProperty("返回参数")
 	private String jsonResult;
 	
 	/**
 	 * 操作状态(0正常 1异常)
 	 */
 	@Excel(name = "状态", readConverterExp = "0=正常,1=异常")
+	@ApiModelProperty("0=正常,1=异常")
 	private Integer status;
 	
 	/**
 	 * 错误消息
 	 */
 	@Excel(name = "错误消息")
+	@ApiModelProperty("错误消息")
 	private String errorMsg;
 	
 	/**
@@ -109,12 +138,14 @@
 	 */
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	@Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+	@ApiModelProperty("操作时间")
 	private Date operTime;
 	
 	/**
 	 * 消耗时间
 	 */
 	@Excel(name = "消耗时间", suffix = "毫秒")
+	@ApiModelProperty("消耗时间")
 	private Long costTime;
 	
 	public Long getOperId() {
diff --git a/ruoyi-auth/pom.xml b/ruoyi-auth/pom.xml
index ee4cf04..df1fa2a 100644
--- a/ruoyi-auth/pom.xml
+++ b/ruoyi-auth/pom.xml
@@ -85,12 +85,6 @@
             <version>${hutool.version}</version>
         </dependency>
 
-        <dependency>
-            <groupId>com.ruoyi</groupId>
-            <artifactId>ruoyi-api-account</artifactId>
-            <version>3.6.2</version>
-        </dependency>
-
     </dependencies>
 	
     <build>
diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
index 9c6b8fd..91f7ab4 100644
--- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
+++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
@@ -3,23 +3,11 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.ruoyi.account.api.feignClient.AppUserClient;
-import com.ruoyi.account.api.model.TAppUser;
-import com.ruoyi.common.core.constant.Constants;
-import com.ruoyi.common.core.constant.MsgConstants;
-import com.ruoyi.common.core.utils.HttpUtils;
-import com.ruoyi.common.core.utils.MsgUtil;
-import com.ruoyi.common.core.web.domain.AjaxResult;
-import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.system.api.domain.SysRole;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.feignClient.SysUserClient;
-import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 import com.ruoyi.auth.form.LoginBody;
 import com.ruoyi.auth.form.RegisterBody;
@@ -33,7 +21,6 @@
 import com.ruoyi.system.api.model.LoginUser;
 
 import java.util.*;
-import java.util.concurrent.TimeUnit;
 
 /**
  * token 控制
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/SteategyPassDto.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/SteategyPassDto.java
new file mode 100644
index 0000000..0f1a80b
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/SteategyPassDto.java
@@ -0,0 +1,14 @@
+package com.ruoyi.common.core.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class SteategyPassDto {
+    @ApiModelProperty("备注")
+    private String remark;
+    @ApiModelProperty("1通过2拒绝")
+    private Integer pass;
+    @ApiModelProperty("ID")
+    private Integer id;
+}
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/CodeGenerateUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/CodeGenerateUtils.java
new file mode 100644
index 0000000..32309d1
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/CodeGenerateUtils.java
@@ -0,0 +1,106 @@
+package com.ruoyi.common.core.utils;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+
+/**
+ * @Description 活动订单操作
+ * @Author xiaochen
+ * @Date 2021/7/28 10:26
+ */
+public class CodeGenerateUtils {
+
+    /**
+     * @return
+     * @Description 获取商品编码
+     * 商品编码规则:nanoTime(后5位)*5位随机数(10000~99999)
+     * @Author xiaochen
+     */
+    public static String generateProductCode() {
+        long nanoPart = System.nanoTime() % 100000L;
+        if (nanoPart < 10000L) {
+            nanoPart += 10000L;
+        }
+        long randomPart = (long) (Math.random() * (90000) + 10000);
+        String code = "0" + String.valueOf((new BigDecimal(nanoPart).multiply(new BigDecimal(randomPart))));
+        return code.substring(code.length() - 10);
+    }
+
+    /**
+     * @param id: 用户id
+     * @return
+     * @Description 生成订单编号
+     * 订单编号规则:(10位):(年末尾*月,取后2位)+(用户ID%3.33*日取整后2位)+(timestamp*10000以内随机数,取后6位)
+     * @Author xiaochen
+     */
+    public static String generateOrderSn(long id) {
+        Calendar calendar = Calendar.getInstance();
+        int year = calendar.get(Calendar.YEAR);
+        year = year % 10;
+        if (year == 0) year = 10;
+        int month = calendar.get(Calendar.MONTH) + 1;
+        int yearMonth = year * month;
+        String yearMonthPart = "0" + yearMonth;
+        yearMonthPart = yearMonthPart.substring(yearMonthPart.length() - 2);
+
+        int day = calendar.get(Calendar.DAY_OF_MONTH);
+        int dayNum = (int) ((id % 3.33) * day);
+        String dayPart = "0" + dayNum;
+        dayPart = dayPart.substring(dayPart.length() - 2);
+
+        String timestampPart = "" + (Math.random() * 10000) * (System.currentTimeMillis() / 10000);
+        timestampPart = timestampPart.replace(".", "").replace("E", "");
+        timestampPart = timestampPart.substring(0, 6);
+        return yearMonthPart + dayPart + timestampPart;
+    }
+
+    /**
+     * @return
+     * @Description 生成统一支付单号  规则:年(2)月(2)日(2)时(2)分(2)+timestamp*5位随机整数取后5位
+     * @Author xiaochen
+     */
+    public static String generateVolumeSn() {
+        Calendar calendar = Calendar.getInstance();
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddhhmmss");
+        String dateTime = dateFormat.format(calendar.getTime());
+        dateTime = dateTime.substring(2);
+        String timestampPart = "" + (Math.random() * 10000) * (System.currentTimeMillis() / 10000);
+        timestampPart = timestampPart.replace(".", "").replace("E", "");
+        timestampPart = timestampPart.substring(0, 5);
+        return dateTime + timestampPart;
+    }
+
+    public static void main(String[] args) {
+        for (long i = 0; i < 20; i++) {
+            //String timestampPart = ""+(Math.random() * 10000) * (System.currentTimeMillis()/10000);
+            //System.out.println(timestampPart);
+            //System.out.println(generateOrderSn(i));
+            long l = System.currentTimeMillis() * Long.valueOf(CodeGenerateUtils.generateProductCode().substring(0, 5));
+            System.out.println(String.valueOf(l).substring(0,10));
+        }
+
+    }
+
+    /**
+     * @description  id补0生成编号
+     * @author  jqs
+     * @date    2024/4/17 14:19
+     * @param totalLength
+     * @param id
+     * @return  String
+     */
+    public static String toFillZeroCode(int totalLength, Long id) {
+        String idStr = id.toString();
+        int length = idStr.length();
+        if(totalLength <= length){
+            return idStr;
+        }
+        int fillLength = totalLength - length;
+        StringBuilder idsbs = new StringBuilder();
+        for (int i = 0; i < fillLength; i++) {
+            idsbs.append("0");
+        }
+        return idsbs.append(idStr).toString();
+    }
+}
diff --git a/ruoyi-gateway/pom.xml b/ruoyi-gateway/pom.xml
index ade8e7d..35f7df5 100644
--- a/ruoyi-gateway/pom.xml
+++ b/ruoyi-gateway/pom.xml
@@ -117,10 +117,14 @@
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-account</artifactId>
+            <version>3.6.2</version>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-system</artifactId>
+            <version>3.6.2</version>
+            <scope>compile</scope>
         </dependency>
 
     </dependencies>
diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
index f46470c..1cd3f9c 100644
--- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
+++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
@@ -9,6 +9,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.gateway.filter.GatewayFilterChain;
 import org.springframework.cloud.gateway.filter.GlobalFilter;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.core.Ordered;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.server.reactive.ServerHttpRequest;
@@ -47,9 +48,11 @@
 	@Autowired
 	private RedisService redisService;
 	
+	@Lazy
 	@Resource
 	private AppUserClient appUserClient;
 	
+	@Lazy
 	@Resource
 	private SysUserClient sysUserClient;
 	
@@ -66,20 +69,20 @@
 			return chain.filter(exchange);
 		}
 		//防抖校验
-		try {
-			antiShake(request);
-		}catch (Exception e){
-			log.error("[重复提交]请求路径:{}", exchange.getRequest().getPath());
-			return ServletUtils.webFluxResponseWriter(exchange.getResponse(), e.getMessage(), HttpStatus.SUCCESS);
-		}
+//		try {
+//			antiShake(request);
+//		}catch (Exception e){
+//			log.error("[重复提交]请求路径:{}", exchange.getRequest().getPath());
+//			return ServletUtils.webFluxResponseWriter(exchange.getResponse(), e.getMessage(), HttpStatus.SUCCESS);
+//		}
 		
 		//校验账户是否有效
-		try {
-			verifyToken(request);
-			verifyAccount(request);
-		}catch (Exception e){
-			return unauthorizedResponse(exchange, e.getMessage());
-		}
+//		try {
+//			verifyToken(request);
+//			verifyAccount(request);
+//		}catch (Exception e){
+//			return unauthorizedResponse(exchange, e.getMessage());
+//		}
 		String token = getToken(request);
 		Claims claims = JwtUtils.parseToken(token);
 		String userkey = JwtUtils.getUserKey(claims);
diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml
index fe35873..67ff0c1 100644
--- a/ruoyi-modules/ruoyi-system/pom.xml
+++ b/ruoyi-modules/ruoyi-system/pom.xml
@@ -20,7 +20,6 @@
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-system</artifactId>
-            <scope>compile</scope>
         </dependency>
     	
     	<!-- SpringCloud Alibaba Nacos -->
diff --git a/ruoyi-service/ruoyi-account/pom.xml b/ruoyi-service/ruoyi-account/pom.xml
index 0390101..6df3409 100644
--- a/ruoyi-service/ruoyi-account/pom.xml
+++ b/ruoyi-service/ruoyi-account/pom.xml
@@ -18,14 +18,10 @@
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-order</artifactId>
-            <version>3.6.2</version>
-            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-chargingPile</artifactId>
-            <version>3.6.2</version>
-            <scope>compile</scope>
         </dependency>
         <!-- SpringCloud Alibaba Nacos -->
         <dependency>
@@ -115,25 +111,15 @@
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-account</artifactId>
-            <version>3.6.2</version>
-            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-other</artifactId>
-            <version>3.6.2</version>
-            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>commons-lang</groupId>
             <artifactId>commons-lang</artifactId>
             <version>2.6</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.ruoyi</groupId>
-            <artifactId>ruoyi-api-order</artifactId>
-            <version>3.6.2</version>
             <scope>compile</scope>
         </dependency>
 
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 66a5d67..b01fb9f 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
@@ -7,14 +7,12 @@
 import com.ruoyi.account.api.model.TAppCoupon;
 import com.ruoyi.account.api.model.TAppUserCar;
 import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
-import com.ruoyi.account.api.vo.CarListVO;
-import com.ruoyi.account.api.vo.CouponListVOVO;
+import com.ruoyi.other.api.vo.CouponListVOVO;
 import com.ruoyi.account.api.vo.ExchangeRecordVO;
 import com.ruoyi.account.service.TAppCouponService;
 import com.ruoyi.account.service.TAppUserCarService;
 import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
 import com.ruoyi.chargingPile.api.vo.SiteInfoVO;
-import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.BasePage;
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserAddressController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserAddressController.java
index 6b4046f..8969c5b 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserAddressController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserAddressController.java
@@ -45,6 +45,18 @@
         return AjaxResult.ok(appUserAddressService.list(Wrappers.<TAppUserAddress>lambdaQuery().eq(TAppUserAddress::getAppUserId, userId)));
     }
 
+    /**
+     * 查询用户默认地址列表
+     */
+    @ApiOperation(tags = {"小程序-用户地址"},value = "查询用户默认地址列表")
+    @GetMapping(value = "/queryDefaultAddress")
+    public AjaxResult<TAppUserAddress> queryDefaultAddress() {
+        // 用户id
+        Long userId = tokenService.getLoginUserApplet().getUserId();
+        return AjaxResult.ok(appUserAddressService.getOne(Wrappers.<TAppUserAddress>lambdaQuery().eq(TAppUserAddress::getAppUserId, userId)
+                .eq(TAppUserAddress::getDefaultAddress,1)));
+    }
+
 
     /**
      * 添加用户地址管理
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 597afdd..3e381b6 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
@@ -1,25 +1,17 @@
 package com.ruoyi.account.controller;
 
-import cn.hutool.core.date.DateTime;
-import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.account.api.dto.*;
 import com.ruoyi.account.api.model.*;
-import com.ruoyi.account.api.vo.CouponListVOVO;
 import com.ruoyi.account.service.*;
 import com.ruoyi.account.util.PointDetailUtil;
 import com.ruoyi.account.util.SignDayUtil;
-import com.ruoyi.account.wx.body.resp.Code2SessionRespBody;
-import com.ruoyi.account.wx.body.resq.Code2SessionResqBody;
 import com.ruoyi.account.wx.model.WeixinProperties;
-import com.ruoyi.account.wx.tools.WxAppletTools;
 import com.ruoyi.account.util.GiveVipUtil;
 import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.domain.R;
@@ -29,9 +21,7 @@
 import com.ruoyi.common.core.utils.bean.BeanUtils;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.domain.BasePojo;
-import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.redis.service.RedisService;
-import com.ruoyi.common.security.annotation.RequiresPermissions;
 import com.ruoyi.common.security.auth.AuthUtil;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.common.security.utils.SecurityUtils;
@@ -39,21 +29,16 @@
 import com.ruoyi.order.api.feignClient.ExchangeOrderClient;
 import com.ruoyi.order.api.model.TChargingOrder;
 import com.ruoyi.order.api.model.TExchangeOrder;
+import com.ruoyi.other.api.dto.UnitListQueryDto;
 import com.ruoyi.other.api.domain.TCompany;
 import com.ruoyi.other.api.domain.TCoupon;
 import com.ruoyi.other.api.domain.TIntegralRule;
 import com.ruoyi.other.api.domain.TUserTag;
 import com.ruoyi.other.api.feignClient.IntegralRuleClient;
 import com.ruoyi.other.api.feignClient.OtherClient;
-import com.ruoyi.system.api.domain.SysRole;
-import com.ruoyi.system.api.model.LoginUser;
 import com.ruoyi.system.api.model.LoginUserApplet;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-import org.apache.poi.ss.formula.functions.T;
 import lombok.extern.slf4j.Slf4j;
-import org.aspectj.weaver.loadtime.Aj;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -251,12 +236,15 @@
         }
         //列表查询
         Page<TAppUser> page = appUserService.lambdaQuery()
+                .ge(TAppUser::getVipEndTime, LocalDateTime.now())
                 .like(userListQueryDto.getUserPhone() != null && !"".equals(userListQueryDto.getUserPhone()), TAppUser::getPhone, userListQueryDto.getUserPhone())
                 .eq(userListQueryDto.getCompanyId() != null, TAppUser::getCompanyId, userListQueryDto.getCompanyId())
                 .eq(userListQueryDto.getCityCode() != null && !"".equals(userListQueryDto.getCityCode()), TAppUser::getCityCode, userListQueryDto.getCityCode())
                 .eq(userListQueryDto.getStatus() != null, TAppUser::getStatus, userListQueryDto.getStatus())
                 .eq(userListQueryDto.getVipTypeId() != null, TAppUser::getVipId, userListQueryDto.getVipTypeId())
-                .in(!userIds.isEmpty(),TAppUser::getId,userIds)
+                .ge(userListQueryDto.getVipEndTime1() != null, TAppUser::getVipEndTime, userListQueryDto.getVipEndTime1() == null ? null : LocalDateTime.now().plusDays(userListQueryDto.getVipEndTime1()))
+                .le(userListQueryDto.getVipEndTime2() != null, TAppUser::getVipEndTime, userListQueryDto.getVipEndTime2() == null ? null : LocalDateTime.now().plusDays(userListQueryDto.getVipEndTime2()))
+                .in(!userIds.isEmpty(), TAppUser::getId, userIds)
                 .page(Page.of(userListQueryDto.getPageCurr(), userListQueryDto.getPageSize()));
         if (page.getRecords().isEmpty()){
             return R.ok(page);
@@ -270,15 +258,19 @@
             //拿到最新的tagId
             TAppUserTag one = appUserTagService.lambdaQuery().eq(TAppUserTag::getAppUserId, appUser.getId()).orderByDesc(TAppUserTag::getCreateTime).last("limit 1").one();
             //设置最新的tagName
-            R<TUserTag> byIdTag = otherClient.getByIdTag(one.getUserTagId());
-            if (byIdTag.getData()!=null) {
-                appUser.setTagName(byIdTag.getData().getName());
+            if (one!=null) {
+                R<TUserTag> byIdTag = otherClient.getByIdTag(one.getUserTagId());
+                if (byIdTag.getData() != null) {
+                    appUser.setTagName(byIdTag.getData().getName());
+                }
             }
             //匹配vipMap的值
             appUser.setVipName(vipMap.getData().get(appUser.getVipId()));
             //累计充电次数
             R<Long> useOrderCount = chargingOrderClient.useOrderCount(appUser.getId());
             appUser.setOrderCount(useOrderCount.getData());
+            appUser.setLastDays( Duration.between(LocalDateTime.now(), appUser.getVipEndTime()).toDays());
+            appUser.setUid(appUser.getId().toString());
 
         }
         return R.ok(page);
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java
index 872fa64..0e75c62 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java
@@ -2,13 +2,10 @@
 
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.account.api.dto.TagListQueryDto;
-import com.ruoyi.account.api.dto.UnitListQueryDto;
-import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.other.api.dto.TagListQueryDto;
 import com.ruoyi.account.api.model.TAppUserTag;
 import com.ruoyi.account.service.TAppUserTagService;
 import com.ruoyi.common.core.domain.R;
-import com.ruoyi.other.api.domain.TCompany;
 import com.ruoyi.other.api.domain.TUserTag;
 import com.ruoyi.other.api.feignClient.OtherClient;
 import io.swagger.annotations.ApiOperation;
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java
index bde3dab..5929c6b 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java
@@ -3,7 +3,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.account.api.model.TAppCoupon;
 import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
-import com.ruoyi.account.api.vo.CouponListVOVO;
+import com.ruoyi.other.api.vo.CouponListVOVO;
 import com.ruoyi.account.api.vo.ExchangeRecordVO;
 import com.ruoyi.common.core.web.page.PageInfo;
 import org.apache.ibatis.annotations.Param;
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java
index 5c518fe..09023c0 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java
@@ -4,7 +4,7 @@
 import com.ruoyi.account.api.dto.CouponListDto;
 import com.ruoyi.account.api.model.TAppCoupon;
 import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
-import com.ruoyi.account.api.vo.CouponListVOVO;
+import com.ruoyi.other.api.vo.CouponListVOVO;
 import com.ruoyi.account.api.vo.ExchangeRecordVO;
 import com.ruoyi.common.core.web.page.BasePage;
 import com.ruoyi.common.core.web.page.PageInfo;
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java
index cd7fa60..42c336b 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java
@@ -7,7 +7,7 @@
 import com.ruoyi.account.api.model.TAppUser;
 import com.ruoyi.account.api.model.TAppUserVipDetail;
 import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
-import com.ruoyi.account.api.vo.CouponListVOVO;
+import com.ruoyi.other.api.vo.CouponListVOVO;
 import com.ruoyi.account.api.vo.ExchangeRecordVO;
 import com.ruoyi.account.mapper.TAppCouponMapper;
 import com.ruoyi.account.mapper.TAppUserMapper;
@@ -63,6 +63,10 @@
     private ChargingOrderClient chargingOrderClient;
     @Autowired
     private TAppUserVipDetailService tAppUserVipDetailService;
+    @Autowired
+    private TAppUserMapper tAppUserMapper;
+    @Autowired
+    private TokenService tokenService;
 
     @Override
     public PageInfo<ExchangeRecordVO> pagelist(ExchangeRecordGoodsQuery dto) {
@@ -132,10 +136,7 @@
     }
 
 
-    @Autowired
-    private TAppUserMapper tAppUserMapper;
-    @Autowired
-    private TokenService tokenService;
+
     @Override
     public PageInfo<CouponListVOVO> couponList(CouponListDto dto) {
         // todo token获取用户id
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml
index b94f498..0692cd9 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml
@@ -57,7 +57,7 @@
         </where>
         ORDER BY create_time DESC
     </select>
-    <select id="couponList" resultType="com.ruoyi.account.api.vo.CouponListVOVO">
+    <select id="couponList" resultType="com.ruoyi.other.api.vo.CouponListVOVO">
         SELECT
             t1.app_user_id AS appUserId,
             t1.coupon_id AS couponId,
diff --git a/ruoyi-service/ruoyi-chargingPile/pom.xml b/ruoyi-service/ruoyi-chargingPile/pom.xml
index 63d7f4a..1a16816 100644
--- a/ruoyi-service/ruoyi-chargingPile/pom.xml
+++ b/ruoyi-service/ruoyi-chargingPile/pom.xml
@@ -18,15 +18,11 @@
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-account</artifactId>
-            <version>3.6.2</version>
-            <scope>compile</scope>
         </dependency>
         <!-- ruoyi-modules-chargingPile-api -->
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-chargingPile</artifactId>
-            <version>3.6.2</version>
-            <scope>compile</scope>
         </dependency>
 
         <!-- SpringCloud Alibaba Nacos -->
@@ -122,14 +118,10 @@
 	    <dependency>
 		    <groupId>com.ruoyi</groupId>
 		    <artifactId>ruoyi-api-other</artifactId>
-		    <version>3.6.2</version>
-		    <scope>compile</scope>
 	    </dependency>
 	    <dependency>
 		    <groupId>com.ruoyi</groupId>
 		    <artifactId>ruoyi-api-order</artifactId>
-		    <version>3.6.2</version>
-		    <scope>compile</scope>
 	    </dependency>
 
     </dependencies>
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/config/FileUploadConfig.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/config/FileUploadConfig.java
new file mode 100644
index 0000000..5d9cd57
--- /dev/null
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/config/FileUploadConfig.java
@@ -0,0 +1,21 @@
+package com.ruoyi.chargingPile.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * <p>文件上传配置</p>
+ *
+ * @author mouseyCat
+ * @date 2020/10/13 16:10
+ */
+@Data
+@Component
+@ConfigurationProperties(prefix = "file.upload")
+public class FileUploadConfig {
+    private String accessPath;
+    private String allowExt;
+    private String location;
+    private String qrLocation;
+}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/FileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/FileController.java
new file mode 100644
index 0000000..bd3dd68
--- /dev/null
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/FileController.java
@@ -0,0 +1,142 @@
+package com.ruoyi.chargingPile.controller;
+
+import com.ruoyi.chargingPile.config.FileUploadConfig;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * 文件上传控制类
+ *
+ * @author junelee
+ * @date 2020/3/20 20:21
+ */
+@Api(tags = "服务器文件上传")
+@RestController
+@CrossOrigin
+@RequestMapping("/file/")
+public class FileController {
+
+    @Autowired
+    private FileUploadConfig fileUploadConfig;
+
+
+
+    @ApiOperation(value = "单文件上传", notes = "单文件上传,rename 默认不重命名")
+    @PostMapping(value = "upload", headers = "content-type=multipart/form-data")
+    public AjaxResult uploadImageMany(@RequestParam(value = "file") MultipartFile mf) throws IOException {
+        if (mf.isEmpty()) {
+            return AjaxResult.error("请传入文件!");
+        }
+        String TimeDir =new SimpleDateFormat("yyyy-MM-dd").format(new Date());
+        String realPath = fileUploadConfig.getLocation() + TimeDir;
+//        String realPath = "D:\\file\\" + TimeDir;
+        File file = new File(realPath);
+        // 没有目录就创建
+        if (!file.exists()) {
+            file.mkdirs();
+        }
+        // 获取文件名称
+        String filename = mf.getOriginalFilename();
+        // 获取文件后缀
+        String ext = filename.substring(filename.lastIndexOf("."), filename.length());
+        // 检查文件类型
+        if (!fileUploadConfig.getAllowExt().contains(ext)) {
+            return AjaxResult.error("上传文件格式不正确,仅支持" + fileUploadConfig.getAllowExt());
+        }
+        File targetFile = new File(realPath, filename);//目标文件
+        //开始从源文件拷贝到目标文件
+        //传图片一步到位
+        mf.transferTo(targetFile);
+        //拼接数据
+        String imgstr = fileUploadConfig.getAccessPath() + TimeDir +"/"+ filename;
+//        String imgstr = TimeDir +"/"+ filename;
+        return AjaxResult.success(imgstr);
+    }
+
+
+//    @ApiOperation(value = "单文件上传", notes = "单文件上传,rename 默认不重命名")
+//    @PostMapping(value = "strUpload", headers = "content-type=multipart/form-data")
+//    public String strUpload(@RequestParam(value = "file") MultipartFile mf,@RequestParam(value = "fileName")String fileName) throws IOException {
+//        if (mf.isEmpty()) {
+//            return "请传入文件!";
+//        }
+//        String TimeDir =new SimpleDateFormat("yyyy-MM-dd").format(new Date());
+//        String realPath = fileUploadConfig.getQrLocation() + TimeDir;
+//        File file = new File(realPath);
+//        // 没有目录就创建
+//        if (!file.exists()) {
+//            file.mkdirs();
+//        }
+//        File targetFile = new File(realPath, fileName);//目标文件
+//        //开始从源文件拷贝到目标文件
+//        //传图片一步到位
+//        mf.transferTo(targetFile);
+//        //拼接数据
+//        return fileUploadConfig.getQrLocation() + TimeDir +"\\"+ fileName;
+//    }
+
+    @ApiOperation(value = "单文件上传", notes = "单文件上传,rename 默认不重命名")
+    @PostMapping(value = "strUpload", headers = "content-type=multipart/form-data")
+    public String strUpload(@RequestParam(value = "file") MultipartFile mf,@RequestParam(value = "fileName")String fileName) throws IOException {
+        if (mf.isEmpty()) {
+            return "请传入文件!";
+        }
+        String TimeDir =new SimpleDateFormat("yyyy-MM-dd").format(new Date());
+//        String realPath = "D:\\file\\" + TimeDir;
+        String realPath = fileUploadConfig.getLocation() + TimeDir;
+        File file = new File(realPath);
+        // 没有目录就创建
+        if (!file.exists()) {
+            file.mkdirs();
+        }
+        File targetFile = new File(realPath, fileName);//目标文件
+        //开始从源文件拷贝到目标文件
+        //传图片一步到位
+        mf.transferTo(targetFile);
+        String imgstr = fileUploadConfig.getAccessPath() + TimeDir +"/"+ fileName;
+        //拼接数据
+//        return TimeDir +"/"+ fileName;
+        return imgstr;
+    }
+
+    @ApiOperation(value = "单文件上传(覆盖服务器原文件)", notes = "单文件上传,rename 默认不重命名")
+    @PostMapping(value = "test/upload", headers = "content-type=multipart/form-data")
+    public AjaxResult uploadTest(@RequestParam(value = "file") MultipartFile mf) throws IOException {
+        if (mf.isEmpty()) {
+            return AjaxResult.error("请传入文件!");
+        }
+        String TimeDir = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
+        String realPath = fileUploadConfig.getLocation() + "2021-11-17";
+        File file = new File(realPath);
+        // 没有目录就创建
+        if (!file.exists()) {
+            file.mkdirs();
+        }
+        // 判断文件大小
+        String filename = "6u2mGlqHkeE75e2ab51b4a03c6982ff7d68f4c024d43.jpg";
+        // 获取文件后缀
+        String ext = filename.substring(filename.lastIndexOf("."), filename.length());
+        // 检查文件类型
+        if (!fileUploadConfig.getAllowExt().contains(ext)) {
+            return AjaxResult.error("上传文件格式不正确,仅支持" + fileUploadConfig.getAllowExt());
+        }
+        File targetFile = new File(realPath, filename);//目标文件
+        //开始从源文件拷贝到目标文件
+        //传图片一步到位
+        mf.transferTo(targetFile);
+        //拼接数据
+        String imgstr = fileUploadConfig.getAccessPath() + "2021-11-17" + "/" + filename;
+        return AjaxResult.success(imgstr);
+    }
+
+
+}
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 b16027a..480995c 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
@@ -162,6 +162,18 @@
 		return siteService.addSite(site);
 	}
 	
+	
+	
+	@ResponseBody
+	@PostMapping("/getSiteInfo/{id}")
+	@ApiOperation(value = "获取站点详情", tags = {"管理后台-站点管理"})
+	public AjaxResult<Site> getSiteInfo(@PathVariable Integer id){
+		Site site = siteService.getById(id);
+		return AjaxResult.success(site);
+	}
+	
+	
+	
 	@ResponseBody
 	@PostMapping("/editSite")
 	@ApiOperation(value = "编辑站点", tags = {"管理后台-站点管理"})
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 68d1800..4021ecd 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
@@ -15,6 +15,7 @@
 import com.ruoyi.chargingPile.service.TAccountingStrategyService;
 import com.ruoyi.chargingPile.service.TChargingPileService;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.dto.SteategyPassDto;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.domain.BaseDelete;
 import com.ruoyi.common.core.web.page.PageInfo;
@@ -45,7 +46,7 @@
  * @author xiaochen
  * @since 2024-08-06
  */
-@Api(tags = "计费策略")
+
 @RestController
 @RequestMapping("/t-accounting-strategy")
 public class TAccountingStrategyController {
@@ -177,26 +178,44 @@
 
     @ApiOperation(tags = {"后台-申请表单-计费模板审核"},value = "查询计费审核分页列表")
     @PostMapping(value = "/auth/pageList")
-    public AjaxResult authPageList(@RequestBody TAccountingStrategyQuery query) {
-        Long userid = tokenService.getLoginUser().getUserid();
-        Page<TAccountingStrategy> page = accountingStrategyService.lambdaQuery()
-                .in(TAccountingStrategy::getFirstUserId, userid)
-                .or().in(TAccountingStrategy::getTwoUserId, userid)
-                .page(Page.of(query.getPageCurr(), query.getPageSize()));
+    public AjaxResult<PageInfo<TAccountingStrategyVO>> authPageList(@RequestBody TAccountingStrategyQuery query) {
 
-        List<TAccountingStrategy> records = page.getRecords();
-        for (TAccountingStrategy record : records) {
-            if (record.getAuditStatus()==2){
-                if (record.getFirstUserId().equals(userid)){
-                    record.setAuditStatus(3);
-                }
-
-            }
-
-        }
         return AjaxResult.ok(accountingStrategyService.pageList(query));
     }
 
+//    @ApiOperation(tags = {"后台-申请表单-计费模板审核"},value = "审核")
+//    @PostMapping(value = "/auth/pass")
+//    public AjaxResult<PageInfo<TAccountingStrategyVO>> authPass(@RequestBody SteategyPassDto steategyPassDto) {
+//        TAccountingStrategy byId = accountingStrategyService.getById(steategyPassDto.getId());
+//        Long userId = tokenService.getLoginUser().getSysUser().getUserId();
+//        if (byId.getAuditStatus()==1&&byId.getFirstUserId()!=userId){
+//            return AjaxResult.error("您不是一级审核人员,无法审核");
+//        }
+//        if (byId.getAuditStatus()==2&&byId.getTwoUserId()!=userId){
+//            return AjaxResult.error("您不是二级审核人员,无法审核");
+//        }
+//        if (steategyPassDto.getPass()==1){
+//            if (byId.getAuditStatus()==1){
+//
+//                byId.setAuditStatus(2);
+//                byId.setFirstRemark(steategyPassDto.getRemark());
+//
+//            }else if (byId.getAuditStatus()==2){
+//                byId.setAuditStatus(3);
+//                byId.setTwoRemark(steategyPassDto.getRemark());
+//
+//            }
+//        }else {
+//            byId.setAuditStatus(4);
+//        }
+//
+//
+//
+//
+//
+//
+//    }
+
     /**
      * 小程序远程调用 根据会员折扣、预付金额 计算服务费
      * @return
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
index e91f208..797a34e 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
@@ -40,7 +40,7 @@
      * 建桩申请
      */
     @Log(title = "建桩申请", businessType = BusinessType.INSERT,operatorType = OperatorType.MOBILE)
-    @ApiOperation(tags = {"小程序-建桩申请"},value = "建桩申请")
+    @ApiOperation(tags = {"小程序-建桩申请","后台-申请表单-申请建桩"},value = "建桩申请")
     @PostMapping(value = "/add")
     public AjaxResult<Boolean> add(@RequestBody TApplyChargingPile dto) {
         // 用户id
@@ -74,6 +74,18 @@
         applyChargingPileService.updateById(byId);
         return AjaxResult.success();
     }
+    @ApiOperation(tags = {"后台-申请表单-申请建桩"},value = "删除")
+    @DeleteMapping(value = "/remark")
+    public AjaxResult remark(String ids) {
+
+        String[] split = ids.split(",");
+        for (String s : split) {
+            applyChargingPileService.removeById(s);
+
+        }
+        return AjaxResult.success();
+
+    }
 
 
 
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 a93b658..5e4d424 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
@@ -83,7 +83,7 @@
 	@ResponseBody
 	@GetMapping("/pageChargingPileList")
 	@ApiOperation(value = "获取充电桩列表数据", tags = {"管理后台-充电桩信息"})
-	public AjaxResult<PageInfo<PageChargingPileListDTO>> pageChargingPileList(@RequestBody PageChargingPileList page){
+	public AjaxResult<PageInfo<PageChargingPileListDTO>> pageChargingPileList(PageChargingPileList page){
 		PageInfo<PageChargingPileListDTO> list = chargingPileService.pageChargingPileList(page);
 		return AjaxResult.success(list);
 	}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileNotificationController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileNotificationController.java
index d4a0f79..640261a 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileNotificationController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileNotificationController.java
@@ -43,8 +43,7 @@
 	@ApiOperation(value = "删除系统通知", tags = {"管理后台-系统通知"})
 	public AjaxResult delChargingPileNotification(@RequestParam("id") Long id){
 		TChargingPileNotification chargingPileNotification = chargingPileNotificationService.getById(id);
-		chargingPileNotification.setDelFlag(1);
-		chargingPileNotificationService.updateById(chargingPileNotification);
+		chargingPileNotificationService.removeById(chargingPileNotification);
 		return AjaxResult.success();
 	}
 
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java
index 96b7093..f9bd40a 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java
@@ -3,6 +3,7 @@
 
 import com.ruoyi.chargingPile.api.model.TVehicleRamp;
 import com.ruoyi.chargingPile.service.TVehicleRampService;
+import com.ruoyi.common.core.utils.CodeGenerateUtils;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.domain.BaseDelete;
 import com.ruoyi.common.log.annotation.Log;
@@ -43,6 +44,7 @@
     @ApiOperation(tags = {"后台-车道"},value = "添加车道")
     @PostMapping(value = "/add")
     public AjaxResult<Boolean> add(@RequestBody TVehicleRamp dto) {
+        dto.setCarportNum(CodeGenerateUtils.generateVolumeSn());
         return AjaxResult.ok(vehicleRampService.save(dto));
     }
 
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileMapper.java
index 9cf2e89..5f7f9c5 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileMapper.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileMapper.java
@@ -39,7 +39,7 @@
 	 * @param id
 	 * @return
 	 */
-	TChargingPile getChargingPile(Integer id);
+	TChargingPile getChargingPile(@Param("id") Integer id);
 
 	/**
 	 * 获取站点下充电桩及充电枪列表
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 14003b2..110ef9c 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
@@ -328,7 +328,6 @@
 		Partner partner = this.getById(partnerId);
 		GetPermissionConfigurationDTO dto = new GetPermissionConfigurationDTO();
 		dto.setPermissionRemarks(partner.getPermissionRemarks());
-		Map<String, Object> menu = new HashMap<>();
 		List<TPartnerSite> list = partnerSiteService.list(new LambdaQueryWrapper<TPartnerSite>()
 				.eq(TPartnerSite::getPartnerId, partnerId)
 				.eq(TPartnerSite::getSiteId, siteId));
@@ -337,7 +336,9 @@
 				.eq(TSiteMenu::getParentId, 0)
 				.eq(TSiteMenu::getVisible, 0)
 				.eq(TSiteMenu::getStatus, 0).orderByAsc(TSiteMenu::getOrderNum));
+		List<Map<String, Object>> list1 = new ArrayList<>();
 		for (TSiteMenu tSiteMenu : tSiteMenus) {
+			Map<String, Object> menu = new HashMap<>();
 			menu.put("id", tSiteMenu.getMenuId());
 			menu.put("name", tSiteMenu.getMenuName());
 			menu.put("path", tSiteMenu.getPath());
@@ -347,18 +348,21 @@
 					.eq(TSiteMenu::getParentId, tSiteMenu.getMenuId())
 					.eq(TSiteMenu::getVisible, 0)
 					.eq(TSiteMenu::getStatus, 0).orderByAsc(TSiteMenu::getOrderNum));
-			Map<String, Object> child = new HashMap<>();
+			List<Map<String, Object>> list2 = new ArrayList<>();
 			for (TSiteMenu siteMenu : tSiteMenus1) {
+				Map<String, Object> child = new HashMap<>();
 				child.put("id", siteMenu.getMenuId());
 				child.put("name", siteMenu.getMenuName());
 				child.put("path", siteMenu.getPath());
 				child.put("type", siteMenu.getMenuType());
 				child.put("selected", collect.contains(siteMenu.getMenuId()));
+				list2.add(child);
 			}
-			menu.put("selected", child.keySet().size() > 0 ? true : false);
-			menu.put("child", child);
+			menu.put("selected", list2.size() > 0 ? true : false);
+			menu.put("child", list2);
+			list1.add(menu);
 		}
-		dto.setMenu(menu);
+		dto.setMenu(list1);
 		return dto;
 	}
 	
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 fd43fd1..2b2bbd5 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
@@ -8,8 +8,12 @@
 import com.ruoyi.chargingPile.mapper.TAccountingStrategyMapper;
 import com.ruoyi.chargingPile.service.TAccountingStrategyService;
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.other.api.feignClient.OtherClient;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.feignClient.SysUserClient;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.List;
 
 /**
@@ -23,10 +27,24 @@
 @Service
 public class TAccountingStrategyServiceImpl extends ServiceImpl<TAccountingStrategyMapper, TAccountingStrategy> implements TAccountingStrategyService {
 
+    @Resource
+    private SysUserClient sysUserClient;
     @Override
     public PageInfo<TAccountingStrategyVO> pageList(TAccountingStrategyQuery query) {
         PageInfo<TAccountingStrategyVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
         List<TAccountingStrategyVO> list = this.baseMapper.pageList(query,pageInfo);
+        for (TAccountingStrategyVO tAccountingStrategyVO : list) {
+            SysUser data = sysUserClient.getSysUser(tAccountingStrategyVO.getUserId()).getData();
+            tAccountingStrategyVO.setUserName(data.getNickName());
+            if (tAccountingStrategyVO.getFirstUserId()!=null){
+                SysUser first = sysUserClient.getSysUser(tAccountingStrategyVO.getUserId()).getData();
+                tAccountingStrategyVO.setFirstUserName(first==null?null:first.getNickName());
+            }
+            if (tAccountingStrategyVO.getTwoUserId()!=null){
+                SysUser two = sysUserClient.getSysUser(tAccountingStrategyVO.getUserId()).getData();
+                tAccountingStrategyVO.setTwoUserName(two==null?null:two.getNickName());
+            }
+        }
         pageInfo.setRecords(list);
         return pageInfo;
     }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/logback.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/logback.xml
index 985238a..a1c5267 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/logback.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/logback.xml
@@ -58,11 +58,11 @@
     </appender>
 
     <!-- 系统模块日志级别控制  -->
-	<logger name="com.ruoyi" level="info" />
+	<logger name="com.ruoyi" level="debug" />
 	<!-- Spring日志级别控制  -->
-	<logger name="org.springframework" level="warn" />
+	<logger name="org.springframework" level="debug" />
 
-	<root level="info">
+	<root level="debug">
 		<appender-ref ref="console" />
 	</root>
 	
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 2d141d8..b230499 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
@@ -52,6 +52,7 @@
 		a.id,
 		a.code,
 		a.name,
+		a.partner_id as partnerId,
 		b.name as partnerName,
 		a.site_type as siteType,
 		a.business_category as businessCategory,
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 cb53cae..852f794 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
@@ -26,12 +26,15 @@
     </sql>
     <select id="pageList" 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
+        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
         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 del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
         </where>
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingGunMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingGunMapper.xml
index dcf4843..6fa993c 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingGunMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingGunMapper.xml
@@ -34,29 +34,29 @@
     </sql>
     <select id="pageList" resultType="com.ruoyi.chargingPile.api.vo.TChargingGunVO">
         SELECT
-        tas.id, tas.code, tas.site_id, tas.partner_id, tas.charging_pile_id, tas.`name`, tas.`type`, tas.status, tas.charge_mode, tas.accounting_strategy_id,
-        tas.upper_rated_voltage, tas.lower_limit_of_rated_voltage, tas.rated_current, tas.rated_power, tas.parking_number, tas.parking_status,
-        tas.parking_lock_state, tas.national_standard, tas.remark, tas.create_time, tas.del_flag,tcg.name AS strategyName
+        tcg.id, tcg.code, tcg.site_id, tcg.partner_id, tcg.charging_pile_id, tcg.`name`, tcg.`type`, tcg.status, tcg.charge_mode, tcg.accounting_strategy_id,
+        tcg.upper_rated_voltage, tcg.lower_limit_of_rated_voltage, tcg.rated_current, tcg.rated_power, tcg.parking_number, tcg.parking_status,
+        tcg.parking_lock_state, tcg.national_standard, tcg.remark, tcg.create_time, tcg.del_flag,tas.name AS strategyName
         FROM t_charging_gun tcg
         LEFT JOIN t_accounting_strategy tas ON tas.id = tcg.accounting_strategy_id
         <where>
             <if test="query.siteId != null">
-                AND tas.site_id = #{query.siteId}
+                AND tcg.site_id = #{query.siteId}
             </if>
             <if test="query.chargingPileId != null">
-                AND tas.charging_pile_id = #{query.chargingPileId}
+                AND tcg.charging_pile_id = #{query.chargingPileId}
             </if>
             <if test="query.name != null and query.name != ''">
-                AND tas.`name` LIKE concat('%',#{query.name},'%')
+                AND tcg.`name` LIKE concat('%',#{query.name},'%')
             </if>
             <if test="query.type != null">
-                AND tas.`type` = #{query.type}
+                AND tcg.`type` = #{query.type}
             </if>
             <if test="query.status != null">
-                AND tas.status = #{query.status}
+                AND tcg.status = #{query.status}
             </if>
             <if test="query.chargeMode != null">
-                AND tas.chargeMode = #{query.chargeMode}
+                AND tcg.chargeMode = #{query.chargeMode}
             </if>
             <if test="null != siteIds">
                 and tcg.site_id in
@@ -64,9 +64,9 @@
                     #{item}
                 </foreach>
             </if>
-            AND tas.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
+            AND tcg.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
         </where>
-        ORDER BY tas.create_time DESC
+        ORDER BY tcg.create_time DESC
     </select>
 
 </mapper>
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileMapper.xml
index bcfe11d..ce989fc 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileMapper.xml
@@ -31,22 +31,22 @@
     
     <select id="pageChargingPileList" resultType="com.ruoyi.chargingPile.api.dto.PageChargingPileListDTO">
         select
-        id,
-        code,
-        name,
-        number,
-        type,
+        a.id,
+        a.code,
+        a.name,
+        a.number,
+        a.type,
         a.site_id as siteId,
         b.name as siteName,
         a.partner_id as partnerId,
         c.name as partnerName,
         a.manufacturer,
         a.equipment_type as equipmentType,
-        a.ratedPower
+        a.rated_power as ratedPower
         from t_charging_pile a
         left join t_site b on (a.site_id = b.id)
         left join t_partner c on (a.partner_id = c.id)
-        where del_flag = 0
+        where a.del_flag = 0
         <if test="null != item.siteId">
             and a.site_id = #{item.siteId}
         </if>
@@ -74,6 +74,7 @@
         from t_charging_pile a
         left join t_site b on (a.site_id = b.id)
         left join t_partner c on (a.partner_id = c.id)
+        where a.id = #{id}
     </select>
     <select id="getChargingGunList" resultType="com.ruoyi.chargingPile.api.vo.TChargingPileVO">
         select id,code, `name`, `number` from t_charging_pile
diff --git a/ruoyi-service/ruoyi-integration/pom.xml b/ruoyi-service/ruoyi-integration/pom.xml
index 1971df9..5a824fc 100644
--- a/ruoyi-service/ruoyi-integration/pom.xml
+++ b/ruoyi-service/ruoyi-integration/pom.xml
@@ -127,12 +127,30 @@
             <version>4.7.1</version>
         </dependency>
 
-        <!--spirngboot集成mongodb-->
+        <!--mongodb-->
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-mongodb</artifactId>
         </dependency>
 
+        <!--华为云-->
+        <dependency>
+            <groupId>com.huaweicloud.sdk</groupId>
+            <artifactId>huaweicloud-sdk-core</artifactId>
+            <version>[3.0.40-rc, 3.2.0)</version>
+        </dependency>
+        <dependency>
+            <groupId>com.huaweicloud.sdk</groupId>
+            <artifactId>huaweicloud-sdk-iotda</artifactId>
+            <version>[3.0.40-rc, 3.2.0)</version>
+        </dependency>
+        <dependency>
+            <groupId>com.huaweicloud.sdk</groupId>
+            <artifactId>huaweicloud-sdk-bundle</artifactId>
+            <version>3.1.87</version>
+        </dependency>
+
+
     </dependencies>
 
     <build>
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/builder/IotBuilder.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/builder/IotBuilder.java
new file mode 100644
index 0000000..d11cc16
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/builder/IotBuilder.java
@@ -0,0 +1,57 @@
+package com.ruoyi.integration.iotda.builder;
+
+import com.huaweicloud.sdk.core.auth.AbstractCredentials;
+import com.huaweicloud.sdk.core.auth.BasicCredentials;
+import com.huaweicloud.sdk.core.auth.ICredential;
+import com.huaweicloud.sdk.core.region.Region;
+import com.huaweicloud.sdk.iam.v3.IamClient;
+import com.huaweicloud.sdk.iam.v3.region.IamRegion;
+import com.huaweicloud.sdk.iotda.v5.IoTDAClient;
+import com.ruoyi.integration.iotda.config.IotDAConfig;
+import com.ruoyi.integration.iotda.constant.IotConstant;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+public class IotBuilder {
+
+    @Autowired
+    private IotDAConfig config;
+
+    /**
+     * iot build
+     *
+     * @return
+     */
+    public IoTDAClient buildIot() {
+        ICredential auth = new BasicCredentials()
+                // 标准版/企业版需要使用衍生算法,基础版请删除配置"withDerivedPredicate";
+                .withDerivedPredicate(AbstractCredentials.DEFAULT_DERIVED_PREDICATE) // Used in derivative ak/sk authentication scenarios
+                .withAk(config.getAk())
+                .withSk(config.getSk());
+        return IoTDAClient.newBuilder()
+                .withCredential(auth)
+                // 标准版/企业版:需自行创建Region对象,基础版:请使用IoTDARegion的region对象,如"withRegion(IoTDARegion.CN_NORTH_4)"
+                .withRegion(new Region("cn-north-4", IotConstant.URL))
+                .build();
+    }
+    /**
+     * iam build
+     *
+     * @return
+     */
+    public IamClient buildIam() {
+        ICredential auth = new BasicCredentials()
+                // 标准版/企业版需要使用衍生算法,基础版请删除配置"withDerivedPredicate";
+                .withDerivedPredicate(AbstractCredentials.DEFAULT_DERIVED_PREDICATE) // Used in derivative ak/sk authentication scenarios
+                .withAk(config.getAk())
+                .withSk(config.getSk());
+        return IamClient.newBuilder()
+                .withCredential(auth)
+                .withRegion(IamRegion.valueOf("cn-north-4"))
+                .build();
+    }
+
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/config/IotAccountConfig.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/config/IotAccountConfig.java
new file mode 100644
index 0000000..8b34ca1
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/config/IotAccountConfig.java
@@ -0,0 +1,27 @@
+package com.ruoyi.integration.iotda.config;
+
+import lombok.Data;
+import lombok.ToString;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Data
+@ToString
+@Component
+@ConfigurationProperties(prefix = "iot.account.conf")
+public class IotAccountConfig {
+
+    /**
+     * hostAccount配置
+     */
+    private String hostAccount;
+    /**
+     * iamAccount配置
+     */
+    private String iamAccount;
+    /**
+     * iamPassword配置
+     */
+    private String iamPassword;
+
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/config/IotDAConfig.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/config/IotDAConfig.java
new file mode 100644
index 0000000..01a297d
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/config/IotDAConfig.java
@@ -0,0 +1,35 @@
+package com.ruoyi.integration.iotda.config;
+
+import lombok.Data;
+import lombok.ToString;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Data
+@ToString
+@Component
+@ConfigurationProperties(prefix = "iot.conf")
+public class IotDAConfig {
+
+    /**
+     * ak配置
+     */
+    private String ak;
+    /**
+     * sk配置
+     */
+    private String sk;
+    /**
+     * endpoint配置  938d8d39e2.iotda.cn-north-4.myhuaweicloud.com
+     */
+    private String endpoint;
+    /**
+     * project_id配置  	0cc59978c61e4b4da24e8c3d02937b45
+     */
+    private String projectId;
+    /**
+     * Instance-Id配置  	c60f266a-57a2-460c-a24e-eabda84602eb
+     */
+    private String instanceId;
+
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/IotConstant.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/IotConstant.java
new file mode 100644
index 0000000..b84b38b
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/IotConstant.java
@@ -0,0 +1,25 @@
+package com.ruoyi.integration.iotda.constant;
+
+public class IotConstant {
+    /**
+     * 华为云iot  token
+     */
+    public static final String IOT_TOKEN = "iot_token";
+    /**
+     * 模式
+     */
+    public static final String PASSWORD = "password";
+    /**
+     * URL
+     */
+    public static final String URL = "https://iotda.cn-north-4.myhuaweicloud.com";
+    /**
+     * 创建产品
+     */
+    public static final String CREATE_PRODUCT = URL+"/v5/iot/{project_id}/products";
+    /**
+     * 创建产品
+     */
+    public static final String DELETE_PRODUCT = URL+"/v5/iot/{project_id}/products/{product_id}";
+
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/api/IotInterfaceUtil.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/api/IotInterfaceUtil.java
new file mode 100644
index 0000000..2528cc6
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/api/IotInterfaceUtil.java
@@ -0,0 +1,261 @@
+package com.ruoyi.integration.iotda.utils.api;
+
+import com.huaweicloud.sdk.core.auth.AbstractCredentials;
+import com.huaweicloud.sdk.core.auth.ICredential;
+import com.huaweicloud.sdk.core.exception.ConnectionException;
+import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
+import com.huaweicloud.sdk.core.exception.ServiceResponseException;
+import com.huaweicloud.sdk.iotda.v5.IoTDAClient;
+import com.huaweicloud.sdk.iotda.v5.model.*;
+import com.ruoyi.common.core.utils.CodeGenerateUtils;
+import com.ruoyi.common.core.utils.uuid.UUID;
+import com.ruoyi.integration.iotda.builder.IotBuilder;
+import com.ruoyi.integration.iotda.config.IotAccountConfig;
+import com.ruoyi.integration.iotda.config.IotDAConfig;
+import com.ruoyi.integration.iotda.constant.IotConstant;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * iot接口调用工具类
+ */
+@Slf4j
+@Component
+public class IotInterfaceUtil {
+
+    private static final String dataFormat = "json";
+    private static final String protocolType = "HTTPS";
+    private static final String deviceType = "充电桩";
+    private static final String serviceType = "直流充电";
+
+    @Autowired
+    private IotBuilder iotBuilder;
+    @Autowired
+    private IotDAConfig iotDAConfig;
+
+    private String decodeUrl(String url) {
+        return MessageFormat.format(url, iotDAConfig.getProjectId());
+    }
+
+    public static void main(String[] args) {
+
+    }
+
+    /**
+     * 创建产品
+     * @param productId 产品ID,使用UUID.randomUUID().toString()生成 需替换特殊字符 "-" 为空
+     * @param productName 产品名称
+     * @return CreateProductResponse
+     */
+    public CreateProductResponse createProductSolution(String productId,String productName) {
+        CreateProductRequest request = new CreateProductRequest();
+        AddProduct body = new AddProduct();
+        List<ServiceCapability> listbodyServiceCapabilities = new ArrayList<>();
+        listbodyServiceCapabilities.add(
+                new ServiceCapability()
+                        .withServiceId(CodeGenerateUtils.generateVolumeSn())
+                        .withServiceType(serviceType)
+        );
+        body.withServiceCapabilities(listbodyServiceCapabilities);
+        body.withDataFormat(dataFormat);
+        body.withProtocolType(protocolType);
+        body.withDeviceType(deviceType);
+        body.withName(productName);
+        body.withProductId(productId);
+        request.withBody(body);
+        request.withInstanceId(iotDAConfig.getInstanceId());
+        try {
+            CreateProductResponse response = iotBuilder.buildIot().createProduct(request);
+            log.info("创建产品:{}",response.toString());
+            return response;
+        } catch (ConnectionException | RequestTimeoutException e) {
+            e.printStackTrace();
+        } catch (ServiceResponseException e) {
+            e.printStackTrace();
+            log.info(String.valueOf(e.getHttpStatusCode()));
+            log.info(e.getRequestId());
+            log.info(e.getErrorCode());
+            log.info(e.getErrorMsg());
+        }
+        return null;
+    }
+
+
+    /**
+     * 删除产品
+     * @param productId 产品ID,使用UUID.randomUUID().toString()生成 需替换特殊字符 "-" 为空
+     * @return DeleteProductResponse
+     */
+    public DeleteProductResponse deleteProductRequest(String productId) {
+        DeleteProductRequest request = new DeleteProductRequest();
+        request.withProductId(productId);
+        request.withInstanceId(iotDAConfig.getInstanceId());
+        try {
+            DeleteProductResponse response = iotBuilder.buildIot().deleteProduct(request);
+            log.info("删除产品:{}",response.toString());
+            return response;
+        } catch (ConnectionException e) {
+            e.printStackTrace();
+        } catch (RequestTimeoutException e) {
+            e.printStackTrace();
+        } catch (ServiceResponseException e) {
+            e.printStackTrace();
+            System.out.println(e.getHttpStatusCode());
+            System.out.println(e.getRequestId());
+            System.out.println(e.getErrorCode());
+            System.out.println(e.getErrorMsg());
+        }
+        return null;
+    }
+
+    /**
+     * 创建设备
+     * @param productId 产品ID
+     * @param nodeId 设备标识码  通常使用IMEI、MAC地址或Serial No作为node_id
+     * @param deviceId 设备ID 使用CodeGenerateUtils.generateVolumeSn()
+     * @param deviceName 设备名称
+     * @param description 设备描述
+     * @return AddDeviceResponse
+     */
+    public AddDeviceResponse addDeviceRequest(String productId,String nodeId,String deviceId,String deviceName,String description) {
+        AddDeviceRequest request = new AddDeviceRequest();
+        AddDevice body = new AddDevice();
+        body.withDeviceId(deviceId);
+        body.withNodeId(nodeId);
+        body.withDeviceName(deviceName);
+        body.withProductId(productId);
+        body.withDescription(description);
+        request.withBody(body);
+        try {
+            AddDeviceResponse response = iotBuilder.buildIot().addDevice(request);
+            log.info("创建设备:{}",response.toString());
+            return response;
+        } catch (ConnectionException e) {
+            e.printStackTrace();
+        } catch (RequestTimeoutException e) {
+            e.printStackTrace();
+        } catch (ServiceResponseException e) {
+            e.printStackTrace();
+            System.out.println(e.getHttpStatusCode());
+            System.out.println(e.getRequestId());
+            System.out.println(e.getErrorCode());
+            System.out.println(e.getErrorMsg());
+        }
+        return null;
+    }
+
+    /**
+     * 修改设备
+     * @param deviceId 设备ID 使用已有设备编号
+     * @param deviceName 设备名称
+     * @param description 设备描述
+     * @return UpdateDeviceResponse
+     */
+    public UpdateDeviceResponse updateDeviceRequest(String deviceId,String deviceName,String description) {
+        UpdateDeviceRequest request = new UpdateDeviceRequest();
+        request.withDeviceId(deviceId);
+        UpdateDevice body = new UpdateDevice();
+        body.withDescription(description);
+        body.withDeviceName(deviceName);
+        request.withBody(body);
+        try {
+            UpdateDeviceResponse response = iotBuilder.buildIot().updateDevice(request);
+            log.info("修改设备:{}",response.toString());
+            return response;
+        } catch (ConnectionException e) {
+            e.printStackTrace();
+        } catch (RequestTimeoutException e) {
+            e.printStackTrace();
+        } catch (ServiceResponseException e) {
+            e.printStackTrace();
+            System.out.println(e.getHttpStatusCode());
+            System.out.println(e.getRequestId());
+            System.out.println(e.getErrorCode());
+            System.out.println(e.getErrorMsg());
+        }
+        return null;
+    }
+
+    /**
+     * 冻结设备
+     * @param deviceId 设备ID 使用已有设备编号
+     * @return FreezeDeviceResponse
+     */
+    public FreezeDeviceResponse freezeDeviceRequest(String deviceId) {
+        FreezeDeviceRequest request = new FreezeDeviceRequest();
+        request.withDeviceId(deviceId);
+        try {
+            FreezeDeviceResponse response = iotBuilder.buildIot().freezeDevice(request);
+            log.info("冻结设备:{}",response.toString());
+            return response;
+        } catch (ConnectionException e) {
+            e.printStackTrace();
+        } catch (RequestTimeoutException e) {
+            e.printStackTrace();
+        } catch (ServiceResponseException e) {
+            e.printStackTrace();
+            System.out.println(e.getHttpStatusCode());
+            System.out.println(e.getRequestId());
+            System.out.println(e.getErrorCode());
+            System.out.println(e.getErrorMsg());
+        }
+        return null;
+    }
+
+    /**
+     * 解冻设备
+     * @param deviceId 设备ID 使用已有设备编号
+     * @return UnfreezeDeviceResponse
+     */
+    public UnfreezeDeviceResponse unfreezeDeviceRequest(String deviceId) {
+        UnfreezeDeviceRequest request = new UnfreezeDeviceRequest();
+        request.withDeviceId(deviceId);
+        try {
+            UnfreezeDeviceResponse response = iotBuilder.buildIot().unfreezeDevice(request);
+            log.info("解冻设备:{}",response.toString());
+            return response;
+        } catch (ConnectionException e) {
+            e.printStackTrace();
+        } catch (RequestTimeoutException e) {
+            e.printStackTrace();
+        } catch (ServiceResponseException e) {
+            e.printStackTrace();
+            System.out.println(e.getHttpStatusCode());
+            System.out.println(e.getRequestId());
+            System.out.println(e.getErrorCode());
+            System.out.println(e.getErrorMsg());
+        }
+        return null;
+    }
+
+    /**
+     * 删除设备
+     * @param deviceId 设备ID 使用已有设备编号
+     * @return DeleteDeviceResponse
+     */
+    public DeleteDeviceResponse deleteDeviceRequest(String deviceId) {
+        DeleteDeviceRequest request = new DeleteDeviceRequest();
+        request.withDeviceId(deviceId);
+        try {
+            DeleteDeviceResponse response = iotBuilder.buildIot().deleteDevice(request);
+            log.info("删除设备:{}",response.toString());
+            return response;
+        } catch (ConnectionException e) {
+            e.printStackTrace();
+        } catch (RequestTimeoutException e) {
+            e.printStackTrace();
+        } catch (ServiceResponseException e) {
+            e.printStackTrace();
+            System.out.println(e.getHttpStatusCode());
+            System.out.println(e.getRequestId());
+            System.out.println(e.getErrorCode());
+            System.out.println(e.getErrorMsg());
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java
new file mode 100644
index 0000000..9b0d3b1
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java
@@ -0,0 +1,13 @@
+package com.ruoyi.integration.iotda.utils.listener;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * iotda消息监听
+ */
+@Slf4j
+@Component
+public class IotMessageListener {
+    
+}
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/produce/IotMessageProduce.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/produce/IotMessageProduce.java
new file mode 100644
index 0000000..6e386cb
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/produce/IotMessageProduce.java
@@ -0,0 +1,13 @@
+package com.ruoyi.integration.iotda.utils.produce;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * iotda消息发送
+ */
+@Slf4j
+@Component
+public class IotMessageProduce {
+    
+}
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/time/UtcToSeconds.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/time/UtcToSeconds.java
new file mode 100644
index 0000000..0206b39
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/time/UtcToSeconds.java
@@ -0,0 +1,19 @@
+package com.ruoyi.integration.iotda.utils.time;
+
+import java.time.Instant;
+import java.time.ZoneOffset;
+import java.time.format.DateTimeFormatter;
+ 
+public class UtcToSeconds {
+    public static long convertToSeconds(String utcTimeString) {
+        Instant instant = Instant.parse(utcTimeString);
+        long seconds = instant.atOffset(ZoneOffset.UTC).toEpochSecond();
+        return seconds;
+    }
+ 
+    public static void main(String[] args) {
+        String utcTimeString = "2023-04-01T12:00:00Z";
+        long seconds = convertToSeconds(utcTimeString);
+        System.out.println("Seconds since epoch: " + seconds);
+    }
+}
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/token/IotTokenUtil.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/token/IotTokenUtil.java
new file mode 100644
index 0000000..c2a2428
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/token/IotTokenUtil.java
@@ -0,0 +1,72 @@
+package com.ruoyi.integration.iotda.utils.token;
+
+import com.huaweicloud.sdk.core.exception.ConnectionException;
+import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
+import com.huaweicloud.sdk.core.exception.ServiceResponseException;
+import com.huaweicloud.sdk.iam.v3.model.*;
+import com.ruoyi.common.redis.service.RedisService;
+import com.ruoyi.integration.iotda.constant.IotConstant;
+import com.ruoyi.integration.iotda.builder.IotBuilder;
+import com.ruoyi.integration.iotda.config.IotAccountConfig;
+import com.ruoyi.integration.iotda.utils.time.UtcToSeconds;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+@Slf4j
+@Component
+public class IotTokenUtil {
+    @Autowired
+    private IotBuilder iotBuilder;
+    @Autowired
+    private IotAccountConfig accountConfig;
+    @Autowired
+    private RedisService redisService;
+
+    /**
+     * 获取token
+     * @return
+     */
+    public KeystoneCreateUserTokenByPasswordResponse getToken() {
+        KeystoneCreateUserTokenByPasswordRequest request = new KeystoneCreateUserTokenByPasswordRequest();
+        KeystoneCreateUserTokenByPasswordRequestBody body = new KeystoneCreateUserTokenByPasswordRequestBody();
+        PwdPasswordUserDomain domainUser = new PwdPasswordUserDomain();
+        domainUser.withName(accountConfig.getHostAccount());
+        PwdPasswordUser userPassword = new PwdPasswordUser();
+        userPassword.withDomain(domainUser)
+                .withName(accountConfig.getIamAccount())
+                .withPassword(accountConfig.getIamPassword());
+        PwdPassword passwordIdentity = new PwdPassword();
+        passwordIdentity.withUser(userPassword);
+        List<PwdIdentity.MethodsEnum> listIdentityMethods = new ArrayList<>();
+        listIdentityMethods.add(PwdIdentity.MethodsEnum.fromValue(IotConstant.PASSWORD));
+        PwdIdentity identityAuth = new PwdIdentity();
+        identityAuth.withMethods(listIdentityMethods)
+                .withPassword(passwordIdentity);
+        PwdAuth authbody = new PwdAuth();
+        authbody.withIdentity(identityAuth);
+        body.withAuth(authbody);
+        request.withBody(body);
+        try {
+            KeystoneCreateUserTokenByPasswordResponse response = iotBuilder.buildIam().keystoneCreateUserTokenByPassword(request);
+            redisService.setCacheObject(IotConstant.IOT_TOKEN, response.getXSubjectToken(), UtcToSeconds.convertToSeconds(response.getToken().getExpiresAt()), TimeUnit.SECONDS);
+            return response;
+        } catch (ConnectionException e) {
+            e.printStackTrace();
+        } catch (RequestTimeoutException e) {
+            e.printStackTrace();
+        } catch (ServiceResponseException e) {
+            e.printStackTrace();
+            System.out.println(e.getHttpStatusCode());
+            System.out.println(e.getRequestId());
+            System.out.println(e.getErrorCode());
+            System.out.println(e.getErrorMsg());
+        }
+        return null;
+    }
+
+}
diff --git a/ruoyi-service/ruoyi-order/pom.xml b/ruoyi-service/ruoyi-order/pom.xml
index 193649c..aee7399 100644
--- a/ruoyi-service/ruoyi-order/pom.xml
+++ b/ruoyi-service/ruoyi-order/pom.xml
@@ -19,27 +19,19 @@
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-other</artifactId>
-            <version>3.6.2</version>
-            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-account</artifactId>
-            <version>3.6.2</version>
-            <scope>compile</scope>
         </dependency>
         <!-- ruoyi-modules-chargingPile-api -->
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-order</artifactId>
-            <version>3.6.2</version>
-            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-chargingPile</artifactId>
-            <version>3.6.2</version>
-            <scope>compile</scope>
         </dependency>
 
 
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
index 5f4fb2a..9535840 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
@@ -1,4 +1,5 @@
 package com.ruoyi.order.controller;
+import java.time.LocalDateTime;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -18,6 +19,7 @@
 import com.ruoyi.order.service.TExchangeOrderService;
 import com.ruoyi.order.service.TShoppingOrderService;
 import com.ruoyi.order.service.TVipOrderService;
+import com.ruoyi.other.api.dto.ExchangeDto;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.util.StringUtils;
@@ -144,9 +146,40 @@
 
         return R.ok(strings);
     }
-    
-    
-    
+
+
+
+
+    @PostMapping("/getById")
+    public R<Long> getById(@RequestParam("goodId") Integer goodId,@RequestParam("userId")  Long userId){
+          return R.ok(exchangeOrderService.lambdaQuery().eq(TExchangeOrder::getGoodsId,goodId).eq(TExchangeOrder::getAppUserId,userId).ne(TExchangeOrder::getStatus,4).count());
+    }
+
+    @PostMapping("/create")
+    public R<Long> exchangeCreate(@RequestBody ExchangeDto exchangeDto){
+        TExchangeOrder tExchangeOrder = new TExchangeOrder();
+        tExchangeOrder.setCode("");
+        tExchangeOrder.setAppUserId(exchangeDto.getUserId());
+        tExchangeOrder.setOrderType(0);
+        tExchangeOrder.setGoodsId(0);
+        tExchangeOrder.setCouponId(0);
+        tExchangeOrder.setPurchaseQuantity(0);
+        tExchangeOrder.setAppUserAddressId(0L);
+        tExchangeOrder.setPoints(0);
+        tExchangeOrder.setRemark("");
+        tExchangeOrder.setStatus(0);
+        tExchangeOrder.setExpressCompany("");
+        tExchangeOrder.setExpressNumber("");
+        tExchangeOrder.setConsignerId(0);
+        tExchangeOrder.setConsignerTime(LocalDateTime.now());
+        tExchangeOrder.setReceivingTime(LocalDateTime.now());
+        tExchangeOrder.setCancellationTime(LocalDateTime.now());
+        tExchangeOrder.setCancellationId(0);
+        tExchangeOrder.setCreateTime(LocalDateTime.now());
+        tExchangeOrder.setDelFlag(false);
+        return R.ok();
+
+    }
     
     
     
diff --git a/ruoyi-service/ruoyi-other/pom.xml b/ruoyi-service/ruoyi-other/pom.xml
index 7179436..2e9d6e4 100644
--- a/ruoyi-service/ruoyi-other/pom.xml
+++ b/ruoyi-service/ruoyi-other/pom.xml
@@ -24,20 +24,14 @@
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-account</artifactId>
-            <version>3.6.2</version>
-            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-other</artifactId>
-            <version>3.6.2</version>
-            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-order</artifactId>
-            <version>3.6.2</version>
-            <scope>compile</scope>
         </dependency>
         <!-- SpringCloud Alibaba Nacos Config -->
         <dependency>
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
index 4dc48ac..149b813 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
@@ -16,6 +16,7 @@
 import com.ruoyi.other.service.TActivityService;
 import com.ruoyi.other.service.TCouponService;
 import com.ruoyi.other.service.TGoodsService;
+import com.ruoyi.system.api.domain.SysUser;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
@@ -24,6 +25,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
@@ -149,6 +151,7 @@
         }
         return R.ok(list);
     }
+
     
     
     /**
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEnterpriseUserApplicationController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEnterpriseUserApplicationController.java
index f612c11..6b744dc 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEnterpriseUserApplicationController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEnterpriseUserApplicationController.java
@@ -1,19 +1,24 @@
 package com.ruoyi.other.controller;
 
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.api.dto.EnterpriseQuery;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.log.annotation.Log;
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.other.api.domain.TEnterpriseUserApplication;
+import com.ruoyi.other.query.PassDto;
 import com.ruoyi.other.service.TEnterpriseUserApplicationService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * <p>
@@ -29,6 +34,8 @@
 
     private final TEnterpriseUserApplicationService enterpriseUserApplicationService;
     private final TokenService tokenService;
+    @Resource
+    private AppUserClient appUserClient;
 
     @Autowired
     public TEnterpriseUserApplicationController(TEnterpriseUserApplicationService enterpriseUserApplicationService, TokenService tokenService) {
@@ -40,7 +47,7 @@
      * 添加计费策略管理
      */
     @Log(title = "添加集团用户申请", businessType = BusinessType.INSERT)
-    @ApiOperation(tags = {"小程序-计费策略"},value = "添加集团用户申请")
+    @ApiOperation(tags = {"小程序-集团用户"},value = "添加集团用户申请")
     @PostMapping(value = "/add")
     public AjaxResult<Boolean> add(@Validated @RequestBody TEnterpriseUserApplication dto) {
         // 用户id
@@ -48,14 +55,53 @@
         return AjaxResult.ok(enterpriseUserApplicationService.save(dto));
     }
 
+    @Log(title = "添加集团用户申请", businessType = BusinessType.INSERT)
+    @ApiOperation(tags = {"后台-申请表单-集团用户"},value = "后台添加集团用户申请")
+    @PostMapping(value = "/back/add")
+    public AjaxResult<Boolean> backAdd(@Validated @RequestBody TEnterpriseUserApplication dto) {
+        // 用户id
+        return AjaxResult.ok(enterpriseUserApplicationService.save(dto));
+    }
 
 
     @ApiOperation(tags = {"后台-申请表单-集团用户"},value = "集团用户列表")
     @PostMapping(value = "/page")
-    public AjaxResult<Boolean> page(@RequestBody TEnterpriseUserApplication dto) {
+    public R<Page<TEnterpriseUserApplication>> page(EnterpriseQuery enterpriseQuery) {
         // 用户id
-        dto.setAppUserId(tokenService.getLoginUserApplet().getUserId());
-        return AjaxResult.ok(enterpriseUserApplicationService.save(dto));
+        if (enterpriseQuery.getPhone()!=null) {
+            List<Long> userIds = appUserClient.getUserIdsByPhone(enterpriseQuery.getPhone()).getData();
+            if (userIds.isEmpty()){
+                return R.ok();
+            }
+            Page<TEnterpriseUserApplication> page = enterpriseUserApplicationService.lambdaQuery().in(TEnterpriseUserApplication::getAppUserId, userIds).page(Page.of(enterpriseQuery.getPageCurr(), enterpriseQuery.getPageSize()));
+        return R.ok(page);
+        }else {
+            Page<TEnterpriseUserApplication> page = enterpriseUserApplicationService.lambdaQuery().page(Page.of(enterpriseQuery.getPageCurr(), enterpriseQuery.getPageSize()));
+            return R.ok(page);
+        }
+    }
+
+
+    @ApiOperation(tags = {"后台-申请表单-集团用户"},value = "备注")
+    @PostMapping(value = "/remark")
+    public AjaxResult pass(@RequestBody PassDto passDto) {
+        // 用户id
+        TEnterpriseUserApplication byId = enterpriseUserApplicationService.getById(passDto.getId());
+        byId.setRemark(passDto.getRemark());
+
+        enterpriseUserApplicationService.updateById(byId);
+        return AjaxResult.success();
+    }
+
+    @ApiOperation(tags = {"后台-申请表单-集团用户"},value = "备注")
+    @DeleteMapping(value = "/delete")
+    public AjaxResult delete(String ids) {
+        String[] split = ids.split(",");
+        for (String s : split) {
+            enterpriseUserApplicationService.removeById(s);
+        }
+        return AjaxResult.success();
+
     }
 
 }
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 29dd21b..e62316b 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
@@ -1,12 +1,18 @@
 package com.ruoyi.other.controller;
 
 
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.BasePage;
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.order.api.feignClient.OrderClient;
 import com.ruoyi.other.api.domain.TActivity;
 import com.ruoyi.other.api.domain.TGoods;
 import com.ruoyi.other.api.dto.AdvertisingDTO;
+import com.ruoyi.other.api.dto.ExchangeDto;
 import com.ruoyi.other.api.dto.GoodsDTO;
 import com.ruoyi.other.service.TActivityService;
 import com.ruoyi.other.service.TAdvertisingService;
@@ -14,6 +20,8 @@
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
 
 /**
  * <p>
@@ -30,6 +38,12 @@
     private TGoodsService goodsService;
     @Autowired
     private TActivityService activityService;
+    @Resource
+    private TokenService tokenService;
+    @Resource
+    private AppUserClient appUserClient;
+    @Resource
+    private OrderClient orderClient;
 
 
 
@@ -62,7 +76,7 @@
 
 
     @GetMapping("/getInfo")
-    @ApiOperation(tags = {"管理后台-商品管理"},value = "商品查看详情")
+    @ApiOperation(tags = {"管理后台-商品管理","小程序-兑换商城"},value = "商品查看详情")
     public AjaxResult<TGoods> getInfo(Integer id) {
         return AjaxResult.ok(goodsService.getById(id));
     }
@@ -74,6 +88,45 @@
     public AjaxResult<PageInfo<TGoods>> pageList(@RequestBody GoodsDTO dto) {
         return AjaxResult.ok(goodsService.pageList(dto));
     }
+
+
+    @ApiOperation(tags = {"小程序-兑换商城"},value = "商品列表分页查询")
+    @PostMapping(value = "/app/pageList")
+    public AjaxResult<PageInfo<TGoods>> apppageList(BasePage basePage) {
+        return AjaxResult.ok(goodsService.pageList1(basePage));
+    }
+
+    @ApiOperation(tags = {"小程序-兑换商城"},value = "兑换商品")
+    @PostMapping(value = "/app/shop")
+    public AjaxResult<PageInfo<TGoods>> shop(@RequestBody ExchangeDto exchangeDto) {
+        //查询当前商品信息
+        TGoods good = goodsService.getById(exchangeDto.getGoodId());
+
+        //检查当前用户积分是否够
+        Long userId = tokenService.getLoginUserApplet().getUserId();
+        TAppUser user = appUserClient.getUserById(userId).getData();
+        if (user.getPoints()<good.getRedeemPoints()){
+            return AjaxResult.error("当前用户积分不足");
+        }
+        //检查当前用户是否到达兑换上限
+        Long count = orderClient.getExchangeById(exchangeDto.getGoodId(), userId).getData();
+        if (good.getLimitExchangeTimes()!=-1&&count>=good.getLimitExchangeTimes()){
+            return AjaxResult.error("当前用户已到达兑换上限");
+        }
+        //生成积分兑换成功的订单
+        orderClient.exchangeCreate(exchangeDto);
+
+        //如果是优惠卷,赠送优惠卷给用户
+
+
+
+
+        //生成消耗积分的记录
+        return AjaxResult.success();
+
+
+    }
+
     
     /**
      * 根据id获取商品信息
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TGoodsMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TGoodsMapper.java
index 2f73928..491b8ad 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TGoodsMapper.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TGoodsMapper.java
@@ -20,5 +20,6 @@
 public interface TGoodsMapper extends BaseMapper<TGoods> {
 
     List<TGoods> pageList(@Param("pageInfo")PageInfo<TGoods> pageInfo, @Param("req") GoodsDTO dto);
+    List<TGoods> pageList1(@Param("pageInfo")PageInfo<TGoods> pageInfo);
 
 }
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/query/PassDto.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/query/PassDto.java
new file mode 100644
index 0000000..70cad83
--- /dev/null
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/query/PassDto.java
@@ -0,0 +1,13 @@
+package com.ruoyi.other.query;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @date 2024/8/20 18:25
+ */
+@Data
+public class PassDto {
+    Integer id;
+    String remark;
+}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TGoodsService.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TGoodsService.java
index 99d40ec..d37be56 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TGoodsService.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TGoodsService.java
@@ -1,6 +1,7 @@
 package com.ruoyi.other.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.web.page.BasePage;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.other.api.domain.TGoods;
 import com.ruoyi.other.api.dto.GoodsDTO;
@@ -16,5 +17,6 @@
 public interface TGoodsService extends IService<TGoods> {
 
     PageInfo<TGoods> pageList(GoodsDTO dto);
+    PageInfo<TGoods> pageList1(BasePage basePage);
 
 }
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 f0de342..7372668 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
@@ -1,5 +1,6 @@
 package com.ruoyi.other.service.impl;
 
+import com.ruoyi.common.core.web.page.BasePage;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.order.api.feignClient.OrderClient;
 import com.ruoyi.other.api.domain.TGoods;
@@ -55,4 +56,37 @@
         pageInfo.setRecords(list);
         return pageInfo;
     }
+    @Override
+    public PageInfo<TGoods> pageList1(BasePage basePage) {
+        GoodsDTO dto = new GoodsDTO();
+        dto.setType(2);
+        dto.setStatus(1);
+        dto.setPageCurr(basePage.getPageCurr());
+        dto.setPageSize(basePage.getPageSize());
+        PageInfo<TGoods> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
+        List<TGoods> list = this.baseMapper.pageList1(pageInfo);
+
+        StringBuilder stringBuilder = new StringBuilder();
+        for (TGoods temp : list) {
+            stringBuilder.append(temp.getId()).append(",");
+        }
+        if (StringUtils.hasLength(stringBuilder)){
+            // 去除最后一个字符
+            stringBuilder.deleteCharAt(stringBuilder.length()-1);
+        }
+        if (list.isEmpty()) {
+            pageInfo.setRecords(list);
+            return pageInfo;
+        }
+        String string = stringBuilder.toString();
+        // 订单号加上商品类型
+        String res = string+"-"+dto.getType();
+
+        List<Integer> data = orderClient.getSalesCountByGoodsId(res).getData();
+        for (int i = 0; i < list.size(); i++) {
+            list.get(i).setSalesCount(data.get(i));
+        }
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
 }
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TAdvertisingMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TAdvertisingMapper.xml
index d3e5864..bc87ba2 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TAdvertisingMapper.xml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TAdvertisingMapper.xml
@@ -24,16 +24,16 @@
     <select id="pageList" resultType="com.ruoyi.other.api.domain.TAdvertising">
         select * from t_advertising
         <where>
-            <if test="req.name != null and req.name != ''">
-                AND  `name` LIKE concat('%',#{req.name}, '%')
+            <if test="req.title != null and req.title != ''">
+                AND  `name` LIKE concat('%',#{req.title}, '%')
             </if>
-            <if test="req.state == 1">
+            <if test="req.startState == 1">
                 AND  start_time >= NOW()
             </if>
-            <if test="req.state == 2">
+            <if test="req.startState == 2">
                 AND  start_time &lt;= NOW() AND end_time >= NOW()
             </if>
-            <if test="req.state == 3">
+            <if test="req.startState == 3">
                 AND  end_time &lt;= NOW()
             </if>
             AND del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml
index a602e33..552b98c 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml
@@ -50,4 +50,14 @@
         ORDER BY create_time DESC
     </select>
 
+    <select id="pageList1" resultType="com.ruoyi.other.api.domain.TGoods">
+        select * from t_goods
+        <where>
+            AND del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
+        </where>
+        ORDER BY
+        CASE WHEN `inventory` = 0 THEN 0 ELSE 1 END DESC,
+        `redeem_points` ASC;
+    </select>
+
 </mapper>
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mybatis-config.xml b/ruoyi-service/ruoyi-other/src/main/resources/mybatis-config.xml
index 7d487eb..53c5587 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/mybatis-config.xml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/mybatis-config.xml
@@ -10,7 +10,7 @@
         <setting name="cacheEnabled" value="true"/>
         <!-- 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。默认 false  -->
         <!-- <setting name="lazyLoadingEnabled" value="true"/> -->
-        <setting name="mapUnderscoreToCamelCase" value="false"/><!--是否将map下划线方式转为驼峰式命名-->
+        <setting name="mapUnderscoreToCamelCase" value="true"/><!--是否将map下划线方式转为驼峰式命名-->
         <!-- 当开启时,任何方法的调用都会加载该对象的所有属性。默认 false,可通过select标签的 fetchType来覆盖-->
         <!-- <setting name="aggressiveLazyLoading" value="false"/>-->
         <!--  Mybatis 创建具有延迟加载能力的对象所用到的代理工具,默认JAVASSIST -->

--
Gitblit v1.7.1