forked from wuweidong/hzims-back-huoshan
20 changed files with 702 additions and 0 deletions
@ -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; |
||||
|
||||
} |
@ -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; |
||||
|
||||
} |
@ -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; |
||||
} |
@ -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; |
||||
|
||||
} |
@ -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 { |
||||
|
||||
} |
@ -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); |
||||
}); |
||||
} |
||||
} |
@ -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 ""; |
||||
} |
@ -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<AppLogEntity> { |
||||
|
||||
/** |
||||
* 获取app推送统计 |
||||
* @param statisticDto |
||||
* @return |
||||
*/ |
||||
MsgPushStatisticVO getAppPushStatistic(@Param("statisticDto") MsgPushStatisticDto statisticDto); |
||||
|
||||
} |
@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
<mapper namespace="com.hnac.hzims.message.log.mapper.AppLogMapper"> |
||||
|
||||
<select id="getAppPushStatistic" resultType="com.hnac.hzims.message.vo.statistic.MsgPushStatisticVO"> |
||||
select sum(LENGTH(PUSHER)-LENGTH(REPLACE(PUSHER,',',''))+1) `count` |
||||
from hzims_app_log |
||||
<where> |
||||
is_deleted = 0 |
||||
<if test="statisticDto.startDate != null and statisticDto.startDate != ''"> |
||||
and create_time >= #{statisticDto.startDate} |
||||
</if> |
||||
<if test="statisticDto.endDate != null and statisticDto.endDate != ''"> |
||||
and create_time <= #{statisticDto.endDate} |
||||
</if> |
||||
<if test="statisticDto.deptId != null and statisticDto.deptId != ''"> |
||||
and find_in_set(create_dept,#{statisticDto.deptId}) |
||||
</if> |
||||
<if test="statisticDto.businessClassify != null and statisticDto.businessClassify != ''"> |
||||
and find_in_set(business_classify,#{statisticDto.businessClassify}) |
||||
</if> |
||||
</where> |
||||
</select> |
||||
</mapper> |
@ -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<MailLogEntity> { |
||||
|
||||
/** |
||||
* 获取邮箱推送统计 |
||||
* @param statisticDto |
||||
* @return |
||||
*/ |
||||
MsgPushStatisticVO getMailPushStatistic(@Param("statisticDto") MsgPushStatisticDto statisticDto); |
||||
} |
@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
<mapper namespace="com.hnac.hzims.message.log.mapper.MailLogMapper"> |
||||
|
||||
<select id="getMailPushStatistic" resultType="com.hnac.hzims.message.vo.statistic.MsgPushStatisticVO"> |
||||
select sum(LENGTH(PUSHER)-LENGTH(REPLACE(PUSHER,',',''))+1) `count` |
||||
from hzims_mail_log |
||||
<where> |
||||
is_deleted = 0 |
||||
<if test="statisticDto.startDate != null and statisticDto.startDate != ''"> |
||||
and create_time >= #{statisticDto.startDate} |
||||
</if> |
||||
<if test="statisticDto.endDate != null and statisticDto.endDate != ''"> |
||||
and create_time <= #{statisticDto.endDate} |
||||
</if> |
||||
<if test="statisticDto.deptId != null and statisticDto.deptId != ''"> |
||||
and find_in_set(create_dept,#{statisticDto.deptId}) |
||||
</if> |
||||
<if test="statisticDto.businessClassify != null and statisticDto.businessClassify != ''"> |
||||
and find_in_set(business_classify,#{statisticDto.businessClassify}) |
||||
</if> |
||||
</where> |
||||
</select> |
||||
</mapper> |
@ -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<SmsLogEntity> { |
||||
|
||||
/** |
||||
* 获取短信推送统计 |
||||
* @param statisticDto |
||||
* @return |
||||
*/ |
||||
MsgPushStatisticVO getSmsPushStatistic(@Param("statisticDto") MsgPushStatisticDto statisticDto); |
||||
|
||||
} |
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
<mapper namespace="com.hnac.hzims.message.log.mapper.SmsLogMapper"> |
||||
<select id="getSmsPushStatistic" resultType="com.hnac.hzims.message.vo.statistic.MsgPushStatisticVO"> |
||||
select sum(LENGTH(PUSHER)-LENGTH(REPLACE(PUSHER,',',''))+1) `count` |
||||
from hzims_sms_log |
||||
<where> |
||||
is_deleted = 0 |
||||
<if test="statisticDto.startDate != null and statisticDto.startDate != ''"> |
||||
and create_time >= #{statisticDto.startDate} |
||||
</if> |
||||
<if test="statisticDto.endDate != null and statisticDto.endDate != ''"> |
||||
and create_time <= #{statisticDto.endDate} |
||||
</if> |
||||
<if test="statisticDto.deptId != null and statisticDto.deptId != ''"> |
||||
and find_in_set(create_dept,#{statisticDto.deptId}) |
||||
</if> |
||||
<if test="statisticDto.businessClassify != null and statisticDto.businessClassify != ''"> |
||||
and find_in_set(business_classify,#{statisticDto.businessClassify}) |
||||
</if> |
||||
</where> |
||||
</select> |
||||
</mapper> |
@ -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<AppLogEntity,AppPushDto> { |
||||
|
||||
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; |
||||
} |
||||
|
||||
} |
@ -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<MailLogEntity,MailPushDto> { |
||||
|
||||
/** |
||||
* 邮件推送对象转换为邮箱日志对象 |
||||
* @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; |
||||
} |
||||
|
||||
} |
@ -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<T extends MessageLogEntity,E extends PushDto> extends BaseService<T> { |
||||
/** |
||||
* 推送对象转换为日志 |
||||
* @param pushDto |
||||
* @return |
||||
*/ |
||||
T pushConvertLog(E pushDto); |
||||
|
||||
} |
@ -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<SmsLogEntity, SmsPushDto> { |
||||
|
||||
/** |
||||
* 短信推送对象转换为日志对象 |
||||
* @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; |
||||
} |
||||
|
||||
} |
@ -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<AppLogMapper, AppLogEntity> implements IAppLogService { |
||||
|
||||
} |
@ -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<MailLogMapper, MailLogEntity> |
||||
implements IMailLogService { |
||||
|
||||
} |
@ -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<SmsLogMapper, SmsLogEntity> implements ISmsLogService { |
||||
|
||||
} |
Loading…
Reference in new issue