feat(sms):平台短信功能

yun-zuoyi
汪云昊 4 years ago
parent cb0460cf7b
commit 7222a53840

@ -58,4 +58,7 @@ public interface ISystemInitService {
@ApiOperation(value = "定时任务日志等级")
void reloadBarcodeRule();
@ApiOperation(value = "重启短信状态同步线程")
void createSmsSyncThread();
}

@ -5,7 +5,6 @@ import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.platform.bean.SysConfig;
import io.swagger.annotations.ApiOperation;
import java.util.Date;
import java.util.List;
/**
@ -92,6 +91,6 @@ public interface ISysConfigService {
* @return
*/
@ApiOperation(value = "根据系统参数组来查找系统参数")
List findSysConfigByGroup(Integer group);
List<SysConfig> findSysConfigByGroup(Integer group);
}

@ -0,0 +1,17 @@
package cn.estsh.i3plus.core.api.iservice.busi;
import cn.estsh.i3plus.pojo.platform.bean.SysSmsSendRecord;
import cn.estsh.impp.framework.base.service.ICrudService;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2020-12-14 20:14
* @Modify:
**/
public interface ISysSmsSendRecordService extends ICrudService<SysSmsSendRecord> {
}

@ -0,0 +1,31 @@
package cn.estsh.i3plus.core.api.iservice.busi;
import cn.estsh.i3plus.pojo.platform.bean.SysSmsSign;
import cn.estsh.impp.framework.base.service.ICrudService;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2020-12-14 20:13
* @Modify:
**/
public interface ISysSmsSignService extends ICrudService<SysSmsSign> {
/**
*
*
* @param sysSmsSign
* @return
*/
boolean checkSysSignOnly(SysSmsSign sysSmsSign);
/**
*
*
* @param code
* @return
*/
SysSmsSign getSysSmsSignByCode(String code);
}

@ -0,0 +1,31 @@
package cn.estsh.i3plus.core.api.iservice.busi;
import cn.estsh.i3plus.pojo.platform.bean.SysSmsTemplate;
import cn.estsh.impp.framework.base.service.ICrudService;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2020-12-14 20:14
* @Modify:
**/
public interface ISysSmsTemplateService extends ICrudService<SysSmsTemplate> {
/**
*
*
* @param smsTemplate
* @return
*/
boolean checkSysSmsTemplateOnly(SysSmsTemplate smsTemplate);
/**
* code
*
* @param code
* @return
*/
SysSmsTemplate getSysSmsTemplateByCode(String code);
}

@ -87,6 +87,11 @@
<artifactId>i3plus-sdk-wechat</artifactId>
</dependency>
<dependency>
<groupId>i3plus.sdk</groupId>
<artifactId>i3plus-sdk-sms</artifactId>
</dependency>
<!-- impp framework -->
<dependency>
<groupId>impp.framework</groupId>

