From d76ee745d82d0525f88d9eeebed23961130ccccd Mon Sep 17 00:00:00 2001 From: Administrator <zhubaomin> Date: 星期二, 09 一月 2024 15:22:57 +0800 Subject: [PATCH] 2024-01-09 朱宝民 重构农户查询接口 --- pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserCtrl.java | 13 ++- pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserRoleMapper.xml | 13 ++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java | 8 ++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserRoleMapper.java | 10 +++ pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java | 6 + pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml | 8 +- pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml | 16 +++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoUserInfo.java | 18 +++-- pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRoleMapper.xml | 2 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java | 44 +++++++++++++- pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleCtrl.java | 9 ++- 11 files changed, 120 insertions(+), 27 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java index e0ebca4..cd7bc13 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java @@ -91,6 +91,14 @@ * 鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇鐢ㄦ埛淇℃伅 * @param userId 鐢ㄦ埛缂栧彿 * @return 鐢ㄦ埛淇℃伅鍒楄〃 + * 2024-01-09 搴熷純 */ List<VoUserInfo> getUserInfos(@Param("userId") Long userId); + + /** + * 鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇鐢ㄦ埛淇℃伅 + * @param userId + * @return + */ + Map getUserInfoById(@Param("userId") Long userId); } diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserRoleMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserRoleMapper.java index d5ee293..c122bb3 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserRoleMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserRoleMapper.java @@ -5,6 +5,9 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; +import java.util.Map; + @Mapper public interface BaUserRoleMapper extends BaseMapper<BaUserRole> { @@ -43,4 +46,11 @@ * @return deleteCount */ int deleteByRoleId(@Param("roleId") Long roleId); + + /** + * 鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇鏉冮檺鍒楄〃 + * @param userId + * @return + */ + List<Map<String, Object>> getPermissionsByUserId(@Param("userId") Long userId); } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoUserInfo.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoUserInfo.java index e750264..b73434c 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoUserInfo.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoUserInfo.java @@ -4,6 +4,9 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.util.List; +import java.util.Map; + /** * @author ZhuBaoMin * @date 2023/12/20 10:19 @@ -22,12 +25,13 @@ @Schema(title = "鐢ㄦ埛濮撳悕") private String userName; - @Schema(title = "瑙掕壊ID") - private Long roleId; + @Schema(title = "瑙掕壊缂栧彿鍒楄〃") + private List<Map<String, Object>> roleIds; - @Schema(title = "瑙掕壊鍚嶇О") - private String roleName; + @Schema(title = "瑙掕壊鍚嶇О鍒楄〃") + private List<Map<String, Object>> roleNames; - @Schema(title = "鎺堟潈鍒楄〃") - private String permissions; -} + @Schema(title = "鏉冮檺鍒楄〃") + private List<Map<String, Object>> permissions; + +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml index 1110ae8..81d2965 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml @@ -50,7 +50,7 @@ phone = '#{phone,jdbcType=VARCHAR}' and </if> <if test="area != null"> - area = #{area,jdbcType=INTEGER} and + area = ${area} and </if> </trim> </select> @@ -70,7 +70,7 @@ phone = '#{phone,jdbcType=VARCHAR}' and </if> <if test="area != null"> - area = #{area,jdbcType=INTEGER} and + area = ${area} and </if> </trim> order by id DESC @@ -169,10 +169,10 @@ color = #{color,jdbcType=VARCHAR}, </if> <if test="remark != null"> - color = #{remark,jdbcType=VARCHAR}, + remark = #{remark,jdbcType=VARCHAR}, </if> <if test="deleted != null"> - color = #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT}, + deleted = #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT}, </if> </set> where id = #{id,jdbcType=BIGINT} diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRoleMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRoleMapper.xml index 20afb5d..79c6dfa 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRoleMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRoleMapper.xml @@ -22,7 +22,7 @@ </sql> <sql id="part_Column_List"> - id, name + id, name, deleted </sql> <select id="selectAll" resultMap="BaseResultMap"> diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml index 0383d9c..66fbe78 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml @@ -223,6 +223,7 @@ </delete> <!--鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇鐢ㄦ埛淇℃伅--> + <!--2024-01-09 搴熷純--> <select id="getUserInfos" resultType="com.dy.pipIrrGlobal.voBa.VoUserInfo"> SELECT user.id AS userId, @@ -240,4 +241,19 @@ </if> </where> </select> + + <!--鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇鐢ㄦ埛淇℃伅--> + <select id="getUserInfoById" resultType="java.util.Map"> + SELECT + id AS userId, + name AS userName + FROM ba_user + <where> + AND disabled = 0 + AND deleted = 0 + <if test = "userId != null and userId > 0"> + AND ba_user.id = ${userId} + </if> + </where> + </select> </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserRoleMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserRoleMapper.xml index ccdf6ef..8575482 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserRoleMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserRoleMapper.xml @@ -60,4 +60,17 @@ where userId = #{roleId,jdbcType=BIGINT} </delete> + <!--鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇鏉冮檺鍒楄〃--> + <select id="getPermissionsByUserId" resultType="java.util.Map"> + SELECT + rol.id AS roleId, + rol.`name` AS roleName, + per.permissions + FROM ba_user_role use_rol + INNER JOIN ba_role rol ON rol.id = use_rol.roleId + INNER JOIN ba_role_permissions per ON per.roleId = rol.id + WHERE use_rol.userId = ${userId} + + </select> + </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java index 341e897..0e864db 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java @@ -99,7 +99,8 @@ schema = @Schema(implementation = BaBlock.class))} ) }) - @GetMapping(path = "one", consumes = MediaType.TEXT_PLAIN_VALUE) + //@GetMapping(path = "one", consumes = MediaType.TEXT_PLAIN_VALUE) + @GetMapping(path = "one") @SsoAop() public BaseResponse<BaBlock> one(Long id){ return BaseResponseUtils.buildSuccess(this.sv.selectById(id)); @@ -192,7 +193,8 @@ schema = @Schema(implementation = Boolean.class))} ) }) - @GetMapping(path = "delete", consumes = MediaType.TEXT_PLAIN_VALUE) + //@GetMapping(path = "delete", consumes = MediaType.TEXT_PLAIN_VALUE) + @GetMapping(path = "delete") @SsoAop() public BaseResponse<Boolean> delete(Long id){ if(id == null){ diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleCtrl.java index 23dd172..be75abb 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleCtrl.java @@ -108,7 +108,8 @@ schema = @Schema(implementation = BaRole.class))} ) }) - @GetMapping(path = "one", consumes = MediaType.TEXT_PLAIN_VALUE) + //@GetMapping(path = "one", consumes = MediaType.TEXT_PLAIN_VALUE) + @GetMapping(path = "one") @SsoAop() public BaseResponse<BaRole> one(Long id){ return BaseResponseUtils.buildSuccess(this.sv.selectById(id)); @@ -204,7 +205,8 @@ schema = @Schema(implementation = Boolean.class))} ) }) - @GetMapping(path = "setPrivs", consumes = MediaType.APPLICATION_JSON_VALUE) + //@GetMapping(path = "setPrivs", consumes = MediaType.APPLICATION_JSON_VALUE) + @PostMapping(path = "setPrivs", consumes = MediaType.APPLICATION_JSON_VALUE) @SsoAop() public BaseResponse<Boolean> setPrivileges(Long id, Long[] privIds){ Long[] privIds_lg = null ; @@ -237,7 +239,8 @@ schema = @Schema(implementation = Boolean.class))} ) }) - @GetMapping(path = "delete", consumes = MediaType.TEXT_PLAIN_VALUE) + //@GetMapping(path = "delete", consumes = MediaType.TEXT_PLAIN_VALUE) + @GetMapping(path = "delete") @SsoAop() public BaseResponse<Boolean> delete(Long id){ if(id == null){ diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserCtrl.java index 1d7f0ab..3aa4298 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserCtrl.java @@ -113,7 +113,8 @@ schema = @Schema(implementation = BaUser.class))} ) }) - @GetMapping(path = "one", consumes = MediaType.TEXT_PLAIN_VALUE) + //@GetMapping(path = "one", consumes = MediaType.TEXT_PLAIN_VALUE) + @GetMapping(path = "one") @SsoAop() public BaseResponse<BaUser> one(String id) { return BaseResponseUtils.buildSuccess(this.sv.selectById(Long.parseLong(id))); @@ -227,7 +228,8 @@ schema = @Schema(implementation = Boolean.class))} ) }) - @GetMapping(path = "changePassword", consumes = MediaType.TEXT_PLAIN_VALUE) + //@GetMapping(path = "changePassword", consumes = MediaType.TEXT_PLAIN_VALUE) + @GetMapping(path = "changePassword") @SsoAop() public BaseResponse<Boolean> changePassword(String id, String oldPassword, String newPassword) throws Exception { if (id == null) { @@ -452,7 +454,8 @@ schema = @Schema(implementation = Boolean.class))} ) }) - @GetMapping(path = "delete", consumes = MediaType.TEXT_PLAIN_VALUE) + //@GetMapping(path = "delete", consumes = MediaType.TEXT_PLAIN_VALUE) + @GetMapping(path = "delete") @SsoAop() public BaseResponse<Boolean> delete(String id) { if (id == null) { @@ -488,9 +491,9 @@ }) @GetMapping("/getUserInfos/{userId}") @SsoAop() - public BaseResponse<QueryResultVo<List<VoUserInfo>>> getUserInfos(@PathVariable("userId") Long userId) { + public BaseResponse<QueryResultVo<VoUserInfo>> getUserInfos(@PathVariable("userId") Long userId) { try { - List<VoUserInfo> res = this.sv.getUserInfos(userId); + VoUserInfo res = this.sv.getUserInfos(userId); System.out.println(" :" + res); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java index ebe2415..1a41c18 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java @@ -1,6 +1,9 @@ package com.dy.pipIrrBase.user; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.daoBa.BaUserMapper; import com.dy.pipIrrGlobal.daoBa.BaUserRoleMapper; @@ -13,9 +16,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.List; -import java.util.Map; -import java.util.Random; +import java.util.*; @Slf4j @Service @@ -168,7 +169,40 @@ * @param userId 鐢ㄦ埛缂栧彿 * @return 鐢ㄦ埛淇℃伅鍒楄〃 */ - public List<VoUserInfo> getUserInfos(Long userId) { - return dao.getUserInfos(userId); + public VoUserInfo getUserInfos(Long userId) { + VoUserInfo voUserInfo = new VoUserInfo(); + String permission = ""; + Map map = Optional.ofNullable(dao.getUserInfoById(userId)).orElse(new HashMap()); + if(map.size() > 0) { + voUserInfo.setUserId(userId); + voUserInfo.setUserName(map.get("userName").toString()); + } + + List list_roleIds = new ArrayList(); + List list_roleNames = new ArrayList(); + List list_permissions = new ArrayList(); + + List<Map<String, Object>> list = Optional.ofNullable(urDao.getPermissionsByUserId(userId)).orElse(new ArrayList<>()); + if(list.size() > 0) { + JSONArray array= JSONArray.parseArray(JSON.toJSONString(list)); + for (int i = 0; i < array.size(); i++) { + JSONObject job = array.getJSONObject(i); + list_roleIds.add(job.getLong("roleId")); + list_roleNames.add(job.getString("roleName")); + + String permissions = Optional.ofNullable(job.getString("permissions")).orElse(""); + if(permissions.length() > 0) { + permissions = permissions.substring(1, permissions.length() - 1); + permissions= permissions.replace(String.valueOf(" "), ""); + permission = permission + permissions + ","; + } + } + voUserInfo.setRoleIds(list_roleIds); + voUserInfo.setRoleNames(list_roleNames); + permission = permission.substring(0, permission.length()-1); + list_permissions.add(permission); + voUserInfo.setPermissions(list_permissions); + } + return voUserInfo; } } -- Gitblit v1.8.0