龚焕茏
2024-05-22 c25d93c39975f84ca411da16b82ab556648a50e0
feat:用户状况新增审核
9个文件已修改
8个文件已添加
1 文件已重命名
411 ■■■■■ 已修改文件
src/main/java/com/mindskip/xzs/controller/admin/DepartmentExamineController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/controller/admin/UserConditionExamineController.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/controller/admin/UserController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/UserConditionExamine.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/enums/DepartmentExamineEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/enums/UserConditionExamineEnum.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/vo/DepartmentExamineVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/vo/UserConditionExamineVO.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/UserConditionExamineMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/UserMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/DepartmentExamineService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/UserConditionExamineService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/UserService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/DepartmentExamineServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/UserConditionExamineServiceImpl.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/UserConditionExamineMapper.xml 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/UserMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/controller/admin/DepartmentExamineController.java
@@ -6,7 +6,7 @@
import com.mindskip.xzs.base.RestResponse;
import com.mindskip.xzs.domain.DepartmentExamine;
import com.mindskip.xzs.domain.vo.DepartmentExamineVO;
import com.mindskip.xzs.service.IDepartmentExamineService;
import com.mindskip.xzs.service.DepartmentExamineService;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.web.bind.annotation.*;
@@ -26,7 +26,7 @@
@RequiredArgsConstructor
public class DepartmentExamineController extends BaseApiController {
    private final IDepartmentExamineService departmentExamineService;
    private final DepartmentExamineService departmentExamineService;
    @RequestMapping(value = "list", method = RequestMethod.POST)
    public RestResponse<PageInfo<DepartmentExamineVO>> list(@RequestBody DepartmentExamineVO departmentExamineVO) {
src/main/java/com/mindskip/xzs/controller/admin/UserConditionExamineController.java
New file
@@ -0,0 +1,54 @@
package com.mindskip.xzs.controller.admin;
import com.github.pagehelper.PageInfo;
import com.mindskip.xzs.base.BaseApiController;
import com.mindskip.xzs.base.RestResponse;
import com.mindskip.xzs.domain.UserConditionExamine;
import com.mindskip.xzs.domain.vo.UserConditionExamineVO;
import com.mindskip.xzs.service.UserConditionExamineService;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
/**
 * <p>
 * 用户状况表 前端控制器
 * </p>
 *
 * @author gonghl
 * @since 2024-05-22
 */
@RestController
@RequestMapping("/api/admin/userCondition/examine")
@RequiredArgsConstructor
public class UserConditionExamineController extends BaseApiController {
    private final UserConditionExamineService userConditionExamineService;
    @RequestMapping(value = "list", method = RequestMethod.POST)
    public RestResponse<PageInfo<UserConditionExamineVO>> list(@RequestBody UserConditionExamineVO userConditionExamineVO) {
        userConditionExamineVO.setDeptIds(ObjectUtils.isNotEmpty(userConditionExamineVO.getDeptIds()) ? userConditionExamineVO.getDeptIds() : getAdminDeptIds());
        return RestResponse.ok(userConditionExamineService.pageInfo(userConditionExamineVO));
    }
    @RequestMapping(value = "save", method = RequestMethod.POST)
    public RestResponse<Boolean> save(@RequestBody UserConditionExamine userConditionExamine) {
        userConditionExamine.setCreateTime(LocalDateTime.now());
        userConditionExamine.setCreateUser(getCurrentUser().getId());
        return RestResponse.ok(userConditionExamineService.save(userConditionExamine));
    }
    @RequestMapping(value = "delete/{id}", method = RequestMethod.POST)
    public RestResponse<Boolean> delete(@PathVariable Integer id) {
        return RestResponse.ok(userConditionExamineService.removeById(id));
    }
    @RequestMapping(value = "audit", method = RequestMethod.POST)
    public RestResponse<Boolean> audit(@RequestBody UserConditionExamineVO userConditionExamine) {
        return RestResponse.ok(userConditionExamineService.audit(userConditionExamine));
    }
}
src/main/java/com/mindskip/xzs/controller/admin/UserController.java
@@ -230,10 +230,4 @@
        return RestResponse.ok();
    }
    @RequestMapping(value = "/setStatus", method = RequestMethod.POST)
    public RestResponse<String> setStatus(@RequestBody UserVO user) {
        userService.setStatus(user);
        return RestResponse.ok("操作成功");
    }
}
src/main/java/com/mindskip/xzs/domain/UserConditionExamine.java
New file
@@ -0,0 +1,77 @@
package com.mindskip.xzs.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mindskip.xzs.domain.enums.UserConditionEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * 用户状况审核表
 * </p>
 *
 * @author gonghl
 * @since 2024-05-22
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_user_condition_examine")
public class UserConditionExamine implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 用户id
     */
    private Integer userId;
    /**
     * 目标状况
     */
    private UserConditionEnum targetCondition;
    /**
     * 原始状况
     */
    private UserConditionEnum sourceCondition;
    /**
     * 附件
     */
    private String attachment;
    /**
     * 调动原因
     */
    private String reason;
    /**
     * 审核结果
     */
    private UserConditionEnum result;
    /**
     * 审核备注
     */
    private String remark;
    private Integer createUser;
    private LocalDateTime createTime;
    @TableLogic
    private Boolean deleted;
}
src/main/java/com/mindskip/xzs/domain/enums/DepartmentExamineEnum.java
@@ -5,7 +5,7 @@
import lombok.Getter;
/**
 * 用户状态
 * 部门审核状态
 *
 * @author gonghl
 */
