Ver Fonte

Merge branch 'Regulation' of http://git.izouma.com/licailing/wenlvju into Regulation

xuqiang há 4 anos atrás
pai
commit
2b6dde33cd

+ 1 - 1
src/main/java/com/izouma/wenlvju/domain/performance/ArrangeJudge.java

@@ -25,7 +25,7 @@ public class ArrangeJudge extends BaseEntity {
 
     private LocalDate date;
 
-    private boolean morning;
+    private Boolean morning;
 
     private Long expertId;
 

+ 1 - 1
src/main/java/com/izouma/wenlvju/dto/ParticipantDTO.java

@@ -33,6 +33,6 @@ public class ParticipantDTO {
     private String certificate;
 
     public ParticipantDTO(Participant participant) {
-        BeanUtil.copyProperties(this, participant);
+        BeanUtil.copyProperties(participant, this);
     }
 }

+ 3 - 0
src/main/java/com/izouma/wenlvju/dto/ProgrammeShowDTO.java

@@ -63,6 +63,9 @@ public class ProgrammeShowDTO {
     @ApiModelProperty(value = "参赛人数")
     private int quantity;
 
+    @ApiModelProperty(value = "评分")
+    private Double score;
+
     private String video;
 
     private String annex;

+ 2 - 0
src/main/java/com/izouma/wenlvju/repo/performance/ArrangeJudgeRepo.java

@@ -29,4 +29,6 @@ public interface ArrangeJudgeRepo extends JpaRepository<ArrangeJudge, Long>, Jpa
 
     @Query("select arrangeId from ArrangeJudge where expertId = ?1")
     List<Long> findArrangeIdByExpertId(Long expertId);
+
+    List<ArrangeJudge> findAllByArrangeIdIn(Collection<Long> arrangeIds);
 }

+ 1 - 0
src/main/java/com/izouma/wenlvju/security/WebSecurityConfig.java

@@ -73,6 +73,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
                 .antMatchers("/programme/getShow/**").permitAll()
                 .antMatchers("/programme/getAuth").permitAll()
                 .antMatchers("/programme/getScore/**").permitAll()
+                .antMatchers("/programmeScore/breakdown").permitAll()
                 .antMatchers("/participant/byProgramme").permitAll()
                 .antMatchers("/upload/**").permitAll()
                 .antMatchers("/files/**").permitAll()

+ 14 - 0
src/main/java/com/izouma/wenlvju/service/performance/ArrangeJudgeService.java

@@ -11,6 +11,7 @@ import com.izouma.wenlvju.exception.BusinessException;
 import com.izouma.wenlvju.repo.UserRepo;
 import com.izouma.wenlvju.repo.performance.ArrangeJudgeRepo;
 import com.izouma.wenlvju.repo.performance.ArrangeRepo;
+import com.izouma.wenlvju.service.sms.NjwlSmsService;
 import com.izouma.wenlvju.utils.JpaUtils;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
@@ -19,6 +20,8 @@ import org.springframework.stereotype.Service;
 import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 @Service
 @AllArgsConstructor
@@ -27,6 +30,7 @@ public class ArrangeJudgeService {
     private ArrangeJudgeRepo arrangeJudgeRepo;
     private ArrangeRepo      arrangeRepo;
     private UserRepo         userRepo;
+    private NjwlSmsService   njwlSmsService;
 
     public Page<ArrangeJudge> all(PageQuery pageQuery) {
         return arrangeJudgeRepo.findAll(JpaUtils.toSpecification(pageQuery, ArrangeJudge.class), JpaUtils.toPageRequest(pageQuery));
@@ -73,4 +77,14 @@ public class ArrangeJudgeService {
         if (CollUtil.isNotEmpty(arrangeIds))
             arrangeJudgeRepo.cancelJudge(arrangeIds);
     }
+
+    public void notify(List<Long> arranges) {
+        List<ArrangeJudge> arrangeJudges = arrangeJudgeRepo.findAllByArrangeIdIn(arranges);
+        Set<Long> judges = arrangeJudges.stream().map(ArrangeJudge::getExpertId).collect(Collectors.toSet());
+        String phones = userRepo.findAllByIdInAndDelFalse(judges)
+                .stream()
+                .map(User::getPhone)
+                .collect(Collectors.joining(","));
+        njwlSmsService.sendSms(phones,"已分配您评审节目,链接为http://yskj.njlyw.cn:8081/h5/login");
+    }
 }

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

@@ -85,6 +85,5 @@ public class ArrangeController extends BaseController {
     public Page<Arrange> byExpert(@RequestBody PageQuery pageQuery) {
         return arrangeService.byExpert(pageQuery, SecurityUtils.getAuthenticatedUser().getId());
     }
-
 }
 

+ 6 - 0
src/main/java/com/izouma/wenlvju/web/performance/ArrangeJudgeController.java

@@ -74,5 +74,11 @@ public class ArrangeJudgeController extends BaseController {
     public void cancelAssign(String arranges) {
         arrangeJudgeService.cancelAssign(arranges);
     }
+
+    @ApiOperation("通知评委")
+    @PostMapping("/notify")
+    public void notify(@RequestBody List<Long> arranges) {
+        arrangeJudgeService.notify(arranges);
+    }
 }
 

+ 5 - 2
src/main/vue/src/components/OrganLog.vue

@@ -69,7 +69,6 @@ export default {
         return {
             saving: false,
             formData: {},
-            list: [],
             rules: {},
             emps: [],
             id: '',
@@ -96,9 +95,13 @@ export default {
             this.userIds.pop(this.userId);
         },
         onSave() {
+            let ids = this.id;
+            if (this.id.length > 1) {
+                ids = this.id.join(',');
+            }
             if (this.userIds.length > 0) {
                 this.$http
-                    .post('/arrangeJudge/assignJudge', { arranges: this.id.join(','), experts: this.userIds.join(',') })
+                    .post('/arrangeJudge/assignJudge', { arranges: ids, experts: this.userIds.join(',') })
                     .then(res => {
                         this.$message.success('添加成功');
                         this.dialogVisible = false;

+ 16 - 2
src/main/vue/src/views/performance/ArrangeJudgeList.vue

@@ -140,8 +140,8 @@
             <el-table-column label="评审专家" min-width="130" prop="experts"> </el-table-column>
             <el-table-column label="操作" align="center" fixed="right" min-width="320">
                 <template slot-scope="{ row }">
-                    <el-button @click="assignExpert(row)" type="primary" size="mini" plain>分配评委</el-button>
-                    <el-button @click="cancelAssign(row)" type="warning" size="mini" plain>取消分配</el-button>
+                    <el-button @click="assignAExpert(row)" type="primary" size="mini" plain>分配评委</el-button>
+                    <el-button @click="cancelAAssign(row)" type="warning" size="mini" plain>取消分配</el-button>
                     <el-button @click="programme(row)" size="mini" plain>通知评委</el-button>
                 </template>
             </el-table-column>
@@ -373,6 +373,10 @@ export default {
             this.isShow = true;
             this.$refs.public.init(arrid);
         },
+        assignAExpert(row) {
+            this.isShow = true;
+            this.$refs.public.init(row.id);
+        },
         programme(row) {
             this.$router.push({
                 path: '/programmeGroupList',
@@ -469,6 +473,16 @@ export default {
                 });
             });
         },
+        cancelAAssign(row) {
+            this.$alert('确定取消吗?', '警告', { type: 'error' }).then(() => {
+                this.$http.post('/arrangeJudge/cancelAssign', { arranges: row.id }).then(res => {
+                    this.$message.success('取消成功');
+                    setTimeout(() => {
+                        this.getData();
+                    }, 1000);
+                });
+            });
+        },
         handleChange(val) {}
     }
 };

+ 24 - 2
src/main/vue/src/views/performance/ArrangeList.vue

@@ -169,7 +169,7 @@
                                 <el-form-item style="margin-left: 40px">
                                     <el-button type="primary" @click="clear">清空</el-button>
                                     <el-button type="primary" @click="group">节目分组</el-button>
-                                    <el-button type="primary">发布分组安排</el-button>
+                                    <el-button type="primary" @click="publishGroup">发布分组安排</el-button>
                                     <el-button type="primary">导出分组安排</el-button>
                                 </el-form-item>
                             </el-card>
@@ -218,7 +218,14 @@
             <el-table-column prop="phone" label="联系电话"> </el-table-column>
             <el-table-column label="操作" align="center" fixed="right" :min-width="performance.online ? 100 : 320">
                 <template slot-scope="{ row, $index }">
-                    <el-button @click="editRow(row)" type="primary" size="mini" plain>编辑</el-button>
+                    <el-button
+                        @click="editRow(row)"
+                        type="primary"
+                        size="mini"
+                        plain
+                        v-if="performance.status == 'ARRANGE'"
+                        >编辑</el-button
+                    >
                     <el-button @click="programme(row)" size="mini" plain>查看节目</el-button>
                     <el-button
                         @click="move($index, -1)"
@@ -663,6 +670,21 @@ export default {
         },
         handleChange(val) {
             console.log(val);
+        },
+        publishGroup() {
+            this.$alert('发布后分组信息及节目分组情况不能修改,确认要发布么?', '警告', { type: 'error' })
+                .then(() => {
+                    return this.$http.post(`/arrange/publish`, { performanceId: this.form.performanceId });
+                })
+                .then(() => {
+                    this.$message.success('发布成功');
+                    this.getData();
+                })
+                .catch(e => {
+                    if (e !== 'cancel') {
+                        this.$message.error(e.error);
+                    }
+                });
         }
     }
 };

+ 9 - 1
src/test/java/com/izouma/wenlvju/service/performance/ProgrammeScoreServiceTest.java

@@ -8,9 +8,17 @@ public class ProgrammeScoreServiceTest extends ApplicationTests {
     @Autowired
     private ProgrammeScoreService programmeScoreService;
 
+    @Autowired
+    private ProgrammeService programmeService;
+
     @Test
     public void test() {
-        programmeScoreService.saveScore(1346L,null,null,1L);
+        programmeScoreService.saveScore(1346L, null, null, 1L);
+    }
+
+    @Test
+    public void test1() {
+        System.out.println(programmeService.get(1285L, "18205083565"));
     }
 
 }