package com.aircraft.api.fly.controller; import com.aircraft.api.fly.entity.CpMaterial; import com.aircraft.api.fly.service.CpMaterialService; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.base.annotation.SysLog; import com.base.helper.BaseController; import com.base.helper.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.Collections; import java.util.List; import java.util.Map; /** *

* 前端控制器 *

* * @author gjj * @since 2025-07-05 */ @Api(tags = "素材管理") @RestController @RequestMapping("/cpMaterial") public class CpMaterialController extends BaseController { private static final Logger LOG = LoggerFactory.getLogger(CpMaterialController.class); @Autowired private CpMaterialService entityService; @SysLog(action = "findByPage", value = "分页查询素材") @ApiOperation(value = "分页查询素材", notes = "分页查询素材") @RequestMapping(method = RequestMethod.GET) @ApiImplicitParams({@ApiImplicitParam(name = "size", value = "分页大小", paramType = "query"), @ApiImplicitParam(name = "current", value = "当前页面:从1开始", paramType = "query")}) public Result> findByPage(final CpMaterial example, final Page page) { IPage records = entityService.page(example,page); return new Result(true, records); } @SysLog(action = "delete", value = "删除素材") @ApiOperation(value = "删除素材") @RequestMapping(value = "{id}", method = {RequestMethod.DELETE}) @ApiImplicitParam(name = "id", value = "素材ID", required = true, paramType = "path") public Result delete(@PathVariable final Integer id) { try { entityService.removeById(id); return new Result(true, "成功删除素材", null); } catch (DataIntegrityViolationException e) { LOG.error("删除素材失败", e); return new Result(false, "删除素材失败", "该素材不能删除,存在其他关联数据"); } catch (Exception e) { LOG.error("删除素材失败", e); return new Result(false, "删除素材失败", e.getMessage()); } } @SysLog(action = "one", value = "查询单个素材") @ApiOperation(value = "查询单个素材") @RequestMapping(value = "{id}", method = {RequestMethod.GET}) @ApiImplicitParam(name = "id", value = "素材ID", required = true, paramType = "path") public Result one(@PathVariable final Integer id) { try { CpMaterial entity = entityService.getById(id); return new Result(true, entity); } catch (Exception e) { LOG.error("查询单个素材失败", e); return new Result(false, new CpMaterial()); } } @SysLog(action = "add", value = "添加素材") @ApiOperation(value = "添加素材") @RequestMapping(method = {RequestMethod.POST}) public Result add(@Valid @RequestBody final CpMaterial entity, final BindingResult result) { try { if (result.hasErrors()) { Map map = this.getErrors(result); String errorMsg = map.entrySet().iterator().next().getValue(); return new Result(false, "保存素材失败", errorMsg, map); } else { entityService.save(entity); return new Result(true, "成功保存素材", null); } } catch (Exception e) { LOG.error("添加素材失败", e); return new Result(false, "保存素材失败", e.getMessage()); } } @SysLog(action = "update", value = "修改素材") @ApiOperation(value = "修改素材") @RequestMapping(method = {RequestMethod.PUT}) public Result update(@Valid @RequestBody final CpMaterial entity, final BindingResult result) { try { if (result.hasErrors()) { Map map = this.getErrors(result); String errorMsg = map.entrySet().iterator().next().getValue(); return new Result(false, "修改素材失败", errorMsg, map); } else { if (null == entity.getId()) { throw new RuntimeException("id不能为空"); } entityService.updateById(entity); return new Result(true, "成功修改素材", null); } } catch (Exception e) { LOG.error("修改素材失败", e); return new Result(false, "修改素材失败", e.getMessage()); } } @ApiOperation(value = "全部素材") @RequestMapping(value = "all", method = RequestMethod.GET) public Result> all(CpMaterial example) { List entitys = entityService.list(example); if (null != entitys) { return new Result<>(true, entitys); } return new Result<>(true, Collections.emptyList()); } }