Browse Source

更新文件 SmartAuthorGroupController.java

陈士柏 2 years atrás
parent
commit
78a7e96400
1 changed files with 186 additions and 28 deletions
  1. 186 28
      src/main/java/com/template/controller/SmartAuthorGroupController.java

+ 186 - 28
src/main/java/com/template/controller/SmartAuthorGroupController.java

@@ -22,9 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -63,7 +61,7 @@ public class SmartAuthorGroupController implements SmartAuthorGroupControllerAPI
             String[] userId = sa.getUserId().split(",");
             // 相关判断
             QueryWrapper<SmartAuthorGroup> queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq("deleted", 0);
+            queryWrapper.eq("deleted", "0");
             queryWrapper.eq("parent_id", sa.getParentId());
             queryWrapper.eq("name", sa.getName());
             List<SmartAuthorGroup> querySmartGroup = smartAuthorGroupService.getAuthorGroupByKey(queryWrapper);
@@ -73,11 +71,15 @@ public class SmartAuthorGroupController implements SmartAuthorGroupControllerAPI
             QueryWrapper<SmartAuthority> queryWrapper2 = new QueryWrapper<>();
             List<String> typeList = Arrays.asList(userId);
             queryWrapper2.in("user_id", typeList);
-            queryWrapper2.eq("deleted", 0);
+            queryWrapper2.eq("deleted", "0");
             List<SmartAuthority> querySmart = smartAuthorityService.getAuthorByKey(queryWrapper2);
             if (querySmart.size()>0){
                 return CommonResult.fail("该用户已分配其他权限组");
             }
+            Set<String> set = new HashSet<>(typeList);
+            if (typeList.size()!=set.size()){
+                return CommonResult.fail("请勿选择重复用户");
+            }
             for (int i = 0; i < userId.length; i++) {
                 SmartAuthority smartAuthority = new SmartAuthority();
                 smartAuthority.setUserId(Integer.parseInt(userId[i]));
@@ -94,6 +96,7 @@ public class SmartAuthorGroupController implements SmartAuthorGroupControllerAPI
             sa.setUpdateTime(TimeExchange2.StringToDate(TimeExchange2.getTime(),"yyyy-MM-dd HH:mm:ss"));
             sa.setCreateUser("admin");
             sa.setUpdateUser("admin");
+            sa.setDeleted(0);
             int result = smartAuthorGroupService.insertSmartAuthorGroup(sa);
             return result > 0 ? CommonResult.ok("添加成功") : CommonResult.fail("添加失败");
         }
@@ -120,6 +123,10 @@ public class SmartAuthorGroupController implements SmartAuthorGroupControllerAPI
             if (querySmart.size()>0){
                 return CommonResult.fail("该用户已分配其他权限组");
             }
+            Set<Integer> set = new HashSet<>(uid);
+            if (uid.size()!=set.size()){
+                return CommonResult.fail("请勿选择重复用户");
+            }
             for (int i = 0; i < userAuthors.size(); i++) {
                 SmartAuthority smartAuthority = new SmartAuthority();
                 smartAuthority.setUserId(userAuthors.get(i).getUserId());
@@ -136,6 +143,7 @@ public class SmartAuthorGroupController implements SmartAuthorGroupControllerAPI
             sa.setUpdateTime(TimeExchange2.StringToDate(TimeExchange2.getTime(),"yyyy-MM-dd HH:mm:ss"));
             sa.setCreateUser("admin");
             sa.setUpdateUser("admin");
+            sa.setDeleted(0);
             int result = smartAuthorGroupService.insertSmartAuthorGroup(sa);
             return result > 0 ? CommonResult.ok("添加成功") : CommonResult.fail("添加失败");
         }
@@ -149,7 +157,8 @@ public class SmartAuthorGroupController implements SmartAuthorGroupControllerAPI
      * @return
      */
     @Override
