From cbe588449ee81283979ef826e7b926a31d1d15f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=AA=E4=BA=91=E6=98=8A?= Date: Mon, 27 May 2019 15:28:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=AD=97=E5=85=B8=E4=BC=98?= =?UTF-8?q?=E5=8C=96=20websocket?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/iservice/busi/ISysDictionaryService.java | 8 +++ .../controller/busi/SysConfigController.java | 14 ++++- .../controller/busi/SysDictionaryController.java | 60 +++++++++++++++++----- .../controller/busi/SysEnumController.java | 15 ++++++ .../serviceimpl/busi/SysDictionaryService.java | 41 +++++++++++---- .../i3plus/core/apiservice/util/MailUtil.java | 35 +++++++++---- .../apiservice/websocket/MessageWebSocket.java | 2 +- 7 files changed, 139 insertions(+), 36 deletions(-) diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDictionaryService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDictionaryService.java index 14deb7d..becf970 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDictionaryService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDictionaryService.java @@ -127,4 +127,12 @@ public interface ISysDictionaryService { */ @ApiOperation(value = "根据模块查询顶级字典") List findSysDictionaryByTopBySoftType(Integer softType); + + /** + * 根据parenId查询字典 + * @param parentId 父级id + * @return 查询结果 + */ + @ApiOperation(value = "根据parenId查询字典") + List findSysDictionaryByParentId(Long parentId); } 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 2bdb25e..fe15554 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 @@ -4,6 +4,7 @@ import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService; import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService; import cn.estsh.i3plus.core.apiservice.util.MailUtil; import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -17,7 +18,6 @@ import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; -import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; @@ -289,6 +289,7 @@ public class SysConfigController extends CoreBaseController { 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()) @@ -296,12 +297,23 @@ public class SysConfigController extends CoreBaseController { .notNull("mailNick",mailConfig.getMailNick()) .notNull("testTo",mailConfig.getTestTo()); + // 是否开启邮件服务器 + if(mailConfig.getMailSwitch() != CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) + .setErrorDetail("字典不存在") + .setErrorSolution("请重新输入字典id") + .build(); + } + mailUtil.init(mailConfig); mailUtil.setSubject("测试邮件"); mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getDescription()); mailUtil.setBody("测试邮件"); mailUtil.setTo(mailConfig.getTestTo()); mailUtil.send(); + return ResultBean.success("测试邮件已发送").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch(MessagingException messageExcep){ return ResultBean.fail("邮件配置错误:" + messageExcep.getMessage()); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDictionaryController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDictionaryController.java index 0ff516e..00b6ecf 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDictionaryController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDictionaryController.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.BaseConstWords; @@ -15,7 +16,6 @@ import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; -import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; @@ -58,9 +58,15 @@ public class SysDictionaryController extends CoreBaseController{ // 条件验证 ValidatorBean.beginValid(sysDictionary) .notNull("name",sysDictionary.getName()) - .notNull("dictionarySoftType",sysDictionary.getDictionarySoftType()) - .notNull("dictionaryCode",sysDictionary.getDictionaryCode()) - .notNull("dictionaryValue",sysDictionary.getDictionaryValue()); + .notNull("parentId",sysDictionary.getParentId()) + .notNull("dictionarySoftType",sysDictionary.getDictionarySoftType()); + + // 父级必须设置字典代码 + if(sysDictionary.getParentIdVal() == CommonEnumUtil.PARENT.DEFAULT.getValue()){ + ValidatorBean.checkNotNull(sysDictionary.getDictionaryCode(),"字典代码不能为空"); + } else { + ValidatorBean.checkNotNull(sysDictionary.getDictionaryValue(),"字典参数值不能为空"); + } //新增初始化 sysDictionary.setIsDefault(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); @@ -90,9 +96,24 @@ public class SysDictionaryController extends CoreBaseController{ ValidatorBean.beginValid(sysDictionary) .notNull("id",sysDictionary.getId()) .notNull("name",sysDictionary.getName()) - .notNull("dictionarySoftType",sysDictionary.getDictionarySoftType()) - .notNull("dictionaryCode",sysDictionary.getDictionaryCode()) - .notNull("dictionaryValue",sysDictionary.getDictionaryValue()); + .notNull("parentId",sysDictionary.getParentId()) + .notNull("dictionarySoftType",sysDictionary.getDictionarySoftType()); + + // 父级必须设置字典代码 + if(sysDictionary.getParentIdVal() == CommonEnumUtil.PARENT.DEFAULT.getValue()){ + ValidatorBean.checkNotNull(sysDictionary.getDictionaryCode(),"字典代码不能为空"); + } else { + ValidatorBean.checkNotNull(sysDictionary.getDictionaryValue(),"字典参数值不能为空"); + } + + if(sysDictionary.getParentIdVal() == sysDictionary.getId()){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) + .setErrorDetail("父级字典不能为当前字典项") + .setErrorSolution("请重新选择") + .build(); + } //修改初始化 ConvertBean.modelUpdate(sysDictionary,user); @@ -120,6 +141,10 @@ public class SysDictionaryController extends CoreBaseController{ // 条件验证 ValidatorBean.checkNotNull(idStr,"id不能为空"); SysDictionary sysDictionary = sysDictionaryService.getSysDictionaryById(Long.parseLong(idStr)); + List childList = null; + if(sysDictionary.getParentIdVal() == CommonEnumUtil.PARENT.DEFAULT.getValue()){ + childList = sysDictionaryService.findSysDictionaryByParentId(sysDictionary.getId()); + } if(sysDictionary == null){ throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) @@ -127,7 +152,14 @@ public class SysDictionaryController extends CoreBaseController{ .setErrorDetail("字典不存在") .setErrorSolution("请重新选择") .build(); - }else if(sysDictionary.getIsDefault().intValue() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) { + }else if(!childList.isEmpty()){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) + .setErrorDetail("无法删除,存在子级字典:" + childList.get(0).getName()) + .setErrorSolution("请重新选择") + .build(); + } else if(sysDictionary.getIsDefault().intValue() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) @@ -196,7 +228,7 @@ public class SysDictionaryController extends CoreBaseController{ */ @GetMapping(value = "/find/{softType}/{code}") @ApiOperation(value = "根据微服务与父级code查询字典项", notes = "根据微服务与父级code查询字典项") - public ResultBean findSysDictionaryByParentCode(@PathVariable("softType")Integer softType,@PathVariable("code") String code) { + public ResultBean findSysDictionaryByParentCode(@PathVariable("softType")Integer softType, @PathVariable("code") String code) { try { List sysDictionaryList = sysDictionaryService.findSysDictionaryBySoftTypeAndParentCode(softType,code); return ResultBean.success("操作成功").setResultList(sysDictionaryList).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); @@ -306,7 +338,7 @@ public class SysDictionaryController extends CoreBaseController{ */ @DeleteMapping("/batch-delete") @ApiOperation(value = "批量删除消息",notes = "批量删除消息") - public ResultBean deleteSysDictionaryByIds(String[] ids){ + public ResultBean deleteSysDictionaryByIds(String[] ids) { try{ if(ids.length == 0){ throw ImppExceptionBuilder.newInstance() @@ -331,7 +363,7 @@ public class SysDictionaryController extends CoreBaseController{ */ @PutMapping("/default/{id}") @ApiOperation(value = "设置默认字典值",notes = "根据id设置默认字典值") - public ResultBean updateSysDictionaryDefaultById(@PathVariable("id") String idStr){ + public ResultBean updateSysDictionaryDefaultById(@PathVariable("id") String idStr) { try { //条件验证 ValidatorBean.checkNotNull(idStr,"id不能为空"); @@ -351,7 +383,7 @@ public class SysDictionaryController extends CoreBaseController{ */ @GetMapping("/tree") @ApiOperation(value = "查询字典树",notes = "查询字典树") - public ResultBean findSysDictionaryTree(){ + public ResultBean findSysDictionaryTree() { try { // 根据软件类型分组 Map group = sysDictionaryService.findSysDictionaryByTop().stream().collect(Collectors.groupingBy(SysDictionary::getDictionarySoftType)); @@ -381,9 +413,9 @@ public class SysDictionaryController extends CoreBaseController{ * @param softType 软件模块 * @return 处理结果 */ - @GetMapping("/find-soft-type/{id}") + @GetMapping("/find-top-soft-type/{id}") @ApiOperation(value = "根据模块查询顶级字典",notes = "根据模块查询顶级字典") - public ResultBean findSysDictionaryByTopBySoftType(@PathVariable("id")Integer softType){ + public ResultBean findSysDictionaryByTopBySoftType(@PathVariable("id")Integer softType) { try { List dictionaryList = sysDictionaryService.findSysDictionaryByTopBySoftType(softType); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(dictionaryList); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java index cb3b65b..0d3e2f0 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java @@ -239,6 +239,21 @@ public class SysEnumController extends CoreBaseController { /** * @return 处理结果 */ + @GetMapping("/dictionary-value-type") + @ApiOperation(value = "字典参数值类型", notes = "字典参数值类型") + public ResultBean getSysDictionaryValueType() { + List list = new ArrayList<>(); + list.add(ImppEnumUtil.SYS_VALUE_TYPE.STRING); + list.add(ImppEnumUtil.SYS_VALUE_TYPE.NUMBER); + list.add(ImppEnumUtil.SYS_VALUE_TYPE.DATE); + list.add(ImppEnumUtil.SYS_VALUE_TYPE.SWITCH); + + return new ResultBean(true, "操作成功", list); + } + + /** + * @return 处理结果 + */ @GetMapping("/sys-value-type") @ApiOperation(value = "系统参数值类型", notes = "用户状态") public ResultBean getSysConfigValueType() { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDictionaryService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDictionaryService.java index 7f80cc3..1da4e40 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDictionaryService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDictionaryService.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.pojo.base.bean.BaseConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; @@ -11,7 +12,6 @@ import cn.estsh.i3plus.pojo.platform.bean.SysDictionary; import cn.estsh.i3plus.pojo.platform.repository.SysDictionaryRepository; import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; -import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; @@ -39,14 +39,22 @@ public class SysDictionaryService implements ISysDictionaryService { public void insertSysDictionary(SysDictionary sysDictionary) { long repeatCodeCount = sysDictionaryRDao.findByPropertyCount(new String[]{"dictionaryCode", "dictionarySoftType"}, new Object[]{sysDictionary.getDictionaryCode(), sysDictionary.getDictionarySoftType()}); + if (repeatCodeCount > 0) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) + .setErrorDetail("字典代码已存在") + .setErrorSolution("请重新输入字典代码") + .build(); + } long repeatValueCount = sysDictionaryRDao.findByPropertyCount(new String[]{"parentId", "dictionaryValue", "dictionarySoftType"}, new Object[]{sysDictionary.getParentId(), sysDictionary.getDictionaryValue(), sysDictionary.getDictionarySoftType()}); - if (repeatCodeCount > 0 || repeatValueCount > 0) { + if(sysDictionary.getParentIdVal() != CommonEnumUtil.PARENT.DEFAULT.getValue() && repeatValueCount > 0){ throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) - .setErrorDetail("字典代码或字典值已存在") - .setErrorSolution("请重新输入字典代码或字典值") + .setErrorDetail("字典值已存在") + .setErrorSolution("请重新输入字典值") .build(); } @@ -79,17 +87,27 @@ public class SysDictionaryService implements ISysDictionaryService { // 校验唯一 String hqlPack = CoreHqlPack.packHqlSysDictionaryCode(sysDictionary); long repeatCodeCount = sysDictionaryRDao.findByHqlWhereCount(hqlPack); + if (repeatCodeCount > 0) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) + .setErrorDetail("字典代码已存在") + .setErrorSolution("请重新输入字典代码") + .build(); + } + hqlPack = CoreHqlPack.packHqlSysDictionaryValue(sysDictionary); long repeatValueCount = sysDictionaryRDao.findByHqlWhereCount(hqlPack); - if (repeatCodeCount > 0 || repeatValueCount > 0) { + if(sysDictionary.getParentIdVal() != CommonEnumUtil.PARENT.DEFAULT.getValue() && repeatValueCount > 0){ throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) - .setErrorDetail("字典代码或字典值已存在") - .setErrorSolution("请重新输入字典代码或字典值") + .setErrorDetail("字典值已存在") + .setErrorSolution("请重新输入字典值") .build(); } + // 数据反填 SysDictionary newSysDict = sysDictionaryRDao.getById(sysDictionary.getId()); newSysDict.setName(sysDictionary.getName()); @@ -149,8 +167,7 @@ public class SysDictionaryService implements ISysDictionaryService { @Override @ApiOperation(value = "查询顶级字典") public List findSysDictionaryByTop() { - LOGGER.info("字典 SYS_DICTIONARY parentId:{}", CommonEnumUtil.PARENT.DEFAULT.getValue()); - return sysDictionaryRDao.findByProperty("parentId", (long) CommonEnumUtil.PARENT.DEFAULT.getValue()); + return this.findSysDictionaryByTopBySoftType(null); } @Override @@ -225,4 +242,10 @@ public class SysDictionaryService implements ISysDictionaryService { return sysDictionaryRDao.findByProperty(new String[]{"parentId", "dictionarySoftType"}, new Object[]{(long) CommonEnumUtil.PARENT.DEFAULT.getValue(), softType}); } + + @Override + @ApiOperation(value = "根据parenId查询字典") + public List findSysDictionaryByParentId(Long parentId) { + return sysDictionaryRDao.findByProperty("parentId", parentId); + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/MailUtil.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/MailUtil.java index fbd643b..d83be53 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/MailUtil.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/MailUtil.java @@ -2,8 +2,9 @@ package cn.estsh.i3plus.core.apiservice.util; import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; -import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.MailConfig; +import cn.estsh.i3plus.pojo.platform.bean.SysConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -31,6 +32,7 @@ public class MailUtil { // 收件人 private Address[] to = null; private Address[] cc = null; + private int mailSwitch = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); private String from = ""; private String nick = ""; private String title = ""; @@ -46,21 +48,28 @@ public class MailUtil { @Autowired private ISysConfigService sysConfigService; - //初始化服务器邮箱参数 + // 初始化服务器邮箱参数 public MailUtil init() { - this.smtpHost = sysConfigService.getSysConfigByCode(PlatformConstWords.MAIL_HOST).getConfigValue(); - this.smtpPort = Integer.parseInt(sysConfigService.getSysConfigByCode(PlatformConstWords.MAIL_PORT).getConfigValue()); - this.from = sysConfigService.getSysConfigByCode(PlatformConstWords.MAIL_USER).getConfigValue(); - this.nick = sysConfigService.getSysConfigByCode(PlatformConstWords.MAIL_NICK).getConfigValue(); - this.smtpUser = sysConfigService.getSysConfigByCode(PlatformConstWords.MAIL_USER).getConfigValue(); - this.smtpPassword = sysConfigService.getSysConfigByCode(PlatformConstWords.MAIL_PASSWORD).getConfigValue(); - this.isAuthenticationSMTP = true; - + // 查询是否开启邮件服务器 + SysConfig sysConfig = sysConfigService.getSysConfigByCode(PlatformConstWords.MAIL_SWITCH); + if(sysConfig != null) { + this.mailSwitch = Integer.parseInt(sysConfig.getConfigValue()); + this.smtpHost = sysConfigService.getSysConfigByCode(PlatformConstWords.MAIL_HOST).getConfigValue(); + this.smtpPort = Integer.parseInt(sysConfigService.getSysConfigByCode(PlatformConstWords.MAIL_PORT).getConfigValue()); + this.from = sysConfigService.getSysConfigByCode(PlatformConstWords.MAIL_USER).getConfigValue(); + this.nick = sysConfigService.getSysConfigByCode(PlatformConstWords.MAIL_NICK).getConfigValue(); + this.smtpUser = sysConfigService.getSysConfigByCode(PlatformConstWords.MAIL_USER).getConfigValue(); + this.smtpPassword = sysConfigService.getSysConfigByCode(PlatformConstWords.MAIL_PASSWORD).getConfigValue(); + this.isAuthenticationSMTP = true; + } else{ + this.mailSwitch = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); + } return this; } - //初始化服务器邮箱参数 + // 初始化服务器邮箱参数 public MailUtil init(MailConfig mailConfig) { + this.mailSwitch = mailConfig.getMailSwitch(); this.smtpHost = mailConfig.getMailHost(); this.smtpPort = mailConfig.getMailPort(); this.from = mailConfig.getMailUser(); @@ -165,6 +174,10 @@ public class MailUtil { * 发送邮件 */ public void send() throws UnsupportedEncodingException, MessagingException { + // 是否开启邮箱配置 + if(this.mailSwitch != CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()){ + return; + } Properties server = new Properties(); server.put("mail.smtp.port", String.valueOf(this.smtpPort)); server.put("mail.smtp.host", this.smtpHost); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/websocket/MessageWebSocket.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/websocket/MessageWebSocket.java index 2c6ca61..2db25de 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/websocket/MessageWebSocket.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/websocket/MessageWebSocket.java @@ -107,7 +107,7 @@ public class MessageWebSocket { ConcurrentSet websocket = userSessionMap.get(userId); if (websocket != null && websocket.size() != 0) { for (String sid : websocket) { - if(webSocketMap.get(sid).session.isOpen()){ + if(webSocketMap.get(sid) != null && webSocketMap.get(sid).session.isOpen()){ webSocketMap.get(sid).session.getBasicRemote().sendText(message); } }