licailing пре 4 година
родитељ
комит
116d0d75e1

+ 29 - 0
src/main/java/com/izouma/wenlvju/service/performance/ProgrammeScoreService.java

@@ -24,6 +24,35 @@ public class ProgrammeScoreService {
         return programmeScoreRepo.findAll(JpaUtils.toSpecification(pageQuery, ProgrammeScore.class), JpaUtils.toPageRequest(pageQuery));
     }
 
+    public void saveScore(Long programmeId, double score, String remark, Long userId) {
+        ProgrammeScore programmeScore = programmeScoreRepo.findByProgrammeIdAndExpertId(programmeId, userId);
+        LocalDateTime now = LocalDateTime.now();
+        if (ObjectUtil.isNull(programmeScore)) {
+            programmeScore = ProgrammeScore.builder()
+                    .expertId(userId)
+                    .programmeId(programmeId)
+                    .score(score)
+                    .markAt(now)
+                    .remark(remark)
+                    .build();
+        } else if (ObjectUtil.isNull(programmeScore.getScore())) {
+            programmeScore.setScore(score);
+            programmeScore.setRemark(remark);
+            programmeScore.setMarkAt(now);
+        } else {
+            programmeScore.setScore2(programmeScore.getScore());
+            programmeScore.setMark2At(programmeScore.getMarkAt());
+            programmeScore.setScore(score);
+            programmeScore.setMarkAt(now);
+            programmeScore.setRemark(remark);
+        }
+        programmeScoreRepo.save(programmeScore);
+
+        double avg = programmeScoreRepo.avgScore(programmeId);
+        programmeRepo.score(avg, programmeId);
+    }
+
+
     public void saveScore(Long programmeId, double score, Long userId) {
         ProgrammeScore programmeScore = programmeScoreRepo.findByProgrammeIdAndExpertId(programmeId, userId);
         LocalDateTime now = LocalDateTime.now();

+ 9 - 1
src/main/java/com/izouma/wenlvju/web/performance/ProgrammeScoreController.java

@@ -1,5 +1,6 @@
 package com.izouma.wenlvju.web.performance;
 
+import com.izouma.wenlvju.utils.SecurityUtils;
 import com.izouma.wenlvju.web.BaseController;
 import com.izouma.wenlvju.domain.performance.ProgrammeScore;
 import com.izouma.wenlvju.service.performance.ProgrammeScoreService;
@@ -9,6 +10,7 @@ import com.izouma.wenlvju.repo.performance.ProgrammeScoreRepo;
 import com.izouma.wenlvju.utils.ObjUtils;
 import com.izouma.wenlvju.utils.excel.ExcelUtils;
 
+import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -23,7 +25,7 @@ import java.util.List;
 @AllArgsConstructor
 public class ProgrammeScoreController extends BaseController {
     private ProgrammeScoreService programmeScoreService;
-    private ProgrammeScoreRepo programmeScoreRepo;
+    private ProgrammeScoreRepo    programmeScoreRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
@@ -59,5 +61,11 @@ public class ProgrammeScoreController extends BaseController {
         List<ProgrammeScore> data = all(pageQuery).getContent();
         ExcelUtils.export(response, data);
     }
+
+    @ApiOperation("专家手机端打分")
+    @PostMapping("/saveScore")
+    public void saveScore(@RequestParam Long programmeId, double score, String remark) {
+        programmeScoreService.saveScore(programmeId, score, remark, SecurityUtils.getAuthenticatedUser().getId());
+    }
 }