From 2c1088a4315ed4bddff32a6090a06df5208ab147 Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Thu, 13 Dec 2018 10:14:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=BE=AE=E6=9C=8D=E5=8A=A1=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=8F=90=E9=86=92=20=E5=8F=8A=E9=83=A8=E5=88=86dashbo?= =?UTF-8?q?ard?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/i3plus-core-api/i3plus-core-api.iml | 85 ---------------- .../api/iservice/busi/ISysDepartmentService.java | 8 ++ .../api/iservice/busi/ISysLogOperateService.java | 8 ++ .../api/iservice/busi/ISysLogSystemService.java | 10 ++ .../api/iservice/busi/ISysOrganizeService.java | 9 +- .../core/api/iservice/busi/ISysUserService.java | 8 ++ .../controller/busi/SysDashboardController.java | 88 ++++++++++++++++ .../controller/busi/SysMessageController.java | 2 - .../core/apiservice/dao/ISysLogSystemDao.java | 28 ++++++ .../core/apiservice/mq/MailQueueReceiver.java | 97 ------------------ ...ceiver.java => MessageLetterQueueReceiver.java} | 7 +- .../apiservice/mq/MessageMailQueueReceiver.java | 112 +++++++++++++++++++++ .../serviceimpl/busi/SysDepartmentService.java | 5 + .../serviceimpl/busi/SysLogOperateService.java | 12 +++ .../serviceimpl/busi/SysLogSystemService.java | 10 +- .../serviceimpl/busi/SysMessageService.java | 3 + .../serviceimpl/busi/SysOrganizeService.java | 7 +- .../serviceimpl/busi/SysUserService.java | 6 ++ .../i3plus/core/apiservice/util/MailUtil.java | 11 ++ .../core/apiservice/serviceimpl/busi/TestBase.java | 7 ++ .../apiservice/serviceimpl/busi/TestRedis.java | 35 +++++++ 21 files changed, 368 insertions(+), 190 deletions(-) create mode 100644 modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java create mode 100644 modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/ISysLogSystemDao.java delete mode 100644 modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MailQueueReceiver.java rename modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/{LetterQueueReceiver.java => MessageLetterQueueReceiver.java} (94%) create mode 100644 modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java create mode 100644 modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestRedis.java diff --git a/modules/i3plus-core-api/i3plus-core-api.iml b/modules/i3plus-core-api/i3plus-core-api.iml index b27d1a0..5fc3092 100644 --- a/modules/i3plus-core-api/i3plus-core-api.iml +++ b/modules/i3plus-core-api/i3plus-core-api.iml @@ -14,89 +14,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDepartmentService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDepartmentService.java index 6f0f6fa..e7477e2 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDepartmentService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDepartmentService.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.core.api.iservice.busi; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.platform.bean.SysDepartment; +import io.swagger.annotations.ApiOperation; import java.util.List; @@ -68,4 +69,11 @@ public interface ISysDepartmentService { * @return */ ListPager findSysDepartmentByPager(SysDepartment department, Pager pager); + + /** + * 获取部门数量 + * @return + */ + @ApiOperation(value = "获取部门数量") + long getSysDepartmentCount(); } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLogOperateService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLogOperateService.java index 94054fc..1d9576f 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLogOperateService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLogOperateService.java @@ -73,4 +73,12 @@ public interface ISysLogOperateService { */ @ApiOperation(value = "操作日志复杂查询,分页,排序",notes = "操作日志复杂查询,分页,排序") ListPager querySysLogOperateByPager(SysLogOperate logOperate, Pager pager); + + /** + * 查询最新的操作日志 + * @param num + * @return + */ + @ApiOperation(value = "查询最新的操作日志") + List findNewSysLogOperate(Integer num); } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLogSystemService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLogSystemService.java index 82e32b4..2e86efb 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLogSystemService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLogSystemService.java @@ -6,6 +6,7 @@ import cn.estsh.i3plus.pojo.platform.bean.SysLogSystem; import io.swagger.annotations.ApiOperation; import java.util.List; +import java.util.Map; /** * @Description : 系统日志服务接口 @@ -30,4 +31,13 @@ public interface ISysLogSystemService { @ApiOperation(value = "系统日志分页复杂查询",notes = "系统日志分页复杂查询") ListPager querySysLogSystemByPager(SysLogSystem logSystem, Pager pager); + + /** + * 查询时间段内平均请求耗时 + * @param startTime + * @param endTime + * @return + */ + @ApiOperation(value = "查询时间段内平均请求耗时") + Map queryAvgExecuteTime(String startTime,String endTime); } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysOrganizeService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysOrganizeService.java index ecb7a68..cceb453 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysOrganizeService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysOrganizeService.java @@ -9,7 +9,7 @@ import io.swagger.annotations.ApiOperation; import java.util.List; /** - * @Description : 组织业务接口 + * @Description : 组织业务接口 * @Reference : * @Author : wei.peng * @Date : 2018-10-22 16:58:42.941 @@ -72,4 +72,11 @@ public interface ISysOrganizeService { * @return */ SysOrganize getSysOrganizeById(Long id); + + /** + * 查询组织个数 + * @return + */ + @ApiOperation(value = "查询组织个数") + long getSysOrganizeCount(); } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java index a1e5cb9..4127d7f 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.core.api.iservice.busi; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.platform.bean.*; +import io.swagger.annotations.ApiOperation; import org.apache.shiro.authc.AuthenticationException; import java.util.List; @@ -175,4 +176,11 @@ public interface ISysUserService { * @param user */ void checkSysUserOnly(SysUser user); + + /** + * 查询账户数量 + * @return + */ + @ApiOperation(value = "查询账户数量") + long getSysUserCount(); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java new file mode 100644 index 0000000..7ce95fb --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java @@ -0,0 +1,88 @@ +package cn.estsh.i3plus.core.apiservice.controller.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.*; +import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.platform.common.util.PlatformConstWords; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.impp.framework.base.controller.CoreBaseController; +import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.util.ImppRedis; +import cn.estsh.impp.framework.boot.util.ResultBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * @Description : + * @Reference : + * @Author : yunhao + * @CreateDate : 2018-12-10 17:04 + * @Modify: + **/ +@RestController +@Api(description = "Dashboard服务") +@RequestMapping(PlatformConstWords.BASE_URL + "/dashboard") +public class SysDashboardController { + + @Autowired + private ISysUserService sysUserService; + @Autowired + private ISysOrganizeService sysOrganizeService; + @Autowired + private ISysDepartmentService sysDepartmentService; + @Autowired + private ISysMessageService sysMessageService; + @Autowired + private ISysLogOperateService sysLogOperateService; + @Autowired + private ISysLogSystemService sysLogSystemService; +// @Autowired +// private EurekaServerContext eurekaServerContext; + @Resource(name="redisRes") + private ImppRedis redisRes; + + + @GetMapping("/get") + @ApiOperation(value = "获取dashboard数据") + public ResultBean getDashboardData(){ + try { + Map dashboardData = (Map) redisRes.getObject(PlatformConstWords.DASHBOARD_REDIS_KEY); + if(dashboardData == null){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + Calendar cal = Calendar.getInstance(); + cal.setTime(new Date()); + + String startTime = sdf.format(new Date()); + cal.add(Calendar.MINUTE,10); + String endTime = sdf.format(cal.getTime()); + + dashboardData = new HashMap<>(); + dashboardData.put("userNum",sysUserService.getSysUserCount()); + dashboardData.put("orgNum",sysOrganizeService.getSysOrganizeCount()); + dashboardData.put("deptNum",sysDepartmentService.getSysDepartmentCount()); + dashboardData.put("logOperate",sysLogOperateService.findNewSysLogOperate(10)); + dashboardData.put("",sysLogSystemService.queryAvgExecuteTime(startTime,endTime)); + + redisRes.putHashMap(PlatformConstWords.DASHBOARD_REDIS_KEY,dashboardData,1000*60); + } + return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(dashboardData); + } catch ( + ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMessageController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMessageController.java index 3d24a1c..f5cdf0c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMessageController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMessageController.java @@ -64,8 +64,6 @@ public class SysMessageController extends CoreBaseController { sysMessage.setMessageSendTime(sdf.format(new Date())); sysMessage.setMessageContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getValue()); - ConvertBean.modelInitialize(sysMessage,getSessionUser()); - sysMessageService.doSendSysMessage(sysMessage); return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); }catch(ImppBusiException busExcep){ diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/ISysLogSystemDao.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/ISysLogSystemDao.java new file mode 100644 index 0000000..c318ffd --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/ISysLogSystemDao.java @@ -0,0 +1,28 @@ +package cn.estsh.i3plus.core.apiservice.dao; + +import io.swagger.annotations.ApiOperation; +import org.bson.Document; + +import java.util.List; +import java.util.Map; + +/** + * @Description : 操作日志 + * @Reference : + * @Author : yunhao + * @CreateDate : 2018-12-11 13:22 + * @Modify: + **/ +public interface ISysLogSystemDao { + + + /** + * 查询时间段内平均请求耗时 + * @param startTime + * @param endTime + * @return + */ + @ApiOperation(value = "查询时间段内平均请求耗时") + Map querySysLogOperateAvgExecuteTime(String startTime, String endTime); + +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MailQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MailQueueReceiver.java deleted file mode 100644 index 587584a..0000000 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MailQueueReceiver.java +++ /dev/null @@ -1,97 +0,0 @@ -package cn.estsh.i3plus.core.apiservice.mq; - -import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService; -import cn.estsh.i3plus.core.apiservice.util.MailUtil; -import cn.estsh.i3plus.platform.common.tool.TimeTool; -import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; -import cn.estsh.i3plus.pojo.platform.bean.SysMessage; -import cn.estsh.i3plus.pojo.platform.bean.SysRefUserMessage; -import cn.estsh.i3plus.pojo.platform.bean.SysUser; -import com.rabbitmq.client.Channel; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.amqp.core.Message; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.io.IOException; - -/** - * @Description : 邮件队列处理 - * @Reference : - * @Author : yunhao - * @CreateDate : 2018-11-15 22:15 - * @Modify: - **/ -@Component -public class MailQueueReceiver { - private static final Logger LOGGER = LoggerFactory.getLogger(MailQueueReceiver.class); - - @Autowired - ISysMessageService sysMessageService; - @Autowired - ISysUserService sysUserService; - @Autowired - MailUtil mailUtil; - /** - * 系统邮件处理队列 - * @param msg - * @param channel - * @param message - */ -// @RabbitListener(queues = I3CoreQueueConfig.IMPP_MESSAGE_MAIL_QUEUE) - public void processImppMail(SysMessage msg, Channel channel, Message message) { - try { - LOGGER.info("【MQ-IMPP_MESSAGE_MAIL_QUEUE】数据接收成功:{}",msg);msg = sysMessageService.insertSysMessage(msg); - mailUtil.init(); - - // 收件人信息 - String[] messageReceiver = msg.getMessageReceiversId().split(","); - String[] receiverName = new String[messageReceiver.length]; - - SysRefUserMessage refUserMessage; - SysUser sysUser; - - for (int i = 0; i < messageReceiver.length; i++) { - sysUser = sysUserService.getSysUserById(Long.parseLong(messageReceiver[i])); - receiverName[i] = sysUser.getUserName(); - - refUserMessage = new SysRefUserMessage(); - refUserMessage.setMessageId(msg.getId()); - refUserMessage.setMessageTitleRdd(msg.getMessageTitle()); - refUserMessage.setMessageTypeRdd(msg.getMessageType()); - refUserMessage.setMessageSenderNameRdd(msg.getMessageSenderNameRdd()); - refUserMessage.setReceiverId(sysUser.getId()); - refUserMessage.setReceiverNameRdd(sysUser.getUserName()); - refUserMessage.setMessageStatus(ImppEnumUtil.MESSAGE_STATUS.UNREAD.getValue()); - refUserMessage.setReceiverTime(TimeTool.getNowTime(true)); - - sysMessageService.insertSysRefUserMessage(refUserMessage); - - // 发送邮件 - mailUtil.setSubject(msg.getMessageTitle()); - mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType())); - mailUtil.setBody(msg.getMessageContent()); - mailUtil.setTo(sysUser.getUserEmail()); - mailUtil.send(); - } - - msg.setMessageSenderNameRdd(StringUtils.join(receiverName, ",")); - sysMessageService.updateSysMessage(msg); - - //信息已处理 - channel.basicAck(message.getMessageProperties().getDeliveryTag(),false); - } catch (IOException e) { - LOGGER.error("【MQ-IMPP_MESSAGE_MAIL_QUEUE】处理出错:{}",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/LetterQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java similarity index 94% rename from modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/LetterQueueReceiver.java rename to modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java index 8f19e23..39472b8 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/LetterQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java @@ -14,6 +14,7 @@ import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -28,8 +29,8 @@ import java.util.List; * @Modify: **/ @Component -public class LetterQueueReceiver { - private static final Logger LOGGER = LoggerFactory.getLogger(LetterQueueReceiver.class); +public class MessageLetterQueueReceiver { + private static final Logger LOGGER = LoggerFactory.getLogger(MessageLetterQueueReceiver.class); @Autowired ISysMessageService sysMessageService; @@ -43,7 +44,7 @@ public class LetterQueueReceiver { * @param message * 发送:rabbitTemplate.convertAndSend(I3CoreQueueConfig.IMPP_MESSAGE_QUEUE, new SysMessage(....)); */ -// @RabbitListener(queues = I3CoreQueueConfig.IMPP_MESSAGE_LETTER_QUEUE) + @RabbitListener(queues = I3CoreQueueConfig.IMPP_MESSAGE_LETTER_QUEUE) public void processImppMessage(SysMessage msg, Channel channel, Message message) { try { LOGGER.info("【MQ-IMPP_MESSAGE_LETTER_QUEUE】数据接收成功:{}",msg); 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 new file mode 100644 index 0000000..462acd3 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java @@ -0,0 +1,112 @@ +package cn.estsh.i3plus.core.apiservice.mq; + +import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService; +import cn.estsh.i3plus.core.apiservice.util.MailUtil; +import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.platform.common.util.PlatformConstWords; +import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysMessage; +import cn.estsh.i3plus.pojo.platform.bean.SysRefUserMessage; +import cn.estsh.i3plus.pojo.platform.bean.SysUser; +import com.rabbitmq.client.Channel; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.IOException; + +/** + * @Description : 邮件队列处理 + * @Reference : + * @Author : yunhao + * @CreateDate : 2018-11-15 22:15 + * @Modify: + **/ +@Component +public class MessageMailQueueReceiver { + private static final Logger LOGGER = LoggerFactory.getLogger(MessageMailQueueReceiver.class); + + @Autowired + ISysMessageService sysMessageService; + @Autowired + ISysUserService sysUserService; + @Autowired + ISysConfigService sysConfigService; + @Autowired + MailUtil mailUtil; + /** + * 系统邮件处理队列 + * @param msg + * @param channel + * @param message + */ + @RabbitListener(queues = I3CoreQueueConfig.IMPP_MESSAGE_MAIL_QUEUE) + public void processImppMail(SysMessage msg, Channel channel, Message message) { + try { + LOGGER.info("【MQ-IMPP_MESSAGE_MAIL_QUEUE】数据接收成功:{}",msg);msg = sysMessageService.insertSysMessage(msg); + mailUtil.init(); + + // 系统预警邮件与用户邮件判断 + if(PlatformConstWords.CONTACT_MAIL.equals(msg.getMessageReceiversId())){ + // 发送邮件 + mailUtil.setSubject(msg.getMessageTitle()); + mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType())); + mailUtil.setBody(msg.getMessageContent()); + mailUtil.setTo(sysConfigService.getSysConfigByCode(PlatformConstWords.CONTACT_MAIL).getConfigValue()); + mailUtil.send(); + }else { + + // 收件人信息 + String[] messageReceiver = msg.getMessageReceiversId().split(","); + String[] receiverName = new String[messageReceiver.length]; + + SysRefUserMessage refUserMessage; + SysUser sysUser; + + for (int i = 0; i < messageReceiver.length; i++) { + sysUser = sysUserService.getSysUserById(Long.parseLong(messageReceiver[i])); + receiverName[i] = sysUser.getUserName(); + + refUserMessage = new SysRefUserMessage(); + refUserMessage.setMessageId(msg.getId()); + refUserMessage.setMessageTitleRdd(msg.getMessageTitle()); + refUserMessage.setMessageTypeRdd(msg.getMessageType()); + refUserMessage.setMessageSenderNameRdd(msg.getMessageSenderNameRdd()); + refUserMessage.setReceiverId(sysUser.getId()); + refUserMessage.setReceiverNameRdd(sysUser.getUserName()); + refUserMessage.setMessageStatus(ImppEnumUtil.MESSAGE_STATUS.UNREAD.getValue()); + refUserMessage.setReceiverTime(TimeTool.getNowTime(true)); + + sysMessageService.insertSysRefUserMessage(refUserMessage); + + // 发送邮件 + mailUtil.setSubject(msg.getMessageTitle()); + mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType())); + mailUtil.setBody(msg.getMessageContent()); + mailUtil.setTo(sysUser.getUserEmail()); + mailUtil.send(); + } + + msg.setMessageSenderNameRdd(StringUtils.join(receiverName, ",")); + sysMessageService.updateSysMessage(msg); + } + //信息已处理 + channel.basicAck(message.getMessageProperties().getDeliveryTag(),false); + } catch (IOException e) { + LOGGER.error("【MQ-IMPP_MESSAGE_MAIL_QUEUE】处理出错:{}",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/serviceimpl/busi/SysDepartmentService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java index c925343..061e70a 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java @@ -202,4 +202,9 @@ public class SysDepartmentService implements ISysDepartmentService { } } + @Override + public long getSysDepartmentCount() { + return departmentRDao.listCount(); + } + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLogOperateService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLogOperateService.java index 4822f16..72b66d2 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLogOperateService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLogOperateService.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysLogOperateService; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.SysLogOperate; import cn.estsh.i3plus.pojo.platform.repositorymongo.SysLogOperateRepository; import cn.estsh.i3plus.pojo.platform.sqlpack.CoreBsonPack; @@ -87,4 +88,15 @@ public class SysLogOperateService implements ISysLogOperateService { return new ListPager(logOperateRDao.findByBsonPager(bson,pager,logOperate.getOrderByParam(),logOperate.getAscOrDesc()),pager); } } + + @Override + public List findNewSysLogOperate(Integer num) { + Pager page = new Pager(); + page.setCurrentPage(1); + page.setPageSize(num); + SysLogOperate sysLogOperate = new SysLogOperate(); + sysLogOperate.setOrderByParam("createDatetime"); + sysLogOperate.setAscOrDesc(CommonEnumUtil.ASC_OR_DESC.DESC.getValue()); + return logOperateRDao.findByBsonPager(null,page,sysLogOperate.getOrderByParam(),sysLogOperate.getAscOrDesc()); + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLogSystemService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLogSystemService.java index 9cc58b8..30245a2 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLogSystemService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLogSystemService.java @@ -1,7 +1,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysLogSystemService; -import cn.estsh.i3plus.core.api.iservice.busi.ISystemResourceService; +import cn.estsh.i3plus.core.apiservice.dao.ISysLogSystemDao; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; @@ -16,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Map; /** * @Description : 系统日志服务接口实现 @@ -31,6 +32,8 @@ public class SysLogSystemService implements ISysLogSystemService { @Autowired private SysLogSystemRepository logSystemRDao; + @Autowired + private ISysLogSystemDao sysLogSystemDao; @Override @ApiOperation(value = "添加系统日志",notes = "添加系统日志") @@ -69,4 +72,9 @@ public class SysLogSystemService implements ISysLogSystemService { ,logSystem.getAscOrDesc()),pager); } } + + @Override + public Map queryAvgExecuteTime(String startTime, String endTime) { + return sysLogSystemDao.querySysLogOperateAvgExecuteTime(startTime,endTime); + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMessageService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMessageService.java index 3b4d9d6..d97589a 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMessageService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMessageService.java @@ -17,6 +17,7 @@ import cn.estsh.i3plus.pojo.platform.repository.SysUserRepository; 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.ImppRedis; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -24,6 +25,8 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; /** diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java index 2a0f762..113b54a 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java @@ -20,7 +20,7 @@ import org.springframework.stereotype.Service; import java.util.List; /** - * @Description : 组织业务接口实现 + * @Description : 组织业务接口实现 * @Reference : * @Author : wei.peng * @Date : 2018-10-22 16:58:42.957 @@ -167,4 +167,9 @@ public class SysOrganizeService implements ISysOrganizeService { LOGGER.info("组织 ORGANIZE find id:{}", id); return organizeRDao.getById(id); } + + @Override + public long getSysOrganizeCount() { + return organizeRDao.listCount(); + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java index 9b3a663..dd1ce44 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java @@ -410,6 +410,12 @@ public class SysUserService implements ISysUserService { } } + @Override + @ApiOperation(value = "查询账户数量") + public long getSysUserCount() { + return sysUserRDao.listCount(); + } + /** * 封装用户登陆信息 * 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 4acefbc..0441a03 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 @@ -61,6 +61,17 @@ public class MailUtil { /** * 设置收件人地址 * + * @param nick + * 收件人Email地址 + */ + public void setNick(String nick) { + this.nick = nick; + } + + + /** + * 设置收件人地址 + * * @param aEmail * 收件人Email地址 */ diff --git a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestBase.java b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestBase.java index 379178e..45eac3b 100644 --- a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestBase.java +++ b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestBase.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService; import cn.estsh.impp.framework.boot.init.ApplicationProperties; +import cn.estsh.impp.framework.boot.util.ImppRedis; import org.junit.After; import org.junit.Before; import org.junit.FixMethodOrder; @@ -12,6 +13,8 @@ import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMock import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; +import javax.annotation.Resource; + /** * @Description : * @Reference : @@ -31,10 +34,14 @@ public class TestBase { @Autowired private ISysConfigService sysConfigService; + @Resource(name="redisRes") + private ImppRedis redisRes; + @Before public void init() { System.out.println("-----------------开始测试-----------------"); app.setProfilesActive("unit-test"); + redisRes.multi(); } @After diff --git a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestRedis.java b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestRedis.java new file mode 100644 index 0000000..2efaf9d --- /dev/null +++ b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestRedis.java @@ -0,0 +1,35 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService; +import cn.estsh.impp.framework.boot.util.ImppRedis; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import javax.annotation.Resource; +import java.beans.Transient; +import java.util.HashMap; + +/** + * @Description : + * @Reference : + * @Author : yunhao + * @CreateDate : 2018-12-12 22:06 + * @Modify: + **/ +public class TestRedis extends TestBase { + + @Autowired + private ISysMessageService sysMessageService; + + @Test + public void testReids(){ +// // 放入缓存 +// HashMap resource = new HashMap(); +// resource.put("test","test110"); +// redisRes.putHashMap("junit3",resource,1000 * 60); +// System.out.println(redisRes.getHashMap("junit3")); +// System.out.println(redisRes.commit()); +// System.out.println(redisRes.getHashMap("junit3")); + sysMessageService.insertRedis(); + } +} From 219f1dde42443ead46e91af652aadfad7f389380 Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Thu, 13 Dec 2018 19:46:31 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- i3plus-core.iml | 12 - modules/i3plus-core-api/i3plus-core-api.iml | 17 -- .../i3plus-core-apiservice.iml | 294 --------------------- .../serviceimpl/busi/SysMessageService.java | 18 -- .../serviceimpl/busi/SysUserInfoService.java | 14 + .../apiservice/serviceimpl/busi/TestRedis.java | 35 --- 6 files changed, 14 insertions(+), 376 deletions(-) delete mode 100644 i3plus-core.iml delete mode 100644 modules/i3plus-core-api/i3plus-core-api.iml delete mode 100644 modules/i3plus-core-apiservice/i3plus-core-apiservice.iml delete mode 100644 modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestRedis.java diff --git a/i3plus-core.iml b/i3plus-core.iml deleted file mode 100644 index a0d4a1e..0000000 --- a/i3plus-core.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/modules/i3plus-core-api/i3plus-core-api.iml b/modules/i3plus-core-api/i3plus-core-api.iml deleted file mode 100644 index 5fc3092..0000000 --- a/modules/i3plus-core-api/i3plus-core-api.iml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/modules/i3plus-core-apiservice/i3plus-core-apiservice.iml b/modules/i3plus-core-apiservice/i3plus-core-apiservice.iml deleted file mode 100644 index 6628966..0000000 --- a/modules/i3plus-core-apiservice/i3plus-core-apiservice.iml +++ /dev/null @@ -1,294 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMessageService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMessageService.java index bd8bd7c..e5bc83e 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMessageService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMessageService.java @@ -180,22 +180,4 @@ public class SysMessageService implements ISysMessageService { @Resource(name="redisRes") private ImppRedis redisRes; - - @Override - public void insertRedis() { - - // 放入缓存 - HashMap resource = new HashMap(); - resource.put("test","test110"); -// redisRes.multi(); - redisRes.putHashMap("junit3",resource,1000 * 60); - System.out.println(redisRes.getHashMap("junit3")); -// System.out.println(redisRes.commit()); -// System.out.println(redisRes.getHashMap("junit3")); - } - - @Override - public void getRedis() { - System.out.println(redisRes.getHashMap("junit3")); - } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java index f39319d..035f489 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java @@ -35,6 +35,7 @@ public class SysUserInfoService implements ISysUserInfoService { public static final Logger LOGGER = LoggerFactory.getLogger(SysUserInfoService.class); + @Autowired private SysUserInfoRepository sysUserInfoRDao; @@ -195,6 +196,19 @@ public class SysUserInfoService implements ISysUserInfoService { } @Override + @ApiOperation(value = "刷新用户账号信息",notes = "根据UserInfoId 刷新用户账号信息") + public void refreshUserInfoUserNum(Long userInfoId) { + LOGGER.info("用户信息 SysUserInfo userInfoId:{}",userInfoId); + SysUserInfo userInfo = sysUserInfoRDao.getById(userInfoId); + if(userInfo != null){ + int count = sysUserRepository.findByPropertyCount("userInfoId", userInfo.getId()); + userInfo.setUserNum(count); + sysUserInfoRDao.save(userInfo); + + } + } + + @Override public void deleteSysUserInfoById(Long id) { LOGGER.info("用户信息 SysUserInfo id:{}",id); sysUserInfoRDao.deleteById(id); diff --git a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestRedis.java b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestRedis.java deleted file mode 100644 index 2efaf9d..0000000 --- a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestRedis.java +++ /dev/null @@ -1,35 +0,0 @@ -package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; - -import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService; -import cn.estsh.impp.framework.boot.util.ImppRedis; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import javax.annotation.Resource; -import java.beans.Transient; -import java.util.HashMap; - -/** - * @Description : - * @Reference : - * @Author : yunhao - * @CreateDate : 2018-12-12 22:06 - * @Modify: - **/ -public class TestRedis extends TestBase { - - @Autowired - private ISysMessageService sysMessageService; - - @Test - public void testReids(){ -// // 放入缓存 -// HashMap resource = new HashMap(); -// resource.put("test","test110"); -// redisRes.putHashMap("junit3",resource,1000 * 60); -// System.out.println(redisRes.getHashMap("junit3")); -// System.out.println(redisRes.commit()); -// System.out.println(redisRes.getHashMap("junit3")); - sysMessageService.insertRedis(); - } -}