全部开发者教程

企业级在线办公系统

上个小节我们实现了新增罚款类型这个功能,那么按照CRUD的顺序,本小节我们要做修改罚款类型信息的功能。

图片描述

一、编写持久层代码

在修改数据的时候,弹窗页面要加载已有的数据,所以我们要编写查询语句,根据ID查询罚款类型记录,然后就是用于修改记录的UPDATE语句。

TbAmectTypeDao.xml文件中,定义SQL语句。

<select id="searchById" parameterType="int" resultType="HashMap">
    SELECT `type`,
           money,
           systemic
    FROM tb_amect_type
    WHERE id = #{id}
</select>

<update id="update" parameterType="HashMap">
    UPDATE tb_amect_type
    SET type = #{type},
        money = #{money}
    WHERE id = #{id}
</update>

TbAmectTypeDao.java接口中,定义DAO方法。

public interface TbAmectTypeDao {
    ……
    public HashMap searchById(int id);
    public int update(HashMap param);
}

二、编写业务层代码

AmectTypeService.java接口中,声明抽象方法。

public interface AmectTypeService {
    ……
    public HashMap searchById(int id);
    public int update(HashMap param);
}

AmectTypeServiceImpl.java类中,实现抽象方法。

public class AmectTypeServiceImpl implements AmectTypeService {
    ……
    @Override
    public HashMap searchById(int id) {
        HashMap map = amectTypeDao.searchById(id);
        return map;
    }
    @Override
    public int update(HashMap param) {
        int rows = amectTypeDao.update(param);
        return rows;
    }
}

三、编写Web层代码

创建SearchAmectTypeByIdForm.java类,封装Ajax提交的数据。

@Data
@Schema(description = "根据ID查找罚款类型表单")
public class SearchAmectTypeByIdForm {
    @NotNull(message = "id不能为空")
    @Min(value = 1, message = "id不能小于1")
    @Schema(description = "罚款类型ID")
    private Integer id;
}

创建UpdateAmectTypeByIdForm.java类,封装Ajax提交的数据。

@Data
@Schema(description = "更新罚款类型数据表单")
public class UpdateAmectTypeByIdForm {
    @NotNull(message = "id不能为空")
    @Min(value = 1, message = "id不能小于1")
    @Schema(description = "罚款类型ID")
    private Integer id;

    @NotBlank(message = "type不能为空")
    @Pattern(regexp = "^[a-zA-Z0-9\\u4e00-\\u9fa5]{2,10}$", message = "type内容不正确")
    @Schema(description = "违纪类型")
    private String type;

    @NotBlank(message = "money不能为空")
    @Pattern(regexp = "(^[1-9]([0-9]+)?(\\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\\.[0-9]([0-9])?$)", message = "money内容不正确")
    @Schema(description = "罚款金额")
    private String money;
}

AmectTypeController.java类中,声明Web方法,利用Swagger测试Web方法?

public class AmectTypeController {
    ……
    @PostMapping("/searchById")
    @Operation(summary = "根据ID查找罚款类型")
    @SaCheckPermission(value = {"ROOT"})
    public R searchById(@Valid @RequestBody SearchAmectTypeByIdForm form) {
        HashMap map = amectTypeService.searchById(form.getId());
        return R.ok(map);
    }
    
    @PostMapping("/update")
    @Operation(summary = "更新罚款类型")
    @SaCheckPermission(value = {"ROOT"})
    public R update(@Valid @RequestBody UpdateAmectTypeByIdForm form) {
        HashMap param=JSONUtil.parse(form).toBean(HashMap.class);
        int rows = amectTypeService.update(param);
        return R.ok().put("rows", rows);
    }
}