From 1916f55359bb6c8f34548c26767569b000decbfc Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期六, 10 八月 2024 18:10:58 +0800
Subject: [PATCH] 新增加系统管理部分功能接口

---
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/IPartnerService.java                                   |    2 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/SiteFallbackFactory.java                           |   34 +
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/RoleSiteFallbackFactory.java                                     |   11 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java                                                    |   42 +
 ruoyi-api/ruoyi-api-chargingPile/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports |    3 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPileNotification.java                       |    8 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java                                          |  360 +++-----------
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java                              |    6 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/RoleSiteClient.java                                          |   24 
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml                                               |    2 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleAddDto.java                                                 |   17 
 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml                                                        |   20 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java                      |    6 
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileMapper.xml                                      |    2 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java                                 |   34 +
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/UserSiteFallbackFactory.java                                     |   11 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java                           |   27 
 ruoyi-modules/ruoyi-system/pom.xml                                                                                                   |   18 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java                                               |    3 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileNotificationService.java                  |   12 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/query/GetSysUserList.java                                                  |   25 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java         |   69 ++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileNotificationMapper.java                    |   14 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileNotificationController.java            |   37 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleUpdateDto.java                                              |   14 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java                                      |    2 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/UserSiteClient.java                                          |   24 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java                     |   15 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java                                                    |   61 --
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RoleInfoVo.java                                                  |   14 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java                                          |  247 +++++-----
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java                                       |    3 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java                              |    2 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java                        |    2 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java                                                  |    3 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java                              |   15 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java                                |   27 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java                                       |   61 ++
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/PartnerMapper.xml                                            |    2 
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileNotificationMapper.xml                          |   21 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java                                          |   30 +
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserSiteController.java                                          |   25 +
 42 files changed, 805 insertions(+), 550 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/SiteFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/SiteFallbackFactory.java
new file mode 100644
index 0000000..106e23b
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/SiteFallbackFactory.java
@@ -0,0 +1,34 @@
+package com.ruoyi.chargingPile.api.factory;
+
+import com.ruoyi.chargingPile.api.feignClient.SiteClient;
+import com.ruoyi.chargingPile.api.model.Site;
+import com.ruoyi.common.core.domain.R;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * 充电桩服务降级处理
+ * 
+ * @author ruoyi
+ */
+@Component
+public class SiteFallbackFactory implements FallbackFactory<SiteClient>
+{
+    private static final Logger log = LoggerFactory.getLogger(SiteFallbackFactory.class);
+
+    @Override
+    public SiteClient create(Throwable throwable) {
+        log.error("站点调用失败:{}", throwable.getMessage());
+        return new SiteClient() {
+    
+            @Override
+            public R<List<Site>> getSiteByIds(List<Integer> ids) {
+                return R.fail("根据id集合获取站点数据调用失败:" + throwable.getMessage());
+            }
+        };
+    }
+}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java
new file mode 100644
index 0000000..92fb25a
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java
@@ -0,0 +1,27 @@
+package com.ruoyi.chargingPile.api.feignClient;
+
+import com.ruoyi.chargingPile.api.factory.SiteFallbackFactory;
+import com.ruoyi.chargingPile.api.model.Site;
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/10 14:38
+ */
+@FeignClient(contextId = "SiteClient", value = ServiceNameConstants.CONTRACT_SERVICE, fallbackFactory = SiteFallbackFactory.class)
+public interface SiteClient {
+	
+	/**
+	 * 根据id集合获取数据
+	 * @param ids
+	 * @return
+	 */
+	@PostMapping("/site/getSiteByIds")
+	R<List<Site>> getSiteByIds(@RequestBody List<Integer> ids);
+}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPileNotification.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPileNotification.java
index 3fd2438..23a5d14 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPileNotification.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPileNotification.java
@@ -35,10 +35,18 @@
     @ApiModelProperty(value = "站点id")
     @TableField("site_id")
     private Integer siteId;
+    
+    @ApiModelProperty(value = "站点名称")
+    @TableField(exist = false)
+    private String siteName;
 
     @ApiModelProperty(value = "充电桩id")
     @TableField("charging_pile_id")
     private Integer chargingPileId;
+    
+    @ApiModelProperty(value = "通知电话")
+    @TableField("phone")
+    private String phone;
 
     @ApiModelProperty(value = "通知内容")
     @TableField("content")
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-api/ruoyi-api-chargingPile/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index e4d9cf2..7d5f8b3 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -1 +1,2 @@
-com.ruoyi.chargingPile.api.factory.ChargingPileFallbackFactory
\ No newline at end of file
+com.ruoyi.chargingPile.api.factory.ChargingPileFallbackFactory
+com.ruoyi.chargingPile.api.factory.SiteFallbackFactory
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/RoleSiteFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/RoleSiteFallbackFactory.java
index 2fd74a2..c2e0853 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/RoleSiteFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/RoleSiteFallbackFactory.java
@@ -1,6 +1,7 @@
 package com.ruoyi.other.api.factory;
 
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.TRoleSite;
 import com.ruoyi.other.api.feignClient.RoleSiteClient;
 import com.ruoyi.other.api.feignClient.UserSiteClient;
 import org.slf4j.Logger;
@@ -28,6 +29,16 @@
             public R<List<Integer>> getSiteIds(Long roleId) {
                 return R.fail("获取角色站点失败:" + throwable.getMessage());
             }
