类似于这种,选择了某个就得更新数据库,而不是点了编辑统一更新的。
常规便是一个选择功能设置一个接口,但是可以有更加简单的,所有选择按钮共用一个更新接口,因为本质上都是更新功能,只需要判断是哪一个字段需要修改即可。
接收参数的DTO可以用一个situationType属性来判断是哪一个按钮功能
@Setter
@Getter
public class OkbSurveySoftwareSituationUpdateDTO {
/**
* 软件详情id
*/
@NotNull
private Integer surveyDetailId;
/**
* 调研软件情况 0-未选择,-1-无,1-有
*/
@NotNull
@Max(value = 1, message = "软件情况只能为 0-未选择,-1-无,1-有")
@Min(value = -1, message = "软件情况只能为 0-未选择,-1-无,1-有")
private Integer situation;
/**
* 软件情况类型,1为建设情况,2为软件运营情况,3为软件验收情况,4为接入平台情况
*/
@NotNull
@Max(value = 4 , message = "软件情况类型只能为:1为建设情况,2为软件运营情况,3为软件验收情况,4为接入平台情况")
@Min(value = 1, message = "软件情况类型只能为:1为建设情况,2为软件运营情况,3为软件验收情况,4为接入平台情况")
private Integer situationType;
}
再通过id查出对应的信息后,通过判断是哪一个字段再赋值更新
OkbICFaSurveyDetail surveyDetail = okbICFaSurveyDetailMapper.selectByPrimaryKey(situationUpdateDTO.getSurveyDetailId());
String situation = String.valueOf(situationUpdateDTO.getSituation());
switch (situationUpdateDTO.getSituationType()) {
case 1:
surveyDetail.setBuildingProgress(situation);
break;
case 2:
surveyDetail.setSoftwareOperation(situation);
break;
case 3:
surveyDetail.setSoftwareAcceptance(situation);
break;
case 4:
surveyDetail.setAccessPlatform(situation);
break;
default:
}