Răsfoiți Sursa

专家评分

licailing 4 ani în urmă
părinte
comite
5045a962d1

+ 1 - 1
src/main/java/com/izouma/wenlvju/repo/performance/ProgrammeScoreRepo.java

@@ -21,6 +21,6 @@ public interface ProgrammeScoreRepo extends JpaRepository<ProgrammeScore, Long>,
     List<ProgrammeScore> findByProgrammeIdInAndExpertId(Collection<Long> programmeId, Long expertId);
     List<ProgrammeScore> findByProgrammeIdInAndExpertId(Collection<Long> programmeId, Long expertId);
 
 
     @Query("select avg(score) from ProgrammeScore where programmeId = ?1")
     @Query("select avg(score) from ProgrammeScore where programmeId = ?1")
-    double avgScore(Long programmeId);
+    Object avgScore(Long programmeId);
 
 
 }
 }

+ 31 - 14
src/main/java/com/izouma/wenlvju/service/performance/ProgrammeScoreService.java

@@ -1,6 +1,8 @@
 package com.izouma.wenlvju.service.performance;
 package com.izouma.wenlvju.service.performance;
 
 
+import cn.hutool.core.convert.Convert;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.izouma.wenlvju.domain.performance.ProgrammeScore;
 import com.izouma.wenlvju.domain.performance.ProgrammeScore;
 import com.izouma.wenlvju.dto.PageQuery;
 import com.izouma.wenlvju.dto.PageQuery;
 import com.izouma.wenlvju.repo.performance.ProgrammeRepo;
 import com.izouma.wenlvju.repo.performance.ProgrammeRepo;
@@ -10,6 +12,7 @@ import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import javax.persistence.Id;
 import java.time.LocalDate;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 
 
@@ -24,7 +27,7 @@ public class ProgrammeScoreService {
         return programmeScoreRepo.findAll(JpaUtils.toSpecification(pageQuery, ProgrammeScore.class), JpaUtils.toPageRequest(pageQuery));
         return programmeScoreRepo.findAll(JpaUtils.toSpecification(pageQuery, ProgrammeScore.class), JpaUtils.toPageRequest(pageQuery));
     }
     }
 
 
-    public void saveScore(Long programmeId, double score, String remark, Long userId) {
+    public void saveScore(Long programmeId, Double score, String remark, Long userId) {
         ProgrammeScore programmeScore = programmeScoreRepo.findByProgrammeIdAndExpertId(programmeId, userId);
         ProgrammeScore programmeScore = programmeScoreRepo.findByProgrammeIdAndExpertId(programmeId, userId);
         LocalDateTime now = LocalDateTime.now();
         LocalDateTime now = LocalDateTime.now();
         if (ObjectUtil.isNull(programmeScore)) {
         if (ObjectUtil.isNull(programmeScore)) {
@@ -35,21 +38,31 @@ public class ProgrammeScoreService {
                     .markAt(now)
                     .markAt(now)
                     .remark(remark)
                     .remark(remark)
                     .build();
                     .build();
-        } else if (ObjectUtil.isNull(programmeScore.getScore())) {
-            programmeScore.setScore(score);
-            programmeScore.setRemark(remark);
-            programmeScore.setMarkAt(now);
         } else {
         } else {
-            programmeScore.setScore2(programmeScore.getScore());
-            programmeScore.setMark2At(programmeScore.getMarkAt());
-            programmeScore.setScore(score);
-            programmeScore.setMarkAt(now);
-            programmeScore.setRemark(remark);
+            if (StrUtil.isNotEmpty(remark)) {
+                programmeScore.setRemark(remark);
+            }
+            if (ObjectUtil.isNotNull(score)) {
+                if (ObjectUtil.isNull(programmeScore.getScore())) {
+                    programmeScore.setScore(score);
+                    programmeScore.setMarkAt(now);
+                } else {
+                    programmeScore.setScore2(programmeScore.getScore());
+                    programmeScore.setMark2At(programmeScore.getMarkAt());
+                    programmeScore.setScore(score);
+                    programmeScore.setMarkAt(now);
+                }
+            }
         }
         }
+
         programmeScoreRepo.save(programmeScore);
         programmeScoreRepo.save(programmeScore);
 
 
-        double avg = programmeScoreRepo.avgScore(programmeId);
-        programmeRepo.score(avg, programmeId);
+        Object avgObj = programmeScoreRepo.avgScore(programmeId);
+        if (ObjectUtil.isNotNull(avgObj)) {
+            Double avg = Convert.convert(Double.class, avgObj);
+            programmeRepo.score(avg, programmeId);
+        }
+
     }
     }
 
 
 
 
@@ -74,8 +87,12 @@ public class ProgrammeScoreService {
         }
         }
         programmeScoreRepo.save(programmeScore);
         programmeScoreRepo.save(programmeScore);
 
 
-        double avg = programmeScoreRepo.avgScore(programmeId);
-        programmeRepo.score(avg, programmeId);
+        Object avgObj = programmeScoreRepo.avgScore(programmeId);
+        if (ObjectUtil.isNotNull(avgObj)) {
+            Double avg = Convert.convert(Double.class, avgObj);
+            programmeRepo.score(avg, programmeId);
+        }
+
     }
     }
 
 
 
 

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

