# CRUD 示例代码(tofly-dcsw 风格) 以下示例对齐 `tofly-dcsw` 典型实现: - 返回 `ResultRespone` - `GET /page` + `Page` + `@ModelAttribute` - 写操作使用 `@ToFlyAppLog` - 业务规则在 Service,SQL 在 XML ## 1) Controller 示例 ```java package com.tofly.quality.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.tofly.common.core.entity.ResultRespone; import com.tofly.common.log.annotation.ToFlyAppLog; import com.tofly.quality.entity.SamplePlaceD; import com.tofly.quality.entity.dto.SamplePlaceDQuery; import com.tofly.quality.service.SamplePlaceDService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; @RestController @AllArgsConstructor @RequestMapping("/sampleplaced") @Api(tags = "采样地点配置表接口") public class SamplePlaceDController { private final SamplePlaceDService samplePlaceDService; @GetMapping("/page") @ApiOperation(value = "分页查询") public ResultRespone getSamplePlaceDPage(Page page, @ModelAttribute SamplePlaceDQuery query) { return ResultRespone.success(samplePlaceDService.getPageData(page, query)); } @GetMapping("/{id}") @ApiOperation(value = "通过ID查询") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "Long") }) public ResultRespone getById(@PathVariable("id") Long id) { return ResultRespone.success(samplePlaceDService.getById(id)); } @ToFlyAppLog(title = "新增采样地点配置表") @ApiOperation(value = "新增采样地点配置表") @PostMapping public ResultRespone save(@RequestBody @Valid SamplePlaceD samplePlaceD) { return ResultRespone.success(samplePlaceDService.save(samplePlaceD)); } @ToFlyAppLog(title = "修改采样地点配置表") @ApiOperation(value = "修改采样地点配置表") @PutMapping public ResultRespone updateById(@RequestBody @Valid SamplePlaceD samplePlaceD) { return ResultRespone.success(samplePlaceDService.updateById(samplePlaceD)); } @ToFlyAppLog(title = "通过ID批量删除采样地点配置表") @ApiOperation(value = "通过ID批量删除采样地点配置表") @DeleteMapping("/deleteByIds") public ResultRespone removeByIds(String ids) { return ResultRespone.success(samplePlaceDService.deleteByIds(ids)); } } ``` ## 2) Service/ServiceImpl 示例(业务规则在 Service) ```java package com.tofly.quality.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.tofly.quality.entity.SamplePlaceD; import com.tofly.quality.entity.dto.SamplePlaceDQuery; public interface SamplePlaceDService extends IService { Page getPageData(Page page, SamplePlaceDQuery query); boolean deleteByIds(String ids); boolean selectByName(String samplePlaceName, Long id); } ``` ```java package com.tofly.quality.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.tofly.quality.entity.SamplePlaceD; import com.tofly.quality.entity.dto.SamplePlaceDQuery; import com.tofly.quality.mapper.SamplePlaceDMapper; import com.tofly.quality.service.SamplePlaceDService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; import java.util.List; @Service("samplePlaceDService") public class SamplePlaceDServiceImpl extends ServiceImpl implements SamplePlaceDService { @Override public Page getPageData(Page page, SamplePlaceDQuery query) { return this.baseMapper.getPageData(page, query); } @Override @Transactional public boolean deleteByIds(String ids) { List idList = Arrays.asList(ids.split(",")); return this.removeByIds(idList); } @Override public boolean selectByName(String samplePlaceName, Long id) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("SAMPLE_PLACE_NAME", samplePlaceName); if (id != null && id > 0) { queryWrapper.ne("ID", id); } return this.baseMapper.selectCount(queryWrapper) == 0; } } ``` ## 3) Mapper + XML 示例(SQL 仅 XML) ```java package com.tofly.quality.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.tofly.quality.entity.SamplePlaceD; import com.tofly.quality.entity.dto.SamplePlaceDQuery; import org.apache.ibatis.annotations.Param; public interface SamplePlaceDMapper extends BaseMapper { Page getPageData(Page page, @Param("qry") SamplePlaceDQuery query); } ``` ```xml ```