浏览代码

用户管理新增用户工作照上传功能

hurugang 3 年之前
父节点
当前提交
756583609d

+ 73 - 28
src/main/java/cn/hnthyy/thmz/controller/UserController.java

@@ -17,6 +17,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
 import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -32,8 +33,10 @@ public class UserController {
     private UserRoleRelationService userRoleRelationService;
     @Autowired
     private RoleService roleService;
+
     /**
-     * 用户信息修改
+     * 用户信息修改 (自己修改自己)
+     *
      * @param userParam
      * @return
      */
@@ -53,14 +56,14 @@ public class UserController {
             resultMap.put("message", "用户信息修改失败,用户Token不存在");
             return resultMap;
         }
-        DecodedJWT decodedJWT=TokenUtil.parseJWT(token);
-        User tokenUser=(User)JsonUtil.jsontoObject(decodedJWT.getSubject(),User.class);
-        if(tokenUser==null || tokenUser.getId()==null){
+        DecodedJWT decodedJWT = TokenUtil.parseJWT(token);
+        User tokenUser = (User) JsonUtil.jsontoObject(decodedJWT.getSubject(), User.class);
+        if (tokenUser == null || tokenUser.getId() == null) {
             resultMap.put("code", -1);
             resultMap.put("message", "用户信息修改失败,用户主键不能为空");
             return resultMap;
         }
-        if(StringUtils.isNotBlank(userParam.getOldPassword())){
+        if (StringUtils.isNotBlank(userParam.getOldPassword())) {
             try {
                 if (!Md5Util.checkPassword(userParam.getOldPassword(), tokenUser.getPassword())) {
                     resultMap.put("code", -1);
@@ -77,7 +80,7 @@ public class UserController {
             }
         }
         userParam.setId(tokenUser.getId());
-        Integer num= userService.updateUser(userParam);
+        Integer num = userService.updateUser(userParam);
         if (num == null) {
             resultMap.put("code", -1);
             resultMap.put("message", "用户信息修改失败,请稍后重试或联系管理员");
@@ -89,8 +92,49 @@ public class UserController {
     }
 
 
+    /**
+     * 用户信息修改 (改别人)
+     *
+     * @param userParam
+     * @return
+     */
+    @UserLoginToken
+    @RequestMapping(value = "/modify-user-for-other", method = RequestMethod.POST)
+    public Map<String, Object> modifyUserForOther(@RequestBody User userParam) {
+        Map<String, Object> resultMap = new HashMap<>();
+        try {
+            String message = "用户信息修改成功!";
+            if (userParam == null) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "用户信息修改失败,用户信息参数错误");
+                return resultMap;
+            }
+            if (userParam.getId() == null) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "用户信息修改失败,用户主键不能为空");
+                return resultMap;
+            }
+            Integer num = userService.updateUser(userParam);
+            if (num == null) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "用户信息修改失败,请稍后重试或联系管理员");
+                return resultMap;
+            }
+            resultMap.put("code", 0);
+            resultMap.put("message", message);
+            return resultMap;
+        } catch (Exception e) {
+            log.error(e.toString());
+            resultMap.put("code", -1);
+            resultMap.put("message", "用户信息修改失败,系统异常");
+            return resultMap;
+        }
+    }
+
+
     /**
      * 用户信息查询
+     *
      * @return
      */
     @UserLoginToken
@@ -103,14 +147,14 @@ public class UserController {
             resultMap.put("message", "用户信息查询失败,用户Token不存在");
             return resultMap;
         }
