Ver Fonte

1.重构短信发送模块代码
2.新加获取试卷结构接口
3.添加多学号支持
4.违纪列表添加学习中心字段
5.添加获取试卷结构信息的RPC接口

lideyin há 6 anos atrás
pai
commit
29a27b64d5

+ 13 - 0
examcloud-core-basic-dao/src/main/java/cn/com/qmth/examcloud/core/basic/dao/SmsAssemblyRepo.java

@@ -0,0 +1,13 @@
+package cn.com.qmth.examcloud.core.basic.dao;
+
+import cn.com.qmth.examcloud.core.basic.dao.entity.SmsAssemblyEntity;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+public interface SmsAssemblyRepo
+		extends
+			JpaRepository<SmsAssemblyEntity, Long>,
+			JpaSpecificationExecutor<SmsAssemblyEntity> {
+
+	SmsAssemblyEntity findByCode(String code);
+}

+ 59 - 0
examcloud-core-basic-dao/src/main/java/cn/com/qmth/examcloud/core/basic/dao/cache/SmsAssemblyCache.java

@@ -0,0 +1,59 @@
+package cn.com.qmth.examcloud.core.basic.dao.cache;
+
+import cn.com.qmth.examcloud.core.basic.dao.SmsAssemblyRepo;
+import cn.com.qmth.examcloud.core.basic.dao.entity.SmsAssemblyEntity;
+import cn.com.qmth.examcloud.support.cache.bean.SmsAssemblyCacheBean;
+import cn.com.qmth.examcloud.web.cache.RandomObjectRedisCache;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SmsAssemblyCache extends RandomObjectRedisCache<SmsAssemblyCacheBean> {
+
+    @Autowired
+    SmsAssemblyRepo smsAssemblyRepo;
+
+
+    @Override
+    public SmsAssemblyCacheBean loadFromResource(Object... keys) {
+        if (keys == null) {
+            return null;
+        }
+        String smsAssemblyCode = keys[0].toString();
+        SmsAssemblyEntity smsAssembly = smsAssemblyRepo.findByCode(smsAssemblyCode);
+
+        if (null == smsAssembly) {
+            return null;
+        }
+
+        SmsAssemblyCacheBean resultBean = new SmsAssemblyCacheBean();
+        resultBean.setCode(smsAssembly.getCode());
+        resultBean.setExample(smsAssembly.getExample());
+        resultBean.setExt1(smsAssembly.getExt1());
+        resultBean.setExt2(smsAssembly.getExt2());
+        resultBean.setExt3(smsAssembly.getExt3());
+        resultBean.setExt4(smsAssembly.getExt4());
+        resultBean.setExt5(smsAssembly.getExt5());
+        resultBean.setExt6(smsAssembly.getExt6());
+        resultBean.setExt7(smsAssembly.getExt7());
+        resultBean.setExt8(smsAssembly.getExt8());
+        resultBean.setExt9(smsAssembly.getExt9());
+        resultBean.setExt10(smsAssembly.getExt10());
+        resultBean.setId(smsAssembly.getId());
+        resultBean.setName(smsAssembly.getName());
+        resultBean.setTemplate(smsAssembly.getTemplate());
+        return resultBean;
+    }
+
+    @Override
+    protected String getKeyPrefix() {
+        return "SMS_ASSEMBLY_PROP:";
+    }
+
+    @Override
+    protected int getTimeout() {
+        // 2分钟
+        return 60 * 2;
+    }
+
+}

+ 226 - 0
examcloud-core-basic-dao/src/main/java/cn/com/qmth/examcloud/core/basic/dao/entity/SmsAssemblyEntity.java