@ -13,6 +13,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.MailConfig;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.i3plus.sdk.sms.base.pojo.SmsConfig;
import cn.estsh.i3plus.pojo.platform.bean.SysConfig;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
@ -29,6 +30,8 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
import static cn.estsh.i3plus.platform.common.util.CommonConstWords.*;
/**
* @Description :
* @Reference :
@ -38,7 +41,7 @@ import java.util.List;
**/
@RestController
@Api(tags = "系统参数管理服务")
@RequestMapping(PlatformConstWords.BASE_URL +"/sys-config")
@RequestMapping(PlatformConstWords.BASE_URL + "/sys-config")
public class SysConfigController extends CoreBaseController {
public static final Logger LOGGER = LoggerFactory.getLogger(SysConfigController.class);
@ -53,11 +56,12 @@ public class SysConfigController extends CoreBaseController {
/**
*
*
* @param sysConfig
* @return
*/
@PostMapping("/insert")
@ApiOperation(value = "添加系统参数",notes = "添加系统参数")
@ApiOperation(value = "添加系统参数", notes = "添加系统参数")
public ResultBean insertSysConfig(SysConfig sysConfig) {
try {
// 登录用户
@ -65,26 +69,27 @@ public class SysConfigController extends CoreBaseController {
// 条件验证
ValidatorBean.beginValid(sysConfig)
.notNull("name",sysConfig.getName())
.notNull("configCode",sysConfig.getConfigCode())
.notNull("configType",sysConfig.getConfigType())
.notNull("configValue",sysConfig.getConfigValue());
.notNull("name", sysConfig.getName())
.notNull("configCode", sysConfig.getConfigCode())
.notNull("configType", sysConfig.getConfigType())
.notNull("configValue", sysConfig.getConfigValue());
//修改初始化
ConvertBean.modelInitialize(sysConfig,user);
ConvertBean.modelInitialize(sysConfig, user);
sysConfigService.insertSysConfig(sysConfig);
systemInitService.putAndLoadSysConfig();
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
}catch(Exception e){
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
* id
*
* @param idStr id
* @return
*/
@ -95,8 +100,8 @@ public class SysConfigController extends CoreBaseController {
startMultiService();
// 条件验证
ValidatorBean.checkNotNull(idStr,"id不能为空");
if(sysConfigService.getSysConfigById(Long.parseLong(idStr)) == null){
ValidatorBean.checkNotNull(idStr, "id不能为空");
if (sysConfigService.getSysConfigById(Long.parseLong(idStr)) == null) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
@ -108,41 +113,42 @@ public class SysConfigController extends CoreBaseController {
sysConfigService.deleteSysConfigById(Long.parseLong(idStr));
systemInitService.putAndLoadSysConfig();
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
}catch(Exception e){
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
*
*
* @param sysConfig
* @return
*/
@PutMapping(value = "/update")
@ApiOperation(value = "修改系统参数",notes = "修改系统参数")
public ResultBean updateSysConfig(SysConfig sysConfig){
@ApiOperation(value = "修改系统参数", notes = "修改系统参数")
public ResultBean updateSysConfig(SysConfig sysConfig) {
try {
// 登录用户
SessionUser user = AuthUtil.getSessionUser();
// 条件验证
ValidatorBean.beginValid(sysConfig)
.notNull("name",sysConfig.getName())
.notNull("configCode",sysConfig.getConfigCode())
.notNull("configType",sysConfig.getConfigType())
.notNull("configValue",sysConfig.getConfigValue());
.notNull("name", sysConfig.getName())
.notNull("configCode", sysConfig.getConfigCode())
.notNull("configType", sysConfig.getConfigType())
.notNull("configValue", sysConfig.getConfigValue());
//添加初始化
ConvertBean.modelUpdate(sysConfig,user);
ConvertBean.modelUpdate(sysConfig, user);
sysConfigService.updateSysConfig(sysConfig);
systemInitService.putAndLoadSysConfig();
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
}catch(Exception e){
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@ -150,139 +156,144 @@ public class SysConfigController extends CoreBaseController {
/**
*
*
* @param bean
* @return
*/
@PutMapping(value = "/update-value")
@ApiOperation(value = "修改系统参数内容",notes = "修改系统参数内容")
public ResultBean updateSysConfigValue(SysConfig bean){
@ApiOperation(value = "修改系统参数内容", notes = "修改系统参数内容")
public ResultBean updateSysConfigValue(SysConfig bean) {
try {
// 条件验证
ValidatorBean.beginValid(bean)
.notNull("configCode",bean.getConfigCode());
.notNull("configCode", bean.getConfigCode());
SysConfig config = sysConfigService.getSysConfigByCode(bean.getConfigCode());
ValidatorBean.checkNotNull(config,"不存在的配置信息");
ValidatorBean.checkNotNull(config, "不存在的配置信息");
config.setConfigValue(bean.getConfigValue());
ConvertBean.modelUpdate(config,getSessionUser());
ConvertBean.modelUpdate(config, getSessionUser());
sysConfigService.updateSysConfig(config);
systemInitService.putAndLoadSysConfig();
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
}catch(Exception e){
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
*
*
* @return
*/
@GetMapping(value = "/list")
@ApiOperation(value = "查询全部系统参数",notes = "查询全部系统参数")
public ResultBean findSysConfigAll(){
@ApiOperation(value = "查询全部系统参数", notes = "查询全部系统参数")
public ResultBean findSysConfigAll() {
try {
List<SysConfig> sysConfigList = sysConfigService.ListSysConfig();
return ResultBean.success("操作成功")
.setResultList(sysConfigList)
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
}catch(Exception e){
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
* id
*
* @param id id
* @return
*/
@GetMapping(value = "/get/{id}")
@ApiOperation(value = "根据id查询系统参数",notes = "根据id查询系统参数")
public ResultBean getSysConfigById(@PathVariable("id") String id){
@ApiOperation(value = "根据id查询系统参数", notes = "根据id查询系统参数")
public ResultBean getSysConfigById(@PathVariable("id") String id) {
try {
ValidatorBean.checkNotNull(id,"id不能为空");
ValidatorBean.checkNotNull(id, "id不能为空");
SysConfig sysConfig = sysConfigService.getSysConfigById(Long.parseLong(id));
if (sysConfig != null) {
return ResultBean.success("操作成功")
.setResultObject(sysConfig).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}else {
} else {
return ResultBean.fail("数据不存在").setCode(ResourceEnumUtil.MESSAGE.EMPTY.getCode());
}
}catch(ImppBusiException busExcep){
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
}catch(Exception e){
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
*
*
* @param sysConfig
* @param pager
* @return
*/
@GetMapping("/query")
@ApiOperation(value = "系统参数复杂查询,分页,排序",notes = "系统参数复杂查询,分页,排序")
public ResultBean querySysConfigByPager(SysConfig sysConfig,Pager pager) {
@ApiOperation(value = "系统参数复杂查询,分页,排序", notes = "系统参数复杂查询,分页,排序")
public ResultBean querySysConfigByPager(SysConfig sysConfig, Pager pager) {
try {
ListPager sysConfigListPager = sysConfigService.querySysConfigByPager(sysConfig,pager);
ListPager sysConfigListPager = sysConfigService.querySysConfigByPager(sysConfig, pager);
return ResultBean.success("操作成功").setListPager(sysConfigListPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
}catch(Exception e){
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
*
*
* @param code
* @return
*/
@GetMapping(value = "/get-code/{code}")
@ApiOperation(value = "根据代码获取系统配置")
public ResultBean getSysConfigByCode(@PathVariable("code") String code){
public ResultBean getSysConfigByCode(@PathVariable("code") String code) {
try {
ValidatorBean.checkNotNull(code,"配置项代码不能为空");
ValidatorBean.checkNotNull(code, "配置项代码不能为空");
SysConfig sysConfig = sysConfigService.getSysConfigByCode(code);
if(sysConfig == null){
if (sysConfig == null) {
return ResultBean.fail("数据不存在").setCode(ResourceEnumUtil.MESSAGE.EMPTY.getCode());
} else{
} else {
return ResultBean.success("操作成功").setResultObject(sysConfig).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
}catch(ImppBusiException busExcep){
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
}catch(Exception e){
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
*
*
* @return
*/
@GetMapping("/find-mail")
@ApiOperation(value = "查询邮件配置")
public ResultBean findMailSysConfig(){
public ResultBean findMailSysConfig() {
try {
List sysConfig = sysConfigService.findMailConfig();
if(sysConfig == null){
if (sysConfig == null) {
return ResultBean.fail("数据不存在").setCode(ResourceEnumUtil.MESSAGE.EMPTY.getCode());
} else{
} else {
return ResultBean.success("操作成功").setResultList(sysConfig).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
}catch(ImppBusiException busExcep){
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
}catch(Exception e){
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@ -291,6 +302,7 @@ public class SysConfigController extends CoreBaseController {
*
* wei.peng :
* 使 SysConfigController.updateSysConfigValue()
*
* @param code
* @param value
* @return
@ -298,41 +310,42 @@ public class SysConfigController extends CoreBaseController {
@Deprecated
@PostMapping("/update-code/{code}/{value}")
@ApiOperation(value = "根据code修改系统配置")
public ResultBean updateSysConfigByCode(@PathVariable("code") String code,@PathVariable("value") String value){
try{
ValidatorBean.checkNotNull(code,"配置项代码不能为空");
ValidatorBean.checkNotNull(value,"值不能为空");
public ResultBean updateSysConfigByCode(@PathVariable("code") String code, @PathVariable("value") String value) {
try {
ValidatorBean.checkNotNull(code, "配置项代码不能为空");
ValidatorBean.checkNotNull(value, "值不能为空");
sysConfigService.updateSysConfigByCode(code,value);
sysConfigService.updateSysConfigByCode(code, value);
systemInitService.putAndLoadSysConfig();
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
}catch(Exception e){
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
*
*
* @param mailConfig
* @return
*/
@GetMapping("/send-test-mail")
@ApiOperation(value = "邮件测试")
public ResultBean sendTestMail(MailConfig mailConfig){
public ResultBean sendTestMail(MailConfig mailConfig) {
try {
ValidatorBean.beginValid(mailConfig)
.notNull("mailSwitch",mailConfig.getMailSwitch())
.notNull("mailHost",mailConfig.getMailHost())
.notNull("mailPort",mailConfig.getMailPort())
.notNull("mailUser",mailConfig.getMailUser())
.notNull("mailPassword",mailConfig.getMailPassword())
.notNull("mailNick",mailConfig.getMailNick())
.notNull("testTo",mailConfig.getTestTo());
.notNull("mailSwitch", mailConfig.getMailSwitch())
.notNull("mailHost", mailConfig.getMailHost())
.notNull("mailPort", mailConfig.getMailPort())
.notNull("mailUser", mailConfig.getMailUser())
.notNull("mailPassword", mailConfig.getMailPassword())
.notNull("mailNick", mailConfig.getMailNick())
.notNull("testTo", mailConfig.getTestTo());
// 是否开启邮件服务器
if(mailConfig.getMailSwitch() != CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()){
if (mailConfig.getMailSwitch() != CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.MAIL_SERVER_NOT_OPEN_ERROR.getCode())
@ -349,29 +362,108 @@ public class SysConfigController extends CoreBaseController {
mailUtil.send();
return ResultBean.success("测试邮件已发送").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch(ImppBusiException busExcep){
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
}catch(Exception e){
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
*
*
* @param group
* @return
*/
@GetMapping("/find-group/{group}")
@ApiOperation(value = "根据参数组查询系统参数")
public ResultBean findSysConfigByGroup(@PathVariable("group") Integer group){
public ResultBean findSysConfigByGroup(@PathVariable("group") Integer group) {
try {
ValidatorBean.checkNotNull(group,"参数组不能为空");
ValidatorBean.checkNotNull(group, "参数组不能为空");
List<SysConfig> sysConfigList = sysConfigService.findSysConfigByGroup(group);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(sysConfigList);
}catch(ImppBusiException busExcep){
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
*
**/
@GetMapping("/find-sms")
@ApiOperation(value = "查询短信配置")
public ResultBean<SmsConfig> findSmsConfig() {
try {
SmsConfig smsConfig = new SmsConfig();
smsConfig.setSmsSwitch(getConfigIntValByCode(CONFIG_SMS_SWITCH));
smsConfig.setSmsSupplier(getConfigIntValByCode(CONFIG_SMS_SUPPLIER));
smsConfig.setSmsAccessKeyId(getConfigStrValByCode(CONFIG_SMS_ACCESS_KEY_ID));
smsConfig.setSmsSecret(getConfigStrValByCode(CONFIG_SMS_SECRET));
smsConfig.setSmsEndpoint(getConfigStrValByCode(CONFIG_SMS_ENDPOINT));
smsConfig.setSmsRegionId(getConfigStrValByCode(CONFIG_SMS_REGION_ID));
return ResultBean.success("操作成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultObject(smsConfig);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
*
**/
@GetMapping("/save-sms")
@ApiOperation(value = "查询短信配置")
public ResultBean saveSmsConfig(@RequestBody SmsConfig smsConfig) {
try {
ValidatorBean.beginValid(smsConfig)
.notNull("smsSwitch", smsConfig.getSmsSwitch())
.notNull("smsSupplier", smsConfig.getSmsSupplier())
.notNull("smsAccessKeyId", smsConfig.getSmsAccessKeyId())
.notNull("smsSecret", smsConfig.getSmsSecret())
.notNull("smsEndpoint", smsConfig.getSmsEndpoint())
.notNull("smsRegionId", smsConfig.getSmsRegionId());
sysConfigService.updateSysConfigByCode(CONFIG_SMS_SWITCH, smsConfig.getSmsSwitch().toString());
sysConfigService.updateSysConfigByCode(CONFIG_SMS_SUPPLIER, smsConfig.getSmsSupplier().toString());
sysConfigService.updateSysConfigByCode(CONFIG_SMS_ACCESS_KEY_ID, smsConfig.getSmsAccessKeyId());
sysConfigService.updateSysConfigByCode(CONFIG_SMS_SECRET, smsConfig.getSmsSecret());
sysConfigService.updateSysConfigByCode(CONFIG_SMS_ENDPOINT, smsConfig.getSmsEndpoint());
sysConfigService.updateSysConfigByCode(CONFIG_SMS_REGION_ID, smsConfig.getSmsRegionId());
systemInitService.putAndLoadSysConfig();
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
}catch(Exception e){
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
*
*
* @param code
* @return
*/
public String getConfigStrValByCode(String code) {
SysConfig sysConfig = sysConfigService.getSysConfigByCode(code);
return sysConfig != null ? sysConfig.getConfigValue() : null;
}
/**
*
*
* @param code
* @return
*/
public int getConfigIntValByCode(String code) {
SysConfig sysConfig = sysConfigService.getSysConfigByCode(code);
return sysConfig != null ? Integer.parseInt(sysConfig.getConfigValue()) : -1;
}
}

@ -392,4 +392,52 @@ public class SysEnumController extends CoreBaseController {
return new ResultBean(true, "操作成功",
LocaleUtils.getEnumLocaleResValuesToList(CommonEnumUtil.USER_LOGIN_STATUS.values()));
}
/**
*
*
* @return
*/
@GetMapping("/sms-supplier")
@ApiOperation(value = "用户登录状态", notes = "用户登录状态")
public ResultBean getSmsSupplier() {
return new ResultBean(true, "操作成功",
LocaleUtils.getEnumLocaleResValuesToList(ImppEnumUtil.SMS_SUPPLIER.values()));
}
/**
*
*
* @return
*/
@GetMapping("/sms-template-status")
@ApiOperation(value = "用户登录状态", notes = "用户登录状态")
public ResultBean getSmsTemplateStatus() {
return new ResultBean(true, "操作成功",
LocaleUtils.getEnumLocaleResValuesToList(ImppEnumUtil.SMS_TEMPLATE_STATUS.values()));
}
/**
*
*
* @return
*/
@GetMapping("/sms-template-type")
@ApiOperation(value = "用户登录状态", notes = "用户登录状态")
public ResultBean getSmsTemplateType() {
return new ResultBean(true, "操作成功",
LocaleUtils.getEnumLocaleResValuesToList(ImppEnumUtil.SMS_TEMPLATE_TYPE.values()));
}
/**
*
*
* @return
*/
@GetMapping("/sms-send-status")
@ApiOperation(value = "用户登录状态", notes = "用户登录状态")
public ResultBean getSmsSendStatus() {
return new ResultBean(true, "操作成功",
LocaleUtils.getEnumLocaleResValuesToList(ImppEnumUtil.SMS_SEND_STATUS.values()));
}
}

@ -415,7 +415,7 @@ public class SysLocaleResourceController extends CoreBaseController {
public ResultBean incrementImportSysLocaleResource(@RequestParam("file") MultipartFile file){
try {
// 重新加载资源
systemInitService.putAndLoadSysLocaleLanguage();
// systemInitService.putAndLoadSysLocaleLanguage();
Long startTime = System.currentTimeMillis();
// 提取Excel数据
@ -427,15 +427,27 @@ public class SysLocaleResourceController extends CoreBaseController {
long excelToolExecuteTime = System.currentTimeMillis();
LOGGER.info("增量导入 数据量 {}, ExcelTool耗时 {}", sysLocaleResourceList.size(), excelToolExecuteTime - startTime);
// 数据去重并初始化
// 初始化数据,资源去重
Map<String, SysLocaleResource> itemMap = new HashMap<>();
String resourceKey;
String userName = AuthUtil.getSessionUser().getUserName();
List<SysLocaleResource> tempList;
SysLocaleResource temp;
for (SysLocaleResource localeResource : sysLocaleResourceList) {
tempList = sysLocaleResourceService.findSysLocaleResourceByResKey(localeResource.getResourceKey());
if (!tempList.isEmpty()) {
temp = tempList.get(0);
localeResource.setResourceType(temp.getResourceType());
localeResource.setSoftType(temp.getSoftType());
}
if (localeResource.getResourceType() == null
&& localeResource.getResourceKey().indexOf(CommonConstWords.RESOURCE_PREFIX_MENU) == 0) {
localeResource.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.MENU.getValue());
}
// 系统功能key添加指定前缀避免与其他资源重复
if (localeResource.getResourceType().equals(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.MENU.getValue())
if (localeResource.getResourceType() != null
&& localeResource.getResourceType().equals(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.MENU.getValue())
&& localeResource.getResourceKey().indexOf(CommonConstWords.RESOURCE_PREFIX_MENU) != 0) {
localeResource.setResourceKey(CommonConstWords.RESOURCE_PREFIX_MENU+localeResource.getResourceKey());
}
@ -457,15 +469,12 @@ public class SysLocaleResourceController extends CoreBaseController {
// 分批导入
int size = 1000;
for (List<SysLocaleResource> resourceList : ListUtils.partition(importDataList, size)) {
new Thread(){
@Override
public void run() {
super.run();
long startTime = System.currentTimeMillis();
new Thread(() -> {
long startTime1 = System.currentTimeMillis();
sysLocaleResourceService.saveSysLocaleResource(resourceList);
LOGGER.info("增量导入完毕, 导入耗时{}",System.currentTimeMillis() - startTime);
}
}.start();
LOGGER.info("{}增量导入完毕, 导入耗时{}", Thread.currentThread().getName(),
System.currentTimeMillis() - startTime1);
}).start();
}
return ResultBean.success("数据导入中...").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());

@ -0,0 +1,228 @@
package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysSmsSendRecordService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysSmsSignService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysSmsTemplateService;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.JsonUtilTool;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.model.common.ImppSmsContent;
import cn.estsh.i3plus.pojo.platform.bean.SysSmsSendRecord;
import cn.estsh.i3plus.pojo.platform.bean.SysSmsSign;
import cn.estsh.i3plus.pojo.platform.bean.SysSmsTemplate;
import cn.estsh.i3plus.sdk.sms.base.SmsUtilFactory;
import cn.estsh.i3plus.sdk.sms.base.pojo.SmsContent;
import cn.estsh.i3plus.sdk.sms.base.pojo.SmsResult;
import cn.estsh.impp.framework.base.controller.CrudBaseController;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import cn.estsh.impp.framework.boot.util.RedisCacheTool;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import static cn.estsh.i3plus.platform.common.util.CommonConstWords.CONFIG_SMS_SWITCH;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2020-12-14 20:25
* @Modify:
**/
@RestController
@Api(tags = "短信发送记录")
@RequestMapping(PlatformConstWords.BASE_URL + "/sys-sms-send-record")
public class SysSmsSendRecordController extends CrudBaseController<SysSmsSendRecord> {
private static final Logger LOGGER = LoggerFactory.getLogger(SysSmsSendRecordController.class);
@Autowired
private ISysSmsSignService sysSmsSignService;
@Autowired
private ISysSmsSendRecordService sysSmsSendRecordService;
@Autowired
private ISysSmsTemplateService sysSmsTemplateService;
@Resource(name = CommonConstWords.IMPP_REDIS_RES)
private ImppRedis resRedis;
@PostMapping("/send")
@ApiOperation("发送短信")
public ResultBean send(@RequestBody ImppSmsContent imppSmsContent) {
try {
if (!RedisCacheTool.getSysConfigBooleanVal(CONFIG_SMS_SWITCH)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION.getCode())
.setErrorDetail("短信开关未启用")
.setErrorSolution("在系统配置中启用短信通知")
.build();
}
ValidatorBean.beginValid(imppSmsContent)
.notNull("receivePhoneNumber",imppSmsContent.getReceivePhoneNumber())
.notNull("smsSignCode",imppSmsContent.getSmsSignCode())
.notNull("templateCode",imppSmsContent.getTemplateCode());
SysSmsSign sysSmsSign = sysSmsSignService.getSysSmsSignByCode(imppSmsContent.getSmsSignCode());
ValidatorBean.checkNotNull(sysSmsSign, "短信签名不存在!");
SysSmsTemplate smsTemplate = sysSmsTemplateService.getSysSmsTemplateByCode(imppSmsContent.getTemplateCode());
ValidatorBean.checkNotNull(smsTemplate, "短信模板不存在!");
// 发送短信内容
SmsContent smsContent = new SmsContent();
smsContent.setSmsPhoneNumber(imppSmsContent.getReceivePhoneNumber());
smsContent.setSmsTemplateCode(smsTemplate.getSupplierTemplateCode());
smsContent.setSmsSignName(sysSmsSign.getSignName());
smsContent.setSmsParam(imppSmsContent.getParamMap());
SmsResult<SmsContent> smsResult = SmsUtilFactory.getSmsUtil().sendSms(smsContent);
// 持久化发送记录
SysSmsSendRecord sysSmsSendRecord = new SysSmsSendRecord();
sysSmsSendRecord.setReceivePhoneNumber(imppSmsContent.getReceivePhoneNumber());
sysSmsSendRecord.setTemplateCode(smsTemplate.getTemplateCode());
sysSmsSendRecord.setSmsSignCode(sysSmsSign.getSignCode());
sysSmsSendRecord.setSmsSign(sysSmsSign.getSignName());
sysSmsSendRecord.setSmsParam(JsonUtilTool.encode(imppSmsContent.getParamMap()));
sysSmsSendRecord.setSmsSendStatus(ImppEnumUtil.SMS_SEND_STATUS.WAIT_RECEIPT.getValue());
sysSmsSendRecord.setSendDateTime(TimeTool.getNowTime(true));
sysSmsSendRecord.setBizId(smsResult.getResultData().getBizId());
sysSmsSendRecordService.insert(sysSmsSendRecord);
if (!smsResult.isSuccess()) {
sysSmsSendRecord.setSendErrMsg(smsResult.getErrMsg());
sysSmsSendRecord.setSmsSendStatus(ImppEnumUtil.SMS_SEND_STATUS.WAIT_RECEIPT.getValue());
sysSmsSendRecordService.update(sysSmsSendRecord);
return ResultBean.fail().setErrorMsg(smsResult.getMsg()).setResultObject(smsResult);
}
// 推送redis延时队列处理持久化发送记录
resRedis.pushDelayQueue("SMS_STATUS_SYNC", JsonUtilTool.encode(sysSmsSendRecord),10L);
return ResultBean.success().setResultObject(smsResult);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
*
*/
public static class SyncSmsInfo implements Runnable {
private ISysSmsSendRecordService sysSmsSendRecordService;
private ImppRedis redisRes;
public SyncSmsInfo() {
}
public SyncSmsInfo(ISysSmsSendRecordService sysSmsSendRecordService, ImppRedis redisRes) {
this.sysSmsSendRecordService = sysSmsSendRecordService;
this.redisRes = redisRes;
}
@Override
public void run() {
while (true) {
try {
Set<Object> dataSet =
redisRes.pullAndRemoveDelayQueueData("SMS_STATUS_SYNC", System.currentTimeMillis());
if (dataSet.isEmpty()) {
TimeUnit.MINUTES.sleep(3);
continue;
}
LOGGER.info("【SMS】 短信同步触发");
for (Object obj : dataSet) {
boolean isRetry = true;
SysSmsSendRecord smsSendRecord = null;
try {
smsSendRecord = JsonUtilTool.decode(String.valueOf(obj), SysSmsSendRecord.class);
SmsContent smsContent = new SmsContent();
smsContent.setSmsPhoneNumber(smsSendRecord.getReceivePhoneNumber());
smsContent.setSendDate(smsSendRecord.getSendDateTime());
smsContent.setBizId(smsSendRecord.getBizId());
// 查询并同步供应商的状态信息
SmsResult<SmsContent> smsResult =
SmsUtilFactory.getSmsUtil().getSendSmsDetailByCondition(smsContent);
smsSendRecord.setSendErrMsg(smsResult.getErrMsg());
if (smsResult.isSuccess() && smsResult.getResultData() != null) {
smsContent = smsResult.getResultData();
smsSendRecord.setSmsSendStatus(smsContent.getSmsStatus());
smsSendRecord.setReceiveDateTime(smsContent.getReceiveDate());
smsSendRecord.setSmsContent(smsContent.getSmsContent());
}
if (smsSendRecord.getSmsSendStatus() != ImppEnumUtil.SMS_SEND_STATUS.WAIT_RECEIPT.getValue()) {
isRetry = false;
}
} catch (Exception e) {
LOGGER.error("【SMS】 短信状态同步异常", e);
if (smsSendRecord != null) {
smsSendRecord.setSendErrMsg(ExceptionUtils.getStackTrace(e));
}
}
if (smsSendRecord != null) {
sysSmsSendRecordService.update(smsSendRecord);
}
if (isRetry) {
redisRes.pushDelayQueue("SMS_STATUS_SYNC", JsonUtilTool.encode(smsSendRecord), 30L);
}
}
} catch (Exception e) {
LOGGER.error("【SMS】 短信状态同步异常", e);
} finally {
try {
TimeUnit.SECONDS.sleep(5);
} catch (InterruptedException ignored) {
}
}
}
}
}
public static void main(String[] args) {
Map<String ,Object> paramMap = new HashMap<>();
paramMap.put("center","莘松线");
paramMap.put("cell","OP-01");
paramMap.put("name","张三");
paramMap.put("acName","一级异常");
ImppSmsContent smsContent = new ImppSmsContent();
smsContent.setSmsSignCode("ESTSH");
smsContent.setTemplateCode("TEST");
smsContent.setReceivePhoneNumber("18917078316");
smsContent.setParamMap(paramMap);
System.out.println(JsonUtilTool.encode(smsContent));
}
}

@ -0,0 +1,36 @@
package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.platform.bean.SysSmsSign;
import cn.estsh.impp.framework.base.controller.CrudBaseController;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2020-12-13 16:08
* @Modify:
**/
@RestController
@Api(tags = "短信签名")
@RequestMapping(PlatformConstWords.BASE_URL + "/sys-sms-sign")
public class SysSmsSignController extends CrudBaseController<SysSmsSign> {
/**
*
*
* @param bean
* @return
*/
@Override
public SysSmsSign validatorInsertBean(SysSmsSign bean) throws Exception {
ValidatorBean.beginValid(bean)
.notNull("signCode", bean.getSignCode())
.notNull("signName", bean.getSignName());
return bean;
}
}

@ -0,0 +1,239 @@
package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysSmsTemplateService;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysSmsTemplate;
import cn.estsh.i3plus.sdk.sms.base.SmsUtilFactory;
import cn.estsh.i3plus.sdk.sms.base.pojo.SmsResult;
import cn.estsh.impp.framework.base.controller.BaseController;
import cn.estsh.impp.framework.base.controller.CrudBaseController;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2020-12-14 20:21
* @Modify:
**/
@RestController
@Api(tags = "短信模板")
@RequestMapping(PlatformConstWords.BASE_URL + "/sys-sms-template")
public class SysSmsTemplateController extends CrudBaseController<SysSmsTemplate> {
private static final Logger LOGGER = LoggerFactory.getLogger(BaseController.class);
@Autowired
private ISysSmsTemplateService sysSmsTemplateService;
/**
*
*
* @param bean
* @return
*/
@Override
public ResultBean insert(SysSmsTemplate bean) {
try {
ValidatorBean.beginValid(bean)
.notNull("templateCode", bean.getTemplateCode())
.notNull("templateType", bean.getTemplateType())
.notNull("templateName", bean.getTemplateName())
.notNull("templateContent", bean.getTemplateContent());
bean.setTemplateStatus(ImppEnumUtil.SMS_TEMPLATE_STATUS.NOTICE_SMS.getValue());
// 唯一校验
if (!sysSmsTemplateService.checkSysSmsTemplateOnly(bean)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION.getCode())
.setErrorDetail("模板代码已存在")
.setErrorSolution("请重新操作")
.build();
}
bean = getCrudService().insert(bean);
SmsResult<SysSmsTemplate> smsResult = SmsUtilFactory.getSmsTemplateUtil().insertSmsTemplate(bean);
if (!smsResult.isSuccess()) {
LOGGER.error("【SMS】 短信模板保存失败!{}", smsResult);
return ResultBean.fail(smsResult.getErrMsg()).setResultObject(smsResult);
} else {
getCrudService().update(bean);
}
return ResultBean.success("操作成功")
.setResultObject(bean)
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
*
*
* @param bean
* @return
*/
@Override
public ResultBean update(SysSmsTemplate bean) {
try {
ValidatorBean.beginValid(bean)
.notNull("id", bean.getId())
.notNull("templateCode", bean.getTemplateCode())
.notNull("templateType", bean.getTemplateType())
.notNull("templateName", bean.getTemplateName())
.notNull("templateContent", bean.getTemplateContent());
// 唯一校验
if (!sysSmsTemplateService.checkSysSmsTemplateOnly(bean)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION.getCode())
.setErrorDetail("模板代码已存在")
.setErrorSolution("请重新操作")
.build();
}
bean = getCrudService().update(bean);
SmsResult<SysSmsTemplate> smsResult = SmsUtilFactory.getSmsTemplateUtil().updateSmsTemplate(bean);
if (!smsResult.isSuccess()) {
LOGGER.error("【SMS】 短信模板保存失败!{}", smsResult);
return ResultBean.fail(smsResult.getErrMsg()).setResultObject(smsResult);
}
return ResultBean.success("操作成功")
.setResultObject(bean)
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
* id
*
* @param id id
* @return
*/
@Override
public ResultBean delete(Long id) {
try {
ValidatorBean.checkNotNull(id, "请选需要删除短信模板!");
SysSmsTemplate smsTemplate = getCrudService().get(id);
ValidatorBean.checkNotNull(smsTemplate, "短信模板不存在!");
// 调用供应商api
SmsResult<SysSmsTemplate> smsResult = SmsUtilFactory.getSmsTemplateUtil()
.deleteSmsTemplateByCode(smsTemplate.getSupplierTemplateCode());
if (!smsResult.isSuccess()) {
LOGGER.error("【SMS】 短信模板删除失败!{}", smsResult);
return ResultBean.fail(smsResult.getErrMsg()).setResultObject(smsResult);
}
getCrudService().delete(id);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@Override
public ResultBean getById(Long id) {
try {
ValidatorBean.checkNotNull(id, "请选需要查询短信模板!");
SysSmsTemplate smsTemplate = getCrudService().get(id);
// 调用供应商api
SmsResult<SysSmsTemplate> smsResult = SmsUtilFactory.getSmsTemplateUtil()
.getSmsTemplateByCode(smsTemplate.getSupplierTemplateCode());
if (!smsResult.isSuccess()) {
LOGGER.error("【SMS】 短信模板查询失败!{}", smsResult);
return ResultBean.fail(smsResult.getErrMsg()).setResultObject(smsResult);
} else if (smsResult.isSuccess() && smsResult.getResultData() != null) {
smsTemplate.setReason(smsResult.getResultData().getReason());
}
return ResultBean.success("操作成功")
.setResultObject(smsTemplate)
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@PostMapping("/sync-supplier-template")
@ApiOperation("同步供应商模板信息")
public ResultBean syncSupplierTemplate(String supplierTemplateCode, String templateCode) {
try {
ValidatorBean.checkNotNull(supplierTemplateCode, "请输入需要同步的供应商模板代码!");
ValidatorBean.checkNotNull(templateCode, "请输入模板代码!");
SysSmsTemplate smsTemplate = new SysSmsTemplate();
smsTemplate.setTemplateCode(templateCode);
// 唯一校验
if (!sysSmsTemplateService.checkSysSmsTemplateOnly(smsTemplate)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION.getCode())
.setErrorDetail("模板代码已存在")
.setErrorSolution("请重新操作")
.build();
}
// 调用供应商api
SmsResult<SysSmsTemplate> smsResult = SmsUtilFactory.getSmsTemplateUtil()
.getSmsTemplateByCode(supplierTemplateCode);
if (!smsResult.isSuccess()) {
LOGGER.error("【SMS】 短信模板查询失败!{}", smsResult);
return ResultBean.fail(smsResult.getErrMsg()).setResultObject(smsResult);
} else if (smsResult.isSuccess() && smsResult.getResultData() == null) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION.getCode())
.setErrorDetail("模板代码已存在")
.setErrorSolution("请重新操作")
.build();
}
smsTemplate = smsResult.getResultData();
smsTemplate.setTemplateCode(templateCode);
sysSmsTemplateService.insert(smsTemplate);
return ResultBean.success("操作成功")
.setResultObject(smsTemplate)
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.base;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.busi.*;
import cn.estsh.i3plus.core.apiservice.controller.busi.SysSmsSendRecordController;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
@ -72,6 +73,9 @@ public class SystemInitService implements ISystemInitService {
@Autowired
private ISysBarcodeRuleService sysBarcodeRuleService;
@Autowired
private ISysSmsSendRecordService sysSmsSendRecordService;
@Resource(name= CommonConstWords.IMPP_REDIS_RES)
private ImppRedis redisRes;
@ -111,6 +115,10 @@ public class SystemInitService implements ISystemInitService {
LOGGER.info("加载 条码规则");
reloadBarcodeRule();
LOGGER.info("加载 条码规则 信息完成");
LOGGER.info("创建 短信同步线程");
createSmsSyncThread();
LOGGER.info("创建 短信同步线程 完成");
}catch (Exception e){
e.printStackTrace();
}
@ -446,4 +454,10 @@ public class SystemInitService implements ISystemInitService {
}
}
}
@Override
public void createSmsSyncThread() {
Thread syncSmsThread = new Thread(new SysSmsSendRecordController.SyncSmsInfo(sysSmsSendRecordService,redisRes));
syncSmsThread.start();
}
}

@ -121,7 +121,7 @@ public class SysConfigService implements ISysConfigService {
@Override
@ApiOperation(value = "根据系统参数组来查找系统参数")
public List findSysConfigByGroup(Integer group) {
public List<SysConfig> findSysConfigByGroup(Integer group) {
return SysConfigRDao.findByProperty("configGroup",group);
}

@ -0,0 +1,24 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysSmsSendRecordService;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.platform.bean.SysSmsSendRecord;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.base.service.CrudService;
import org.springframework.stereotype.Service;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2020-12-14 20:17
* @Modify:
**/
@Service
public class SysSmsSendRecordService extends CrudService<SysSmsSendRecord> implements ISysSmsSendRecordService {
@Override
public DdlPackBean getFindPagerPackBean(SysSmsSendRecord bean) {
return CoreHqlPack.packHqlFindSysSmsSendRecord(bean);
}
}

@ -0,0 +1,55 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysSmsSignService;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysSmsSign;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.base.service.CrudService;
import org.springframework.stereotype.Service;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2020-12-14 20:19
* @Modify:
**/
@Service
public class SysSmsSignService extends CrudService<SysSmsSign> implements ISysSmsSignService {
@Override
public DdlPackBean getFindPagerPackBean(SysSmsSign bean) {
return CoreHqlPack.packHqlFindSysSmsSign(bean);
}
/**
*
*
* @param sysSmsSign
* @return
*/
@Override
public boolean checkSysSignOnly(SysSmsSign sysSmsSign) {
return baseRepository.isExitByHql(CoreHqlPack.packHqlCheckSysSmsSignOnly(sysSmsSign));
}
/**
*
*
* @param code
* @return
*/
@Override
public SysSmsSign getSysSmsSignByCode(String code) {
return baseRepository.getByProperty(
new String[]{"isValid", "isDeleted", "signCode"},
new Object[]{
CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(),
CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),
code
}
);
}
}

@ -0,0 +1,54 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysSmsTemplateService;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysSmsTemplate;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.base.service.CrudService;
import org.springframework.stereotype.Service;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2020-12-14 20:20
* @Modify:
**/
@Service
public class SysSmsTemplateService extends CrudService<SysSmsTemplate> implements ISysSmsTemplateService {
@Override
public DdlPackBean getFindPagerPackBean(SysSmsTemplate bean) {
return CoreHqlPack.packHqlFindSysSmsTemplate(bean);
}
/**
*
*
* @param smsTemplate
* @return
*/
@Override
public boolean checkSysSmsTemplateOnly(SysSmsTemplate smsTemplate) {
return !baseRepository.isExitByHql(CoreHqlPack.packHqlCheckSysSmsTemplateOnly(smsTemplate));
}
/**
* code
*
* @param code
* @return
*/
@Override
public SysSmsTemplate getSysSmsTemplateByCode(String code) {
return baseRepository.getByProperty(
new String[]{"isValid", "isDeleted", "templateCode"},
new Object[]{
CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(),
CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),
code
}
);
}
}

@ -75,7 +75,7 @@ public class MailUtil {
this.attachmentList.clear();
return this;
} catch (Exception e) {
LOGGER.error("邮箱配置初始化失败!", e.getMessage());
LOGGER.error("邮箱配置初始化失败!", e);
return new MailUtil();
}
@ -100,7 +100,7 @@ public class MailUtil {
return this;
} catch (Exception e) {
LOGGER.error("邮箱配置初始化失败!", e.getMessage());
LOGGER.error("邮箱配置初始化失败!", e);
return new MailUtil();
}
}

@ -134,6 +134,12 @@
</dependency>
<dependency>
<groupId>i3plus.sdk</groupId>
<artifactId>i3plus-sdk-sms</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>i3plus.platform</groupId>
<artifactId>i3plus-platform-common</artifactId>
<version>${project.version}</version>

Loading…
Cancel
Save