Joburgess 5 년 전
부모
커밋
070e90a28a

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

@@ -4,7 +4,8 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
 
     SMS_VERIFY_CODE_LOGIN("SMS_VERIFY_CODE_LOGIN", "验证码登录"),
     EXAM_REGISTRATION_URL_SMS("EXAM_REGISTRATION_URL_SMS", "报名连接推送"),
-    STUDENT_EXAM_START("STUDENT_EXAM_START", "考试已开始");
+    STUDENT_EXAM_START("STUDENT_EXAM_START", "考试已开始"),
+    EXAM_REGISTRATION_CLOSE_SMS("EXAM_REGISTRATION_CLOSE_SMS", "关闭报名");
 
     MessageTypeEnum(String code, String msg) {
         this.code = code;

+ 0 - 0
edu-auth/edu-auth-server/src/main/resources/config/mybatis/SysMessageConfigMapper.xml → edu-common/src/main/resources/config/mybatis/SysMessageConfigMapper.xml


+ 0 - 0
edu-auth/edu-auth-server/src/main/resources/config/mybatis/SysMessageMapper.xml → edu-common/src/main/resources/config/mybatis/SysMessageMapper.xml


+ 1 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/UserServerApplication.java

@@ -20,7 +20,7 @@ import org.springframework.web.client.RestTemplate;
 @SpringBootApplication
 @EnableDiscoveryClient
 @EnableFeignClients({"com.keao.edu"})
-@MapperScan({"com.keao.edu.user.dao"})
+@MapperScan({"com.keao.edu.user.dao", "com.keao.edu.common.dao"})
 @ComponentScan(basePackages="com.keao.edu")
 @Configuration
 @EnableSwagger2Doc

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

@@ -6,6 +6,7 @@ import com.keao.edu.user.dto.ExamOrganStatisticsDto;
 import com.keao.edu.user.dto.ExamOrganizationRelationExtraDto;
 import com.keao.edu.user.entity.ExamOrganizationRelation;
 import com.keao.edu.user.entity.Organization;
+import com.keao.edu.user.enums.ExamStatusEnum;
 import com.keao.edu.user.page.ExamOrganizationRelationQueryInfo;
 
 import java.util.List;
@@ -66,6 +67,16 @@ public interface ExamOrganizationRelationService extends BaseService<Long, ExamO
     void sendUrl(Integer examId, Integer selfOrganId);
 
     /**
+     * @describe 考级项目状态变化推送
+     * @author Joburgess
+     * @date 2020.07.21
+     * @param examId:
+     * @param examStatus:
+     * @return void
+     */
+    void examStatusChangePush(Long examId, ExamStatusEnum examStatus);
+
+    /**
      * @describe 获取本单位统计信息
      * @author Joburgess
      * @date 2020.07.16

+ 22 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamOrganizationRelationServiceImpl.java

@@ -12,6 +12,7 @@ import com.keao.edu.common.service.SysMessageService;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.common.tenant.TenantContextHolder;
 import com.keao.edu.thirdparty.message.provider.JiguangPushPlugin;
+import com.keao.edu.thirdparty.message.provider.YimeiSmsPlugin;
 import com.keao.edu.user.dao.*;
 import com.keao.edu.user.dto.ExamOrganStatisticsDto;
 import com.keao.edu.user.dto.ExamOrganizationRelationExtraDto;
@@ -340,7 +341,7 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 			userPhoneMap.put(examOrgan.getOrganId(), organUser.getPhone());
 
 			sysMessageService.batchSendMessage(MessageTypeEnum.EXAM_REGISTRATION_URL_SMS,
-					userPhoneMap, null, 0, null, JiguangPushPlugin.PLUGIN_NAME,
+					userPhoneMap, null, 0, null, YimeiSmsPlugin.PLUGIN_NAME,
 					tenantInfo.getName(), examinationBasic.getName(), expectRegistTime.toString(), examOrgan.getUrl());
 		}
 
@@ -357,6 +358,26 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void examStatusChangePush(Long examId, ExamStatusEnum examStatus) {
+		if(Objects.isNull(examId)||Objects.isNull(examStatus)){
+			return;
+		}
+		ExaminationBasic exam = examinationBasicDao.get(examId);
+		if(Objects.isNull(exam)){
+			return;
+		}
+		TenantInfo tenantInfo = tenantInfoDao.getWithOrgan(exam.getOrganId());
+		SysUser organUser = sysUserDao.getWithOrgan(exam.getOrganId());
+		Map<Integer, String> userPhoneMap = new HashMap<>();
+		userPhoneMap.put(organUser.getId(), organUser.getPhone());
+
+		sysMessageService.batchSendMessage(MessageTypeEnum.EXAM_REGISTRATION_CLOSE_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("请指定考级项目");

+ 3 - 6
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRoomServiceImpl.java

@@ -3,15 +3,14 @@ package com.keao.edu.user.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.keao.edu.auth.api.client.SysMessageFeignService;
 import com.keao.edu.auth.api.client.SysUserFeignService;
-import com.keao.edu.auth.api.entity.SysMessageParams;
 import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.dal.BaseDAO;
 import com.keao.edu.common.enums.MessageTypeEnum;
 import com.keao.edu.common.enums.YesOrNoEnum;
 import com.keao.edu.common.exception.BizException;
 import com.keao.edu.common.page.PageInfo;
+import com.keao.edu.common.service.SysMessageService;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.common.tenant.TenantContextHolder;
 import com.keao.edu.im.api.client.ImFeignService;
@@ -74,7 +73,7 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
 	@Autowired
-	private SysMessageFeignService sysMessageFeignService;
+	private SysMessageService sysMessageService;
 
 	@Override
 	public BaseDAO<Long, ExamRoom> getDAO() {
@@ -322,7 +321,6 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 		if(withoutExamRoomStudentNum>0){
 			throw new BizException("存在未安排教室的学员");
 		}
-
 		examLifecycleLogDao.insert(new ExamLifecycleLog(examId, "确认考试安排", operatorId));
 	}
 
@@ -470,9 +468,8 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 				for (String s : split) {
 					userPhoneMap.put(Integer.parseInt(s),s);
 				}
-				SysMessageParams sysMessageParams=new SysMessageParams(MessageTypeEnum.STUDENT_EXAM_START,
+				sysMessageService.batchSendMessage(MessageTypeEnum.STUDENT_EXAM_START,
 						userPhoneMap, null, 0, null, JiguangPushPlugin.PLUGIN_NAME);
-				sysMessageFeignService.batchSendMessage(sysMessageParams);
 			}
 		}else {
 			SysUser sysUser = sysUserFeignService.queryUserInfo();

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

@@ -1,12 +1,14 @@
 package com.keao.edu.user.service.impl;
 
-import com.alibaba.druid.pool.DruidDataSource;
 import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.common.enums.MessageTypeEnum;
 import com.keao.edu.common.exception.BizException;
 import com.keao.edu.common.page.PageInfo;
+import com.keao.edu.common.service.SysMessageService;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.common.tenant.TenantContextHolder;
+import com.keao.edu.thirdparty.message.provider.JiguangPushPlugin;
 import com.keao.edu.user.api.enums.ExamModeEnum;
 import com.keao.edu.user.dao.*;
 import com.keao.edu.user.dto.ExaminationBasicDto;
@@ -50,6 +52,8 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
     private OrganizationService organizationService;
     @Autowired
     private ExamLifecycleLogDao examLifecycleLogDao;
+    @Autowired
+    private SysMessageService sysMessageService;
 
     @Override
     public BaseDAO<Long, ExaminationBasic> getDAO() {
@@ -178,6 +182,7 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
         if(ExamStatusEnum.APPLYING.equals(existsExam.getStatus())&&ExamStatusEnum.APPLIED.equals(statusEnum)){
             existsExam.setEnrollEndTime(new Date());
             examLifecycleLogDao.insert(new ExamLifecycleLog(existsExam.getId().intValue(), "关闭报名连接", operatorId));
+            examOrganizationRelationService.examStatusChangePush(examId, statusEnum);
         }
         existsExam.setStatus(statusEnum);
         examinationBasicDao.update(existsExam);