diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/IReportService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/IReportService.java new file mode 100644 index 0000000..a41c23f --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/IReportService.java @@ -0,0 +1,22 @@ +package cn.estsh.i3plus.core.api.iservice.base; + +import cn.estsh.i3plus.pojo.model.report.TemplateModel; +import io.swagger.annotations.ApiOperation; + +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-20 16:04 + * @Modify: + **/ +public interface IReportService { + + @ApiOperation(value = "HQL 入侵检查",notes = "入侵检查") + void checkReportHQL(String hql); + + @ApiOperation(value = "HQL 执行",notes = "执行 HQL") + List selectTemplateModel(TemplateModel model) throws Exception; +} diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java index ca2b69f..70b8537 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java @@ -101,6 +101,9 @@ public interface ISysRoleService { @ApiOperation(value = "查信角色信息",notes = "查询所有角色信息") List findSysRoleAll(); + @ApiOperation(value = "查信角色信息",notes = "查询指定角色信息") + List findSysRoleByInId(Long[] ids); + /** * 根据id 数据 * @@ -118,4 +121,5 @@ public interface ISysRoleService { */ @ApiOperation(value = "查信角色信息",notes = "查询角色信息(分页/组合)") ListPager querySysRole(SysRole role, Pager pager); + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/MqConfig.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/MqConfig.java new file mode 100644 index 0000000..e9daa23 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/MqConfig.java @@ -0,0 +1,24 @@ +package cn.estsh.i3plus.core.apiservice.configuration; + +import org.springframework.amqp.rabbit.connection.ConnectionFactory; +import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; + +import javax.annotation.Resource; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-01-10 16:53 + * @Modify: + **/ +@Configuration +public class MqConfig { + @Resource(name="rabbitConnectionFactory") + private ConnectionFactory connectionFactory; + + @Autowired + private RabbitListenerEndpointRegistry rabbitListenerEndpointRegistry; +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoRedisMqController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoRedisMqController.java index 66f3cab..63c2b33 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoRedisMqController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoRedisMqController.java @@ -1,14 +1,20 @@ package cn.estsh.i3plus.core.apiservice.controller; +import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; import cn.estsh.i3plus.core.apiservice.mq.I3CoreQueueConfig; +import cn.estsh.i3plus.core.apiservice.thread.CoreDemoThread; +import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; +import cn.estsh.i3plus.platform.common.util.QueueConstWords; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.SessionUser; +import cn.estsh.i3plus.pojo.platform.bean.SysRole; import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; +import cn.estsh.impp.framework.boot.thread.ImppThreadPool; import cn.estsh.impp.framework.boot.util.ImppRedis; import cn.estsh.impp.framework.boot.util.ResultBean; import com.rabbitmq.client.Channel; @@ -18,7 +24,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; +import org.springframework.amqp.rabbit.connection.ConnectionFactory; import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.web.bind.annotation.GetMapping; @@ -27,7 +35,9 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.io.IOException; +import java.util.List; import java.util.Locale; +import java.util.Set; import java.util.concurrent.TimeoutException; /** @@ -39,7 +49,7 @@ import java.util.concurrent.TimeoutException; **/ @RestController @Api(description="复杂对象服务demo") -@RequestMapping(PlatformConstWords.BASE_URL + "/demo") +@RequestMapping("/demo-redis-mq") public class DemoRedisMqController extends CoreBaseController{ private static final Logger LOGGER = LoggerFactory.getLogger(DemoRedisMqController.class); @@ -57,12 +67,36 @@ public class DemoRedisMqController extends CoreBaseController{ @Autowired private RabbitTemplate rabbitTemplate; + @Autowired + private ISysRoleService sysRoleService; + + @Autowired + private RabbitListenerEndpointRegistry rabbitRegistry; + + @Autowired + private ConnectionFactory connectionFactory; + /** * mq工厂,用于生产ack消息 */ @Autowired private CachingConnectionFactory mqFactory; + @GetMapping(value="/get-mq-info") + @ApiOperation(value="获取队列信息") + public ResultBean getMqInfo(){ + System.out.println(rabbitRegistry.isAutoStartup() + " " + rabbitRegistry.isRunning()); + System.out.println(mqFactory.isPublisherConfirms() + " " + mqFactory.isPublisherReturns()); + System.out.println(connectionFactory); + + Set ids = rabbitRegistry.getListenerContainerIds(); + for(String id : ids){ + System.out.println("id = "+id); + } + + return new ResultBean(true); + } + @GetMapping(value="/put-cache") @ApiOperation(value="缓存",notes="放入数据") public ResultBean putCache(){ @@ -76,13 +110,82 @@ public class DemoRedisMqController extends CoreBaseController{ @GetMapping(value="/get-cache") @ApiOperation(value="缓存",notes="获取数据") public ResultBean getCache(){ - //MachineFactory mf = (MachineFactory) redisCore.getObject("machineFactory"); - //System.out.println("1===== " + mf); System.out.println("2===== " + redisCore.getObject("wms")); return new ResultBean(true); } + @GetMapping(value="/exception-demo") + @ApiOperation(value="异常demo",notes="异常demo") + public ResultBean exceptionDemp() throws IOException, TimeoutException { + String data = "true"; + + if("true".equals(data)) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.WMS.getCode()) + .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) + .setErrorDetail("aaa操作数据出错") + .setErrorSolution("检查数据完整性") + .build(); + } + return new ResultBean(true,"操作成功"); + } + + @GetMapping(value="/international") + @ApiOperation(value="国际化处理",notes="资源配置文件及国际化") + public ResultBean international() { + Locale locale = LocaleContextHolder.getLocale(); + System.out.println(locale.getLanguage() + " " + locale.getCountry()); + + return new ResultBean(true,"操作成功 : " + locale.getLanguage() + " " + locale.getCountry()); + } + + @Resource(name="redisSession") + private ImppRedis redisSession; + + @GetMapping(value="/set-redis") + @ApiOperation(value="setredis") + public ResultBean setRedis(String key,String value) { + //redisSession.putObject(key,value); + //redisCore.putObject(key,value); + + + ResultBean rs = new ResultBean(true,"yes"); + rs.setPager(new Pager(100)); + redisSession.putObject("rs",rs); + redisCore.putObject("rs",rs); + + return new ResultBean(true,"操作成功 : " + key + " : " + value); + } + + @GetMapping(value="/get-redis") + @ApiOperation(value="getredis") + public ResultBean getRedis(String key) { + Object d1 = redisSession.getObject(key); + System.out.println("redisSession-d1==" + d1); + Object d2 = redisCore.getObject(key); + + if(d1 != null) { + SessionUser sessionUser = AuthUtil.getSessionUser(); + System.out.println(sessionUser.toString()); + } + + System.out.println("redisCore-d2==" + d2); + System.out.println(d1 == null?"null":d1.toString()); + System.out.println(d2 == null?"null":d2.toString()); + return new ResultBean(true,"操作成功 : " + d1 + " : " + d2); + } + + @GetMapping(value="/test-thread") + @ApiOperation(value="testThread") + public ResultBean testThread(String param) { + ImppThreadPool.getThreadExcutorService().execute(new CoreDemoThread(param)); + + return new ResultBean(true,"操作成功"); + } + + + @GetMapping(value="/send-mq") @ApiOperation(value="队列",notes="发送") public ResultBean sendMQ(String data){ @@ -156,7 +259,6 @@ public class DemoRedisMqController extends CoreBaseController{ /** * 如果需要进行ack操作,需要添加RabbitListener方法 - * @param data * @return * @throws IOException * @throws TimeoutException @@ -174,12 +276,12 @@ public class DemoRedisMqController extends CoreBaseController{ @ApiOperation(value="getack队列",notes="接收") public ResultBean getAckMQ() throws IOException, TimeoutException { Channel channel = this.rabbitTemplate.getConnectionFactory().createConnection().createChannel(false); - System.out.println("1====" + channel); + LOGGER.info("channel = {}",channel); String str = (String) rabbitTemplate.receiveAndConvert(I3CoreQueueConfig.DEMO_ACK_QUEUE); - System.out.println("2=============="+str); + LOGGER.info("str = {}",str); Message message = rabbitTemplate.receive(I3CoreQueueConfig.DEMO_ACK_QUEUE); - System.out.println("3=============="+message); + LOGGER.info("message = {}",message); try { /*String data = (String) this.rabbitTemplate.receiveAndConvert(I3CoreQueueConfig.DEMO_ACK_QUEUE); System.out.println("【client】数据接收成功:" + data); @@ -213,64 +315,42 @@ public class DemoRedisMqController extends CoreBaseController{ return new ResultBean(true,"操作成功"); } - @GetMapping(value="/exception-demo") - @ApiOperation(value="异常demo",notes="异常demo") - public ResultBean exceptionDemp() throws IOException, TimeoutException { - String data = "true"; - - if("true".equals(data)) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.WMS.getCode()) - .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) - .setErrorDetail("aaa操作数据出错") - .setErrorSolution("检查数据完整性") - .build(); + /** + * 发送角色至mq交换机 + * @return + * @throws IOException + * @throws TimeoutException + */ + @GetMapping(value="/send-mq-role") + @ApiOperation(value="发送角色信息队列",notes="发送") + public ResultBean sendRoleMQ(int sendCount) throws IOException, TimeoutException { + List roleList = sysRoleService.findSysRoleAll(); + LOGGER.info("共有角色数:{}",roleList.size()); + + //发送信息至通用交换机-》扇形交换 + SysRole sysRole; + for(int i=0;i list = sysRoleService.findSysRoleAll(); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + @GetMapping(value = "/find-ref-menu/{roleId}") @ApiOperation(value = "查询角色的所有角色权限关系", notes = "查询角色的所有角色权限关系") public ResultBean findRefRoleMenu(@PathVariable("roleId") String roleId) { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/report/CoreReportController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/report/CoreReportController.java index 7e25cc9..e6da766 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/report/CoreReportController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/report/CoreReportController.java @@ -1,21 +1,31 @@ package cn.estsh.i3plus.core.apiservice.controller.report; +import cn.estsh.i3plus.core.api.iservice.base.IReportService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; import cn.estsh.i3plus.platform.common.tool.ClassTool; +import cn.estsh.i3plus.platform.common.tool.StringTool; +import cn.estsh.i3plus.platform.common.util.PlatformConstWords; +import cn.estsh.i3plus.pojo.base.annotation.AnnoOutputColumn; import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.model.common.ClassFieldModel; import cn.estsh.i3plus.pojo.model.common.ClassModel; +import cn.estsh.i3plus.pojo.model.report.TemplateModel; +import cn.estsh.i3plus.pojo.platform.bean.SysRole; +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 io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import org.apache.commons.lang3.StringUtils; +import org.hibernate.QueryException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.persistence.Transient; import java.lang.reflect.Field; @@ -23,7 +33,7 @@ import java.util.ArrayList; import java.util.List; @RestController -@RequestMapping("/impp/cloud/report") +@RequestMapping(PlatformConstWords.BASE_URL + "/cloud/report") @Api(description="报表服务") public class CoreReportController { @@ -32,59 +42,145 @@ public class CoreReportController { @Value("${impp.app.pojo-packages}.bean") public String pojoPackagePath; - @GetMapping(value="/list-clz") + @Autowired + private ISysRoleService roleService; + + @Autowired + private IReportService reportService; + + @GetMapping(value = "/role/list") + @ApiOperation(value = "查询所有角色", notes = "查询所有系统角色") + public ResultBean findAll() { + try { + List list = roleService.findSysRoleAll(); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @PostMapping(value = "/role/list/ids") + @ApiOperation(value = "查询所有角色", notes = "查询所有系统角色") + public ResultBean findRoleByIdList(@RequestBody String[] ids) { + try { + List list = roleService.findSysRoleByInId(StringTool.getArrayLong(ids)); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @PostMapping(value="/template-model/run") @ApiOperation(value="查询管理后台所有类",notes = "根据核心包路径列出所有类") - public BaseResultBean listClz() { + public ResultBean runTemplateModel(@RequestBody TemplateModel model){ + LOGGER.info("【执行TemplateModel】TemplateModel:{}",model); + try { + List list = reportService.selectTemplateModel(model); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setResultList(list); + }catch (Exception e){ + return ResultBean.fail("操作失败").setMsg(e.getMessage()).setErrorMsg(e.getLocalizedMessage() + ); + } + } + + @GetMapping(value="/clz-model/list") + @ApiOperation(value="查询管理后台所有类",notes = "根据核心包路径列出所有类") + public BaseResultBean listClzModel() { LOGGER.info("【类路径:{}】",pojoPackagePath); List clzNameList = ClassTool.getClassName(pojoPackagePath, true); List clzList = new ArrayList<>(clzNameList.size()); - Class tmpClz = null; - Api api = null; - ClassModel classModel = null; for(String clzName : clzNameList){ - try { - //注册类 - tmpClz = Class.forName(clzName); - - classModel = new ClassModel(); - classModel.setPackageName(pojoPackagePath); - classModel.setClzFullName(clzName); - classModel.setClzSimpleName(tmpClz.getSimpleName()); - - api = (Api) tmpClz.getAnnotation(Api.class); - if(api != null) { - classModel.setClzDesc(api.value()); - - clzList.add(classModel); - }else{ - //classModel.setClzDesc(clzName); - LOGGER.warn("不添加类:{},因为没有添加api描述", tmpClz); + ClassModel model = getClassModel(clzName); + if(model != null){ + if(StringUtils.isNotBlank(model.getClzFullName())){ + List list = getClassFieldModel(model.getClzFullName()); + model.setFieldList(list); } - } catch (ClassNotFoundException e) { - LOGGER.error("【类:{}注册出错】",clzName,clzName,e); + clzList.add(model); } } + return ResultBean.success("获取类:" + clzList.size()).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(clzList); + } + + @GetMapping(value="/clz-model/{classPath}") + @ApiOperation(value="查询管理后台所有类",notes = "根据核心包路径列出所有类") + public BaseResultBean getClzModel(@PathVariable("classPath") String classPath) { + LOGGER.info("【类路径:{}】",pojoPackagePath); + ClassModel model = getClassModel(classPath); + if(model != null){ + if(StringUtils.isNotBlank(model.getClzFullName())){ + List list = getClassFieldModel(model.getClzFullName()); + model.setFieldList(list); + } + } + return ResultBean.success("获取类:" + model.getClzDesc()).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(model); + } + + @GetMapping(value="/list-clz") + @ApiOperation(value="查询管理后台所有类",notes = "根据核心包路径列出所有类") + public BaseResultBean listClz() { + LOGGER.info("【类路径:{}】",pojoPackagePath); + List clzNameList = ClassTool.getClassName(pojoPackagePath, true); + List clzList = new ArrayList<>(clzNameList.size()); + for(String clzName : clzNameList){ + clzList.add(getClassModel(clzName)); + } return ResultBean.success("获取类:" + clzList.size()) - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) - .setResultList(clzList); + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setResultList(clzList); } @GetMapping(value="/pojo-property") @ApiOperation(value="查询类所有属性") public ResultBean testWms(@RequestParam("clzFullName") String clzFullName) { LOGGER.info("【查询类属性:{}】",clzFullName); + List fieldModelList = getClassFieldModel(clzFullName); + return ResultBean.success("获取属性:" + fieldModelList.size()) + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setResultList(fieldModelList); + } - ApiParam apiParam = null; - Transient tran = null; + private ClassModel getClassModel(String clzName){ + try { + //注册类 + Class tmpClz = Class.forName(clzName); + ClassModel classModel = new ClassModel(); + classModel.setServerId(CommonEnumUtil.SOFT_TYPE.CORE.getValue()); + classModel.setServerName(CommonEnumUtil.SOFT_TYPE.CORE.getCode()); + classModel.setPackageName(pojoPackagePath); + classModel.setClzFullName(clzName); + classModel.setClzSimpleName(tmpClz.getSimpleName()); + + Api api = (Api) tmpClz.getAnnotation(Api.class); + if(api != null) { + classModel.setClzDesc(api.value()); + return classModel; + }else{ + LOGGER.warn("不添加类:{},因为没有添加api描述", tmpClz); + } + } catch (ClassNotFoundException e) { + LOGGER.error("【类:{}注册出错】",clzName,clzName,e); + } + return null; + } + + private List getClassFieldModel(String clzFullName){ List fieldModelList = new ArrayList<>(); try { Class tmpClz = Class.forName(clzFullName); List fields = ClassTool.getAllFieldsList(tmpClz); ClassFieldModel fieldModel = null; + ApiParam apiParam; + Transient tran; for(Field f : fields){ tran = f.getAnnotation(Transient.class); - if(tran == null) { + if(tran == null && !"serialVersionUID".equals(f.getName())) { // 临时对象不需要处理 fieldModel = new ClassFieldModel(); fieldModel.setPackageName(pojoPackagePath); @@ -95,12 +191,8 @@ public class CoreReportController { apiParam = f.getAnnotation(ApiParam.class); if(apiParam != null){ fieldModel.setFieldDesc(apiParam.value()); - - fieldModelList.add(fieldModel); - }else{ - //fieldModel.setFieldDesc(fieldModel.getFieldName()); - LOGGER.warn("不添加属性:{},因为没有添加api描述", f.getName()); } + fieldModelList.add(fieldModel); }else{ LOGGER.info("【临时属性:{}】",f.getName()); } @@ -108,10 +200,7 @@ public class CoreReportController { } catch (ClassNotFoundException e) { LOGGER.error("【类:{}实例化出错】",clzFullName,e); } - - return ResultBean.success("获取属性:" + fieldModelList.size()) - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) - .setResultList(fieldModelList); + return fieldModelList; } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IReportDao.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IReportDao.java new file mode 100644 index 0000000..ac48bf3 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IReportDao.java @@ -0,0 +1,16 @@ +package cn.estsh.i3plus.core.apiservice.dao; + +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-20 16:11 + * @Modify: + **/ +public interface IReportDao { + + List findByHqlObjects(String hql, String[] paramName, Object[] paramValue) throws Exception; + +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/ReportDaoImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/ReportDaoImpl.java new file mode 100644 index 0000000..ed7893f --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/ReportDaoImpl.java @@ -0,0 +1,41 @@ +package cn.estsh.i3plus.core.apiservice.daoimpl; + +import cn.estsh.i3plus.core.apiservice.dao.IReportDao; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.persistence.EntityManager; +import javax.persistence.Query; +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-20 16:14 + * @Modify: + **/ +@Service +public class ReportDaoImpl implements IReportDao { + + public static final Logger LOGGER = LoggerFactory.getLogger(ReportDaoImpl.class); + + @Autowired + private EntityManager entityManager; + + @Override + public List findByHqlObjects(String hql, String[] paramName, Object[] paramValue) throws Exception { + LOGGER.info(" find HQL:{} paramName:{} paramValue:{}", hql, paramName, paramValue); + Query queryObject = entityManager.createQuery(hql); + if(paramName != null && paramValue != null){ + for (int i = 0; i < paramName.length; i++) { + if (paramValue[i] != null) { + queryObject.setParameter(paramName[i], paramValue[i].toString()); + } + } + } + return queryObject.getResultList(); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/CommonQueueReceive.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/CommonQueueReceive.java new file mode 100644 index 0000000..9be886c --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/CommonQueueReceive.java @@ -0,0 +1,87 @@ +package cn.estsh.i3plus.core.apiservice.mq; + +import cn.estsh.i3plus.platform.common.util.QueueConstWords; +import com.rabbitmq.client.Channel; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.core.ExchangeTypes; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.Exchange; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.QueueBinding; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import java.io.IOException; + +/** + * @Description : 平台通用队列 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-01-14 17:01 + * @Modify: + **/ +@Component +public class CommonQueueReceive { + + private static final Logger LOGGER = LoggerFactory.getLogger(CommonQueueReceive.class); + + /** + * 通用队列,绑定通用交换机 + * @param channel + * @param message + */ + @RabbitListener(bindings ={ + //绑定队列 + @QueueBinding(value = @Queue(value = QueueConstWords.CORE_QUEUE_PREFIX + QueueConstWords.QUEUE_COMMON), + //绑定交换 + exchange = @Exchange(type=ExchangeTypes.FANOUT,value = QueueConstWords.QUEUE_EXCHANGE_COMMON)) + }) + public void commonQueue(Object object, Channel channel, Message message){ + try { + LOGGER.info("【{}】数据接收成功:{}",QueueConstWords.CORE_QUEUE_PREFIX + QueueConstWords.QUEUE_COMMON,object); + + //信息已处理 + channel.basicAck(message.getMessageProperties().getDeliveryTag(),false); + } catch (IOException e) { + LOGGER.error("【{}】处理出错,丢弃:{}",QueueConstWords.CORE_QUEUE_PREFIX + QueueConstWords.QUEUE_COMMON,e.getMessage(),e); + //丢弃这条消息 + try { + // 未成功处理,重新发送 + channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true); + } catch (IOException e1) { + e1.printStackTrace(); + } + } + } + + /** + * 直达交换机交换机 + * @param channel + * @param message + */ + @RabbitListener(bindings ={ + //绑定队列 + @QueueBinding(value = @Queue(value = QueueConstWords.CORE_QUEUE_PREFIX + QueueConstWords.DIRECT_EXCHANGE_KEY_ROLE), + //绑定交换 + exchange = @Exchange(type=ExchangeTypes.DIRECT,value = QueueConstWords.QUEUE_EXCHANGE_DIRECT), + key = QueueConstWords.CORE_QUEUE_PREFIX + QueueConstWords.DIRECT_EXCHANGE_KEY_ROLE) + }) + public void directQueue(Object object, Channel channel, Message message){ + try { + LOGGER.info("【{}】数据接收成功:{}",QueueConstWords.CORE_QUEUE_PREFIX + QueueConstWords.QUEUE_COMMON,object); + + //信息已处理 + channel.basicAck(message.getMessageProperties().getDeliveryTag(),false); + } catch (IOException e) { + LOGGER.error("【{}】处理出错,丢弃:{}",QueueConstWords.CORE_QUEUE_PREFIX + QueueConstWords.QUEUE_COMMON,e.getMessage(),e); + //丢弃这条消息 + try { + // 未成功处理,重新发送 + channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true); + } catch (IOException e1) { + e1.printStackTrace(); + } + } + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueConfig.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueConfig.java index 9498b4f..ae90aa1 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueConfig.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueConfig.java @@ -1,8 +1,9 @@ package cn.estsh.i3plus.core.apiservice.mq; +import cn.estsh.i3plus.platform.common.util.CommonConstWords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.amqp.core.Queue; +import org.springframework.amqp.core.*; import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -26,7 +27,6 @@ public class I3CoreQueueConfig { return new Queue(IMPP_MESSAGE_QUEUE); } - /*********** 队列demo ***********/ public static final String DEMO_STR_QUEUE = "demo_str_queue"; diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueReceiver.java index 247762c..2636dba 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueReceiver.java @@ -59,7 +59,7 @@ public class I3CoreQueueReceiver { System.out.println("强转对象:" + data); }*/ - @RabbitListener(queues = I3CoreQueueConfig.DEMO_RETURN_QUEUE) + /*@RabbitListener(queues = I3CoreQueueConfig.DEMO_RETURN_QUEUE) public Message processReturn(String data, Channel channel, Message message) { try { System.out.println("【client】数据接收成功:" + data); @@ -96,10 +96,10 @@ public class I3CoreQueueReceiver { try { System.out.println("【client】数据接收成功:" + data); - /*if(data.startsWith("ack")){ + *//*if(data.startsWith("ack")){ System.out.println("【client】数据抛出异常"); throw new RuntimeException("【队列抛出异常】" + data); - }*/ + }*//* //在队列删掉 不会再发了 否则消息服务器以为这条消息没处理掉 后续还会在发 channel.basicAck(message.getMessageProperties().getDeliveryTag(),false); } catch (IOException e) { @@ -114,5 +114,5 @@ public class I3CoreQueueReceiver { e1.printStackTrace(); } } - } + }*/ } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java index 0643d4c..930c657 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java @@ -60,7 +60,7 @@ public class MessageMailQueueReceiver { mailUtil.setBody(msg.getMessageContent()); mailUtil.setTo(sysConfigService.getSysConfigByCode(PlatformConstWords.CONTACT_MAIL).getConfigValue()); //信息已处理 -// mailUtil.send(); + mailUtil.send(); }else { // 收件人信息 @@ -91,7 +91,7 @@ public class MessageMailQueueReceiver { mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType())); mailUtil.setBody(msg.getMessageContent()); mailUtil.setTo(sysUser.getUserEmail()); -// mailUtil.send(); + mailUtil.send(); } msg.setMessageSenderNameRdd(StringUtils.join(receiverName, ",")); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/DataSimpleService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/DataSimpleService.java index 69663d6..5ec3c4a 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/DataSimpleService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/DataSimpleService.java @@ -22,7 +22,6 @@ public class DataSimpleService implements IDataSimpleService { @Override public void saveMachineFactory(MachineFactory machineFactory) { //生成主键 - machineFactory.setId(new SnowflakeIdMaker().nextId()); machineFactoryDao.save(machineFactory); }*/ /* diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/ReportService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/ReportService.java new file mode 100644 index 0000000..7d1a666 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/ReportService.java @@ -0,0 +1,43 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.core.api.iservice.base.IReportService; +import cn.estsh.i3plus.core.apiservice.dao.IReportDao; +import cn.estsh.i3plus.pojo.base.tool.HqlPack; +import cn.estsh.i3plus.pojo.model.report.TemplateModel; +import org.hibernate.QueryException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-20 16:06 + * @Modify: + **/ +@Service +public class ReportService implements IReportService { + + private Logger LOGGER = LoggerFactory.getLogger(ReportService.class); + + @Autowired + private IReportDao reportDao; + + + @Override + public void checkReportHQL(String hql) { + LOGGER.info("报表 HQL 注入检查:{}",hql); + // HQL 非法入侵检查 + hql = HqlPack.getSafeParam(hql); + } + + @Override + public List selectTemplateModel(TemplateModel model) throws Exception{ + LOGGER.info("报表执行 model :{}",model); + return reportDao.findByHqlObjects(model.getHql(), model.getParamName(), model.getParamValue()); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java index e96bd8a..ffb50af 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java @@ -2,7 +2,6 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; -import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; @@ -41,7 +40,7 @@ public class SysRoleService implements ISysRoleService { public static final Logger LOGGER = LoggerFactory.getLogger(SysRoleService.class); @Autowired - private SysRoleRepository sysRoleRDao; + private SysRoleRepository roleRDao; @Autowired private SysMenuRepository sysMenuRDao; @@ -56,7 +55,7 @@ public class SysRoleService implements ISysRoleService { @ApiOperation(value = "更新角色信息",notes = "更新角色信息") public void updateSysRole(SysRole sysRole) { LOGGER.info("系统角色 SYS_ROLE :{}", sysRole); - sysRoleRDao.update(sysRole); + roleRDao.update(sysRole); // 更新冗余信息 personnelService.refreshUpdateSysRoleRdd(sysRole.getId()); } @@ -65,10 +64,10 @@ public class SysRoleService implements ISysRoleService { @ApiOperation(value = "更新角色信息",notes = "更新角色状态信息") public void updateSysRoleStatus(Long id, int status, SessionUser user) { LOGGER.info("系统角色 SYS_MENU id:{} status:{} user:{}", id,status,user); - SysRole role = sysRoleRDao.getById(id); + SysRole role = roleRDao.getById(id); role.setRoleStatus(status); role.setModifyUser(user.getUserName()); - sysRoleRDao.update(role); + roleRDao.update(role); } @Override @@ -78,7 +77,7 @@ public class SysRoleService implements ISysRoleService { StringBuffer where = new StringBuffer(); HqlPack.getInPack(StringUtils.join( ids,","), "id", where); - sysRoleRDao.updateByHqlWhere(where.toString(), "roleStatus", status); + roleRDao.updateByHqlWhere(where.toString(), "roleStatus", status); } @Override @@ -86,14 +85,14 @@ public class SysRoleService implements ISysRoleService { public void deleteSysRoleById(Long id) { LOGGER.info("系统角色 SYS_ROLE Key:{}", id); refRoleMenuRDao.deleteByProperty("roleId",id); - sysRoleRDao.deleteById(id); + roleRDao.deleteById(id); } @Override @ApiOperation(value = "删除角色信息",notes = "根据ID 批量删除角色信息") public void deleteSysRoleByIds(Long[] ids) { LOGGER.info("系统角色 SYS_ROLE ids :{}", ids); - long positionCount = sysRoleRDao.findByHqlWhereCount(CoreHqlPack.packHqlIds("parentId",ids)); + long positionCount = roleRDao.findByHqlWhereCount(CoreHqlPack.packHqlIds("parentId",ids)); if (positionCount >= 1) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) @@ -103,7 +102,7 @@ public class SysRoleService implements ISysRoleService { .build(); }else { refRoleMenuRDao.deleteByPropertyIn("roleId",ids); - sysRoleRDao.deleteByIds(ids); + roleRDao.deleteByIds(ids); } } @@ -111,7 +110,7 @@ public class SysRoleService implements ISysRoleService { @ApiOperation(value = "新增角色信息") public SysRole insertSysRole(SysRole sysRole) { LOGGER.info("系统角色 SYS_ROLE :{}", sysRole); - return sysRoleRDao.insert(sysRole); + return roleRDao.insert(sysRole); } @Override @@ -130,7 +129,7 @@ public class SysRoleService implements ISysRoleService { LOGGER.info("系统角色 List :{}", ids); String roleWhere = CoreHqlPack.packHqlIds("id", roleIds); - List roleList = sysRoleRDao.findByHqlWhere(roleWhere); + List roleList = roleRDao.findByHqlWhere(roleWhere); if(roleList != null && roleList.size() > 0){ List moduleListRdd = new ArrayList<>(); @@ -190,7 +189,7 @@ public class SysRoleService implements ISysRoleService { } refRoleMenuRDao.saveAll(refs); - sysRoleRDao.saveAll(roleList); + roleRDao.saveAll(roleList); }else { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) @@ -215,14 +214,23 @@ public class SysRoleService implements ISysRoleService { @ApiOperation(value = "查信角色信息",notes = "查询所有角色信息") public List findSysRoleAll() { LOGGER.info("系统角色 SYS_ROLE find All"); - return sysRoleRDao.findByProperty(new String[]{"roleStatus"},new Object[]{CommonEnumUtil.DATA_STATUS.ENABLE.getValue()}); + return roleRDao.findByProperty(new String[]{"roleStatus"},new Object[]{CommonEnumUtil.DATA_STATUS.ENABLE.getValue()}); + } + + @Override + @ApiOperation(value = "查信角色信息",notes = "查询指定角色信息") + public List findSysRoleByInId(Long[] ids) { + LOGGER.info("系统角色 SYS_ROLE find In Id"); + StringBuffer findWhere = new StringBuffer(); + HqlPack.getInPack(StringUtils.join(ids,","),"id",findWhere); + return roleRDao.findByHqlWhere(findWhere.toString()); } @Override @ApiOperation(value = "查信角色信息",notes = "根据 ID 查询角色信息") public SysRole getSysRoleById(Long id) { LOGGER.info("系统角色 SYS_ROLE find id:{}", id); - return sysRoleRDao.getOne(id); + return roleRDao.getOne(id); } @Override @@ -232,14 +240,14 @@ public class SysRoleService implements ISysRoleService { if (role == null) { //不传入实体对象,查询所有 - int count = sysRoleRDao.listCount(); + int count = roleRDao.listCount(); pager = PagerHelper.getPager(pager, count); - return new ListPager(sysRoleRDao.listPager(pager), pager); + return new ListPager(roleRDao.listPager(pager), pager); } else { //生成hql查询语句 String hqlPack = CoreHqlPack.packHqlSysRole(role); - pager = PagerHelper.getPager(pager, sysRoleRDao.findByHqlWhereCount(hqlPack)); - return new ListPager(sysRoleRDao.findByHqlWherePage(hqlPack + role.orderBy(), pager), pager); + pager = PagerHelper.getPager(pager, roleRDao.findByHqlWhereCount(hqlPack)); + return new ListPager(roleRDao.findByHqlWherePage(hqlPack + role.orderBy(), pager), pager); } } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/thread/CoreDemoThread.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/thread/CoreDemoThread.java new file mode 100644 index 0000000..ff2e74e --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/thread/CoreDemoThread.java @@ -0,0 +1,50 @@ +package cn.estsh.i3plus.core.apiservice.thread; + +import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService; +import cn.estsh.i3plus.icloud.core.sdk.ICorePersonnelCloud; +import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.impp.framework.boot.thread.BaseThread; +import cn.estsh.impp.framework.boot.thread.ImppThreadPool; +import cn.estsh.impp.framework.boot.util.ServletContextUtil; +import cn.estsh.impp.framework.boot.util.SpringContextsUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; + +/** + * @Description : 多线程执行案例 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-01-14 15:26 + * @Modify: + **/ +public class CoreDemoThread extends BaseThread { + + private static final Logger LOGGER = LoggerFactory.getLogger(CoreDemoThread.class); + + private String param; + + public CoreDemoThread(String param){ + this.param = param; + IPersonnelService personnelService = (IPersonnelService) SpringContextsUtil.getBean(IPersonnelService.class); + LOGGER.info("spring容器获取服务:{}" + personnelService); + + WebApplicationContext webAppContext = WebApplicationContextUtils.getWebApplicationContext(ServletContextUtil.getServletContext()); + ISysMessageService sysMessageService = webAppContext.getBean(ISysMessageService.class); + LOGGER.info("servlet容器获取服务:{}" + sysMessageService); + } + + @Override + public boolean doRun() { + //处理业务逻辑 + System.out.println("线程执行:获取参数" + param); + return true; + } + + //使用方式 + public static void main(String[] args){ + ImppThreadPool.getThreadExcutorService().execute(new CoreDemoThread("thread param")); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ExcelUtil.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ExcelUtil.java index fb410d1..d2de4b4 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ExcelUtil.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ExcelUtil.java @@ -12,7 +12,6 @@ import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.SysDictionary; import cn.estsh.i3plus.pojo.platform.bean.SysFile; import cn.estsh.i3plus.pojo.platform.bean.SysMessage; -import cn.estsh.i3plus.pojo.platform.bean.SysTool; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import io.swagger.annotations.ApiParam; @@ -175,7 +174,7 @@ public class ExcelUtil { } finally { try { workbook.close(); - fos.close();; + fos.close(); } catch (IOException e) { LOGGER.error("IOException!", e); } 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 0441a03..11ffc87 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 @@ -3,6 +3,7 @@ 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.platform.bean.MailConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -58,6 +59,18 @@ public class MailUtil { return this; } + //初始化服务器邮箱参数 + public MailUtil init(MailConfig mailConfig) { + this.smtpHost = mailConfig.getMailHost(); + this.smtpPort = mailConfig.getMailPort(); + this.from = mailConfig.getMailUser(); + this.nick = mailConfig.getMailNick(); + this.smtpUser = mailConfig.getMailUser(); + this.smtpPassword = mailConfig.getMailPassword(); + this.isAuthenticationSMTP = true; + + return this; + } /** * 设置收件人地址 * diff --git a/modules/i3plus-core-apiservice/src/main/resources/application.properties b/modules/i3plus-core-apiservice/src/main/resources/application.properties index 72ea5ac..a6417a7 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application.properties @@ -35,12 +35,12 @@ spring.resources.static-locations=/static/**,/** #app基础包路径 impp.app.base-packages=cn.estsh.i3plus.core #app对象路径 -impp.app.pojo-packages=cn.estsh.i3plus.pojo +impp.app.pojo-packages=cn.estsh.i3plus.pojo.platform #dao接口包 impp.app.pojo-dao=${impp.app.base-packages}.apiservice.dao #mongo-dao接口包 impp.app.pojo-mongo-dao=${impp.app.base-packages}.**.apiservice.daomongo #对象持久化包路径,可以多个包,逗号分隔 impp.app.pojo-repository=${impp.app.pojo-packages}.**.repository -#mongodb资源仓 -impp.app.pojo-mongo-repository=${impp.app.pojo-packages}.**.repositorymongo \ No newline at end of file +#mongodb资源仓go +impp.app.pojo-mongo-repository=${impp.app.pojo-packages}.**.repositorymon \ No newline at end of file