+    
+            @Override
+            public R addRoleSite(List<TRoleSite> roleSites) {
+                return R.fail("添加角色站点失败:" + throwable.getMessage());
+            }
+    
+            @Override
+            public R delRoleSite(Long roleId) {
+                return R.fail("删除角色站点失败:" + throwable.getMessage());
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/UserSiteFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/UserSiteFallbackFactory.java
index 8b5c1d9..7e63bb3 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/UserSiteFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/UserSiteFallbackFactory.java
@@ -1,6 +1,7 @@
 package com.ruoyi.other.api.factory;
 
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.TUserSite;
 import com.ruoyi.other.api.feignClient.UserSiteClient;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -27,6 +28,16 @@
             public R<List<Integer>> getSiteIds(Long userId) {
                 return R.fail("获取用户站点失败:" + throwable.getMessage());
             }
+    
+            @Override
+            public R addUserSite(List<TUserSite> userSite) {
+                return R.fail("添加用户站点失败:" + throwable.getMessage());
+            }
+    
+            @Override
+            public R delUserSite(Long userId) {
+                return R.fail("删除用户站点失败:" + throwable.getMessage());
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/RoleSiteClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/RoleSiteClient.java
index 55cd966..82af5f7 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/RoleSiteClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/RoleSiteClient.java
@@ -2,10 +2,13 @@
 
 import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.TRoleSite;
 import com.ruoyi.other.api.factory.RoleSiteFallbackFactory;
 import com.ruoyi.other.api.factory.UserSiteFallbackFactory;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
@@ -23,6 +26,23 @@
 	 * @param roleId
 	 * @return
 	 */
-	@GetMapping("/t-user-site/getSiteIds")
-	R<List<Integer>> getSiteIds(@RequestParam("roleId") Long roleId);
+	@GetMapping("/t-role-site/getSiteIds")
+	R<List<Integer>> getSiteIds(Long roleId);
+	
+	
+	/**
+	 * 添加角色站点数据
+	 * @param roleSites
+	 * @return
+	 */
+	@PostMapping("/t-role-site/addRoleSite")
+	R addRoleSite(List<TRoleSite> roleSites);
+	
+	/**
+	 * 删除角色站点数据
+	 * @param roleId
+	 * @return
+	 */
+	@DeleteMapping("/t-role-site/delRoleSite")
+	R delRoleSite(Long roleId);
 }
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/UserSiteClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/UserSiteClient.java
index 57d0450..790f7fa 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/UserSiteClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/UserSiteClient.java
@@ -2,9 +2,13 @@
 
 import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.TUserSite;
 import com.ruoyi.other.api.factory.UserSiteFallbackFactory;
+import org.apache.ibatis.annotations.Delete;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
@@ -23,5 +27,23 @@
 	 * @return
 	 */
 	@GetMapping("/t-user-site/getSiteIds")
-	R<List<Integer>> getSiteIds(@RequestParam("userId") Long userId);
+	R<List<Integer>> getSiteIds(Long userId);
+	
+	
+	/**
+	 * 添加用户站点关系数据
+	 * @param userSite
+	 * @return
+	 */
+	@PostMapping("/t-user-site/getSiteIds")
+	R addUserSite(List<TUserSite> userSite);
+	
+	
+	/**
+	 * 删除用户站点数据
+	 * @param userId
+	 * @return
+	 */
+	@DeleteMapping("/t-user-site/delUserSite")
+	R delUserSite(Long userId);
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java
index 3602929..ee2f671 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java
@@ -1,11 +1,13 @@
 package com.ruoyi.system.api.domain;
 
+import java.util.List;
 import java.util.Set;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.core.annotation.Excel;
@@ -77,20 +79,9 @@
     /** 角色菜单权限 */
     @TableField(exist = false)
     private Set<String> permissions;
-
-    /** 车辆数据权限:1=所有数据 2=已租 3=未租 4=已租(仅自己负责的合同) 5=无数据权限 */
-    private Integer carDataAuth;
-
-    /** 车务数据权限:1=所有数据 2=已租 3=未租 4=已租(仅自己负责的合同) 5=无数据权限 */
-    private Integer carTrainOperAuth;
-
-    /** 合同数据权限:1=所有数据 2=仅自己负责的合同 3=无数据权限 */
-    private Integer contractDataAuth;
-
-    /** 公司id */
-    private Integer companyId;
-
-
+    @ApiModelProperty(value = "站点名称")
+    @TableField(exist = false)
+    private List<String> siteNames;
 
     public SysRole()
     {
@@ -100,38 +91,6 @@
     public SysRole(Long roleId)
     {
         this.roleId = roleId;
-    }
-
-    public Integer getCarDataAuth() {
-        return carDataAuth;
-    }
-
-    public void setCarDataAuth(Integer carDataAuth) {
-        this.carDataAuth = carDataAuth;
-    }
-
-    public Integer getCarTrainOperAuth() {
-        return carTrainOperAuth;
-    }
-
-    public void setCarTrainOperAuth(Integer carTrainOperAuth) {
-        this.carTrainOperAuth = carTrainOperAuth;
-    }
-
-    public Integer getContractDataAuth() {
-        return contractDataAuth;
-    }
-
-    public void setContractDataAuth(Integer contractDataAuth) {
-        this.contractDataAuth = contractDataAuth;
-    }
-
-    public Integer getCompanyId() {
-        return companyId;
-    }
-
-    public void setCompanyId(Integer companyId) {
-        this.companyId = companyId;
     }
 
     public Long getRoleId()
@@ -278,7 +237,15 @@
     {
         this.permissions = permissions;
     }
-
+    
+    public List<String> getSiteNames() {
+        return siteNames;
+    }
+    
+    public void setSiteNames(List<String> siteNames) {
+        this.siteNames = siteNames;
+    }
+    
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java
index dbebc60..91df803 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java
@@ -113,7 +113,7 @@
     /**
      * 角色类型 1=平台 2=公司 3=门店 4=修理厂
      */
-    @ApiModelProperty(value = "角色类型 1=平台 2=公司 3=门店 4=修理厂")
+    @ApiModelProperty(value = "角色类型 1=平台 2=合作商")
     private Integer roleType;
 
     @Excel(name = "密码修改时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
@@ -124,6 +124,20 @@
 
     @ApiModelProperty(value = "备注")
     private String remark;
+    
+    @ApiModelProperty(value = "充电站")
+    @TableField(exist = false)
+    private List<String> siteNames;
+    
+    @ApiModelProperty(value = "充电站id", required = true)
+    @TableField(exist = false)
+    private List<Integer> siteIds;
+    
+    @ApiModelProperty(value = "角色")
+    @TableField(exist = false)
+    private List<String> roleNames;
+    
+    
 
     @Override
     public String getRemark() {
@@ -365,6 +379,32 @@
     {
         this.roleId = roleId;
     }
+    
+    
+    public List<String> getSiteNames() {
+        return siteNames;
+    }
+    
+    public void setSiteNames(List<String> siteNames) {
+        this.siteNames = siteNames;
+    }
+    
+    public List<String> getRoleNames() {
+        return roleNames;
+    }
+    
+    public List<Integer> getSiteIds() {
+        return siteIds;
+    }
+    
+    public void setSiteIds(List<Integer> siteIds) {
+        this.siteIds = siteIds;
+    }
+    
+    public void setRoleNames(List<String> roleNames) {
+        this.roleNames = roleNames;
+    }
+    
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml
index 3c7a1b4..dd3928c 100644
--- a/ruoyi-modules/ruoyi-system/pom.xml
+++ b/ruoyi-modules/ruoyi-system/pom.xml
@@ -106,6 +106,24 @@
                 </exclusion>
             </exclusions>
         </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-chargingPile</artifactId>
+		    <version>3.6.2</version>
+		    <scope>compile</scope>
+	    </dependency>
+	    <dependency>
+		    <groupId>io.seata</groupId>
+		    <artifactId>seata-all</artifactId>
+		    <version>1.6.1</version>
+		    <scope>compile</scope>
+	    </dependency>
 
     </dependencies>
 
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
index 59337ac..b22299a 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
@@ -12,8 +12,14 @@
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.chargingPile.api.feignClient.SiteClient;
+import com.ruoyi.chargingPile.api.model.Site;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.web.page.BasePage;
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.other.api.domain.TRoleSite;
+import com.ruoyi.other.api.feignClient.RoleSiteClient;
 import com.ruoyi.system.api.model.GetSysRoleByIds;
 import com.ruoyi.system.domain.SysMenus;
 import com.ruoyi.system.domain.SysRoleMenu;
@@ -27,6 +33,7 @@
 import com.ruoyi.system.service.ISysRoleService;
 import com.ruoyi.system.service.ISysUserRoleService;
 import com.ruoyi.system.service.ISysUserService;
+import io.seata.spring.annotation.GlobalTransactional;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -55,72 +62,75 @@
 @Api(tags = "角色模块")
 public class SysRoleController extends BaseController
 {
-    @Autowired
+    @Resource
     private ISysRoleService roleService;
 
-    @Autowired
+    @Resource
     private ISysUserService userService;
 
-    @Autowired
+    @Resource
     private ISysDeptService deptService;
 
     @Resource
     private SysRoleMenuMapper sysRoleMenuMapper;
 
-    @Autowired
+    @Resource
     private ISysUserRoleService sysUserRoleService;
-
 
     @Resource
     private SysMenuMapper menuMapper;
-
-    @ApiOperation("获取所有角色信息根据公司id")
+    
+    @Resource
+    private RoleSiteClient roleSiteClient;
+    
+    @Resource
+    private SiteClient siteClient;
+    
+    
+    
+    
+    @ApiOperation(value = "获取角色列表", tags = {"管理后台-系统用户管理"})
     @GetMapping("/list")
-    public AjaxResult list(Integer companyId)
-    {
-        SysRole role = new SysRole();
-        role.setCompanyId(companyId);
-        List<SysRole> list = roleService.selectRoleList(role);
+    public AjaxResult list() {
+        List<SysRole> list = roleService.list(new LambdaQueryWrapper<SysRole>().eq(SysRole::getDelFlag, 0).eq(SysRole::getStatus, 0));
         return AjaxResult.success(list);
     }
-
-
-
-    @ApiOperation("获取所有角色信息根据公司id--分页")
+    
+    
+    
+    @ResponseBody
     @GetMapping("/listPage")
-    public AjaxResult listPage(Integer companyId,int pageNumber,int pageSize)
-    {
-        PageInfo<SysRole> pageInfo = new PageInfo<>(pageNumber, pageSize);
-
-        PageInfo<SysRole> page = roleService.page(pageInfo, new LambdaQueryWrapper<SysRole>().eq(SysRole::getCompanyId, companyId).ne(SysRole::getRoleId,20));
+    @ApiOperation(value = "获取角色列表", tags = {"管理后台-角色管理"})
+    public AjaxResult listPage(String name, BasePage basePage) {
+        PageInfo<SysRole> pageInfo = new PageInfo<>(basePage.getPageCurr(), basePage.getPageSize());
+        LambdaQueryWrapper<SysRole> wrapper = new LambdaQueryWrapper<SysRole>().eq(SysRole::getStatus, 0).eq(SysRole::getDelFlag, 0);
+        if(StringUtils.isNotEmpty(name)){
+            wrapper.like(SysRole::getRoleName, name);
+        }
+    
+        PageInfo<SysRole> page = roleService.page(pageInfo, wrapper.orderByDesc(SysRole::getCreateTime));
+        for (SysRole record : page.getRecords()) {
+            List<Integer> data = roleSiteClient.getSiteIds(record.getRoleId()).getData();
+            List<Site> sites = siteClient.getSiteByIds(data).getData();
+            List<String> collect = sites.stream().map(Site::getName).collect(Collectors.toList());
+            record.setSiteNames(collect);
+        }
         return AjaxResult.success(page);
     }
-
-
-    @ApiOperation("角色启用停用")
-    @GetMapping("/roleStart")
-    public AjaxResult roleStart(Long roleId)
-    {
-        SysRole role = roleService.selectRoleById(roleId);
-        if(role.getStatus().equals("1")){
-            role.setStatus("0");
-        }else {
-            role.setStatus("1");
-        }
-        return AjaxResult.success(roleService.updateRole(role));
-    }
-
-
-
-    @ApiOperation("添加角色")
+    
+    
+    
+    
+    @ResponseBody
     @PostMapping("/roleAdd")
+    @ApiOperation(value = "添加角色", tags = {"管理后台-角色管理"})
+    @GlobalTransactional(rollbackFor = Exception.class)//分布式事务
     public AjaxResult roleAdd(@Validated @RequestBody RoleAddDto dto)
     {
         SysRole role = new SysRole();
         role.setRoleName(dto.getRoleName());
         long count = roleService.count(Wrappers.lambdaQuery(SysRole.class)
-                    .eq(SysRole::getRoleName,dto.getRoleName())
-                    .eq(SysRole::getCompanyId,dto.getCompanyId()));
+                    .eq(SysRole::getRoleName,dto.getRoleName()));
         if(count>0){
             return AjaxResult.error("角色已存在,请重新输入");
         }
@@ -130,36 +140,29 @@
         }
         role.setMenuIds(dto.getMenuIds().toArray((new Long[dto.getMenuIds().size()])));
         // 添加角色
-        role.setCompanyId(dto.getCompanyId());
-        role.setCarDataAuth(dto.getCarDataAuth());
-        role.setCarTrainOperAuth(dto.getCarTrainOperAuth());
-        role.setContractDataAuth(dto.getContractDataAuth());
+        role.setRemark(dto.getRemark());
         role.setCreateBy(SecurityUtils.getUsername());
         role.setCreateTime(new Date());
         roleService.insertRole(role);
-//        ArrayList<SysRoleMenu> sysRoleMenus = new ArrayList<>();
-//        List<Long> menuIds = dto.getMenuIds();
-//        for (Long menuId : menuIds) {
-//            SysRoleMenu sysRoleMenu = new SysRoleMenu();
-//            sysRoleMenu.setMenuId(menuId);
-//            sysRoleMenu.setRoleId(role.getRoleId());
-//            sysRoleMenus.add(sysRoleMenu);
-//        }
-//        sysRoleMenuMapper.batchRoleMenu(sysRoleMenus);
+        //添加站点权限
+        List<TRoleSite> roleSites = new ArrayList<>();
+        for (Integer siteId : dto.getSiteIds()) {
+            TRoleSite roleSite = new TRoleSite();
+            roleSite.setRoleId(role.getRoleId().intValue());
+            roleSite.setSiteId(siteId);
+            roleSites.add(roleSite);
+        }
+        roleSiteClient.addRoleSite(roleSites);
         return AjaxResult.success();
     }
 
 
-    @ApiOperation("角色详情")
     @GetMapping("/roleInfo")
-    public AjaxResult roleInfo( @RequestParam Long id)
-    {
+    @ApiOperation(value = "角色详情", tags = {"管理后台-角色管理"})
+    public AjaxResult roleInfo( @RequestParam Long id) {
         SysRole role = roleService.selectRoleById(id);
         RoleInfoVo roleInfoVo = new RoleInfoVo();
         roleInfoVo.setRoleId(role.getRoleId());
-        roleInfoVo.setCarDataAuth(role.getCarDataAuth());
-        roleInfoVo.setCarTrainOperAuth(role.getCarTrainOperAuth());
-        roleInfoVo.setContractDataAuth(role.getContractDataAuth());
         roleInfoVo.setRoleName(role.getRoleName());
         // 获取当前角色的菜单id
         List<Long> menusId = sysRoleMenuMapper.selectList(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, id)).stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList());
@@ -184,66 +187,29 @@
             List<SysMenus> collect = s2.stream().filter(e -> e.getParentId().equals(menus.getMenuId())).collect(Collectors.toList());
             menus.setChildren(collect);
         }
-
         roleInfoVo.setMenus(menusId);
+        roleInfoVo.setRemark(role.getRemark());
+        List<Integer> siteIds = roleSiteClient.getSiteIds(role.getRoleId()).getData();
+        List<Site> sites = siteClient.getSiteByIds(siteIds).getData();
+        List<String> siteNames = sites.stream().map(Site::getName).collect(Collectors.toList());
+        roleInfoVo.setSiteNames(siteNames);
+        roleInfoVo.setSiteIds(siteIds);
         return AjaxResult.success(roleInfoVo);
     }
 
 
-    @ApiOperation("用户获取权限菜单")
-    @GetMapping("/roleInfoFromUserId")
-    public AjaxResult roleInfoFromUserId( @RequestParam Long userId)
-    {
-        SysUserRole one = sysUserRoleService.getOne(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
-        Long id =one.getRoleId();
-        // 获取当前角色的菜单id
-        List<Long> menusId = sysRoleMenuMapper.selectList(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, id)).stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList());
-        if(menusId.size()==0){
-            return AjaxResult.success(new ArrayList<>());
-        }
-        if(id!=1){
-            menusId = menusId.stream().filter(e->e!=1074 && e!=1075 && e!=1193 && e!=1194).collect(Collectors.toList());
-        }
-        //获取当前的权限菜单
-        List<SysMenus> all = menuMapper.getAllInIds(menusId);
-        // 第三级
-        List<SysMenus> s3 = all.stream().filter(e -> e.getMenuType().equals("F")).collect(Collectors.toList());
-        // 第二级
-        List<SysMenus> s2 = all.stream().filter(e -> e.getMenuType().equals("C")).collect(Collectors.toList());
-        // 第一级
-        List<SysMenus> s1 = all.stream().filter(e -> e.getMenuType().equals("M")).collect(Collectors.toList());
 
-        for (SysMenus menus : s2) {
-            List<SysMenus> collect = s3.stream().filter(e -> e.getParentId().equals(menus.getMenuId())).collect(Collectors.toList());
-            menus.setChildren(collect);
-        }
-
-        for (SysMenus menus : s1) {
-            List<SysMenus> collect = s2.stream().filter(e -> e.getParentId().equals(menus.getMenuId())).collect(Collectors.toList());
-            menus.setChildren(collect);
-        }
-
-        return AjaxResult.success(s1);
-    }
-
-
-
-
-    @ApiOperation("编辑角色")
     @PostMapping("/roleUpdate")
-    public AjaxResult roleUpdate(@Validated @RequestBody RoleUpdateDto dto)
-    {
+    @ApiOperation(value = "编辑角色", tags = {"管理后台-角色管理"})
+    @GlobalTransactional(rollbackFor = Exception.class)//分布式事务
+    public AjaxResult roleUpdate(@Validated @RequestBody RoleUpdateDto dto) {
         SysRole role = new SysRole();
         role.setRoleName(dto.getRoleName());
-        SysRole one = roleService.getOne(new LambdaQueryWrapper<SysRole>().eq(SysRole::getRoleId, dto.getRoleId()));
-        List<SysRole> sysRoles = roleService.isExitUpdate(dto.getRoleName(),dto.getRoleId(),one.getCompanyId());
-        if(sysRoles.size()>0){
+        SysRole one = roleService.getOne(new LambdaQueryWrapper<SysRole>().eq(SysRole::getRoleName, dto.getRoleName()));
+        if(null != one && !one.getRoleId().equals(dto.getRoleId())){
             return AjaxResult.error("角色已存在,请重新输入");
         }
-        // 编辑角色
-        role.setCarDataAuth(dto.getCarDataAuth());
-        role.setCarTrainOperAuth(dto.getCarTrainOperAuth());
-        role.setContractDataAuth(dto.getContractDataAuth());
+        role.setRemark(dto.getRemark());
         role.setUpdateBy(SecurityUtils.getUsername());
         role.setUpdateTime(new Date());
         role.setRoleId(dto.getRoleId());
@@ -272,110 +238,21 @@
             sysRoleMenus.add(sysRoleMenu);
         }
         sysRoleMenuMapper.batchRoleMenu(sysRoleMenus);
+        //删除旧站点数据
+        roleSiteClient.delRoleSite(dto.getRoleId());
+        //添加站点权限
+        List<TRoleSite> roleSites = new ArrayList<>();
+        for (Integer siteId : dto.getSiteIds()) {
+            TRoleSite roleSite = new TRoleSite();
+            roleSite.setRoleId(role.getRoleId().intValue());
+            roleSite.setSiteId(siteId);
+            roleSites.add(roleSite);
+        }
+        roleSiteClient.addRoleSite(roleSites);
         return AjaxResult.success();
     }
 
 
-
-
-
-
-
-
-
-
-
-
-    @Log(title = "角色管理", businessType = BusinessType.EXPORT)
-    @RequiresPermissions("system:role:export")
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, SysRole role)
-    {
-        List<SysRole> list = roleService.selectRoleList(role);
-        ExcelUtil<SysRole> util = new ExcelUtil<SysRole>(SysRole.class);
-        util.exportExcel(response, list, "角色数据");
-    }
-
-    /**
-     * 根据角色编号获取详细信息
-     */
-    @RequiresPermissions("system:role:query")
-    @GetMapping(value = "/{roleId}")
-    public AjaxResult getInfo(@PathVariable Long roleId)
-    {
-        roleService.checkRoleDataScope(roleId);
-        return success(roleService.selectRoleById(roleId));
-    }
-
-    /**
-     * 新增角色
-     */
-    @RequiresPermissions("system:role:add")
-    @Log(title = "角色管理", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@Validated @RequestBody SysRole role)
-    {
-        if (!roleService.checkRoleNameUnique(role))
-        {
-            return error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在");
-        }
-        else if (!roleService.checkRoleKeyUnique(role))
-        {
-            return error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
-        }
-        role.setCreateBy(SecurityUtils.getUsername());
-        return toAjax(roleService.insertRole(role));
-
-    }
-
-    /**
-     * 修改保存角色
-     */
-    @RequiresPermissions("system:role:edit")
-    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@Validated @RequestBody SysRole role)
-    {
-        roleService.checkRoleAllowed(role);
-        roleService.checkRoleDataScope(role.getRoleId());
-        if (!roleService.checkRoleNameUnique(role))
-        {
-            return error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在");
-        }
-        else if (!roleService.checkRoleKeyUnique(role))
-        {
-            return error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");
-        }
-        role.setUpdateBy(SecurityUtils.getUsername());
-        return toAjax(roleService.updateRole(role));
-    }
-
-    /**
-     * 修改保存数据权限
-     */
-    @RequiresPermissions("system:role:edit")
-    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
-    @PutMapping("/dataScope")
-    public AjaxResult dataScope(@RequestBody SysRole role)
-    {
-        roleService.checkRoleAllowed(role);
-        roleService.checkRoleDataScope(role.getRoleId());
-        return toAjax(roleService.authDataScope(role));
-    }
-
-    /**
-     * 状态修改
-     */
-    @RequiresPermissions("system:role:edit")
-    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
-    @PutMapping("/changeStatus")
-    public AjaxResult changeStatus(@RequestBody SysRole role)
-    {
-        roleService.checkRoleAllowed(role);
-        roleService.checkRoleDataScope(role.getRoleId());
-        role.setUpdateBy(SecurityUtils.getUsername());
-        return toAjax(roleService.updateRoleStatus(role));
-    }
 
     /**
      * 删除角色
@@ -383,39 +260,14 @@
     @RequiresPermissions("system:role:remove")
     @Log(title = "角色管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{roleIds}")
-    public AjaxResult remove(@PathVariable Long[] roleIds)
-    {
+    @ApiOperation(value = "删除角色", tags = {"管理后台-角色管理"})
+    public AjaxResult remove(@PathVariable Long[] roleIds) {
         return toAjax(roleService.deleteRoleByIds(roleIds));
     }
 
+    
 
 
-    /**
-     * 停用角色
-     */
-    @RequiresPermissions("system:role:stop")
-    @Log(title = "角色管理", businessType = BusinessType.STOP)
-    @PutMapping("/stop")
-    public AjaxResult stop(@RequestBody Long roleId)
-    {
-        SysRole sysRole = roleService.selectRoleById(roleId);
-        if(sysRole.getStatus().equals("0")){
-            sysRole.setStatus("1");
-        }else {
-            sysRole.setStatus("0");
-        }
-        return toAjax(roleService.updateRole(sysRole));
-    }
-
-    /**
-     * 获取角色选择框列表
-     */
-    @RequiresPermissions("system:role:query")
-    @GetMapping("/optionselect")
-    public AjaxResult optionselect()
-    {
-        return success(roleService.selectRoleAll());
-    }
     /**
      * 查询已分配用户角色列表
      */
@@ -440,39 +292,7 @@
         return getDataTable(list);
     }
 
