package com.bohuikeji.frame.module.admin.controller;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.bohuikeji.frame.module.admin.base.ControllerBase;
import com.bohuikeji.frame.module.admin.entity.back.PageEntity;
import com.bohuikeji.frame.module.admin.entity.sys.SysChart;
import com.bohuikeji.frame.module.admin.entity.sys.SysUser;
import com.bohuikeji.frame.module.admin.service.ISysChartService;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 图表页面返回
 */
@RestController
@RequestMapping("/views/chart")
@RequiredArgsConstructor
@Slf4j
public class FrameChartController extends ControllerBase {

    final ISysChartService chartService;

    @GetMapping("/index")
    public PageEntity getChart() {
        SysUser user=getLoginUser();
        String group="index_zhfc";
        if (user.getFranId()!=1){
            group="index_zhfc_fran";
        }
        /**
         * 处理卡片
         */
        List<SysChart> cardList =chartService.fullChartList(chartService.list(new QueryWrapper<SysChart>()
                .eq("chart_show", 1)
                .eq("chart_group",group)
                .eq("chart_type", "card")
                .orderByDesc("chart_sort")),user);
        List<SysChart> chartList = chartService.fullChartList(chartService.list(new QueryWrapper<SysChart>()
                .eq("chart_show", 1)
                .eq("chart_group",group)
                .in("chart_type", "line","bar")
                .orderByDesc("chart_sort")),user);
        return PageEntity.page("index").add("cards", cardList).add("charts", chartList);
    }

    /**
     * 按组查询数据图表
     * @return 返回html代码
     */
    @ApiOperation("按组查询数据数据图表")
    @GetMapping("/get/block/group")
    public PageEntity getHtmlGroup(String group){
        SysUser user=getLoginUser();
        List<SysChart> charts=chartService.fullChartList(chartService.list(new QueryWrapper<SysChart>()
                .eq("chart_group",group)),user);
        return PageEntity.cards(charts);
    }
}
