guohongjin
2024-05-01 1901fceb6ddaa56a57f3131191454554c3e77e68
rest/src/main/java/cn/stylefeng/rest/modular/user/controller/MyMentalTestController.java
@@ -9,7 +9,6 @@
import cn.stylefeng.guns.modular.business.dto.MentalTestMyTestTopicDTO;
import cn.stylefeng.guns.modular.business.dto.MentalTestTopicAndRecordDTO;
import cn.stylefeng.guns.modular.business.entity.MentalTestRecord;
import cn.stylefeng.guns.modular.business.entity.MentalTestResult;
import cn.stylefeng.guns.modular.business.entity.MentalTestTopic;
import cn.stylefeng.guns.modular.business.entity.OrderMentalTest;
import cn.stylefeng.guns.modular.business.service.*;
@@ -106,26 +105,16 @@
        }
        List<Long> topicIdList = list.stream().map(o -> o.getTopicId()).collect(Collectors.toList());
        List<MentalTestResult> mentalTestResultAll = mentalTestResultService.list(
                Wrappers.<MentalTestResult>lambdaQuery()
                        .eq(MentalTestResult::getUserId, userId)
                        .in(MentalTestResult::getTopicId, topicIdList)
                        .groupBy(MentalTestResult::getTopicId)
        );
        List<OrderMentalTest> orderMentalTestAll = orderMentalTestService.list(
                Wrappers.<OrderMentalTest>lambdaQuery()
                        .eq(OrderMentalTest::getUserId, userId)
                        .eq(OrderMentalTest::getStatusFlag, OrderStatusFlagEnum.PAY_SUCCESS.getCode())
                        .in(OrderMentalTest::getGoodsId, topicIdList)
                        .groupBy(OrderMentalTest::getGoodsId)
        );
        return new SuccessResponseData(list.stream().map(o -> {
            // 是否测试
            o.setTestFlag(mentalTestResultAll.stream().filter(oo -> oo.getTopicId().equals(o.getTopicId())).findFirst().isPresent());
            // 是否购买
            o.setPayFlag(orderMentalTestAll.stream().filter(oo -> oo.getGoodsId().equals(o.getTopicId())).findFirst().isPresent());
            // 是否后台创建
            o.setIsBack(orderMentalTestAll.stream().filter(oo -> oo.getOrderNo().equals(o.getOrderNo()) && oo.getIsBack()).findFirst().map(OrderMentalTest::getIsBack).orElse(false));
            return o;
        }).collect(Collectors.toList()));