段飞宇
2 years ago
60 changed files with 826 additions and 96 deletions
@ -0,0 +1,33 @@
|
||||
package com.hnac.hzims.message.enums; |
||||
|
||||
import lombok.Data; |
||||
import lombok.Getter; |
||||
import lombok.Setter; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/4/7 15:45 |
||||
*/ |
||||
public enum PushStatEnum { |
||||
|
||||
UNPUSHED(0, "未推送"), |
||||
|
||||
SUCCESS(1, "推送成功"), |
||||
FAIL(2, "推送失败"), |
||||
CONFIRMED(3, "已确认"); |
||||
|
||||
|
||||
@Setter |
||||
private Integer code; |
||||
|
||||
@Getter |
||||
private String value; |
||||
|
||||
PushStatEnum(Integer code, String value) { |
||||
this.code = code; |
||||
this.value = value; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,30 @@
|
||||
package com.hnac.hzims.message.vo.msgpushrecord; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/4/7 16:41 |
||||
*/ |
||||
@Data |
||||
public class BusinessTypeStatVo { |
||||
|
||||
/** |
||||
* 业务类型 |
||||
*/ |
||||
private String businessClassify; |
||||
|
||||
|
||||
/** |
||||
* 业务类型 名称 |
||||
*/ |
||||
private String businessClassifyName; |
||||
|
||||
/** |
||||
* 统计数量 |
||||
*/ |
||||
private Long power; |
||||
|
||||
} |
@ -0,0 +1,22 @@
|
||||
package com.hnac.hzims.message.vo.msgpushrecord; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/4/7 14:41 |
||||
*/ |
||||
@Data |
||||
public class MessagePushRecordTypeVo { |
||||
|
||||
/** |
||||
* 消息类型 |
||||
*/ |
||||
private String type; |
||||
|
||||
private List<MessagePushRecordVo> messagePushRecordList; |
||||
} |
@ -0,0 +1,39 @@
|
||||
package com.hnac.hzims.message.vo.msgpushrecord; |
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.time.LocalDateTime; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/4/7 9:02 |
||||
*/ |
||||
@Data |
||||
public class MessagePushRecordVo implements Serializable { |
||||
|
||||
|
||||
/** |
||||
* 月份 |
||||
*/ |
||||
private Integer month; |
||||
|
||||
|
||||
/** |
||||
* 实现推送时间 |
||||
*/ |
||||
private String strMonth; |
||||
|
||||
/** |
||||
* 消息类型 |
||||
*/ |
||||
private String type; |
||||
|
||||
/** |
||||
* 统计数量 |
||||
*/ |
||||
private Long power; |
||||
} |
@ -0,0 +1,35 @@
|
||||
package com.hnac.hzims.message.vo.msgpushrecord; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 推送成功失败 Vo |
||||
* |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/4/7 15:35 |
||||
*/ |
||||
@Data |
||||
public class PushStatTypeVo { |
||||
|
||||
|
||||
/** |
||||
* 业务分类 |
||||
*/ |
||||
private String businessClassify; |
||||
|
||||
|
||||
/** |
||||
* 业务名称 |
||||
*/ |
||||
private String businessClassifyName; |
||||
|
||||
|
||||
/** |
||||
* 业务分类统计 |
||||
*/ |
||||
private List<PushStatVo> pushStatList; |
||||
} |
@ -0,0 +1,45 @@
|
||||
package com.hnac.hzims.message.vo.msgpushrecord; |
||||
|
||||
import com.hnac.hzims.message.enums.PushStatEnum; |
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/4/7 15:36 |
||||
*/ |
||||
@Data |
||||
public class PushStatVo { |
||||
|
||||
/** |
||||
* 业务分类 |
||||
*/ |
||||
private String businessClassify; |
||||
|
||||
|
||||
/** |
||||
* 业务分类 |
||||
*/ |
||||
private String businessClassifyName; |
||||
|
||||
|
||||
/** |
||||
* 状态 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
|
||||
|
||||
/** |
||||
* 状态名称 |
||||
*/ |
||||
private String statusName; |
||||
|
||||
|
||||
|
||||
/** |
||||
* 统计数量 |
||||
*/ |
||||
private Long power; |
||||
} |
@ -0,0 +1,25 @@
|
||||
package com.hnac.hzims.message.vo.msgpushrecord; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/4/7 15:05 |
||||
*/ |
||||
@Data |
||||
public class UserPushStatTypeVo { |
||||
|
||||
/** |
||||
* 推送人名称 |
||||
*/ |
||||
private String pusherName; |
||||
|
||||
/** |
||||
* 推送业务分类数组 |
||||
*/ |
||||
private List<UserPushStatVo> pushStatList; |
||||
} |
@ -0,0 +1,35 @@
|
||||
package com.hnac.hzims.message.vo.msgpushrecord; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/4/7 15:06 |
||||
*/ |
||||
@Data |
||||
public class UserPushStatVo { |
||||
|
||||
|
||||
/** |
||||
* 推送人名称 |
||||
*/ |
||||
private String pusherName; |
||||
|
||||
/** |
||||
* 业务分类 |
||||
*/ |
||||
private String businessClassify; |
||||
|
||||
|
||||
/** |
||||
* 业务分类 名称 |
||||
*/ |
||||
private String businessClassifyName; |
||||
|
||||
/** |
||||
* 统计数量 |
||||
*/ |
||||
private Long power; |
||||
} |
@ -0,0 +1,38 @@
|
||||
target/ |
||||
!.mvn/wrapper/maven-wrapper.jar |
||||
!**/src/main/**/target/ |
||||
!**/src/test/**/target/ |
||||
|
||||
### IntelliJ IDEA ### |
||||
.idea/modules.xml |
||||
.idea/jarRepositories.xml |
||||
.idea/compiler.xml |
||||
.idea/libraries/ |
||||
*.iws |
||||
*.iml |
||||
*.ipr |
||||
|
||||
### Eclipse ### |
||||
.apt_generated |
||||
.classpath |
||||
.factorypath |
||||
.project |
||||
.settings |
||||
.springBeans |
||||
.sts4-cache |
||||
|
||||
### NetBeans ### |
||||
/nbproject/private/ |
||||
/nbbuild/ |
||||
/dist/ |
||||
/nbdist/ |
||||
/.nb-gradle/ |
||||
build/ |
||||
!**/src/main/**/build/ |
||||
!**/src/test/**/build/ |
||||
|
||||
### VS Code ### |
||||
.vscode/ |
||||
|
||||
### Mac OS ### |
||||
.DS_Store |
@ -0,0 +1,81 @@
|
||||
package com.hnac.hzims.message.controller.web; |
||||
|
||||
import com.hnac.hzims.message.service.IMessagePushRecordService; |
||||
import com.hnac.hzims.message.vo.msgpushrecord.BusinessTypeStatVo; |
||||
import com.hnac.hzims.message.vo.msgpushrecord.MessagePushRecordTypeVo; |
||||
import com.hnac.hzims.message.vo.msgpushrecord.PushStatTypeVo; |
||||
import com.hnac.hzims.message.vo.msgpushrecord.UserPushStatTypeVo; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.tool.api.R; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 消息统计页面 |
||||
* @Author dfy |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/4/7 8:41 |
||||
*/ |
||||
@Slf4j |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@RequestMapping("/api/message/statistics") |
||||
public class MessageStatisticsController { |
||||
|
||||
|
||||
private final IMessagePushRecordService messagePushRecordService; |
||||
|
||||
|
||||
/** |
||||
* 短信推送统计 |
||||
* @return |
||||
*/ |
||||
@GetMapping("/smsPushStat") |
||||
public R smsPushStat() { |
||||
log.info("短信推送统计"); |
||||
List<MessagePushRecordTypeVo> messagePushRecordVos = messagePushRecordService.smsPushStat(); |
||||
log.info("短信推送统计 返回的数据: {}",messagePushRecordVos); |
||||
return R.data(messagePushRecordVos); |
||||
} |
||||
|
||||
|
||||
|
||||
/** |
||||
* 业务类型统计 |
||||
*/ |
||||
@GetMapping("/businessTypeStat") |
||||
public R businessTypeStat() { |
||||
log.info("业务类型统计"); |
||||
List<BusinessTypeStatVo> messagePushRecordVos = messagePushRecordService.businessTypeStat(); |
||||
log.info("业务类型统计 返回的数据: {}",messagePushRecordVos); |
||||
return R.data(messagePushRecordVos); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 人员发送统计 |
||||
*/ |
||||
@GetMapping("/userPushStat") |
||||
public R userPushStat() { |
||||
log.info("人员发送统计"); |
||||
List<UserPushStatTypeVo> messagePushRecordVos = messagePushRecordService.userPushStat(); |
||||
log.info("人员发送统计 返回的数据: {}",messagePushRecordVos); |
||||
return R.data(messagePushRecordVos); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 推送成功失败统计 |
||||
*/ |
||||
@GetMapping("/pushStat") |
||||
public R pushStat() { |
||||
List<PushStatTypeVo> messagePushRecordVos = messagePushRecordService.pushStat(); |
||||
log.info("推送成功失败统计 返回的数据: {}",messagePushRecordVos); |
||||
return R.data(messagePushRecordVos); |
||||
} |
||||
|
||||
} |
@ -1,8 +1,42 @@
|
||||
package com.hnac.hzims.message.mapper; |
||||
|
||||
import com.hnac.hzims.message.entity.MessagePushRecordEntity; |
||||
import com.hnac.hzims.message.vo.msgpushrecord.BusinessTypeStatVo; |
||||
import com.hnac.hzims.message.vo.msgpushrecord.MessagePushRecordVo; |
||||
import com.hnac.hzims.message.vo.msgpushrecord.PushStatTypeVo; |
||||
import com.hnac.hzims.message.vo.msgpushrecord.UserPushStatTypeVo; |
||||
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
||||
|
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
public interface MessagePushRecordMapper extends UserDataScopeBaseMapper<MessagePushRecordEntity> { |
||||
|
||||
/** |
||||
* 根据type统计数量 |
||||
* @return |
||||
*/ |
||||
List<MessagePushRecordVo> smsPushStat(); |
||||
|
||||
|
||||
/** |
||||
* 业务类型统计 |
||||
* @return |
||||
*/ |
||||
List<BusinessTypeStatVo> businessTypeStat(); |
||||
|
||||
|
||||
/** |
||||
* 人员发送统计 |
||||
* @return |
||||
*/ |
||||
List<UserPushStatTypeVo> userPushStat(); |
||||
|
||||
|
||||
/** |
||||
* 推送成功失败统计 |
||||
* @return |
||||
*/ |
||||
List<PushStatTypeVo> pushStat(); |
||||
|
||||
} |
||||
|
@ -0,0 +1,66 @@
|
||||
<?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.mapper.MessagePushRecordMapper"> |
||||
|
||||
|
||||
<!-- 通用查询映射结果 --> |
||||
<resultMap id="BaseResultMap" type="com.hnac.hzims.message.vo.msgpushrecord.UserPushStatTypeVo"> |
||||
<result column="pusherName" property="pusherName"/> |
||||
<collection property="pushStatList" ofType="com.hnac.hzims.message.vo.msgpushrecord.UserPushStatVo" > |
||||
<result column="pusherName" property="pusherName"/> |
||||
<result column="businessClassify" property="businessClassify"/> |
||||
<result column="count" property="power"/> |
||||
</collection> |
||||
</resultMap> |
||||
|
||||
|
||||
|
||||
|
||||
<!-- 根据type统计数量--> |
||||
<select id="smsPushStat" resultType="com.hnac.hzims.message.vo.msgpushrecord.MessagePushRecordVo"> |
||||
select count(1) power, |
||||
date_format(PLAN_TIME, '%Y-%m') strMonth, |
||||
type |
||||
from hzims_message_push_record |
||||
where IS_DELETED = 0 |
||||
group by strMonth, TYPE |
||||
</select> |
||||
|
||||
<!-- 业务类型统计--> |
||||
<select id="businessTypeStat" resultType="com.hnac.hzims.message.vo.msgpushrecord.BusinessTypeStatVo"> |
||||
select BUSINESS_CLASSIFY businessClassify, |
||||
count(1) power |
||||
from hzims_message_push_record |
||||
where IS_DELETED = 0 |
||||
group by businessClassify |
||||
</select> |
||||
|
||||
<!-- 人员发送统计--> |
||||
<select id="userPushStat" resultMap="BaseResultMap"> |
||||
select PUSHER_NAME pusherName, |
||||
BUSINESS_CLASSIFY businessClassify, |
||||
count(1) count |
||||
from hzims_message_push_record |
||||
where IS_DELETED = 0 |
||||
group by businessClassify, pusherName |
||||
</select> |
||||
|
||||
|
||||
|
||||
<!-- 推送成功失败统计--> |
||||
<resultMap id="PushStatResultMap" type="com.hnac.hzims.message.vo.msgpushrecord.PushStatTypeVo"> |
||||
<result column="businessClassify" property="businessClassify"/> |
||||
<collection property="pushStatList" ofType="com.hnac.hzims.message.vo.msgpushrecord.PushStatVo" > |
||||
<result column="businessClassify" property="businessClassify"/> |
||||
<result column="status" property="status"/> |
||||
<result column="count" property="power"/> |
||||
</collection> |
||||
</resultMap> |
||||
|
||||
|
||||
<select id="pushStat" resultMap="PushStatResultMap"> |
||||
select BUSINESS_CLASSIFY businessClassify,STATUS status,count(1) count |
||||
from hzims_message_push_record |
||||
group by businessClassify,status |
||||
</select> |
||||
</mapper> |
Loading…
Reference in new issue