-        DecodedJWT decodedJWT=TokenUtil.parseJWT(token);
-        User tokenUser=(User)JsonUtil.jsontoObject(decodedJWT.getSubject(),User.class);
-        if(tokenUser==null || tokenUser.getId()==null){
+        DecodedJWT decodedJWT = TokenUtil.parseJWT(token);
+        User tokenUser = (User) JsonUtil.jsontoObject(decodedJWT.getSubject(), User.class);
+        if (tokenUser == null || tokenUser.getId() == null) {
             resultMap.put("code", -1);
             resultMap.put("message", "用户信息查询失败,用户主键不能为空");
             return resultMap;
         }
-        User userDb= userService.queryUserById(tokenUser.getId());
+        User userDb = userService.queryUserById(tokenUser.getId());
         if (userDb == null) {
             resultMap.put("code", -1);
             resultMap.put("message", "用户信息查询失败,用户不存在");
@@ -125,6 +169,7 @@ public class UserController {
 
     /**
      * 获取当前登录用户的姓名
+     *
      * @return
      */
     @UserLoginToken
@@ -132,14 +177,14 @@ public class UserController {
     public Map<String, Object> getUserName(HttpServletRequest httpServletRequest) {
         Map<String, Object> resultMap = new HashMap<>();
         String token = TokenUtil.getToken(httpServletRequest);
-        DecodedJWT decodedJWT=TokenUtil.parseJWT(token);
-        User tokenUser=(User)JsonUtil.jsontoObject(decodedJWT.getSubject(),User.class);
-        if(tokenUser==null || tokenUser.getId()==null){
+        DecodedJWT decodedJWT = TokenUtil.parseJWT(token);
+        User tokenUser = (User) JsonUtil.jsontoObject(decodedJWT.getSubject(), User.class);
+        if (tokenUser == null || tokenUser.getId() == null) {
             resultMap.put("code", -1);
             resultMap.put("message", "用户信息查询失败,用户主键不能为空");
             return resultMap;
         }
-        User userDb= userService.queryUserById(tokenUser.getId());
+        User userDb = userService.queryUserById(tokenUser.getId());
         if (userDb == null) {
             resultMap.put("code", -1);
             resultMap.put("message", "用户信息查询失败,用户不存在");
@@ -152,9 +197,9 @@ public class UserController {
     }
 
 
-
     /**
      * 获取用户树
+     *
      * @return
      */
     @UserLoginToken
@@ -162,12 +207,12 @@ public class UserController {
     public Map<String, Object> getUserTree() {
         Map<String, Object> resultMap = new HashMap<>();
 
-        List<User> userList= userService.queryAllUser();
-        List<Map<String,Object>> treeList = new ArrayList<>();
-        for (User user : userList){
-            Map<String,Object> temp = new HashMap<>();
-            temp.put("text",user.getUserName());
-            temp.put("dataId",user.getId());
+        List<User> userList = userService.queryAllUser();
+        List<Map<String, Object>> treeList = new ArrayList<>();
+        for (User user : userList) {
+            Map<String, Object> temp = new HashMap<>();
+            temp.put("text", user.getUserName());
+            temp.put("dataId", user.getId());
             treeList.add(temp);
         }
         resultMap.put("code", 0);
@@ -197,10 +242,10 @@ public class UserController {
                 String str = ",";
                 for (int i = 0; i < userRoleRelations.size(); i++) {//多个角色
                     Role role = roleService.queryById(userRoleRelations.get(i).getRoleId());
-                    if(i != 0){
-                        roleIds.append(str+userRoleRelations.get(i).getRoleId());
-                        roleNames.append(str+role.getRoleName());
-                    }else{
+                    if (i != 0) {
+                        roleIds.append(str + userRoleRelations.get(i).getRoleId());
+                        roleNames.append(str + role.getRoleName());
+                    } else {
                         roleIds.append(userRoleRelations.get(i).getRoleId());
                         roleNames.append(role.getRoleName());
                     }
@@ -246,7 +291,7 @@ public class UserController {
             List<UserRoleRelation> userRoleRelations = userRoleRelationService.queryByUserId(id);
             StringBuffer roleIds = new StringBuffer();
             for (UserRoleRelation userRoleRelation : userRoleRelations) {
-                roleIds.append(","+userRoleRelation.getRoleId());
+                roleIds.append("," + userRoleRelation.getRoleId());
             }
             if (userRoleRelations.size() > 0) {
                 userRoleRelationVo.setRoleIds(roleIds.toString());
@@ -289,7 +334,7 @@ public class UserController {
             List<UserRoleRelation> userRoleRelations = userRoleRelationService.queryByUserId(user.getId());
             StringBuffer roleIds = new StringBuffer();
             for (UserRoleRelation userRoleRelation : userRoleRelations) {
-                roleIds.append(","+userRoleRelation.getRoleId());
+                roleIds.append("," + userRoleRelation.getRoleId());
             }
             if (userRoleRelations.size() > 0) {
                 userRoleRelationVo.setRoleIds(roleIds.toString());
@@ -333,7 +378,7 @@ public class UserController {
             }
             User tokenUser = TokenUtil.getUser(httpServletRequest);
             //保存用户角色关联
-            userRoleRelationService.saveUserRoleRelation(userRoleRelationVo,tokenUser.getId());
+            userRoleRelationService.saveUserRoleRelation(userRoleRelationVo, tokenUser.getId());
             resultMap.put("code", 0);
             resultMap.put("message", "保存用户与菜单关系成功");
             return resultMap;

+ 8 - 2
src/main/java/cn/hnthyy/thmz/controller/mz/FileController.java

@@ -138,6 +138,7 @@ public class FileController {
     @UserLoginToken
     @RequestMapping(value = "/upload", method = RequestMethod.POST)
     public ResponseEntity uploadFile(MultipartHttpServletRequest request) {
+        String ids =null;
         try {
             Iterator<String> itr = request.getFileNames();
             while (itr.hasNext()) {
@@ -160,14 +161,19 @@ public class FileController {
                         newFile.setSquareFile(bytes);
                     }
                 }
-                fileUploadService.saveUploadFile(newFile);
+                Long id= fileUploadService.saveUploadFile(newFile);
+                if(ids==null){
+                    ids=id+"";
+                }else {
+                    ids+=","+id;
+                }
             }
         } catch (Exception e) {
             e.printStackTrace();
             log.error("文件上传失败,错误原因:{}", e);
             return new ResponseEntity<>("{\"code\":-1}", HttpStatus.INTERNAL_SERVER_ERROR);
         }
-        return new ResponseEntity<>("{\"code\":0}", HttpStatus.OK);
+        return new ResponseEntity<>("{\"code\":0,\"fileIds\":\""+ids+"\"}", HttpStatus.OK);
     }
 
 

+ 6 - 0
src/main/java/cn/hnthyy/thmz/entity/thmz/User.java

@@ -42,8 +42,14 @@ public class User {
     private Integer gender;
     //锁屏密码
     private String lockScreenPassword;
+    //评价器展示头像地址主键
+    private Long clientProfileImage;
+
+
+
     //密码修改时候的原始密码
     private String oldPassword;
+
     public User() {
     }
 

+ 2 - 1
src/main/java/cn/hnthyy/thmz/enums/FileTypeEnum.java

@@ -11,7 +11,8 @@ public enum FileTypeEnum {
     ID_CARD_FRONT(1,"身份证正面"),
     ID_CARD_BACK(2,"身份证背面"),
     PRINT_DRIVE(3,"打印机驱动"),
-    EXCEL_REPORT(4,"EXCEL报表");
+    EXCEL_REPORT(4,"EXCEL报表"),
+    OTHER_FILE(5,"其他文件");
 
     public Integer code;
     public String name;

+ 10 - 7
src/main/java/cn/hnthyy/thmz/mapper/thmz/UserMapper.java

@@ -16,7 +16,7 @@ public interface UserMapper {
      *
      * @return
      */
-    @Select("select id,user_id_code,user_code,user_name,password,id_card,create_time,create_user,update_time,update_user,status,profile_image,email,phone_number,gender,lock_screen_password from t_user ")
+    @Select("select id,user_id_code,user_code,user_name,password,id_card,create_time,create_user,update_time,update_user,status,profile_image,email,phone_number,gender,lock_screen_password,client_profile_image from t_user ")
     List<User> selectAllUser();
 
     /**
@@ -26,7 +26,7 @@ public interface UserMapper {
      */
     @Select({"<script>",
             "select id,user_id_code,user_code,user_name,password,id_card,create_time,create_user,update_time,update_user," +
-                    "status,profile_image,email,phone_number,gender,lock_screen_password FROM t_user WHERE 1 = 1 " +
+                    "status,profile_image,email,phone_number,gender,lock_screen_password,client_profile_image FROM t_user WHERE 1 = 1 " +
                     "<when test='id != null'>" +
                     " and id = #{id}" +
                     "</when>" +
@@ -72,7 +72,7 @@ public interface UserMapper {
      * @param id 主键
      * @return
      */
-    @Select("select id,user_id_code,user_code,user_name,password,id_card,create_time,create_user,update_time,update_user,status,profile_image,email,phone_number,gender,lock_screen_password from t_user where id=#{id}")
+    @Select("select id,user_id_code,user_code,user_name,password,id_card,create_time,create_user,update_time,update_user,status,profile_image,email,phone_number,gender,lock_screen_password,client_profile_image from t_user where id=#{id}")
     User selectUserById(@Param("id") Long id);
 
     /**
@@ -81,7 +81,7 @@ public interface UserMapper {
      * @param userCode 工号
      * @return
      */
-    @Select("select id,user_id_code,user_code,user_name,password,id_card,create_time,create_user,update_time,update_user,status,profile_image,email,phone_number,gender,lock_screen_password from t_user where user_code=#{userCode}")
+    @Select("select id,user_id_code,user_code,user_name,password,id_card,create_time,create_user,update_time,update_user,status,profile_image,email,phone_number,gender,lock_screen_password,client_profile_image from t_user where user_code=#{userCode}")
     User selectUserByCode(@Param("userCode") String userCode);
 
     /**
@@ -90,10 +90,10 @@ public interface UserMapper {
      * @param user
      * @return
      */
-    @Insert("INSERT INTO t_user(user_id_code,user_code, user_name, password, id_card, create_time, create_user, update_time, update_user, status,profile_image,email,phone_number,gender,lock_screen_password) VALUES " +
+    @Insert("INSERT INTO t_user(user_id_code,user_code, user_name, password, id_card, create_time, create_user, update_time, update_user, status,profile_image,email,phone_number,gender,lock_screen_password,client_profile_image) VALUES " +
             "(#{userIdCode,jdbcType=VARCHAR},#{userCode,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},  #{idCard,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}," +
             " #{createUser,jdbcType=BIGINT},  #{updateTime,jdbcType=TIMESTAMP}, #{updateUser,jdbcType=BIGINT}, #{status,jdbcType=INTEGER},#{profileImage,jdbcType=BIGINT}" +
-            ",#{email,jdbcType=VARCHAR},#{phoneNumber,jdbcType=VARCHAR},#{gender,jdbcType=CHAR},#{lockScreenPassword,jdbcType=VARCHAR})")
+            ",#{email,jdbcType=VARCHAR},#{phoneNumber,jdbcType=VARCHAR},#{gender,jdbcType=CHAR},#{lockScreenPassword,jdbcType=VARCHAR},#{clientProfileImage,jdbcType=BIGINT})")
     @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
     int insertUser(User user);
 
@@ -151,6 +151,9 @@ public interface UserMapper {
             "<when test='lockScreenPassword!=null'>",
             ",lock_screen_password =#{lockScreenPassword,jdbcType=VARCHAR}",
             "</when>",
+            "<when test='clientProfileImage!=null'>",
+            ",client_profile_image =#{clientProfileImage,jdbcType=BIGINT}",
+            "</when>",
             "</trim>",
             "</script>"})
     int updateUser(User user);
@@ -162,6 +165,6 @@ public interface UserMapper {
      * @param userIdCode 员工编码
      * @return
      */
-    @Select("select id,user_id_code,user_code,user_name,password,id_card,create_time,create_user,update_time,update_user,status,profile_image,email,phone_number,gender,lock_screen_password from t_user where user_id_code=#{userIdCode}")
+    @Select("select id,user_id_code,user_code,user_name,password,id_card,create_time,create_user,update_time,update_user,status,profile_image,email,phone_number,gender,lock_screen_password,client_profile_image from t_user where user_id_code=#{userIdCode}")
     User selectUserByUserIdCode(@Param("userIdCode") String userIdCode);
 }

+ 3 - 2
src/main/java/cn/hnthyy/thmz/service/impl/thmz/FileUploadServiceImpl.java

@@ -35,14 +35,15 @@ public class FileUploadServiceImpl implements FileUploadService {
 
     @Override
     @Transactional
-    public void saveUploadFile(FileUpload fileUpload) {
-       fileUploadMapper.insertFileUpload(fileUpload);
+    public Long saveUploadFile(FileUpload fileUpload) {
+      fileUploadMapper.insertFileUpload(fileUpload);
        if(FileTypeEnum.PROFILE_IMAGE.code.equals(fileUpload.getFileType()) && fileUpload.getCreateUser()!=null && fileUpload.getId()!=null){
            User user = new User();
            user.setId(fileUpload.getCreateUser());
            user.setProfileImage(fileUpload.getId());
            userMapper.updateUser(user);
        }
+       return fileUpload.getId();
     }
 
     @Override

+ 1 - 1
src/main/java/cn/hnthyy/thmz/service/thmz/FileUploadService.java

@@ -10,7 +10,7 @@ public interface FileUploadService {
 
     FileUpload queryByid(Long id);
 
-    void saveUploadFile(FileUpload fileUpload);
+    Long saveUploadFile(FileUpload fileUpload);
 
     /**
      * 查询文件总数

+ 1 - 1
src/main/resources/static/js/mz/client_welcome.js

@@ -1,4 +1,4 @@
-
+//@ sourceURL=client_welcome.js
 $(function (){
     $.backstretch("../../thmz/images/backgrounds/back3.jpg");
 });

+ 2 - 2
src/main/resources/static/js/profile-common.js

@@ -3,8 +3,8 @@ $(function (){
      *初始化文件上传框
      */
     try {
-        //设置文件类型为打印机驱动
-        localStorage.setItem("fileType", "3");
+        //设置文件类型 其他文件
+        localStorage.setItem("fileType", "5");
         $("#commonFile").dropzone({
             url: "/thmz/upload",
             headers: {

+ 101 - 0
src/main/resources/static/js/user_manage.js

@@ -22,9 +22,38 @@ $(function () {
             saveUser();
         }
     });
+
+
+
+
+    //工作照保存按钮点击事件
+    $("#btn_save_client_image").click(function (t) {
+        $.ajax({
+            type: "POST",
+            contentType: "application/json;charset=UTF-8",
+            url: "/thmz/modify-user-for-other",
+            dataType: 'json',
+            data: JSON.stringify({"id":$("#userId").val(),"clientProfileImage":$("#fileIds").val()}),
+            headers:{'Accept': 'application/json','Authorization':'Bearer '+ localStorage.getItem("token")},
+            success: function(result) {
+                if(result=='401' || result==401){
+                    window.location.href='/thmz/login/view'
+                    return;
+                }
+                if(result.code == 0) {
+                    successMesage(result);
+                    dropzoneDestroy();
+                    $("#clientImageModal").modal("hide");
+                } else {
+                    errorMesage(result);
+                }
+            }
+        });
+    });
     //初始化表格数据
     getAllUser();
     getAllRole();
+    initCommonFile();
 });
 
 
@@ -170,6 +199,7 @@ function getAllUser() {
                 formatter: function (value, row, index) {
                     row = JSON.stringify(row);
                     var str = '<button type="button" class="btn btn-primary  btn-sm" onclick=editUser(' + row + ')>设置角色</button>';
+                    str+= '<button type="button" class="btn btn-primary  btn-sm" onclick=clientImageModal(' + row + ')>设置工作照</button>';
                     return [str].join('');
                 }
             },
@@ -281,6 +311,16 @@ function editUser(row) {
     $("#editModal").modal();
 }
 
+
+/**
+ * 打开上传工作照窗口
+ * @param row
+ */
+function clientImageModal(row) {
+    $("#userId").val(row.user.id);
+    $("#clientImageModal").modal();
+}
+
 /**
  * 重置查询表单
  */
@@ -288,3 +328,64 @@ function resetSearch() {
     $("#userCodeSearch").val(null);
     $("#userNameSearch").val(null);
 }
+
+
+/**
+ * 初始化工作照上传框
+ */
+function initCommonFile() {
+    /**
+     *初始化文件上传框
+     */
+    try {
+        //设置文件类型 其他文件
+        localStorage.setItem("fileType", "5");
+        $("#commonFile").dropzone({
+            url: "/thmz/upload",
+            headers: {
+                'Accept': 'application/json',
+                'Authorization': 'Bearer ' + localStorage.getItem("token"),
+                'fileType': localStorage.getItem("fileType")
+            },
+            init: function () {
+                this.on("success", function (file, data) {
+                    if (data == '401' || data == 401) {
+                        window.location.href = '/thmz/login/view'
+                        return;
+                    }
+                    if (data.code == 0) {
+                        var fileIds = data.fileIds;
+                        if(fileIds!=null&& fileIds.length>0){
+                            if(fileIds.indexOf(",")>0){
+                                errorMesageSimaple("工作照片不允许上传多张,请取消重新上传!");
+                                return;
+                            }
+                        }
+                        $("#fileIds").val(fileIds);
+                    }
+                });
+            },
+
+        });
+    } catch (e) {
+        console.error("出现一些未知错误")
+    }
+}
+
+
+/**
+ * 清空文件上传框
+ */
+function dropzoneDestroy() {
+    var children=$("#commonFile").children();
+    if(children!=null && children.length>1){
+        for(var i=0;i<children.length;i++){
+            if(i>0){
+                $(children[i]).remove();
+            }
+        }
+    }
+    $("#commonFile").removeClass("dz-started");
+    $("#userId").val(null);
+    $("#fileIds").val(null);
+}

+ 39 - 1
src/main/resources/templates/user_manage.html

@@ -81,7 +81,6 @@
                 </form>
             </div>
             <div class="modal-footer">
-                <input id="requestId" type="hidden"/>
                 <button type="button" class="btn btn-primary" id="btn_save">保存</button>
                 <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
             </div>
@@ -92,3 +91,42 @@
 
 
 
+
+<!--设置工作照弹窗开始-->
+<div class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-hidden="true" id="clientImageModal">
+    <div class="modal-dialog modal-lg">
+        <div class="modal-content" style="width: 520px;margin-left: 250px;margin-top: 120px;">
+            <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal" onclick="dropzoneDestroy()"><span aria-hidden="true">×</span>
+                </button>
+                <h4 class="modal-title modal-title-thmz">工作照管理【<span>上传</span>】</h4>
+            </div>
+            <div class="modal-body">
+                <form class="form-horizontal form-label-left" novalidate  autocomplete="off">
+                    <div class="col-md-12 col-sm-12 col-xs-12">
+                        <div class="x_panel">
+                            <div class="x_title">
+                                <h2>请将需要上传的文件拖动到框内</h2>
+                                <ul class="nav navbar-right panel_toolbox">
+                                </ul>
+                                <div class="clearfix"></div>
+                            </div>
+                            <div class="x_content">
+                                <div id="commonFile" class="dropzone" style="min-height: 150px;"></div>
+                            </div>
+                        </div>
+                    </div>
+                </form>
+            </div>
+            <div class="modal-footer">
+                <input id="userId" type="hidden"/>
+                <input id="fileIds" type="hidden"/>
+                <button type="button" class="btn btn-primary" id="btn_save_client_image">保存</button>
+                <button type="button" class="btn btn-default" data-dismiss="modal" onclick="dropzoneDestroy()">取消</button>
+            </div>
+        </div>
+    </div>
+</div>
+<!--设置工作照弹窗结尾-->
+
+