package com.linghu.controller; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.handler.SheetWriteHandler; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.linghu.listener.PlatformExcelListener; import com.linghu.listener.TypeDropdownWriteHandler; import com.linghu.mapper.KeywordMapper; import com.linghu.mapper.ReferenceMapper; import com.linghu.model.common.ResponseResult; import com.linghu.model.entity.*; import com.linghu.model.excel.ExcelDataWithRow; import com.linghu.model.excel.PlatformExcel; import com.linghu.model.excel.UserExcel; import com.linghu.model.page.CustomPage; import com.linghu.model.validator.CreateGroup; import com.linghu.model.validator.UpdateGroup; import com.linghu.service.PlatformService; import com.linghu.service.TypeService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.log4j.Log4j; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.DataValidation; import org.apache.poi.ss.usermodel.DataValidationConstraint; import org.apache.poi.ss.usermodel.DataValidationHelper; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.util.CellRangeAddressList; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.util.StringUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.time.LocalDateTime; import java.util.*; import java.util.Objects; import java.util.stream.Collectors; @RestController @RequestMapping("/platform") @Api(value = "平台相关接口", tags = "设置-平台") @Slf4j public class PlatformController { @Autowired private PlatformService platformService; @Autowired private TypeService typeService; @PostMapping @ApiOperation(value = "添加平台") public ResponseResult add( @Validated(CreateGroup.class) @RequestBody Platform platform) { return platformService.addPlatform(platform); } @DeleteMapping("/{platformId}") @ApiOperation(value = "删除平台") public ResponseResult delete( @PathVariable Integer platformId) { return platformService.deleteByPlatFormId(platformId); } @PutMapping @ApiOperation(value = "更新平台") public ResponseResult update(@Validated(UpdateGroup.class) @RequestBody Platform platform) { return platformService.updatePlatform(platform); } @GetMapping("/{platformId}") @ApiOperation("根据id获取平台") public ResponseResult getById(@PathVariable Integer platformId) { Platform platform = platformService.getById(platformId); if (platform != null) { return ResponseResult.success(platform); } return ResponseResult.error("平台不存在"); } @GetMapping("/list") @ApiOperation("查询平台列表") public ResponseResult> list( @RequestParam(value = "page",required = false) Integer page, @RequestParam(value = "pageSize",required = false) Integer pageSize, @RequestParam(value = "type_id",required = false) Integer type_id, @RequestParam(value = "keywordId", required = false) Integer keywordId, @RequestParam(value = "questionId",required = false) Integer questionId, @RequestParam(value = "isNow",required = false) Integer isNow ) { return platformService.platformPageList(page, pageSize, type_id, keywordId, questionId, isNow); } @GetMapping("/download") @ApiOperation("下载平台模板") public ResponseEntity downloadTemplate() throws IOException { return platformService.downloadPlatformExcel(); } @PostMapping("/import") @ApiOperation("导入平台数据") public ResponseResult importPlatforms(@RequestParam("file") MultipartFile file) { return platformService.importPlatformsExcel(file); } }