package com.glxp.api.controller.basic; import cn.hutool.core.thread.ThreadUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.CusRedissonAnnotation; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.RedissonCacheKey; import com.glxp.api.controller.BaseController; import com.glxp.api.req.basic.BasicSkSickerRequest; import com.glxp.api.req.basic.GetSickRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.BasicSkSickerResponse; import com.glxp.api.service.basic.BasicSkSickerService; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; @Slf4j @RestController public class BasicSickerController extends BaseController { @Resource BasicSkSickerService basicSkSickerService; @GetMapping("/udiwms/basic/sk/sicker/filter") public BaseResponse filterSicker(BasicSkSickerRequest basicSkSickerRequest) { List basicSkSickerResponses = basicSkSickerService.filterList(basicSkSickerRequest); PageInfo pageInfo = new PageInfo<>(basicSkSickerResponses); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(basicSkSickerResponses); return ResultVOUtils.success(pageSimpleResponse); } @CusRedissonAnnotation(cacheName = RedissonCacheKey.DL_SICKER, key = {"#getSickRequest.thirdSys"}, waitTime = 3, timeOutMsg = "后台正在下载,请勿重复提交") @PostMapping("/udiwms/basic/sk/sicker/download") public BaseResponse sickerDl(@RequestBody GetSickRequest getSickRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } ThreadUtil.execAsync(() -> { basicSkSickerService.downloadSicker(getSickRequest, null); }); return ResultVOUtils.success("后台已开始下载,请稍后刷新查看!"); } }