package org.springblade.modules.directive.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.modules.directive.entity.Directive; import org.springblade.modules.directive.entity.DirectiveFile; import org.springblade.modules.directive.service.DirectiveService; import org.springblade.modules.directive.vo.DirectiveVo; import org.springframework.web.bind.annotation.*; /** * @author zhongrj * @time 2021-07-21 * @desc 指令控制层 */ @RestController @AllArgsConstructor @RequestMapping("/directive") public class DirectiveController { private final DirectiveService directiveService; /** * 自定义分页 * @param query page,size * @param directive 指令信息对象 */ @GetMapping("/page") public R> page(DirectiveVo directive, Query query) { IPage pages = directiveService.selectDirectivePage(Condition.getPage(query), directive); return R.data(pages); } /** * 新增 * @param directive 指令信息对象 */ @PostMapping("/save") @ApiOperation(value = "新增", notes = "传入directive") public R save(@RequestBody Directive directive) { return R.status(directiveService.save(directive)); } /** * 指令信息新增,同时新增图片到指令文件表中 * @param directive 指令信息对象 */ @PostMapping("/saveDirectiveAndFile") public R saveDirectiveAndFile(@RequestBody DirectiveVo directive) { //新增指令信息 boolean save = directiveService.save(directive); boolean status = false; if (save){ //新增图片 if (null!=directive.getUrl() && directive.getUrl()!=""){ String[] directiveUrl = directive.getUrl().split(","); for (String url : directiveUrl) { DirectiveFile directiveFile = new DirectiveFile(); directiveFile.setType(1); directiveFile.setDirectiveId(directive.getId()); directiveFile.setUrl(url); status = directiveService.saveDirectiveFile(directiveFile); if (!status){ R.status(false); } } } return R.status(status); } //返回数据 return R.status(status); } /** * 指令信息修改,同时新增图片到指令文件表中 * @param directive 指令信息对象 */ @PostMapping("/updateDirectiveAndFile") public R updateDirectiveAndFile(@RequestBody DirectiveVo directive) { //新增指令信息 boolean update = directiveService.updateById(directive); boolean status = false; if (update){ //先删除图片 int i = directiveService.deleleByDirectiveId(directive.getId()); //新增图片 if (null!=directive.getUrl() && directive.getUrl()!=""){ String[] directiveUrl = directive.getUrl().split(","); for (String url : directiveUrl) { DirectiveFile directiveFile = new DirectiveFile(); directiveFile.setType(1); directiveFile.setDirectiveId(directive.getId()); directiveFile.setUrl(url); status = directiveService.saveDirectiveFile(directiveFile); if (!status){ R.status(false); } } } return R.status(status); } //返回数据 return R.status(status); } /** * 修改 * @param directive 指令信息对象 */ @PostMapping("/update") public R update(@RequestBody Directive directive) { return R.status(directiveService.updateById(directive)); } /** * 新增或修改 * @param directive 指令信息对象 */ @PostMapping("/submit") public R submit(@RequestBody Directive directive) { return R.status(directiveService.saveOrUpdate(directive)); } /** * 删除 * @param ids 指令信息ids 数组 */ @PostMapping("/remove") public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { //图片也删除 if (null!=ids && ids!=""){ String[] directiveIds = ids.split(","); for (String directiveId : directiveIds) { directiveService.deleleByDirectiveId(Long.parseLong(directiveId)); } } return R.status(directiveService.removeByIds(Func.toLongList(ids))); } /** * 详情 * @param directive 指令信息对象 */ @GetMapping("/detail") @ApiOperation(value = "详情", notes = "传入directive") public R detail(Directive directive) { Directive detail = directiveService.getOne(Condition.getQueryWrapper(directive)); return R.data(detail); } /** * 自定义详情查询 * @param directive 指令信息对象 */ @GetMapping("/details") @ApiOperation(value = "详情", notes = "传入directive") public R details(Directive directive) { DirectiveVo detail = directiveService.selectDirectiveInfo(directive); return R.data(detail); } }