浏览代码

Merge remote-tracking branch 'origin/feature/0406-degree' into feature/0406-degree

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/service/DegreeService.java
Eric 2 年之前
父节点
当前提交
f290588edd

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/DegreeRegistrationDao.java

@@ -24,7 +24,7 @@ public interface DegreeRegistrationDao extends BaseDAO<Integer, DegreeRegistrati
 
     DegreeRegistration getUserLevelDegrees(@Param("userId") Integer userId,
                                                  @Param("degreeId") Long degreeId,
-                                                 @Param("degreeType") DegreeTypeEnum degreeType,
+                                                 @Param("type") DegreeTypeEnum type,
                                                  @Param("levels") String levels,
                                                  @Param("subjectId") Integer subjectId);
 

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/DegreeMapper.java

@@ -23,5 +23,6 @@ public interface DegreeMapper extends BaseMapper<Degree> {
 	 * @return List<DegreeWrapper.Degree>
 	 */
 	List<Degree> selectPage(@Param("page") IPage<Degree> page, @Param("param") DegreeWrapper.DegreeQuery param);
-	
+
+    void degreeStatusChange();
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/DegreeWrapper.java

@@ -134,7 +134,7 @@ public class DegreeWrapper {
         private Date endTime;
 
         @ApiModelProperty(value = "登记时间",required = true)
-        @NotNull(message = "登记时间不能为空")
+//        @NotNull(message = "登记时间不能为空")
         private Date registrationTime;
 
         @ApiModelProperty("报名人次")

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/DegreeService.java

@@ -53,4 +53,9 @@ public interface DegreeService extends IService<Degree>  {
      * @return DegreeWrapper.StudentDegreeInfo
      */
     DegreeWrapper.StudentDegreeInfo studentDegreeInfoById(Long id, Integer organId);
+
+    /**
+     * 考级状态变更
+     */
+    void degreeStatusChange();
 }

+ 34 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DegreeServiceImpl.java

@@ -129,12 +129,34 @@ public class DegreeServiceImpl extends ServiceImpl<DegreeMapper, Degree> impleme
 
         Integer tenantId = TenantContextHolder.getTenantId();
         degree.setTenantId(tenantId);
+
+        // 判断考级时间冲突
+        checkTime(degree);
+
         updateDegreeStatus(degree);
 
         
         return this.save(JSON.parseObject(degree.jsonString(), Degree.class));
     }
 
+    private void checkTime(DegreeWrapper.Degree degree) {
+        List<Degree> list = this.lambdaQuery()
+                .eq(Degree::getTenantId, degree.getTenantId())
+                .le(Degree::getStartTime, degree.getEndTime())
+                .ge(Degree::getEndTime, degree.getStartTime())
+                .list();
+
+        if (CollectionUtils.isEmpty(list)) {
+            return;
+        }
+
+        if (list.size()  == 1) {
+            Degree degree1 = list.get(0);
+            if (degree1.getId().equals(degree.getId())) return;
+        }
+        throw new BizException("考级时间冲突");
+    }
+
     /**
      * 根据时间设置状态
      * @param degree DegreeWrapper.Degree
@@ -157,6 +179,13 @@ public class DegreeServiceImpl extends ServiceImpl<DegreeMapper, Degree> impleme
      */
     @Override
     public Boolean update(DegreeWrapper.Degree degree){
+
+        Integer tenantId = TenantContextHolder.getTenantId();
+        degree.setTenantId(tenantId);
+
+        // 判断考级时间冲突
+        checkTime(degree);
+
         updateDegreeStatus(degree);
 
         return this.updateById(JSON.parseObject(degree.jsonString(), Degree.class));       
@@ -278,4 +307,9 @@ public class DegreeServiceImpl extends ServiceImpl<DegreeMapper, Degree> impleme
 
         return wrapper;
     }
+
+    @Override
+    public void degreeStatusChange() {
+        this.baseMapper.degreeStatusChange();
+    }
 }

+ 10 - 0
mec-biz/src/main/resources/config/mybatis/DegreeMapper.xml

@@ -28,4 +28,14 @@
         </where>
 	</select>
 
