From 6ac6b6f92dc4d0212c423d2f88d33f8b96558ca5 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期二, 07 五月 2024 11:55:35 +0800
Subject: [PATCH] 新增人员状态、状态描述展示、设置操作

---
 src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java        |    7 +++
 src/main/java/com/mindskip/xzs/domain/User.java                         |    5 ++
 src/main/java/com/mindskip/xzs/controller/admin/UserController.java     |    6 +++
 src/main/java/com/mindskip/xzs/domain/vo/UserVO.java                    |   26 +++++++++++++
 src/main/java/com/mindskip/xzs/domain/enums/UserConditionEnum.java      |   32 ++++++++++++++++
 src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserResponseVM.java |   21 ++++++++++
 src/main/java/com/mindskip/xzs/repository/UserMapper.java               |    2 +
 src/main/java/com/mindskip/xzs/service/UserService.java                 |    3 +
 src/main/resources/mapper/UserMapper.xml                                |   10 ++++
 9 files changed, 111 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/controller/admin/UserController.java b/src/main/java/com/mindskip/xzs/controller/admin/UserController.java
index a76d70a..416c421 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/UserController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/UserController.java
@@ -230,4 +230,10 @@
         return RestResponse.ok();
     }
 
+    @RequestMapping(value = "/setStatus", method = RequestMethod.POST)
+    public RestResponse<String> setStatus(@RequestBody UserVO user) {
+        userService.setStatus(user);
+        return RestResponse.ok("鎿嶄綔鎴愬姛");
+    }
+
 }
diff --git a/src/main/java/com/mindskip/xzs/domain/User.java b/src/main/java/com/mindskip/xzs/domain/User.java
index 6f1628a..549a0a2 100644
--- a/src/main/java/com/mindskip/xzs/domain/User.java
+++ b/src/main/java/com/mindskip/xzs/domain/User.java
@@ -1,5 +1,6 @@
 package com.mindskip.xzs.domain;
 
+import com.mindskip.xzs.domain.enums.UserConditionEnum;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -78,4 +79,8 @@
      * 鏄惁閮ㄩ棬绠$悊鍛�
      */
     private String deptAdmin;
+
+    private UserConditionEnum condition;
+
+    private String conditionDetail;
 }
diff --git a/src/main/java/com/mindskip/xzs/domain/enums/UserConditionEnum.java b/src/main/java/com/mindskip/xzs/domain/enums/UserConditionEnum.java
new file mode 100644
index 0000000..fdcaf01
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/enums/UserConditionEnum.java
@@ -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 UserConditionEnum {
+
+    SICK("1", "鐥呭亣"),
+    BUSINESS_TRIP("2", "鍑哄樊"),
+    OTHER("3", "鍏朵粬"),
+    ;
+
+
+    @EnumValue // 鏍囨槑璇ュ瓧娈靛瓨鍏ユ暟鎹簱
+    private final String code;
+
+    @JsonValue // 鏍囨槑鍦ㄨ浆JSON鏃朵娇鐢ㄨ瀛楁锛屽嵆鍝嶅簲鏃�
+    private final String desc;
+
+    UserConditionEnum(String code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+}
diff --git a/src/main/java/com/mindskip/xzs/domain/vo/UserVO.java b/src/main/java/com/mindskip/xzs/domain/vo/UserVO.java
index 5d1d64e..2bd26f4 100644
--- a/src/main/java/com/mindskip/xzs/domain/vo/UserVO.java
+++ b/src/main/java/com/mindskip/xzs/domain/vo/UserVO.java
@@ -1,5 +1,7 @@
 package com.mindskip.xzs.domain.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.mindskip.xzs.domain.enums.UserConditionEnum;
 import com.mindskip.xzs.utility.excel.ExcelImport;
 
 import java.io.Serializable;
@@ -36,6 +38,7 @@
      */
     private Integer sex;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date birthDay;
 
     /**
@@ -63,10 +66,13 @@
      */
     private String imagePath;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date modifyTime;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date lastActiveTime;
 
     /**
@@ -79,6 +85,26 @@
      */
     private String wxOpenId;
 
+    private UserConditionEnum condition;
+
+    private String conditionDetail;
+
+    public String getConditionDetail() {
+        return conditionDetail;
+    }
+
+    public void setConditionDetail(String conditionDetail) {
+        this.conditionDetail = conditionDetail;
+    }
+
+    public UserConditionEnum getCondition() {
+        return condition;
+    }
+
+    public void setCondition(UserConditionEnum condition) {
+        this.condition = condition;
+    }
+
     public Integer getId() {
         return id;
     }
diff --git a/src/main/java/com/mindskip/xzs/repository/UserMapper.java b/src/main/java/com/mindskip/xzs/repository/UserMapper.java
index d0e9942..a025abe 100644
--- a/src/main/java/com/mindskip/xzs/repository/UserMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/UserMapper.java
@@ -148,4 +148,6 @@
 
 
     List<ExamPaperAnswer> getUserByDept(@Param("query") ExamPaperGradeQuery query);
+
+    void setStatus(UserVO user);
 }
