diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysSmsTemplateService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysSmsTemplateService.java index 4823d28..9fb844c 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysSmsTemplateService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysSmsTemplateService.java @@ -3,6 +3,8 @@ package cn.estsh.i3plus.core.api.iservice.busi; import cn.estsh.i3plus.pojo.platform.bean.SysSmsTemplate; import cn.estsh.impp.framework.base.service.ICrudService; +import java.util.List; + /** * @Description : 短信模板 * @Reference : @@ -28,4 +30,11 @@ public interface ISysSmsTemplateService extends ICrudService { */ SysSmsTemplate getSysSmsTemplateByCode(String code); + /** + * 根据模板状态查询模板信息 + * + * @param status 模板状态 + * @return 查询结果 + */ + List findSysSmsTemplateByStatus(Integer status); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysConfigController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysConfigController.java index 167f6d5..ba69bf2 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysConfigController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysConfigController.java @@ -417,7 +417,7 @@ public class SysConfigController extends CoreBaseController { /** * 查询短信配置 **/ - @GetMapping("/save-sms") + @PostMapping("/save-sms") @ApiOperation(value = "查询短信配置") public ResultBean saveSmsConfig(@RequestBody SmsConfig smsConfig) { try { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysSmsSendRecordController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysSmsSendRecordController.java index a4db8e5..7233c75 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysSmsSendRecordController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysSmsSendRecordController.java @@ -26,6 +26,7 @@ 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.StringUtils; import org.apache.commons.lang3.exception.ExceptionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,8 +37,6 @@ 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; @@ -180,6 +179,7 @@ public class SysSmsSendRecordController extends CrudBaseController 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)); - } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysSmsSignController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysSmsSignController.java index 24c93ff..4ba9ca6 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysSmsSignController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysSmsSignController.java @@ -1,10 +1,15 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; +import cn.estsh.i3plus.core.api.iservice.busi.ISysSmsSignService; +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.platform.bean.SysSmsSign; import cn.estsh.impp.framework.base.controller.CrudBaseController; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -20,6 +25,9 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping(PlatformConstWords.BASE_URL + "/sys-sms-sign") public class SysSmsSignController extends CrudBaseController { + @Autowired + private ISysSmsSignService sysSmsSignService; + /** * 新增数据校验 * @@ -31,6 +39,16 @@ public class SysSmsSignController extends CrudBaseController { ValidatorBean.beginValid(bean) .notNull("signCode", bean.getSignCode()) .notNull("signName", bean.getSignName()); + + if (!sysSmsSignService.checkSysSignOnly(bean)) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION.getCode()) + .setErrorDetail("签名代码已存在") + .setErrorSolution("请重新操作") + .build(); + } + return bean; } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysSmsTemplateController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysSmsTemplateController.java index bc77693..b03bc05 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysSmsTemplateController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysSmsTemplateController.java @@ -20,9 +20,7 @@ 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; +import org.springframework.web.bind.annotation.*; /** * @Description : 短信模板 @@ -56,7 +54,7 @@ public class SysSmsTemplateController extends CrudBaseController .notNull("templateName", bean.getTemplateName()) .notNull("templateContent", bean.getTemplateContent()); - bean.setTemplateStatus(ImppEnumUtil.SMS_TEMPLATE_STATUS.NOTICE_SMS.getValue()); + bean.setTemplateStatus(ImppEnumUtil.SMS_TEMPLATE_STATUS.UNDER_REVIEW.getValue()); // 唯一校验 if (!sysSmsTemplateService.checkSysSmsTemplateOnly(bean)) { @@ -68,16 +66,14 @@ public class SysSmsTemplateController extends CrudBaseController .build(); } - bean = getCrudService().insert(bean); - SmsResult smsResult = SmsUtilFactory.getSmsTemplateUtil().insertSmsTemplate(bean); if (!smsResult.isSuccess()) { LOGGER.error("【SMS】 短信模板保存失败!{}", smsResult); return ResultBean.fail(smsResult.getErrMsg()).setResultObject(smsResult); - } else { - getCrudService().update(bean); } + bean = getCrudService().insert(bean); + return ResultBean.success("操作成功") .setResultObject(bean) .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); @@ -114,14 +110,15 @@ public class SysSmsTemplateController extends CrudBaseController .build(); } - bean = getCrudService().update(bean); - - SmsResult smsResult = SmsUtilFactory.getSmsTemplateUtil().updateSmsTemplate(bean); - if (!smsResult.isSuccess()) { - LOGGER.error("【SMS】 短信模板保存失败!{}", smsResult); - return ResultBean.fail(smsResult.getErrMsg()).setResultObject(smsResult); + if (CommonEnumUtil.TRUE_OR_FALSE.valueOfBoolean(bean.getIsModifyContent())) { + SmsResult smsResult = SmsUtilFactory.getSmsTemplateUtil().updateSmsTemplate(bean); + if (!smsResult.isSuccess()) { + LOGGER.error("【SMS】 短信模板保存失败!{}", smsResult); + return ResultBean.fail(smsResult.getErrMsg()).setResultObject(smsResult); + } } + bean = getCrudService().update(bean); return ResultBean.success("操作成功") .setResultObject(bean) .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); @@ -164,7 +161,7 @@ public class SysSmsTemplateController extends CrudBaseController } @Override - public ResultBean getById(Long id) { + public ResultBean getById(@PathVariable("id") Long id) { try { ValidatorBean.checkNotNull(id, "请选需要查询短信模板!"); SysSmsTemplate smsTemplate = getCrudService().get(id); @@ -191,13 +188,15 @@ public class SysSmsTemplateController extends CrudBaseController @PostMapping("/sync-supplier-template") @ApiOperation("同步供应商模板信息") - public ResultBean syncSupplierTemplate(String supplierTemplateCode, String templateCode) { + public ResultBean syncSupplierTemplate(@RequestBody SysSmsTemplate bean) { try { - ValidatorBean.checkNotNull(supplierTemplateCode, "请输入需要同步的供应商模板代码!"); - ValidatorBean.checkNotNull(templateCode, "请输入模板代码!"); + ValidatorBean.beginValid(bean) + .notNull("supplierType",bean.getSupplierType()) + .notNull("supplierTemplateCode",bean.getSupplierTemplateCode()) + .notNull("templateCode",bean.getTemplateCode()); SysSmsTemplate smsTemplate = new SysSmsTemplate(); - smsTemplate.setTemplateCode(templateCode); + smsTemplate.setTemplateCode(bean.getTemplateCode()); // 唯一校验 if (!sysSmsTemplateService.checkSysSmsTemplateOnly(smsTemplate)) { @@ -208,12 +207,11 @@ public class SysSmsTemplateController extends CrudBaseController .setErrorSolution("请重新操作") .build(); } - // 调用供应商api SmsResult smsResult = SmsUtilFactory.getSmsTemplateUtil() - .getSmsTemplateByCode(supplierTemplateCode); + .getSmsTemplateByCode(bean.getSupplierTemplateCode()); if (!smsResult.isSuccess()) { - LOGGER.error("【SMS】 短信模板查询失败!{}", smsResult); + LOGGER.error("【SMS】 短信模板查+询失败!{}", smsResult); return ResultBean.fail(smsResult.getErrMsg()).setResultObject(smsResult); } else if (smsResult.isSuccess() && smsResult.getResultData() == null) { throw ImppExceptionBuilder.newInstance() @@ -224,7 +222,7 @@ public class SysSmsTemplateController extends CrudBaseController .build(); } smsTemplate = smsResult.getResultData(); - smsTemplate.setTemplateCode(templateCode); + smsTemplate.setTemplateCode(bean.getTemplateCode()); sysSmsTemplateService.insert(smsTemplate); return ResultBean.success("操作成功") diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/SysSmsTemplateSyncJob.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/SysSmsTemplateSyncJob.java new file mode 100644 index 0000000..07547ed --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/SysSmsTemplateSyncJob.java @@ -0,0 +1,57 @@ +package cn.estsh.i3plus.core.apiservice.schedulejob; + +import cn.estsh.i3plus.core.api.iservice.busi.ISysSmsTemplateService; +import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysSmsTemplate; +import cn.estsh.i3plus.sdk.sms.base.ISmsTemplateUtil; +import cn.estsh.i3plus.sdk.sms.base.SmsUtilFactory; +import cn.estsh.i3plus.sdk.sms.base.pojo.SmsResult; +import cn.estsh.impp.framework.base.schedule.BaseImppScheduleJob; +import cn.estsh.impp.framework.boot.init.ApplicationProperties; +import org.quartz.DisallowConcurrentExecution; +import org.quartz.JobExecutionContext; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : yunhao + * @CreateDate : 2021-01-04 13:47 + * @Modify: + **/ +@DisallowConcurrentExecution +public class SysSmsTemplateSyncJob extends BaseImppScheduleJob { + + public SysSmsTemplateSyncJob(Class cls, String jobDesc) { + super(SysSmsTemplateSyncJob.class,"短信模板同步job"); + } + + @Autowired + private ISysSmsTemplateService sysSmsTemplateService; + + @Override + public void executeImppJob(JobExecutionContext context, ApplicationProperties applicationProperties) { + try { + ISmsTemplateUtil smsTemplateUtil = SmsUtilFactory.getSmsTemplateUtil(); + + // 第一步,查询出未审批的短信模板 + List sysSmsTemplateList = + sysSmsTemplateService.findSysSmsTemplateByStatus(ImppEnumUtil.SMS_TEMPLATE_STATUS.UNDER_REVIEW.getValue()); + // 第二步,根据供应商模板代码查询审批状态 + for (SysSmsTemplate smsTemplate : sysSmsTemplateList) { + SmsResult smsResult = smsTemplateUtil.getSmsTemplateByCode(smsTemplate.getSupplierTemplateCode()); + if (smsResult.isSuccess() && smsResult.getResultData() != null) { + smsTemplate.setTemplateStatus(smsResult.getResultData().getTemplateStatus()); + // 第三步,更新模板状态 + sysSmsTemplateService.update(smsTemplate); + }else{ + LOGGER.error("查询供应商短信模板状态异常:{}", smsResult.getErrMsg()); + } + } + }catch (Exception e){ + LOGGER.error("短信模板同步job执行异常",e); + } + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysSmsSignService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysSmsSignService.java index 2cef019..e96d9ba 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysSmsSignService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysSmsSignService.java @@ -32,7 +32,7 @@ public class SysSmsSignService extends CrudService implements ISysSm */ @Override public boolean checkSysSignOnly(SysSmsSign sysSmsSign) { - return baseRepository.isExitByHql(CoreHqlPack.packHqlCheckSysSmsSignOnly(sysSmsSign)); + return !baseRepository.isExitByHql(CoreHqlPack.packHqlCheckSysSmsSignOnly(sysSmsSign)); } /** diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysSmsTemplateService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysSmsTemplateService.java index 5672f9e..e2f06c0 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysSmsTemplateService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysSmsTemplateService.java @@ -8,6 +8,8 @@ import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.impp.framework.base.service.CrudService; import org.springframework.stereotype.Service; +import java.util.List; + /** * @Description : 短信模板 * @Reference : @@ -51,4 +53,22 @@ public class SysSmsTemplateService extends CrudService implement } ); } + + /** + * 根据模板状态查询模板信息 + * + * @param status 模板状态 + * @return 查询结果 + */ + @Override + public List findSysSmsTemplateByStatus(Integer status) { + return baseRepository.findByProperty( + new String[]{"isValid", "isDeleted", "templateStatus"}, + new Object[]{ + CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), + CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), + status + } + ); + } }