123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- package space.anyi.BI.controller;
- import cn.hutool.core.util.IdUtil;
- import cn.hutool.poi.excel.ExcelUtil;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- import space.anyi.BI.BIApplication;
- import space.anyi.BI.entity.Chart;
- import space.anyi.BI.entity.ResponseResult;
- import space.anyi.BI.entity.dto.ChartDTO;
- import space.anyi.BI.entity.vo.ChartVO;
- import space.anyi.BI.entity.vo.PageVO;
- import space.anyi.BI.service.ChartService;
- import space.anyi.BI.util.BeanCopyUtil;
- import space.anyi.BI.util.SecurityUtils;
- import javax.annotation.Resource;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * @ProjectName: BI
- * @FileName: ChartController
- * @Author: 杨逸
- * @Data:2024/11/28 19:53
- * @Description:
- */
- @Controller()
- @RequestMapping("/chart")
- public class ChartController {
- private final static Logger log = LoggerFactory.getLogger(ChartController.class);
- @Resource
- private ChartService chartService;
- @GetMapping("/getChartById/{id}")
- @ResponseBody
- public ResponseResult getChartById(@PathVariable("id") Long id){
- Chart chart = chartService.getById(id);
- return ResponseResult.okResult(chart);
- }
- @PostMapping("/add")
- @ResponseBody
- public ResponseResult addChart(@RequestBody Chart chart){
- long id = IdUtil.getSnowflake(1, 1).nextId();
- chart.setId(id);
- Long userId = SecurityUtils.getUserId();
- chart.setUserId(userId);
- chartService.save(chart);
- return ResponseResult.okResult();
- }
- @DeleteMapping("/{ids}")
- @ResponseBody
- public ResponseResult deleteChartById(@PathVariable List<Long> ids){
- chartService.removeByIds(ids);
- return ResponseResult.okResult();
- }
- @PutMapping("/update")
- @ResponseBody
- public ResponseResult updateChart(@RequestBody Chart chart){
- chartService.updateById(chart);
- return ResponseResult.okResult();
- }
- @GetMapping("/list")
- @ResponseBody
- public ResponseResult page(Integer pageNum,Integer pageSize){
- Page<Chart> page = chartService.page(new Page<Chart>(pageNum, pageSize));
- List<ChartVO> voList = new ArrayList<>();
- for (Chart chart : page.getRecords()) {
- ChartVO chartVO = BeanCopyUtil.copyBean(chart, ChartVO.class);
- chartVO.setId(chart.getId().toString());
- chartVO.setUserId(chart.getUserId().toString());
- voList.add(chartVO);
- }
- PageVO pageVO = new PageVO(voList, page.getTotal());
- return ResponseResult.okResult(pageVO);
- }
- @PostMapping("/generateChartByAI")
- @ResponseBody
- public ResponseResult generateChartByAI(ChartDTO chartDTO, MultipartFile file) throws IOException {
- log.info("分析目标:{}图标名称:{}",chartDTO.getAnalysisTarget(),chartDTO.getName());
- if (file == null || file.isEmpty()) {
- return ResponseResult.errorResult(ResponseResult.AppHttpCodeEnum.FILE_NOT_NULL);
- }
- //文件类判断
- if (!file.getContentType().equals("application/vnd.ms-excel") && !file.getContentType().equals("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")) {
- return ResponseResult.errorResult(ResponseResult.AppHttpCodeEnum.FILE_TYPE_ERROR);
- }
- ChartVO vo = chartService.generateChartByAI(chartDTO,file);
- return ResponseResult.okResult(vo);
- }
- @ExceptionHandler({IOException.class})
- private ResponseResult exceptionHandler(){
- return ResponseResult.errorResult(ResponseResult.AppHttpCodeEnum.FILE_ERROR);
- }
- }
|