jiangping
2024-08-19 a4fb6a1f15ffabfc13506a183ca5f69306e85e08
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
@@ -1,31 +1,46 @@
package com.doumee.service.business.impl;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.PlatformGroupMapper;
import com.doumee.dao.business.PlatformShowParamMapper;
import com.doumee.dao.business.join.PlatformJoinMapper;
import com.doumee.dao.business.model.Platform;
import com.doumee.dao.business.model.PlatformGroup;
import com.doumee.dao.business.model.PlatformShowParam;
import com.doumee.service.business.PlatformGroupService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 月台_分组信息表Service实现
 * @author 江蹄蹄
 * @since 2024/04/28 16:06
 * @date 2024/06/28 10:03
 */
@Service
public class PlatformGroupServiceImpl implements PlatformGroupService {
    @Autowired
    private PlatformGroupMapper platformGroupMapper;
    @Autowired
    private PlatformJoinMapper platformJoinMapper;
    @Autowired
    private PlatformShowParamMapper platformShowParamMapper;
    @Override
    public Integer create(PlatformGroup platformGroup) {
@@ -118,4 +133,52 @@
        QueryWrapper<PlatformGroup> wrapper = new QueryWrapper<>(platformGroup);
        return platformGroupMapper.selectCount(wrapper);
    }
    @Override
    public List<PlatformGroup> getAllPlatformGroup(Integer queryType,LoginUserInfo loginUserInfo) {
        List<PlatformGroup> platformGroups = platformGroupMapper.selectList(
                new QueryWrapper<PlatformGroup>()
                        .lambda().eq(PlatformGroup::getIsdeleted, Constants.ZERO)
                        .orderByAsc(PlatformGroup::getSortnum)
        );
        //查询月台组下所有月台
        List<Platform> allPlatformList = platformJoinMapper.selectJoinList(Platform.class,
                new MPJLambdaWrapper<Platform>()
                        .selectAll(Platform.class)
                        .eq(Platform::getIsdeleted, Constants.ZERO)
                        //TODO 待确认月台状态字段
                        .eq(Objects.nonNull(queryType)&&!Constants.equalsInteger(queryType,Constants.ZERO),Platform::getStatus,Constants.ZERO)
        );
        //处理我的月台信息 是否配置隐藏
        if(Constants.equalsInteger(queryType,Constants.TWO)){
            List<PlatformShowParam> platformShowParamList = platformShowParamMapper.selectList(new QueryWrapper<PlatformShowParam>()
                    .lambda()
                    .eq(PlatformShowParam::getIsdeleted, Constants.ZERO)
                    .eq(PlatformShowParam::getMemberId,loginUserInfo.getMemberId())
            );
            //如果未配置该数据 则全部显示
            if(CollectionUtils.isEmpty(platformShowParamList)){
                for (Platform platform:allPlatformList) {
                    platform.setShowConfig(true);
                }
            }else{
                //根据配置显示数据
                for (PlatformShowParam platformShowParam:platformShowParamList) {
                    for (Platform platform:allPlatformList) {
                        if(Constants.equalsInteger(platform.getId(),platformShowParam.getPlatformId())){
                            platform.setShowConfig(true);
                            break;
                        }
                    }
                }
            }
        }
        for (PlatformGroup platformGroup:platformGroups) {
            platformGroup.setPlatformList(allPlatformList.stream().filter(m->Constants.equalsInteger(m.getGroupId(),platformGroup.getId())).collect(Collectors.toList()));
        }
        return platformGroups;
    }
}