From 5ce785f545e14c8bc3ecf9aa5993de29b2b0faa3 Mon Sep 17 00:00:00 2001
From: paidaxing444 <12qwaszx>
Date: Tue, 27 Jul 2021 11:42:38 +0800
Subject: [PATCH] =?UTF-8?q?=E7=9F=AD=E4=BF=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ruoyi/pom.xml | 18 ++
.../com/ruoyi/common/config/CommonConfig.java | 31 +++
.../ruoyi/common/service/impl/SMSService.java | 204 ++++++++++++++++++
.../java/com/ruoyi/framework/task/RyTask.java | 17 ++
.../system/mapper/ByTeacherJbxxMapper.java | 8 +
.../system/service/IByTeacherJbxxService.java | 8 +
.../impl/ByTeacherJbxxServiceImpl.java | 11 +
ruoyi/src/main/resources/application.yml | 5 +
.../mybatis/system/ByTeacherJbxxMapper.xml | 7 +
9 files changed, 309 insertions(+)
create mode 100644 ruoyi/src/main/java/com/ruoyi/common/config/CommonConfig.java
create mode 100644 ruoyi/src/main/java/com/ruoyi/common/service/impl/SMSService.java
diff --git a/ruoyi/pom.xml b/ruoyi/pom.xml
index 441fcaba2..3c71b5eec 100644
--- a/ruoyi/pom.xml
+++ b/ruoyi/pom.xml
@@ -269,6 +269,24 @@
+
+
+ cn.jpush.api
+ jiguang-common
+ 1.0.8
+
+
+ okhttp
+ com.squareup.okhttp3
+
+
+
+
+ cn.jpush.api
+ jsms-client
+ 1.2.8
+
+
com.google.code.gson
diff --git a/ruoyi/src/main/java/com/ruoyi/common/config/CommonConfig.java b/ruoyi/src/main/java/com/ruoyi/common/config/CommonConfig.java
new file mode 100644
index 000000000..6e4ab5749
--- /dev/null
+++ b/ruoyi/src/main/java/com/ruoyi/common/config/CommonConfig.java
@@ -0,0 +1,31 @@
+package com.ruoyi.common.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class CommonConfig {
+
+ @Value("${sms.appkey}")
+ private String smsAppkey;
+
+ @Value("${sms.secret}")
+ private String smsSecret;
+
+ public String getSmsAppkey() {
+ return smsAppkey;
+ }
+
+ public void setSmsAppkey(String smsAppkey) {
+ this.smsAppkey = smsAppkey;
+ }
+
+ public String getSmsSecret() {
+ return smsSecret;
+ }
+
+ public void setSmsSecret(String smsSecret) {
+ this.smsSecret = smsSecret;
+ }
+}
+
diff --git a/ruoyi/src/main/java/com/ruoyi/common/service/impl/SMSService.java b/ruoyi/src/main/java/com/ruoyi/common/service/impl/SMSService.java
new file mode 100644
index 000000000..3124dc57d
--- /dev/null
+++ b/ruoyi/src/main/java/com/ruoyi/common/service/impl/SMSService.java
@@ -0,0 +1,204 @@
+package com.ruoyi.common.service.impl;
+
+import cn.jiguang.common.resp.APIConnectionException;
+import cn.jiguang.common.resp.APIRequestException;
+import cn.jsms.api.common.SMSClient;
+import cn.jsms.api.common.model.SMSPayload;
+import com.ruoyi.common.config.CommonConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+
+@Service
+public class SMSService {
+
+ Logger logger = LoggerFactory.getLogger (this.getClass ());
+
+ @Resource
+ private CommonConfig commonConfig;
+
+ private SMSClient client;
+
+ private static int registerTempId = 148418; // 注册模板
+ private static int loginTempId = 148417; // 登录模板
+ private static int regSucId = 152215; // 注册成功模板
+ private static int addEmpId = 151527; // 添加员工模板
+ private static int resetEmpPsw = 151221; // 重置员工密码模板
+ private static int applyId = 151637; // 报名验证码模板
+ private static int patriarchLoginId = 152601; // 家长端登录验证码模板
+ private static int publicCodeId = 154801;// 通用的验证码模板
+ private static int birthTeacher = 199895; // 教师生日祝福模板
+ private static int warn = 199897;// 平台剩余日期提醒模板
+
+ // private static int TEMP_TYPE_NOTICE = 2; // 通知类
+ // private static int TEMP_TYPE_AD = 3; // 营销类
+
+ @PostConstruct
+ public void init () {
+ client = new SMSClient (commonConfig.getSmsSecret (), commonConfig.getSmsAppkey ());
+ }
+
+ /**
+ * @param mobile
+ * @Title: sendRegisterSMS
+ * @Description: 发送生日祝福
+ */
+ public void sendBirthTeacherSMS (String mobile) {
+ SMSPayload payload = SMSPayload.newBuilder ().setMobileNumber (mobile).setTempId (birthTeacher)
+ .build ();
+
+ try {
+ client.sendTemplateSMS (payload);
+ } catch (APIRequestException e) {
+ logger.error ("Error response from JPush server. Should review and fix it. ", e);
+
+ } catch (APIConnectionException e) {
+ logger.error ("Connection error. Should retry later. ", e);
+ }
+ }
+
+ /**
+ * @param mobile
+ * @param days
+ * @Title: sendRegisterSMS
+ * @Description: 平台剩余日期提醒
+ */
+ public void sendWarnSMS (String mobile,String days) {
+ SMSPayload payload = SMSPayload.newBuilder ().setMobileNumber (mobile).setTempId (warn)
+ .addTempPara("days",days).build ();
+
+ try {
+ client.sendTemplateSMS (payload);
+ } catch (APIRequestException e) {
+ logger.error ("Error response from JPush server. Should review and fix it. ", e);
+
+ } catch (APIConnectionException e) {
+ logger.error ("Connection error. Should retry later. ", e);
+ }
+ }
+
+ /**
+ * @param mobile
+ * @param code
+ * @Title: sendRegisterSMS
+ * @Description: 发送注册验证码
+ */
+ public void sendRegisterSMS (String mobile, String code) {
+ SMSPayload payload = SMSPayload.newBuilder ().setMobileNumber (mobile).setTempId (registerTempId)
+ .addTempPara ("code", code).build ();
+
+ try {
+ client.sendTemplateSMS (payload);
+ } catch (APIRequestException e) {
+ logger.error ("Error response from JPush server. Should review and fix it. ", e);
+
+ } catch (APIConnectionException e) {
+ logger.error ("Connection error. Should retry later. ", e);
+ }
+ }
+
+ /**
+ * @param mobile
+ * @param code
+ * @Title: sendLoginSMS
+ * @Description: 发送登录验证码
+ */
+ public void sendLoginSMS (String mobile, String code) {
+ SMSPayload payload = SMSPayload.newBuilder ().setMobileNumber (mobile).setTempId (loginTempId)
+ .addTempPara ("code", code).build ();
+ try {
+ client.sendTemplateSMS (payload);
+ } catch (APIRequestException e) {
+ logger.error ("Error response from JPush server. Should review and fix it. ", e);
+
+ } catch (APIConnectionException e) {
+ logger.error ("Connection error. Should retry later. ", e);
+ }
+ }
+
+ /**
+ * @param mobile 接收手机号
+ * @Title: sendRegSucSMS
+ * @Description: 发送注册成功短信
+ */
+ public void sendRegSucSMS (String mobile) {
+ SMSPayload payload = SMSPayload.newBuilder ().setMobileNumber (mobile).setTempId (regSucId).build ();
+ try {
+ client.sendTemplateSMS (payload);
+ } catch (APIRequestException e) {
+ logger.error ("Error response from JPush server. Should review and fix it. ", e);
+
+ } catch (APIConnectionException e) {
+ logger.error ("Connection error. Should retry later. ", e);
+ }
+ }
+
+ /**
+ * @param mobile 接收手机号
+ * @param password 密码
+ * @Title: sendAddEmpSMS
+ * @Description: 发送添加员工成功短信
+ */
+ public void sendAddEmpSMS (String mobile, String password) {
+ SMSPayload payload = SMSPayload.newBuilder ().setMobileNumber (mobile).setTempId (addEmpId)
+ .addTempPara ("userName", mobile)
+ .addTempPara ("password", password)
+ .build ();
+ try {
+ client.sendTemplateSMS (payload);
+ } catch (APIRequestException e) {
+ logger.error ("Error response from JPush server. Should review and fix it. ", e);
+
+ } catch (APIConnectionException e) {
+ logger.error ("Connection error. Should retry later. ", e);
+ }
+ }
+
+ /**
+ * @param mobile
+ * @param password
+ * @Title: sendResetEmpPswSMS
+ * @Description: 重置员工密码短信
+ */
+ public void sendResetEmpPswSMS (String mobile, String password) {
+ SMSPayload payload = SMSPayload.newBuilder ().setMobileNumber (mobile).setTempId (resetEmpPsw)
+ .addTempPara ("password", password)
+ .build ();
+ try {
+ client.sendTemplateSMS (payload);
+ } catch (APIRequestException e) {
+ logger.error ("Error response from JPush server. Should review and fix it. ", e);
+
+ } catch (APIConnectionException e) {
+ logger.error ("Connection error. Should retry later. ", e);
+ }
+ }
+
+ /**
+ * @param mobile
+ * @param code
+ * @Title: sendLoginSMS
+ * @Description: 发送登录验证码
+ */
+ public void sendApplySMS (String mobile, String code) {
+ SMSPayload payload = SMSPayload.newBuilder ().setMobileNumber (mobile).setTempId (applyId)
+ .addTempPara ("code", code).build ();
+ try {
+ client.sendTemplateSMS (payload);
+ } catch (APIRequestException e) {
+ logger.error ("Error response from JPush server. Should review and fix it. ", e);
+
+ } catch (APIConnectionException e) {
+ logger.error ("Connection error. Should retry later. ", e);
+ }
+ }
+
+
+
+ public void setClient (SMSClient client) {
+ this.client = client;
+ }
+}
diff --git a/ruoyi/src/main/java/com/ruoyi/framework/task/RyTask.java b/ruoyi/src/main/java/com/ruoyi/framework/task/RyTask.java
index 2a44a2189..a1da69ecf 100644
--- a/ruoyi/src/main/java/com/ruoyi/framework/task/RyTask.java
+++ b/ruoyi/src/main/java/com/ruoyi/framework/task/RyTask.java
@@ -1,14 +1,17 @@
package com.ruoyi.framework.task;
+import com.ruoyi.common.service.impl.SMSService;
import com.ruoyi.project.benyi.domain.BySchoolNews;
import com.ruoyi.project.benyi.service.IBySchoolNewsService;
import com.ruoyi.project.bysite.domain.ByNews;
import com.ruoyi.project.bysite.service.IByNewsService;
import com.ruoyi.project.common.SchoolCommon;
import com.ruoyi.project.system.domain.BySchool;
+import com.ruoyi.project.system.domain.ByTeacherJbxx;
import com.ruoyi.project.system.domain.SysDept;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.service.IBySchoolService;
+import com.ruoyi.project.system.service.IByTeacherJbxxService;
import com.ruoyi.project.system.service.ISysDeptService;
import com.ruoyi.project.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -38,6 +41,10 @@ public class RyTask {
private IBySchoolNewsService iBySchoolNewsService;
@Autowired
private IByNewsService iByNewsService;
+ @Autowired
+ private IByTeacherJbxxService iByTeacherJbxxService;
+ @Autowired
+ private SMSService smsService;
public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) {
System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
@@ -110,6 +117,16 @@ public class RyTask {
iBySchoolNewsService.updateBySchoolNews(newBySchoolNews);
}
}
+ } else if (params.equals("birthteacher")) {
+ System.out.println("birthteacher");
+ List list = iByTeacherJbxxService.selectByTeacherBrithList(null);
+ if (list != null && list.size() > 0) {
+ for (int i = 0; i < list.size(); i++) {
+ String phone = list.get(i).getUser().getUserName();
+ smsService.sendBirthTeacherSMS(phone);
+ }
+ }
+
}
System.out.println("执行有参方法:" + params);
}
diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/mapper/ByTeacherJbxxMapper.java b/ruoyi/src/main/java/com/ruoyi/project/system/mapper/ByTeacherJbxxMapper.java
index 7e86fe7b9..d67ab192f 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/system/mapper/ByTeacherJbxxMapper.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/system/mapper/ByTeacherJbxxMapper.java
@@ -27,6 +27,14 @@ public interface ByTeacherJbxxMapper
*/
public List selectByTeacherJbxxList(ByTeacherJbxx byTeacherJbxx);
+ /**
+ * 查询教师基本信息列表
+ *
+ * @param byTeacherJbxx 教师基本信息
+ * @return 教师基本信息集合
+ */
+ public List selectByTeacherBrithList(ByTeacherJbxx byTeacherJbxx);
+
/**
* 查询教师基本信息列表
*
diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/service/IByTeacherJbxxService.java b/ruoyi/src/main/java/com/ruoyi/project/system/service/IByTeacherJbxxService.java
index 81a77e9af..ae9844990 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/system/service/IByTeacherJbxxService.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/system/service/IByTeacherJbxxService.java
@@ -27,6 +27,14 @@ public interface IByTeacherJbxxService
*/
public List selectByTeacherJbxxList(ByTeacherJbxx byTeacherJbxx);
+ /**
+ * 查询教师基本信息列表
+ *
+ * @param byTeacherJbxx 教师基本信息
+ * @return 教师基本信息集合
+ */
+ public List selectByTeacherBrithList(ByTeacherJbxx byTeacherJbxx);
+
/**
* 查询教师基本信息列表
*
diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/ByTeacherJbxxServiceImpl.java b/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/ByTeacherJbxxServiceImpl.java
index 4b397e1a0..cefb515f9 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/ByTeacherJbxxServiceImpl.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/ByTeacherJbxxServiceImpl.java
@@ -43,6 +43,17 @@ public class ByTeacherJbxxServiceImpl implements IByTeacherJbxxService {
return byTeacherJbxxMapper.selectByTeacherJbxxList(byTeacherJbxx);
}
+ /**
+ * 查询教师基本信息列表
+ *
+ * @param byTeacherJbxx 教师基本信息
+ * @return 教师基本信息集合
+ */
+ @Override
+ public List selectByTeacherBrithList(ByTeacherJbxx byTeacherJbxx) {
+ return byTeacherJbxxMapper.selectByTeacherBrithList(byTeacherJbxx);
+ }
+
/**
* 查询教师基本信息列表
*
diff --git a/ruoyi/src/main/resources/application.yml b/ruoyi/src/main/resources/application.yml
index a2850884a..9bf39cb5c 100644
--- a/ruoyi/src/main/resources/application.yml
+++ b/ruoyi/src/main/resources/application.yml
@@ -135,3 +135,8 @@ wx:
appid: wx0370c4756118456a
secret: f57143e81f3c95b0d909d91b3116cc82
domain: https://api.weixin.qq.com/sns/oauth2/access_token
+
+#jiguang
+sms:
+ appkey: 438b95319ada13c8c6ffacfe
+ secret: c77c8aded1dd8c2fb083ebd3
diff --git a/ruoyi/src/main/resources/mybatis/system/ByTeacherJbxxMapper.xml b/ruoyi/src/main/resources/mybatis/system/ByTeacherJbxxMapper.xml
index 41e279084..ef5a85013 100644
--- a/ruoyi/src/main/resources/mybatis/system/ByTeacherJbxxMapper.xml
+++ b/ruoyi/src/main/resources/mybatis/system/ByTeacherJbxxMapper.xml
@@ -70,6 +70,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
${dataScope}
+
+
+