若依框架中返回自定义实体类分页数据和总记录数的实现方法

在使用若依(RuoYi)框架时,通常需要返回一个包含数据和总记录数的分页结果。若依框架中,分页结果通常封装在 AjaxResultTableDataInfo 类中。以下是一个示例,展示如何在自定义实体类的情况下返回分页数据和总记录数。

1. 定义实体类

首先,定义你的实体类 SwitchRecognitionLogResponse

public class SwitchRecognitionLogResponse {
    private Long id;
    private String name;
    private String status;
    private Date createTime;

    // Getters and Setters
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}

2. 创建分页方法

在你的服务层或控制器中,创建一个方法来处理分页逻辑并返回结果。假设你已经有一个方法 getDataTable 来获取分页数据。

import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@RestController
@RequestMapping("/api/recognition")
public class RecognitionController extends BaseController {

    @GetMapping("/log")
    public R<TableDataInfo> getRecognitionLogs() {
        // 模拟数据
        List<SwitchRecognitionLogResponse> recognitionLogResponses = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            SwitchRecognitionLogResponse log = new SwitchRecognitionLogResponse();
            log.setId((long) i);
            log.setName("Recognition Log " + i);
            log.setStatus("Active");
            log.setCreateTime(new Date());
            recognitionLogResponses.add(log);
        }

        // 模拟总记录数
        int total = 100;

        // 创建 TableDataInfo 对象
        TableDataInfo tableDataInfo = new TableDataInfo();
        tableDataInfo.setCode(200);
        tableDataInfo.setMsg("success");
        tableDataInfo.setRows(recognitionLogResponses);
        tableDataInfo.setTotal(total);

        return R.ok(tableDataInfo);
    }
}

3. 返回分页数据

在上述代码中,我们创建了一个 TableDataInfo 对象,其中包含以下内容:

  • code:状态码,通常为200表示成功。
  • msg:返回信息,通常为 “success”。
  • rows:分页数据,即 recognitionLogResponses
  • total:总记录数。

最后,我们使用 R.ok 方法将 TableDataInfo 封装为 AjaxResult 对象并返回。

4. 测试接口

启动你的应用后,可以通过访问 /api/recognition/log 接口来测试返回的分页数据。返回的 JSON 数据应该类似于以下格式:

{
  "code": 200,
  "msg": "success",
  "data": {
    "code": 200,
    "msg": "success",
    "rows": [
      {
        "id": 0,
        "name": "Recognition Log 0",
        "status": "Active",
        "createTime": "2025-05-26T14:30:00"
      },
      {
        "id": 1,
        "name": "Recognition Log 1",
        "status": "Active",
        "createTime": "2025-05-26T14:30:00"
      },
      ...
    ],
    "total": 100
  }
}

总结

通过上述步骤,你可以轻松地在若依框架中返回分页数据和总记录数。希望这个示例对你有帮助!如果有任何问题或需要进一步的解释,请随时告诉我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从零开始学习人工智能

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值