Browse Source

Merge remote-tracking branch 'origin/master'

609324174@qq.com 4 years ago
parent
commit
4f68507f6a
32 changed files with 457 additions and 104 deletions
  1. 2 5
      common/src/main/java/com/huaxu/model/Permission.java
  2. 196 0
      common/src/main/java/com/huaxu/util/Snowflake.java
  3. 1 1
      user_auth/src/main/java/com/huaxu/controller/UserController.java
  4. 1 1
      user_auth/src/main/java/com/huaxu/dto/UserDto.java
  5. 1 1
      user_auth/src/main/java/com/huaxu/service/UserService.java
  6. 11 5
      user_auth/src/main/java/com/huaxu/service/impl/UserServiceImpl.java
  7. 1 1
      user_auth/src/main/resources/mapper/UserMapper.xml
  8. 1 1
      user_center/src/main/java/com/huaxu/config/ResourceServerConfig.java
  9. 24 10
      user_center/src/main/java/com/huaxu/controller/AreaController.java
  10. 8 1
      user_center/src/main/java/com/huaxu/controller/OrgController.java
  11. 6 0
      user_center/src/main/java/com/huaxu/controller/RoleController.java
  12. 1 1
      user_center/src/main/java/com/huaxu/controller/TenantController.java
  13. 8 0
      user_center/src/main/java/com/huaxu/controller/UserGroupController.java
  14. 2 1
      user_center/src/main/java/com/huaxu/dao/AreaMapper.java
  15. 15 0
      user_center/src/main/java/com/huaxu/dto/AreaDto.java
  16. 4 4
      user_center/src/main/java/com/huaxu/dto/LoginLogDto.java
  17. 4 4
      user_center/src/main/java/com/huaxu/dto/OperateLogDto.java
  18. 3 1
      user_center/src/main/java/com/huaxu/entity/TenantEntity.java
  19. 2 1
      user_center/src/main/java/com/huaxu/service/AreaService.java
  20. 8 0
      user_center/src/main/java/com/huaxu/service/OrgService.java
  21. 1 0
      user_center/src/main/java/com/huaxu/service/RoleService.java
  22. 1 1
      user_center/src/main/java/com/huaxu/service/UserGroupService.java
  23. 26 2
      user_center/src/main/java/com/huaxu/service/impl/AreaServiceImpl.java
  24. 20 6
      user_center/src/main/java/com/huaxu/service/impl/OrgServiceImpl.java
  25. 21 10
      user_center/src/main/java/com/huaxu/service/impl/RoleServiceImpl.java
  26. 8 10
      user_center/src/main/java/com/huaxu/service/impl/TenantServiceImpl.java
  27. 19 8
      user_center/src/main/java/com/huaxu/service/impl/UserGroupServiceImpl.java
  28. 2 2
      user_center/src/main/resources/mapper/AreaMapper.xml
  29. 2 2
      user_center/src/main/resources/mapper/RoleMapper.xml
  30. 7 20
      user_center/src/main/resources/mapper/TenantMapper.xml
  31. 34 0
      user_center/src/test/com/huaxu/test/TestEXCEL.java
  32. 17 5
      user_center/src/test/com/huaxu/test/TestOrgTree.java

+ 2 - 5
common/src/main/java/com/huaxu/model/Permission.java