-    /**
-     * 取消授权用户
-     */
-    @RequiresPermissions("system:role:edit")
-    @Log(title = "角色管理", businessType = BusinessType.GRANT)
-    @PutMapping("/authUser/cancel")
-    public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole)
-    {
-        return toAjax(roleService.deleteAuthUser(userRole));
-    }
-
-    /**
-     * 批量取消授权用户
-     */
-    @RequiresPermissions("system:role:edit")
-    @Log(title = "角色管理", businessType = BusinessType.GRANT)
-    @PutMapping("/authUser/cancelAll")
-    public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds)
-    {
-        return toAjax(roleService.deleteAuthUsers(roleId, userIds));
-    }
-
-    /**
-     * 批量选择用户授权
-     */
-    @RequiresPermissions("system:role:edit")
-    @Log(title = "角色管理", businessType = BusinessType.GRANT)
-    @PutMapping("/authUser/selectAll")
-    public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds)
-    {
-        roleService.checkRoleDataScope(roleId);
-        return toAjax(roleService.insertAuthUsers(roleId, userIds));
-    }
+ 
 
     /**
      * 获取对应角色部门树列表
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
index dac579f..20f1847 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -9,8 +9,13 @@
 import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.chargingPile.api.feignClient.SiteClient;
+import com.ruoyi.chargingPile.api.model.Site;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.other.api.domain.TUserSite;
+import com.ruoyi.other.api.feignClient.RoleSiteClient;
+import com.ruoyi.other.api.feignClient.UserSiteClient;
 import com.ruoyi.system.domain.dto.IndexDto;
 import com.ruoyi.system.domain.vo.UserRoleVO;
 import com.ruoyi.system.api.model.*;
@@ -18,8 +23,12 @@
 import com.ruoyi.system.domain.dto.AddCompanyUserDto;
 import com.ruoyi.system.domain.vo.CompanyUserVo;
 import com.ruoyi.system.domain.vo.TCompanyToUserVo;
+import com.ruoyi.system.query.GetSysUserList;
 import com.ruoyi.system.service.*;
+import io.seata.spring.annotation.GlobalTransactional;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.BeanUtils;
@@ -52,37 +61,51 @@
 @RequestMapping("/user")
 @Api(tags = "用户信息")
 public class SysUserController extends BaseController {
-    @Autowired
+    @Resource
     private ISysUserService userService;
 
-    @Autowired
+    @Resource
     private ISysRoleService roleService;
 
-    @Autowired
+    @Resource
     private ISysDeptService deptService;
 
-    @Autowired
+    @Resource
     private ISysPostService postService;
 
-    @Autowired
+    @Resource
     private ISysPermissionService permissionService;
 
-    @Autowired
+    @Resource
     private ISysConfigService configService;
 
-    @Autowired
+    @Resource
     private ISysUserRoleService userRoleService;
 
-    @Autowired
+    @Resource
     private ISysUserRoleService sysUserRoleService;
+    
+    @Resource
+    private UserSiteClient userSiteClient;
+    
+    @Resource
+    private RoleSiteClient roleSiteClient;
+    
+    @Resource
+    private SiteClient siteClient;
+    
+    
+    
+    
+    
     /**
      * 获取用户列表
      */
     @GetMapping("/list")
