package com.chaozhanggui.admin.system.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chaozhanggui.dao.system.entity.TbPlussMerchantChannelStatus;
import com.chaozhanggui.dao.system.entity.VO.UserInfoVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.util.*;

/**
 * @author lyf
 */
@Service
@Slf4j
public class MerchantChannelService {
//    public Page<UserInfoVO> queryUserInfoVOPage(Map<String, Object> map) {
//        List<UserInfoVO> result = baseMapper.queryUserInfoVOPage(map);
//
//        long page = ((Integer) map.get("offset")).longValue() + 1L;
//        long pageSize = ((Integer) map.get("pageSize")).longValue();
//        Page<UserInfoVO> pageResult = new Page<>(page, pageSize);
//        pageResult.setRecords(result);
//        Long count = baseMapper.queryUserPageCount(map).longValue();
//        pageResult.setTotal(count);
//
//        if (result.isEmpty()) {
//            return pageResult;
//        }
//        List<String> merchantCodeList = new ArrayList<>();
//        List<Integer> userIdList = new ArrayList<>();
//        for (UserInfoVO userInfoVO : result) {
//            merchantCodeList.add(userInfoVO.getMerchantCode() + "");
//            userIdList.add(Integer.valueOf(userInfoVO.getUserId() + ""));
//        }
//
//        List<MerchantChannelStatusVO> channelStatusList = mcsService.listByMerchantCodeList(merchantCodeList);
//        Map<String, Integer> mapMerchantId = new HashMap<>();
//        for (UserInfoVO userInfoVO : result) {
//            List<MerchantChannelStatus> statusList = userInfoVO.getChannelStatusList();
//            if (statusList == null) {
//                statusList = new ArrayList<>();
//                userInfoVO.setChannelStatusList(statusList);
//            }
//
//            Iterator<MerchantChannelStatusVO> iterator = channelStatusList.iterator();
//            while (iterator.hasNext()) {
//                MerchantChannelStatusVO item = iterator.next();
//                if (item.getMerchantCode().equals(userInfoVO.getMerchantCode())) {
//                    if (!mapMerchantId.containsKey(item.getChannel() + item.getMerchantId() + item.getMerchantCode())) {
//                        statusList.add(item);
//                        mapMerchantId.put(item.getChannel() + item.getMerchantId() + item.getMerchantCode(), 1);
//                    }
//                    if (Objects.equals(4, item.getChannel())) {
//                        if (userInfoVO.getWxMercNoD0() == null) {
//                            userInfoVO.setWxMercNoD0(item.getWxMercNo());
//                        } else {
//                            userInfoVO.setWxMercNoD0(userInfoVO.getWxMercNoD0() + " / " + item.getWxMercNo());
//                        }
//
//                        if (userInfoVO.getZfbMercNoD0() == null) {
//                            userInfoVO.setZfbMercNoD0(item.getZfbMercNo());
//                        } else {
//                            userInfoVO.setZfbMercNoD0(userInfoVO.getZfbMercNoD0() + " / " + item.getWxMercNo());
//                        }
//                    } else {
//                        userInfoVO.setWxMercNoD1(item.getWxMercNo());
//                        userInfoVO.setZfbMercNoD1(item.getZfbMercNo());
//                    }
//
//                    iterator.remove();
//                }
//            }
//        }
//
//        return pageResult;
//    }


//    public TbPlussMerchantChannelStatus getByMerchantCodeAndChannelType(String merchantCode, String channelType) {
//        LambdaQueryWrapper<TbPlussMerchantChannelStatus> qWrapper = Wrappers.lambdaQuery();
//        qWrapper.eq(TbPlussMerchantChannelStatus::getVirchannelflag, channelType);
//        qWrapper.eq(TbPlussMerchantChannelStatus::getMerchantcode, merchantCode);
//        qWrapper.eq(TbPlussMerchantChannelStatus::getAuthorizationstatus,1);
//
//        return getOne(qWrapper);
//    }
}
