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