-    @ApiOperation("管理员列表")
-    public AjaxResult list(String phonenumber, int pageNumber, int pageSize) {
-        PageInfo<SysUser> pageInfo = new PageInfo<>(pageNumber, pageSize);
-        PageInfo<SysUser> page = userService.getList(pageInfo, phonenumber);
+    @ApiOperation(value = "获取系统用户列表", tags = {"管理后台-系统用户管理", "管理后台-角色管理"})
+    public AjaxResult list(GetSysUserList getSysUserList) {
+        PageInfo<SysUser> pageInfo = new PageInfo<>(getSysUserList.getPageCurr(), getSysUserList.getPageSize());
+        PageInfo<SysUser> page = userService.getList(pageInfo, getSysUserList);
         return AjaxResult.success(page);
     }
 
@@ -91,8 +114,9 @@
      */
     @Log(title = "用户管理", businessType = BusinessType.INSERT)
     @PostMapping("/add")
-    @ApiOperation("添加管理员")
-    public AjaxResult add(@Validated @RequestBody SysUser user) {
+    @ApiOperation(value = "添加系统用户", tags = {"管理后台-系统用户管理"})
+    @GlobalTransactional(rollbackFor = Exception.class)//分布式事务
+    public AjaxResult add(@RequestBody SysUser user) {
         user.setUserName(user.getPhonenumber());
         if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){
             user.setNickName(user.getPhonenumber());
@@ -100,24 +124,59 @@
         if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) {
             return error("手机号已开通账号");
         }
+        if (StringUtils.isNotEmpty(user.getUserName()) && !userService.checkUserNameUnique(user)) {
+            return error("登录账号重复");
+        }
         user.setCreateBy(SecurityUtils.getUsername());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
         user.setRoleType(1);
-        int i = userService.insertUser(user);
+        userService.insertUser(user);
         SysUserRole sysUserRole = new SysUserRole();
         sysUserRole.setRoleId(user.getRoleId());
         sysUserRole.setUserId(user.getUserId());
-        int i1 = userRoleService.insertSysUserRole(sysUserRole);
-        return AjaxResult.success(i1);
+        userRoleService.insertSysUserRole(sysUserRole);
+        List<Integer> siteIds = user.getSiteIds();
+        List<TUserSite> userSites = new ArrayList<>();
+        for (Integer siteId : siteIds) {
+            TUserSite userSite = new TUserSite();
+            userSite.setUserId(user.getUserId().intValue());
+            userSite.setSiteId(siteId);
+            userSites.add(userSite);
+        }
+        userSiteClient.addUserSite(userSites);
+        return AjaxResult.success();
     }
-
-
+    
+    
+    @GetMapping("/verifyUserNameRepeat/{username}")
+    @ApiOperation(value = "校验账号是否重复", tags = {"管理后台-系统用户管理"})
+    public AjaxResult verifyUserNameRepeat(@PathVariable String username){
+        SysUser user = new SysUser();
+        user.setUserName(username);
+        if (StringUtils.isNotEmpty(username) && !userService.checkUserNameUnique(user)) {
+            return error("账号不可重复");
+        }
+        return success();
+    }
+    
+    @GetMapping("/getRoleSiteName/{roleId}")
+    @ApiOperation(value = "获取角色对应的站点名称", tags = {"管理后台-系统用户管理"})
+    public AjaxResult<List<String>> getRoleSiteName(@PathVariable Integer roleId){
+        List<Integer> ids = roleSiteClient.getSiteIds(roleId.longValue()).getData();
+        List<Site> data = siteClient.getSiteByIds(ids).getData();
+        List<String> siteNames = data.stream().map(Site::getName).collect(Collectors.toList());
+        return AjaxResult.success(siteNames);
+    }
+    
+    
+    
+    
     /**
      * 根据用户编号获取详细信息
      */
-    @ApiOperation("管理员详情")
-    @GetMapping(value = {"/", "/{userId}"})
-    public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) {
+    @ApiOperation(value = "获取用户详情", tags = {"管理后台-系统用户管理"})
+    @GetMapping("/getInfo/{userId}")
+    public AjaxResult getInfo(@PathVariable Long userId) {
         userService.checkUserDataScope(userId);
         AjaxResult ajax = AjaxResult.success();
         List<SysRole> roles = roleService.selectRoleAll();
@@ -125,6 +184,11 @@
         ajax.put("posts", postService.selectPostAll());
         if (StringUtils.isNotNull(userId)) {
             SysUser sysUser = userService.selectUserById(userId);
+            List<Integer> siteIds = userSiteClient.getSiteIds(userId).getData();
+            sysUser.setSiteIds(siteIds);
+            List<Site> data = siteClient.getSiteByIds(siteIds).getData();
+            List<String> siteNames = data.stream().map(Site::getName).collect(Collectors.toList());
+            sysUser.setSiteNames(siteNames);
             ajax.put(AjaxResult.DATA_TAG, sysUser);
             ajax.put("postIds", postService.selectPostListByUserId(userId));
             ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()));
@@ -138,9 +202,9 @@
      */
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping("/update")
-    @ApiOperation("编辑管理员")
+    @ApiOperation(value = "编辑系统用户", tags = {"管理后台-系统用户管理"})
+    @GlobalTransactional(rollbackFor = Exception.class)//分布式事务
     public AjaxResult edit(@Validated @RequestBody SysUser user) {
-
         user.setUserName(user.getPhonenumber());
         if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){
             user.setNickName(user.getPhonenumber());
@@ -162,6 +226,13 @@
         if (StringUtils.isNotEmpty(user.getPhonenumber()) && (Objects.nonNull(sysUser) && !user.getUserId().equals(sysUser.getUserId()) )) {
             return error("手机号已开通账号");
         }
+        sysUser = userService.getOne(Wrappers.lambdaQuery(SysUser.class)
+                .eq(SysUser::getUserName, user.getUserName())
+                .eq(SysUser::getDelFlag,0)
+                .last("LIMIT 1"));
+        if (StringUtils.isNotEmpty(user.getUserName()) && (Objects.nonNull(sysUser) && !user.getUserId().equals(sysUser.getUserId()) )) {
+            return error("登录账号重复");
+        }
         user.setUpdateBy(SecurityUtils.getUsername());
         if (user.getPassword() != null && !"".equals(user.getPassword())) {
             user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
@@ -173,7 +244,20 @@
         user.setPassword(null);
         user.setUpdateBy(SecurityUtils.getUsername());
         user.setUpdateTime(new Date());
-        return toAjax(userService.updateUser(user));
+        userService.updateUser(user);
+    
+        //删除旧的站点数据后添加新的
+        userSiteClient.delUserSite(user.getUserId());
+        List<Integer> siteIds = user.getSiteIds();
+        List<TUserSite> userSites = new ArrayList<>();
+        for (Integer siteId : siteIds) {
+            TUserSite userSite = new TUserSite();
+            userSite.setUserId(user.getUserId().intValue());
+            userSite.setSiteId(siteId);
+            userSites.add(userSite);
+        }
+        userSiteClient.addUserSite(userSites);
+        return success();
     }
 
 
@@ -182,7 +266,7 @@
      */
     @Log(title = "用户管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{userIds}")
-    @ApiOperation("删除管理员")
+    @ApiOperation(value = "删除系统用户", tags = {"管理后台-系统用户管理"})
     public AjaxResult remove(@PathVariable Long[] userIds) {
         if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) {
             return error("当前用户不能删除");
@@ -190,98 +274,25 @@
         return toAjax(userService.deleteUserByIds(userIds));
     }
 
-
-    @Log(title = "账号管理", businessType = BusinessType.INSERT)
-    @PostMapping("/addCompanyUser")
-    @ApiOperation("账号管理--添加账号")
-    @Transactional(propagation = Propagation.REQUIRES_NEW)
-    public AjaxResult addCompanyUser(@Validated @RequestBody AddCompanyUserDto dto) {
-        SysUser user = dto.getSysUser();
-        if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) {
-            return error("手机号已存在,请重新输入");
-        }
-        user.setCreateBy(SecurityUtils.getUsername());
-        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
-        user.setRoleType(3);
-        user.setUserName(user.getPhonenumber());
-        if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){
-            user.setNickName(user.getPhonenumber());
-        }
-        int i = userService.insertUser(user);
-        if (i > 0) {
-            // 添加role
-            SysUserRole sysUserRole = new SysUserRole();
-            sysUserRole.setRoleId(dto.getRoleId());
-            sysUserRole.setUserId(dto.getSysUser().getUserId());
-            userRoleService.insertSysUserRole(sysUserRole);
-        }
-        return AjaxResult.success();
-    }
-
-
-    @Log(title = "账号管理", businessType = BusinessType.INSERT)
-    @PostMapping("/companyUserInfo")
-    @ApiOperation("账号管理--账号详情")
-    @Transactional(propagation = Propagation.REQUIRES_NEW)
-    public AjaxResult companyUserInfo(@RequestParam Long userId) {
-        SysUser sysUser = userService.selectUserById(userId);
-        SysUserRole sysUserRole = userRoleService.getOne(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
-        CompanyUserVo companyUserVo = new CompanyUserVo();
-        companyUserVo.setRoleId(sysUserRole.getRoleId());
-        companyUserVo.setSysUser(sysUser);
-        return AjaxResult.success(companyUserVo);
-    }
-
-    @Log(title = "账号管理", businessType = BusinessType.INSERT)
-    @PostMapping("/updateCompanyUser")
-    @ApiOperation("账号管理--修改账号")
-    @Transactional(propagation = Propagation.REQUIRES_NEW)
-    public AjaxResult updateCompanyUser(@Validated @RequestBody AddCompanyUserDto dto) {
-        SysUser user = dto.getSysUser();
-
-        if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) {
-            return error("手机号已存在,请重新输入");
-        }
-        user.setUserName(user.getPhonenumber());
-        if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){
-            user.setNickName(user.getPhonenumber());
-        }
-        if (user.getPassword() != null && !"".equals(user.getPassword())) {
-            user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
-        }
-        user.setRoleType(1);
-        user.setUpdateBy(SecurityUtils.getUsername());
-        user.setUpdateTime(new Date());
-        int i = userService.updateUser(user);
-//        if (i > 0) {
-            // 原来的role
-            SysUserRole one = userRoleService.getOne(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, dto.getSysUser().getUserId()));
-            one.setRoleId(dto.getRoleId());
-            //更新新的role
-            userRoleService.updateSysUserRole(one);
-//        }
-        return AjaxResult.success();
-    }
+    
 
 
     @PostMapping("/shopUserStart")
