瀏覽代碼

增加修改用户信息接口

feick 5 年之前
父節點
當前提交
9cbe8ac4a6

+ 46 - 9
src/main/java/com/yaoxiang/diagnosis/controller/UserInfoController.java

@@ -1,31 +1,40 @@
 package com.yaoxiang.diagnosis.controller;
 
 import com.yaoxiang.diagnosis.entity.UserInfo;
+import com.yaoxiang.diagnosis.file.FileService;
 import com.yaoxiang.diagnosis.model.AuthUser;
+import com.yaoxiang.diagnosis.model.Result;
+import com.yaoxiang.diagnosis.model.UserVo;
+import com.yaoxiang.diagnosis.service.UserService;
+import com.yaoxiang.diagnosis.util.CommonUtil;
 import com.yaoxiang.diagnosis.util.SecurityUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
 @Api(tags = "用户信息")
 @RestController
-@RequestMapping("/self")
+@RequestMapping("self")
 public class UserInfoController {
 
+    @Autowired
+    private UserService userService;
+    @Autowired
+    private FileService fileService;
 
     /**
      * 获取当前用户有权限使用的功能模块
      *
-     * @return
+     * @return authority
      */
     @ApiOperation("获取用户权限")
-    @GetMapping("/authority")
+    @GetMapping("authority")
     public List<String> getAuthorities() {
         AuthUser user = SecurityUtil.getCurrentUser();
         UserInfo userInfo = user.getUser();
@@ -35,13 +44,41 @@ public class UserInfoController {
     /**
      * 获取当前用户的信息
      *
-     * @return
+     * @return info
      */
     @ApiOperation("获取用户信息")
-    @GetMapping("/info")
+    @GetMapping("info")
     public UserInfo getInfo() {
         AuthUser user = SecurityUtil.getCurrentUser();
         user.getUser().setPassword(null);
         return user.getUser();
     }
+
+    @ApiOperation("更新积分")
+    @PostMapping("updateScore")
+    public Result updateScore(Long uid, Integer oldScore, Integer newScore) {
+        boolean result = userService.updateScore(uid, oldScore, newScore);
+        return Result.ok(result);
+    }
+
+    @ApiOperation("更新头像")
+    @PostMapping("updateImage")
+    public Result updateImage(Long uid, @RequestBody MultipartFile file) throws IOException {
+        if (file == null) {
+            return Result.fail("请上传头像");
+        }
+        int suffixIndex = file.getOriginalFilename().lastIndexOf(".");
+        String suffix = file.getOriginalFilename().substring(suffixIndex);
+        String saveName = CommonUtil.randomUUID() + suffix;
+        String url = fileService.upload(file.getBytes(), saveName);
+        boolean result = userService.updateImage(uid, url);
+        return Result.ok(result);
+    }
+
+    @ApiOperation("更新用户信息")
+    @PostMapping("updateInfo")
+    public Result updateInfo(UserVo userVo) {
+        boolean result = userService.updateInfo(userVo);
+        return Result.ok(result);
+    }
 }

+ 41 - 3
src/main/java/com/yaoxiang/diagnosis/entity/UserInfo.java

@@ -14,9 +14,7 @@ import java.util.Date;
 import java.util.List;
 
 /**
- * @AUTHOR: DaiFengWen
- * @DATE: Create in 2018/8/24 18:23
- * @DESCRIPTION:
+ * 用户信息
  */
 @Entity
 @ApiModel("用户信息")
@@ -52,6 +50,14 @@ public class UserInfo implements Serializable {
     private Integer age;
     @ApiModelProperty("性别")
     private String gender;
+    @ApiModelProperty("积分")
+    private Integer score;
+    @ApiModelProperty("头像")
+    private String image;
+    @ApiModelProperty("昵称")
+    private String nickname;
+    @ApiModelProperty("称号")
+    private String title;
 
     @CreationTimestamp
     @Column(nullable = false)
@@ -233,4 +239,36 @@ public class UserInfo implements Serializable {
     public void setLocked(Boolean locked) {
         this.locked = locked;
     }
+
+    public Integer getScore() {
+        return score;
+    }
+
+    public void setScore(Integer score) {
+        this.score = score;
+    }
+
+    public String getImage() {
+        return image;
+    }
+
+    public void setImage(String image) {
+        this.image = image;
+    }
+
+    public String getNickname() {
+        return nickname;
+    }
+
+    public void setNickname(String nickname) {
+        this.nickname = nickname;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
 }

+ 25 - 36
src/main/java/com/yaoxiang/diagnosis/model/UserVo.java

@@ -11,18 +11,15 @@ public class UserVo implements Serializable {
     private String username;
     private String email;
     private String phone;
-    private String salt;
     private String address;
     private String region;//校区
     private Integer level;
-    private Date lastLoginTime;
-
-    private Date updatetime;
-    private String userType;
-    private String roleIds;
-
-    private List<String> authorities;
+    private String grade;
+    private String gender;
+    private Integer age;
 
+    private String nickname;
+    private String title;
 
     public Long getId() {
         return id;
@@ -64,14 +61,6 @@ public class UserVo implements Serializable {
         this.phone = phone;
     }
 
-    public String getSalt() {
-        return salt;
-    }
-
-    public void setSalt(String salt) {
-        this.salt = salt;
-    }
-
     public String getAddress() {
         return address;
     }
@@ -96,43 +85,43 @@ public class UserVo implements Serializable {
         this.level = level;
     }
 
-    public Date getLastLoginTime() {
-        return lastLoginTime;
+    public String getGrade() {
+        return grade;
     }
 
-    public void setLastLoginTime(Date lastLoginTime) {
-        this.lastLoginTime = lastLoginTime;
+    public void setGrade(String grade) {
+        this.grade = grade;
     }
 
-    public Date getUpdatetime() {
-        return updatetime;
+    public String getGender() {
+        return gender;
     }
 
-    public void setUpdatetime(Date updatetime) {
-        this.updatetime = updatetime;
+    public void setGender(String gender) {
+        this.gender = gender;
     }
 
-    public String getUserType() {
-        return userType;
+    public Integer getAge() {
+        return age;
     }
 
-    public void setUserType(String userType) {
-        this.userType = userType;
+    public void setAge(Integer age) {
+        this.age = age;
     }
 
-    public String getRoleIds() {
-        return roleIds;
+    public String getNickname() {
+        return nickname;
     }
 
-    public void setRoleIds(String roleIds) {
-        this.roleIds = roleIds;
+    public void setNickname(String nickname) {
+        this.nickname = nickname;
     }
 
-    public List<String> getAuthorities() {
-        return authorities;
+    public String getTitle() {
+        return title;
     }
 
-    public void setAuthorities(List<String> authorities) {
-        this.authorities = authorities;
+    public void setTitle(String title) {
+        this.title = title;
     }
 }

+ 41 - 5
src/main/java/com/yaoxiang/diagnosis/service/UserService.java

@@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
 import com.yaoxiang.diagnosis.dao.UserRepo;
 import com.yaoxiang.diagnosis.entity.Role;
 import com.yaoxiang.diagnosis.model.Result;
+import com.yaoxiang.diagnosis.model.UserVo;
 import com.yaoxiang.diagnosis.util.CommonUtil;
 import com.yaoxiang.diagnosis.util.MD5Util;
 import com.yaoxiang.diagnosis.config.Constants;
@@ -16,6 +17,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -27,11 +29,6 @@ import java.util.function.Consumer;
 import java.util.stream.Collectors;
 
 
-/**
- * @AUTHOR: DaiFengWen
- * @DATE: Create in 2018/8/24 18:27
- * @DESCRIPTION:
- */
 @Service
 public class UserService {
     @Resource
@@ -175,4 +172,43 @@ public class UserService {
         return true;
     }
 
+    @Transactional
+    public boolean updateScore(Long uid, Integer oldScore, Integer newScore) {
+        UserInfo userInfo = getSimpleUser(uid);
+        if (userInfo.getScore() != oldScore.intValue()) {
+            return false;
+        }
+        userInfo.setScore(newScore);
+        userRepo.save(userInfo);
+        return true;
+    }
+
+    public boolean updateImage(Long uid, String image) {
+        UserInfo userInfo = getSimpleUser(uid);
+        userInfo.setImage(image);
+        userRepo.save(userInfo);
+        return true;
+    }
+
+    public boolean updateInfo(UserVo userVo) {
+        UserInfo userInfo = getSimpleUser(userVo.getId());
+        if (userInfo == null) {
+            return false;
+        }
+        userInfo.setName(userVo.getName());
+        userInfo.setUsername(userVo.getUsername());
+        userInfo.setAddress(userVo.getAddress());
+        userInfo.setPhone(userVo.getPhone());
+        userInfo.setLevel(userVo.getLevel());
+        userInfo.setAge(userVo.getAge());
+        userInfo.setEmail(userVo.getEmail());
+        userInfo.setGender(userVo.getGender());
+        userInfo.setGrade(userVo.getGrade());
+        userInfo.setRegion(userVo.getRegion());
+        userInfo.setNickname(userVo.getNickname());
+        userInfo.setTitle(userVo.getTitle());
+        userRepo.save(userInfo);
+        return true;
+    }
+
 }