package com.tmerclub.cloud.systemtest.data.platform;


import cn.hutool.core.bean.BeanUtil;
import com.tmerclub.cloud.api.product.dto.CategoryShopDTO;
import com.tmerclub.cloud.common.product.vo.CategoryLangVO;
import com.tmerclub.cloud.common.product.vo.CategoryVO;
import com.tmerclub.cloud.product.dto.CategoryDTO;
import com.tmerclub.cloud.product.dto.CategoryLangDTO;
import com.moyuer.cloud.systemtest.api.amount.CategoryApi;
import org.springframework.beans.BeanUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author lpj
 */
public class CategoryDtoData {
    /**
     * 平台分类新增数据
     * @param level 等级
     * @param parentId 上级分类id
     * @param deductionRate 平台扣率
     */
    public static CategoryDTO getCategoryDTO(Integer level, Long parentId, Double deductionRate) {
        CategoryDTO categoryDTO = new CategoryDTO();
        categoryDTO.setCategoryId(0L);
        String name = "自动化测试分类" + System.currentTimeMillis();
        categoryDTO.setName(name);
        categoryDTO.setImgUrl("/test.png");
        categoryDTO.setLevel(level);
        categoryDTO.setParentId(parentId);
        categoryDTO.setDeductionRate(deductionRate);
        categoryDTO.setCategoryLangList(getCategoryLangDTOList(name));
        categoryDTO.setStatus(1);
        categoryDTO.setSeq(1);

        return categoryDTO;
    }

    /**
     * 修改平台分类数据
     */
    public static CategoryDTO getCategoryDTO(Long categoryId) {
        CategoryVO categoryVO = CategoryApi.getCategoryInfo(categoryId);
        CategoryDTO categoryDTO = new CategoryDTO();
        BeanUtils.copyProperties(categoryVO, categoryDTO);

        List<CategoryLangVO> categoryLangVOList = categoryVO.getCategoryLangList();
        List<CategoryLangDTO> categoryLangDTOList = categoryLangVOList.stream().map(i -> BeanUtil.copyProperties(i, CategoryLangDTO.class)).collect(Collectors.toList());
        categoryDTO.setCategoryLangList(categoryLangDTOList);

        categoryDTO.setDeductionRate(1.99);

        return categoryDTO;
    }

    /**
     * 店铺签约分类列表
     */
    public static List<CategoryShopDTO> getCategoryShopDtoList(List<Long> categoryIds) {
        List<CategoryShopDTO> categoryShopDTOList= new ArrayList<>();
        for(Long categoryId : categoryIds) {
            CategoryShopDTO categoryShopDTO = new CategoryShopDTO();
            categoryShopDTO.setCategoryId(categoryId);
            categoryShopDTO.setQualifications(null);
            categoryShopDTOList.add(categoryShopDTO);
        }
        return categoryShopDTOList;
    }

    private static List<CategoryLangDTO> getCategoryLangDTOList(String name) {
        List<CategoryLangDTO> categoryLangDTOList = new ArrayList<>();
        CategoryLangDTO categoryLangDtoA = new CategoryLangDTO();
        categoryLangDtoA.setLang(1);
        categoryLangDtoA.setName(name);
        categoryLangDTOList.add(categoryLangDtoA);
        CategoryLangDTO categoryLangDtoB = new CategoryLangDTO();
        categoryLangDtoB.setLang(2);
        categoryLangDtoB.setName(null);
        categoryLangDTOList.add(categoryLangDtoB);
        return categoryLangDTOList;
    }
}
