zhanghua
2022-10-17 47b8082636e1905f6eb998d053671da878de8f1c
部门查询代码重构
6个文件已修改
171 ■■■■ 已修改文件
ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/mapper/depart/UmsDepartMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/service/depart/UmsDepartService.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/vo/depart/UmsDepartVO.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/resources/mapper/depart/UmsDepartMapper.xml 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    }
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);
}
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);
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
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;
}
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>