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} + + +