膳逸:根据id查询用户功能开发文档

功能说明

实现根据id查询用户打卡记录的接口,根据给定的查询条件返回用户记录信息。

开发思路

  1. 定义查询表单:使用Java类表示前端传递的查询参数,并对其进行校验。
  2. 接收和处理请求:在控制器中接收前端的请求数据,进行参数校验后将数据传递给服务层。
  3. 服务层处理:服务层负责调用数据访问层,执行查询逻辑并返回结果。
  4. 数据访问层查询:编写SQL查询语句,根据传递的查询条件进行数据查询。
  5. 分页处理:实现分页逻辑,返回符合条件的数据及分页信息。

开发过程

1. 定义查询表单

@Data
public class SearchUserByIdForm {
    @NotNull(message = "id不能为空")
    @Min(value = 1, message = "id不能小于1")
    private Integer id;
}

2. 接收和处理请求

    @PostMapping("/searchById")
    @SaCheckLogin
    @SaCheckPermission(value = {"ROOT", "USER:SELECT"}, mode = SaMode.OR)
    public R searchById(@RequestBody @Valid SearchUserByIdForm form) {
        HashMap map = userService.searchById(form.getId());
        return R.ok(map);
    }

3. 数据访问层查询

<!-- 根据id查找用户 -->
    <select id="searchById" parameterType="int" resultType="HashMap">
        SELECT u.nick_name   AS nickName,
               u.id,
               u.avatar,
               u.sex,
               ui.uuid,
               ui.name,
               ui.phone,
               ui.email,
               ui.birthday,
               ui.address,
               ui.height,
               ui.weight,
               ui.bmi,
               ui.likes,
               ui.dislikes,
               ui.goal,
               ui.diseases,
               u.status,
               u.create_time AS createTime
        FROM user u
                 left JOIN user_info ui ON u.id = ui.user_id
        WHERE u.id = ${id}
    </select>

4. 分页处理

分页逻辑通过计算 start 参数并在SQL查询中使用 LIMITOFFSET 来实现,返回符合条件的数据及分页信息。

总结

通过以上步骤,实现了分页查询用户打卡记录的功能。前端通过POST请求将查询条件发送到后端,后端接收并校验参数后,将查询条件传递给服务层。服务层根据查询条件调用数据访问层执行数据库查询,并返回查询结果及分页信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值