From 1204e963c66662be327e12460fd7705f5541b618 Mon Sep 17 00:00:00 2001 From: "MSI\\derek" Date: Wed, 8 May 2024 18:52:35 +0800 Subject: [PATCH] update edits --- .../tsms/modules/data/service/SkillService.kt | 12 ++- .../modules/user/service/GroupService.java | 8 +- .../modules/user/service/UserService.java | 83 ++++++++++--------- .../modules/user/service/res/LoadUserRes.java | 3 + .../modules/user/web/GroupController.java | 14 +++- .../tsms/modules/user/web/UserController.java | 13 +-- 6 files changed, 80 insertions(+), 53 deletions(-) diff --git a/src/main/java/com/ffii/tsms/modules/data/service/SkillService.kt b/src/main/java/com/ffii/tsms/modules/data/service/SkillService.kt index 2a2b74b..434722a 100644 --- a/src/main/java/com/ffii/tsms/modules/data/service/SkillService.kt +++ b/src/main/java/com/ffii/tsms/modules/data/service/SkillService.kt @@ -24,10 +24,20 @@ open class SkillService( return skill } + open fun updateSkill(req: NewSkillRequest, skill: Skill): Skill { + skill.apply { + name = req.name + code = req.code + description = req.description + } + skillRepository.save(skill) + return skill + } + open fun saveOrUpdate(req: NewSkillRequest): Skill { val skill = if(req.id != null) find(req.id).get() else Skill() if (req.id != null) { -// updateSkill(req, skill) + updateSkill(req, skill) } else { saveSkill(req) } diff --git a/src/main/java/com/ffii/tsms/modules/user/service/GroupService.java b/src/main/java/com/ffii/tsms/modules/user/service/GroupService.java index 7112da3..7b128bd 100644 --- a/src/main/java/com/ffii/tsms/modules/user/service/GroupService.java +++ b/src/main/java/com/ffii/tsms/modules/user/service/GroupService.java @@ -175,7 +175,7 @@ public class GroupService extends AbstractBaseEntityService> listGroupAuth(Map args) { + public List> listAuth(Map args) { StringBuilder sql = new StringBuilder("SELECT" + " a.id, " @@ -183,8 +183,12 @@ public class GroupService extends AbstractBaseEntityService> listUserAuth(Map args) { + + StringBuilder sql = new StringBuilder("SELECT" + + " a.id, " + + " a.module," + + " a.authority," + + " a.name," + + " a.description, "); + if (args.containsKey("userId")) + sql.append(" EXISTS(SELECT 1 FROM user_authority ua WHERE a.id = ua.authId AND userId = :userId) AS v"); + else + sql.append(" 0 AS v"); + sql.append(" FROM authority a" + + " ORDER BY a.module, a.name"); + + return jdbcDao.queryForList(sql.toString(), args); + } + public List listUserGroupId(long id) { return jdbcDao.queryForInts( "SELECT" @@ -201,47 +221,28 @@ public class UserService extends AbstractBaseEntityService> groupBatchInsertValues = req.getAddGroupIds().stream() - // .map(groupId -> Map.of("userId", (int) id, "groupId", groupId)) - // .collect(Collectors.toList()); - // List> groupBatchDeleteValues = req.getRemoveGroupIds().stream() - // .map(groupId -> Map.of("userId", (int) id, "groupId", groupId)) - // .collect(Collectors.toList()); - - // if (!groupBatchInsertValues.isEmpty()) { - // jdbcDao.batchUpdate( - // "INSERT IGNORE INTO user_group (groupId,userId)" - // + " VALUES (:groupId, :userId)", - // groupBatchInsertValues); - // } - // if (!groupBatchDeleteValues.isEmpty()) { - // jdbcDao.batchUpdate( - // "DELETE FROM user_group" - // + " WHERE groupId = :groupId AND userId = :userId", - // groupBatchDeleteValues); - // } - - // List> authBatchInsertValues = req.getAddAuthIds().stream() - // .map(authId -> Map.of("userId", (int)id, "authId", authId)) - // .collect(Collectors.toList()); - // List> authBatchDeleteValues = req.getRemoveAuthIds().stream() - // .map(authId -> Map.of("userId", (int)id, "authId", authId)) - // .collect(Collectors.toList()); - // if (!authBatchInsertValues.isEmpty()) { - // jdbcDao.batchUpdate( - // "INSERT IGNORE INTO user_authority (userId, authId)" - // + " VALUES (:userId, :authId)", - // authBatchInsertValues); - // } - - // if (!authBatchDeleteValues.isEmpty()) { - // jdbcDao.batchUpdate( - // "DELETE FROM user_authority" - // + " WHERE userId = :userId AND authId = :authId", - // authBatchDeleteValues); - // } + long id = instance.getId(); + + List> authBatchInsertValues = req.getAddAuthIds().stream() + .map(authId -> Map.of("userId", (int)id, "authId", authId)) + .collect(Collectors.toList()); + List> authBatchDeleteValues = req.getRemoveAuthIds().stream() + .map(authId -> Map.of("userId", (int)id, "authId", authId)) + .collect(Collectors.toList()); + if (!authBatchInsertValues.isEmpty()) { + jdbcDao.batchUpdate( + "INSERT IGNORE INTO user_authority (userId, authId)" + + " VALUES (:userId, :authId)", + authBatchInsertValues); + } + + if (!authBatchDeleteValues.isEmpty()) { + jdbcDao.batchUpdate( + "DELETE FROM user_authority" + + " WHERE userId = :userId ", +// + "AND authId = :authId", + authBatchDeleteValues); + } return instance; } diff --git a/src/main/java/com/ffii/tsms/modules/user/service/res/LoadUserRes.java b/src/main/java/com/ffii/tsms/modules/user/service/res/LoadUserRes.java index c2a47c6..929044e 100644 --- a/src/main/java/com/ffii/tsms/modules/user/service/res/LoadUserRes.java +++ b/src/main/java/com/ffii/tsms/modules/user/service/res/LoadUserRes.java @@ -1,6 +1,7 @@ package com.ffii.tsms.modules.user.service.res; import java.util.List; +import java.util.Map; import com.ffii.tsms.modules.user.entity.User; @@ -16,6 +17,7 @@ public class LoadUserRes { this.data = data; this.authIds = authIds; this.groupIds = groupIds; +// this.auths = auths; } public User getData() { @@ -42,4 +44,5 @@ public class LoadUserRes { this.groupIds = groupIds; } + } diff --git a/src/main/java/com/ffii/tsms/modules/user/web/GroupController.java b/src/main/java/com/ffii/tsms/modules/user/web/GroupController.java index 087814e..fab3323 100644 --- a/src/main/java/com/ffii/tsms/modules/user/web/GroupController.java +++ b/src/main/java/com/ffii/tsms/modules/user/web/GroupController.java @@ -78,14 +78,20 @@ public class GroupController{ .build())); } - @GetMapping("/auth/combo/{id}") - public RecordsRes> authComboJson(HttpServletRequest request, @PathVariable("id") int id) throws ServletRequestBindingException { + @GetMapping("/auth/{target}/{id}") + public RecordsRes> authComboJson(HttpServletRequest request, @PathVariable("id") int id, @PathVariable("target") String target) throws ServletRequestBindingException { System.out.println(request); Map args = new HashMap<>(); - if (id != 0) + if (id != 0){ + if (target.equals("group")){ args.put("groupId", id); + } else { + args.put("userId", id); - return new RecordsRes<>(groupService.listGroupAuth(args)); + } + } + + return new RecordsRes<>(groupService.listAuth(args)); } } diff --git a/src/main/java/com/ffii/tsms/modules/user/web/UserController.java b/src/main/java/com/ffii/tsms/modules/user/web/UserController.java index 12a05fe..9fd3af0 100644 --- a/src/main/java/com/ffii/tsms/modules/user/web/UserController.java +++ b/src/main/java/com/ffii/tsms/modules/user/web/UserController.java @@ -1,6 +1,7 @@ package com.ffii.tsms.modules.user.web; import java.io.UnsupportedEncodingException; +import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -73,11 +74,13 @@ public class UserController{ @PreAuthorize("hasAuthority('VIEW_USER')") public LoadUserRes load(@PathVariable long id) { LoadUserRes test = new LoadUserRes( - userService.find(id).orElseThrow(NotFoundException::new), - userService.listUserAuthId(id), - userService.listUserGroupId(id)); - logger.info("Test List user2"); - logger.info(test); + userService.find(id).orElseThrow(NotFoundException::new), + userService.listUserAuthId(id), + userService.listUserGroupId(id) +// userService.listUserAuth(Map.of("userId", id)) + ); + logger.info("printing test LoadUserRes"); + logger.info(test); return test; }