Jelajahi Sumber

Merge branch 'master' of http://git.dayaedu.com/yonge/edu-saas

zouxuan 5 tahun lalu
induk
melakukan
93c4045654

+ 2 - 1
edu-common/src/main/java/com/keao/edu/common/enums/MessageTypeEnum.java

@@ -7,7 +7,8 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     STUDENT_EXAM_START("STUDENT_EXAM_START", "考试已开始"),
     EXAM_REGISTRATION_CLOSE_SMS("EXAM_REGISTRATION_CLOSE_SMS", "关闭报名"),
     EXAM_CLOSE_SMS("EXAM_CLOSE_SMS", "项目关闭"),
-    EXAM_REGIST_TIME_CHANGE_SMS("EXAM_REGIST_TIME_CHANGE_SMS", "报名时间调整");
+    EXAM_REGIST_TIME_CHANGE_SMS("EXAM_REGIST_TIME_CHANGE_SMS", "报名时间调整"),
+    EXAM_REGIST_EXPIRE_SMS("EXAM_REGIST_EXPIRE_SMS", "报名截至");
 
     MessageTypeEnum(String code, String msg) {
         this.code = code;

+ 25 - 9
edu-user/edu-user-server/src/main/java/com/keao/edu/user/enums/ExamStatusEnum.java

@@ -7,25 +7,33 @@ import com.keao.edu.common.enums.BaseEnum;
  * @Date 2020.06.18
  **/
 public enum ExamStatusEnum implements BaseEnum<String, ExamStatusEnum> {
-    SETTING("SETTING", "设置中"),
-    NOT_START("NOT_START", "未开始"),
-    APPLYING("APPLYING","报名中"),
-    APPLIED("APPLIED", "报名结束"),
-    EXAM_ING("EXAM_ING", "考试中"),
-    EXAM_END("EXAM_END", "考试结束"),
-    RESULT_CONFIRM("RESULT_CONFIRM", "确认考试结果"),
-    CLOSE("CLOSE", "关闭"),
-    DELETE("DELETE", "删除");
+    SETTING("SETTING", "设置中", 1),
+    NOT_START("NOT_START", "未开始", 2),
+    APPLYING("APPLYING","报名中", 3),
+    APPLIED("APPLIED", "报名结束", 4),
+    EXAM_ING("EXAM_ING", "考试中", 5),
+    EXAM_END("EXAM_END", "考试结束", 6),
+    RESULT_CONFIRM("RESULT_CONFIRM", "确认考试结果", 7),
+    CLOSE("CLOSE", "关闭", 7),
+    DELETE("DELETE", "删除", 7);
 
     private String code;
 
     private String msg;
 
+    private int order;
+
     ExamStatusEnum(String code, String msg) {
         this.code = code;
         this.msg = msg;
     }
 
+    ExamStatusEnum(String code, String msg, int order) {
+        this.code = code;
+        this.msg = msg;
+        this.order = order;
+    }
+
     @Override
     public String getCode() {
         return this.code;
@@ -41,4 +49,12 @@ public enum ExamStatusEnum implements BaseEnum<String, ExamStatusEnum> {
 
     public void setMsg(String msg) {
         this.msg = msg;
+    }
+
+    public int getOrder() {
+        return order;
+    }
+
+    public void setOrder(int order) {
+        this.order = order;
     }}

+ 9 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamOrganizationRelationService.java

@@ -86,6 +86,15 @@ public interface ExamOrganizationRelationService extends BaseService<Long, ExamO
     void examDateChangePush(Long examId);
 
     /**
+     * @describe 考级项目报名截至推送
+     * @author Joburgess
+     * @date 2020.07.21
+     * @param examId:
+     * @return void
+     */
+    void examRegistCutOffPush(Long examId);
+
+    /**
      * @describe 获取本单位统计信息
      * @author Joburgess
      * @date 2020.07.16

+ 29 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamOrganizationRelationServiceImpl.java

@@ -435,6 +435,35 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 	}
 
 	@Override
+	public void examRegistCutOffPush(Long examId) {
+		if(Objects.isNull(examId)){
+			return;
+		}
+		ExaminationBasic exam = examinationBasicDao.get(examId);
+		if(Objects.isNull(exam)){
+			return;
+		}
+
+		TenantInfo tenantInfo = tenantInfoDao.getWithOrgan(exam.getOrganId());
+		List<ExamOrganizationRelation> examOrgans = examOrganizationRelationDao.getOrganInfoWithExam(examId.intValue());
+		Map<Integer, String> userPhoneMap = new HashMap<>();
+		for (ExamOrganizationRelation examOrgan : examOrgans) {
+			if(examOrgan.getOrganId().equals(exam.getOrganId())){
+				continue;
+			}
+			userPhoneMap.put(examOrgan.getOrganization().getUserId(), examOrgan.getOrganization().getContactPhone());
+		}
+
+		if(CollectionUtils.isEmpty(userPhoneMap)){
+			return;
+		}
+
+		sysMessageService.batchSendMessage(MessageTypeEnum.EXAM_REGIST_EXPIRE_SMS,
+				userPhoneMap, null, 0, null, YimeiSmsPlugin.PLUGIN_NAME,
+				tenantInfo.getName(), exam.getName());
+	}
+
+	@Override
 	public ExamOrganStatisticsDto getExamOrganStatistics(Integer organId, Long examId) {
 		if(Objects.isNull(examId)){
 			throw new BizException("请指定考级项目");

+ 4 - 4
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExaminationBasicServiceImpl.java

@@ -127,21 +127,21 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
         }
         Date now = new Date();
         for (ExaminationBasic exam : exams) {
-            if (!ExamStatusEnum.APPLYING.equals(exam.getStatus())
+            if (exam.getStatus().getOrder()<ExamStatusEnum.APPLYING.getOrder()
                     &&now.compareTo(exam.getEnrollStartTime()) >= 0
                     && now.compareTo(exam.getEnrollEndTime()) <= 0) {
                 exam.setStatus(ExamStatusEnum.APPLYING);
                 examLifecycleLogDao.insert(new ExamLifecycleLog(exam.getId().intValue(), "报名已开启", null, "定时任务自动更新"));
                 continue;
-            }
-            if (!ExamStatusEnum.APPLIED.equals(exam.getStatus())
+            }else if (exam.getStatus().getOrder()<ExamStatusEnum.APPLIED.getOrder()
                     &&now.compareTo(exam.getEnrollEndTime()) >= 0) {
                 exam.setStatus(ExamStatusEnum.APPLIED);
                 examLifecycleLogDao.insert(new ExamLifecycleLog(exam.getId().intValue(), "报名已结束", null,"定时任务自动更新"));
+                examOrganizationRelationService.examRegistCutOffPush(exam.getId());
                 continue;
             }
             if (Objects.nonNull(exam.getActualExamEndTime())
-                    &&ExamStatusEnum.EXAM_END.equals(exam.getStatus())
+                    &&exam.getStatus().getOrder()<ExamStatusEnum.EXAM_END.getOrder()
                     &&now.compareTo(exam.getActualExamEndTime()) >= 0) {
                 exam.setStatus(ExamStatusEnum.EXAM_END);
             }