diff --git a/src/main/java/com/mindskip/xzs/service/UserService.java b/src/main/java/com/mindskip/xzs/service/UserService.java
index 51b3713..ab61ec6 100644
--- a/src/main/java/com/mindskip/xzs/service/UserService.java
+++ b/src/main/java/com/mindskip/xzs/service/UserService.java
@@ -2,6 +2,7 @@
 
 import com.mindskip.xzs.domain.other.KeyValue;
 import com.mindskip.xzs.domain.User;
+import com.mindskip.xzs.domain.vo.UserVO;
 import com.mindskip.xzs.viewmodel.admin.user.UserPageRequestVM;
 import com.github.pagehelper.PageInfo;
 import org.apache.ibatis.annotations.Param;
@@ -132,4 +133,6 @@
     List<User> getUserByLevel(Integer userLevel);
 
     User getUserByRealName(String realName);
+
+    void setStatus(UserVO user);
 }
diff --git a/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java
index a4b132e..b7c4452 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java
@@ -1,6 +1,7 @@
 package com.mindskip.xzs.service.impl;
 
 import com.mindskip.xzs.domain.other.KeyValue;
+import com.mindskip.xzs.domain.vo.UserVO;
 import com.mindskip.xzs.exception.BusinessException;
 import com.mindskip.xzs.domain.User;
 import com.mindskip.xzs.event.OnRegistrationCompleteEvent;
@@ -171,4 +172,10 @@
     public User getUserByRealName(String realName) {
         return userMapper.getUserByRealName(realName);
     }
+
+    @Override
+    public void setStatus(UserVO user) {
+        userMapper.setStatus(user);
+    }
+
 }
diff --git a/src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserResponseVM.java b/src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserResponseVM.java
index 6e8095d..0f889a7 100644
--- a/src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserResponseVM.java
+++ b/src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserResponseVM.java
@@ -1,6 +1,7 @@
 package com.mindskip.xzs.viewmodel.admin.user;
 
 import com.mindskip.xzs.domain.User;
+import com.mindskip.xzs.domain.enums.UserConditionEnum;
 import com.mindskip.xzs.utility.DateTimeUtil;
 import com.mindskip.xzs.viewmodel.BaseVM;
 
@@ -47,6 +48,18 @@
 
     private List<String> tagNames;
 
+    private UserConditionEnum condition;
+
+    private String conditionDetail;
+
+    public String getConditionDetail() {
+        return conditionDetail;
+    }
+
+    public void setConditionDetail(String conditionDetail) {
+        this.conditionDetail = conditionDetail;
+    }
+
     public static UserResponseVM from(User user) {
         UserResponseVM vm = modelMapper.map(user, UserResponseVM.class);
         vm.setBirthDay(DateTimeUtil.dateFormat(user.getBirthDay()));
@@ -56,6 +69,14 @@
         return vm;
     }
 
+    public UserConditionEnum getCondition() {
+        return condition;
+    }
+
+    public void setCondition(UserConditionEnum condition) {
+        this.condition = condition;
+    }
+
     public Integer getId() {
         return id;
     }
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index bd9950c..c0242e5 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -23,7 +23,7 @@
   </resultMap>
   <sql id="Base_Column_List">
     id, user_uuid, user_name, password, real_name, age, sex, birth_day, user_level, phone,
-    role, status, image_path, create_time, modify_time, last_active_time, deleted, wx_open_id, dept_admin
+    role, status, image_path, create_time, modify_time, last_active_time, deleted, wx_open_id, dept_admin, `condition`, condition_detail
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
     select
@@ -444,6 +444,14 @@
     UPDATE t_user SET dept_admin = #{deptAdmin} WHERE id = #{id} AND deleted = 0
   </update>
 
+  <update id="setStatus">
+    UPDATE t_user
+    SET `condition`        = #{condition},
+        `condition_detail` = #{conditionDetail}
+    WHERE id = #{id}
+    AND deleted = 0
+  </update>
+
   <select id="getUserByDept" resultType="com.mindskip.xzs.domain.ExamPaperAnswer">
     SELECT
         tu.id as createUser, tu.real_name as userName, count(tepa.id) as counts

--
Gitblit v1.8.0