4228467469ed54d81ffa0fec74a82f773e3c77a9..21488a55ba76ae4f1296b608fbcdf1f06036db64
7 天以前 mitao
用户端统计分析接口
21488a 对比 | 目录
8 天以前 mitao
用户端统计分析接口-第二部分
53d088 对比 | 目录
6个文件已修改
142 ■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/StaticsController.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/StaticsService.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java
@@ -168,10 +168,10 @@
        AnalyticStatisticsOneVo analyticStatisticsOneVo = complaintService.analyticStatisticsOne(query,complaints,simpleDateFormat);
        // 第二部分数据
        List<AnalyticStatisticsTwoVo> analyticStatisticsTwoVos =complaintService.analyticStatisticsTwo(query,complaints,simpleDateFormat);
        List<AnalyticStatisticsTwoVo> analyticStatisticsTwoVos =complaintService.analyticStatisticsTwo(query.getTime(),complaints,simpleDateFormat);
        // 第三部分数据
        List<AnalyticStatisticsThreeVo> analyticStatisticsThreeVos =complaintService.analyticStatisticsThree(query,complaints);
        List<AnalyticStatisticsThreeVo> analyticStatisticsThreeVos =complaintService.analyticStatisticsThree(query.getRank(), complaints);
        // 第四部分数据
        AnalyticStatisticsFourVo analyticStatisticsFourVos =complaintService.analyticStatisticsFour(complaints);
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/StaticsController.java
@@ -8,7 +8,10 @@
import com.panzhihua.sangeshenbian.model.entity.ComAct;
import com.panzhihua.sangeshenbian.model.query.AnalyticStatisticsQuery;
import com.panzhihua.sangeshenbian.model.query.AppStaticsQuery;
import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsFourVo;
import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsOneVo;
import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsThreeVo;
import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsTwoVo;
import com.panzhihua.sangeshenbian.model.vo.RegionVO;
import com.panzhihua.sangeshenbian.service.IdentityInformationService;
import com.panzhihua.sangeshenbian.service.impl.StaticsService;
@@ -36,7 +39,6 @@
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
public class StaticsController extends BaseController {
    private final StaticsService staticsService;
    private final IdentityInformationService identityInformationService;
    @GetMapping("/region-tree")
    @ApiOperation("获取区域树")
@@ -45,9 +47,27 @@
        return R.ok(staticsService.queryRegionTree(loginUserInfo));
    }
    @PostMapping("/part-one")
    @ApiOperation("获取统计分析-第一部分")
    @ApiOperation("获取统计分析-第一部分(处理满意率+诉求单量统计上面部分)")
    public R<AnalyticStatisticsOneVo> queryStaticsPartOne(@RequestBody AppStaticsQuery query) {
        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
        return R.ok(staticsService.queryStaticsPartOne(query,loginUserInfo));
    }
    @PostMapping("/part-two")
    @ApiOperation("获取统计分析-第二部分(诉求单量统计柱状图)")
    public R<List<AnalyticStatisticsTwoVo>> queryStaticsPartTwo(@RequestBody AppStaticsQuery query) {
        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
        return R.ok(staticsService.queryStaticsPartTwo(query,loginUserInfo));
    }
    @PostMapping("/part-three")
    @ApiOperation("获取统计分析-第三部分(问题类型排名)")
    public R<List<AnalyticStatisticsThreeVo>> queryStaticsPartThree(@RequestBody AppStaticsQuery query) {
        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
        return R.ok(staticsService.queryStaticsPartThree(query,loginUserInfo));
    }
    @PostMapping("/part-four")
    @ApiOperation("获取统计分析-第四部分(评价占比)")
    public R<AnalyticStatisticsFourVo> queryStaticsPartFour(@RequestBody AppStaticsQuery query) {
        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
        return R.ok(staticsService.queryStaticsPartFour(query,loginUserInfo));
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java
@@ -187,21 +187,24 @@
    /**
     * 数据统计第二部分
     * @param query
     *
     * @param time
     * @param complaints
     * @param simpleDateFormat
     * @return
     */
    List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(@Valid AnalyticStatisticsQuery query, List<Complaint> complaints, SimpleDateFormat simpleDateFormat);
    List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(String time, List<Complaint> complaints, SimpleDateFormat simpleDateFormat);
    /**+
    /**
     * +
     * 数据统计第三部分
     * @param query
     *
     * @param rank
     * @param complaints
     * @return
     */
    List<AnalyticStatisticsThreeVo> analyticStatisticsThree(@Valid AnalyticStatisticsQuery query, List<Complaint> complaints);
    List<AnalyticStatisticsThreeVo> analyticStatisticsThree(Integer rank, List<Complaint> complaints);
    /**
     * 数据统计第四部分
@@ -212,8 +215,7 @@
    /**
     * 查询党员或上级对应的诉求列表
     * @param targetId
     * @param accountLevel
     * @param query
     * @param loginUserInfo
     * @return
     */
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
@@ -1551,12 +1551,17 @@
        return vo;
    }
    public static void main(String[] args) {
        String time = "2022-02-02 - 2023-02-02";
        String[] split = time.split(" - ");
        System.out.println(split[0]);
    }
    @Override
    public List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(AnalyticStatisticsQuery query, List<Complaint> complaints, SimpleDateFormat simpleDateFormat) {
    public List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(String time, List<Complaint> complaints, SimpleDateFormat simpleDateFormat) {
        ArrayList<AnalyticStatisticsTwoVo> list = new ArrayList<>();
        try {
            if (StringUtils.isNotEmpty(query.getTime())) {
                String[] split = query.getTime().split(" - ");
            if (StringUtils.isNotEmpty(time)) {
                String[] split = time.split(" - ");
                Date parse = simpleDateFormat.parse(split[0] + " 00:00:00");
                Date parse1 = simpleDateFormat.parse(split[1] + " 23:59:59");
                complaints = complaints.stream().filter(e -> e.getCreateTime().getTime() <= parse1.getTime() && e.getCreateTime().getTime() >= parse.getTime()).collect(Collectors.toList());
@@ -1587,7 +1592,7 @@
                }
            } else {
                String time = DateUtils.getBeforeDay(6) + " 00:00:00";
                time = DateUtils.getBeforeDay(6) + " 00:00:00";
                Date parse = simpleDateFormat.parse(time);
                // 近7天数据
                complaints = complaints.stream().filter(e -> e.getCreateTime().getTime() <= new Date().getTime() && e.getCreateTime().getTime() >= parse.getTime()).collect(Collectors.toList());
@@ -1612,7 +1617,7 @@
    }
    @Override
    public List<AnalyticStatisticsThreeVo> analyticStatisticsThree(AnalyticStatisticsQuery query, List<Complaint> complaints) {
    public List<AnalyticStatisticsThreeVo> analyticStatisticsThree(Integer rank, List<Complaint> complaints) {
        Map<String, List<Complaint>> groupedByProblemType = complaints.stream()
                .collect(Collectors.groupingBy(Complaint::getProblemType));
        List<AnalyticStatisticsThreeVo> analyticStatisticsThreeVos = groupedByProblemType.entrySet().stream()
@@ -1624,11 +1629,11 @@
                })
                .collect(Collectors.toList());
        analyticStatisticsThreeVos = analyticStatisticsThreeVos.stream().sorted(Comparator.comparing(AnalyticStatisticsThreeVo::getAllTotal).reversed()).collect(Collectors.toList());
        if (query.getRank() == null) {
        if (rank == null) {
            return analyticStatisticsThreeVos;
        } else if (query.getRank() == 5) {
        } else if (rank == 5) {
            return analyticStatisticsThreeVos.stream().limit(5).collect(Collectors.toList());
        } else if (query.getRank() == 10) {
        } else if (rank == 10) {
            return analyticStatisticsThreeVos.stream().limit(10).collect(Collectors.toList());
        }
        return Collections.emptyList();
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/StaticsService.java
@@ -1,17 +1,18 @@
package com.panzhihua.sangeshenbian.service.impl;
import com.beust.jcommander.internal.Lists;
import com.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.sangeshenbian.dao.SystemUserMapper;
import com.panzhihua.sangeshenbian.model.entity.ComAct;
import com.panzhihua.sangeshenbian.model.entity.ComStreet;
import com.panzhihua.sangeshenbian.model.entity.Complaint;
import com.panzhihua.sangeshenbian.model.entity.PartyMember;
import com.panzhihua.sangeshenbian.model.entity.SystemUserLevel;
import com.panzhihua.sangeshenbian.model.query.AppStaticsQuery;
import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsFourVo;
import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsOneVo;
import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsThreeVo;
import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsTwoVo;
import com.panzhihua.sangeshenbian.model.vo.RegionVO;
import com.panzhihua.sangeshenbian.service.IBcRegionService;
import com.panzhihua.sangeshenbian.service.IComActService;
@@ -24,9 +25,10 @@
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * @author mitao
@@ -139,4 +141,58 @@
        List<Complaint> complaints = complaintService.queryCompliantList(query,loginUserInfo);
        return  complaintService.analyticStatisticsOne(null, complaints, simpleDateFormat);
    }
    /**
     *获取统计分析-第二部分(诉求单量统计柱状图)
     * @param query
     * @param loginUserInfo
     * @return
     */
    public List<AnalyticStatisticsTwoVo> queryStaticsPartTwo(AppStaticsQuery query, LoginUserInfoVO loginUserInfo) {
        List<Complaint> complaints = complaintService.queryCompliantList(query,loginUserInfo);
        //时间范围
        String time = "";
        if (Objects.nonNull(query.getTimeType())) {
            Date now = new Date();
            Date start = null;
            switch (query.getTimeType()) {
                case 2:
                    start = DateUtils.addDay(now, -15);
                    break;
                case 3:
                    start = DateUtils.addDay(now, -30);
                    break;
                default:
                    start = DateUtils.addDay(now, -7);
                    break;
            }
            //格式化
            String startStr = DateUtils.format(start, DateUtils.yyyyMMdd_format);
            String endStr = DateUtils.format(now, DateUtils.yyyyMMdd_format);
            time = startStr + " - " + endStr;
        }
        return complaintService.analyticStatisticsTwo(time, complaints, simpleDateFormat);
    }
    /**
     *获取统计分析-第三部分(问题类型排名)
     * @param query
     * @param loginUserInfo
     * @return
     */
    public List<AnalyticStatisticsThreeVo> queryStaticsPartThree(AppStaticsQuery query, LoginUserInfoVO loginUserInfo) {
        List<Complaint> complaints = complaintService.queryCompliantList(query,loginUserInfo);
        return complaintService.analyticStatisticsThree(query.getRank(), complaints);
    }
    /**
     * 获取统计分析-第四部分(评价占比)
     * @param query
     * @param loginUserInfo
     * @return
     */
    public AnalyticStatisticsFourVo queryStaticsPartFour(AppStaticsQuery query, LoginUserInfoVO loginUserInfo) {
        List<Complaint> complaints = complaintService.queryCompliantList(query,loginUserInfo);
        return complaintService.analyticStatisticsFour(complaints);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml
@@ -720,6 +720,19 @@
            <if test="5 == accountLevel">
                and (sc.party_member_id = #{targetId} || sc.id in (select complaint_id from sgsb_complaint_audit_record where audit_type = 3 and audit_status = 1 and report_type = #{accountLevel} and superior_id = #{targetId}))
            </if>
            <if test="query.timeType !=null">
                <choose>
                    <when test="query.timeType == 1">
                        and date_sub(curdate(), INTERVAL 7 DAY) &lt;= date(sc.create_time)
                    </when>
                    <when test="query.timeType == 2">
                        and date_sub(curdate(), INTERVAL 15 DAY) &lt;= date(sc.create_time)
                    </when>
                    <when test="query.timeType == 3">
                        and date_sub(curdate(), INTERVAL 30 DAY) &lt;= date(sc.create_time)
                    </when>
                </choose>
            </if>
        </where>
        ORDER BY sc.create_time DESC
    </select>