From 47b8082636e1905f6eb998d053671da878de8f1c Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期一, 17 十月 2022 18:04:04 +0800 Subject: [PATCH] 部门查询代码重构 --- ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java | 50 +++------------- ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java | 17 +++-- ycl-common/src/main/java/com/ycl/mapper/depart/UmsDepartMapper.java | 3 + ycl-common/src/main/java/com/ycl/service/depart/UmsDepartService.java | 10 ++ ycl-common/src/main/java/com/ycl/vo/depart/UmsDepartVO.java | 28 +-------- ycl-common/src/main/resources/mapper/depart/UmsDepartMapper.xml | 63 +++++++++++++++------ 6 files changed, 80 insertions(+), 91 deletions(-) diff --git a/ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java b/ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java index 893f3b4..e3d63c6 100644 --- a/ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java +++ b/ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ycl.annotation.LogSave; import com.ycl.api.BasePageDTO; import com.ycl.api.BasePageVO; @@ -45,7 +46,7 @@ @ApiOperation("娣诲姞閮ㄩ棬") @PostMapping(value = "/create") - @LogSave(operationType = "閮ㄩ棬绠$悊",contain = "娣诲姞閮ㄩ棬") + @LogSave(operationType = "閮ㄩ棬绠$悊", contain = "娣诲姞閮ㄩ棬") public CommonResult<Void> create(@Validated @RequestBody DepartVO.AddDepartVO addDepartVO) { departService.create(addDepartVO); return CommonResult.success(null); @@ -53,7 +54,7 @@ @ApiOperation("缂栬緫閮ㄩ棬") @PostMapping(value = "/update") - @LogSave(operationType = "閮ㄩ棬绠$悊",contain = "缂栬緫閮ㄩ棬") + @LogSave(operationType = "閮ㄩ棬绠$悊", contain = "缂栬緫閮ㄩ棬") public CommonResult<Void> create(@Validated @RequestBody DepartVO.UpdateDepartVO params) { departService.update(params); return CommonResult.success(null); @@ -61,7 +62,7 @@ @ApiOperation("鍒犻櫎") @PostMapping(value = "/delete") - @LogSave(operationType = "閮ㄩ棬绠$悊",contain = "鍒犻櫎閮ㄩ棬") + @LogSave(operationType = "閮ㄩ棬绠$悊", contain = "鍒犻櫎閮ㄩ棬") public CommonResult<Void> delete(@Validated @RequestBody DepartVO.IdDepartVO params) { departService.delete(params.getId()); return CommonResult.success(null); @@ -74,7 +75,7 @@ **/ @ApiOperation("鎵瑰鐞�-鍒犻櫎") @PostMapping(value = "/batch_deletion") - @LogSave(operationType = "閮ㄩ棬绠$悊",contain = "鎵归噺鍒犻櫎閮ㄩ棬") + @LogSave(operationType = "閮ㄩ棬绠$悊", contain = "鎵归噺鍒犻櫎閮ㄩ棬") public CommonResult delete(@RequestParam List<Long> ids) { if (ids.isEmpty()) { return CommonResult.failed("bad request parameter"); @@ -84,7 +85,7 @@ @ApiOperation("璇︽儏") @PostMapping(value = "/detail") - @LogSave(operationType = "閮ㄩ棬绠$悊",contain = "鏌ョ湅閮ㄩ棬") + @LogSave(operationType = "閮ㄩ棬绠$悊", contain = "鏌ョ湅閮ㄩ棬") public CommonResult<UmsDepart> detail(@Validated @RequestBody DepartVO.IdDepartVO params) { UmsDepart sccgDepart = departService.loadDepartById(params.getId()); return CommonResult.success(sccgDepart); @@ -106,8 +107,10 @@ @ApiOperation("鏌ヨ鍏ㄩ儴閮ㄩ棬") @GetMapping(value = "/page") - public CommonResult<IPage<UmsDepartVO>> page(DepartVO.PageDepartVO params) { - IPage<UmsDepartVO> page = departService.pageDepart(params); + public CommonResult<IPage<UmsDepartVO>> page(@RequestParam("currentPage") Integer currentPage, @RequestParam("pageSize") Integer pageSize, + @RequestParam(value = "departName", required = false) String departName) { + IPage<UmsDepartVO> page = new Page<>(currentPage, pageSize); + departService.pageDepart(departName, page); return CommonResult.success(page); } diff --git a/ycl-common/src/main/java/com/ycl/mapper/depart/UmsDepartMapper.java b/ycl-common/src/main/java/com/ycl/mapper/depart/UmsDepartMapper.java index 79d5849..a89249a 100644 --- a/ycl-common/src/main/java/com/ycl/mapper/depart/UmsDepartMapper.java +++ b/ycl-common/src/main/java/com/ycl/mapper/depart/UmsDepartMapper.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.entity.depart.UmsDepart; +import com.ycl.vo.depart.UmsDepartVO; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -17,4 +19,5 @@ List<UmsDepart> selectDepartList(); + List<UmsDepartVO> selectPageByName(@Param("departName") String departName, @Param("offset") Long offset, @Param("size") Long size); } diff --git a/ycl-common/src/main/java/com/ycl/service/depart/UmsDepartService.java b/ycl-common/src/main/java/com/ycl/service/depart/UmsDepartService.java index 50f9d50..550c14d 100644 --- a/ycl-common/src/main/java/com/ycl/service/depart/UmsDepartService.java +++ b/ycl-common/src/main/java/com/ycl/service/depart/UmsDepartService.java @@ -1,10 +1,12 @@ package com.ycl.service.depart; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.entity.depart.UmsDepart; import com.ycl.vo.depart.DepartVO; import com.ycl.vo.depart.UmsDepartVO; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -41,25 +43,29 @@ /** * 鍒犻櫎 + * * @param id */ void delete(long id); /** * 鏍戝舰 + * * @return */ List<UmsDepart> tree(); /** * 鍒嗛〉 - * @param params + * + * @param page * @return */ - IPage<UmsDepartVO> pageDepart(DepartVO.PageDepartVO params); + IPage<UmsDepartVO> pageDepart(String departName, IPage<UmsDepartVO> page); /** * 淇敼鐘舵�� + * * @param params */ void updateStatus(DepartVO.StatusDepartVO params); diff --git a/ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java index 801bdf2..5979651 100644 --- a/ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java +++ b/ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java @@ -63,7 +63,7 @@ } UmsDepart depart = new UmsDepart(); BeanUtils.copyProperties(addDepartVO, depart); - depart.setStatus(Short.valueOf("1")); + depart.setStatus(Short.valueOf("1")); umsDepartService.save(depart); addDepartVO.getDepartManagerList() .forEach(item -> { @@ -139,44 +139,16 @@ } @Override - public IPage<UmsDepartVO> pageDepart(DepartVO.PageDepartVO params) { - Page<UmsDepart> page = new Page<>(params.getCurrent(), params.getPageSize()); - LambdaQueryWrapper<UmsDepart> query = new LambdaQueryWrapper<>(); - if (StringUtils.isNotBlank(params.getDepartName())) { - query.like(UmsDepart::getDepartName, params.getDepartName()); - } - if (PojoUtils.Vo.isUsefulSearchParam(params.getDepartType())) { - query.like(UmsDepart::getDepartType, params.getDepartType()); - } - query.orderByDesc(UmsDepart::getCreateTime); - Page<UmsDepart> departPage = sccgDepartMapper.selectPage(page, query); - Page<UmsDepartVO> umsDepartVOPage = new Page<>(); - BeanUtils.copyProperties(departPage, umsDepartVOPage); - List<UmsDepartVO> umsDepartVOList = new ArrayList<>(); - //璐熻矗浜� - if (CollUtil.isNotEmpty(departPage.getRecords())) { - for (UmsDepart record : departPage.getRecords()) { - UmsDepartVO umsDepartVO = new UmsDepartVO(); - BeanUtils.copyProperties(record, umsDepartVO); - umsDepartVO.setDepartType(dataDictionaryMapper - .selectOne(new LambdaQueryWrapper<DataDictionary>() - .eq(DataDictionary::getId, record.getDepartType())) - .getName()); - umsDepartVOList.add(umsDepartVO); - List<UmsDepartManage> umsAdminDeparts = umsAdminDepartService.queryByDepartId(record.getId()); - if (CollUtil.isNotEmpty(umsAdminDeparts)) { - List<AdminDepartDTO.UserInfoDTO> userInfoDTOS = umsAdminDeparts.stream().map(a -> { - AdminDepartDTO.UserInfoDTO userInfoDTO = new AdminDepartDTO.UserInfoDTO(); - userInfoDTO.setUserId(a.getUserId()); -// userInfoDTO.setUsername(umsAdminService.getById(a.getUserId()).getUsername()); - return userInfoDTO; - }).collect(Collectors.toList()); - record.setUserInfoDTOS(userInfoDTOS); - } - } - } - umsDepartVOPage.setRecords(umsDepartVOList); - return umsDepartVOPage; + public IPage<UmsDepartVO> pageDepart(String departName, IPage<UmsDepartVO> page) { + + List<UmsDepartVO> ls = sccgDepartMapper.selectPageByName(departName, page.offset(), page.getSize()); + LambdaQueryWrapper<UmsDepart> queryWrapper = new LambdaQueryWrapper<UmsDepart>() + .like(StringUtils.isNotEmpty(departName), UmsDepart::getDepartName, departName); + long total = this.count(queryWrapper); + + page.setRecords(ls); + page.setTotal(total); + return page; } @Override diff --git a/ycl-common/src/main/java/com/ycl/vo/depart/UmsDepartVO.java b/ycl-common/src/main/java/com/ycl/vo/depart/UmsDepartVO.java index 9abc73e..5bdc4be 100644 --- a/ycl-common/src/main/java/com/ycl/vo/depart/UmsDepartVO.java +++ b/ycl-common/src/main/java/com/ycl/vo/depart/UmsDepartVO.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.annotation.*; import com.ycl.api.BaseEntity; import com.ycl.dto.user.AdminDepartDTO; +import com.ycl.entity.depart.UmsDepart; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -22,32 +23,9 @@ @Getter @Setter @ApiModel(value = "umsDepartVO", description = "閮ㄩ棬琛�") -public class UmsDepartVO { - - @ApiModelProperty("涓婚敭") - @TableId(value = "id", type = IdType.AUTO) - private Long id; - - @ApiModelProperty("閮ㄩ棬鍚嶇О") - private String departName; - - @ApiModelProperty("閮ㄩ棬鎻忚堪") - private String departDes; +public class UmsDepartVO extends UmsDepart { @ApiModelProperty("閮ㄩ棬绫诲瀷") - private String departType; + private String departTypeName; - @ApiModelProperty("鐖剁骇id,榛樿0") - private Long parentId; - - @ApiModelProperty("鍋滅敤鐘舵�侊紝0->false,1->true,榛樿鍋滅敤") - private Short status; - - /** - * 閫昏緫鍒犻櫎 0:false 1:true 榛樿0 - */ - @ApiModelProperty(value = "鏄惁鍒犻櫎", hidden = true) - @TableField(select = false) - @TableLogic() - private byte isDeleted; } diff --git a/ycl-common/src/main/resources/mapper/depart/UmsDepartMapper.xml b/ycl-common/src/main/resources/mapper/depart/UmsDepartMapper.xml index b8ec297..a477ce2 100644 --- a/ycl-common/src/main/resources/mapper/depart/UmsDepartMapper.xml +++ b/ycl-common/src/main/resources/mapper/depart/UmsDepartMapper.xml @@ -4,30 +4,57 @@ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> <resultMap id="BaseResultMap" type="com.ycl.entity.depart.UmsDepart"> - <id column="id" property="id" /> - <result column="depart_name" property="departName" /> - <result column="depart_des" property="departDes" /> - <result column="depart_type" property="departType" /> - <result column="parent_id" property="parentId" /> - <result column="status" property="status" /> - <result column="create_time" property="createTime" /> - <result column="update_time" property="updateTime" /> - <result column="is_deleted" property="isDeleted" /> + <id column="id" property="id"/> + <result column="depart_name" property="departName"/> + <result column="depart_des" property="departDes"/> + <result column="depart_type" property="departType"/> + <result column="parent_id" property="parentId"/> + <result column="status" property="status"/> + <result column="create_time" property="createTime"/> + <result column="update_time" property="updateTime"/> + <result column="is_deleted" property="isDeleted"/> </resultMap> <resultMap type="com.ycl.entity.depart.UmsDepart" id="UserDepartResultMap" extends="BaseResultMap"> <collection property="userInfoDTOS" javaType="ArrayList" ofType="com.ycl.dto.user.DepartUserDTO"> - <id column="user_id" property="userId" /> - <result column="username" property="username" /> + <id column="user_id" property="userId"/> + <result column="username" property="username"/> </collection> </resultMap> - <select id="selectDepartList" resultMap="UserDepartResultMap"> - SELECT - ud.*,ua.id user_id,ua.username - FROM - ums_depart ud - LEFT JOIN ums_depart_manager udm ON ud.id = udm.depart_id - LEFT JOIN ums_admin ua ON udm.user_id = ua.id + <resultMap id="DepartVOMap" type="com.ycl.vo.depart.UmsDepartVO" extends="BaseResultMap"> + <result column="depart_type_name" property="departTypeName" jdbcType="VARCHAR"></result> + <collection property="userInfoDTOS" javaType="ArrayList" ofType="com.ycl.dto.user.DepartUserDTO"> + <id column="user_id" property="userId"/> + <result column="username" property="username"/> + </collection> + </resultMap> + + <select id="selectDepartList" resultMap="UserDepartResultMap"> + SELECT ud.*, + ua.id user_id, + ua.username + FROM ums_depart ud + LEFT JOIN ums_depart_manager udm ON ud.id = udm.depart_id + LEFT JOIN ums_admin ua ON udm.user_id = ua.id + </select> + <select id="selectPageByName" resultMap="DepartVOMap"> + SELECT t_0.*, + ua.id user_id, + ua.username, + dd.`name` as depart_type_name + FROM ( + SELECT ud.* + FROM ums_depart ud + WHERE is_deleted = 0 + <if test="departName!=null and departName!=''"> + and ud.name like CONCAT('%',#{departName},'%') + </if> + ORDER BY create_time desc + LIMIT #{offset}, #{size} + ) t_0 + LEFT JOIN ums_depart_manager udm ON t_0.id = udm.depart_id + LEFT JOIN ums_admin ua ON udm.user_id = ua.id + left join ums_data_dictionary as dd on t_0.depart_type = dd.id </select> -- Gitblit v1.8.0