データの変更と追加の唯一の違いは、データがデータベースに存在するかどうかであるため、コントローラー層に ID が存在するかどうかを判断できます。
コントローラ
@RestController
@RequestMapping("riskunit")
public class SUnitController extends MpBaseController{
/**
* 新增或修改风险单元
*/
@Log(title = "风险单元", businessType = BusinessType.INSERT)
@RequiresPermissions("scyf:riskunit:addOrUpdate")
@PostMapping
public AjaxResult add(@Validated @RequestBody SUnit sUnit){
if (sUnit.getUnitId() == null) {
boolean b = sUnitService.addUnit(sUnit);
if (b) {
return AjaxResult.success("新增成功");
}
return AjaxResult.error("新增失败");
}else {
boolean b = sUnitService.updateUnit(sUnit);
if (b) {
return AjaxResult.success("修改成功");
}
return AjaxResult.error("修改失败");
}
}
}
サービス
public interface SUnitService extends IService<SUnit> {
boolean addUnit(SUnit sUnit);
boolean updateUnit(SUnit sUnit);
}
サービス実装
@Service
public class SUnitServiceImpl extends ServiceImpl<SUnitMapper, SUnit> implements SUnitService {
@Override
public boolean addUnit(SUnit sUnit) {
sUnit.setCreateTime(getDate());
int insert = sUnitMapper.insert(sUnit);
boolean b = addSRF(sUnit.getIds(), sUnit.getUnitId());
if (insert == 1 && b){
return true;
}
return false;
}
@Override
public boolean updateUnit(SUnit sUnit) {
sUnit.setUpdateTime(getDate());
QueryWrapper<SUnit> wrapper = new QueryWrapper<>();
wrapper.eq("unit_id",sUnit.getUnitId());
int update = sUnitMapper.update(sUnit, wrapper);
boolean b = updateSRF(sUnit.getIds(), sUnit.getUnitId());
if (update == 1 && b){
return true;
}
return false;
}
public boolean addSRF(Integer[] ids,Integer unitId){
int j = 0;
for (int i = 0; i < ids.length; i++) {
SRiskFactors sRiskFactors = new SRiskFactors();
sRiskFactors.setUnitId(unitId);
sRiskFactors.setFacId(ids[i]);
int insert1 = sRiskFactorsMapper.insert(sRiskFactors);
if (insert1 == 1){
j++;
}
}
if (ids.length == j){
return true;
}
return false;
}
public boolean updateSRF(Integer[] ids,Integer unitId) {
QueryWrapper<SRiskFactors> wrapper = new QueryWrapper<>();
wrapper.eq("unit_id", unitId);
sRiskFactorsMapper.delete(wrapper);
boolean b = addSRF(ids, unitId);
return b;
}
}