@@ -48,11 +48,8 @@ public class Permission {
     @ApiModelProperty(value="是否是菜单",position = 11)
     @ApiModelProperty(value="是否是菜单",position = 11)
     private Boolean isMenu;
     private Boolean isMenu;
 
 
-    @ApiModelProperty(value="所属超级管理员",position = 12)
-    private Boolean isSuperAdmin;
-
-    @ApiModelProperty(value="所属站点",position = 13)
-    private Boolean isSite;
+    @ApiModelProperty(value="是否是菜单",position = 12)
+    private Integer roleId;
 
 
     @JsonIgnore
     @JsonIgnore
     @ApiModelProperty(value="状态",hidden = true)
     @ApiModelProperty(value="状态",hidden = true)

+ 196 - 0
common/src/main/java/com/huaxu/util/Snowflake.java

@@ -0,0 +1,196 @@
+package com.huaxu.util;
+
+import org.apache.commons.lang3.RandomUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.SystemUtils;
+
+import java.net.Inet4Address;
+import java.net.UnknownHostException;
+
+/**
+ * Twitter_Snowflake
+ * SnowFlake的结构如下(每部分用-分开):
+ * 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000
+ * 1位标识,由于long基本类型在Java中是带符号的,最高位是符号位,正数是0,负数是1,所以id一般是正数,最高位是0
+ * 41位时间截(毫秒级),注意,41位时间截不是存储当前时间的时间截,而是存储时间截的差值(当前时间截 - 开始时间截)
+ * 得到的值),这里的的开始时间截,一般是我们的id生成器开始使用的时间,由我们程序来指定的(如下下面程序IdWorker类的startTime属性)。41位的时间截,可以使用69年,年T = (1L << 41) / (1000L * 60 * 60 * 24 * 365) = 69
+ * 10位的数据机器位,可以部署在1024个节点,包括5位datacenterId和5位workerId
+ * 12位序列,毫秒内的计数,12位的计数顺序号支持每个节点每毫秒(同一机器,同一时间截)产生4096个ID序号
+ * 加起来刚好64位,为一个Long型。
+ * SnowFlake的优点是,整体上按照时间自增排序,并且整个分布式系统内不会产生ID碰撞(由数据中心ID和机器ID作区分),并且效率较高,经测试,SnowFlake每秒能够产生26万ID左右。
+ */
+
+public class Snowflake {
+
+    // ==============================Fields===========================================
+    /** 开始时间截 (2015-01-01) */
+    private final long twepoch = 1489111610226L;
+
+    /** 机器id所占的位数 */
+    private final long workerIdBits = 5L;
+
+    /** 数据标识id所占的位数 */
+    private final long dataCenterIdBits = 5L;
+
+    /** 支持的最大机器id,结果是31 (这个移位算法可以很快的计算出几位二进制数所能表示的最大十进制数) */
+    private final long maxWorkerId = -1L ^ (-1L << workerIdBits);
+
+    /** 支持的最大数据标识id,结果是31 */
+    private final long maxDataCenterId = -1L ^ (-1L << dataCenterIdBits);
+
+    /** 序列在id中占的位数 */
+    private final long sequenceBits = 12L;
+
+    /** 机器ID向左移12位 */
+    private final long workerIdShift = sequenceBits;
+
+    /** 数据标识id向左移17位(12+5) */
+    private final long dataCenterIdShift = sequenceBits + workerIdBits;
+
+    /** 时间截向左移22位(5+5+12) */
+    private final long timestampLeftShift = sequenceBits + workerIdBits + dataCenterIdBits;
+
+    /** 生成序列的掩码,这里为4095 (0b111111111111=0xfff=4095) */
+    private final long sequenceMask = -1L ^ (-1L << sequenceBits);
+
+    /** 工作机器ID(0~31) */
+    private long workerId;
+
+    /** 数据中心ID(0~31) */
+    private long dataCenterId;
+
+    /** 毫秒内序列(0~4095) */
+    private long sequence = 0L;
+
+    /** 上次生成ID的时间截 */
+    private long lastTimestamp = -1L;
+
+    private static Snowflake idWorker;
+
+    static {
+        idWorker = new Snowflake(getWorkId(),getDataCenterId());
+    }
+
+    //==============================Constructors=====================================
+    /**
+     * 构造函数
+     * @param workerId 工作ID (0~31)
+     * @param dataCenterId 数据中心ID (0~31)
+     */
+    public Snowflake(long workerId, long dataCenterId) {
+        if (workerId > maxWorkerId || workerId < 0) {
+            throw new IllegalArgumentException(String.format("workerId can't be greater than %d or less than 0", maxWorkerId));
+        }
+        if (dataCenterId > maxDataCenterId || dataCenterId < 0) {
+            throw new IllegalArgumentException(String.format("dataCenterId can't be greater than %d or less than 0", maxDataCenterId));
+        }
+        this.workerId = workerId;
+        this.dataCenterId = dataCenterId;
+    }
+
+    // ==============================Methods==========================================
+    /**
+     * 获得下一个ID (该方法是线程安全的)
+     * @return SnowflakeId
+     */
+    public synchronized long nextId() {
+        long timestamp = timeGen();
+
+        //如果当前时间小于上一次ID生成的时间戳,说明系统时钟回退过这个时候应当抛出异常
+        if (timestamp < lastTimestamp) {
+            throw new RuntimeException(
+                    String.format("Clock moved backwards.  Refusing to generate id for %d milliseconds", lastTimestamp - timestamp));
+        }
+
+        //如果是同一时间生成的,则进行毫秒内序列
+        if (lastTimestamp == timestamp) {
+            sequence = (sequence + 1) & sequenceMask;
+            //毫秒内序列溢出
+            if (sequence == 0) {
+                //阻塞到下一个毫秒,获得新的时间戳
+                timestamp = tilNextMillis(lastTimestamp);
+            }
+        }
+        //时间戳改变,毫秒内序列重置
+        else {
+            sequence = 0L;
+        }
+
+        //上次生成ID的时间截
+        lastTimestamp = timestamp;
+
+        //移位并通过或运算拼到一起组成64位的ID
+        return ((timestamp - twepoch) << timestampLeftShift)
+                | (dataCenterId << dataCenterIdShift)
+                | (workerId << workerIdShift)
+                | sequence;
+    }
+
+    /**
+     * 阻塞到下一个毫秒,直到获得新的时间戳
+     * @param lastTimestamp 上次生成ID的时间截
+     * @return 当前时间戳
+     */
+    protected long tilNextMillis(long lastTimestamp) {
+        long timestamp = timeGen();
+        while (timestamp <= lastTimestamp) {
+            timestamp = timeGen();
+        }
+        return timestamp;
+    }
+
+    /**
+     * 返回以毫秒为单位的当前时间
+     * @return 当前时间(毫秒)
+     */
+    protected long timeGen() {
+        return System.currentTimeMillis();
+    }
+
+    private static Long getWorkId(){
+        try {
+            String hostAddress = Inet4Address.getLocalHost().getHostAddress();
+            int[] ints = StringUtils.toCodePoints(hostAddress);
+            int sums = 0;
+            for(int b : ints){
+                sums += b;
+            }
+            return (long)(sums % 32);
+        } catch (UnknownHostException e) {
+            // 如果获取失败,则使用随机数备用
+            return RandomUtils.nextLong(0,31);
+        }
+    }
+
+    private static Long getDataCenterId(){
+        int[] ints = StringUtils.toCodePoints(SystemUtils.getHostName());
+        int sums = 0;
+        for (int i: ints) {
+            sums += i;
+        }
+        return (long)(sums % 32);
+    }
+
+
+    /**
+     * 静态工具类
+     *
+     * @return
+     */
+    public static Long generateId(){
+        long id = idWorker.nextId();
+        return id;
+    }
+
+    //==============================Test=============================================
+    /** 测试 */
+    public static void main(String[] args) {
+        System.out.println(System.currentTimeMillis());
+        long startTime = System.nanoTime();
+        for (int i = 0; i < 50000; i++) {
+            long id = Snowflake.generateId();
+            System.out.println(id);
+        }
+        System.out.println((System.nanoTime()-startTime)/1000000+"ms");
+    }
+}

+ 1 - 1
user_auth/src/main/java/com/huaxu/controller/UserController.java

@@ -53,7 +53,7 @@ public class UserController {
      */
      */
     @RequestMapping(value = "login", method = RequestMethod.POST)
     @RequestMapping(value = "login", method = RequestMethod.POST)
     @ApiOperation(value = "登录")
     @ApiOperation(value = "登录")
-    public AjaxMessage<OAuth2AccessToken> login(String mobile, String tenatId) {
+    public AjaxMessage< List<UserDto>> login(String mobile, String tenatId) {
         User user=new User();
         User user=new User();
         user.setPhone(mobile);
         user.setPhone(mobile);
         user.setTenantId(tenatId);
         user.setTenantId(tenatId);

+ 1 - 1
user_auth/src/main/java/com/huaxu/dto/UserDto.java

@@ -12,7 +12,7 @@ public class UserDto {
     @ApiModelProperty(value="租户")
     @ApiModelProperty(value="租户")
     private String  tenantName;
     private String  tenantName;
     @ApiModelProperty(value="租户id")
     @ApiModelProperty(value="租户id")
-    private Integer tenantId;
+    private String tenantId;
     @ApiModelProperty(value="界面url")
     @ApiModelProperty(value="界面url")
     private String webUrl;
     private String webUrl;
     @ApiModelProperty(value="logo")
     @ApiModelProperty(value="logo")

+ 1 - 1
user_auth/src/main/java/com/huaxu/service/UserService.java

@@ -82,7 +82,7 @@ public interface UserService {
     IPage<User> selectPage(User user, IPage<User> page);
     IPage<User> selectPage(User user, IPage<User> page);
     User findUser(User user);
     User findUser(User user);
 
 
-    OAuth2AccessToken chooseUser(User user);
+    List<UserDto> chooseUser(User user);
     boolean logOut(String token);
     boolean logOut(String token);
 
 
 }
 }

+ 11 - 5
user_auth/src/main/java/com/huaxu/service/impl/UserServiceImpl.java

@@ -171,20 +171,26 @@ public class UserServiceImpl implements UserService {
 
 
 
 
     @Override
     @Override
-    public OAuth2AccessToken chooseUser(User user) {
+    public List<UserDto> chooseUser(User user) {
 
 
 
 
         user=findUser(user);
         user=findUser(user);
+        UserDto userDto=new UserDto();
+        userDto.setPhone(user.getPhone());
+        List<UserDto> loginInfos = userMapper.findLoginInfo(userDto);
         Set<GrantedAuthority> grantedAuthorities = new HashSet<>();
         Set<GrantedAuthority> grantedAuthorities = new HashSet<>();
         OAuth2Authentication oAuth2Authentication = (OAuth2Authentication) SecurityContextHolder.getContext().getAuthentication();
         OAuth2Authentication oAuth2Authentication = (OAuth2Authentication) SecurityContextHolder.getContext().getAuthentication();
         LoginUser loginUser = (LoginUser) oAuth2Authentication.getPrincipal();
         LoginUser loginUser = (LoginUser) oAuth2Authentication.getPrincipal();
+        List<ProgramItem>programItems=new ArrayList<>();
+
         Permission permission=new Permission();
         Permission permission=new Permission();
+        getDataPermission(permission.getPermissionType(),user,programItems);
         //角色必须是ROLE_开头,其余的是用户功能权限
         //角色必须是ROLE_开头,其余的是用户功能权限
         /* List<Permission> permissionList =findPermission(user);
         /* List<Permission> permissionList =findPermission(user);
         Integer permissionType = permissionList.get(0).getPermissionType();
         Integer permissionType = permissionList.get(0).getPermissionType();
         List<ProgramItem> programItemList = newArrayList();
         List<ProgramItem> programItemList = newArrayList();
         //获取数据权限
         //获取数据权限
-        getDataPermission(permissionType,user,programItemList);
+
         //分配功能权限
         //分配功能权限
         if (permissionList.size() > 0) {
         if (permissionList.size() > 0) {
             for (Permission permission : permissionList) {
             for (Permission permission : permissionList) {
@@ -196,8 +202,8 @@ public class UserServiceImpl implements UserService {
         }
         }
         loginUser.setProgramItemList(programItemList);
         loginUser.setProgramItemList(programItemList);
         */
         */
-        GrantedAuthority authority1 = new SimpleGrantedAuthority("sys:menu:edit");
-        grantedAuthorities.add(authority1);
+
+
 
 
 
 
         loginUser.setName(user.getUsername());
         loginUser.setName(user.getUsername());
@@ -218,7 +224,7 @@ public class UserServiceImpl implements UserService {
         OAuth2AccessToken accessToken = authorizationServerTokenServices.createAccessToken(oAuth2AuthenticationNew);
         OAuth2AccessToken accessToken = authorizationServerTokenServices.createAccessToken(oAuth2AuthenticationNew);
 
 
         insertLoginLog(loginUser,"登录");
         insertLoginLog(loginUser,"登录");
-        return accessToken;
+        return loginInfos;
     }
     }
 
 
     private void getDataPermission(int permissionType,User user, List<ProgramItem> programItemList){
     private void getDataPermission(int permissionType,User user, List<ProgramItem> programItemList){

+ 1 - 1
user_auth/src/main/resources/mapper/UserMapper.xml

@@ -262,7 +262,7 @@
 
 
     </select>
     </select>
     <select id="findLoginInfo" resultType="com.huaxu.dto.UserDto">
     <select id="findLoginInfo" resultType="com.huaxu.dto.UserDto">
-        select a.id, a.PHONE,b.TENANT_NAME,b.id tenantId,b.WEB_URL ,b.LOGO
+        select a.id, a.PHONE,b.TENANT_NAME,b.code tenantId,b.WEB_URL ,b.LOGO
         from uims_user a left join uims_tenant b on
         from uims_user a left join uims_tenant b on
         a.TENANT_ID=b.ID
         a.TENANT_ID=b.ID
         where a.PHONE=#{phone}
         where a.PHONE=#{phone}

+ 1 - 1
user_center/src/main/java/com/huaxu/config/ResourceServerConfig.java

@@ -17,7 +17,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
                 .and()
                 .and()
                 .authorizeRequests()
                 .authorizeRequests()
                 .antMatchers("/swagger-ui.html","/webjars/**", "/webjars/**", "/swagger-resources/**",
                 .antMatchers("/swagger-ui.html","/webjars/**", "/webjars/**", "/swagger-resources/**",
-                       "/v2/**","/app/**","/user/**","/menu/**","/role/**","/org/**","/userGroup/**","/loginLog/**","/operateLog/**","/excel/download/**","/dict/**","/userRegister/**")
+                       "/v2/**","/app/**","/user/**","/menu/**","/role/**","/org/**","/userGroup/**","/loginLog/**","/operateLog/**","/excel/download/**","/dict/**","/userRegister/**","/area/**")
                 .permitAll() //配置不需要身份认证的请求路径
                 .permitAll() //配置不需要身份认证的请求路径
                 .anyRequest().authenticated() //其他所有访问路径都需要身份认证
                 .anyRequest().authenticated() //其他所有访问路径都需要身份认证
                 .and()
                 .and()

+ 24 - 10
user_center/src/main/java/com/huaxu/controller/AreaController.java

@@ -2,6 +2,7 @@ package com.huaxu.controller;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huaxu.dto.AreaDto;
 import com.huaxu.entity.Area;
 import com.huaxu.entity.Area;
 import com.huaxu.model.AjaxMessage;
 import com.huaxu.model.AjaxMessage;
 import com.huaxu.model.Pagination;
 import com.huaxu.model.Pagination;
@@ -11,10 +12,9 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 
 /**
 /**
  * (Area)控制层
  * (Area)控制层
@@ -24,7 +24,7 @@ import org.springframework.web.bind.annotation.RestController;
  */
  */
 @RestController
 @RestController
 @RequestMapping("/area")
 @RequestMapping("/area")
-@Api(tags = "")
+@Api(tags = "区域接口")
 public class AreaController {
 public class AreaController {
     /**
     /**
      * 服务对象
      * 服务对象
@@ -39,7 +39,7 @@ public class AreaController {
      * @return 单条数据
      * @return 单条数据
      */
      */
     @RequestMapping(value = "get", method = RequestMethod.POST)
     @RequestMapping(value = "get", method = RequestMethod.POST)
-    @ApiOperation(value = "查询设施配置列表")
+    @ApiOperation(value = "查询区域列表")
     public AjaxMessage<Area> selectOne(
     public AjaxMessage<Area> selectOne(
             @ApiParam(value = "设置配置", required = true) @RequestBody Area area) {
             @ApiParam(value = "设置配置", required = true) @RequestBody Area area) {
         Area result = areaService.selectById(area.getId());
         Area result = areaService.selectById(area.getId());
@@ -54,7 +54,7 @@ public class AreaController {
      * @return Response对象
      * @return Response对象
      */
      */
     @RequestMapping(value = "insert", method = RequestMethod.POST)
     @RequestMapping(value = "insert", method = RequestMethod.POST)
-    @ApiOperation(value = "查询设施配置列表")
+    @ApiOperation(value = "查询区域列表")
     public AjaxMessage<Integer> insert(@ApiParam(value = "设置配置", required = true) @RequestBody Area area) {
     public AjaxMessage<Integer> insert(@ApiParam(value = "设置配置", required = true) @RequestBody Area area) {
         int result = areaService.insert(area);
         int result = areaService.insert(area);
 
 
@@ -68,7 +68,7 @@ public class AreaController {
      * @return Response对象
      * @return Response对象
      */
      */
     @RequestMapping(value = "update", method = RequestMethod.POST)
     @RequestMapping(value = "update", method = RequestMethod.POST)
-    @ApiOperation(value = "查询设施配置列表")
+    @ApiOperation(value = "查询区域列表")
     public AjaxMessage<Integer> update(@ApiParam(value = "设置配置", required = true) @RequestBody Area area) {
     public AjaxMessage<Integer> update(@ApiParam(value = "设置配置", required = true) @RequestBody Area area) {
         int result = areaService.update(area);
         int result = areaService.update(area);
         return new AjaxMessage<>(ResultStatus.OK, result);
         return new AjaxMessage<>(ResultStatus.OK, result);
@@ -82,12 +82,26 @@ public class AreaController {
      * @return Response对象
      * @return Response对象
      */
      */
     @RequestMapping(value = "delete", method = RequestMethod.POST)
     @RequestMapping(value = "delete", method = RequestMethod.POST)
-    @ApiOperation(value = "查询设施配置列表")
+    @ApiOperation(value = "查询区域列表")
     public AjaxMessage<Integer> delete(@ApiParam(value = "设置配置", required = true) @RequestBody Area area) {
     public AjaxMessage<Integer> delete(@ApiParam(value = "设置配置", required = true) @RequestBody Area area) {
         int result = areaService.deleteById(area.getId());
         int result = areaService.deleteById(area.getId());
         return new AjaxMessage<>(ResultStatus.OK, result);
         return new AjaxMessage<>(ResultStatus.OK, result);
     }
     }
+    /**
+     * 修改一条数据
+     *
+     * @param id 父类id
+     * @return Response对象
+     */
+    @RequestMapping(value = "selectAll", method = RequestMethod.POST)
+    @ApiOperation(value = "查询区域列表")
+    public AjaxMessage<List<AreaDto>> selectAll(@ApiParam(value = "设置配置", required = true)
+                                              @RequestParam Integer id) {
+        Area area=new Area();
 
 
+        return new AjaxMessage<>(ResultStatus.OK, areaService.selectList(area));
+
+    }
 
 
     /**
     /**
      * 分页查询
      * 分页查询
@@ -97,7 +111,7 @@ public class AreaController {
      * @return Response对象
      * @return Response对象
      */
      */
     @RequestMapping(value = "selectPage", method = RequestMethod.POST)
     @RequestMapping(value = "selectPage", method = RequestMethod.POST)
-    @ApiOperation(value = "查询设施配置列表")
+    @ApiOperation(value = "查询区域列表")
     public AjaxMessage<Pagination<Area>> selectPage(Integer pageNum, Integer pageSize) {
     public AjaxMessage<Pagination<Area>> selectPage(Integer pageNum, Integer pageSize) {
         Area area = new Area();
         Area area = new Area();
         IPage<Area> iPage = new Page<>(pageNum, pageSize);
         IPage<Area> iPage = new Page<>(pageNum, pageSize);

+ 8 - 1
user_center/src/main/java/com/huaxu/controller/OrgController.java

@@ -71,7 +71,7 @@ public class OrgController {
      * @return Response对象
      * @return Response对象
      */
      */
     @RequestMapping(value = "update", method = RequestMethod.POST)
     @RequestMapping(value = "update", method = RequestMethod.POST)
-    @ApiOperation(value = "更改机构/删除机构",notes = "将状态设为1即为删除")
+    @ApiOperation(value = "更改机构/删除机构",notes = "将状态设为-1即为删除")
     public AjaxMessage<Integer> update(@ApiParam(value = "设置配置", required = true) @RequestBody Org org) {
     public AjaxMessage<Integer> update(@ApiParam(value = "设置配置", required = true) @RequestBody Org org) {
         int result = orgService.update(org);
         int result = orgService.update(org);
         if(result==-1){
         if(result==-1){
@@ -106,5 +106,12 @@ public class OrgController {
         ;
         ;
         return new AjaxMessage<>(ResultStatus.OK, orgService.getTrees(org));
         return new AjaxMessage<>(ResultStatus.OK, orgService.getTrees(org));
     }
     }
+    @RequestMapping(value = "deleteAll", method = RequestMethod.POST)
+    @ApiOperation(value = "查询角色对应user")
+    AjaxMessage<Integer> deleteAll(@ApiParam(value = "角色id", required = true)@RequestBody List<Integer> ids){
+
+        return new AjaxMessage<>(ResultStatus.OK,
+                orgService.deleteAll(ids));
+    }
 
 
 }
 }

+ 6 - 0
user_center/src/main/java/com/huaxu/controller/RoleController.java

@@ -108,5 +108,11 @@ public class RoleController {
         return new AjaxMessage<>(ResultStatus.OK,
         return new AjaxMessage<>(ResultStatus.OK,
               roleService.findUsersByRole(role) );
               roleService.findUsersByRole(role) );
     }
     }
+    @RequestMapping(value = "deleteAll", method = RequestMethod.POST)
+    @ApiOperation(value = "查询角色对应user")
+    AjaxMessage<Integer> deleteAll(@ApiParam(value = "角色id", required = true)@RequestBody List<Integer> ids){
 
 
+        return new AjaxMessage<>(ResultStatus.OK,
+                roleService.deleteAll(ids));
+    }
 }
 }

+ 1 - 1
user_center/src/main/java/com/huaxu/controller/TenantController.java

@@ -149,7 +149,7 @@ public class TenantController {
     @RequestMapping(value = "selectPage", method = RequestMethod.POST)
     @RequestMapping(value = "selectPage", method = RequestMethod.POST)
     @ApiOperation(value = "查询租户信息列表")
     @ApiOperation(value = "查询租户信息列表")
     public AjaxMessage<Pagination<TenantDto>> selectPage(
     public AjaxMessage<Pagination<TenantDto>> selectPage(
-            @ApiParam(value = "租户名称")  TenantDto tenantDto,
+            @ApiParam(value = "租户名称")  @RequestBody TenantDto tenantDto,
             @ApiParam(value = "页数,非必传,默认第一页",  defaultValue = "1") @RequestParam(required = false, defaultValue = "1") Integer pageNum,
             @ApiParam(value = "页数,非必传,默认第一页",  defaultValue = "1") @RequestParam(required = false, defaultValue = "1") Integer pageNum,
             @ApiParam(value = "条数,非必传,默认30条",  defaultValue = "30") @RequestParam(required = false, defaultValue = "30") Integer pageSize
             @ApiParam(value = "条数,非必传,默认30条",  defaultValue = "30") @RequestParam(required = false, defaultValue = "30") Integer pageSize
 
 

+ 8 - 0
user_center/src/main/java/com/huaxu/controller/UserGroupController.java

@@ -114,5 +114,13 @@ public class UserGroupController {
         userGroupService.updateRolesByUserGroup(userGroupDto);
         userGroupService.updateRolesByUserGroup(userGroupDto);
         return new AjaxMessage<>(ResultStatus.OK);
         return new AjaxMessage<>(ResultStatus.OK);
     }
     }
+    @RequestMapping(value = "deleteAll", method = RequestMethod.POST)
+    @ApiOperation(value = "查询角色对应user")
+    AjaxMessage<Integer> deleteAll(@ApiParam(value = "角色id", required = true)@RequestBody List<Integer> ids){
+
+        return new AjaxMessage<>(ResultStatus.OK,
+                userGroupService.deleteAll(ids));
+    }
+
 
 
 }
 }

+ 2 - 1
user_center/src/main/java/com/huaxu/dao/AreaMapper.java

@@ -1,6 +1,7 @@
 package com.huaxu.dao;
 package com.huaxu.dao;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huaxu.dto.AreaDto;
 import com.huaxu.entity.Area;
 import com.huaxu.entity.Area;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
@@ -38,7 +39,7 @@ public interface AreaMapper {
      * @param area 实例对象
      * @param area 实例对象
      * @return 对象列表
      * @return 对象列表
      */
      */
-    List<Area> selectList(Area area);
+    List<AreaDto> selectList(Area area);
 
 
     /**
     /**
      * 新增数据
      * 新增数据

+ 15 - 0
user_center/src/main/java/com/huaxu/dto/AreaDto.java

@@ -0,0 +1,15 @@
+package com.huaxu.dto;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("区域")
+public class AreaDto {
+    private Integer code;
+    private Integer pid;
+    private String name;
+    private List<AreaDto> children;
+}

+ 4 - 4
user_center/src/main/java/com/huaxu/dto/LoginLogDto.java

@@ -30,12 +30,12 @@ public class LoginLogDto extends LoginLogEntity {
     private String condition;
     private String condition;
 
 
     @ExcelIgnore
     @ExcelIgnore
-    @ApiModelProperty(value = "查询条件(起始时间)" )
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "查询条件(起始时间)yyyy-MM-dd" )
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date beginTime;
     private Date beginTime;
 
 
     @ExcelIgnore
     @ExcelIgnore
-    @ApiModelProperty(value = "查询条件(终止时间)")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "查询条件(终止时间)yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date endTime;
     private Date endTime;
 }
 }

+ 4 - 4
user_center/src/main/java/com/huaxu/dto/OperateLogDto.java

@@ -28,11 +28,11 @@ public class OperateLogDto extends OperateLogEntity {
     @ApiModelProperty(value = "查询条件(用户名/手机号)")
     @ApiModelProperty(value = "查询条件(用户名/手机号)")
     private String condition;
     private String condition;
     @ExcelIgnore
     @ExcelIgnore
-    @ApiModelProperty(value = "查询条件(起始时间)" )
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "查询条件(起始时间)yyyy-MM-dd" )
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date beginTime;
     private Date beginTime;
     @ExcelIgnore
     @ExcelIgnore
-    @ApiModelProperty(value = "查询条件(终止时间)" )
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "查询条件(终止时间)yyyy-MM-dd" )
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date endTime;
     private Date endTime;
 }
 }

+ 3 - 1
user_center/src/main/java/com/huaxu/entity/TenantEntity.java

@@ -26,8 +26,10 @@ public class TenantEntity implements Serializable {
     private Integer id;
     private Integer id;
     @ApiModelProperty(value = "租户名称")
     @ApiModelProperty(value = "租户名称")
     private String tenantName;
     private String tenantName;
-    @ApiModelProperty(value = "租户标识")
+    @ApiModelProperty(value = "租户标识:系统后台自动生成")
     private String code;
     private String code;
+    @ApiModelProperty(value = "租户类型")
+    private String tenantType;
     @ApiModelProperty(value = "租户Logo")
     @ApiModelProperty(value = "租户Logo")
     private String logo;
     private String logo;
     @ApiModelProperty(value = "租户域名")
     @ApiModelProperty(value = "租户域名")

+ 2 - 1
user_center/src/main/java/com/huaxu/service/AreaService.java

@@ -1,6 +1,7 @@
 package com.huaxu.service;
 package com.huaxu.service;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huaxu.dto.AreaDto;
 import com.huaxu.entity.Area;
 import com.huaxu.entity.Area;
 
 
 import java.util.List;
 import java.util.List;
@@ -35,7 +36,7 @@ public interface AreaService {
      * @param area 实例对象
      * @param area 实例对象
      * @return 对象列表
      * @return 对象列表
      */
      */
-    List<Area> selectList(Area area);
+    List<AreaDto> selectList(Area area);
 
 
     /**
     /**
      * 新增数据
      * 新增数据

+ 8 - 0
user_center/src/main/java/com/huaxu/service/OrgService.java

@@ -70,6 +70,14 @@ public interface OrgService {
      */
      */
     int deleteById(Integer id);
     int deleteById(Integer id);
 
 
+    /**
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 影响行数
+     */
+    int deleteAll(List<Integer>ids);
+
     /**
     /**
      * 查询总数据数
      * 查询总数据数
      *
      *

+ 1 - 0
user_center/src/main/java/com/huaxu/service/RoleService.java

@@ -71,6 +71,7 @@ public interface RoleService {
      * @return 影响行数
      * @return 影响行数
      */
      */
     int deleteById(Integer id);
     int deleteById(Integer id);
+    int deleteAll(List<Integer>ids);
 
 
     /**
     /**
      * 查询总数据数
      * 查询总数据数

+ 1 - 1
user_center/src/main/java/com/huaxu/service/UserGroupService.java

@@ -70,7 +70,7 @@ public interface UserGroupService {
      * @return 影响行数
      * @return 影响行数
      */
      */
     int deleteById(Integer id);
     int deleteById(Integer id);
-
+    int deleteAll(List<Integer>ids);
     /**
     /**
      * 查询总数据数
      * 查询总数据数
      *
      *

+ 26 - 2
user_center/src/main/java/com/huaxu/service/impl/AreaServiceImpl.java

@@ -2,13 +2,17 @@ package com.huaxu.service.impl;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.huaxu.dao.AreaMapper;
 import com.huaxu.dao.AreaMapper;
+import com.huaxu.dto.AreaDto;
 import com.huaxu.entity.Area;
 import com.huaxu.entity.Area;
 import com.huaxu.service.AreaService;
 import com.huaxu.service.AreaService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import java.util.List;
 import java.util.List;
 
 
+import static com.google.common.collect.Lists.newArrayList;
+
 /**
 /**
  * (Area表)服务实现类
  * (Area表)服务实现类
  *
  *
@@ -48,8 +52,28 @@ public class AreaServiceImpl implements AreaService {
      * @return 实例对象的集合
      * @return 实例对象的集合
      */
      */
     @Override
     @Override
-    public List<Area> selectList(Area area) {
-        return this.areaMapper.selectList(area);
+    public List<AreaDto> selectList(Area area) {
+        return getArea(this.areaMapper.selectList(area),100000,1);
+    }
+    public static List<AreaDto> getArea(List<AreaDto> list, Integer id, Integer leve) {
+        List<AreaDto> temList = newArrayList();
+        if (list != null) {
+            for (AreaDto areaDto : list) {
+                if (id.equals(areaDto.getPid())) {
+                    List<AreaDto> chidren = getArea(list, areaDto.getCode(), ++leve);
+                    AreaDto tempArea = new AreaDto();
+                    BeanUtils.copyProperties(areaDto, tempArea);
+                    tempArea.setChildren(chidren);
+                    temList.add(tempArea);
+                    leve--;
+                }
+            }
+        }
+        if(temList.size() > 0){
+            return temList;
+        }else {
+            return null;
+        }
     }
     }
 
 
     /**
     /**

+ 20 - 6
user_center/src/main/java/com/huaxu/service/impl/OrgServiceImpl.java

@@ -109,17 +109,13 @@ public class OrgServiceImpl implements OrgService {
             }
             }
         }
         }
         //删除前先查询机构下是否还有用户
         //删除前先查询机构下是否还有用户
-        if(org.getStatus()==-1){
-            Org orgUser = orgMapper.findOrgUser(org);
-            if(orgUser!=null){
-                return -1;
-            }
-        }
+
         LoginUser currentUser = UserUtil.getCurrentUser();
         LoginUser currentUser = UserUtil.getCurrentUser();
         org.setUpdateBy(currentUser.getUsername());
         org.setUpdateBy(currentUser.getUsername());
         return this.orgMapper.update(org);
         return this.orgMapper.update(org);
     }
     }
 
 
+
     /**
     /**
      * 通过主键删除数据
      * 通过主键删除数据
      *
      *
@@ -131,6 +127,24 @@ public class OrgServiceImpl implements OrgService {
         return this.orgMapper.deleteById(id);
         return this.orgMapper.deleteById(id);
     }
     }
 
 
+    @Override
+    public int deleteAll(List<Integer> ids) {
+            ids.forEach(id->{
+                        Org org=new Org();
+                        org.setId(id);
+                        Org orgUser = orgMapper.findOrgUser(org);
+                        if(orgUser==null){
+                            org.setStatus(-1);
+                            orgMapper.update(org);
+                        }
+
+                 });
+
+
+
+        return 0;
+    }
+
     /**
     /**
      * 查询总数据数
      * 查询总数据数
      *
      *

+ 21 - 10
user_center/src/main/java/com/huaxu/service/impl/RoleServiceImpl.java

@@ -110,16 +110,7 @@ public class RoleServiceImpl implements RoleService {
     public int update(RoleRequestDto roleRequestDto) {
     public int update(RoleRequestDto roleRequestDto) {
         Role role=roleRequestDto.getRole();
         Role role=roleRequestDto.getRole();
 
 
-        if(role.getStatus()==-1){
-            Role roleUser = roleMapper.findRoleUser(role);
-            if(roleUser!=null){
-                return -1;
-            }
-            //删除用户与角色的关系
-            roleMapper.deleteRoleUser(role);
-            //删除用户与菜单关系
-            roleMapper.deleteRoleMenu(role);
-        }
+
         //將禁用的角色放入redis,作为登出判断
         //將禁用的角色放入redis,作为登出判断
         if(role.getRoleState()==-1){
         if(role.getRoleState()==-1){
             String roleKey="disableRole:"+role.getId();
             String roleKey="disableRole:"+role.getId();
@@ -164,6 +155,26 @@ public class RoleServiceImpl implements RoleService {
         return this.roleMapper.deleteById(id);
         return this.roleMapper.deleteById(id);
     }
     }
 
 
+    @Override
+    public int deleteAll(List<Integer> ids) {
+        ids.forEach(id->{
+            Role role=new Role();
+            role.setId(id);
+                Role roleUser = roleMapper.findRoleUser(role);
+                if (roleUser==null){
+                    role.setStatus(-1);
+                    roleMapper.update(role);
+                }
+                //删除用户与角色的关系
+                //roleMapper.deleteRoleUser(role);
+                //删除用户与菜单关系
+                // roleMapper.deleteRoleMenu(role);
+
+        });
+
+        return 0;
+    }
+
     /**
     /**
      * 查询总数据数
      * 查询总数据数
      *
      *

+ 8 - 10
user_center/src/main/java/com/huaxu/service/impl/TenantServiceImpl.java

@@ -2,19 +2,14 @@ package com.huaxu.service.impl;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.huaxu.dao.TenantMapper;
 import com.huaxu.dao.TenantMapper;
-import com.huaxu.dao.UserMapper;
 import com.huaxu.dto.TenantDto;
 import com.huaxu.dto.TenantDto;
-import com.huaxu.entity.TenantEntity;
 import com.huaxu.entity.UserEntity;
 import com.huaxu.entity.UserEntity;
-import com.huaxu.model.LoginUser;
 import com.huaxu.service.TenantService;
 import com.huaxu.service.TenantService;
 import com.huaxu.service.UserService;
 import com.huaxu.service.UserService;
-import com.huaxu.util.UserUtil;
-import io.swagger.annotations.ApiModelProperty;
+import com.huaxu.util.Snowflake;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
-import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
@@ -85,11 +80,12 @@ public class TenantServiceImpl implements TenantService {
 //        tenantDto.setDateCreate(new Date());
 //        tenantDto.setDateCreate(new Date());
 //        tenantDto.setUpdateBy(loginUser.getUsername());
 //        tenantDto.setUpdateBy(loginUser.getUsername());
 //        tenantDto.setDateUpdate(new Date());
 //        tenantDto.setDateUpdate(new Date());
+        tenantDto.setCode(Snowflake.generateId().toString());
         tenantDto.setStatus(0);
         tenantDto.setStatus(0);
         tenantMapper.insert(tenantDto);
         tenantMapper.insert(tenantDto);
         //创建管理员信息
         //创建管理员信息
         UserEntity userEntity =new UserEntity();
         UserEntity userEntity =new UserEntity();
-        userEntity.setTenantId(tenantDto.getCode());//此字段到底取标识还是id
+        userEntity.setTenantId(tenantDto.getCode());
         userEntity.setCreateBy(tenantDto.getCreateBy());
         userEntity.setCreateBy(tenantDto.getCreateBy());
         userEntity.setDateCreate(new Date());
         userEntity.setDateCreate(new Date());
         userEntity.setUpdateBy(tenantDto.getUpdateBy());
         userEntity.setUpdateBy(tenantDto.getUpdateBy());
@@ -121,15 +117,17 @@ public class TenantServiceImpl implements TenantService {
         //修改租户信息
         //修改租户信息
 //        tenantDto.setUpdateBy(loginUser.getUsername());
 //        tenantDto.setUpdateBy(loginUser.getUsername());
 //        tenantDto.setDateUpdate(new Date());
 //        tenantDto.setDateUpdate(new Date());
+
         tenantMapper.update(tenantDto);
         tenantMapper.update(tenantDto);
         //修改管理员信息
         //修改管理员信息
         UserEntity userEntity =new UserEntity();
         UserEntity userEntity =new UserEntity();
         userEntity.setId(tenantDto.getUserId());
         userEntity.setId(tenantDto.getUserId());
-        userEntity.setTenantId(tenantDto.getCode());//此字段到底取标识还是id
+        userEntity.setTenantId(tenantDto.getCode());
         userEntity.setUpdateBy(tenantDto.getUpdateBy());
         userEntity.setUpdateBy(tenantDto.getUpdateBy());
         userEntity.setDateUpdate(new Date());
         userEntity.setDateUpdate(new Date());
         userEntity.setPhone(tenantDto.getPhone());
         userEntity.setPhone(tenantDto.getPhone());
         userEntity.setUsername(tenantDto.getUserName());
         userEntity.setUsername(tenantDto.getUserName());
+        userEntity.setUserType("系统管理员");
         userService.updateUserById(userEntity);
         userService.updateUserById(userEntity);
         //修改租户菜单信息
         //修改租户菜单信息
         //界面传回的租户菜单id
         //界面传回的租户菜单id
@@ -138,13 +136,13 @@ public class TenantServiceImpl implements TenantService {
         List<Integer > oldTenantMenuIds = tenantMapper.selectTenantMenuIds(tenantDto.getId());
         List<Integer > oldTenantMenuIds = tenantMapper.selectTenantMenuIds(tenantDto.getId());
         //相同的暂时不改动
         //相同的暂时不改动
 
 
-        //新增的id(需要新增的)
+        //新增的菜单id(需要新增的)
         List<Integer> addTenantMenuIds = newTenantMenuIds.stream().filter(item -> !oldTenantMenuIds.contains(item)).collect(Collectors.toList());
         List<Integer> addTenantMenuIds = newTenantMenuIds.stream().filter(item -> !oldTenantMenuIds.contains(item)).collect(Collectors.toList());
         //创建租户菜单信息
         //创建租户菜单信息
         if(addTenantMenuIds.size()>0){
         if(addTenantMenuIds.size()>0){
             tenantMapper.createTenantMenu(tenantDto.getUpdateBy(),tenantDto.getId(),addTenantMenuIds);
             tenantMapper.createTenantMenu(tenantDto.getUpdateBy(),tenantDto.getId(),addTenantMenuIds);
         }
         }
-        //去掉的id(需要删除的)
+        //去掉的菜单id(需要删除的)
         List<Integer> deleteTenantMenuIds = oldTenantMenuIds.stream().filter(item -> !newTenantMenuIds.contains(item)).collect(Collectors.toList());
         List<Integer> deleteTenantMenuIds = oldTenantMenuIds.stream().filter(item -> !newTenantMenuIds.contains(item)).collect(Collectors.toList());
         if(deleteTenantMenuIds.size()>0){
         if(deleteTenantMenuIds.size()>0){
             tenantMapper.deleteTenantMenuIds(tenantDto.getId(),deleteTenantMenuIds);
             tenantMapper.deleteTenantMenuIds(tenantDto.getId(),deleteTenantMenuIds);

+ 19 - 8
user_center/src/main/java/com/huaxu/service/impl/UserGroupServiceImpl.java

@@ -100,14 +100,7 @@ public class UserGroupServiceImpl implements UserGroupService {
     @Override
     @Override
     @Transactional
     @Transactional
     public int update(UserGroup userGroup) {
     public int update(UserGroup userGroup) {
-        if(userGroup.getStatus()==-1){
-            UserGroup hasUserGroupUsers = userGroupMapper.findHasUserGroupUsers(userGroup);
-            if(hasUserGroupUsers!=null){
-                return -1;
-            }
-            //删除用户与用户组的关系
-            userGroupMapper.deleteUserGroupRelations(userGroup);
-        }
+
         LoginUser currentUser = UserUtil.getCurrentUser();
         LoginUser currentUser = UserUtil.getCurrentUser();
         userGroup.setUpdateBy(currentUser.getUsername());
         userGroup.setUpdateBy(currentUser.getUsername());
         return this.userGroupMapper.update(userGroup);
         return this.userGroupMapper.update(userGroup);
@@ -124,6 +117,24 @@ public class UserGroupServiceImpl implements UserGroupService {
         return this.userGroupMapper.deleteById(id);
         return this.userGroupMapper.deleteById(id);
     }
     }
 
 
+    @Override
+    public int deleteAll(List<Integer> ids) {
+        ids.forEach(id->{
+            UserGroup userGroup=new UserGroup();
+            userGroup.setId(id);
+
+                UserGroup hasUserGroupUsers = userGroupMapper.findHasUserGroupUsers(userGroup);
+                if(hasUserGroupUsers==null){
+                    userGroup.setStatus(-1);
+                userGroupMapper.update(userGroup);
+                //删除用户与用户组的关系
+                // userGroupMapper.deleteUserGroupRelations(userGroup);
+            }
+        });
+
+        return 0;
+    }
+
     /**
     /**
      * 查询总数据数
      * 查询总数据数
      *
      *

+ 2 - 2
user_center/src/main/resources/mapper/AreaMapper.xml

@@ -41,9 +41,9 @@
     </select>
     </select>
 
 
     <!--通过实体作为筛选条件查询-->
     <!--通过实体作为筛选条件查询-->
-    <select id="selectList" resultMap="AreaMap">
+    <select id="selectList" resultType="com.huaxu.dto.AreaDto">
         select
         select
-        <include refid="Base_Column_List"/>
+        id code,parent_id pid,name
         from uims_area
         from uims_area
         <where>
         <where>
             <if test="id != null">
             <if test="id != null">

+ 2 - 2
user_center/src/main/resources/mapper/RoleMapper.xml

@@ -176,7 +176,7 @@
                 and TENANT_ID = #{role.tenantId}
                 and TENANT_ID = #{role.tenantId}
             </if>
             </if>
             <if test="role.roleName != null and role.roleName != ''">
             <if test="role.roleName != null and role.roleName != ''">
-                and ROLE_NAME = #{role.roleName}
+                and ROLE_NAME  like concat('%', #{role.roleName}, '%')
             </if>
             </if>
             <if test="role.description != null and role.description != ''">
             <if test="role.description != null and role.description != ''">
                 and DESCRIPTION = #{role.description}
                 and DESCRIPTION = #{role.description}
@@ -208,7 +208,7 @@
         </where>
         </where>
     </select>
     </select>
     <select id="findRoleUser" resultType="com.huaxu.entity.Role">
     <select id="findRoleUser" resultType="com.huaxu.entity.Role">
-        select a.id from uims_user_role  where a.ROLE_ID=#{id} and a.status!=-1
+        select a.id from uims_user_role a where a.ROLE_ID=#{id} and a.status!=-1 limit 1
     </select>
     </select>
     <sql id="sysAreaJoins">
     <sql id="sysAreaJoins">
           left join uims_org com ON com.id = a.company_org_id
           left join uims_org com ON com.id = a.company_org_id

+ 7 - 20
user_center/src/main/resources/mapper/TenantMapper.xml

@@ -2,36 +2,20 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.huaxu.dao.TenantMapper">
 <mapper namespace="com.huaxu.dao.TenantMapper">
 
 
-    <resultMap id="TenantMap" type="com.huaxu.entity.TenantEntity" >
-        <result property="id" column="ID" jdbcType="INTEGER"/>
-        <result property="tenantName" column="TENANT_NAME" jdbcType="VARCHAR"/>
-        <result property="code" column="CODE" jdbcType="VARCHAR"/>
-        <result property="logo" column="LOGO" jdbcType="VARCHAR"/>
-        <result property="webUrl" column="WEB_URL" jdbcType="VARCHAR"/>
-        <result property="startDate" column="START_DATE" jdbcType="TIMESTAMP"/>
-        <result property="endDate" column="END_DATE" jdbcType="TIMESTAMP"/>
-        <result property="tenantState" column="TENANT_STATE" jdbcType="INTEGER"/>
-        <result property="remark" column="REMARK" jdbcType="VARCHAR"/>
-        <result property="status" column="STATUS" jdbcType="INTEGER"/>
-        <result property="dateCreate" column="DATE_CREATE" jdbcType="TIMESTAMP"/>
-        <result property="createBy" column="CREATE_BY" jdbcType="VARCHAR"/>
-        <result property="dateUpdate" column="DATE_UPDATE" jdbcType="TIMESTAMP"/>
-        <result property="updateBy" column="UPDATE_BY" jdbcType="VARCHAR"/>
-    </resultMap>
-
     <sql id="Base_Column_List">
     <sql id="Base_Column_List">
         t.TENANT_NAME as "tenantName"
         t.TENANT_NAME as "tenantName"
         ,u.id as "userId"
         ,u.id as "userId"
         ,u.USERNAME as "userName"
         ,u.USERNAME as "userName"
         ,u.PHONE as "phone"
         ,u.PHONE as "phone"
         ,t.`CODE` as "code"
         ,t.`CODE` as "code"
+        ,t.`tenant_type` as "tenantType"
         ,t.LOGO as "logo"
         ,t.LOGO as "logo"
         ,t.WEB_URL as "webUrl"
         ,t.WEB_URL as "webUrl"
         ,t.DATE_CREATE as "dateCreate"
         ,t.DATE_CREATE as "dateCreate"
     </sql>
     </sql>
 
 
     <sql id="tenantJoins">
     <sql id="tenantJoins">
-        left join uims_user u on t.ID=u.TENANT_ID and u.USER_TYPE=2
+        left join uims_user u on t.ID=u.TENANT_ID and u.USER_TYPE='系统管理员'
     </sql>
     </sql>
     <select id="selectById" resultType="com.huaxu.dto.TenantDto">
     <select id="selectById" resultType="com.huaxu.dto.TenantDto">
         select
         select
@@ -64,8 +48,8 @@
 
 
     <!-- 新增所有列 -->
     <!-- 新增所有列 -->
     <insert id="insert" keyProperty="id" useGeneratedKeys="true">
     <insert id="insert" keyProperty="id" useGeneratedKeys="true">
-        insert into uims_tenant(ID ,TENANT_NAME ,CODE ,LOGO ,WEB_URL ,START_DATE ,END_DATE ,TENANT_STATE ,REMARK ,STATUS ,DATE_CREATE ,CREATE_BY ,DATE_UPDATE ,UPDATE_BY)
-        values ( #{id}, #{tenantName}, #{code}, #{logo}, #{webUrl}, #{startDate}, #{endDate}, #{tenantState}, #{remark}, #{status},#{dateCreate},#{createBy},#{dateUpdate},#{updateBy})
+        insert into uims_tenant(TENANT_NAME,tenant_type ,CODE ,LOGO ,WEB_URL ,START_DATE ,END_DATE ,TENANT_STATE ,REMARK ,STATUS ,DATE_CREATE ,CREATE_BY ,DATE_UPDATE ,UPDATE_BY)
+        values ( #{tenantName},#{tenantType}, #{code}, #{logo}, #{webUrl}, #{startDate}, #{endDate}, #{tenantState}, #{remark}, #{status},#{dateCreate},#{createBy},#{dateUpdate},#{updateBy})
     </insert>
     </insert>
 
 
     <!-- 批量新增 -->
     <!-- 批量新增 -->
@@ -86,6 +70,9 @@
             <if test="tenantName != null and tenantName != ''">
             <if test="tenantName != null and tenantName != ''">
                 TENANT_NAME = #{tenantName},
                 TENANT_NAME = #{tenantName},
             </if>
             </if>
+            <if test="tenantType != null and tenantType != ''">
+                tenant_type = #{tenantType},
+            </if>
             <if test="code != null and code != ''">
             <if test="code != null and code != ''">
                 CODE = #{code},
                 CODE = #{code},
             </if>
             </if>

+ 34 - 0
user_center/src/test/com/huaxu/test/TestEXCEL.java

@@ -0,0 +1,34 @@
+package com.huaxu.test;
+
+import lombok.Data;
+
+@Data
+public class TestEXCEL {
+    private String a1;
+    private String a2;
+    private String a3;
+    private String a4;
+    private String a5;
+    private String a6;
+    private String a7;
+    private String a8;
+    private String a9;
+    private String a10;
+    private String a11;
+    private String a12;
+    public TestEXCEL(String value){
+        this.a1=value;
+        this.a2=value;
+        this.a3=value;
+        this.a4=value;
+        this.a5=value;
+        this.a6=value;
+        this.a7=value;
+        this.a8=value;
+        this.a9=value;
+        this.a10=value;
+        this.a11=value;
+        this.a12=value;
+
+    }
+}

+ 17 - 5
user_center/src/test/com/huaxu/test/TestOrgTree.java

@@ -1,5 +1,9 @@
 package com.huaxu.test;
 package com.huaxu.test;
 
 
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import com.huaxu.common.CustemhandlerUtils;
+import com.huaxu.common.EasyExcelUtil;
 import com.huaxu.dto.OrgTree;
 import com.huaxu.dto.OrgTree;
 import com.huaxu.entity.Org;
 import com.huaxu.entity.Org;
 import com.huaxu.model.Permission;
 import com.huaxu.model.Permission;
@@ -7,16 +11,24 @@ import com.huaxu.model.ProgramItem;
 import org.junit.Test;
 import org.junit.Test;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 
 
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 
 import static com.google.common.collect.Lists.newArrayList;
 import static com.google.common.collect.Lists.newArrayList;
 
 
 public class TestOrgTree {
 public class TestOrgTree {
-    @Test
+   // @Test
     public void test(){
     public void test(){
-
+      /*  List<TestEXCEL>list =new ArrayList<>();
+        for(int i=0;i<1000000;i++){
+            TestEXCEL excel=new TestEXCEL(UUID.randomUUID().toString());
+            list.add(excel);
+        }
+        EasyExcel.write("D:\\test\\2020\\10\\31/1.xlsx", TestEXCEL.class)
+                .excelType(ExcelTypeEnum.XLSX)
+                .registerWriteHandler(new CustemhandlerUtils())
+                .registerWriteHandler(EasyExcelUtil.getStyleStrategy())
+                .sheet("Export")
+                .doWrite(list);*/
     }
     }
 
 
     public void getOrg(){
     public void getOrg(){