-    @ApiOperation("账号管理--停用/启用")
-    public AjaxResult shopUserStart(Long userId) {
+    @ApiOperation(value = "账号管理--禁用/启用", tags = {"管理后台-系统用户管理"})
+    public AjaxResult shopUserStart(@RequestParam("userId") Long userId, @RequestParam("remark") String remark) {
         if (userId == null) {
             return AjaxResult.error("userId不能为空");
         }
         SysUser sysUser = userService.selectUserById(userId);
         if (sysUser.getStatus().equals("0")) {
             sysUser.setStatus("1");
+            sysUser.setRemark(remark);
         } else {
             sysUser.setStatus("0");
+            sysUser.setRemark("");
         }
         return toAjax(userService.updateUser(sysUser));
     }
-
-
-    @Autowired
-    private ISysUserRoleService iSysUserRoleService;
 
 
     @PostMapping("/getUserList")
@@ -454,32 +465,6 @@
     }
 
 
-    @Log(title = "用户管理", businessType = BusinessType.EXPORT)
-    @RequiresPermissions("system:user:export")
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, SysUser user) {
-        List<SysUser> list = userService.selectUserList(user);
-        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
-        util.exportExcel(response, list, "用户数据");
-    }
-
-    @PostMapping("/importTemplate")
-    public void importTemplate(HttpServletResponse response) throws IOException {
-        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
-        util.importTemplateExcel(response, "用户数据");
-    }
-
-    @Log(title = "用户管理", businessType = BusinessType.IMPORT)
-    @RequiresPermissions("system:user:import")
-    @PostMapping("/importData")
-    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
-        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
-        List<SysUser> userList = util.importExcel(file.getInputStream());
-        String operName = SecurityUtils.getUsername();
-        String message = userService.importUser(userList, updateSupport, operName);
-        return success(message);
-    }
-
     /**
      * 获取当前用户信息
      */
@@ -505,7 +490,6 @@
     /**
      * 注册用户信息
      */
