package com.doumee.api.business; import com.doumee.api.BaseController; import com.doumee.core.annotation.pr.PreventRepeat; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.GoodsImportTask; import com.doumee.service.business.GoodsImportTaskService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; @Api(tags = "商品异步导入任务") @RestController @RequestMapping("/business/goodsImportTask") public class GoodsImportTaskController extends BaseController { @Autowired private GoodsImportTaskService goodsImportTaskService; @ApiOperation("下载异步导入模板") @PostMapping("/exportTemplate") @RequiresPermissions("business:goods:exportExcel") public void exportTemplate(HttpServletRequest request, HttpServletResponse response) throws Exception { goodsImportTaskService.exportImportAsyncTemplate(request, response); } @PreventRepeat @ApiOperation("提交异步导入任务") @PostMapping("/importExcelAsync") @ApiImplicitParams({ @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class), }) @RequiresPermissions("business:goodsImportTask:create") public ApiResponse importExcelAsync(@RequestParam("file") MultipartFile file) { return ApiResponse.success(goodsImportTaskService.submitTask(file)); } @ApiOperation("分页查询导入任务") @PostMapping("/page") @RequiresPermissions("business:goodsImportTask:query") public ApiResponse> page(@RequestBody PageWrap pageWrap) { return ApiResponse.success(goodsImportTaskService.findPage(pageWrap)); } @ApiOperation("查询任务详情") @GetMapping("/{id}") @RequiresPermissions("business:goodsImportTask:query") public ApiResponse findById(@PathVariable Integer id) { return ApiResponse.success(goodsImportTaskService.findById(id)); } @ApiOperation("是否存在未完成导入任务") @GetMapping("/hasUnfinished") @RequiresPermissions("business:goodsImportTask:query") public ApiResponse hasUnfinished() { return ApiResponse.success(goodsImportTaskService.hasUnfinishedTask(getLoginUser().getCompanyId())); } @ApiOperation("删除导入任务") @GetMapping("/delete/{id}") @RequiresPermissions("business:goodsImportTask:delete") public ApiResponse deleteById(@PathVariable Integer id) { goodsImportTaskService.deleteById(id); return ApiResponse.success(null); } }