-    public CommonResult updateSmartAuthorGroupById(JSONObject jsonObject, Integer samePower) throws ParseException {
+    @PassToken
+    public CommonResult updateSmartAuthorGroup(JSONObject jsonObject, Integer samePower) throws ParseException {
         if (samePower==null){
             return CommonResult.errorMsg("samePower不能为空");
         }
@@ -158,17 +167,88 @@ public class SmartAuthorGroupController implements SmartAuthorGroupControllerAPI
             AuthorAndGroup authorAndGroup = JSONObject.parseObject(jsonObject.toString(), AuthorAndGroup.class);
             SmartAuthorGroup sa = authorAndGroup.getSmartAuthorGroup();
             String[] userId = sa.getUserId().split(",");
+            // 相关判断
+            QueryWrapper<SmartAuthorGroup> queryWrapperA = new QueryWrapper<>();
+            queryWrapperA.eq("deleted", 0);
+            queryWrapperA.eq("id",sa.getId());
+            List<SmartAuthorGroup> querySmartGroupA = smartAuthorGroupService.getAuthorGroupByKey(queryWrapperA);
+            if (querySmartGroupA.size()<=0){
+                return CommonResult.fail("该条信息已删除");
+            }
+            QueryWrapper<SmartAuthorGroup> queryWrapperB = new QueryWrapper<>();
+            queryWrapperB.eq("deleted", 0);
+            queryWrapperB.eq("id",sa.getParentId());
+            List<SmartAuthorGroup> querySmartGroupB = smartAuthorGroupService.getAuthorGroupByKey(queryWrapperB);
+            if (querySmartGroupB.size()<=0 && sa.getParentId()!=0){
+                return CommonResult.fail("父ID不存在");
+            }
+            QueryWrapper<SmartAuthorGroup> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("deleted", 0);
+            queryWrapper.eq("parent_id", sa.getParentId());
+            queryWrapper.eq("name", sa.getName());
+            queryWrapper.ne("id",sa.getId());
+            List<SmartAuthorGroup> querySmartGroup = smartAuthorGroupService.getAuthorGroupByKey(queryWrapper);
+            if (querySmartGroup.size()>0){
+                return CommonResult.fail("该管理员已存在,请勿重复修改");
+            }
+            QueryWrapper<SmartAuthority> queryWrapper2 = new QueryWrapper<>();
+            List<String> typeList = Arrays.asList(userId);
+            queryWrapper2.in("user_id", typeList);
+            queryWrapper2.eq("deleted", 0);
+            queryWrapper2.ne("group_id", sa.getId());
+            List<SmartAuthority> querySmart = smartAuthorityService.getAuthorByKey(queryWrapper2);
+            if (querySmart.size()>0){
+                return CommonResult.fail("该用户已分配其他权限组");
+            }
+            Set<String> set = new HashSet<>(typeList);
+            if (typeList.size()!=set.size()){
+                return CommonResult.fail("请勿选择重复用户");
+            }
+            String[] old_userId = querySmartGroupA.get(0).getUserId().split(",");
+            for (int i = 0; i < old_userId.length; i++) {
+                if (!typeList.contains(old_userId[i])){
+                    QueryWrapper<SmartAuthority> queryWrapperC = new QueryWrapper<>();
+                    queryWrapperC.eq("deleted", 0);
+                    queryWrapperC.eq("user_id",Integer.parseInt(old_userId[i]));
+                    List<SmartAuthority> smartAuthorityC = smartAuthorityService.getAuthorByKey(queryWrapperC);
+                    if (smartAuthorityC.size()>0){
+                        SmartAuthority smartAuthority = smartAuthorityC.get(0);
+                        smartAuthority.setDeleted(1);
+                        System.out.println(")))"+smartAuthority.getId());
+                        smartAuthorityService.updateSmartAuthority(smartAuthority);
+                    }
+                }
+            }
             for (int i = 0; i < userId.length; i++) {
-                SmartAuthority smartAuthority = smartAuthorityService.getSmartById(Integer.parseInt(userId[i]));
-                smartAuthority.setGroupId(sa.getId());
-                smartAuthority.setDepartmentView(authorAndGroup.getDepartment_view());
-                smartAuthority.setDepartmentManage(authorAndGroup.getDepartment_manage());
-                smartAuthority.setCreateTime(TimeExchange2.StringToDate(TimeExchange2.getTime(),"yyyy-MM-dd HH:mm:ss"));
-                smartAuthority.setUpdateTime(TimeExchange2.StringToDate(TimeExchange2.getTime(),"yyyy-MM-dd HH:mm:ss"));
-                smartAuthority.setCreateUser("admin");
-                smartAuthority.setUpdateUser("admin");
-                smartAuthority.setDeleted(0);
-                smartAuthorityService.updateSmartAuthority(smartAuthority);
+                QueryWrapper<SmartAuthority> queryWrapper3 = new QueryWrapper<>();
+                queryWrapper3.eq("deleted", 0);
+                queryWrapper3.eq("user_id",Integer.parseInt(userId[i]));
+                List<SmartAuthority> smartAuthoritys = smartAuthorityService.getAuthorByKey(queryWrapper3);
+                if (smartAuthoritys.size()>0){
+                    SmartAuthority smartAuthority = smartAuthoritys.get(0);
+                    smartAuthority.setGroupId(sa.getId());
+                    smartAuthority.setDepartmentView(authorAndGroup.getDepartment_view());
+                    smartAuthority.setDepartmentManage(authorAndGroup.getDepartment_manage());
+                    smartAuthority.setCreateTime(TimeExchange2.StringToDate(TimeExchange2.getTime(),"yyyy-MM-dd HH:mm:ss"));
+                    smartAuthority.setUpdateTime(TimeExchange2.StringToDate(TimeExchange2.getTime(),"yyyy-MM-dd HH:mm:ss"));
+                    smartAuthority.setCreateUser("admin");
+                    smartAuthority.setUpdateUser("admin");
+                    smartAuthority.setDeleted(0);
+                    smartAuthorityService.updateSmartAuthority(smartAuthority);
+                } else {
+                    SmartAuthority smartAuthority = new SmartAuthority();
+                    smartAuthority.setUserId(Integer.parseInt(userId[i]));
+                    smartAuthority.setGroupId(sa.getId());
+                    smartAuthority.setDepartmentView(authorAndGroup.getDepartment_view());
+                    smartAuthority.setDepartmentManage(authorAndGroup.getDepartment_manage());
+                    smartAuthority.setCreateTime(TimeExchange2.StringToDate(TimeExchange2.getTime(),"yyyy-MM-dd HH:mm:ss"));
+                    smartAuthority.setUpdateTime(TimeExchange2.StringToDate(TimeExchange2.getTime(),"yyyy-MM-dd HH:mm:ss"));
+                    smartAuthority.setCreateUser("admin");
+                    smartAuthority.setUpdateUser("admin");
+                    smartAuthority.setDeleted(0);
+                    smartAuthorityService.insertSmartAuthority(smartAuthority);
+                }
+
             }
             int result = smartAuthorGroupService.updateSmartAuthorGroup(sa);
             return result > 0 ? CommonResult.ok("修改成功") : CommonResult.fail("修改失败");
@@ -178,19 +258,96 @@ public class SmartAuthorGroupController implements SmartAuthorGroupControllerAPI
             AuthorAndGroup2 authorAndGroup2 = JSONObject.parseObject(jsonObject.toString(), AuthorAndGroup2.class);
             SmartAuthorGroup sa = authorAndGroup2.getSmartAuthorGroup();
             List<userAuthor> userAuthors = authorAndGroup2.getUserAuthors();
+            // 相关查询
+            QueryWrapper<SmartAuthorGroup> queryWrapperA = new QueryWrapper<>();
+            queryWrapperA.eq("deleted", 0);
+            queryWrapperA.eq("id",sa.getId());
+            List<SmartAuthorGroup> querySmartGroupA = smartAuthorGroupService.getAuthorGroupByKey(queryWrapperA);
+            if (querySmartGroupA.size()<=0){
+                return CommonResult.fail("该条信息已删除");
+            }
+            QueryWrapper<SmartAuthorGroup> queryWrapperB = new QueryWrapper<>();
+            queryWrapperB.eq("deleted", 0);
+            queryWrapperB.eq("id",sa.getParentId());
+            List<SmartAuthorGroup> querySmartGroupB = smartAuthorGroupService.getAuthorGroupByKey(queryWrapperB);
+            if (querySmartGroupB.size()<=0 && sa.getParentId()!=0){
+                return CommonResult.fail("父ID不存在");
+            }
+            QueryWrapper<SmartAuthorGroup> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("deleted", 0);
+            queryWrapper.eq("parent_id", sa.getParentId());
+            queryWrapper.eq("name", sa.getName());
+            queryWrapper.ne("id",sa.getId());
+            List<SmartAuthorGroup> querySmartGroup = smartAuthorGroupService.getAuthorGroupByKey(queryWrapper);
+            if (querySmartGroup.size()>0){
+                return CommonResult.fail("该管理员已存在,请勿重复添加");
+            }
+            List<Integer> uid =userAuthors.stream().map(userAuthor::getUserId).collect(Collectors.toList());
+            QueryWrapper<SmartAuthority> queryWrapper2 = new QueryWrapper<>();
+            queryWrapper2.in("user_id", uid);
+            queryWrapper2.eq("deleted", 0);
+            queryWrapper2.ne("group_id", sa.getId());
+            List<SmartAuthority> querySmart = smartAuthorityService.getAuthorByKey(queryWrapper2);
+            if (querySmart.size()>0){
+                return CommonResult.fail("该用户已分配其他权限组");
+            }
+            Set<Integer> set = new HashSet<>(uid);
+            if (uid.size()!=set.size()){
+                return CommonResult.fail("请勿选择重复用户");
+            }
+            String[] old_userId = querySmartGroupA.get(0).getUserId().split(",");
+            for (int i = 0; i < old_userId.length; i++) {
+                if (!uid.contains(Integer.parseInt(old_userId[i]))){
+                    QueryWrapper<SmartAuthority> queryWrapperC = new QueryWrapper<>();
+                    queryWrapperC.eq("deleted", 0);
+                    queryWrapperC.eq("user_id",Integer.parseInt(old_userId[i]));
+                    List<SmartAuthority> smartAuthorityC = smartAuthorityService.getAuthorByKey(queryWrapperC);
+                    if (smartAuthorityC.size()>0){
+                        SmartAuthority smartAuthority = smartAuthorityC.get(0);
+                        smartAuthority.setDeleted(1);
+                        smartAuthorityService.updateSmartAuthority(smartAuthority);
+                    }
+                }
+            }
+            String userid = "";
             for (int i = 0; i < userAuthors.size(); i++) {
-                SmartAuthority smartAuthority = smartAuthorityService.getSmartById(userAuthors.get(i).getUserId());
-                smartAuthority.setUserId(userAuthors.get(i).getUserId());
-                smartAuthority.setGroupId(sa.getId());
-                smartAuthority.setDepartmentView(userAuthors.get(i).getDepartment_view());
-                smartAuthority.setDepartmentManage(userAuthors.get(i).getDepartment_manage());
-                smartAuthority.setCreateTime(TimeExchange2.StringToDate(TimeExchange2.getTime(),"yyyy-MM-dd HH:mm:ss"));
-                smartAuthority.setUpdateTime(TimeExchange2.StringToDate(TimeExchange2.getTime(),"yyyy-MM-dd HH:mm:ss"));
-                smartAuthority.setCreateUser("admin");
-                smartAuthority.setUpdateUser("admin");
-                smartAuthority.setDeleted(userAuthors.get(i).getDeleted());
-                smartAuthorityService.updateSmartAuthority(smartAuthority);
+                if (i==userAuthors.size()-1){
+                    userid+=userAuthors.get(i).getUserId();
+                } else {
+                    userid+=userAuthors.get(i).getUserId()+",";
+                }
+                QueryWrapper<SmartAuthority> queryWrapper3 = new QueryWrapper<>();
+                queryWrapper3.eq("deleted", 0);
+                queryWrapper3.eq("user_id",userAuthors.get(i).getUserId());
+                List<SmartAuthority> smartAuthoritys = smartAuthorityService.getAuthorByKey(queryWrapper3);
+                if (smartAuthoritys.size()>0){
+                    SmartAuthority smartAuthority = smartAuthoritys.get(0);
+                    smartAuthority.setUserId(userAuthors.get(i).getUserId());
+                    smartAuthority.setGroupId(sa.getId());
+                    smartAuthority.setDepartmentView(userAuthors.get(i).getDepartment_view());
+                    smartAuthority.setDepartmentManage(userAuthors.get(i).getDepartment_manage());
+                    smartAuthority.setCreateTime(TimeExchange2.StringToDate(TimeExchange2.getTime(),"yyyy-MM-dd HH:mm:ss"));
+                    smartAuthority.setUpdateTime(TimeExchange2.StringToDate(TimeExchange2.getTime(),"yyyy-MM-dd HH:mm:ss"));
+                    smartAuthority.setCreateUser("admin");
+                    smartAuthority.setUpdateUser("admin");
+                    smartAuthority.setDeleted(userAuthors.get(i).getDeleted());
+                    smartAuthorityService.updateSmartAuthority(smartAuthority);
+                } else {
+                    SmartAuthority smartAuthority = new SmartAuthority();
+                    smartAuthority.setUserId(userAuthors.get(i).getUserId());
+                    smartAuthority.setGroupId(sa.getId());
+                    smartAuthority.setDepartmentView(userAuthors.get(i).getDepartment_view());
+                    smartAuthority.setDepartmentManage(userAuthors.get(i).getDepartment_manage());
+                    smartAuthority.setCreateTime(TimeExchange2.StringToDate(TimeExchange2.getTime(),"yyyy-MM-dd HH:mm:ss"));
+                    smartAuthority.setUpdateTime(TimeExchange2.StringToDate(TimeExchange2.getTime(),"yyyy-MM-dd HH:mm:ss"));
+                    smartAuthority.setCreateUser("admin");
+                    smartAuthority.setUpdateUser("admin");
+                    smartAuthority.setDeleted(0);
+                    smartAuthorityService.insertSmartAuthority(smartAuthority);
+                }
+
             }
+            sa.setUserId(userid);
             int result = smartAuthorGroupService.updateSmartAuthorGroup(sa);
             return result > 0 ? CommonResult.ok("修改成功") : CommonResult.fail("修改失败");
         }
@@ -202,7 +359,8 @@ public class SmartAuthorGroupController implements SmartAuthorGroupControllerAPI
      * @return
      */
     @Override
-    public CommonResult queryAuthorListGroupList(Integer authorGroupId) {
+    @PassToken
+    public CommonResult querySmartAuthorGroup(Integer authorGroupId) {
         List<SmartAuthorGroup> smartAuthorGroups = smartAuthorGroupService.getAuthorGroupList();
         List<AuthorListGroup> authorListGroupList = null;
         if (smartAuthorGroups.size()>0) {