liyabo 3 лет назад
Родитель
Сommit
dcf6510f57
42 измененных файлов с 343 добавлено и 196 удалено
  1. 1 1
      eladmin-common/src/main/java/me/zhengjie/utils/QueryHelp.java
  2. 2 2
      eladmin-common/src/main/java/me/zhengjie/utils/RedisUtils.java
  3. 5 5
      eladmin-common/src/main/java/me/zhengjie/utils/SecurityUtils.java
  4. 4 0
      eladmin-logging/eladmin-logging.iml
  5. 1 0
      eladmin-system/eladmin-system.iml
  6. 4 2
      eladmin-system/src/main/java/me/zhengjie/modules/dm/user/domain/DmUser.java
  7. 1 1
      eladmin-system/src/main/java/me/zhengjie/modules/dm/user/repository/DmUserRepository.java
  8. 3 3
      eladmin-system/src/main/java/me/zhengjie/modules/dm/user/rest/DmUserController.java
  9. 3 3
      eladmin-system/src/main/java/me/zhengjie/modules/dm/user/service/DmUserService.java
  10. 1 1
      eladmin-system/src/main/java/me/zhengjie/modules/dm/user/service/dto/DmUserDto.java
  11. 19 19
      eladmin-system/src/main/java/me/zhengjie/modules/dm/user/service/impl/DmUserServiceImpl.java
  12. 1 1
      eladmin-system/src/main/java/me/zhengjie/modules/dm/user/util/DmUserUtils.java
  13. 182 49
      eladmin-system/src/main/java/me/zhengjie/modules/quartz/task/ErpDataSyncTask.java
  14. 1 2
      eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Job.java
  15. 2 3
      eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Menu.java
  16. 1 2
      eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Role.java
  17. 4 2
      eladmin-system/src/main/java/me/zhengjie/modules/system/domain/User.java
  18. 1 1
      eladmin-system/src/main/java/me/zhengjie/modules/system/repository/DeptRepository.java
  19. 2 2
      eladmin-system/src/main/java/me/zhengjie/modules/system/repository/JobRepository.java
  20. 5 5
      eladmin-system/src/main/java/me/zhengjie/modules/system/repository/MenuRepository.java
  21. 6 6
      eladmin-system/src/main/java/me/zhengjie/modules/system/repository/RoleRepository.java
  22. 7 7
      eladmin-system/src/main/java/me/zhengjie/modules/system/repository/UserRepository.java
  23. 0 1
      eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DeptController.java
  24. 1 1
      eladmin-system/src/main/java/me/zhengjie/modules/system/rest/JobController.java
  25. 10 9
      eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java
  26. 3 3
      eladmin-system/src/main/java/me/zhengjie/modules/system/rest/RoleController.java
  27. 3 3
      eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java
  28. 1 1
      eladmin-system/src/main/java/me/zhengjie/modules/system/service/DeptService.java
  29. 3 3
      eladmin-system/src/main/java/me/zhengjie/modules/system/service/JobService.java
  30. 4 4
      eladmin-system/src/main/java/me/zhengjie/modules/system/service/MenuService.java
  31. 6 6
      eladmin-system/src/main/java/me/zhengjie/modules/system/service/RoleService.java
  32. 4 4
      eladmin-system/src/main/java/me/zhengjie/modules/system/service/UserService.java
  33. 1 1
      eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/JobDto.java
  34. 2 2
      eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/MenuDto.java
  35. 1 1
      eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/RoleSmallDto.java
  36. 1 1
      eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/UserDto.java
  37. 1 1
      eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DeptServiceImpl.java
  38. 3 3
      eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/JobServiceImpl.java
  39. 12 12
      eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java
  40. 9 9
      eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java
  41. 18 14
      eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java
  42. 4 0
      eladmin-tools/eladmin-tools.iml

+ 1 - 1
eladmin-common/src/main/java/me/zhengjie/utils/QueryHelp.java

