package com.qianwen.smartman.modules.visual.controller; import java.io.FileNotFoundException; import java.util.List; import javax.validation.Valid; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.qianwen.core.boot.ctrl.BladeController; import com.qianwen.core.mp.support.Condition; import com.qianwen.core.mp.support.Query; import com.qianwen.core.oss.model.BladeFile; import com.qianwen.core.scanner.modular.annotation.GetResource; import com.qianwen.core.scanner.modular.annotation.PostResource; import com.qianwen.core.scanner.modular.stereotype.ApiResource; import com.qianwen.core.tool.api.R; import com.qianwen.core.tool.support.Kv; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.modules.resource.builder.oss.OssBuilder; import com.qianwen.smartman.modules.system.constant.SystemFieldConstant; import com.qianwen.smartman.modules.visual.dto.VisualDTO; import com.qianwen.smartman.modules.visual.entity.Visual; import com.qianwen.smartman.modules.visual.entity.VisualCategory; import com.qianwen.smartman.modules.visual.service.IVisualCategoryService; import com.qianwen.smartman.modules.visual.service.IVisualCompService; import com.qianwen.smartman.modules.visual.service.IVisualService; import com.qianwen.smartman.modules.visual.vo.VisualInfoVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @ApiResource({"blade-visual/visual"}) @Api(value = "可视化表", tags = {"可视化数据接口"}) @RestController /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/visual/controller/VisualController.class */ public class VisualController extends BladeController { private final IVisualService visualService; private final IVisualCategoryService categoryService; private final OssBuilder ossBuilder; private final IVisualCompService compService; public VisualController(final IVisualService visualService, final IVisualCategoryService categoryService, final OssBuilder ossBuilder, final IVisualCompService compService) { this.visualService = visualService; this.categoryService = categoryService; this.ossBuilder = ossBuilder; this.compService = compService; } @ApiOperationSupport(order = 1) @GetResource({"/detail"}) @ApiOperation(value = "详情", notes = "传入visual") public R detail(@RequestParam Long id) { VisualDTO detail = this.visualService.detail(id); return R.data(detail); } @GetResource({"/detail/catalog/{catalogId}"}) @ApiOperation(value = "详情", notes = "传入visual") public R> configList(@PathVariable int catalogId) { return R.data(this.visualService.detailsByCatalog(Integer.valueOf(catalogId))); } @ApiOperationSupport(order = 2) @GetResource({"/list"}) @ApiOperation(value = "分页", notes = "传入visual") public R> list(Visual visual, Query query) { IPage pages = this.visualService.page(Condition.getPage(query), Condition.getQueryWrapper(visual).lambda().eq(StringUtils.isNotBlank(visual.getGroupName()), (v0) -> { return v0.getGroupName(); }, visual.getGroupName())); return R.data(pages); } @ApiOperationSupport(order = 3) @PostResource({"/save"}) @ApiOperation(value = "新增", notes = "传入visual") public R save(@Valid @RequestBody VisualDTO visual) { boolean temp = this.visualService.saveVisual(visual); if (temp) { Long id = visual.getVisual().getId(); return R.data(Kv.create().set("id", String.valueOf(id))); } return R.status(false); } @ApiOperationSupport(order = 4) @PostResource({"/update"}) @ApiOperation(value = "修改", notes = "传入visual") public R update(@Valid @RequestBody VisualDTO visual) { return R.status(this.visualService.updateVisual(visual)); } @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL) @PostResource({"/remove"}) @ApiOperation(value = "逻辑删除", notes = "传入ids") public R remove(@RequestParam @ApiParam(value = "主键集合", required = true) String ids) { return R.status(this.visualService.deleteLogic(Func.toLongList(ids))); } @ApiOperationSupport(order = 6) @PostResource({"/copy"}) @ApiOperation(value = "复制", notes = "传入id") public R copy(@RequestParam @ApiParam(value = "主键集合", required = true) Long id) { return R.data(this.visualService.copyVisual(id)); } @ApiOperationSupport(order = 6) @PostResource({"/copyImport"}) @ApiOperation(value = "从import复制", notes = "传入import对象") public R copyImport(@RequestBody VisualDTO visualDTO) { return R.data(this.visualService.visualImport(visualDTO)); } @ApiOperationSupport(order = 7) @GetResource({SystemFieldConstant.CATEGORY}) @ApiOperation("获取类型") public R category() { List list = this.categoryService.list(); return R.data(list); } @PostResource({"/put-file"}) public R putFie(@RequestParam MultipartFile file) { BladeFile bladeFile = this.ossBuilder.visualTemplate().putFile(file.getOriginalFilename(), file); return R.data(bladeFile); } @PostResource({"/zip/download"}) @ApiOperation(value = "批量导出大屏,返回zip文件信息", notes = "传入大屏ID列表") public R visualZipDownload(@RequestBody @ApiParam("需要导出的大屏ID列表") List visualIds) throws FileNotFoundException { BladeFile file = this.visualService.visualZipDownload(visualIds); return R.data(file); } @PostResource({"/zip/import"}) @ApiOperation(value = "批量导入大屏", notes = "大屏zip文件") public R visualZipImport(@RequestParam("file") MultipartFile file, @RequestParam("category") @ApiParam("分类") String category) { this.visualService.visualZipImport(file, Integer.valueOf(Integer.parseInt(category))); return R.status(true); } }