guohongjin
2024-05-01 1901fceb6ddaa56a57f3131191454554c3e77e68
guns/src/main/java/cn/stylefeng/guns/modular/business/controller/StatMentalTestController.java
@@ -1,5 +1,6 @@
package cn.stylefeng.guns.modular.business.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.stylefeng.guns.modular.business.dto.StatMentalTestDTO;
import cn.stylefeng.guns.modular.business.entity.OrderConsultOne;
@@ -52,8 +53,24 @@
            @ApiImplicitParam(name = "type", value = "类型:1日,2周,3月,4年", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "beginTime", value = "开始时间", dataTypeClass = String.class),
            @ApiImplicitParam(name = "endTime", value = "结束时间", dataTypeClass = String.class),
            @ApiImplicitParam(name = "workerId", value = "咨询师ID", dataTypeClass = Long.class),
    })
    public ResponseData<StatMentalTestDTO> mentalTestData(Integer type, String beginTime, String endTime) {
    public ResponseData<StatMentalTestDTO> mentalTestData(Integer type, String beginTime, String endTime, Long workerId) {
        List<String> orderNoList = null;
        if (workerId != null) {
            orderNoList = orderConsultOneService.listObjs(
                    Wrappers.<OrderConsultOne>lambdaQuery()
                            .select(OrderConsultOne::getMentalTestOrderNo)
                            .eq(OrderConsultOne::getGoodsId, workerId)
                            .eq(OrderConsultOne::getStatusFlag, OrderStatusFlagEnum.PAY_SUCCESS.getCode())
                            .eq(OrderConsultOne::getStatusFlag, OrderStatusFlagEnum.PAY_SUCCESS.getCode()),
                    o -> StrUtil.toString(o)
            );
            if (CollUtil.isEmpty(orderNoList)) {
                orderNoList = Arrays.asList("0");
            }
        }
        // 获取日期格式化SQL
        String dateFormatSql = StatDataUtil.getDateFormatSql(type);
@@ -70,7 +87,7 @@
        // 统计订单数据
        List<Map<String, Object>> statOrderList = orderMentalTestService.getStatOrderList(
                dateFormatSql, beginTime, endTime, null, statusFlagList
                dateFormatSql, beginTime, endTime, null, statusFlagList, orderNoList
        );
        Double moneySum = statOrderList.stream()
                .mapToDouble(item -> Double.parseDouble(item.get("data").toString()))
@@ -82,6 +99,7 @@
                Wrappers.<OrderMentalTest>lambdaQuery()
                        .select(OrderMentalTest::getUserId)
                        .in(OrderMentalTest::getStatusFlag, statusFlagList)
                        .in(CollUtil.isNotEmpty(orderNoList), OrderMentalTest::getOrderNo, orderNoList)
                        .ge(StrUtil.isNotBlank(beginTime), OrderMentalTest::getCreateTime, beginTime)
                        .le(StrUtil.isNotBlank(endTime), OrderMentalTest::getCreateTime, endTime)
                        .groupBy(OrderMentalTest::getUserId)