+    <update id="degreeStatusChange">
+        UPDATE degree SET status_ =
+            case
+                when start_time_ &lt; now() and end_time_ &gt; now() then 'START'
+                when end_time_ &lt;= now() then 'END'
+                else 'NOT_START'
+            end
+
+        WHERE status_ != 'END' and start_time_ &lt; now()
+    </update>
 </mapper>

+ 2 - 2
mec-biz/src/main/resources/config/mybatis/DegreeRegistrationMapper.xml

@@ -326,8 +326,8 @@
 
     <select id="getUserLevelDegrees" resultMap="DegreeRegistration">
         select * from degree_registration
-        where user_id_ = #{userId} and degree_id_ = #{degreeId} and degree_type_ = #{degreeType}
-          AND FIND_IN_SET(level_,#{levels}) AND subject_id_ = #{subjectId} LIMIT 1
+        where user_id_ = #{userId} and degree_id_ = #{degreeId} and ype_ = #{type}
+          AND FIND_IN_SET(level_,#{levels}) AND subject_id_ = #{subjectId} AND status_ = 2 LIMIT 1
     </select>
     <select id="getLockByOrderId" resultMap="DegreeRegistration">
         SELECT * FROM degree_registration WHERE order_no_ = #{orderNo} FOR UPDATE

+ 4 - 0
mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java

@@ -299,4 +299,8 @@ public interface TaskRemoteService {
 
     @GetMapping("task/teacherCloudCourseReport")
     void teacherCloudCourseReport();
+
+
+    @GetMapping("task/degreeStatusChange")
+    void degreeStatusChange() ;
 }

+ 5 - 0
mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java

@@ -349,4 +349,9 @@ public class TaskRemoteServiceFallback implements TaskRemoteService {
     public void teacherCloudCourseReport() {
 
     }
+
+    @Override
+    public void degreeStatusChange() {
+        logger.error("考级状态变更失败");
+    }
 }

+ 2 - 1
mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -314,7 +314,8 @@ public class StudentOrderController extends BaseController {
         } else if (orderByOrderNo.getGroupType().equals(GroupType.REPLACEMENT)) {
             orderDetail.put("detail", replacementInstrumentActivityDao.getInfo(Integer.parseInt(orderByOrderNo.getMusicGroupId())));
         } else if (orderByOrderNo.getGroupType().equals(GroupType.DEGREE)) {
-            orderDetail.put("detail", childrenDayDegreeDetailDao.getByOrderId(orderByOrderNo.getId()));
+//            orderDetail.put("detail", childrenDayDegreeDetailDao.getByOrderId(orderByOrderNo.getId()));
+            orderDetail.put("detail", degreeRegistrationDao.findByByOrderId(orderByOrderNo.getOrderNo()));
         } else if (orderByOrderNo.getGroupType().equals(GroupType.ACTIVITY)) {
             List<VipGroupActivity> vipGroupActivities = vipGroupActivityService.getDao().queryByIds(orderByOrderNo.getActivityId());
             if(CollectionUtils.isNotEmpty(vipGroupActivities)){

+ 19 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/DegreeStatusChangeTask.java

@@ -0,0 +1,19 @@
+package com.ym.mec.task.jobs;
+
+import com.ym.mec.task.TaskRemoteService;
+import com.ym.mec.task.core.BaseTask;
+import com.ym.mec.task.core.TaskException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class DegreeStatusChangeTask extends BaseTask {
+
+	@Autowired
+	private TaskRemoteService taskRemoteService;
+
+	@Override
+	public void execute() throws TaskException {
+		taskRemoteService.degreeStatusChange();
+	}
+}

+ 9 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -129,6 +129,9 @@ public class TaskController extends BaseController {
     @Autowired
     private TeacherCloudCourseReportService teacherCloudCourseReportService;
 
+    @Autowired
+    private DegreeService degreeService;
+
 	@GetMapping(value = "/initSysMusicCompareDayData")
 	public void initSysMusicCompareDayData(){
 		sysMusicCompareRecordService.initSysMusicCompareDayData();
@@ -642,4 +645,10 @@ public class TaskController extends BaseController {
 		return succeed();
 	}
 
+    @ApiOperation("考级状态变更 - 1分钟一次")
+    @GetMapping("/degreeStatusChange")
+    public Object degreeStatusChange() {
+        degreeService.degreeStatusChange();
+        return succeed();
+    }
 }