浏览代码

修改用户接口,增加新增用户的接口和根据用户年级获取用户信息的接口

Feick 5 年之前
父节点
当前提交
22aee9cb84

+ 1 - 0
src/main/java/com/yaoxiang/diagnosis/controller/UserInfoController.java

@@ -6,6 +6,7 @@ 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;
 

+ 13 - 5
src/main/java/com/yaoxiang/diagnosis/controller/UserManagerController.java

@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -31,7 +32,7 @@ public class UserManagerController {
     @PostMapping(value = "/addStudent")
     @ApiOperation("新增学生用户,姓名、手机、密码、年级必填")
     public Long addStudent(@RequestBody UserInfo user) {
-        if(StringUtils.isBlank(user.getGrade())){
+        if (StringUtils.isBlank(user.getGrade())) {
             return -1L;
         }
         user.setUserType(Constants.USER_TYPE_STUDENT);
@@ -52,10 +53,10 @@ public class UserManagerController {
         return userService.addUser(user);
     }
 
-    @GetMapping(value = "/test")
-    public String test() {
-        return new Date() + "";
-    }
+//    @GetMapping(value = "/test")
+//    public String test() {
+//        return new Date() + "";
+//    }
 
     @PostMapping("updatePassword")
     public boolean update(@RequestBody Map<String, String> params) {
@@ -70,4 +71,11 @@ public class UserManagerController {
         }
         return false;
     }
+
+    @ApiOperation("通过年级获取学生信息")
+    @GetMapping("listStudent")
+    public List<UserInfo> listStudent(@RequestParam(required = false) String grade,
+                                      @RequestParam(required = false) String username) {
+        return userService.listStudent(grade, username);
+    }
 }

+ 7 - 0
src/main/java/com/yaoxiang/diagnosis/dao/UserRepo.java

@@ -3,6 +3,8 @@ package com.yaoxiang.diagnosis.dao;
 import com.yaoxiang.diagnosis.entity.UserInfo;
 import org.springframework.data.jpa.repository.JpaRepository;
 
+import java.util.List;
+
 /**
  * @AUTHOR: DaiFengWen
  * @DATE: Create in 2018/8/24 18:26
@@ -13,8 +15,13 @@ public interface UserRepo extends JpaRepository<UserInfo, Long> {
 
     UserInfo findByPhone(String phone);
 
+    List<UserInfo> findByUserType(String userType);
 
     int countByPhone(String phone);
 
     int countByUsername(String username);
+
+    List<UserInfo> findByGrade(String grade);
+
+    List<UserInfo> findByUserTypeAndGrade(String userType,String grade);
 }

+ 11 - 0
src/main/java/com/yaoxiang/diagnosis/entity/UserInfo.java

@@ -1,5 +1,7 @@
 package com.yaoxiang.diagnosis.entity;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.hibernate.annotations.CreationTimestamp;
 import org.hibernate.annotations.UpdateTimestamp;
@@ -15,6 +17,7 @@ import java.util.List;
  * @DESCRIPTION:
  */
 @Entity
+@ApiModel("用户信息")
 public class UserInfo implements Serializable {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -26,10 +29,15 @@ public class UserInfo implements Serializable {
     @ApiModelProperty("用户名,唯一")
     private String username;
     @Column(nullable = false)
+    @JsonIgnore
     private String password;
+    @ApiModelProperty("邮箱")
     private String email;
+    @ApiModelProperty("手机号码")
     private String phone;
+    @JsonIgnore
     private String salt;
+    @ApiModelProperty("地址")
     private String address;
     @ApiModelProperty("校区")
     private String region;//校区
@@ -37,8 +45,11 @@ public class UserInfo implements Serializable {
     private Boolean disabled;
     private Boolean locked;
     private Date lastLoginTime;
+    @ApiModelProperty("年级 1X 2Y 分别表示1年级上,2年级下")
     private String grade;
+    @ApiModelProperty("年龄")
     private Integer age;
+    @ApiModelProperty("性别")
     private String gender;
 
     @CreationTimestamp

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

@@ -33,7 +33,7 @@ public class UserService {
         if (!checkUsername(user.getUsername())) {
             return -1L;
         }
-        if(CommonUtil.hasEmpty(user.getName(),user.getPhone(),user.getPassword())){
+        if (CommonUtil.hasEmpty(user.getName(), user.getPhone(), user.getPassword())) {
             return -1L;
         }
    /*     if(!checkPhone(user.getPhone())){
@@ -51,12 +51,15 @@ public class UserService {
         return user.getId();
     }
 
-    public List<UserInfo> listUsers() {
+    public List<UserInfo> listUsers(String userType) {
         Sort sort = new Sort(Sort.Direction.ASC, "name");
-        return userRepo.findAll(sort);
+        if (StringUtils.isBlank(userType)) {
+            return userRepo.findAll(sort);
+        }
+        return userRepo.findByUserType(userType);
     }
 
-    public List<UserInfo> listByUids(Set<Long> uids){
+    public List<UserInfo> listByUids(Set<Long> uids) {
         return userRepo.findAllById(uids);
     }
 
@@ -98,9 +101,25 @@ public class UserService {
         return userRepo.getOne(id);
     }
 
-    public boolean updatePassword(Long id,String password){
+    public boolean updatePassword(Long id, String password) {
         UserInfo info = getSimpleUser(id);
         info.setPassword(MD5Util.INSTANCE.md5(password));
         return userRepo.save(info) != null;
     }
+
+    public List<UserInfo> listStudent(String grade, String username) {
+        if (StringUtils.isNotBlank(username)) {
+            UserInfo userInfo = userRepo.findByUsername(username);
+            if(userInfo == null || !Constants.USER_TYPE_STUDENT.equals(userInfo.getUserType())){
+                return new ArrayList<>();
+            }
+            return new ArrayList<UserInfo>() {{
+                addUser(userInfo);
+            }};
+        }
+        if (StringUtils.isBlank(grade)) {
+            return listUsers(Constants.USER_TYPE_STUDENT);
+        }
+        return userRepo.findByUserTypeAndGrade(Constants.USER_TYPE_STUDENT, grade);
+    }
 }