-    @InnerAuth
     @PostMapping("/register")
     public R<Boolean> register(@RequestBody SysUser sysUser) {
         String username = sysUser.getUserName();
@@ -544,6 +528,7 @@
     @RequiresPermissions("system:user:edit")
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping("/resetPwd")
+    @ApiOperation(value = "重置密码", tags = {"管理后台-系统用户管理"})
     public AjaxResult resetPwd(@RequestBody SysUser user) {
         userService.checkUserAllowed(user);
         userService.checkUserDataScope(user.getUserId());
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleAddDto.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleAddDto.java
index 3ed8f21..ce244bc 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleAddDto.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleAddDto.java
@@ -9,19 +9,14 @@
 
 @Data
 public class RoleAddDto {
-    @ApiModelProperty("角色名称")
+    @ApiModelProperty(value = "角色名称", required = true)
     @NotBlank(message = "角色名称不能为空")
     private String roleName;
-    @ApiModelProperty("车辆数据权限:1=所有数据 2=已租 3=未租 4=已租(仅自己负责的合同) 5=无数据权限")
-    private Integer carDataAuth;
-    @ApiModelProperty("车务数据权限:1=所有数据 2=已租 3=未租 4=已租(仅自己负责的合同) 5=无数据权限")
-    private Integer carTrainOperAuth;
-    @ApiModelProperty("合同数据权限:1=所有数据 2=仅自己负责的合同 3=无数据权限")
-    private Integer contractDataAuth;
-    @ApiModelProperty("公司id")
-    @NotNull(message = "公司id不能为空")
-    private Integer companyId;
-    @ApiModelProperty("菜单id")
+    @ApiModelProperty(value = "站点id", required = true)
+    private List<Integer> siteIds;
+    @ApiModelProperty(value = "备注")
+    private String remark;
+    @ApiModelProperty(value = "菜单id", required = true)
     @NotNull(message = "菜单id不能为空")
     private List<Long> menuIds;
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleUpdateDto.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleUpdateDto.java
index c0374c4..3515054 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleUpdateDto.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleUpdateDto.java
@@ -10,15 +10,13 @@
 public class RoleUpdateDto {
     @ApiModelProperty("角色id")
     private Long roleId;
-    @ApiModelProperty("角色名称")
+    @ApiModelProperty(value = "角色名称",required = true)
     @NotBlank(message = "角色名称不能为空")
     private String roleName;
-    @ApiModelProperty("车辆数据权限:1=所有数据 2=已租 3=未租 4=已租(仅自己负责的合同) 5=无数据权限")
-    private Integer carDataAuth;
-    @ApiModelProperty("车务数据权限:1=所有数据 2=已租 3=未租 4=已租(仅自己负责的合同) 5=无数据权限")
-    private Integer carTrainOperAuth;
-    @ApiModelProperty("合同数据权限:1=所有数据 2=仅自己负责的合同 3=无数据权限")
-    private Integer contractDataAuth;
-    @ApiModelProperty("菜单id")
+    @ApiModelProperty(value = "站点id", required = true)
+    private List<Integer> siteIds;
+    @ApiModelProperty(value = "备注")
+    private String remark;
+    @ApiModelProperty(value = "菜单id", required = true)
     private List<Long> menuIds;
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RoleInfoVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RoleInfoVo.java
index cfd6915..a935fd0 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RoleInfoVo.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RoleInfoVo.java
@@ -13,13 +13,13 @@
 
     private String roleName;
 
-    @ApiModelProperty("车辆数据权限:1=所有数据 2=已租 3=未租 4=已租(仅自己负责的合同) 5=无数据权限")
-    private Integer carDataAuth;
-    @ApiModelProperty("车务数据权限:1=所有数据 2=已租 3=未租 4=已租(仅自己负责的合同) 5=无数据权限")
-    private Integer carTrainOperAuth;
-    @ApiModelProperty("合同数据权限:1=所有数据 2=仅自己负责的合同 3=无数据权限")
-    private Integer contractDataAuth;
-
     @ApiModelProperty("菜单id")
     private List<Long> menus;
+    
+    @ApiModelProperty(value = "备注")
+    private String remark;
+    @ApiModelProperty("站点id")
+    private List<Integer> siteIds;
+    @ApiModelProperty(value = "站点名称")
+    private List<String> siteNames;
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index 9d9cc62..74b10ed 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -5,6 +5,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.system.query.GetSysUserList;
 import org.apache.ibatis.annotations.Param;
 import com.ruoyi.system.api.domain.SysUser;
 
@@ -131,7 +132,7 @@
      */
     public SysUser checkEmailUnique(String email);
 
-    PageInfo<SysUser> getList(@Param("pageInfo") PageInfo<SysUser> pageInfo, @Param("phonenumber") String phonenumber);
+    List<SysUser> getList(@Param("pageInfo") PageInfo<SysUser> pageInfo, @Param("req") GetSysUserList getSysUserList);
 
     PageInfo<SysUser> getAllList(@Param("pageInfo") PageInfo<SysUser> pageInfo, @Param("ids") List<Integer> collect);
 
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/query/GetSysUserList.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/query/GetSysUserList.java
new file mode 100644
index 0000000..05c7100
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/query/GetSysUserList.java
@@ -0,0 +1,25 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/10 14:10
+ */
+@Data
+@ApiModel
+public class GetSysUserList extends BasePage {
+	@ApiModelProperty(value = "人员搜索")
+	private String search;
+	@ApiModelProperty(value = "充电站id")
+	private Integer siteId;
+	@ApiModelProperty(value = "角色id")
+	private List<Integer> roleIds;
+	@ApiModelProperty(value = "账户状态(0=正常,1=禁用)")
+	private Integer status;
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
index 3f08d28..c215705 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.query.GetSysUserList;
 
 /**
  * 用户 业务层
@@ -208,7 +209,7 @@
      */
     public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
 
-    PageInfo<SysUser> getList(PageInfo<SysUser> pageInfo, String phonenumber);
+    PageInfo<SysUser> getList(PageInfo<SysUser> pageInfo, GetSysUserList getSysUserList);
 
 
     PageInfo<SysUser> getAllList(PageInfo<SysUser> pageInfo, List<Integer> collect);
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
index fea5840..e5cc275 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
@@ -373,8 +373,7 @@
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int deleteRoleByIds(Long[] roleIds)
-    {
+    public int deleteRoleByIds(Long[] roleIds) {
         for (Long roleId : roleIds)
         {
             checkRoleAllowed(new SysRole(roleId));
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 50b929f..6b7e40e 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -1,16 +1,26 @@
 package com.ruoyi.system.service.impl;
 
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 import java.util.stream.Collectors;
+import javax.annotation.Resource;
 import javax.validation.Validator;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.chargingPile.api.feignClient.SiteClient;
+import com.ruoyi.chargingPile.api.model.Site;
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.other.api.feignClient.RoleSiteClient;
+import com.ruoyi.other.api.feignClient.UserSiteClient;
 import com.ruoyi.system.domain.SysPost;
 import com.ruoyi.system.domain.SysUserPost;
 import com.ruoyi.system.domain.SysUserRole;
+import com.ruoyi.system.query.GetSysUserList;
 import com.ruoyi.system.service.ISysConfigService;
+import com.ruoyi.system.service.ISysUserRoleService;
 import com.ruoyi.system.service.ISysUserService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -43,26 +53,41 @@
 {
     private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
 
-    @Autowired
+    @Resource
     private SysUserMapper userMapper;
 
-    @Autowired
+    @Resource
     private SysRoleMapper roleMapper;
 
-    @Autowired
+    @Resource
     private SysPostMapper postMapper;
 
-    @Autowired
+    @Resource
     private SysUserRoleMapper userRoleMapper;
 
-    @Autowired
+    @Resource
     private SysUserPostMapper userPostMapper;
 
-    @Autowired
+    @Resource
     private ISysConfigService configService;
 
-    @Autowired
+    @Resource
     protected Validator validator;
+    
+    @Resource
+    private ISysUserRoleService sysUserRoleService;
+    
+    @Resource
+    private RoleSiteClient roleSiteClient;
+    
+    @Resource
+    private UserSiteClient userSiteClient;
+    
+    @Resource
+    private SiteClient siteClient;
+    
+    
+    
 
     /**
      * 根据条件分页查询用户列表
@@ -547,8 +572,26 @@
     }
 
     @Override
-    public PageInfo<SysUser> getList(PageInfo<SysUser> pageInfo, String phonenumber) {
-        return this.baseMapper.getList(pageInfo,phonenumber);
+    public PageInfo<SysUser> getList(PageInfo<SysUser> pageInfo, GetSysUserList getSysUserList) {
+        List<SysUser> list = this.baseMapper.getList(pageInfo, getSysUserList);
+        for (SysUser sysUser : list) {
+            List<SysUserRole> list1 = sysUserRoleService.list(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, sysUser.getUserId()));
+            List<Integer> data1 = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
+            for (SysUserRole sysUserRole : list1) {
+                List<Integer> data = roleSiteClient.getSiteIds(sysUserRole.getRoleId()).getData();
+                data1.addAll(data);
+            }
+            Set<Integer> siteIds = new HashSet<>(data1);
+            List<Site> data = siteClient.getSiteByIds(siteIds.stream().collect(Collectors.toList())).getData();
+            List<String> siteNames = data.stream().map(Site::getName).collect(Collectors.toList());
+            sysUser.setSiteNames(siteNames);
+    
+            Set<Long> collect = list1.stream().map(SysUserRole::getRoleId).collect(Collectors.toSet());
+            List<SysRole> sysRoles = roleMapper.selectBatchIds(collect);
+            List<String> roleNames = sysRoles.stream().map(SysRole::getRoleName).collect(Collectors.toList());
+            sysUser.setRoleNames(roleNames);
+        }
+        return pageInfo.setRecords(list);
     }
 
     @Override
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index e7df625..2b11d94 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -125,10 +125,24 @@
 	</select>
     <select id="getList" resultType="com.ruoyi.system.api.domain.SysUser">
 		select *,nick_name nickName,login_date loginDate,create_time createTime,user_id userId from sys_user where 1=1
-		<if test="phonenumber !=null and phonenumber !=''">
-			and phonenumber like concat("%", #{phonenumber},"%")
+		<if test="req.search !=null and req.search !=''">
+			and (phonenumber like concat("%", #{phonenumber},"%") or nick_name like concat("%", #{phonenumber},"%"))
 		</if>
-		 and del_flag = '0' and roleType =1
+		<if test="null != req.siteId">
+			and user_id in (select user_id from t_user_site where site_id = #{req.siteId})
+		    and user_id in (select user_id from sys_user_role where role_id in (select role_id from t_role_site where site_id = #{req.siteId}))
+		</if>
+	    <if test="null != req.roleIds and req.roleIds.size() > 0">
+		    and user_id in (select user_id from sys_user_role where role_id in
+		    <foreach collection="req.roleIds" item="item" index="index" open="(" separator="," close=")">
+			    #{item}
+		    </foreach>
+		    )
+	    </if>
+		<if test="null != req.status">
+			and status = #{req.status}
+		</if>
+		and del_flag = '0' and roleType =1
 		order by create_time desc
 	</select>
 	<select id="getAllList" resultType="com.ruoyi.system.api.domain.SysUser">
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java
index 159f1f6..3346720 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java
@@ -43,7 +43,7 @@
 	@ResponseBody
 	@GetMapping("/getPartnerList")
 	@ApiOperation(value = "获取合作商列表", tags = {"管理后台-合作商管理"})
-	public AjaxResult<PageInfo<PartnerListDTO>> getPartnerList(@RequestBody GetPartnerList partnerList){
+	public AjaxResult<PageInfo<PartnerListDTO>> getPartnerList(GetPartnerList partnerList){
 		PageInfo<PartnerListDTO> list = partnerService.getPartnerList(partnerList);
 		return AjaxResult.success(list);
 	}
@@ -86,7 +86,7 @@
 	@ApiImplicitParams({
 			@ApiImplicitParam(value = "合作商id", name = "id", dataTypeClass = Integer.class, required = true)
 	})
-	public AjaxResult delPartner(@PathVariable("id") Integer id){
+	public AjaxResult delPartner(@PathVariable("id") Integer[] id){
 		return partnerService.delPartner(id);
 	}
 	
@@ -119,7 +119,7 @@
 	@ResponseBody
 	@GetMapping("/getPermissionConfiguration/{siteId}")
 	@ApiOperation(value = "获取合作商权限设置", tags = {"管理后台-站点管理"})
-	public AjaxResult<GetPermissionConfigurationDTO> getPermissionConfiguration(@PathVariable("siteId") Integer siteId, @RequestParam("partnerId") Integer partnerId){
+	public AjaxResult<GetPermissionConfigurationDTO> getPermissionConfiguration(@PathVariable("siteId") Integer siteId, Integer partnerId){
 		GetPermissionConfigurationDTO permissionConfiguration = partnerService.getPermissionConfiguration(siteId, partnerId);
 		return AjaxResult.success(permissionConfiguration);
 	}
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 6b9c599..88c1b86 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
@@ -17,6 +17,7 @@
 import com.ruoyi.chargingPile.service.ISiteService;
 import com.ruoyi.chargingPile.service.TChargingGunService;
 import com.ruoyi.chargingPile.service.TChargingPileService;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.GeodesyUtil;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
@@ -60,21 +61,19 @@
 	
 	@Resource
 	private RoleSiteClient roleSiteClient;
-	
-	
-	
-	
-	
-
-	@Autowired
+	@Resource
 	private TChargingPileService chargingPileService;
-	@Autowired
+	@Resource
 	private TChargingGunService chargingGunService;
 
+	
+	
+	
+	
 	@ResponseBody
 	@GetMapping("/getSiteList")
 	@ApiOperation(value = "获取站点列表", tags = {"管理后台-站点管理"})
-	public AjaxResult<PageInfo<GetSiteListDTO>> getSiteList(@RequestBody GetSiteList siteList){
+	public AjaxResult<PageInfo<GetSiteListDTO>> getSiteList(GetSiteList siteList){
 		PageInfo<GetSiteListDTO> list = siteService.getSiteList(siteList);
 		return AjaxResult.success(list);
 	}
@@ -129,7 +128,7 @@
 	@ApiImplicitParams({
 			@ApiImplicitParam(value = "站点id", name = "id", dataTypeClass = Integer.class, required = true)
 	})
-	public AjaxResult delSite(@PathVariable Integer id){
+	public AjaxResult delSite(@PathVariable Integer[] id){
 		return siteService.delSite(id);
 	}
 	
@@ -149,7 +148,7 @@
 	
 	@ResponseBody
 	@GetMapping("/getAllSiteList")
-	@ApiOperation(value = "获取所有站点数据", tags = {"管理后台-充电桩信息"})
+	@ApiOperation(value = "获取所有站点数据", tags = {"管理后台-充电桩信息", "管理后台-系统用户管理", "管理后台-角色管理", "管理后台-系统通知"})
 	public AjaxResult<List<Site>> getAllSiteList(){
 		//校验当前账户站点权限
 		SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData();
@@ -172,4 +171,17 @@
 		List<Site> list = siteService.list(wrapper.orderByDesc(Site::getCreateTime));
 		return AjaxResult.success(list);
 	}
+	
+	
+	/**
+	 * 获取站点数据集合
+	 * @param ids
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/getSiteByIds")
+	public R<List<Site>> getSiteByIds(@RequestBody List<Integer> ids){
+		List<Site> sites = siteService.listByIds(ids);
+		return R.ok(sites);
+	}
 }
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 58d7ba1..9698cc6 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
@@ -110,7 +110,7 @@
 	@ApiImplicitParams({
 			@ApiImplicitParam(value = "充电桩id", name = "id", dataTypeClass = Integer.class, required = true)
 	})
-	public AjaxResult delChargingPile(@PathVariable Integer id){
+	public AjaxResult delChargingPile(@PathVariable Integer[] id){
 		return chargingPileService.delChargingPile(id);
 	}
 	
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 1827a95..9f7c8cd 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
@@ -1,8 +1,15 @@
 package com.ruoyi.chargingPile.controller;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.chargingPile.api.model.TChargingPileNotification;
+import com.ruoyi.chargingPile.service.TChargingPileNotificationService;
+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 io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
 
 /**
  * <p>
@@ -15,6 +22,32 @@
 @RestController
 @RequestMapping("/t-charging-pile-notification")
 public class TChargingPileNotificationController {
+	
+	@Resource
+	private TChargingPileNotificationService chargingPileNotificationService;
+	
+	
+	
+	
+	@ResponseBody
+	@GetMapping("/chargingPileNotificationPageList")
+	@ApiOperation(value = "获取系统通知列表数据", tags = {"管理后台-系统通知"})
+	public AjaxResult<PageInfo<TChargingPileNotification>> chargingPileNotificationPageList(Integer siteId, BasePage basePage){
+		PageInfo<TChargingPileNotification> pageInfo = chargingPileNotificationService.chargingPileNotificationPageList(siteId, basePage);
+		return AjaxResult.success(pageInfo);
+	}
+	
+	
+	@ResponseBody
+	@DeleteMapping("/delChargingPileNotification/{id}")
+	@ApiOperation(value = "删除系统通知", tags = {"管理后台-系统通知"})
+	public AjaxResult delChargingPileNotification(@PathVariable Long id){
+		TChargingPileNotification chargingPileNotification = chargingPileNotificationService.getById(id);
+		chargingPileNotification.setDelFlag(1);
+		chargingPileNotificationService.updateById(chargingPileNotification);
+		return AjaxResult.success();
+	}
+
 
 }
 
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileNotificationMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileNotificationMapper.java
index 5cbc4f4..d093e4c 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileNotificationMapper.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileNotificationMapper.java
@@ -2,6 +2,11 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.chargingPile.api.model.TChargingPileNotification;
+import com.ruoyi.common.core.web.page.PageInfo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Set;
 
 /**
  * <p>
@@ -12,5 +17,14 @@
  * @since 2024-08-08
  */
 public interface TChargingPileNotificationMapper extends BaseMapper<TChargingPileNotification> {
+	
+	
+	/**
+	 * 获取系统通知列表数据
+	 * @param pageInfo
+	 * @param siteIds
+	 * @return
+	 */
+	List<TChargingPileNotification> chargingPileNotificationPageList(PageInfo<TChargingPileNotification> pageInfo, @Param("siteIds") Set<Integer> siteIds);
 
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/IPartnerService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/IPartnerService.java
index 4821f5d..bab0bb9 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/IPartnerService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/IPartnerService.java
@@ -58,7 +58,7 @@
 	 * 删除合作商
 	 * @param id
 	 */
-	AjaxResult delPartner(Integer id);
+	AjaxResult delPartner(Integer[] id);
 	
 	/**
 	 * 重置密码
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
index 857b0c5..4a8dd0e 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
@@ -49,7 +49,7 @@
 	 * @param id
 	 * @return
 	 */
-	AjaxResult delSite(Integer id);
+	AjaxResult delSite(Integer[] id);
 	
 	
 	/**
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileNotificationService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileNotificationService.java
index 077787b..28287dd 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileNotificationService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileNotificationService.java
@@ -2,6 +2,8 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.chargingPile.api.model.TChargingPileNotification;
+import com.ruoyi.common.core.web.page.BasePage;
+import com.ruoyi.common.core.web.page.PageInfo;
 
 /**
  * <p>
@@ -12,5 +14,13 @@
  * @since 2024-08-08
  */
 public interface TChargingPileNotificationService extends IService<TChargingPileNotification> {
-
+	
+	
+	/**
+	 * 获取系统通知列表数据
+	 * @param siteId
+	 * @param basePage
+	 * @return
+	 */
+	PageInfo<TChargingPileNotification> chargingPileNotificationPageList(Integer siteId, BasePage basePage);
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java
index 7ca7a8d..b348dd8 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java
@@ -61,7 +61,7 @@
 	 * @param id
 	 * @return
 	 */
-	AjaxResult delChargingPile(Integer id);
+	AjaxResult delChargingPile(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 b3fceeb..8c79e0e 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
@@ -268,32 +268,33 @@
 	
 	/**
 	 * 删除合作商
-	 * @param id 合作商id
+	 * @param ids 合作商id
 	 */
 	@Override
 	@GlobalTransactional(rollbackFor = Exception.class)//分布式事务
-	public AjaxResult delPartner(Integer id) {
+	public AjaxResult delPartner(Integer[] ids) {
 		//查询有无关联数据
 		//站点
-		long count = siteService.count(new LambdaQueryWrapper<Site>().eq(Site::getPartnerId, id).eq(Site::getDelFlag, 0));
+		long count = siteService.count(new LambdaQueryWrapper<Site>().in(Site::getPartnerId, Arrays.asList(ids)).eq(Site::getDelFlag, 0));
 		if(count > 0){
 			return AjaxResult.error("当前合作商有关联站点,删除失败!");
 		}
 		//充电桩
-		long count1 = chargingPileService.count(new LambdaQueryWrapper<TChargingPile>().eq(TChargingPile::getPartnerId, id).eq(TChargingPile::getDelFlag, 0));
+		long count1 = chargingPileService.count(new LambdaQueryWrapper<TChargingPile>().eq(TChargingPile::getPartnerId, Arrays.asList(ids)).eq(TChargingPile::getDelFlag, 0));
 		if(count1 > 0){
 			return AjaxResult.error("当前合作商有关联充电桩,删除失败!");
 		}
-		
-		Partner partner = this.getById(id);
-		if(null == partner){
-			return AjaxResult.error("删除失败");
+		for (Integer id : ids) {
+			Partner partner = this.getById(id);
+			if(null == partner){
+				return AjaxResult.error("删除失败");
+			}
+			partner.setDelFlag(true);
+			this.updateById(partner);
+			SysUser user = sysUserClient.queryUserByUserName(partner.getAccount()).getData();
+			user.setDelFlag("2");
+			sysUserClient.updateUser(user);
 		}
-		partner.setDelFlag(true);
-		this.updateById(partner);
-		SysUser user = sysUserClient.queryUserByUserName(partner.getAccount()).getData();
-		user.setDelFlag("2");
-		sysUserClient.updateUser(user);
 		return AjaxResult.success();
 	}
 	
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
index 5e6ae0e..fe3d696 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -30,6 +30,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -196,20 +197,22 @@
 	
 	/**
 	 * 删除站点
-	 * @param id 站点id
+	 * @param ids 站点id
 	 * @return
 	 */
 	@Override
-	public AjaxResult delSite(Integer id) {
+	public AjaxResult delSite(Integer[] ids) {
 		//查询是否有关联数据
 		//充电桩
-		long count1 = chargingPileService.count(new LambdaQueryWrapper<TChargingPile>().eq(TChargingPile::getSiteId, id).eq(TChargingPile::getDelFlag, 0));
+		long count1 = chargingPileService.count(new LambdaQueryWrapper<TChargingPile>().eq(TChargingPile::getSiteId, Arrays.asList(ids)).eq(TChargingPile::getDelFlag, 0));
 		if(count1 > 0){
 			return AjaxResult.error("该站点有关联充电桩,删除失败!");
 		}
-		Site site = this.getById(id);
-		site.setDelFlag(true);
-		this.updateById(site);
+		for (Integer id : ids) {
+			Site site = this.getById(id);
+			site.setDelFlag(true);
+			this.updateById(site);
+		}
 		return AjaxResult.success();
 	}
 
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java
index 9d88276..e88f663 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java
@@ -105,7 +105,8 @@
         if(ajaxResult.isError()){
             return ajaxResult;
         }
-        long count = this.count(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getCode, dto.getCode()).eq(TChargingGun::getDelFlag, 0));
+        long count = this.count(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getCode, dto.getCode())
+                .eq(TChargingGun::getDelFlag, 0));
         if(count > 0){
             return AjaxResult.error("接口编码已存在");
         }
@@ -129,7 +130,8 @@
         if(ajaxResult.isError()){
             return ajaxResult;
         }
-        TChargingGun one = this.getOne(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getCode, dto.getCode()).eq(TChargingGun::getDelFlag, 0));
+        TChargingGun one = this.getOne(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getCode, dto.getCode())
+                .eq(TChargingGun::getDelFlag, 0));
         if(null != one && !dto.getId().equals(one.getId())){
             return AjaxResult.error("接口编码已存在");
         }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java
index f29d988..b38a11d 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java
@@ -1,10 +1,26 @@
 package com.ruoyi.chargingPile.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.chargingPile.api.model.Site;
 import com.ruoyi.chargingPile.api.model.TChargingPileNotification;
+import com.ruoyi.chargingPile.domain.SiteMenu;
 import com.ruoyi.chargingPile.mapper.TChargingPileNotificationMapper;
+import com.ruoyi.chargingPile.service.IPartnerService;
 import com.ruoyi.chargingPile.service.TChargingPileNotificationService;
+import com.ruoyi.common.core.web.page.BasePage;
+import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.other.api.feignClient.RoleSiteClient;
+import com.ruoyi.other.api.feignClient.UserSiteClient;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.feignClient.SysUserClient;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 
 /**
  * <p>
@@ -16,5 +32,56 @@
  */
 @Service
 public class TChargingPileNotificationServiceImpl extends ServiceImpl<TChargingPileNotificationMapper, TChargingPileNotification> implements TChargingPileNotificationService {
-
+	
+	@Resource
+	private SysUserClient sysUserClient;
+	
+	@Resource
+	private IPartnerService partnerService;
+	
+	@Resource
+	private UserSiteClient userSiteClient;
+	
+	@Resource
+	private RoleSiteClient roleSiteClient;
+	
+	
+	
+	
+	
+	
+	/**
+	 * 获取系统通知列表数据
+	 * @param siteId
+	 * @param basePage
+	 * @return
+	 */
+	@Override
+	public PageInfo<TChargingPileNotification> chargingPileNotificationPageList(Integer siteId, BasePage basePage) {
+		//校验当前账户站点权限
+		Set<Integer> siteIds = null;
+		if(null == siteId){
+			SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData();
+			Integer roleType = sysUser.getRoleType();
+			Integer objectId = sysUser.getObjectId();
+			LambdaQueryWrapper<Site> wrapper = new LambdaQueryWrapper<Site>().eq(Site::getDelFlag, 0);
+			if(2 == roleType){
+				siteIds = partnerService.authSite(objectId, SiteMenu.SITE_LIST);
+			}else{
+				//非管理员需要根据角色和用户配置查询允许的站点数据
+				if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+					List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
+					List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData();
+					data.addAll(data1);
+					siteIds = new HashSet<>(data);
+				}
+			}
+		}else{
+			siteIds = new HashSet<>(siteId);
+		}
+		PageInfo<TChargingPileNotification> pageInfo = new PageInfo<>(basePage.getPageCurr(), basePage.getPageSize());
+		List<TChargingPileNotification> list = this.baseMapper.chargingPileNotificationPageList(pageInfo, siteIds);
+		pageInfo.setRecords(list);
+		return pageInfo;
+	}
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
index ea3e370..babc84f 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -26,6 +26,7 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -183,20 +184,22 @@
 	
 	/**
 	 * 删除充电桩
-	 * @param id
+	 * @param ids
 	 * @return
 	 */
 	@Override
-	public AjaxResult delChargingPile(Integer id) {
+	public AjaxResult delChargingPile(Integer[] ids) {
 		//检查是否有关联数据
 		//接口
-		long count = chargingGunService.count(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, id).eq(TChargingGun::getDelFlag, 0));
+		long count = chargingGunService.count(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, Arrays.asList(ids)).eq(TChargingGun::getDelFlag, 0));
 		if(count > 0){
 			return AjaxResult.error("该充电桩有关联的接口数据,删除失败!");
 		}
-		TChargingPile chargingPile = this.getById(id);
-		chargingPile.setDelFlag(true);
-		this.updateById(chargingPile);
+		for (Integer id : ids) {
+			TChargingPile chargingPile = this.getById(id);
+			chargingPile.setDelFlag(true);
+			this.updateById(chargingPile);
+		}
 		return AjaxResult.success();
 	}
 	
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/PartnerMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/PartnerMapper.xml
index 4efbd05..87bd1c9 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/PartnerMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/PartnerMapper.xml
@@ -38,6 +38,6 @@
 		<if test="null != item.roleId and '' != item.name">
 			and role_id =  #{item.roleId}
 		</if>
-		order by create_time desc limit #{item.pageCurr}, #{item.pageSize}
+		order by create_time desc
 	</select>
 </mapper>
\ No newline at end of file
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 855a4cd..79ce0b7 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
@@ -100,7 +100,7 @@
 				#{itemm}
 			</foreach>
 		</if>
-		order by a.sort desc, a.create_time desc limit #{item.pageCurr}, #{item.pageSize}
+		order by a.sort desc, a.create_time desc
 	</select>
 
 	<select id="pageList" resultType="com.ruoyi.chargingPile.api.vo.SiteVO">
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 2cab472..0029319 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
@@ -62,7 +62,7 @@
                 #{itemm}
             </foreach>
         </if>
-        order by a.create_time desc limit #{item.pageCurr}, #{item.pageSize}
+        order by a.create_time desc
     </select>
     
     
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileNotificationMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileNotificationMapper.xml
index 031175c..e35a362 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileNotificationMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileNotificationMapper.xml
@@ -7,6 +7,7 @@
         <id column="id" property="id" />
         <result column="site_id" property="siteId" />
         <result column="charging_pile_id" property="chargingPileId" />
+        <result column="phone" property="phone"/>
         <result column="content" property="content" />
         <result column="create_time" property="createTime" />
         <result column="del_flag" property="delFlag" />
@@ -17,4 +18,24 @@
         id, site_id, charging_pile_id, content, create_time, del_flag
     </sql>
 
+    
+    
+    <select id="chargingPileNotificationPageList" resultType="com.ruoyi.chargingPile.api.model.TChargingPileNotification">
+        select
+        a.id,
+        b.`name` as siteName,
+        a.phone,
+        a.content,
+        a.create_time as createTime
+        from t_charging_pile_notification a
+        left join t_site b on (a.site_id = b.id)
+        where a.del_flag = 0
+        <if test="null != siteIds">
+            and a.site_id in
+            <foreach collection="siteIds" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        order by a.create_time desc
+    </select>
 </mapper>
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java
index 9be842e..043a2cd 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java
@@ -26,15 +26,41 @@
 	@Resource
 	private TRoleSiteService roleSiteService;
 	
-	
+	/**
+	 * 查询角色站点数据
+	 * @param roleId
+	 * @return
+	 */
 	@ResponseBody
 	@GetMapping("/getSiteIds")
-	public R<List<Integer>> getSiteIds(@RequestParam("roleId") Long roleId){
+	public R<List<Integer>> getSiteIds(Long roleId){
 		List<TRoleSite> list = roleSiteService.list(new LambdaQueryWrapper<TRoleSite>().eq(TRoleSite::getRoleId, roleId));
 		List<Integer> collect = list.stream().map(TRoleSite::getSiteId).collect(Collectors.toList());
 		return R.ok(collect);
 	}
 	
+	/**
+	 * 添加角色站点数据
+	 * @param roleSites
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/getSiteIds")
+	public R addRoleSite(@RequestBody List<TRoleSite> roleSites){
+		roleSiteService.saveBatch(roleSites);
+		return R.ok();
+	}
 	
+	/**
+	 * 删除角色站点数据
+	 * @param roleId
+	 * @return
+	 */
+	@ResponseBody
+	@DeleteMapping("/delRoleSite/{roleId}")
+	public R delRoleSite(@PathVariable("roleId") Long roleId){
+		roleSiteService.remove(new LambdaQueryWrapper<TRoleSite>().eq(TRoleSite::getRoleId, roleId));
+		return R.ok();
+	}
 }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserSiteController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserSiteController.java
index 2c9b26b..686f3b9 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserSiteController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserSiteController.java
@@ -34,12 +34,35 @@
 	 */
 	@ResponseBody
 	@GetMapping("/getSiteIds")
-	public R<List<Integer>> getSiteIds(@RequestParam("userId") Long userId){
+	public R<List<Integer>> getSiteIds(Long userId){
 		List<TUserSite> list = userSiteService.list(new LambdaQueryWrapper<TUserSite>().eq(TUserSite::getUserId, userId));
 		List<Integer> collect = list.stream().map(TUserSite::getSiteId).collect(Collectors.toList());
 		return R.ok(collect);
 	}
 	
 	
+	/**
+	 * 添加用户站点数据
+	 * @param userSite
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/addUserSite")
+	public R addUserSite(@RequestBody List<TUserSite> userSite){
+		userSiteService.saveBatch(userSite);
+		return R.ok();
+	}
+	
+	/**
+	 * 删除用户对应的站点数据
+	 * @param userId
+	 * @return
+	 */
+	@ResponseBody
+	@DeleteMapping("/delUserSite/{userId}")
+	public R delUserSite(@PathVariable Long userId){
+		userSiteService.remove(new LambdaQueryWrapper<TUserSite>().eq(TUserSite::getUserId, userId));
+		return R.ok();
+	}
 }
 

--
Gitblit v1.7.1