@@ -0,0 +1,226 @@
+package cn.com.qmth.examcloud.core.basic.dao.entity;
+
+import cn.com.qmth.examcloud.web.jpa.JpaEntity;
+import cn.com.qmth.examcloud.web.jpa.WithIdAndStatusJpaEntity;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Index;
+import javax.persistence.Table;
+
+/**
+ * 短信装配
+ *
+ * @author Lideyin
+ * @date 2019年3月27日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+@Entity
+@Table(name = "OCN_M_SMS_ASSEMBLY", indexes = {
+		@Index(name = "IDX_M_021000", columnList = "code", unique = true),
+		@Index(name = "IDX_M_021001", columnList = "name", unique = true)})
+public class SmsAssemblyEntity  extends WithIdAndStatusJpaEntity {
+
+	private static final long serialVersionUID = 3155706159257187078L;
+
+	/**
+	 * 短信装配ID
+	 */
+	private Long id;
+	/**
+	 * 短信装配编码
+	 */
+	@Column(nullable = false, length = 30)
+	private String code;
+
+	/**
+	 * 短信装配名称
+	 */
+	@Column(nullable = false, length = 30)
+	private String name;
+
+	/**
+	 * 短信样例
+	 */
+	@Column(nullable = false, length = 200)
+	private String example;
+
+	/**
+	 * 短信模板
+	 */
+	@Column(nullable = false, length = 200)
+	private String template;
+
+	/**
+	 * 扩展属性1
+	 */
+	@Column(nullable = true, length = 200)
+	private String ext1;
+
+	/**
+	 * 扩展属性2
+	 */
+	@Column(nullable = true, length = 200)
+	private String ext2;
+
+	/**
+	 * 扩展属性3
+	 */
+	@Column(nullable = true, length = 200)
+	private String ext3;
+
+	/**
+	 * 扩展属性4
+	 */
+	@Column(nullable = true, length = 200)
+	private String ext4;
+
+	/**
+	 * 扩展属性5
+	 */
+	@Column(nullable = true, length = 200)
+	private String ext5;
+
+	/**
+	 * 扩展属性6
+	 */
+	@Column(nullable = true, length = 200)
+	private String ext6;
+
+	/**
+	 * 扩展属性7
+	 */
+	@Column(nullable = true, length = 200)
+	private String ext7;
+
+	/**
+	 * 扩展属性8
+	 */
+	@Column(nullable = true, length = 200)
+	private String ext8;
+
+	/**
+	 * 扩展属性9
+	 */
+	@Column(nullable = true, length = 200)
+	private String ext9;
+
+	/**
+	 * 扩展属性10
+	 */
+	@Column(nullable = true, length = 200)
+	private String ext10;
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getExample() {
+		return example;
+	}
+
+	public void setExample(String example) {
+		this.example = example;
+	}
+
+	public String getTemplate() {
+		return template;
+	}
+
+	public void setTemplate(String template) {
+		this.template = template;
+	}
+
+	public String getExt1() {
+		return ext1;
+	}
+
+	public void setExt1(String ext1) {
+		this.ext1 = ext1;
+	}
+
+	public String getExt2() {
+		return ext2;
+	}
+
+	public void setExt2(String ext2) {
+		this.ext2 = ext2;
+	}
+
+	public String getExt3() {
+		return ext3;
+	}
+
+	public void setExt3(String ext3) {
+		this.ext3 = ext3;
+	}
+
+	public String getExt4() {
+		return ext4;
+	}
+
+	public void setExt4(String ext4) {
+		this.ext4 = ext4;
+	}
+
+	public String getExt5() {
+		return ext5;
+	}
+
+	public void setExt5(String ext5) {
+		this.ext5 = ext5;
+	}
+
+	public String getExt6() {
+		return ext6;
+	}
+
+	public void setExt6(String ext6) {
+		this.ext6 = ext6;
+	}
+
+	public String getExt7() {
+		return ext7;
+	}
+
+	public void setExt7(String ext7) {
+		this.ext7 = ext7;
+	}
+
+	public String getExt8() {
+		return ext8;
+	}
+
+	public void setExt8(String ext8) {
+		this.ext8 = ext8;
+	}
+
+	public String getExt9() {
+		return ext9;
+	}
+
+	public void setExt9(String ext9) {
+		this.ext9 = ext9;
+	}
+
+	public String getExt10() {
+		return ext10;
+	}
+
+	public void setExt10(String ext10) {
+		this.ext10 = ext10;
+	}
+
+}

+ 10 - 16
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/impl/SmsCodeServiceImpl.java

@@ -1,28 +1,27 @@
 package cn.com.qmth.examcloud.core.basic.service.impl;
 
-import org.apache.commons.lang3.RandomUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.core.basic.base.constants.PropKeys;
 import cn.com.qmth.examcloud.core.basic.service.SmsCodeService;
-import cn.com.qmth.examcloud.exchange.inner.api.SendSmsCloudService;
+import cn.com.qmth.examcloud.exchange.inner.api.SmsCloudService;
 import cn.com.qmth.examcloud.exchange.inner.api.request.CheckSmsCodeReq;
-import cn.com.qmth.examcloud.exchange.inner.api.request.SendSmsReq;
+import cn.com.qmth.examcloud.exchange.inner.api.request.SendSmsCodeReq;
 import cn.com.qmth.examcloud.exchange.inner.api.response.CheckIdentifyingCodeResp;
 import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
+import org.apache.commons.lang3.RandomUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
 @Service
 public class SmsCodeServiceImpl implements SmsCodeService {
 
 	@Autowired
-	SendSmsCloudService sendSmsCloudService;
+    SmsCloudService smsCloudService;
 
 	@Override
 	public void sendSmsCode(String phone) {
-		SendSmsReq req = new SendSmsReq();
+		SendSmsCodeReq req = new SendSmsCodeReq();
 		req.setPhone(phone);
 		int code = 1000 + RandomUtils.nextInt(1, 8999);
 		req.setCode(String.valueOf(code));
@@ -42,12 +41,7 @@ public class SmsCodeServiceImpl implements SmsCodeService {
 		if (StringUtils.isBlank(smsTemplatecode)) {
 			throw new StatusException("001061", "模板未配置");
 		}
-
-		req.setEffectiveTime(smsEffectivetime);
-		req.setIntervalSeconds(smsIntervalSeconds);
-		req.setSign(smsSign);
-		req.setTemplateCode(smsTemplatecode);
-		sendSmsCloudService.sendIdentifyingCode(req);
+		smsCloudService.sendIdentifyingCode(req);
 	}
 
 	@Override
@@ -56,7 +50,7 @@ public class SmsCodeServiceImpl implements SmsCodeService {
 		CheckSmsCodeReq req = new CheckSmsCodeReq();
 		req.setCode(smsCode);
 		req.setPhone(phone);
-		CheckIdentifyingCodeResp resp = sendSmsCloudService.checkIdentifyingCode(req);
+		CheckIdentifyingCodeResp resp = smsCloudService.checkIdentifyingCode(req);
 		if (!resp.getSuccess()) {
 			throw new StatusException("001050", "验证码错误");
 		}