Przeglądaj źródła

修改实体类主键为e_id,避免和ActiveAndroid框架的主键冲突。添加消息实体类和数据处理服务,实现部分公共聊天室逻辑。

Yumin 7 lat temu
rodzic
commit
701af5852f
23 zmienionych plików z 132 dodań i 67 usunięć
  1. 21 16
      src/main/java/cn/minbb/evaluationsystemserver/controller/ServerController.java
  2. 2 2
      src/main/java/cn/minbb/evaluationsystemserver/entity/Answer.java
  3. 4 4
      src/main/java/cn/minbb/evaluationsystemserver/entity/Classification.java
  4. 2 2
      src/main/java/cn/minbb/evaluationsystemserver/entity/Feedback.java
  5. 2 2
      src/main/java/cn/minbb/evaluationsystemserver/entity/Message.java
  6. 4 4
      src/main/java/cn/minbb/evaluationsystemserver/entity/Paper.java
  7. 2 2
      src/main/java/cn/minbb/evaluationsystemserver/entity/Question.java
  8. 2 2
      src/main/java/cn/minbb/evaluationsystemserver/entity/Reply.java
  9. 4 4
      src/main/java/cn/minbb/evaluationsystemserver/entity/User.java
  10. 10 10
      src/main/java/cn/minbb/evaluationsystemserver/entity/Version.java
  11. 7 0
      src/main/java/cn/minbb/evaluationsystemserver/entity/repository/MessageRepository.java
  12. 3 3
      src/main/java/cn/minbb/evaluationsystemserver/entity/repository/VersionRepository.java
  13. 1 1
      src/main/java/cn/minbb/evaluationsystemserver/service/AnswerService.java
  14. 1 1
      src/main/java/cn/minbb/evaluationsystemserver/service/ClassificationService.java
  15. 7 0
      src/main/java/cn/minbb/evaluationsystemserver/service/MessageService.java
  16. 1 1
      src/main/java/cn/minbb/evaluationsystemserver/service/PaperService.java
  17. 1 1
      src/main/java/cn/minbb/evaluationsystemserver/service/VersionService.java
  18. 2 2
      src/main/java/cn/minbb/evaluationsystemserver/service/impl/AnswerServiceImpl.java
  19. 2 2
      src/main/java/cn/minbb/evaluationsystemserver/service/impl/ClassificationServiceImpl.java
  20. 23 0
      src/main/java/cn/minbb/evaluationsystemserver/service/impl/MessageServiceImpl.java
  21. 3 3
      src/main/java/cn/minbb/evaluationsystemserver/service/impl/PaperServiceImpl.java
  22. 3 3
      src/main/java/cn/minbb/evaluationsystemserver/service/impl/VersionServiceImpl.java
  23. 25 2
      src/main/java/cn/minbb/evaluationsystemserver/websocket/WebSocketController.java

+ 21 - 16
src/main/java/cn/minbb/evaluationsystemserver/controller/ServerController.java

@@ -60,9 +60,9 @@ public class ServerController {
         return JSONObject.toJSONString(responseMap.getMap());
     }
 
