huliguo
2025-07-16 6727c89745faa938cc053fa67ea3b9f819f5cbfe
src/main/java/com/linghu/controller/PlatformController.java
@@ -10,12 +10,10 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.linghu.listener.PlatformExcelListener;
import com.linghu.listener.TypeDropdownWriteHandler;
import com.linghu.mapper.KeywordMapper;
import com.linghu.mapper.ReferenceMapper;
import com.linghu.model.common.ResponseResult;
import com.linghu.model.entity.Platform;
import com.linghu.model.entity.Reference;
import com.linghu.model.entity.Sectionalization;
import com.linghu.model.entity.Type;
import com.linghu.model.entity.*;
import com.linghu.model.excel.ExcelDataWithRow;
import com.linghu.model.excel.PlatformExcel;
import com.linghu.model.excel.UserExcel;
@@ -61,6 +59,8 @@
    private TypeService typeService;
    @Autowired
    private ReferenceMapper referenceMapper;
    @Autowired
    private KeywordMapper keywordMapper;
    @PostMapping
    @ApiOperation(value = "添加平台")
@@ -125,15 +125,48 @@
    @GetMapping("/list")
    @ApiOperation("查询平台列表,不传页数和大小就查全部")
    public ResponseResult<CustomPage<Platform>> list(
            @RequestParam(required = false) Integer page,
            @RequestParam(required = false) Integer pageSize,
            @RequestParam(required = false) Integer type_id) {
            @RequestParam(value = "page",required = false) Integer page,
            @RequestParam(value = "pageSize",required = false) Integer pageSize,
            @RequestParam(value = "type_id",required = false) Integer type_id,
            @RequestParam(value = "keywordId", required = false) Integer keywordId,
            @RequestParam(value = "questionId",required = false) Integer questionId,
            @RequestParam(value = "isNow") Integer isNow
            ) {
        List<Integer> platForm=new ArrayList<>();
        //先查找当前关键词下,所有的回答 的 所有的平台名称
        Keyword keyword = keywordMapper.selectById(keywordId);
        if (keywordId != null && questionId == null) {
            List<Reference> references = referenceMapper.selectList(new LambdaQueryWrapper<Reference>()
                    .eq(Reference::getKeyword_id, keywordId)
                    .eq(Reference::getNum, isNow== 0 ? 1 : keyword.getNum())
            );
            platForm = references.stream().map(Reference::getPlatform_id).filter(Objects::nonNull).distinct().collect(Collectors.toList());
        }
        if (questionId != null) {
            List<Reference> references = referenceMapper.selectList(new LambdaQueryWrapper<Reference>()
                    .eq(Reference::getKeyword_id, keywordId)
                    .eq(Reference::getNum, isNow== 0 ? 1 : keyword.getNum())
                    .eq(Reference::getQuestion_id, questionId)
            );
            platForm = references.stream().map(Reference::getPlatform_id).filter(Objects::nonNull).distinct().collect(Collectors.toList());
        }
        // 构建查询条件并添加排序(按创建时间倒序)
        LambdaQueryWrapper<Platform> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.orderByDesc(Platform::getCreate_time); // 新增的排序条件
        if (!platForm.isEmpty()){
            queryWrapper.in(Platform::getPlatform_id, platForm);
        }else {
            CustomPage<Platform> customPage = new CustomPage<>(new Page<>());
            customPage.setRecords(new ArrayList<>());
            customPage.setTotal(0);
            return ResponseResult.success(customPage);
        }
        if (type_id != null) {
            queryWrapper.eq(Platform::getType_id, type_id);
        }
        queryWrapper.orderByDesc(Platform::getCreate_time); // 新增的排序条件
        if (page != null && pageSize != null) {
            Page<Platform> pageInfo = new Page<>(page, pageSize);
            Page<Platform> result = platformService.page(pageInfo, queryWrapper);