package com.dsk.system.service.impl;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.OpRegionalEconomicDataRegionalListDto;
import com.dsk.common.dtos.OpRegionalEconomicDataStatisticsRegionalDto;
import com.dsk.common.dtos.OpRegionalEconomicDataV1Dto;
import com.dsk.common.dtos.OpRegionalEconomicDataV1PageDto;
import com.dsk.common.utils.DateUtils;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.system.service.EconomicService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Map;

/**
 * @ClassName EconomicServiceImpl
 * @Description 经济大全实现
 * @Author Dgm
 * @Date 2023/5/18 10:23
 * @Version
 */
@Service
public class EconomicServiceImpl implements EconomicService {

    @Autowired
    private DskOpenApiUtil dskOpenApiUtil;

    @Override
    public AjaxResult nationalPage(OpRegionalEconomicDataV1PageDto dto) {
        if (ObjectUtil.isEmpty(dto.getYear())) {
            dto.setYear(DateUtils.getYear() - 1);
        }
        Map<String, Object> map = dskOpenApiUtil.requestBody("/economic/national/nationalPage",  BeanUtil.beanToMap(dto, false, false));
        return BeanUtil.toBean(map, AjaxResult.class);
    }

    @Override
    public AjaxResult yearsList() {
        Map<String, Object> map = dskOpenApiUtil.requestBody("/economic/years/list",  null);
        return BeanUtil.toBean(map, AjaxResult.class);
    }

    @Override
    public AjaxResult details(Integer id) {
        Map<String, Object> bodyMap = new HashMap<>(1);
        bodyMap.put("id", id);
        Map<String, Object> map = dskOpenApiUtil.requestBody("/economic/details", bodyMap);
        return BeanUtil.toBean(map, AjaxResult.class);
    }

    @Override
    public AjaxResult statisticsRegional(OpRegionalEconomicDataStatisticsRegionalDto dto) {
        Map<String, Object> map = dskOpenApiUtil.requestBody("/economic/statistics/regional",  BeanUtil.beanToMap(dto, false, false));
        return BeanUtil.toBean(map, AjaxResult.class);
    }

    @Override
    public AjaxResult regionalList(OpRegionalEconomicDataRegionalListDto dto) {
        Map<String, Object> map = dskOpenApiUtil.requestBody("/economic/regional/list",  BeanUtil.beanToMap(dto, false, false));
        return BeanUtil.toBean(map, AjaxResult.class);
    }

    @Override
    public AjaxResult regionalComparison(OpRegionalEconomicDataV1Dto dto) {
        Map<String, Object> map = dskOpenApiUtil.requestBody("/economic/xx",  BeanUtil.beanToMap(dto, false, false));
        return BeanUtil.toBean(map, AjaxResult.class);
    }

}