-    @GetMapping(value = "/download/apk/{code}")
-    public ResponseEntity<InputStreamResource> downloadAPK(@PathVariable("code") Integer code) throws IOException {
-        Version version = versionService.findVersionByCode(code);
+    @GetMapping(value = "/download/apk/{versionCode}")
+    public ResponseEntity<InputStreamResource> downloadAPK(@PathVariable("versionCode") Integer versionCode) throws IOException {
+        Version version = versionService.findVersionByVersionCode(versionCode);
         if (version != null) {
             String apkPath = "C:\\Evaluation\\download\\apk\\" + version.getFileName();
             FileSystemResource file = new FileSystemResource(apkPath);
@@ -106,23 +106,22 @@ public class ServerController {
     /**
      * 随机抽取试题
      *
-     * @param classificationId 试题类别 id
+     * @param classification_id 试题类别 e_id
      * @return
      */
     @PostMapping(value = "/question", produces = "text/plain; charset=UTF-8")
     @ResponseBody
-    public String getQuestion(@RequestParam(value = "id") Long classificationId, @RequestParam(value = "user") String userJSON) {
-        System.out.println("id = " + classificationId + "************* user = " + userJSON);
+    public String getQuestion(@RequestParam(value = "id") Long classification_id, @RequestParam(value = "user") String userJSON) {
         ResponseMap responseMap = new ResponseMap();
         if (!userJSON.isEmpty()) {
             try {
                 User userClient = JSONObject.parseObject(userJSON, User.class);
                 User userServer = userService.findUserByUsername(userClient.getUsername());
                 if (userServer != null && userServer.getPassword().equals(userClient.getPassword())) {
-                    if (classificationId != null) {
+                    if (classification_id != null) {
                         float paperScore = 0;
                         List<Classification> classificationList = new ArrayList<>();
-                        classificationList.add(classificationService.findById(classificationId));
+                        classificationList.add(classificationService.findByE_Id(classification_id));
                         List<Question> questionList = questionService.randomSelection(classificationList, 20);
                         // 计算总分
                         for (Question question : questionList) {
@@ -130,7 +129,7 @@ public class ServerController {
                         }
                         if (questionList.size() != 0) {
                             // 保存数据
-                            cn.minbb.evaluationsystemserver.entity.Paper paper = paperService.save(new Paper(userServer, paperScore, questionList));
+                            Paper paper = paperService.save(new Paper(userServer, paperScore, questionList));
                             // 剔除敏感数据
                             paper.setUser(null);
                             for (Question question : paper.getQuestionList()) {
@@ -178,27 +177,32 @@ public class ServerController {
     @PostMapping(value = "/question/evaluate", produces = "text/plain; charset=UTF-8")
     @ResponseBody
     public String evaluateQuestion(@RequestParam(value = "paper") String paperJSON, @RequestParam(value = "user") String userJSON) {
+        System.out.println("paper = " + paperJSON);
+        System.out.println("user = " + userJSON);
         ResponseMap responseMap = new ResponseMap();
         if (!paperJSON.isEmpty() && !userJSON.isEmpty()) {
             try {
                 Paper paperClient = JSONObject.parseObject(paperJSON, Paper.class);
                 User userClient = JSONObject.parseObject(userJSON, User.class);
-                cn.minbb.evaluationsystemserver.entity.User userServer = userService.findUserByUsername(userClient.getUsername());
+                User userServer = userService.findUserByUsername(userClient.getUsername());
                 if (userServer != null && userServer.getPassword().equals(userClient.getPassword())) {
-                    cn.minbb.evaluationsystemserver.entity.Paper paperServer = paperService.findPaperById(paperClient.getId());
-                    if (paperServer.getUser().getId().equals(userServer.getId())) {
+                    Paper paperServer = paperService.findPaperByE_Id(paperClient.getE_id());
+                    if (paperServer.getUser().getE_id().equals(userServer.getE_id())) {
                         if (paperServer.getMark() == null) {
                             float mark = 0;
                             List<Question> questionListServer = paperServer.getQuestionList();
                             List<Question> questionListClient = paperClient.getQuestionList();
                             for (Question questionServer : questionListServer) {
                                 for (Question questionClient : questionListClient) {
-                                    if (questionServer.getId().equals(questionClient.getId())) {
+                                    if (questionServer.getE_id().equals(questionClient.getE_id())) {
                                         // 获取用户答案集合
                                         Set<Answer> answerSet = questionClient.getAnswerSet();
-                                        if (answerSet.size() == 1) {
+                                        if (answerSet != null && answerSet.size() == 1) {
                                             // 查询答案集合中第一个答案的分值
-                                            mark += answerService.findAnswerById(answerSet.toArray(new Answer[1])[0].getId()).getScore();
+                                            mark += answerService.findAnswerByE_Id(answerSet.toArray(new Answer[1])[0].getE_id()).getScore();
+                                        } else {
+                                            // 题目未做
+                                            mark += 0;
                                         }
                                         break;
                                     }
@@ -227,6 +231,7 @@ public class ServerController {
                     responseMap.putSummary("身份验证失败");
                 }
             } catch (Exception e) {
+                e.printStackTrace();
                 responseMap.putResult(Result.FAILED);
                 responseMap.putSummary("请提供正确格式的试卷和用户信息");
             }
@@ -244,7 +249,7 @@ public class ServerController {
         if (!userJSON.isEmpty()) {
             try {
                 User userClient = JSONObject.parseObject(userJSON, User.class);
-                cn.minbb.evaluationsystemserver.entity.User userServer = userService.findUserByUsername(userClient.getUsername());
+                User userServer = userService.findUserByUsername(userClient.getUsername());
                 if (userServer != null && userServer.getPassword().equals(userClient.getPassword())) {
                     if (page >= 0 && size >= 0) {
                         List<Paper> paperList = paperService.findHistoryPapers(userServer, page, size);

+ 2 - 2
src/main/java/cn/minbb/evaluationsystemserver/entity/Answer.java

@@ -19,8 +19,8 @@ public class Answer {
     @Setter
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id", nullable = false, columnDefinition = "BIGINT COMMENT '答案实体ID'")
-    private Long id;
+    @Column(name = "e_id", nullable = false, columnDefinition = "BIGINT COMMENT '答案实体ID'")
+    private Long e_id;
 
     @Getter
     @Setter

+ 4 - 4
src/main/java/cn/minbb/evaluationsystemserver/entity/Classification.java

@@ -20,8 +20,8 @@ public class Classification {
     @Setter
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id", nullable = false, columnDefinition = "BIGINT COMMENT '题目类别实体ID'")
-    private Long id;
+    @Column(name = "e_id", nullable = false, columnDefinition = "BIGINT COMMENT '题目类别实体ID'")
+    private Long e_id;
 
     @Getter
     @Setter
@@ -52,8 +52,8 @@ public class Classification {
     @Setter
     @ManyToMany(cascade = CascadeType.REFRESH)
     @JoinTable(name = "classification_question",
-            joinColumns = {@JoinColumn(name = "classification_id", referencedColumnName = "id", columnDefinition = "BIGINT COMMENT '题目类别实体ID'")},
-            inverseJoinColumns = {@JoinColumn(name = "question_id", referencedColumnName = "id", columnDefinition = "BIGINT COMMENT '题目实体ID'")})
+            joinColumns = {@JoinColumn(name = "classification_id", referencedColumnName = "e_id", columnDefinition = "BIGINT COMMENT '题目类别实体ID'")},
+            inverseJoinColumns = {@JoinColumn(name = "question_id", referencedColumnName = "e_id", columnDefinition = "BIGINT COMMENT '题目实体ID'")})
     // 题目(列表)
     private List<Question> questionList;
 

+ 2 - 2
src/main/java/cn/minbb/evaluationsystemserver/entity/Feedback.java

@@ -19,8 +19,8 @@ public class Feedback {
     @Setter
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id", nullable = false, columnDefinition = "BIGINT COMMENT '反馈实体ID'")
-    private Long id;
+    @Column(name = "e_id", nullable = false, columnDefinition = "BIGINT COMMENT '反馈实体ID'")
+    private Long e_id;
 
     @Getter
     @Setter

+ 2 - 2
src/main/java/cn/minbb/evaluationsystemserver/entity/Message.java

@@ -20,8 +20,8 @@ public class Message {
     @Setter
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id", nullable = false, columnDefinition = "BIGINT COMMENT '消息实体ID'")
-    private Long id;
+    @Column(name = "e_id", nullable = false, columnDefinition = "BIGINT COMMENT '消息实体ID'")
+    private Long e_id;
 
     @Getter
     @Setter

+ 4 - 4
src/main/java/cn/minbb/evaluationsystemserver/entity/Paper.java

@@ -20,8 +20,8 @@ public class Paper {
     @Setter
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id", nullable = false, columnDefinition = "BIGINT COMMENT '试卷实体ID'")
-    private Long id;
+    @Column(name = "e_id", nullable = false, columnDefinition = "BIGINT COMMENT '试卷实体ID'")
+    private Long e_id;
 
     @Getter
     @Setter
@@ -55,8 +55,8 @@ public class Paper {
     @Setter
     @ManyToMany(cascade = CascadeType.REFRESH)
     @JoinTable(name = "paper_question",
-            joinColumns = {@JoinColumn(name = "paper_id", referencedColumnName = "id", columnDefinition = "BIGINT COMMENT '试卷实体ID'")},
-            inverseJoinColumns = {@JoinColumn(name = "question_id", referencedColumnName = "id", columnDefinition = "BIGINT COMMENT '题目实体ID'")})
+            joinColumns = {@JoinColumn(name = "paper_id", referencedColumnName = "e_id", columnDefinition = "BIGINT COMMENT '试卷实体ID'")},
+            inverseJoinColumns = {@JoinColumn(name = "question_id", referencedColumnName = "e_id", columnDefinition = "BIGINT COMMENT '题目实体ID'")})
     // 题目(列表)
     private List<Question> questionList;
 

+ 2 - 2
src/main/java/cn/minbb/evaluationsystemserver/entity/Question.java

@@ -21,8 +21,8 @@ public class Question {
     @Setter
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id", nullable = false, columnDefinition = "BIGINT COMMENT '题目实体ID'")
-    private Long id;
+    @Column(name = "e_id", nullable = false, columnDefinition = "BIGINT COMMENT '题目实体ID'")
+    private Long e_id;
 
     @Getter
     @Setter

+ 2 - 2
src/main/java/cn/minbb/evaluationsystemserver/entity/Reply.java

@@ -20,8 +20,8 @@ public class Reply {
     @Setter
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id", nullable = false, columnDefinition = "BIGINT COMMENT '回应实体ID'")
-    private Long id;
+    @Column(name = "e_id", nullable = false, columnDefinition = "BIGINT COMMENT '回应实体ID'")
+    private Long e_id;
 
     @Getter
     @Setter

+ 4 - 4
src/main/java/cn/minbb/evaluationsystemserver/entity/User.java

@@ -21,9 +21,9 @@ public class User {
     @Setter
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id", nullable = false, columnDefinition = "BIGINT COMMENT '用户实体ID'")
+    @Column(name = "e_id", nullable = false, columnDefinition = "BIGINT COMMENT '用户实体ID'")
     // 实体 Id,主键,自增
-    private Long id;
+    private Long e_id;
 
     @Getter
     @Setter
@@ -107,8 +107,8 @@ public class User {
     @Setter
     @ManyToMany(cascade = CascadeType.REFRESH)
     @JoinTable(name = "user_message",
-            joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id", columnDefinition = "BIGINT COMMENT '消息接收者用户实体ID'")},
-            inverseJoinColumns = {@JoinColumn(name = "message_id", referencedColumnName = "id", columnDefinition = "BIGINT COMMENT '消息实体ID'")})
+            joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "e_id", columnDefinition = "BIGINT COMMENT '消息接收者用户实体ID'")},
+            inverseJoinColumns = {@JoinColumn(name = "message_id", referencedColumnName = "e_id", columnDefinition = "BIGINT COMMENT '消息实体ID'")})
     // 消息接收者(集合)
     private Set<Message> messageSetTo;
 

+ 10 - 10
src/main/java/cn/minbb/evaluationsystemserver/entity/Version.java

@@ -18,18 +18,18 @@ public class Version {
     @Setter
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id", nullable = false, columnDefinition = "BIGINT COMMENT '版本实体ID'")
-    private Long id;
+    @Column(name = "e_id", nullable = false, columnDefinition = "BIGINT COMMENT '版本实体ID'")
+    private Long e_id;
 
     @Getter
     @Setter
-    @Column(name = "code", nullable = false, length = 11, columnDefinition = "INT COMMENT '版本号'")
-    private Integer code;
+    @Column(name = "version_code", nullable = false, length = 11, columnDefinition = "INT COMMENT '版本号'")
+    private Integer versionCode;
 
     @Getter
     @Setter
-    @Column(name = "name", nullable = false, length = 64, columnDefinition = "VARCHAR(64) COMMENT '版本名'")
-    private String name;
+    @Column(name = "version_name", nullable = false, length = 64, columnDefinition = "VARCHAR(64) COMMENT '版本名'")
+    private String versionName;
 
     @Getter
     @Setter
@@ -43,13 +43,13 @@ public class Version {
 
     @Getter
     @Setter
-    @Column(name = "size", length = 11, columnDefinition = "INT COMMENT '新文件大小(字节)'")
-    private Integer size;
+    @Column(name = "file_size", length = 11, columnDefinition = "INT COMMENT '新文件大小(字节)'")
+    private Integer fileSize;
 
     @Getter
     @Setter
-    @Column(name = "url", nullable = false, columnDefinition = "VARCHAR(255) COMMENT '新文件下载地址'")
-    private String url;
+    @Column(name = "file_url", nullable = false, columnDefinition = "VARCHAR(255) COMMENT '新文件下载地址'")
+    private String fileUrl;
 
     @Getter
     @Setter

+ 7 - 0
src/main/java/cn/minbb/evaluationsystemserver/entity/repository/MessageRepository.java

@@ -0,0 +1,7 @@
+package cn.minbb.evaluationsystemserver.entity.repository;
+
+import cn.minbb.evaluationsystemserver.entity.Message;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface MessageRepository extends JpaRepository<Message, Long> {
+}

+ 3 - 3
src/main/java/cn/minbb/evaluationsystemserver/entity/repository/VersionRepository.java

@@ -6,8 +6,8 @@ import org.springframework.data.jpa.repository.Query;
 
 public interface VersionRepository extends JpaRepository<Version, Long> {
 
-    @Query(value = "select new Version(v.fileName) from Version v where v.code = ?1")
-    Version findVersionByCode(Integer code);
+    @Query(value = "select new Version(v.fileName) from Version v where v.versionCode = ?1")
+    Version findVersionByVersionCode(Integer versionCode);
 
-    Version findTopByOrderByCodeDesc();
+    Version findTopByOrderByVersionCodeDesc();
 }

+ 1 - 1
src/main/java/cn/minbb/evaluationsystemserver/service/AnswerService.java

@@ -3,5 +3,5 @@ package cn.minbb.evaluationsystemserver.service;
 import cn.minbb.evaluationsystemserver.entity.Answer;
 
 public interface AnswerService {
-    Answer findAnswerById(Long id);
+    Answer findAnswerByE_Id(Long e_id);
 }

+ 1 - 1
src/main/java/cn/minbb/evaluationsystemserver/service/ClassificationService.java

@@ -7,5 +7,5 @@ import java.util.List;
 public interface ClassificationService {
     List<Classification> findEnabledClassification();
 
-    Classification findById(Long classificationId);
+    Classification findByE_Id(Long e_id);
 }

+ 7 - 0
src/main/java/cn/minbb/evaluationsystemserver/service/MessageService.java

@@ -0,0 +1,7 @@
+package cn.minbb.evaluationsystemserver.service;
+
+import cn.minbb.evaluationsystemserver.entity.Message;
+
+public interface MessageService {
+    Message save(Message message);
+}

+ 1 - 1
src/main/java/cn/minbb/evaluationsystemserver/service/PaperService.java

@@ -8,7 +8,7 @@ import java.util.List;
 public interface PaperService {
     Paper save(Paper paper);
 
-    Paper findPaperById(Long id);
+    Paper findPaperByE_Id(Long e_id);
 
     Paper submit(Paper paperServer, Float mark);
 

+ 1 - 1
src/main/java/cn/minbb/evaluationsystemserver/service/VersionService.java

@@ -5,5 +5,5 @@ import cn.minbb.evaluationsystemserver.entity.Version;
 public interface VersionService {
     Version getLatestVersion();
 
-    Version findVersionByCode(Integer code);
+    Version findVersionByVersionCode(Integer versionCode);
 }

+ 2 - 2
src/main/java/cn/minbb/evaluationsystemserver/service/impl/AnswerServiceImpl.java

@@ -17,7 +17,7 @@ public class AnswerServiceImpl implements AnswerService {
     }
 
     @Override
-    public Answer findAnswerById(Long id) {
-        return answerRepository.getOne(id);
+    public Answer findAnswerByE_Id(Long e_id) {
+        return answerRepository.getOne(e_id);
     }
 }

+ 2 - 2
src/main/java/cn/minbb/evaluationsystemserver/service/impl/ClassificationServiceImpl.java

@@ -25,7 +25,7 @@ public class ClassificationServiceImpl implements ClassificationService {
     }
 
     @Override
-    public Classification findById(Long classificationId) {
-        return classificationRepository.getOne(classificationId);
+    public Classification findByE_Id(Long e_id) {
+        return classificationRepository.getOne(e_id);
     }
 }

+ 23 - 0
src/main/java/cn/minbb/evaluationsystemserver/service/impl/MessageServiceImpl.java

@@ -0,0 +1,23 @@
+package cn.minbb.evaluationsystemserver.service.impl;
+
+import cn.minbb.evaluationsystemserver.entity.Message;
+import cn.minbb.evaluationsystemserver.entity.repository.MessageRepository;
+import cn.minbb.evaluationsystemserver.service.MessageService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class MessageServiceImpl implements MessageService {
+
+    private MessageRepository messageRepository;
+
+    @Autowired
+    public MessageServiceImpl(MessageRepository messageRepository) {
+        this.messageRepository = messageRepository;
+    }
+
+    @Override
+    public Message save(Message message) {
+        return messageRepository.save(message);
+    }
+}

+ 3 - 3
src/main/java/cn/minbb/evaluationsystemserver/service/impl/PaperServiceImpl.java

@@ -29,13 +29,13 @@ public class PaperServiceImpl implements PaperService {
     }
 
     @Override
-    public Paper findPaperById(Long id) {
-        return paperRepository.getOne(id);
+    public Paper findPaperByE_Id(Long e_id) {
+        return paperRepository.getOne(e_id);
     }
 
     @Override
     public Paper submit(Paper paperServer, Float mark) {
-        Paper paper = paperRepository.getOne(paperServer.getId());
+        Paper paper = paperRepository.getOne(paperServer.getE_id());
         paper.setMark(mark);
         paper.setEndedAt(App.getCurrentDateTime());
         return paperRepository.save(paper);

+ 3 - 3
src/main/java/cn/minbb/evaluationsystemserver/service/impl/VersionServiceImpl.java

@@ -21,11 +21,11 @@ public class VersionServiceImpl implements VersionService {
         // 按照 code 降序查询全部,取第一条数据
         // return versionRepository.findAll(new Sort(Sort.Direction.DESC, "code")).get(0);
         // 按照 code 降序,查第一个
-        return versionRepository.findTopByOrderByCodeDesc();
+        return versionRepository.findTopByOrderByVersionCodeDesc();
     }
 
     @Override
-    public Version findVersionByCode(Integer code) {
-        return versionRepository.findVersionByCode(code);
+    public Version findVersionByVersionCode(Integer versionCode) {
+        return versionRepository.findVersionByVersionCode(versionCode);
     }
 }

+ 25 - 2
src/main/java/cn/minbb/evaluationsystemserver/websocket/WebSocketController.java

@@ -1,8 +1,12 @@
 package cn.minbb.evaluationsystemserver.websocket;
 
+import cn.minbb.evaluationsystemserver.entity.Message;
+import cn.minbb.evaluationsystemserver.entity.User;
+import cn.minbb.evaluationsystemserver.service.MessageService;
 import cn.minbb.evaluationsystemserver.service.UserService;
 import cn.minbb.evaluationsystemserver.util.App;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.messaging.handler.annotation.DestinationVariable;
 import org.springframework.messaging.handler.annotation.MessageMapping;
@@ -19,6 +23,7 @@ public class WebSocketController {
 
     public static SimpMessagingTemplate template;
     private UserService userService;
+    private MessageService messageService;
     private final WebSocketMessageBrokerStats webSocketMessageBrokerStats;
 
     @Autowired
@@ -52,9 +57,27 @@ public class WebSocketController {
     }
 
     @MessageMapping("/chat/all")
-    public void chatAll(String message) {
+    public void chatPublic(String message) {
         // 公共聊天频道
-        template.convertAndSend("/topic/chat/all", message);
+        Message messageClient = JSONObject.parseObject(message, Message.class);
+        if (messageClient != null) {
+            User userClient = messageClient.getUserFrom();
+            if (userClient != null) {
+                User userServer = userService.findUserByUsername(userClient.getUsername());
+                if (userServer != null && userClient.getPassword().equals(userServer.getPassword())) {
+                    messageClient.setType(8);
+                    messageClient.setUserTo(null);
+                    Message messageServer = messageService.save(messageClient);
+                    template.convertAndSend("/topic/chat/all", JSONObject.toJSONString(messageServer));
+                } else {
+                    // 消息发送者身份验证失败
+                    System.out.println("消息发送者身份验证失败");
+                }
+            } else {
+                // 消息发送者不能为空
+                System.out.println("消息发送者不能为空");
+            }
+        }
     }
 
     @MessageMapping("/m/1")