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">