src/main/java/com/mindskip/xzs/domain/enums/UserConditionExamineEnum.java
New file
@@ -0,0 +1,32 @@
package com.mindskip.xzs.domain.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;
/**
 * 用户审核状态
 *
 * @author gonghl
 */
@Getter
public enum UserConditionExamineEnum {
    WAIT("0", "待审核"),
    PASS("1", "审核通过"),
    OVERRULE("2", "审核驳回"),
    ;
    @EnumValue // 标明该字段存入数据库
    private final String code;
    @JsonValue // 标明在转JSON时使用该字段,即响应时
    private final String desc;
    UserConditionExamineEnum(String code, String desc) {
        this.code = code;
        this.desc = desc;
    }
}
src/main/java/com/mindskip/xzs/domain/vo/DepartmentExamineVO.java
@@ -67,6 +67,9 @@
    private Integer pageSize;
    /**
     * 部门管理员只看自己的记录
     */
    private List<Integer> deptIds;
    /**
src/main/java/com/mindskip/xzs/domain/vo/UserConditionExamineVO.java
New file
@@ -0,0 +1,84 @@
package com.mindskip.xzs.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mindskip.xzs.domain.enums.DepartmentExamineEnum;
import com.mindskip.xzs.domain.enums.UserConditionEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
 * <p>
 * 用户状况审核表
 * </p>
 *
 * @author gonghl
 * @since 2024-05-22
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class UserConditionExamineVO implements Serializable {
    private static final long serialVersionUID = 1L;
    private Integer id;
    /**
     * 用户id
     */
    private Integer userId;
    private String userName;
    /**
     * 目标状况
     */
    private UserConditionEnum targetCondition;
    /**
     * 原始状况
     */
    private UserConditionEnum sourceCondition;
    /**
     * 附件
     */
    private String attachment;
    /**
     * 调动原因
     */
    private String reason;
    private Integer createUser;
    private String createUserName;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    /**
     * 审核结果
     */
    private DepartmentExamineEnum result;
    /**
     * 审核备注
     */
    private String remark;
    private Boolean deleted;
    private Integer pageIndex;
    private Integer pageSize;
    /**
     * 部门管理员只看自己的记录
     */
    private List<Integer> deptIds;
}
src/main/java/com/mindskip/xzs/repository/UserConditionExamineMapper.java
New file
@@ -0,0 +1,22 @@
package com.mindskip.xzs.repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mindskip.xzs.domain.UserConditionExamine;
import com.mindskip.xzs.domain.vo.UserConditionExamineVO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * <p>
 * 用户状况审核表 Mapper 接口
 * </p>
 *
 * @author gonghl
 * @since 2024-05-22
 */
