From 68e11b1179d1231005079c3e61975eebe3ddd1b6 Mon Sep 17 00:00:00 2001 From: luyie Date: Thu, 5 Jun 2025 11:37:29 +0800 Subject: [PATCH] =?UTF-8?q?modify:=E8=A1=A5=E5=85=85=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E7=BC=BA=E5=A4=B1=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzims/message/entity/log/AppLogEntity.java | 22 +++ .../hzims/message/entity/log/MailLogEntity.java | 19 ++ .../hzims/message/entity/log/MessageLogEntity.java | 57 ++++++ .../hzims/message/entity/log/SmsLogEntity.java | 24 +++ .../hnac/hzims/message/entity/log/WsLogEntity.java | 13 ++ .../hnac/hzims/message/log/aspect/LogAspect.java | 216 +++++++++++++++++++++ .../com/hnac/hzims/message/log/aspect/SaveLog.java | 19 ++ .../hzims/message/log/mapper/AppLogMapper.java | 21 ++ .../hnac/hzims/message/log/mapper/AppLogMapper.xml | 24 +++ .../hzims/message/log/mapper/MailLogMapper.java | 20 ++ .../hzims/message/log/mapper/MailLogMapper.xml | 24 +++ .../hzims/message/log/mapper/SmsLogMapper.java | 21 ++ .../hnac/hzims/message/log/mapper/SmsLogMapper.xml | 23 +++ .../hzims/message/log/service/IAppLogService.java | 56 ++++++ .../hzims/message/log/service/IMailLogService.java | 38 ++++ .../message/log/service/IMessageLogService.java | 18 ++ .../hzims/message/log/service/ISmsLogService.java | 37 ++++ .../log/service/impl/AppLogServiceImpl.java | 15 ++ .../log/service/impl/MailLogServiceImpl.java | 20 ++ .../log/service/impl/SmsLogServiceImpl.java | 15 ++ 20 files changed, 702 insertions(+) create mode 100644 hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/AppLogEntity.java create mode 100644 hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/MailLogEntity.java create mode 100644 hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/MessageLogEntity.java create mode 100644 hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/SmsLogEntity.java create mode 100644 hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/WsLogEntity.java create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/log/aspect/LogAspect.java create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/log/aspect/SaveLog.java create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/AppLogMapper.java create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/AppLogMapper.xml create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/MailLogMapper.java create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/MailLogMapper.xml create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/SmsLogMapper.java create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/SmsLogMapper.xml create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/IAppLogService.java create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/IMailLogService.java create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/IMessageLogService.java create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/ISmsLogService.java create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/impl/AppLogServiceImpl.java create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/impl/MailLogServiceImpl.java create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/impl/SmsLogServiceImpl.java diff --git a/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/AppLogEntity.java b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/AppLogEntity.java new file mode 100644 index 0000000..c9664a3 --- /dev/null +++ b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/AppLogEntity.java @@ -0,0 +1,22 @@ +package com.hnac.hzims.message.entity.log; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author hx + */ +@ApiModel(value = "app推送日志对象",description = "app推送日志对象") +@TableName("hzims_app_log") +@Data +public class AppLogEntity extends MessageLogEntity { + + @ApiModelProperty("是否推送全平台") + private Boolean isAll; + + @ApiModelProperty("推送类型") + private String platformType; + +} diff --git a/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/MailLogEntity.java b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/MailLogEntity.java new file mode 100644 index 0000000..82dfc5f --- /dev/null +++ b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/MailLogEntity.java @@ -0,0 +1,19 @@ +package com.hnac.hzims.message.entity.log; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author hx + */ +@Data +@ApiModel(value = "邮箱推送日志",description = "邮箱推送日志") +@TableName("hzims_mail_log") +public class MailLogEntity extends MessageLogEntity { + + @ApiModelProperty("推送邮箱") + private String email; + +} diff --git a/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/MessageLogEntity.java b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/MessageLogEntity.java new file mode 100644 index 0000000..46b0a12 --- /dev/null +++ b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/MessageLogEntity.java @@ -0,0 +1,57 @@ +package com.hnac.hzims.message.entity.log; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springblade.core.mp.support.QueryField; +import org.springblade.core.mp.support.SqlCondition; +import org.springblade.core.tenant.mp.TenantEntity; + +import javax.validation.constraints.NotNull; + +/** + * @author hx + */ +@Data +@ApiModel(value = "消息日志") +@TableName("hzims_mail_log") +public class MessageLogEntity extends TenantEntity { + + @ApiModelProperty(value = "业务关键字",required = true) + @NotNull(message = "业务关键字不能为空") + @QueryField(condition = SqlCondition.LIKE) + private String businessKey; + + @ApiModelProperty(value = "业务分类。系统通知:system,事务消息:business,日常提醒:dailyRemind,巡检消息:inspect",required = true) + @NotNull(message = "业务分类不能为空") + @QueryField(condition = SqlCondition.EQUAL) + private String businessClassify; + + @ApiModelProperty(value = "主题",required = true) + @NotNull(message = "主题不能为空") + @QueryField(condition = SqlCondition.LIKE) + private String subject; + + @ApiModelProperty(value = "内容",required = true) + @NotNull(message = "内容不能为空") + private String content; + + @ApiModelProperty(value = "推送人") + @QueryField(condition = SqlCondition.EQUAL) + private String pusher; + + @ApiModelProperty(value = "消息推送请求参数") + @QueryField(condition = SqlCondition.EQUAL) + private String params; + + @ApiModelProperty(value = "错误日志") + private String errorLog; + + @ApiModelProperty(value = "推送结果") + private String result; + + @ApiModelProperty(value = "是否推送成功") + @QueryField(condition = SqlCondition.EQUAL) + private Boolean isSuccess; +} diff --git a/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/SmsLogEntity.java b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/SmsLogEntity.java new file mode 100644 index 0000000..06ba118 --- /dev/null +++ b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/SmsLogEntity.java @@ -0,0 +1,24 @@ +package com.hnac.hzims.message.entity.log; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author hx + */ +@Data +@ApiModel(value = "短信日志对象",description = "短信日志对象") +@TableName("hzims_sms_log") +public class SmsLogEntity extends MessageLogEntity implements Serializable { + + @ApiModelProperty(value = "接受短信的手机号",required = true) + private String phones; + + @ApiModelProperty("短信模板参数") + private String paramsJson; + +} diff --git a/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/WsLogEntity.java b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/WsLogEntity.java new file mode 100644 index 0000000..1bdfb94 --- /dev/null +++ b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/log/WsLogEntity.java @@ -0,0 +1,13 @@ +package com.hnac.hzims.message.entity.log; + +import io.swagger.annotations.ApiModel; +import lombok.Data; + +/** + * @author hx + */ +@ApiModel(value = "web推送日志对象",description = "web推送日志对象") +@Data +public class WsLogEntity extends MessageLogEntity { + +} diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/log/aspect/LogAspect.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/aspect/LogAspect.java new file mode 100644 index 0000000..65912f4 --- /dev/null +++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/aspect/LogAspect.java @@ -0,0 +1,216 @@ +package com.hnac.hzims.message.log.aspect; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.hnac.hzims.message.MessageConstants; +import com.hnac.hzims.message.dto.AppPushDto; +import com.hnac.hzims.message.dto.MailPushDto; +import com.hnac.hzims.message.dto.SmsPushDto; +import com.hnac.hzims.message.dto.WsPushDto; +import com.hnac.hzims.message.entity.MsgWsRecordEntity; +import com.hnac.hzims.message.entity.log.AppLogEntity; +import com.hnac.hzims.message.entity.log.MailLogEntity; +import com.hnac.hzims.message.entity.log.SmsLogEntity; +import com.hnac.hzims.message.log.service.IAppLogService; +import com.hnac.hzims.message.log.service.IMailLogService; +import com.hnac.hzims.message.log.service.ISmsLogService; +import com.hnac.hzims.message.service.IMsgWsRecordService; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springblade.core.log.logger.BladeLogger; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.ObjectUtil; +import org.springblade.core.tool.utils.SpringUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.lang.reflect.Method; +import java.util.concurrent.ExecutorService; + +/** + * @author hx + */ +@Aspect +@Component +@Slf4j +public class LogAspect { + + @Autowired + private IMailLogService mailLogService; + + @Autowired + private IAppLogService appLogService; + + @Autowired + private ISmsLogService smsLogService; + + @Autowired + private ExecutorService logExecutorService; + + @Autowired + private BladeLogger bladeLogger; + + @Pointcut("@annotation(com.hnac.hzims.message.log.aspect.SaveLog)") + public void logPointCut() { + } + + @Around("logPointCut()") + public Object around(ProceedingJoinPoint point) { + Object result = this.saveMessageLog(point); + return result; + } + + /*** + * 保存消息推送日志 + * @param joinPoint 连接点 + */ + private Object saveMessageLog(ProceedingJoinPoint joinPoint) { + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + Method method = signature.getMethod(); + SaveLog saveLog = method.getAnnotation(SaveLog.class); + Object[] args = joinPoint.getArgs(); + String errorLog = ""; + Object result = null; + try { + //执行方法 + result = joinPoint.proceed(); + } catch (Throwable throwable) { + bladeLogger.error("message-log",throwable.getMessage()); + throwable.printStackTrace(); + errorLog = throwable.getMessage(); + } + switch(saveLog.type()) { + case MessageConstants.APP_PUSH: + //app推送 + this.savePushMessage(args[0],result,errorLog); + break; + case MessageConstants.SMS_PUSH: + //短信推送 + this.saveSmsMessage(args[0],result,errorLog); + break; + case MessageConstants.WS_PUSH: + //websocket推送 + this.saveWebsocketMessage(args[0],result,errorLog); + break; + case MessageConstants.MAIL_PUSH: + //邮件推送 + this.saveMailMessage(args[0],result,errorLog); + break; + default: + break; + } + return result; + } + + /*** + * 保存websocket推送日志 + * @param arg 参数 + * @param result 结果 + * @param errorLog 错误日志 + */ + private void saveWebsocketMessage(Object arg, Object result, String errorLog) { + IMsgWsRecordService recordService = SpringUtil.getBean(IMsgWsRecordService.class); + WsPushDto wsPushDto = JSONObject.parseObject(JSON.toJSONString(arg),WsPushDto.class); + MsgWsRecordEntity recordEntity = MsgWsRecordEntity.builder() + .businessKey(wsPushDto.getBusinessKey()) + .businessClassify(wsPushDto.getBusinessClassify()) + .subject(wsPushDto.getSubject()) + .content(wsPushDto.getContent()) + .userIds(String.join(",",wsPushDto.getUserIdList())) + .isAll(wsPushDto.isAll()) + .parameters(JSON.toJSONString(arg)) + .response(ObjectUtil.isNotEmpty(result) ? JSON.toJSONString(result) : null) + .errorLog(errorLog) + .success(StringUtil.isBlank(errorLog)) + .build(); + //处理未登陆情况 + if(ObjectUtil.isEmpty(AuthUtil.getUser())){ + recordEntity.setTenantId(wsPushDto.getTenantId()); + recordEntity.setCreateUser(wsPushDto.getCreateUser()); + recordEntity.setCreateTime(DateUtil.now()); + } + recordService.save(recordEntity); + } + + /** + * 保存app推送日志 + * @param arg 参数 + * @param result 结果 + * @param errorLog 错误信息 + */ + private void savePushMessage(Object arg, Object result, String errorLog) { + logExecutorService.execute(()->{ + AppPushDto appPushDto = JSONObject.parseObject(JSON.toJSONString(arg),AppPushDto.class); + AppLogEntity appLogEntity = appLogService.pushConvertLog(appPushDto); + //补充日志中推送推送结果以及错误日志 + appLogEntity.setErrorLog(errorLog); + R r = JSONObject.parseObject(JSON.toJSONString(result),R.class); + appLogEntity.setParams(JSON.toJSONString(arg)); + appLogEntity.setResult(JSON.toJSONString(r)); + appLogEntity.setIsSuccess(r.isSuccess()); + //处理未登陆情况 + if(ObjectUtil.isEmpty(AuthUtil.getUser())){ + appLogEntity.setTenantId(appPushDto.getTenantId()); + appLogEntity.setCreateUser(appPushDto.getCreateUser()); + appLogEntity.setCreateTime(DateUtil.now()); + } + appLogService.save(appLogEntity); + }); + } + + /*** + * 保存短信推送日志 + * @param arg 参数 + * @param result 结果 + * @param errorLog 错误信息 + */ + private void saveSmsMessage(Object arg, Object result,String errorLog) { + SmsPushDto smsPushDto = JSONObject.parseObject(JSON.toJSONString(arg),SmsPushDto.class); + SmsLogEntity smsLogEntity = smsLogService.pushConvertLog(smsPushDto); + R r = JSONObject.parseObject(JSON.toJSONString(result),R.class); + smsLogEntity.setErrorLog(errorLog); + smsLogEntity.setResult(JSON.toJSONString(r)); + smsLogEntity.setParams(JSON.toJSONString(arg)); + smsLogEntity.setIsSuccess(r.isSuccess()); + //处理未登陆情况 + if(ObjectUtil.isEmpty(AuthUtil.getUser())){ + smsLogEntity.setTenantId(smsPushDto.getTenantId()); + smsLogEntity.setCreateUser(smsPushDto.getCreateUser()); + smsLogEntity.setCreateTime(DateUtil.now()); + } + smsLogService.save(smsLogEntity); + } + + /*** + * 保存邮件发送日志 + * @param arg 参数 + * @param result 结果 + * @param errorLog 错误信息 + */ + private void saveMailMessage(Object arg, Object result,String errorLog) { + logExecutorService.execute(()->{ + MailPushDto mailPushDto = JSONObject.parseObject(JSON.toJSONString(arg),MailPushDto.class); + MailLogEntity mailLogEntity = mailLogService.pushConvertLog(mailPushDto); + //补充日志中推送推送结果以及错误日志 + mailLogEntity.setErrorLog(errorLog); + R r = JSONObject.parseObject(JSON.toJSONString(result),R.class); + mailLogEntity.setResult(JSON.toJSONString(r)); + mailLogEntity.setParams(JSON.toJSONString(arg)); + mailLogEntity.setIsSuccess(r.isSuccess()); + //处理未登陆情况 + if(ObjectUtil.isEmpty(AuthUtil.getUser())){ + mailLogEntity.setTenantId(mailPushDto.getTenantId()); + mailLogEntity.setCreateUser(mailPushDto.getCreateUser()); + mailLogEntity.setCreateTime(DateUtil.now()); + } + mailLogService.save(mailLogEntity); + }); + } +} diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/log/aspect/SaveLog.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/aspect/SaveLog.java new file mode 100644 index 0000000..ef133c6 --- /dev/null +++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/aspect/SaveLog.java @@ -0,0 +1,19 @@ +package com.hnac.hzims.message.log.aspect; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * @author hx + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(value = {ElementType.METHOD}) +public @interface SaveLog { + /** + * 日志保存类型 + * @return + */ + String type() default ""; +} diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/AppLogMapper.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/AppLogMapper.java new file mode 100644 index 0000000..227a37a --- /dev/null +++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/AppLogMapper.java @@ -0,0 +1,21 @@ +package com.hnac.hzims.message.log.mapper; + +import com.hnac.hzims.message.dto.statistic.MsgPushStatisticDto; +import com.hnac.hzims.message.entity.log.AppLogEntity; +import com.hnac.hzims.message.vo.statistic.MsgPushStatisticVO; +import org.apache.ibatis.annotations.Param; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; + +/** + * @author hx + */ +public interface AppLogMapper extends UserDataScopeBaseMapper { + + /** + * 获取app推送统计 + * @param statisticDto + * @return + */ + MsgPushStatisticVO getAppPushStatistic(@Param("statisticDto") MsgPushStatisticDto statisticDto); + +} diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/AppLogMapper.xml b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/AppLogMapper.xml new file mode 100644 index 0000000..4bbe247 --- /dev/null +++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/AppLogMapper.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/MailLogMapper.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/MailLogMapper.java new file mode 100644 index 0000000..e819a79 --- /dev/null +++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/MailLogMapper.java @@ -0,0 +1,20 @@ +package com.hnac.hzims.message.log.mapper; + +import com.hnac.hzims.message.dto.statistic.MsgPushStatisticDto; +import com.hnac.hzims.message.entity.log.MailLogEntity; +import com.hnac.hzims.message.vo.statistic.MsgPushStatisticVO; +import org.apache.ibatis.annotations.Param; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; + +/** + * @author hx + */ +public interface MailLogMapper extends UserDataScopeBaseMapper { + + /** + * 获取邮箱推送统计 + * @param statisticDto + * @return + */ + MsgPushStatisticVO getMailPushStatistic(@Param("statisticDto") MsgPushStatisticDto statisticDto); +} diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/MailLogMapper.xml b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/MailLogMapper.xml new file mode 100644 index 0000000..47a85a2 --- /dev/null +++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/MailLogMapper.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/SmsLogMapper.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/SmsLogMapper.java new file mode 100644 index 0000000..5cbf3e3 --- /dev/null +++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/SmsLogMapper.java @@ -0,0 +1,21 @@ +package com.hnac.hzims.message.log.mapper; + +import com.hnac.hzims.message.dto.statistic.MsgPushStatisticDto; +import com.hnac.hzims.message.entity.log.SmsLogEntity; +import com.hnac.hzims.message.vo.statistic.MsgPushStatisticVO; +import org.apache.ibatis.annotations.Param; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; + +/** + * @author hx + */ +public interface SmsLogMapper extends UserDataScopeBaseMapper { + + /** + * 获取短信推送统计 + * @param statisticDto + * @return + */ + MsgPushStatisticVO getSmsPushStatistic(@Param("statisticDto") MsgPushStatisticDto statisticDto); + +} diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/SmsLogMapper.xml b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/SmsLogMapper.xml new file mode 100644 index 0000000..b6cac86 --- /dev/null +++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/mapper/SmsLogMapper.xml @@ -0,0 +1,23 @@ + + + + + diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/IAppLogService.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/IAppLogService.java new file mode 100644 index 0000000..7d6a87c --- /dev/null +++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/IAppLogService.java @@ -0,0 +1,56 @@ +package com.hnac.hzims.message.log.service; + +import com.hnac.hzims.message.dto.AppPushDto; +import com.hnac.hzims.message.entity.log.AppLogEntity; +import com.hnac.hzinfo.core.push.enums.PlatformType; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.log.logger.BladeLogger; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.ObjectUtil; +import org.springframework.util.Assert; + +import java.util.Arrays; +import java.util.stream.Collectors; + +/** + * @author hx + */ +public interface IAppLogService extends IMessageLogService { + + BladeLogger bladeLogger = new BladeLogger(); + + /** + * 将app推送对象 转换为日志对象 + * @param pushDto app推送对象 + * @return + */ + @Override + default AppLogEntity pushConvertLog(AppPushDto pushDto) { + Assert.isTrue(ObjectUtil.isNotEmpty(pushDto),()->{ + throw new ServiceException("app推送对象 转换为日志对象时,app推送对象不能为空"); + }); + AppLogEntity appLogEntity = BeanUtil.copy(pushDto,AppLogEntity.class); + //排除对数据权限的影响 + appLogEntity.setCreateDept(null); + appLogEntity.setCreateTime(null); + appLogEntity.setCreateUser(null); + appLogEntity.setUpdateUser(null); + appLogEntity.setUpdateTime(null); + Assert.isTrue(CollectionUtil.isNotEmpty(pushDto.getTags()),()-> { + bladeLogger.error("message-pushConvertLog","app推送 推送人不能为空"); + throw new ServiceException("app推送 推送人不能为空"); + }); + appLogEntity.setPusher(pushDto.getTags().stream().collect(Collectors.joining(","))); + String platformTypes = ""; + if(pushDto.getIsAll()){ + platformTypes = Arrays.stream(PlatformType.values()).map(PlatformType::getValue).collect(Collectors.joining(",")); + } + else { + platformTypes = Arrays.stream(pushDto.getPlatformTypes()).map(PlatformType::getValue).collect(Collectors.joining(",")); + } + appLogEntity.setPlatformType(platformTypes); + return appLogEntity; + } + +} diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/IMailLogService.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/IMailLogService.java new file mode 100644 index 0000000..cc6691d --- /dev/null +++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/IMailLogService.java @@ -0,0 +1,38 @@ +package com.hnac.hzims.message.log.service; + +import com.hnac.hzims.message.dto.MailPushDto; +import com.hnac.hzims.message.entity.log.MailLogEntity; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.ObjectUtil; +import org.springframework.util.Assert; + +import java.util.Arrays; +import java.util.stream.Collectors; + +/** + * @author hx + */ +public interface IMailLogService extends IMessageLogService { + + /** + * 邮件推送对象转换为邮箱日志对象 + * @param mailPushDto 邮件推送对象 + * @return 邮箱日志对象 + */ + @Override + default MailLogEntity pushConvertLog(MailPushDto mailPushDto){ + Assert.isTrue(ObjectUtil.isNotEmpty(mailPushDto),()->{ + throw new ServiceException("邮件推送对象转换为邮箱日志对象时,邮件推送对象不能为空"); + }); + MailLogEntity mailLogEntity = BeanUtil.copy(mailPushDto,MailLogEntity.class); + mailLogEntity.setEmail(Arrays.stream(mailPushDto.getToAccount()).collect(Collectors.joining(","))); + mailLogEntity.setCreateDept(null); + mailLogEntity.setCreateTime(null); + mailLogEntity.setCreateUser(null); + mailLogEntity.setUpdateUser(null); + mailLogEntity.setUpdateTime(null); + return mailLogEntity; + } + +} diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/IMessageLogService.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/IMessageLogService.java new file mode 100644 index 0000000..e36cff3 --- /dev/null +++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/IMessageLogService.java @@ -0,0 +1,18 @@ +package com.hnac.hzims.message.log.service; + +import com.hnac.hzims.message.dto.PushDto; +import com.hnac.hzims.message.entity.log.MessageLogEntity; +import org.springblade.core.mp.base.BaseService; + +/** + * @author hx + */ +public interface IMessageLogService extends BaseService { + /** + * 推送对象转换为日志 + * @param pushDto + * @return + */ + T pushConvertLog(E pushDto); + +} diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/ISmsLogService.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/ISmsLogService.java new file mode 100644 index 0000000..bcf3820 --- /dev/null +++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/ISmsLogService.java @@ -0,0 +1,37 @@ +package com.hnac.hzims.message.log.service; + +import com.alibaba.fastjson.JSON; +import com.hnac.hzims.message.dto.SmsPushDto; +import com.hnac.hzims.message.entity.log.SmsLogEntity; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.CollectionUtil; + +import java.util.stream.Collectors; + +/** + * @author hx + */ +public interface ISmsLogService extends IMessageLogService { + + /** + * 短信推送对象转换为日志对象 + * @param pushDto 短信推送对象 + * @return + */ + @Override + default SmsLogEntity pushConvertLog(SmsPushDto pushDto) { + SmsLogEntity smsLogEntity = BeanUtil.copy(pushDto,SmsLogEntity.class); + smsLogEntity.setCreateDept(null); + smsLogEntity.setCreateTime(null); + smsLogEntity.setCreateUser(null); + smsLogEntity.setUpdateUser(null); + smsLogEntity.setUpdateTime(null); + smsLogEntity.setPusher(pushDto.getPhones().stream().collect(Collectors.joining(","))); + smsLogEntity.setPhones(pushDto.getPhones().stream().collect(Collectors.joining(","))); + if(CollectionUtil.isNotEmpty(pushDto.getParams())){ + smsLogEntity.setParamsJson(JSON.toJSONString(pushDto.getParams())); + } + return smsLogEntity; + } + +} diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/impl/AppLogServiceImpl.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/impl/AppLogServiceImpl.java new file mode 100644 index 0000000..dd51b50 --- /dev/null +++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/impl/AppLogServiceImpl.java @@ -0,0 +1,15 @@ +package com.hnac.hzims.message.log.service.impl; + +import com.hnac.hzims.message.entity.log.AppLogEntity; +import com.hnac.hzims.message.log.mapper.AppLogMapper; +import com.hnac.hzims.message.log.service.IAppLogService; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +/** + * @author hx + */ +@Service("appLogService") +public class AppLogServiceImpl extends BaseServiceImpl implements IAppLogService { + +} diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/impl/MailLogServiceImpl.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/impl/MailLogServiceImpl.java new file mode 100644 index 0000000..2c45886 --- /dev/null +++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/impl/MailLogServiceImpl.java @@ -0,0 +1,20 @@ +package com.hnac.hzims.message.log.service.impl; + +import com.hnac.hzims.message.entity.log.MailLogEntity; +import com.hnac.hzims.message.log.mapper.MailLogMapper; +import com.hnac.hzims.message.log.service.IMailLogService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +/** + * @author hx + */ +@Service("mailLogService") +@Slf4j +@AllArgsConstructor +public class MailLogServiceImpl extends BaseServiceImpl + implements IMailLogService { + +} diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/impl/SmsLogServiceImpl.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/impl/SmsLogServiceImpl.java new file mode 100644 index 0000000..e415db7 --- /dev/null +++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/log/service/impl/SmsLogServiceImpl.java @@ -0,0 +1,15 @@ +package com.hnac.hzims.message.log.service.impl; + +import com.hnac.hzims.message.entity.log.SmsLogEntity; +import com.hnac.hzims.message.log.mapper.SmsLogMapper; +import com.hnac.hzims.message.log.service.ISmsLogService; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +/** + * @author hx + */ +@Service("smsLogService") +public class SmsLogServiceImpl extends BaseServiceImpl implements ISmsLogService { + +}