平台字典优化

websocket
yun-zuoyi
汪云昊 6 years ago
parent c8445c0ae5
commit cbe588449e

@ -127,4 +127,12 @@ public interface ISysDictionaryService {
*/
@ApiOperation(value = "根据模块查询顶级字典")
List<SysDictionary> findSysDictionaryByTopBySoftType(Integer softType);
/**
* parenId
* @param parentId id
* @return
*/
@ApiOperation(value = "根据parenId查询字典")
List<SysDictionary> findSysDictionaryByParentId(Long parentId);
}

@ -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());

@ -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<SysDictionary> 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<SysDictionary> 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<SysDictionary> dictionaryList = sysDictionaryService.findSysDictionaryByTopBySoftType(softType);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(dictionaryList);

@ -239,6 +239,21 @@ public class SysEnumController extends CoreBaseController {
/**
* @return
*/
@GetMapping("/dictionary-value-type")
@ApiOperation(value = "字典参数值类型", notes = "字典参数值类型")
public ResultBean getSysDictionaryValueType() {
List<ImppEnumUtil.SYS_VALUE_TYPE> 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() {

@ -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<SysDictionary> 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<SysDictionary> findSysDictionaryByParentId(Long parentId) {
return sysDictionaryRDao.findByProperty("parentId", parentId);
}
}

@ -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,8 +48,12 @@ public class MailUtil {
@Autowired
private ISysConfigService sysConfigService;
//初始化服务器邮箱参数
// 初始化服务器邮箱参数
public MailUtil init() {
// 查询是否开启邮件服务器
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();
@ -55,12 +61,15 @@ public class MailUtil {
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);

@ -107,7 +107,7 @@ public class MessageWebSocket {
ConcurrentSet<String> 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);
}
}

Loading…
Cancel
Save