@Mapper
public interface UserConditionExamineMapper extends BaseMapper<UserConditionExamine> {
    List<UserConditionExamineVO> pageInfo(UserConditionExamineVO userConditionExamineVO);
}
src/main/java/com/mindskip/xzs/repository/UserMapper.java
@@ -6,7 +6,6 @@
import com.mindskip.xzs.domain.User;
import com.mindskip.xzs.domain.other.KeyValue;
import com.mindskip.xzs.domain.vo.UpdateDeptAdminVO;
import com.mindskip.xzs.domain.vo.UserVO;
import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradeQuery;
import com.mindskip.xzs.viewmodel.admin.user.UserPageRequestVM;
import org.apache.ibatis.annotations.Mapper;
@@ -151,7 +150,7 @@
    List<ExamPaperAnswer> getUserByDept(@Param("query") ExamPaperGradeQuery query);
    void setStatus(UserVO user);
    void setStatus(User user);
    /**
     * 清除某部门的用户管理员标识
src/main/java/com/mindskip/xzs/service/DepartmentExamineService.java
File was renamed from src/main/java/com/mindskip/xzs/service/IDepartmentExamineService.java
@@ -13,7 +13,7 @@
 * @author gonghl
 * @since 2024-05-13
 */
public interface IDepartmentExamineService extends IService<DepartmentExamine> {
public interface DepartmentExamineService extends IService<DepartmentExamine> {
    PageInfo<DepartmentExamineVO> pageInfo(DepartmentExamineVO departmentExamineVO);
src/main/java/com/mindskip/xzs/service/UserConditionExamineService.java
New file
@@ -0,0 +1,21 @@
package com.mindskip.xzs.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.mindskip.xzs.domain.UserConditionExamine;
import com.mindskip.xzs.domain.vo.UserConditionExamineVO;
/**
 * <p>
 * 用户状况表 服务类
 * </p>
 *
 * @author gonghl
 * @since 2024-05-22
 */
public interface UserConditionExamineService extends IService<UserConditionExamine> {
    PageInfo<UserConditionExamineVO> pageInfo(UserConditionExamineVO userConditionExamineVO);
    Boolean audit(UserConditionExamineVO userConditionExamine);
}
src/main/java/com/mindskip/xzs/service/UserService.java
@@ -5,7 +5,6 @@
import com.mindskip.xzs.domain.ExamPaper;
import com.mindskip.xzs.domain.User;
import com.mindskip.xzs.domain.other.KeyValue;
import com.mindskip.xzs.domain.vo.UserVO;
import com.mindskip.xzs.viewmodel.admin.user.UserPageRequestVM;
import java.util.List;
@@ -135,7 +134,7 @@
    User getUserByRealName(String realName);
    void setStatus(UserVO user);
    void setStatus(User user);
    User getUserByExam(ExamPaper examPaper);
src/main/java/com/mindskip/xzs/service/impl/DepartmentExamineServiceImpl.java
@@ -7,7 +7,7 @@
import com.mindskip.xzs.domain.DepartmentExamine;
import com.mindskip.xzs.domain.vo.DepartmentExamineVO;
import com.mindskip.xzs.repository.DepartmentExamineMapper;
import com.mindskip.xzs.service.IDepartmentExamineService;
import com.mindskip.xzs.service.DepartmentExamineService;
import com.mindskip.xzs.service.UserDepartMentService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -23,7 +23,7 @@
 */
@Service
@RequiredArgsConstructor
public class DepartmentExamineServiceImpl extends ServiceImpl<DepartmentExamineMapper, DepartmentExamine> implements IDepartmentExamineService {
public class DepartmentExamineServiceImpl extends ServiceImpl<DepartmentExamineMapper, DepartmentExamine> implements DepartmentExamineService {
    private final UserDepartMentService userDepartMentService;
src/main/java/com/mindskip/xzs/service/impl/UserConditionExamineServiceImpl.java
New file
@@ -0,0 +1,54 @@
package com.mindskip.xzs.service.impl;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.mindskip.xzs.domain.User;
import com.mindskip.xzs.domain.UserConditionExamine;
import com.mindskip.xzs.domain.vo.UserConditionExamineVO;
import com.mindskip.xzs.repository.UserConditionExamineMapper;
import com.mindskip.xzs.service.UserConditionExamineService;
import com.mindskip.xzs.service.UserService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
 * <p>
 * 用户状况表 服务实现类
 * </p>
 *
 * @author gonghl
 * @since 2024-05-22
 */
@Service
@RequiredArgsConstructor
public class UserConditionExamineServiceImpl extends ServiceImpl<UserConditionExamineMapper, UserConditionExamine> implements UserConditionExamineService {
    private final UserService userService;
    @Override
    public PageInfo<UserConditionExamineVO> pageInfo(UserConditionExamineVO userConditionExamineVO) {
        return PageHelper.startPage(userConditionExamineVO.getPageIndex(), userConditionExamineVO.getPageSize(), "id desc").doSelectPageInfo(() ->
                baseMapper.pageInfo(userConditionExamineVO)
        );
    }
    @Override
    @Transactional
    public Boolean audit(UserConditionExamineVO userConditionExamine) {
        // 审核通过修改状况
        if ("1".equals(userConditionExamine.getResult().getCode())) {
            User user = new User();
            user.setId(userConditionExamine.getUserId());
            user.setCondition(userConditionExamine.getTargetCondition());
            userService.setStatus(user);
        }
        return new LambdaUpdateChainWrapper<>(baseMapper)
                .eq(UserConditionExamine::getId, userConditionExamine.getId())
                .set(UserConditionExamine::getResult, userConditionExamine.getResult())
                .set(UserConditionExamine::getRemark, userConditionExamine.getRemark())
                .update();
    }
}
src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java
@@ -176,7 +176,7 @@
    }
    @Override
    public void setStatus(UserVO user) {
    public void setStatus(User user) {
        userMapper.setStatus(user);
    }
src/main/resources/mapper/UserConditionExamineMapper.xml
New file
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mindskip.xzs.repository.UserConditionExamineMapper">
    <select id="pageInfo" resultType="com.mindskip.xzs.domain.vo.UserConditionExamineVO">
        SELECT
            a.* ,
            b1.real_name as userName,
            b2.real_name as createUserName
        FROM
            t_user_condition_examine a
            LEFT JOIN t_user b1 ON a.user_id = b1.id
            LEFT JOIN t_user b2 ON a.create_user = b2.id
            iNNER JOIN t_user_department c ON a.user_id = c.user_id
            <if test="deptIds != null and deptIds.size() > 0">
                AND c.department_id IN
                <foreach collection="deptIds" item="deptId" open="(" separator="," close=")">
                    #{deptId}
                </foreach>
            </if>
        WHERE
            a.deleted = 0
            <if test="userName != null">
                AND b1.real_name LIKE concat('%', #{userName}, '%')
            </if>
        GROUP BY a.id, a.create_time
        ORDER BY a.create_time
    </select>
</mapper>
src/main/resources/mapper/UserMapper.xml
@@ -469,11 +469,10 @@
  </update>
  <update id="setStatus">
    UPDATE t_user
    SET `condition`        = #{condition},
        `condition_detail` = #{conditionDetail}
    WHERE id = #{id}
    AND deleted = 0
      UPDATE t_user
      SET `condition` = #{condition}
      WHERE id = #{id}
        AND deleted = 0
  </update>
    <update id="clearDeptAdmin">