@@ -64,7 +64,7 @@ public class ProgrammeScoreController extends BaseController {
 
 
     @ApiOperation("专家手机端打分")
     @ApiOperation("专家手机端打分")
     @PostMapping("/saveScore")
     @PostMapping("/saveScore")
-    public void saveScore(@RequestParam Long programmeId, double score, String remark) {
+    public void saveScore(@RequestParam Long programmeId, Double score, String remark) {
         programmeScoreService.saveScore(programmeId, score, remark, SecurityUtils.getAuthenticatedUser().getId());
         programmeScoreService.saveScore(programmeId, score, remark, SecurityUtils.getAuthenticatedUser().getId());
     }
     }
 }
 }

+ 6 - 19
src/main/vue/src/views/performance/ProgrammeScoreList.vue

@@ -39,16 +39,6 @@
                             ></el-option>
                             ></el-option>
                         </el-select>
                         </el-select>
                     </el-form-item>
                     </el-form-item>
-                    <el-form-item label="签到状态">
-                        <el-select v-model="form.signedIn">
-                            <el-option
-                                v-for="item in signedInOptions"
-                                :label="item.label"
-                                :value="item.value"
-                                :key="item.value"
-                            ></el-option>
-                        </el-select>
-                    </el-form-item>
                 </el-row>
                 </el-row>
                 <el-form-item>
                 <el-form-item>
                     <el-button @click="getData" type="primary" icon="el-icon-search">搜索 </el-button>
                     <el-button @click="getData" type="primary" icon="el-icon-search">搜索 </el-button>
@@ -68,17 +58,14 @@
             <el-table-column v-if="multipleMode" align="center" type="selection" width="50"> </el-table-column>
             <el-table-column v-if="multipleMode" align="center" type="selection" width="50"> </el-table-column>
             <!-- <el-table-column prop="id" label="ID" width="100"> </el-table-column> -->
             <!-- <el-table-column prop="id" label="ID" width="100"> </el-table-column> -->
             <el-table-column prop="arrangeName" label="分组" min-width="160"> </el-table-column>
             <el-table-column prop="arrangeName" label="分组" min-width="160"> </el-table-column>
-            <el-table-column prop="gradingOrganization" label="考级机构" show-overflow-tooltip min-width="160">
-            </el-table-column>
-            <el-table-column prop="organization" label="承办单位" min-width="160"> </el-table-column>
             <el-table-column prop="name" label="节目名称" min-width="70"> </el-table-column>
             <el-table-column prop="name" label="节目名称" min-width="70"> </el-table-column>
-            <el-table-column label="表演时间" min-width="70"> </el-table-column>
+            <el-table-column prop="specialty" label="参赛专业"> </el-table-column>
+            <el-table-column prop="participant" label="参赛专业"> </el-table-column>
             <el-table-column prop="quantity" label="表演人数" min-width="70"> </el-table-column>
             <el-table-column prop="quantity" label="表演人数" min-width="70"> </el-table-column>
-            <el-table-column prop="contact" label="联系人" min-width="68"> </el-table-column>
-            <el-table-column prop="phone" label="联系电话" min-width="95"> </el-table-column>
-            <el-table-column prop="writerDirector" label="编导姓名"> </el-table-column>
-            <el-table-column prop="writerPhone" label="联系电话"> </el-table-column>
             <el-table-column prop="signedIn" label="状态" :formatter="signedInFormatter"> </el-table-column>
             <el-table-column prop="signedIn" label="状态" :formatter="signedInFormatter"> </el-table-column>
+            <el-table-column prop="score" label="成绩"> </el-table-column>
+            <el-table-column prop="myScore" label="评分"> </el-table-column>
+            <el-table-column prop="remark" label="备注"> </el-table-column>
             <el-table-column label="操作" align="left" fixed="right" min-width="100">
             <el-table-column label="操作" align="left" fixed="right" min-width="100">
                 <template slot-scope="{ row }">
                 <template slot-scope="{ row }">
                     <el-button @click="showSign(row)" size="mini" plain type="primary">签到处理</el-button>
                     <el-button @click="showSign(row)" size="mini" plain type="primary">签到处理</el-button>
@@ -143,7 +130,7 @@ export default {
         return {
         return {
             multipleMode: false,
             multipleMode: false,
             search: '',
             search: '',
-            url: '/programme/byArrange',
+            url: '/programme/byScore',
             downloading: false,
             downloading: false,
             form: {},
             form: {},
             dialogSign: false,
             dialogSign: false,

+ 20 - 0
src/test/java/com/izouma/wenlvju/repo/performance/ProgrammeScoreRepoTest.java

@@ -0,0 +1,20 @@
+package com.izouma.wenlvju.repo.performance;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@SpringBootTest
+@RunWith(SpringRunner.class)
+public class ProgrammeScoreRepoTest {
+    @Autowired
+    private ProgrammeScoreRepo programmeScoreRepo;
+
+    @Test
+    public void test(){
+        System.out.println(programmeScoreRepo.avgScore(1346L));
+    }
+
+}

+ 16 - 0
src/test/java/com/izouma/wenlvju/service/performance/ProgrammeScoreServiceTest.java

@@ -0,0 +1,16 @@
+package com.izouma.wenlvju.service.performance;
+
+import com.izouma.wenlvju.ApplicationTests;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class ProgrammeScoreServiceTest extends ApplicationTests {
+    @Autowired
+    private ProgrammeScoreService programmeScoreService;
+
+    @Test
+    public void test() {
+        programmeScoreService.saveScore(1346L,null,null,1L);
+    }
+
+}