Browse Source

patentTemplate

Antiloveg 8 years ago
parent
commit
d6e7fd870c

+ 4 - 2
src/main/java/com/goafanti/common/controller/PublicController.java

@@ -66,6 +66,9 @@ public class PublicController extends BaseController {
 
 	@Autowired
 	private DistrictGlossoryService	districtGlossoryService;
+	
+	@Value(value = "${patentTemplate}")
+	private String				patentTemplate	= null;
 
 	/**
 	 * 获取验证码
@@ -296,8 +299,6 @@ public class PublicController extends BaseController {
 			File file = new File(fileSaveRootPath);
 			in = new FileInputStream(file);
 			out = response.getOutputStream();
-			// 设置文件MIME类型
-			// response.setContentType("application/octet-stream");
 			response.setContentType("multipart/form-data");
 			fileName = java.net.URLEncoder.encode(fileName, "UTF-8");
 			response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
@@ -359,4 +360,5 @@ public class PublicController extends BaseController {
 		return new Result().data(districtGlossoryService.list(pid));
 	}
 
+
 }

+ 1 - 1
src/main/java/com/goafanti/common/mapper/PatentInfoMapper.xml

@@ -992,7 +992,7 @@
   	select 
   		p.id, p.uid, p.patent_name as patentName, 
   	    p.patent_application_date as patentApplicationDate, u.mobile,
-  	    p.serial_number as serialNumber
+  	    p.serial_number as serialNumber, p.patent_number as patentNumber
   	from patent_info p 
 		LEFT JOIN patent_cost pc on p.id = pc.pid
 		LEFT JOIN user u on u.id = p.uid

+ 7 - 27
src/main/java/com/goafanti/common/task/PatentTask.java

@@ -14,18 +14,11 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
-import com.aliyuncs.DefaultAcsClient;
-import com.aliyuncs.IAcsClient;
-import com.aliyuncs.exceptions.ClientException;
-import com.aliyuncs.exceptions.ServerException;
-import com.aliyuncs.profile.DefaultProfile;
-import com.aliyuncs.profile.IClientProfile;
-import com.aliyuncs.sms.model.v20160927.SingleSendSmsRequest;
-import com.aliyuncs.sms.model.v20160927.SingleSendSmsResponse;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.model.PatentCost;
 import com.goafanti.common.utils.DateUtils;
 import com.goafanti.common.utils.LoggerUtils;
+import com.goafanti.common.utils.MobileMessageUtils;
 import com.goafanti.patent.bo.PatentAnnualFeeTaskBo;
 import com.goafanti.patent.bo.PatentExpireBo;
 import com.goafanti.patent.service.PatentCostService;
@@ -44,6 +37,9 @@ public class PatentTask {
 	@Value(value = "${accessSecret}")
 	private String				accessSecret	= null;
 
+	@Value(value = "${patentTemplate}")
+	private String				patentTemplate	= null;
+
 	private static final String	LEAP_DAY		= "02-29";
 
 	private static final String	LEAP_DAY_ADD	= "03-01";
@@ -130,25 +126,9 @@ public class PatentTask {
 
 	@SuppressWarnings("unused")
 	private void sendMessage(PatentExpireBo p) {
-		IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKey, accessSecret);
-		try {
-			DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "Sms", "sms.aliyuncs.com");
-		} catch (ClientException e1) {
-		}
-		IAcsClient client = new DefaultAcsClient(profile);
-		SingleSendSmsRequest request = new SingleSendSmsRequest();
-		try {
-			request.setSignName("阿凡提信息科技");// {\"code\":\""+mobileVerifyCode+"\"}
-			request.setTemplateCode("SMS_37845022");
-			request.setParamString(
-					"{\"code\":\"" + p.getSerialNumber() + p.getPatentName() + "\",\"product\":\"阿凡提信息科技\"}");
-			request.setRecNum(p.getMobile());
-			SingleSendSmsResponse httpResponse = client.getAcsResponse(request);
-		} catch (ServerException e) {
-			LoggerUtils.fmtError(getClass(), e, "服务器端手机短信异常:%s", e.getMessage());
-		} catch (ClientException e) {
-			LoggerUtils.fmtError(getClass(), e, "客户端手机短信异常:%s", e.getMessage());
-		}
+		String paramString = "{\"patentName\":\"" + p.getPatentName() + "\",\"patentNumber\":\"" + p.getPatentNumber()
+				+ "\"}";
+		MobileMessageUtils.sendMessage(patentTemplate, paramString, p.getMobile(), accessKey, accessSecret);
 	}
 
 }

+ 24 - 15
src/main/java/com/goafanti/patent/bo/PatentExpireBo.java

@@ -10,27 +10,37 @@ import com.goafanti.common.constant.AFTConstants;
  * 专利年费缴费通知BO
  */
 public class PatentExpireBo {
-	
-	private String id;
-	
-	private String uid;
-	
-	private Integer serialNumber;
-	
+
+	private String	id;
+
+	private String	uid;
+
+	private Integer	serialNumber;
+
+	private String	patentNumber;
+
 	/**
 	 * 专利名称
 	 */
-	private String patentName;
-	
+	private String	patentName;
+
 	/**
 	 * 专利申请日
 	 */
-	private Date patentApplicationDate;
-	
+	private Date	patentApplicationDate;
+
 	/**
 	 * 注册号码
 	 */
-	private String mobile;
+	private String	mobile;
+
+	public String getPatentNumber() {
+		return patentNumber;
+	}
+
+	public void setPatentNumber(String patentNumber) {
+		this.patentNumber = patentNumber;
+	}
 
 	public String getId() {
 		return id;
@@ -47,7 +57,7 @@ public class PatentExpireBo {
 	public void setUid(String uid) {
 		this.uid = uid;
 	}
-	
+
 	public Integer getSerialNumber() {
 		return serialNumber;
 	}
@@ -91,6 +101,5 @@ public class PatentExpireBo {
 	public void setPatentApplicationFormattedDate(String patentApplicationFormattedDate) {
 
 	}
-	
-	
+
 }

+ 20 - 22
src/main/java/com/goafanti/portal/bo/AchievementDetailBo.java

@@ -68,43 +68,42 @@ public class AchievementDetailBo extends AchievementSearchListBo {
 	 * 获奖情况
 	 */
 	private String	awards;
-	
+
 	/**
 	 * 技术团队情况
 	 */
-	private String teamDes;
-	
+	private String	teamDes;
+
 	/**
 	 * 技术参数
 	 */
-	private String parameter;
-	
+	private String	parameter;
+
 	/**
 	 * 技术方案URL
 	 */
-	private String techPlanUrl;
-	
+	private String	techPlanUrl;
+
 	/**
 	 * 商业计划书URL
 	 */
-	private String businessPlanUrl;
-	
+	private String	businessPlanUrl;
+
 	/**
 	 * 关注ID
 	 */
-	private String achievementInterestId;
-	
+	private String	achievementInterestId;
+
 	/**
 	 * 订单ID
 	 */
-	private String achievementOrderId;
-	
+	private String	achievementOrderId;
+
 	/**
 	 * 订单状态
 	 */
-	private Integer orderStatus;
-	
-	
+	private Integer	orderStatus;
+
 	public String getAchievementOrderId() {
 		return achievementOrderId;
 	}
@@ -112,7 +111,7 @@ public class AchievementDetailBo extends AchievementSearchListBo {
 	public void setAchievementOrderId(String achievementOrderId) {
 		this.achievementOrderId = achievementOrderId;
 	}
-	
+
 	@JsonFormat(shape = Shape.STRING)
 	public Integer getOrderStatus() {
 		return orderStatus;
@@ -177,7 +176,7 @@ public class AchievementDetailBo extends AchievementSearchListBo {
 	public void setMaturityVideoUrl(String maturityVideoUrl) {
 		this.maturityVideoUrl = maturityVideoUrl;
 	}
-	
+
 	@JsonFormat(shape = Shape.STRING)
 	public Integer getInnovation() {
 		return innovation;
@@ -186,7 +185,7 @@ public class AchievementDetailBo extends AchievementSearchListBo {
 	public void setInnovation(Integer innovation) {
 		this.innovation = innovation;
 	}
-	
+
 	@JsonFormat(shape = Shape.STRING)
 	public Integer getCooperationMode() {
 		return cooperationMode;
@@ -195,7 +194,7 @@ public class AchievementDetailBo extends AchievementSearchListBo {
 	public void setCooperationMode(Integer cooperationMode) {
 		this.cooperationMode = cooperationMode;
 	}
-	
+
 	@JsonFormat(shape = Shape.STRING)
 	public Integer getBargainingMode() {
 		return bargainingMode;
@@ -268,6 +267,5 @@ public class AchievementDetailBo extends AchievementSearchListBo {
 	public void setBusinessPlanUrl(String businessPlanUrl) {
 		this.businessPlanUrl = businessPlanUrl;
 	}
-	
-	
+
 }

+ 3 - 1
src/main/resources/props/config_dev.properties

@@ -67,4 +67,6 @@ template.cacheable=false
 
 mobileCodeTemplate=SMS_37845022
 
-portal.host=//afts.hnzhiming.com/portal/1.0.0
+portal.host=//afts.hnzhiming.com/portal/1.0.0
+
+patentTemplate=SMS_72005286

+ 21 - 19
src/main/resources/props/config_local.properties

@@ -1,41 +1,41 @@
 #Driver
 jdbc.driverClassName=com.mysql.jdbc.Driver
-#\u6570\u636E\u5E93\u94FE\u63A5\uFF0C
+#\u6570\u636e\u5e93\u94fe\u63a5\uff0c
 jdbc.url=jdbc:mysql://127.0.0.1:3306/aft_dev?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
-#\u5E10\u53F7
+#\u5e10\u53f7
 jdbc.username=root
-#\u5BC6\u7801
+#\u5bc6\u7801
 jdbc.password=123456
-#\u68C0\u6D4B\u6570\u636E\u5E93\u94FE\u63A5\u662F\u5426\u6709\u6548\uFF0C\u5FC5\u987B\u914D\u7F6E
+#\u68c0\u6d4b\u6570\u636e\u5e93\u94fe\u63a5\u662f\u5426\u6709\u6548\uff0c\u5fc5\u987b\u914d\u7f6e
 jdbc.validationQuery=SELECT 'x'
-#\u521D\u59CB\u8FDE\u63A5\u6570
+#\u521d\u59cb\u8fde\u63a5\u6570
 jdbc.initialSize=3
-#\u6700\u5927\u8FDE\u63A5\u6C60\u6570\u91CF
+#\u6700\u5927\u8fde\u63a5\u6c60\u6570\u91cf
 jdbc.maxActive=20
-#\u53BB\u6389\uFF0C\u914D\u7F6E\u6587\u4EF6\u5BF9\u5E94\u53BB\u6389
+#\u53bb\u6389\uff0c\u914d\u7f6e\u6587\u4ef6\u5bf9\u5e94\u53bb\u6389
 #jdbc.maxIdle=20
-#\u914D\u7F6E0,\u5F53\u7EBF\u7A0B\u6C60\u6570\u91CF\u4E0D\u8DB3\uFF0C\u81EA\u52A8\u8865\u5145\u3002
+#\u914d\u7f6e0,\u5f53\u7ebf\u7a0b\u6c60\u6570\u91cf\u4e0d\u8db3\uff0c\u81ea\u52a8\u8865\u5145\u3002
 jdbc.minIdle=0
-#\u83B7\u53D6\u94FE\u63A5\u8D85\u65F6\u65F6\u95F4\u4E3A1\u5206\u949F\uFF0C\u5355\u4F4D\u4E3A\u6BEB\u79D2\u3002
+#\u83b7\u53d6\u94fe\u63a5\u8d85\u65f6\u65f6\u95f4\u4e3a1\u5206\u949f\uff0c\u5355\u4f4d\u4e3a\u6beb\u79d2\u3002
 jdbc.maxWait=120000
-#\u83B7\u53D6\u94FE\u63A5\u7684\u65F6\u5019\uFF0C\u4E0D\u6821\u9A8C\u662F\u5426\u53EF\u7528\uFF0C\u5F00\u542F\u4F1A\u6709\u635F\u6027\u80FD\u3002
+#\u83b7\u53d6\u94fe\u63a5\u7684\u65f6\u5019\uff0c\u4e0d\u6821\u9a8c\u662f\u5426\u53ef\u7528\uff0c\u5f00\u542f\u4f1a\u6709\u635f\u6027\u80fd\u3002
 jdbc.testOnBorrow=false
-#\u5F52\u8FD8\u94FE\u63A5\u5230\u8FDE\u63A5\u6C60\u7684\u65F6\u5019\u6821\u9A8C\u94FE\u63A5\u662F\u5426\u53EF\u7528\u3002
+#\u5f52\u8fd8\u94fe\u63a5\u5230\u8fde\u63a5\u6c60\u7684\u65f6\u5019\u6821\u9a8c\u94fe\u63a5\u662f\u5426\u53ef\u7528\u3002
 jdbc.testOnReturn=false
-#\u6B64\u9879\u914D\u7F6E\u4E3Atrue\u5373\u53EF\uFF0C\u4E0D\u5F71\u54CD\u6027\u80FD\uFF0C\u5E76\u4E14\u4FDD\u8BC1\u5B89\u5168\u6027\u3002\u610F\u4E49\u4E3A\uFF1A\u7533\u8BF7\u8FDE\u63A5\u7684\u65F6\u5019\u68C0\u6D4B\uFF0C\u5982\u679C\u7A7A\u95F2\u65F6\u95F4\u5927\u4E8EtimeBetweenEvictionRunsMillis\uFF0C\u6267\u884CvalidationQuery\u68C0\u6D4B\u8FDE\u63A5\u662F\u5426\u6709\u6548\u3002
+#\u6b64\u9879\u914d\u7f6e\u4e3atrue\u5373\u53ef\uff0c\u4e0d\u5f71\u54cd\u6027\u80fd\uff0c\u5e76\u4e14\u4fdd\u8bc1\u5b89\u5168\u6027\u3002\u610f\u4e49\u4e3a\uff1a\u7533\u8bf7\u8fde\u63a5\u7684\u65f6\u5019\u68c0\u6d4b\uff0c\u5982\u679c\u7a7a\u95f2\u65f6\u95f4\u5927\u4e8etimeBetweenEvictionRunsMillis\uff0c\u6267\u884cvalidationQuery\u68c0\u6d4b\u8fde\u63a5\u662f\u5426\u6709\u6548\u3002
 jdbc.testWhileIdle=true
-#1.Destroy\u7EBF\u7A0B\u4F1A\u68C0\u6D4B\u8FDE\u63A5\u7684\u95F4\u9694\u65F6\u95F4
-#2.testWhileIdle\u7684\u5224\u65AD\u4F9D\u636E
+#1.Destroy\u7ebf\u7a0b\u4f1a\u68c0\u6d4b\u8fde\u63a5\u7684\u95f4\u9694\u65f6\u95f4
+#2.testWhileIdle\u7684\u5224\u65ad\u4f9d\u636e
 jdbc.timeBetweenEvictionRunsMillis=60000
-#\u4E00\u4E2A\u94FE\u63A5\u751F\u5B58\u7684\u65F6\u95F4\uFF08\u4E4B\u524D\u7684\u503C\uFF1A25200000\uFF0C\u8FD9\u4E2A\u65F6\u95F4\u6709\u70B9BT\uFF0C\u8FD9\u4E2A\u7ED3\u679C\u4E0D\u77E5\u9053\u662F\u600E\u4E48\u6765\u7684\uFF0C\u6362\u7B97\u540E\u7684\u7ED3\u679C\u662F\uFF1A25200000/1000/60/60 = 7\u4E2A\u5C0F\u65F6\uFF09
+#\u4e00\u4e2a\u94fe\u63a5\u751f\u5b58\u7684\u65f6\u95f4\uff08\u4e4b\u524d\u7684\u503c\uff1a25200000\uff0c\u8fd9\u4e2a\u65f6\u95f4\u6709\u70b9BT\uff0c\u8fd9\u4e2a\u7ed3\u679c\u4e0d\u77e5\u9053\u662f\u600e\u4e48\u6765\u7684\uff0c\u6362\u7b97\u540e\u7684\u7ed3\u679c\u662f\uff1a25200000/1000/60/60 = 7\u4e2a\u5c0f\u65f6\uff09
 jdbc.minEvictableIdleTimeMillis=300000
-#\u94FE\u63A5\u4F7F\u7528\u8D85\u8FC7\u65F6\u95F4\u9650\u5236\u662F\u5426\u56DE\u6536
+#\u94fe\u63a5\u4f7f\u7528\u8d85\u8fc7\u65f6\u95f4\u9650\u5236\u662f\u5426\u56de\u6536
 jdbc.removeAbandoned=true
-#\u8D85\u8FC7\u65F6\u95F4\u9650\u5236\u65F6\u95F4\uFF08\u5355\u4F4D\u79D2\uFF09\uFF0C\u76EE\u524D\u4E3A5\u5206\u949F\uFF0C\u5982\u679C\u6709\u4E1A\u52A1\u5904\u7406\u65F6\u95F4\u8D85\u8FC75\u5206\u949F\uFF0C\u53EF\u4EE5\u9002\u5F53\u8C03\u6574\u3002
+#\u8d85\u8fc7\u65f6\u95f4\u9650\u5236\u65f6\u95f4\uff08\u5355\u4f4d\u79d2\uff09\uff0c\u76ee\u524d\u4e3a5\u5206\u949f\uff0c\u5982\u679c\u6709\u4e1a\u52a1\u5904\u7406\u65f6\u95f4\u8d85\u8fc75\u5206\u949f\uff0c\u53ef\u4ee5\u9002\u5f53\u8c03\u6574\u3002
 jdbc.removeAbandonedTimeout=300
-#\u94FE\u63A5\u56DE\u6536\u7684\u65F6\u5019\u63A7\u5236\u53F0\u6253\u5370\u4FE1\u606F\uFF0C\u6D4B\u8BD5\u73AF\u5883\u53EF\u4EE5\u52A0\u4E0Atrue\uFF0C\u7EBF\u4E0A\u73AF\u5883false\u3002\u4F1A\u5F71\u54CD\u6027\u80FD\u3002
+#\u94fe\u63a5\u56de\u6536\u7684\u65f6\u5019\u63a7\u5236\u53f0\u6253\u5370\u4fe1\u606f\uff0c\u6d4b\u8bd5\u73af\u5883\u53ef\u4ee5\u52a0\u4e0atrue\uff0c\u7ebf\u4e0a\u73af\u5883false\u3002\u4f1a\u5f71\u54cd\u6027\u80fd\u3002
 jdbc.logAbandoned=true
-#\u7EDF\u8BA1\u76D1\u63A7
+#\u7edf\u8ba1\u76d1\u63a7
 jdbc.filters=stat
 
 logging.level.com.goafanti=DEBUG
@@ -70,3 +70,5 @@ template.cacheable=false
 mobileCodeTemplate=SMS_37845022
 
 portal.host=//afts.hnzhiming.com/portal/1.0.0
+
+patentTemplate=SMS_72005286

+ 3 - 1
src/main/resources/props/config_prod.properties

@@ -57,4 +57,6 @@ template.cacheable=true
 
 mobileCodeTemplate=SMS_37845022
 
-portal.host=//afts.hnzhiming.com/portal/1.0.0
+portal.host=//afts.hnzhiming.com/portal/1.0.0
+
+patentTemplate=SMS_72005286

+ 22 - 20
src/main/resources/props/config_test.properties

@@ -1,41 +1,41 @@
 #Driver
 jdbc.driverClassName=com.mysql.jdbc.Driver
-#\u6570\u636E\u5E93\u94FE\u63A5\uFF0C
+#\u6570\u636e\u5e93\u94fe\u63a5\uff0c
 jdbc.url=jdbc:mysql://localhost:3306/aft_test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
-#\u5E10\u53F7
+#\u5e10\u53f7
 jdbc.username=xiaolong
-#\u5BC6\u7801
+#\u5bc6\u7801
 jdbc.password=Afanti@2017!
-#\u68C0\u6D4B\u6570\u636E\u5E93\u94FE\u63A5\u662F\u5426\u6709\u6548\uFF0C\u5FC5\u987B\u914D\u7F6E
+#\u68c0\u6d4b\u6570\u636e\u5e93\u94fe\u63a5\u662f\u5426\u6709\u6548\uff0c\u5fc5\u987b\u914d\u7f6e
 jdbc.validationQuery=SELECT 'x'
-#\u521D\u59CB\u8FDE\u63A5\u6570
+#\u521d\u59cb\u8fde\u63a5\u6570
 jdbc.initialSize=3
-#\u6700\u5927\u8FDE\u63A5\u6C60\u6570\u91CF
+#\u6700\u5927\u8fde\u63a5\u6c60\u6570\u91cf
 jdbc.maxActive=20
-#\u53BB\u6389\uFF0C\u914D\u7F6E\u6587\u4EF6\u5BF9\u5E94\u53BB\u6389
+#\u53bb\u6389\uff0c\u914d\u7f6e\u6587\u4ef6\u5bf9\u5e94\u53bb\u6389
 #jdbc.maxIdle=20
-#\u914D\u7F6E0,\u5F53\u7EBF\u7A0B\u6C60\u6570\u91CF\u4E0D\u8DB3\uFF0C\u81EA\u52A8\u8865\u5145\u3002
+#\u914d\u7f6e0,\u5f53\u7ebf\u7a0b\u6c60\u6570\u91cf\u4e0d\u8db3\uff0c\u81ea\u52a8\u8865\u5145\u3002
 jdbc.minIdle=0
-#\u83B7\u53D6\u94FE\u63A5\u8D85\u65F6\u65F6\u95F4\u4E3A1\u5206\u949F\uFF0C\u5355\u4F4D\u4E3A\u6BEB\u79D2\u3002
+#\u83b7\u53d6\u94fe\u63a5\u8d85\u65f6\u65f6\u95f4\u4e3a1\u5206\u949f\uff0c\u5355\u4f4d\u4e3a\u6beb\u79d2\u3002
 jdbc.maxWait=120000
-#\u83B7\u53D6\u94FE\u63A5\u7684\u65F6\u5019\uFF0C\u4E0D\u6821\u9A8C\u662F\u5426\u53EF\u7528\uFF0C\u5F00\u542F\u4F1A\u6709\u635F\u6027\u80FD\u3002
+#\u83b7\u53d6\u94fe\u63a5\u7684\u65f6\u5019\uff0c\u4e0d\u6821\u9a8c\u662f\u5426\u53ef\u7528\uff0c\u5f00\u542f\u4f1a\u6709\u635f\u6027\u80fd\u3002
 jdbc.testOnBorrow=false
-#\u5F52\u8FD8\u94FE\u63A5\u5230\u8FDE\u63A5\u6C60\u7684\u65F6\u5019\u6821\u9A8C\u94FE\u63A5\u662F\u5426\u53EF\u7528\u3002
+#\u5f52\u8fd8\u94fe\u63a5\u5230\u8fde\u63a5\u6c60\u7684\u65f6\u5019\u6821\u9a8c\u94fe\u63a5\u662f\u5426\u53ef\u7528\u3002
 jdbc.testOnReturn=false
-#\u6B64\u9879\u914D\u7F6E\u4E3Atrue\u5373\u53EF\uFF0C\u4E0D\u5F71\u54CD\u6027\u80FD\uFF0C\u5E76\u4E14\u4FDD\u8BC1\u5B89\u5168\u6027\u3002\u610F\u4E49\u4E3A\uFF1A\u7533\u8BF7\u8FDE\u63A5\u7684\u65F6\u5019\u68C0\u6D4B\uFF0C\u5982\u679C\u7A7A\u95F2\u65F6\u95F4\u5927\u4E8EtimeBetweenEvictionRunsMillis\uFF0C\u6267\u884CvalidationQuery\u68C0\u6D4B\u8FDE\u63A5\u662F\u5426\u6709\u6548\u3002
+#\u6b64\u9879\u914d\u7f6e\u4e3atrue\u5373\u53ef\uff0c\u4e0d\u5f71\u54cd\u6027\u80fd\uff0c\u5e76\u4e14\u4fdd\u8bc1\u5b89\u5168\u6027\u3002\u610f\u4e49\u4e3a\uff1a\u7533\u8bf7\u8fde\u63a5\u7684\u65f6\u5019\u68c0\u6d4b\uff0c\u5982\u679c\u7a7a\u95f2\u65f6\u95f4\u5927\u4e8etimeBetweenEvictionRunsMillis\uff0c\u6267\u884cvalidationQuery\u68c0\u6d4b\u8fde\u63a5\u662f\u5426\u6709\u6548\u3002
 jdbc.testWhileIdle=true
-#1.Destroy\u7EBF\u7A0B\u4F1A\u68C0\u6D4B\u8FDE\u63A5\u7684\u95F4\u9694\u65F6\u95F4
-#2.testWhileIdle\u7684\u5224\u65AD\u4F9D\u636E
+#1.Destroy\u7ebf\u7a0b\u4f1a\u68c0\u6d4b\u8fde\u63a5\u7684\u95f4\u9694\u65f6\u95f4
+#2.testWhileIdle\u7684\u5224\u65ad\u4f9d\u636e
 jdbc.timeBetweenEvictionRunsMillis=60000
-#\u4E00\u4E2A\u94FE\u63A5\u751F\u5B58\u7684\u65F6\u95F4\uFF08\u4E4B\u524D\u7684\u503C\uFF1A25200000\uFF0C\u8FD9\u4E2A\u65F6\u95F4\u6709\u70B9BT\uFF0C\u8FD9\u4E2A\u7ED3\u679C\u4E0D\u77E5\u9053\u662F\u600E\u4E48\u6765\u7684\uFF0C\u6362\u7B97\u540E\u7684\u7ED3\u679C\u662F\uFF1A25200000/1000/60/60 = 7\u4E2A\u5C0F\u65F6\uFF09
+#\u4e00\u4e2a\u94fe\u63a5\u751f\u5b58\u7684\u65f6\u95f4\uff08\u4e4b\u524d\u7684\u503c\uff1a25200000\uff0c\u8fd9\u4e2a\u65f6\u95f4\u6709\u70b9BT\uff0c\u8fd9\u4e2a\u7ed3\u679c\u4e0d\u77e5\u9053\u662f\u600e\u4e48\u6765\u7684\uff0c\u6362\u7b97\u540e\u7684\u7ed3\u679c\u662f\uff1a25200000/1000/60/60 = 7\u4e2a\u5c0f\u65f6\uff09
 jdbc.minEvictableIdleTimeMillis=300000
-#\u94FE\u63A5\u4F7F\u7528\u8D85\u8FC7\u65F6\u95F4\u9650\u5236\u662F\u5426\u56DE\u6536
+#\u94fe\u63a5\u4f7f\u7528\u8d85\u8fc7\u65f6\u95f4\u9650\u5236\u662f\u5426\u56de\u6536
 jdbc.removeAbandoned=true
-#\u8D85\u8FC7\u65F6\u95F4\u9650\u5236\u65F6\u95F4\uFF08\u5355\u4F4D\u79D2\uFF09\uFF0C\u76EE\u524D\u4E3A5\u5206\u949F\uFF0C\u5982\u679C\u6709\u4E1A\u52A1\u5904\u7406\u65F6\u95F4\u8D85\u8FC75\u5206\u949F\uFF0C\u53EF\u4EE5\u9002\u5F53\u8C03\u6574\u3002
+#\u8d85\u8fc7\u65f6\u95f4\u9650\u5236\u65f6\u95f4\uff08\u5355\u4f4d\u79d2\uff09\uff0c\u76ee\u524d\u4e3a5\u5206\u949f\uff0c\u5982\u679c\u6709\u4e1a\u52a1\u5904\u7406\u65f6\u95f4\u8d85\u8fc75\u5206\u949f\uff0c\u53ef\u4ee5\u9002\u5f53\u8c03\u6574\u3002
 jdbc.removeAbandonedTimeout=300
-#\u94FE\u63A5\u56DE\u6536\u7684\u65F6\u5019\u63A7\u5236\u53F0\u6253\u5370\u4FE1\u606F\uFF0C\u6D4B\u8BD5\u73AF\u5883\u53EF\u4EE5\u52A0\u4E0Atrue\uFF0C\u7EBF\u4E0A\u73AF\u5883false\u3002\u4F1A\u5F71\u54CD\u6027\u80FD\u3002
+#\u94fe\u63a5\u56de\u6536\u7684\u65f6\u5019\u63a7\u5236\u53f0\u6253\u5370\u4fe1\u606f\uff0c\u6d4b\u8bd5\u73af\u5883\u53ef\u4ee5\u52a0\u4e0atrue\uff0c\u7ebf\u4e0a\u73af\u5883false\u3002\u4f1a\u5f71\u54cd\u6027\u80fd\u3002
 jdbc.logAbandoned=true
-#\u7EDF\u8BA1\u76D1\u63A7
+#\u7edf\u8ba1\u76d1\u63a7
 jdbc.filters=stat
 
 logging.level.com.goafanti=INFO
@@ -69,4 +69,6 @@ template.cacheable=true
 
 mobileCodeTemplate=SMS_37845022
 
-portal.host=//aftts.hnzhiming.com/portal/1.0.0
+portal.host=//aftts.hnzhiming.com/portal/1.0.0
+
+patentTemplate=SMS_72005286