@@ -42,7 +42,7 @@ public class QueryHelp {
         DataPermission permission = query.getClass().getAnnotation(DataPermission.class);
         if(permission != null){
             // 获取数据权限
-            List<Long> dataScopes = SecurityUtils.getCurrentUserDataScope();
+            List<String> dataScopes = SecurityUtils.getCurrentUserDataScope();
             if(CollectionUtil.isNotEmpty(dataScopes)){
                 if(StringUtils.isNotBlank(permission.joinName()) && StringUtils.isNotBlank(permission.fieldName())) {
                     Join join = root.join(permission.joinName(), JoinType.LEFT);

+ 2 - 2
eladmin-common/src/main/java/me/zhengjie/utils/RedisUtils.java

@@ -693,9 +693,9 @@ public class RedisUtils {
      * @param prefix 前缀
      * @param ids    id
      */
-    public void delByKeys(String prefix, Set<Long> ids) {
+    public void delByKeys(String prefix, Set<String> ids) {
         Set<Object> keys = new HashSet<>();
-        for (Long id : ids) {
+        for (String id : ids) {
             keys.addAll(redisTemplate.keys(new StringBuffer(prefix).append(id).toString()));
         }
         long count = redisTemplate.delete(keys);

+ 5 - 5
eladmin-common/src/main/java/me/zhengjie/utils/SecurityUtils.java

@@ -74,9 +74,9 @@ public class SecurityUtils {
      *
      * @return 系统用户ID
      */
-    public static Long getCurrentUserId() {
+    public static String getCurrentUserId() {
         UserDetails userDetails = getCurrentUser();
-        return new JSONObject(new JSONObject(userDetails).get("user")).get("id", Long.class);
+        return new JSONObject(new JSONObject(userDetails).get("user")).get("id", String.class);
     }
 
     /**
@@ -84,10 +84,10 @@ public class SecurityUtils {
      *
      * @return /
      */
-    public static List<Long> getCurrentUserDataScope() {
+    public static List<String> getCurrentUserDataScope() {
         UserDetails userDetails = getCurrentUser();
         JSONArray array = JSONUtil.parseArray(new JSONObject(userDetails).get("dataScopes"));
-        return JSONUtil.toList(array, Long.class);
+        return JSONUtil.toList(array, String.class);
     }
 
     /**
@@ -96,7 +96,7 @@ public class SecurityUtils {
      * @return 级别
      */
     public static String getDataScopeType() {
-        List<Long> dataScopes = getCurrentUserDataScope();
+        List<String> dataScopes = getCurrentUserDataScope();
         if (dataScopes.size() != 0) {
             return "";
         }

+ 4 - 0
eladmin-logging/eladmin-logging.iml

@@ -7,6 +7,9 @@
     <facet type="web" name="Web">
       <configuration>
         <webroots />
+        <sourceRoots>
+          <root url="file://$MODULE_DIR$/src/main/java" />
+        </sourceRoots>
       </configuration>
     </facet>
   </component>
@@ -15,6 +18,7 @@
     <output-test url="file://$MODULE_DIR$/target/test-classes" />
     <content url="file://$MODULE_DIR$">
       <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" generated="true" />
       <excludeFolder url="file://$MODULE_DIR$/target" />
     </content>
     <orderEntry type="inheritedJdk" />

+ 1 - 0
eladmin-system/eladmin-system.iml

@@ -21,6 +21,7 @@
       <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
       <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" generated="true" />
       <excludeFolder url="file://$MODULE_DIR$/target" />
     </content>
     <orderEntry type="inheritedJdk" />

+ 4 - 2
eladmin-system/src/main/java/me/zhengjie/modules/dm/user/domain/DmUser.java

@@ -48,8 +48,7 @@ public class DmUser extends BaseEntity implements Serializable {
     @Column(name = "id")
     @NotNull(groups = BaseEntity.Update.class)
     @ApiModelProperty(value = "id")
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private Long id;
+    private String id;
 
     @Column(name = "name",nullable = false)
     @NotBlank
@@ -100,6 +99,9 @@ public class DmUser extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "是否是审批人")
     private Boolean isApprover = false;
 
+    @ApiModelProperty(value = "用户编号")
+    private String usercode;
+
     /*@Column(name = "create_by")
     @ApiModelProperty(value = "创建者")
     private String createBy;

+ 1 - 1
eladmin-system/src/main/java/me/zhengjie/modules/dm/user/repository/DmUserRepository.java

@@ -28,7 +28,7 @@ import java.util.List;
 * @author shiguangji
 * @date 2021-03-09
 **/
-public interface DmUserRepository extends JpaRepository<DmUser, Long>, JpaSpecificationExecutor<DmUser> {
+public interface DmUserRepository extends JpaRepository<DmUser, String>, JpaSpecificationExecutor<DmUser> {
 
     /**
      * 查询未绑定账户的用户

+ 3 - 3
eladmin-system/src/main/java/me/zhengjie/modules/dm/user/rest/DmUserController.java

@@ -123,9 +123,9 @@ public class DmUserController {
     @ApiOperation("删除会议用户")
     @PreAuthorize("@el.check('dmUser:del')")
     @DeleteMapping
-    public ResponseEntity<Object> delete(@RequestBody Long[] ids) {
+    public ResponseEntity<Object> delete(@RequestBody String[] ids) {
         //判断是否关联账号
-        for(Long id : ids){
+        for(String id : ids){
             List<User> users = userService.findByDmUserId(id,null);
             if(users != null && users.size() > 0){
                 throw new BadRequestException("删除的用户存在关联的账号,请先解绑账号");
@@ -138,7 +138,7 @@ public class DmUserController {
     @GetMapping(value="/findNotBindUser")
     @Log("查询未绑定账号的会议用户")
     @ApiOperation("查询未绑定账号的会议用户")
-    public ResponseEntity<Object> findNotBindUser(Long userId){
+    public ResponseEntity<Object> findNotBindUser(String userId){
         return new ResponseEntity<>(dmUserService.findNotBindUser(userId),HttpStatus.OK);
     }
 }

+ 3 - 3
eladmin-system/src/main/java/me/zhengjie/modules/dm/user/service/DmUserService.java

@@ -52,7 +52,7 @@ public interface DmUserService {
      * @param id ID
      * @return DmUserDto
      */
-    DmUserDto findById(Long id);
+    DmUserDto findById(String id);
 
     /**
     * 创建
@@ -71,7 +71,7 @@ public interface DmUserService {
     * 多选删除
     * @param ids /
     */
-    void deleteAll(Long[] ids);
+    void deleteAll(String[] ids);
 
     /**
     * 导出数据
@@ -86,5 +86,5 @@ public interface DmUserService {
      * @param userId
      * @return
      */
-    List<DmUser> findNotBindUser(Long userId);
+    List<DmUser> findNotBindUser(String userId);
 }

+ 1 - 1
eladmin-system/src/main/java/me/zhengjie/modules/dm/user/service/dto/DmUserDto.java

@@ -34,7 +34,7 @@ import java.util.Set;
 @Data
 public class DmUserDto extends BaseDTO implements Serializable {
 
-    private Long id;
+    private String id;
 
     /** 姓名 */
     private String name;

+ 19 - 19
eladmin-system/src/main/java/me/zhengjie/modules/dm/user/service/impl/DmUserServiceImpl.java

@@ -33,12 +33,9 @@ import cn.hutool.core.util.IdUtil;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.io.IOException;
 import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
 
 /**
 * @website https://el-admin.vip
@@ -68,10 +65,13 @@ public class DmUserServiceImpl implements DmUserService {
 
     @Override
     @Transactional
-    public DmUserDto findById(Long id) {
-        DmUser dmUser = dmUserRepository.findById(id).orElseGet(DmUser::new);
-        ValidationUtil.isNull(dmUser.getId(),"DmUser","id",id);
-        return dmUserMapper.toDto(dmUser);
+    public DmUserDto findById(String id) {
+        Optional<DmUser> dmUser = dmUserRepository.findById(id);
+        if (!dmUser.isPresent()) {
+            return null;
+        }
+        ValidationUtil.isNull(dmUser.get().getId(), "DmUser", "id", id);
+        return dmUserMapper.toDto(dmUser.get());
     }
 
     @Override
@@ -79,10 +79,10 @@ public class DmUserServiceImpl implements DmUserService {
     public DmUserDto create(DmUser resources) {
 //        resources.setId(IdUtil.simpleUUID());
         //判断邮箱是否重复
-        DmUser user = dmUserRepository.findByEmail(resources.getEmail());
-        if (user != null) {
-            throw new EntityExistException(DmUser.class, "email", resources.getEmail());
-        }
+//        DmUser user = dmUserRepository.findByEmail(resources.getEmail());
+//        if (user != null) {
+//            throw new EntityExistException(DmUser.class, "email", resources.getEmail());
+//        }
         return dmUserMapper.toDto(dmUserRepository.save(resources));
     }
 
@@ -92,18 +92,18 @@ public class DmUserServiceImpl implements DmUserService {
         DmUser dmUser = dmUserRepository.findById(resources.getId()).orElseGet(DmUser::new);
         ValidationUtil.isNull( dmUser.getId(),"DmUser","id",resources.getId());
         //判断邮箱是否重复
-        DmUser user = dmUserRepository.findByEmail(resources.getEmail());
-        if (user != null && !dmUser.getId().equals(user.getId())) {
-            throw new EntityExistException(DmUser.class, "email", resources.getEmail());
-        }
+//        DmUser user = dmUserRepository.findByEmail(resources.getEmail());
+//        if (user != null && !dmUser.getId().equals(user.getId())) {
+//            throw new EntityExistException(DmUser.class, "email", resources.getEmail());
+//        }
         dmUser.copy(resources);
         dmUserRepository.save(dmUser);
 
     }
 
     @Override
-    public void deleteAll(Long[] ids) {
-        for (Long id : ids) {
+    public void deleteAll(String[] ids) {
+        for (String id : ids) {
             dmUserRepository.deleteById(id);
         }
     }
@@ -129,7 +129,7 @@ public class DmUserServiceImpl implements DmUserService {
     }
 
     @Override
-    public List<DmUser> findNotBindUser(Long userId) {
+    public List<DmUser> findNotBindUser(String userId) {
         String param = "";
         if(userId != null){
             param = userId+"";

+ 1 - 1
eladmin-system/src/main/java/me/zhengjie/modules/dm/user/util/DmUserUtils.java

@@ -15,7 +15,7 @@ public class DmUserUtils {
 
     public static DmUserDto getCurrDmUser(){
         UserService userService = SpringContextHolder.getBean(UserService.class);
-        Long userId = SecurityUtils.getCurrentUserId();
+        String userId = SecurityUtils.getCurrentUserId();
         //获取账号关联的DM用户
         UserDto userDto = userService.findById(userId);
         DmUserDto dmUser = userDto.getDmUser();

+ 182 - 49
eladmin-system/src/main/java/me/zhengjie/modules/quartz/task/ErpDataSyncTask.java

@@ -20,11 +20,25 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import me.zhengjie.modules.dm.company.domain.DmCompany;
+import me.zhengjie.modules.dm.user.domain.DmUser;
+import me.zhengjie.modules.dm.user.service.DmUserService;
+import me.zhengjie.modules.dm.user.service.dto.DmUserDto;
 import me.zhengjie.modules.system.domain.Dept;
+import me.zhengjie.modules.system.domain.Job;
+import me.zhengjie.modules.system.domain.Role;
+import me.zhengjie.modules.system.domain.User;
 import me.zhengjie.modules.system.service.DeptService;
+import me.zhengjie.modules.system.service.UserService;
 import me.zhengjie.modules.system.service.dto.DeptDto;
+import me.zhengjie.modules.system.service.dto.UserDto;
+import me.zhengjie.utils.StringUtils;
 import org.springframework.stereotype.Component;
 
+import java.util.HashSet;
+import java.util.Set;
+import java.util.UUID;
+
 /**
  * ERP 数据同步
  * @author Sky
@@ -34,61 +48,98 @@ import org.springframework.stereotype.Component;
 @Component
 public class ErpDataSyncTask {
 
-    private final String erpApiUrl = "http://222.84.157.37:30170";
+    private final String erpApiUrl = "http://121.31.41.88:29312";
     private final String sign = "e34b2f59-0e9d-45ed-a32a-f4abd4381000";
     private final String header_key = "X_AUTO_USER_INFO_HEAD";
     private final String header_value = "{\"id\":\"anonymous\",\"tenantId\":\"caih\"}";
 
     private final DeptService deptService;
+    private final UserService userService;
+    private final DmUserService dmUserService;
 
     public void run() {
         log.info("deptsync 执行开始");
-        deptsync();
+//        deptsync();
         log.info("deptsync 执行结束");
-    }
 
-    /**
-     * 部门数据同步
-     */
-    private void deptsync() {
+        log.info("usersync 执行开始");
+        usersync();
+        log.info("usersync 执行结束");
+    }
 
-        String res = HttpRequest.get(erpApiUrl + "/api-third-party/busi/comm/usky/queryGroup")
+    private JSONObject getDatas(String api, int pagenum, int pagesize) {
+        String res = HttpRequest.get(erpApiUrl + api)
                 .header(header_key, header_value)
                 .body("{\n" +
                         "    \"formData\":{\n" +
-                        "        \"pageNum\":1,\n" +
-                        "        \"pageSize\":100\n" +
+                        "        \"pageNum\":" + pagenum + ",\n" +
+                        "        \"pageSize\":" + pagesize + "\n" +
                         "    },\n" +
                         "    \"product\":\"17\",\n" +
                         "    \"sign\":\"" + sign + "\"\n" +
                         "}").execute().body();
         JSONObject json = JSONObject.parseObject(res);
-        JSONArray datas = json.getJSONArray("data");
-        JSONObject item;
-        Dept dept;
-        for (int i = 0; i < datas.size(); i++) {
-            item = datas.getJSONObject(i);
-            dept = new Dept();
-            dept.setId(item.getString("groupId"));
-            dept.setName(item.getString("groupName"));
-
-            if(item.getString("parentId").equals("~")){
-                dept.setPid(null);
-            }else{
-                dept.setPid(item.getString("parentId"));
-            }
-            dept.setDeptSort(item.getInteger("sort"));
-            dept.setEnabled(item.getBoolean("groupStatus"));
-            dept.setTreeNames(item.getString("groupNamePath"));
-            dept.setTreeIds(item.getString("groupIdPath"));
-            dept.setDeptType(item.getInteger("groupType"));
-
-            DeptDto deptDto = deptService.findById(item.getString("groupId"));
-
-            if (deptDto != null) {
-                deptService.update(dept);
-            } else {
-                deptService.create(dept);
+        return json;
+    }
+
+    private int gettotal(String api) {
+        JSONObject json = getDatas(api, 0, 100);
+        return json.getJSONObject("page").getInteger("totalCount");
+    }
+
+    /**
+     * 部门数据同步
+     */
+    private void deptsync() {
+        String api = "/api-third-party/busi/comm/usky/queryGroup";
+
+        //计算总页数
+        int total = gettotal(api);
+        int pagesize = 100;
+        int pagetotal = (total / pagesize);
+        if (total % pagesize != 0) {
+            pagetotal++;
+        }
+
+        //按页获取
+        for (int k = 0; k < pagetotal; k++) {
+            JSONObject json = getDatas(api, k, pagesize);
+            JSONArray datas = json.getJSONArray("data");
+            JSONObject item;
+            Dept dept;
+            for (int i = 0; i < datas.size(); i++) {
+                item = datas.getJSONObject(i);
+                dept = new Dept();
+
+                if (StringUtils.isBlank(item.getString("groupId"))) {
+                    dept.setId(UUID.randomUUID().toString());
+                } else {
+                    dept.setId(item.getString("groupId"));
+                }
+                dept.setName(item.getString("groupName"));
+
+                if (item.getString("parentId").equals("~")) {
+                    dept.setPid(null);
+                } else {
+                    dept.setPid(item.getString("parentId"));
+                }
+                dept.setDeptSort(item.getInteger("sort"));
+                dept.setEnabled(item.getBoolean("groupStatus"));
+                dept.setTreeNames(item.getString("groupNamePath"));
+                dept.setTreeIds(item.getString("groupIdPath"));
+                dept.setDeptType(item.getInteger("groupType"));
+                dept.setDescription(item.getString("groupName"));
+
+                try {
+                    DeptDto deptDto = deptService.findById(item.getString("groupId"));
+                    if (deptDto != null) {
+                        deptService.update(dept);
+                    } else {
+                        deptService.create(dept);
+                    }
+                } catch (Exception ex) {
+                    System.out.println(JSONObject.toJSON(dept));
+                }
             }
         }
     }
@@ -96,19 +147,101 @@ public class ErpDataSyncTask {
     /**
      * 人员数据同步
      */
-    private void usersyncbydepid(String depid) {
-        String res = HttpRequest.get(erpApiUrl + "/api-third-party/busi/comm/usky/queryUser")
-                .header(header_key, header_value)
-                .body("{\n" +
-                        "    \"formData\":{\n" +
-                        "        \"pageNum\":1,\n" +
-                        "        \"pageSize\":100\n" +
-                        "    },\n" +
-                        "    \"product\":\"17\",\n" +
-                        "    \"sign\":\"" + sign + "\"\n" +
-                        "}").execute().body();
-        JSONObject json = JSONObject.parseObject(res);
-        JSONArray datas = json.getJSONArray("data");
+    private void usersync() {
+
+        String api = "/api-third-party/busi/comm/usky/queryUser";
+
+        //计算总页数
+        int total = gettotal(api);
+        int pagesize = 100;
+        int pagetotal = (total / pagesize);
+        if (total % pagesize != 0) {
+            pagetotal++;
+        }
 
+        //按页获取
+        for (int k = 0; k < pagetotal; k++) {
+            JSONObject json = getDatas(api, k, pagesize);
+            JSONArray datas = json.getJSONArray("data");
+            JSONObject item;
+            User user;
+            UserDto userDto;
+            Dept dept;
+            DmUser dmUser;
+            DmCompany dmCompany;
+            DmUserDto dmUserDto;
+            for (int i = 0; i < datas.size(); i++) {
+                item = datas.getJSONObject(i);
+                user = new User();
+                user.setId(item.getString("userId"));
+                user.setUsercode(item.getString("usercode"));
+                user.setNickName(item.getString("userName"));
+                user.setUsername(item.getString("userAccount"));
+
+                if(StringUtils.isBlank(item.getString("sex"))){
+                    user.setGender("");
+                }else{
+                    user.setGender(item.getString("sex").equals("m") ? "男" : "女");
+                }
+
+                user.setEmail(item.getString("email"));
+                user.setPhone(item.getString("mobile"));
+                user.setPassword("12345678");
+                user.setEnabled(item.getInteger("userStatus") == 1);
+                user.setIsAdmin(false);
+                user.setOrgPassword("12345678");
+                dept = new Dept();
+                dept.setId(item.getString("userGroupId"));
+                if (StringUtils.isBlank(dept.getId())) {
+                    dept.setId("0001T110000000000UKL");
+                }
+                user.setDept(dept);
+
+                Set<Job> jobs = new HashSet<Job>();
+                Job job = new Job();
+                job.setId("10");
+                jobs.add(job);
+                user.setJobs(jobs);
+
+                Set<Role> roles = new HashSet<Role>();
+                Role role = new Role();
+                role.setId("2");
+                roles.add(role);
+                user.setRoles(roles);
+
+                dmUser = new DmUser();
+                dmUser.setDept(dept);
+                dmUser.setId(user.getId());
+                dmUser.setEmail(user.getEmail());
+                dmUser.setContacts(user.getPhone());
+                dmUser.setName(user.getNickName());
+                dmUser.setSex(user.getGender());
+                dmUser.setUsercode(user.getUsercode());
+                dmUser.setJobs(jobs);
+                dmUser.setRoles(roles);
+
+                try {
+                    //1、入用户库
+                    dmUserDto = dmUserService.findById(dmUser.getId());
+
+                    if (dmUserDto != null) {
+                        dmUserService.update(dmUser);
+                    } else {
+                        dmUserService.create(dmUser);
+                    }
+                    user.setDmUser(dmUser);
+
+                    //2、入账户库并与用户库关联
+                    userDto = userService.findById(user.getId());
+                    if (userDto != null) {
+                        userService.update(user);
+                    } else {
+                        userService.create(user);
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
     }
 }

+ 1 - 2
eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Job.java

@@ -39,8 +39,7 @@ public class Job extends BaseEntity implements Serializable {
     @Column(name = "job_id")
     @NotNull(groups = Update.class)
     @ApiModelProperty(value = "ID", hidden = true)
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private Long id;
+    private String id;
 
     @NotBlank
     @ApiModelProperty(value = "岗位名称")

+ 2 - 3
eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Menu.java

@@ -41,8 +41,7 @@ public class Menu extends BaseEntity implements Serializable {
     @Column(name = "menu_id")
     @NotNull(groups = {Update.class})
     @ApiModelProperty(value = "ID", hidden = true)
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private Long id;
+    private String id;
 
     @JSONField(serialize = false)
     @ManyToMany(mappedBy = "menus")
@@ -83,7 +82,7 @@ public class Menu extends BaseEntity implements Serializable {
     private Boolean hidden;
 
     @ApiModelProperty(value = "上级菜单")
-    private Long pid;
+    private String pid;
 
     @ApiModelProperty(value = "子节点数目", hidden = true)
     private Integer subCount = 0;

+ 1 - 2
eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Role.java

@@ -43,9 +43,8 @@ public class Role extends BaseEntity implements Serializable {
     @Id
     @Column(name = "role_id")
     @NotNull(groups = {Update.class})
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
     @ApiModelProperty(value = "ID", hidden = true)
-    private Long id;
+    private String id;
 
     @JSONField(serialize = false)
     @ManyToMany(mappedBy = "roles")

+ 4 - 2
eladmin-system/src/main/java/me/zhengjie/modules/system/domain/User.java

@@ -44,9 +44,8 @@ public class User extends BaseEntity implements Serializable {
     @Id
     @Column(name = "user_id")
     @NotNull(groups = Update.class)
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
     @ApiModelProperty(value = "ID", hidden = true)
-    private Long id;
+    private String id;
 
     @ManyToMany
     @ApiModelProperty(value = "用户角色")
@@ -133,6 +132,9 @@ public class User extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "扩展列", hidden = true)
     private String extendsCol;
 
+    @ApiModelProperty(value = "用户编号")
+    private String usercode;
+
     @Override
     public boolean equals(Object o) {
         if (this == o) {

+ 1 - 1
eladmin-system/src/main/java/me/zhengjie/modules/system/repository/DeptRepository.java

@@ -49,7 +49,7 @@ public interface DeptRepository extends JpaRepository<Dept, String>, JpaSpecific
      */
     @Query(value = "select d.* from sys_dept d, sys_roles_depts r where " +
             "d.dept_id = r.dept_id and r.role_id = ?1", nativeQuery = true)
-    Set<Dept> findByRoleId(Long roleId);
+    Set<Dept> findByRoleId(String roleId);
 
     /**
      * 判断是否存在子节点

+ 2 - 2
eladmin-system/src/main/java/me/zhengjie/modules/system/repository/JobRepository.java

@@ -25,7 +25,7 @@ import java.util.Set;
 * @author Zheng Jie
 * @date 2019-03-29
 */
-public interface JobRepository extends JpaRepository<Job, Long>, JpaSpecificationExecutor<Job> {
+public interface JobRepository extends JpaRepository<Job, String>, JpaSpecificationExecutor<Job> {
 
     /**
      * 根据名称查询
@@ -38,5 +38,5 @@ public interface JobRepository extends JpaRepository<Job, Long>, JpaSpecificatio
      * 根据Id删除
      * @param ids /
      */
-    void deleteAllByIdIn(Set<Long> ids);
+    void deleteAllByIdIn(Set<String> ids);
 }

+ 5 - 5
eladmin-system/src/main/java/me/zhengjie/modules/system/repository/MenuRepository.java

@@ -28,7 +28,7 @@ import java.util.Set;
  * @author Zheng Jie
  * @date 2018-12-17
  */
-public interface MenuRepository extends JpaRepository<Menu, Long>, JpaSpecificationExecutor<Menu> {
+public interface MenuRepository extends JpaRepository<Menu, String>, JpaSpecificationExecutor<Menu> {
 
     /**
      * 根据菜单标题查询
@@ -49,7 +49,7 @@ public interface MenuRepository extends JpaRepository<Menu, Long>, JpaSpecificat
      * @param pid /
      * @return /
      */
-    List<Menu> findByPid(long pid);
+    List<Menu> findByPid(String pid);
 
     /**
      * 查询顶级菜单
@@ -65,14 +65,14 @@ public interface MenuRepository extends JpaRepository<Menu, Long>, JpaSpecificat
      */
     @Query(value = "SELECT m.* FROM sys_menu m, sys_roles_menus r WHERE " +
             "m.menu_id = r.menu_id AND r.role_id IN ?1 AND type != ?2 order by m.menu_sort asc",nativeQuery = true)
-    LinkedHashSet<Menu> findByRoleIdsAndTypeNot(Set<Long> roleIds, int type);
+    LinkedHashSet<Menu> findByRoleIdsAndTypeNot(Set<String> roleIds, int type);
 
     /**
      * 获取节点数量
      * @param id /
      * @return /
      */
-    int countByPid(Long id);
+    int countByPid(String id);
 
     /**
      * 更新节点数目
@@ -81,5 +81,5 @@ public interface MenuRepository extends JpaRepository<Menu, Long>, JpaSpecificat
      */
     @Modifying
     @Query(value = " update sys_menu set sub_count = ?1 where menu_id = ?2 ",nativeQuery = true)
-    void updateSubCntById(int count, Long menuId);
+    void updateSubCntById(int count, String menuId);
 }

+ 6 - 6
eladmin-system/src/main/java/me/zhengjie/modules/system/repository/RoleRepository.java

@@ -29,7 +29,7 @@ import java.util.Set;
  * @author Zheng Jie
  * @date 2018-12-03
  */
-public interface RoleRepository extends JpaRepository<Role, Long>, JpaSpecificationExecutor<Role> {
+public interface RoleRepository extends JpaRepository<Role, String>, JpaSpecificationExecutor<Role> {
 
     /**
      * 根据名称查询
@@ -42,7 +42,7 @@ public interface RoleRepository extends JpaRepository<Role, Long>, JpaSpecificat
      * 删除多个角色
      * @param ids /
      */
-    void deleteAllByIdIn(Set<Long> ids);
+    void deleteAllByIdIn(Set<String> ids);
 
     /**
      * 根据用户ID查询
@@ -51,7 +51,7 @@ public interface RoleRepository extends JpaRepository<Role, Long>, JpaSpecificat
      */
     @Query(value = "SELECT r.* FROM sys_role r, sys_users_roles u WHERE " +
             "r.role_id = u.role_id AND u.user_id = ?1",nativeQuery = true)
-    Set<Role> findByUserId(Long id);
+    Set<Role> findByUserId(String id);
 
     /**
      * 解绑角色菜单
@@ -59,7 +59,7 @@ public interface RoleRepository extends JpaRepository<Role, Long>, JpaSpecificat
      */
     @Modifying
     @Query(value = "delete from sys_roles_menus where menu_id = ?1",nativeQuery = true)
-    void untiedMenu(Long id);
+    void untiedMenu(String id);
 
     /**
      * 根据部门查询
@@ -77,7 +77,7 @@ public interface RoleRepository extends JpaRepository<Role, Long>, JpaSpecificat
      */
     @Query(value = "SELECT r.* FROM sys_role r, sys_roles_menus m WHERE " +
             "r.role_id = m.role_id AND m.menu_id in ?1",nativeQuery = true)
-    List<Role> findInMenuId(List<Long> menuIds);
+    List<Role> findInMenuId(List<String> menuIds);
 
     /**
      * 根据角色标识查询
@@ -86,5 +86,5 @@ public interface RoleRepository extends JpaRepository<Role, Long>, JpaSpecificat
      */
     @Query(value = "SELECT r.* FROM sys_role r WHERE " +
             "r.role_key = :roleKey AND if(:id != '',r.role_id != :id,1=1)",nativeQuery = true)
-    List<Role> findByRoleKey(@Param("roleKey") String roleKey,@Param("id") Long id);
+    List<Role> findByRoleKey(@Param("roleKey") String roleKey,@Param("id") String id);
 }

+ 7 - 7
eladmin-system/src/main/java/me/zhengjie/modules/system/repository/UserRepository.java

@@ -30,7 +30,7 @@ import java.util.Set;
  * @author Zheng Jie
  * @date 2018-11-22
  */
-public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificationExecutor<User> {
+public interface UserRepository extends JpaRepository<User, String>, JpaSpecificationExecutor<User> {
 
     /**
      * 根据用户名查询
@@ -79,7 +79,7 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
      */
     @Query(value = "SELECT u.* FROM sys_user u, sys_users_roles r WHERE" +
             " u.user_id = r.user_id AND r.role_id = ?1", nativeQuery = true)
-    List<User> findByRoleId(Long roleId);
+    List<User> findByRoleId(String roleId);
 
     /**
      * 根据角色中的部门查询
@@ -97,13 +97,13 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
      */
     @Query(value = "SELECT u.* FROM sys_user u, sys_users_roles ur, sys_roles_menus rm WHERE\n" +
             "u.user_id = ur.user_id AND ur.role_id = rm.role_id AND rm.menu_id = ?1 group by u.user_id", nativeQuery = true)
-    List<User> findByMenuId(Long id);
+    List<User> findByMenuId(String id);
 
     /**
      * 根据Id删除
      * @param ids /
      */
-    void deleteAllByIdIn(Set<Long> ids);
+    void deleteAllByIdIn(Set<String> ids);
 
     /**
      * 根据岗位查询
@@ -111,7 +111,7 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
      * @return /
      */
     @Query(value = "SELECT count(1) FROM sys_user u, sys_users_jobs j WHERE u.user_id = j.user_id AND j.job_id IN ?1", nativeQuery = true)
-    int countByJobs(Set<Long> ids);
+    int countByJobs(Set<String> ids);
 
     /**
      * 根据部门查询
@@ -128,9 +128,9 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
      */
     @Query(value = "SELECT count(1) FROM sys_user u, sys_users_roles r WHERE " +
             "u.user_id = r.user_id AND r.role_id in ?1", nativeQuery = true)
-    int countByRoles(Set<Long> ids);
+    int countByRoles(Set<String> ids);
 
     @Query(value = "SELECT u.* FROM sys_user u WHERE " +
             "u.dm_user_id = :dmUserId AND if(:userId != '',u.user_id != :userId,1=1)",nativeQuery = true)
-    List<User> findByDmUserId(@Param("dmUserId")Long dmUserId, @Param("userId") Long userId);
+    List<User> findByDmUserId(@Param("dmUserId")String dmUserId, @Param("userId") String userId);
 }

+ 0 - 1
eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DeptController.java

@@ -69,7 +69,6 @@ public class DeptController {
         return new ResponseEntity<>(PageUtil.toPage(deptDtos, deptDtos.size()),HttpStatus.OK);
     }
 
-
     @ApiOperation("查询部门:根据ID获取同级与上级数据")
     @PostMapping("/superior")
     @PreAuthorize("@el.check('user:list','dept:list')")

+ 1 - 1
eladmin-system/src/main/java/me/zhengjie/modules/system/rest/JobController.java

@@ -85,7 +85,7 @@ public class JobController {
     @ApiOperation("删除岗位")
     @DeleteMapping
     @PreAuthorize("@el.check('job:del')")
-    public ResponseEntity<Object> delete(@RequestBody Set<Long> ids){
+    public ResponseEntity<Object> delete(@RequestBody Set<String> ids){
         // 验证是否被用户关联
         jobService.verification(ids);
         jobService.delete(ids);

+ 10 - 9
eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java

@@ -61,28 +61,29 @@ public class MenuController {
 
     @GetMapping(value = "/build")
     @ApiOperation("获取前端所需菜单")
-    public ResponseEntity<Object> buildMenus(){
+    public ResponseEntity<Object> buildMenus() {
         List<MenuDto> menuDtoList = menuService.findByUser(SecurityUtils.getCurrentUserId());
         List<MenuDto> menuDtos = menuService.buildTree(menuDtoList);
-        return new ResponseEntity<>(menuService.buildMenus(menuDtos),HttpStatus.OK);
+        Object res = menuService.buildMenus(menuDtos);
+        return new ResponseEntity<>(res, HttpStatus.OK);
     }
 
     @ApiOperation("返回全部的菜单")
     @GetMapping(value = "/lazy")
     @PreAuthorize("@el.check('menu:list','roles:list')")
-    public ResponseEntity<Object> query(@RequestParam Long pid){
+    public ResponseEntity<Object> query(@RequestParam String pid){
         return new ResponseEntity<>(menuService.getMenus(pid),HttpStatus.OK);
     }
 
     @ApiOperation("根据菜单ID返回所有子节点ID,包含自身ID")
     @GetMapping(value = "/child")
     @PreAuthorize("@el.check('menu:list','roles:list')")
-    public ResponseEntity<Object> child(@RequestParam Long id){
+    public ResponseEntity<Object> child(@RequestParam String id){
         Set<Menu> menuSet = new HashSet<>();
         List<MenuDto> menuList = menuService.getMenus(id);
         menuSet.add(menuService.findOne(id));
         menuSet = menuService.getChildMenus(menuMapper.toEntity(menuList), menuSet);
-        Set<Long> ids = menuSet.stream().map(Menu::getId).collect(Collectors.toSet());
+        Set<String> ids = menuSet.stream().map(Menu::getId).collect(Collectors.toSet());
         return new ResponseEntity<>(ids,HttpStatus.OK);
     }
 
@@ -97,10 +98,10 @@ public class MenuController {
     @ApiOperation("查询菜单:根据ID获取同级与上级数据")
     @PostMapping("/superior")
     @PreAuthorize("@el.check('menu:list')")
-    public ResponseEntity<Object> getSuperior(@RequestBody List<Long> ids) {
+    public ResponseEntity<Object> getSuperior(@RequestBody List<String> ids) {
         Set<MenuDto> menuDtos = new LinkedHashSet<>();
         if(CollectionUtil.isNotEmpty(ids)){
-            for (Long id : ids) {
+            for (String id : ids) {
                 MenuDto menuDto = menuService.findById(id);
                 menuDtos.addAll(menuService.getSuperior(menuDto, new ArrayList<>()));
             }
@@ -134,9 +135,9 @@ public class MenuController {
     @ApiOperation("删除菜单")
     @DeleteMapping
     @PreAuthorize("@el.check('menu:del')")
-    public ResponseEntity<Object> delete(@RequestBody Set<Long> ids){
+    public ResponseEntity<Object> delete(@RequestBody Set<String> ids){
         Set<Menu> menuSet = new HashSet<>();
-        for (Long id : ids) {
+        for (String id : ids) {
             List<MenuDto> menuList = menuService.getMenus(id);
             menuSet.add(menuService.findOne(id));
             menuSet = menuService.getChildMenus(menuMapper.toEntity(menuList), menuSet);

+ 3 - 3
eladmin-system/src/main/java/me/zhengjie/modules/system/rest/RoleController.java

@@ -57,7 +57,7 @@ public class RoleController {
     @ApiOperation("获取单个role")
     @GetMapping(value = "/{id}")
     @PreAuthorize("@el.check('roles:list')")
-    public ResponseEntity<Object> query(@PathVariable Long id){
+    public ResponseEntity<Object> query(@PathVariable String id){
         return new ResponseEntity<>(roleService.findById(id), HttpStatus.OK);
     }
 
@@ -126,8 +126,8 @@ public class RoleController {
     @ApiOperation("删除角色")
     @DeleteMapping
     @PreAuthorize("@el.check('roles:del')")
-    public ResponseEntity<Object> delete(@RequestBody Set<Long> ids){
-        for (Long id : ids) {
+    public ResponseEntity<Object> delete(@RequestBody Set<String> ids){
+        for (String id : ids) {
             RoleDto role = roleService.findById(id);
             getLevels(role.getLevel());
         }

+ 3 - 3
eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java

@@ -142,8 +142,8 @@ public class UserController {
     @ApiOperation("删除用户")
     @DeleteMapping
     @PreAuthorize("@el.check('user:del')")
-    public ResponseEntity<Object> delete(@RequestBody Set<Long> ids){
-        for (Long id : ids) {
+    public ResponseEntity<Object> delete(@RequestBody Set<String> ids){
+        for (String id : ids) {
             Integer currentLevel =  Collections.min(roleService.findByUsersId(SecurityUtils.getCurrentUserId()).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList()));
             Integer optLevel =  Collections.min(roleService.findByUsersId(id).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList()));
             if (currentLevel > optLevel) {
@@ -205,7 +205,7 @@ public class UserController {
     @ApiOperation("解绑用户")
     @PostMapping(value = "/unBindDmUser")
     @Log("解绑账号用户")
-    public ResponseEntity<Object> unBindDmUser(@RequestBody Set<Long> ids) throws Exception{
+    public ResponseEntity<Object> unBindDmUser(@RequestBody Set<String> ids) throws Exception{
         userService.unBindDmUser(ids);
         return new ResponseEntity<>(HttpStatus.OK);
     }

+ 1 - 1
eladmin-system/src/main/java/me/zhengjie/modules/system/service/DeptService.java

@@ -105,7 +105,7 @@ public interface DeptService {
      * @param id /
      * @return /
      */
-    Set<Dept> findByRoleId(Long id);
+    Set<Dept> findByRoleId(String id);
 
     /**
      * 导出数据

+ 3 - 3
eladmin-system/src/main/java/me/zhengjie/modules/system/service/JobService.java

@@ -36,7 +36,7 @@ public interface JobService {
      * @param id /
      * @return /
      */
-    JobDto findById(Long id);
+    JobDto findById(String id);
 
     /**
      * 创建
@@ -55,7 +55,7 @@ public interface JobService {
      * 删除
      * @param ids /
      */
-    void delete(Set<Long> ids);
+    void delete(Set<String> ids);
 
     /**
      * 分页查询
@@ -84,5 +84,5 @@ public interface JobService {
      * 验证是否被用户关联
      * @param ids /
      */
-    void verification(Set<Long> ids);
+    void verification(Set<String> ids);
 }

+ 4 - 4
eladmin-system/src/main/java/me/zhengjie/modules/system/service/MenuService.java

@@ -44,7 +44,7 @@ public interface MenuService {
      * @param id /
      * @return /
      */
-    MenuDto findById(long id);
+    MenuDto findById(String id);
 
     /**
      * 创建
@@ -85,7 +85,7 @@ public interface MenuService {
      * @param id /
      * @return /
      */
-    Menu findOne(Long id);
+    Menu findOne(String id);
 
     /**
      * 删除
@@ -106,7 +106,7 @@ public interface MenuService {
      * @param pid /
      * @return /
      */
-    List<MenuDto> getMenus(Long pid);
+    List<MenuDto> getMenus(String pid);
 
     /**
      * 根据ID获取同级与上级数据
@@ -121,5 +121,5 @@ public interface MenuService {
      * @param currentUserId /
      * @return /
      */
-    List<MenuDto> findByUser(Long currentUserId);
+    List<MenuDto> findByUser(String currentUserId);
 }

+ 6 - 6
eladmin-system/src/main/java/me/zhengjie/modules/system/service/RoleService.java

@@ -44,7 +44,7 @@ public interface RoleService {
      * @param id /
      * @return /
      */
-    RoleDto findById(long id);
+    RoleDto findById(String id);
 
     /**
      * 创建
@@ -62,14 +62,14 @@ public interface RoleService {
      * 删除
      * @param ids /
      */
-    void delete(Set<Long> ids);
+    void delete(Set<String> ids);
 
     /**
      * 根据用户ID查询
      * @param id 用户ID
      * @return /
      */
-    List<RoleSmallDto> findByUsersId(Long id);
+    List<RoleSmallDto> findByUsersId(String id);
 
     /**
      * 根据角色查询角色级别
@@ -89,7 +89,7 @@ public interface RoleService {
      * 解绑菜单
      * @param id /
      */
-    void untiedMenu(Long id);
+    void untiedMenu(String id);
 
     /**
      * 待条件分页查询
@@ -125,12 +125,12 @@ public interface RoleService {
      * 验证是否被用户关联
      * @param ids /
      */
-    void verification(Set<Long> ids);
+    void verification(Set<String> ids);
 
     /**
      * 根据菜单Id查询
      * @param menuIds /
      * @return /
      */
-    List<Role> findInMenuId(List<Long> menuIds);
+    List<Role> findInMenuId(List<String> menuIds);
 }

+ 4 - 4
eladmin-system/src/main/java/me/zhengjie/modules/system/service/UserService.java

@@ -37,7 +37,7 @@ public interface UserService {
      * @param id ID
      * @return /
      */
-    UserDto findById(long id);
+    UserDto findById(String id);
 
     /**
      * 新增用户
@@ -55,7 +55,7 @@ public interface UserService {
      * 删除用户
      * @param ids /
      */
-    void delete(Set<Long> ids);
+    void delete(Set<String> ids);
 
     /**
      * 根据用户名查询
@@ -114,11 +114,11 @@ public interface UserService {
      */
     void updateCenter(User resources);
 
-    List<User> findByDmUserId(Long dmUserId,Long userId);
+    List<User> findByDmUserId(String dmUserId,String userId);
 
     /**
      * 解绑用户
      * @param ids
      */
-    void unBindDmUser(Set<Long> ids) throws Exception;
+    void unBindDmUser(Set<String> ids) throws Exception;
 }

+ 1 - 1
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/JobDto.java

@@ -31,7 +31,7 @@ import java.io.Serializable;
 @NoArgsConstructor
 public class JobDto extends BaseDTO implements Serializable {
 
-    private Long id;
+    private String id;
 
     private Integer jobSort;
 

+ 2 - 2
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/MenuDto.java

@@ -30,7 +30,7 @@ import java.util.Objects;
 @Setter
 public class MenuDto extends BaseDTO implements Serializable {
 
-    private Long id;
+    private String id;
 
     private List<MenuDto> children;
 
@@ -46,7 +46,7 @@ public class MenuDto extends BaseDTO implements Serializable {
 
     private String component;
 
-    private Long pid;
+    private String pid;
 
     private Integer subCount;
 

+ 1 - 1
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/RoleSmallDto.java

@@ -25,7 +25,7 @@ import java.io.Serializable;
 @Data
 public class RoleSmallDto implements Serializable {
 
-    private Long id;
+    private String id;
 
     private String name;
 

+ 1 - 1
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/UserDto.java

@@ -36,7 +36,7 @@ import java.util.Set;
 @Setter
 public class UserDto extends BaseDTO implements Serializable {
 
-    private Long id;
+    private String id;
 
     private Set<RoleSmallDto> roles;
 

+ 1 - 1
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DeptServiceImpl.java

@@ -161,7 +161,7 @@ public class DeptServiceImpl implements DeptService {
     }
 
     @Override
-    public Set<Dept> findByRoleId(Long id) {
+    public Set<Dept> findByRoleId(String id) {
         return deptRepository.findByRoleId(id);
     }
 

+ 3 - 3
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/JobServiceImpl.java

@@ -65,7 +65,7 @@ public class JobServiceImpl implements JobService {
 
     @Override
     @Cacheable(key = "'id:' + #p0")
-    public JobDto findById(Long id) {
+    public JobDto findById(String id) {
         Job job = jobRepository.findById(id).orElseGet(Job::new);
         ValidationUtil.isNull(job.getId(),"Job","id",id);
         return jobMapper.toDto(job);
@@ -97,7 +97,7 @@ public class JobServiceImpl implements JobService {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void delete(Set<Long> ids) {
+    public void delete(Set<String> ids) {
         jobRepository.deleteAllByIdIn(ids);
         // 删除缓存
         redisUtils.delByKeys(CacheKey.JOB_ID, ids);
@@ -117,7 +117,7 @@ public class JobServiceImpl implements JobService {
     }
 
     @Override
-    public void verification(Set<Long> ids) {
+    public void verification(Set<String> ids) {
         if(userRepository.countByJobs(ids) > 0){
             throw new BadRequestException("所选的岗位中存在用户关联,请解除关联再试!");
         }

+ 12 - 12
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java

@@ -83,7 +83,7 @@ public class MenuServiceImpl implements MenuService {
 
     @Override
     @Cacheable(key = "'id:' + #p0")
-    public MenuDto findById(long id) {
+    public MenuDto findById(String id) {
         Menu menu = menuRepository.findById(id).orElseGet(Menu::new);
         ValidationUtil.isNull(menu.getId(),"Menu","id",id);
         return menuMapper.toDto(menu);
@@ -96,9 +96,9 @@ public class MenuServiceImpl implements MenuService {
      */
     @Override
     @Cacheable(key = "'user:' + #p0")
-    public List<MenuDto> findByUser(Long currentUserId) {
+    public List<MenuDto> findByUser(String currentUserId) {
         List<RoleSmallDto> roles = roleService.findByUsersId(currentUserId);
-        Set<Long> roleIds = roles.stream().map(RoleSmallDto::getId).collect(Collectors.toSet());
+        Set<String> roleIds = roles.stream().map(RoleSmallDto::getId).collect(Collectors.toSet());
         LinkedHashSet<Menu> menus = menuRepository.findByRoleIdsAndTypeNot(roleIds, 2);
         return menus.stream().map(menuMapper::toDto).collect(Collectors.toList());
     }
@@ -156,8 +156,8 @@ public class MenuServiceImpl implements MenuService {
         }
 
         // 记录的父节点ID
-        Long oldPid = menu.getPid();
-        Long newPid = resources.getPid();
+        String oldPid = menu.getPid();
+        String newPid = resources.getPid();
 
         if(StringUtils.isNotBlank(resources.getComponentName())){
             menu1 = menuRepository.findByComponentName(resources.getComponentName());
@@ -210,7 +210,7 @@ public class MenuServiceImpl implements MenuService {
     }
 
     @Override
-    public List<MenuDto> getMenus(Long pid) {
+    public List<MenuDto> getMenus(String pid) {
         List<Menu> menus;
         if(pid != null && !pid.equals(0L)){
             menus = menuRepository.findByPid(pid);
@@ -233,9 +233,9 @@ public class MenuServiceImpl implements MenuService {
     @Override
     public List<MenuDto> buildTree(List<MenuDto> menuDtos) {
         List<MenuDto> trees = new ArrayList<>();
-        Set<Long> ids = new HashSet<>();
+        Set<String> ids = new HashSet<>();
         for (MenuDto menuDTO : menuDtos) {
-            if (menuDTO.getPid() == null) {
+            if (menuDTO.getPid() == null || StringUtils.isBlank(menuDTO.getPid())) {
                 trees.add(menuDTO);
             }
             for (MenuDto it : menuDtos) {
@@ -308,7 +308,7 @@ public class MenuServiceImpl implements MenuService {
     }
 
     @Override
-    public Menu findOne(Long id) {
+    public Menu findOne(String id) {
         Menu menu = menuRepository.findById(id).orElseGet(Menu::new);
         ValidationUtil.isNull(menu.getId(),"Menu","id",id);
         return menu;
@@ -331,7 +331,7 @@ public class MenuServiceImpl implements MenuService {
         FileUtil.downloadExcel(list, response);
     }
 
-    private void updateSubCnt(Long menuId){
+    private void updateSubCnt(String menuId){
         if(menuId != null){
             int count = menuRepository.countByPid(menuId);
             menuRepository.updateSubCntById(count, menuId);
@@ -342,12 +342,12 @@ public class MenuServiceImpl implements MenuService {
      * 清理缓存
      * @param id 菜单ID
      */
-    public void delCaches(Long id){
+    public void delCaches(String id){
         List<User> users = userRepository.findByMenuId(id);
         redisUtils.del(CacheKey.MENU_ID + id);
         redisUtils.delByKeys(CacheKey.MENU_USER, users.stream().map(User::getId).collect(Collectors.toSet()));
         // 清除 Role 缓存
-        List<Role> roles = roleService.findInMenuId(new ArrayList<Long>(){{
+        List<Role> roles = roleService.findInMenuId(new ArrayList<String>(){{
             add(id);
         }});
         redisUtils.delByKeys(CacheKey.ROLE_ID, roles.stream().map(Role::getId).collect(Collectors.toSet()));

+ 9 - 9
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java

@@ -84,7 +84,7 @@ public class RoleServiceImpl implements RoleService {
     @Override
     @Cacheable(key = "'id:' + #p0")
     @Transactional(rollbackFor = Exception.class)
-    public RoleDto findById(long id) {
+    public RoleDto findById(String id) {
         Role role = roleRepository.findById(id).orElseGet(Role::new);
         ValidationUtil.isNull(role.getId(), "Role", "id", id);
         return roleMapper.toDto(role);
@@ -137,15 +137,15 @@ public class RoleServiceImpl implements RoleService {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void untiedMenu(Long menuId) {
+    public void untiedMenu(String menuId) {
         // 更新菜单
         roleRepository.untiedMenu(menuId);
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void delete(Set<Long> ids) {
-        for (Long id : ids) {
+    public void delete(Set<String> ids) {
+        for (String id : ids) {
             // 更新相关缓存
             delCaches(id, null);
         }
@@ -153,7 +153,7 @@ public class RoleServiceImpl implements RoleService {
     }
 
     @Override
-    public List<RoleSmallDto> findByUsersId(Long id) {
+    public List<RoleSmallDto> findByUsersId(String id) {
         return roleSmallMapper.toDto(new ArrayList<>(roleRepository.findByUserId(id)));
     }
 
@@ -202,14 +202,14 @@ public class RoleServiceImpl implements RoleService {
     }
 
     @Override
-    public void verification(Set<Long> ids) {
+    public void verification(Set<String> ids) {
         if (userRepository.countByRoles(ids) > 0) {
             throw new BadRequestException("所选角色存在用户关联,请解除关联再试!");
         }
     }
 
     @Override
-    public List<Role> findInMenuId(List<Long> menuIds) {
+    public List<Role> findInMenuId(List<String> menuIds) {
         return roleRepository.findInMenuId(menuIds);
     }
 
@@ -217,11 +217,11 @@ public class RoleServiceImpl implements RoleService {
      * 清理缓存
      * @param id /
      */
-    public void delCaches(Long id, List<User> users) {
+    public void delCaches(String id, List<User> users) {
         users = CollectionUtil.isEmpty(users) ? userRepository.findByRoleId(id) : users;
         if (CollectionUtil.isNotEmpty(users)) {
             users.forEach(item -> userCacheClean.cleanUserCache(item.getUsername()));
-            Set<Long> userIds = users.stream().map(User::getId).collect(Collectors.toSet());
+            Set<String> userIds = users.stream().map(User::getId).collect(Collectors.toSet());
             redisUtils.delByKeys(CacheKey.DATA_USER, userIds);
             redisUtils.delByKeys(CacheKey.MENU_USER, userIds);
             redisUtils.delByKeys(CacheKey.ROLE_AUTH, userIds);

+ 18 - 14
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java

@@ -85,10 +85,14 @@ public class UserServiceImpl implements UserService {
     @Override
     @Cacheable(key = "'id:' + #p0")
     @Transactional(rollbackFor = Exception.class)
-    public UserDto findById(long id) {
-        User user = userRepository.findById(id).orElseGet(User::new);
-        ValidationUtil.isNull(user.getId(), "User", "id", id);
-        return userMapper.toDto(user);
+    public UserDto findById(String id) {
+        Optional<User> user = userRepository.findById(id);
+        if (!user.isPresent()) {
+            return null;
+        } else {
+            ValidationUtil.isNull(user.get().getId(), "User", "id", id);
+            return userMapper.toDto(user.get());
+        }
     }
 
     @Override
@@ -102,9 +106,9 @@ public class UserServiceImpl implements UserService {
         /*if (userRepository.findByEmail(resources.getEmail()) != null) {
             throw new EntityExistException(User.class, "email", resources.getEmail());
         }*/
-        if (userRepository.findByPhone(resources.getPhone()) != null) {
-            throw new EntityExistException(User.class, "phone", resources.getPhone());
-        }
+//        if (userRepository.findByPhone(resources.getPhone()) != null) {
+//            throw new EntityExistException(User.class, "phone", resources.getPhone());
+//        }
         userRepository.save(resources);
     }
 
@@ -184,15 +188,15 @@ public class UserServiceImpl implements UserService {
     }
 
     @Override
-    public List<User> findByDmUserId(Long dmUserId,Long userId) {
+    public List<User> findByDmUserId(String dmUserId,String userId) {
         return userRepository.findByDmUserId(dmUserId,userId);
     }
 
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void delete(Set<Long> ids) {
-        for (Long id : ids) {
+    public void delete(Set<String> ids) {
+        for (String id : ids) {
             // 清理缓存
             UserDto user = findById(id);
             delCaches(user.getId(), user.getUsername());
@@ -268,7 +272,7 @@ public class UserServiceImpl implements UserService {
      *
      * @param id /
      */
-    public void delCaches(Long id, String username) {
+    public void delCaches(String id, String username) {
         redisUtils.del(CacheKey.USER_ID + id);
         flushCache(username);
     }
@@ -288,7 +292,7 @@ public class UserServiceImpl implements UserService {
      */
     public User setDmUserInfoToSysUser(User resources){
         //判断关联的DM用户是否已关联别的账号
-        if(resources.getId() != null && resources.getDmUser() != null && resources.getDmUser().getId() != null){
+        if(resources != null && resources.getDmUser() != null && resources.getDmUser().getId() != null){
             List<User> list = findByDmUserId(resources.getDmUser().getId(),resources.getId());
             if(list != null && list.size() > 0){
                 throw new BadRequestException("该用户已绑定账号,请重新选择绑定用户");
@@ -326,8 +330,8 @@ public class UserServiceImpl implements UserService {
      * 解绑用户
      * @param ids
      */
-    public void unBindDmUser(Set<Long> ids) throws Exception{
-        for(Long id: ids){
+    public void unBindDmUser(Set<String> ids) throws Exception{
+        for(String id: ids){
             //查询用户信息
            User user = userMapper.toEntity(findById(id));
            if(user != null){

+ 4 - 0
eladmin-tools/eladmin-tools.iml

@@ -7,6 +7,9 @@
     <facet type="web" name="Web">
       <configuration>
         <webroots />
+        <sourceRoots>
+          <root url="file://$MODULE_DIR$/src/main/java" />
+        </sourceRoots>
       </configuration>
     </facet>
   </component>
@@ -15,6 +18,7 @@
     <output-test url="file://$MODULE_DIR$/target/test-classes" />
     <content url="file://$MODULE_DIR$">
       <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" generated="true" />
       <excludeFolder url="file://$MODULE_DIR$/target" />
     </content>
     <orderEntry type="inheritedJdk" />