Browse Source

完善用户接口

Yumin 6 years ago
parent
commit
d91a72a3d4

+ 6 - 1
src/main/java/cn/minbb/edu/controller/rest/SignController.java

@@ -3,6 +3,7 @@ package cn.minbb.edu.controller.rest;
 import cn.minbb.edu.data.ResponseResult;
 import cn.minbb.edu.model.User;
 import cn.minbb.edu.model.UserRole;
+import cn.minbb.edu.service.StageService;
 import cn.minbb.edu.service.UserRoleService;
 import cn.minbb.edu.service.UserService;
 import com.alibaba.fastjson.JSONObject;
@@ -19,11 +20,13 @@ public class SignController {
 
     private UserService userService;
     private UserRoleService userRoleService;
+    private StageService stageService;
 
     @Autowired
-    public SignController(UserService userService, UserRoleService userRoleService) {
+    public SignController(UserService userService, UserRoleService userRoleService, StageService stageService) {
         this.userService = userService;
         this.userRoleService = userRoleService;
+        this.stageService = stageService;
     }
 
     @PostMapping(value = "login")
@@ -41,6 +44,8 @@ public class SignController {
         } else {
             if (password.equals(user.getPassword())) {
                 // OK
+                Integer stageId = user.getStageId();
+                if (null != stageId) user.setVoStage(stageService.findOneById(user.getStageId()));
                 result.setCode(1);
                 result.setSuccess(true);
                 result.setMessage("登录成功");

+ 2 - 2
src/main/java/cn/minbb/edu/controller/rest/SubjectController.java

@@ -36,7 +36,7 @@ public class SubjectController {
             return ResponseResult.ok(false).code(-1).message("ID不能为空").dataNone();
         } else {
             Subject subject = subjectService.findOneById(id);
-            subject.setCourseList(courseService.findAllBySubjectId(id));
+            subject.setVoCourseList(courseService.findAllBySubjectId(id));
             return ResponseResult.ok(true).code(1).message("").data(subject);
         }
     }
@@ -45,7 +45,7 @@ public class SubjectController {
     public ResponseResult<Subject> subjectAll() {
         List<Subject> subjectList = subjectService.findAll();
         for (Subject subject : subjectList) {
-            subject.setCourseList(courseService.findAllBySubjectId(subject.getId()));
+            // subject.setVoCourseList(courseService.findAllBySubjectId(subject.getId()));
         }
         return ResponseResult.ok(true).code(1).message("").dataset(subjectList);
     }

+ 95 - 0
src/main/java/cn/minbb/edu/controller/rest/UserController.java

@@ -0,0 +1,95 @@
+package cn.minbb.edu.controller.rest;
+
+import cn.minbb.edu.data.ResponseResult;
+import cn.minbb.edu.model.Subject;
+import cn.minbb.edu.model.User;
+import cn.minbb.edu.service.StageService;
+import cn.minbb.edu.service.SubjectService;
+import cn.minbb.edu.service.UserService;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("app/user")
+public class UserController {
+
+    private UserService userService;
+    private SubjectService subjectService;
+    private StageService stageService;
+
+    @Autowired
+    public UserController(UserService userService, SubjectService subjectService, StageService stageService) {
+        this.userService = userService;
+        this.subjectService = subjectService;
+        this.stageService = stageService;
+    }
+
+    @PostMapping("auto/login")
+    public ResponseResult<User> userAutoLogin(@RequestBody User userClient) {
+        return ResponseResult.ok(true).code(1).message("登录成功").data(userService.findUserByUsername(userClient.getUsername()));
+    }
+
+    @PostMapping("info")
+    public ResponseResult<User> userInfo(@RequestBody String userJson) {
+        User userClient = JSONObject.parseObject(userJson, User.class);
+        if (null == userClient) {
+            return ResponseResult.ok(false).code(-1).message("用户名不存在").dataNone();
+        } else {
+            User user = userService.findUserById(userClient.getId());
+            if (null != user) {
+                String name = userClient.getName();
+                String nickname = userClient.getNickname();
+                String signature = userClient.getSignature();
+                String email = userClient.getEmail();
+                String phone = userClient.getPhone();
+                String qq = userClient.getQq();
+                String avatar = userClient.getAvatar();
+                String school = userClient.getSchool();
+                Integer stageId = userClient.getStageId();
+                if (null != name) user.setName(name);
+                if (null != nickname) user.setNickname(nickname);
+                if (null != signature) user.setSignature(signature);
+                if (null != email) user.setEmail(email);
+                if (null != phone) user.setPhone(phone);
+                if (null != qq) user.setQq(qq);
+                if (null != avatar) user.setAvatar(avatar);
+                if (null != school) user.setSchool(school);
+                if (null != stageId) user.setStageId(stageId);
+                User vo = userService.save(user);
+                stageId = vo.getStageId();
+                if (null != stageId) vo.setVoStage(stageService.findOneById(stageId));
+                return ResponseResult.ok(true).code(1).message("修改成功").data(vo);
+            } else {
+                return ResponseResult.ok(false).code(-1).message("用户不存在").dataNone();
+            }
+        }
+    }
+
+    @PostMapping("stage")
+    public ResponseResult<User> userStage(@RequestBody Map<String, Object> paramsMap) {
+        User user = JSONObject.parseObject(JSONObject.toJSONString(paramsMap.get("user")), User.class);
+        JSONArray stageArray = JSONArray.parseArray(JSONObject.toJSONString(paramsMap.get("stage")));
+        if (null == user || null == stageArray) {
+            return ResponseResult.ok(false).code(-1).message("参数不足").dataNone();
+        }
+        List<Integer> stageIds = new ArrayList<>(stageArray.size());
+        stageArray.forEach(o -> stageIds.add((Integer) o));
+        List<Subject> subjectList = subjectService.findAllByIdIn(stageIds);
+        User userServer = userService.findUserByUsername(user.getUsername());
+        if (null == userServer) {
+            return ResponseResult.ok(false).code(-1).message("用户不存在").dataNone();
+        } else {
+            userServer.setSubjectList(subjectList);
+            return ResponseResult.ok(true).code(1).message("OK").data(userService.update(userServer));
+        }
+    }
+}

+ 1 - 1
src/main/java/cn/minbb/edu/model/Subject.java

@@ -36,7 +36,7 @@ public class Subject implements Serializable {
     @Getter
     @Setter
     @Transient
-    private List<Course> courseList;
+    private List<Course> voCourseList;
 
     public Subject(String name) {
         this.name = name;

+ 11 - 6
src/main/java/cn/minbb/edu/model/User.java

@@ -82,6 +82,11 @@ public class User implements UserDetails {
     @Column(name = "school", columnDefinition = "VARCHAR(64) COMMENT '学校'")
     private String school;
 
+    @Getter
+    @Setter
+    @Column(name = "stage_id", columnDefinition = "INT COMMENT '关联学习阶段'")
+    private Integer stageId;
+
     @Getter
     @Setter
     @ManyToMany(cascade = {CascadeType.REFRESH}, fetch = FetchType.EAGER)
@@ -98,12 +103,7 @@ public class User implements UserDetails {
             joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id")},
             inverseJoinColumns = {@JoinColumn(name = "subject_id", referencedColumnName = "id")}
     )
-    private List<Subject> userSubjectList;
-
-    @Getter
-    @Setter
-    @Column(name = "stage_id", columnDefinition = "INT COMMENT '关联学习阶段'")
-    private Integer stageId;
+    private List<Subject> subjectList;
 
     @Getter
     @Setter
@@ -141,6 +141,11 @@ public class User implements UserDetails {
     @Column(name = "version", columnDefinition = "INTEGER COMMENT '版本号'")
     public Integer version;
 
+    @Getter
+    @Setter
+    @Transient
+    private Stage voStage;
+
     public User(@NotNull String name, @NotNull String username, @NotNull String password) {
         this.name = name;
         this.username = username;

+ 3 - 0
src/main/java/cn/minbb/edu/model/repository/SubjectRepository.java

@@ -3,5 +3,8 @@ package cn.minbb.edu.model.repository;
 import cn.minbb.edu.model.Subject;
 import org.springframework.data.jpa.repository.JpaRepository;
 
+import java.util.List;
+
 public interface SubjectRepository extends JpaRepository<Subject, Integer> {
+    List<Subject> findAllByIdIn(List<Integer> ids);
 }

+ 2 - 0
src/main/java/cn/minbb/edu/service/SubjectService.java

@@ -12,4 +12,6 @@ public interface SubjectService {
     Subject findOneByName(String name);
 
     List<Subject> findAll();
+
+    List<Subject> findAllByIdIn(List<Integer> ids);
 }

+ 2 - 0
src/main/java/cn/minbb/edu/service/UserService.java

@@ -6,6 +6,8 @@ import org.springframework.security.core.userdetails.UserDetailsService;
 public interface UserService extends UserDetailsService {
     User save(User user);
 
+    User update(User user);
+
     User findUserById(Integer id);
 
     User findUserByUsername(String username);

+ 5 - 0
src/main/java/cn/minbb/edu/service/impl/SubjectServiceImpl.java

@@ -41,4 +41,9 @@ public class SubjectServiceImpl implements SubjectService {
     public List<Subject> findAll() {
         return subjectRepository.findAll(SortTools.createdAtDown());
     }
+
+    @Override
+    public List<Subject> findAllByIdIn(List<Integer> ids) {
+        return subjectRepository.findAllByIdIn(ids);
+    }
 }

+ 6 - 1
src/main/java/cn/minbb/edu/service/impl/UserServiceImpl.java

@@ -39,11 +39,16 @@ public class UserServiceImpl implements UserService {
         return userRepository.save(user);
     }
 
+    @Override
+    public User update(User user) {
+        return userRepository.save(user);
+    }
+
     @Override
     public User findUserById(Integer id) {
         User user = new User();
         user.setId(id);
-        return userRepository.findOne(Example.of(user)).orElse(null);
+        return null == id ? null : userRepository.findOne(Example.of(user)).orElse(null);
     }
 
     @Override

+ 1 - 1
src/main/java/cn/minbb/edu/system/Const.java

@@ -6,5 +6,5 @@ public class Const {
     }
 
     public static final String ACTIVE = "ACTIVE";
-    public static final String STORAGE_HOST = "http://123.207.151.92:8080/file/";
+    public static final String STORAGE_HOST = "http://my.minbb.cn:8080/file/";
 }

+ 4 - 39
src/main/java/cn/minbb/edu/task/InitDataRunner.java

@@ -1,11 +1,7 @@
 package cn.minbb.edu.task;
 
-import cn.minbb.edu.model.Banner;
 import cn.minbb.edu.model.UserRole;
-import cn.minbb.edu.service.BannerService;
-import cn.minbb.edu.service.CourseService;
-import cn.minbb.edu.service.SubjectService;
-import cn.minbb.edu.service.UserRoleService;
+import cn.minbb.edu.service.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.ApplicationArguments;
@@ -13,20 +9,20 @@ import org.springframework.boot.ApplicationRunner;
 import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Component;
 
-import java.util.List;
-
 @Order(1)
 @Component
 public class InitDataRunner implements ApplicationRunner {
 
     private Logger logger = LoggerFactory.getLogger(InitDataRunner.class);
 
+    private UserService userService;
     private UserRoleService userRoleService;
     private CourseService courseService;
     private BannerService bannerService;
     private SubjectService subjectService;
 
-    public InitDataRunner(UserRoleService userRoleService, CourseService courseService, BannerService bannerService, SubjectService subjectService) {
+    public InitDataRunner(UserService userService, UserRoleService userRoleService, CourseService courseService, BannerService bannerService, SubjectService subjectService) {
+        this.userService = userService;
         this.userRoleService = userRoleService;
         this.courseService = courseService;
         this.bannerService = bannerService;
@@ -42,36 +38,5 @@ public class InitDataRunner implements ApplicationRunner {
                 userRoleService.saveOne(new UserRole(role, role.getDescription()));
             }
         }
-        // 检查主页轮播 - 初始化轮播数据
-        List<Banner> bannerList = bannerService.findAll();
-        if (bannerList.isEmpty()) {
-            Banner banner1 = new Banner();
-            banner1.setTitle("一一一");
-            banner1.setSubtitle("一一一一一一一一一一一一一一一一一一一一一");
-            banner1.setAction("现在去学习");
-            banner1.setCover("");
-            banner1.setPath("");
-            banner1.setRemark("一");
-            banner1.setUserId(1);
-            bannerService.save(banner1);
-            Banner banner2 = new Banner();
-            banner2.setTitle("二二二");
-            banner2.setSubtitle("二二二二二二二二二二二二二二二二二二二二二");
-            banner2.setAction("了解更多");
-            banner2.setCover("");
-            banner2.setPath("");
-            banner2.setRemark("二");
-            banner2.setUserId(1);
-            bannerService.save(banner2);
-            Banner banner3 = new Banner();
-            banner3.setTitle("三三三");
-            banner3.setSubtitle("三三三三三三三三三三三三三三三三三三三三三");
-            banner3.setAction("了解更多");
-            banner3.setCover("");
-            banner3.setPath("");
-            banner3.setRemark("三");
-            banner3.setUserId(1);
-            bannerService.save(banner3);
-        }
     }
 }