package com.tmerclub.cloud.cuerecycle.feign;

import cn.hutool.core.util.ObjectUtil;
import com.tmerclub.cloud.api.loacl.cuerecycle.feign.CueProductFeignClient;
import com.tmerclub.cloud.common.local.bo.EsCueBrandBO;
import com.tmerclub.cloud.common.local.bo.EsCueProductBO;
import com.tmerclub.cloud.common.local.bo.EsCueSeriesBO;
import com.tmerclub.cloud.common.local.bo.EsCueTypeBO;
import com.tmerclub.cloud.cuerecycle.mapper.CueBrandMapper;
import com.tmerclub.cloud.cuerecycle.mapper.CueProductMapper;
import com.tmerclub.cloud.cuerecycle.mapper.CueSeriesMapper;
import com.tmerclub.cloud.cuerecycle.mapper.CueTypeMapper;
import com.tmerclub.cloud.cuerecycle.model.vo.CueBrandVO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueProductVO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueSeriesVO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueTypeVO;
import jakarta.annotation.Resource;
import org.apache.dubbo.config.annotation.DubboService;

/**
 * 球杆商品本地调用服务实现
 *
 * @author: frank
 * @create: 2025-04-19
 **/
@DubboService
public class CueProductFeignController implements CueProductFeignClient {

    @Resource
    CueProductMapper cueProductMapper;
    @Resource
    CueTypeMapper cueTypeMapper;
    @Resource
    CueBrandMapper cueBrandMapper;
    @Resource
    CueSeriesMapper cueSeriesMapper;

    @Override
    public EsCueProductBO getEsCueProduct(Long productId) {
        // 查询ES结构数据
        CueProductVO cueProductVO = cueProductMapper.getById(productId);
        if (ObjectUtil.isNotNull(cueProductVO)) {
            EsCueProductBO esCueProductBO = new EsCueProductBO();
            esCueProductBO.setProductId(cueProductVO.getProductId());
            esCueProductBO.setTypeId(cueProductVO.getTypeId());
            esCueProductBO.setBrandId(cueProductVO.getBrandId());
            esCueProductBO.setSeriesId(cueProductVO.getSeriesId());
            esCueProductBO.setProductName(cueProductVO.getProductName());
            esCueProductBO.setProductDescription(cueProductVO.getProductDescription());
            esCueProductBO.setProductImages(cueProductVO.getProductImages());
            esCueProductBO.setProductPrice(cueProductVO.getProductPrice());
            // 查询关联品牌信息
            EsCueBrandBO brandItem = new EsCueBrandBO();
            if (ObjectUtil.isNotNull(cueProductVO.getBrandId())) {
                CueBrandVO cueBrandVO = cueBrandMapper.getById(cueProductVO.getBrandId());
                brandItem.setBrandId(cueBrandVO.getBrandId());
                brandItem.setBrandName(cueBrandVO.getBrandName());
                brandItem.setBrandLogo(cueBrandVO.getBrandLogo());
            }
            esCueProductBO.setBrandItem(brandItem);
            // 查询关联系列信息
            EsCueSeriesBO seriesItem = new EsCueSeriesBO();
            if (ObjectUtil.isNotNull(cueProductVO.getSeriesId())) {
                CueSeriesVO cueSeriesVO = cueSeriesMapper.getById(cueProductVO.getSeriesId());
                seriesItem.setSeriesId(cueSeriesVO.getSeriesId());
                seriesItem.setSeriesName(cueSeriesVO.getSeriesName());
            }
            esCueProductBO.setSeriesItem(seriesItem);
            // 查询关联类型信息
            EsCueTypeBO typeItem = new EsCueTypeBO();
            if (ObjectUtil.isNotNull(cueProductVO.getTypeId())) {
                CueTypeVO cueTypeVO = cueTypeMapper.getById(cueProductVO.getTypeId());
                typeItem.setTypeId(cueTypeVO.getTypeId());
                typeItem.setTypeName(cueTypeVO.getTypeName());
                typeItem.setTypeImage(cueTypeVO.getTypeImage());
            }
            esCueProductBO.setTypeItem(typeItem);
            return esCueProductBO;
        }
        return null;
    }
}
