前台数据结构变化的修改及反思总结

本文总结了在处理前台数据结构变化的过程,特别是在分页查询无数据时如何提供默认返回值的经验。错误的做法是将默认数据混入分页对象,正确的解决方案是将分页对象与默认数据封装为新的对象进行返回。作者反思了这一过程,强调了数据结构清晰的重要性。

前台数据结构变化的修改及反思总结

背景

昨天老大和我及前台开发讨论了一处要修改的地方,并且反复强调当查询分页结果没有数据时,也要有默认的返回值。当时并没有列出如下的数据结构,这是最后的结果。但是讨论时说的是searchTypeList和orderCustomerName这两个字段一定要返回出来

有分页数据:

{
    "code": "200",
    "data": {
        "searchTypeList": [
            "客户联系人姓名",
            "客户联系人电话",
            "订单号"
        ],
        "orderCustomerName": "订单管理-讲课费",
        "page": {
            "records": [
                {
                    "orderNumber": "202112097817",
                    "money": "14200.00",
                    "customerUserName": "金坷垃",
                    "payTime": "2019-12-31 17:15:09",
                    "status": "1",
                    "goodsDes": "内部自编大学物理教材1300套在",
                    "createTime": "2021-12-09 17:14:40",
                    "remark": "内部自编大学物理教材1300套"
                }
            ],
            "total": "1",
            "size": "5",
            "current": "1",
            "pages": "1"
        }
    },
    "msg": "执行成功"
}

没有查询到分页数据:

{
    "code": "200",
    "data": {
        "searchTypeList": [
            "客户联系人姓名",
            "客户联系人电话",
            "订单号"
        ],
        "orderCustomerName": "订单管理-讲课费"
    },
    "msg": "执行成功"
}

原来的数据结构:

{
    "code": "200",
    "data": {
        "records": [
            {
                "id": "9m8wj2kB",
                "indexId": "1",
                "orderNumber": "202112097817",
                "money": "14200.00",
                "customerId": "9VXEyXvg",
                "customerName": "酷家乐",
                "customerUserId": "5PzmK8Jv",
                "customerUserName": "吕晶晶",
                "customerUserPhone": "13536256598",
                "orderOwnerId": "jP81wzqA",
                "orderOwnerName": "冰龙",
                "payTime": "2019-12-31 17:15:09",
                "type": "1",
                "status": "1",
                "goodsDes": "内部自编大学物理教材1300套在",
                "tenantId": "rnzdb8jY",
                "createTime": "2021-12-09 17:14:40",
                "createUser": "rnzdb8jY",
                "updateTime": "2021-12-14 17:37:44",
                "updateUser": "rnzdb8jY",
                "delFlag": "0",
                "remark": "内部自编大学物理教材1300套"
            }
        ],
        "total": "1",
        "size": "5",
        "current": "1",
        "pages": "1"
    },
    "msg": "执行成功"
}

修改过程

正确的修改思路:应该是把原来的分页对象和默认需要返回的数据封装成一个新对象,作为返回值。

错误的修改思路:把默认需要返回的数据封装到分页对象里,一并和分页对象返回出来。

刚开始,我一直是按错误的修改思路在做。虽然处理了没有结果也有默认返回值的情况,但是数据结构很难看----返回了一堆的null值属性。如下:

请添加图片描述

虽然后面几次修改是把分页对象包装到默认返回值的对象中,但是还不是我们讨论的结果。如下:

请添加图片描述

最后才把整个分页对象和默认返回值包装成一个对象作为返回值。得到正确的结果

@Data
public class CustomerPageVO {

    /**
     * 搜索条件列表
     */
    private List<String> searchTypeList;

    /**
     * 订单管理-客户名
     */
    private String orderCustomerName;

    /**
     * 订单列表(分页对象)
     */
    HnlrkjPage<OrderPageVO> page;
}

反思

对于要返回给前台的数据结构,先把结构写出来,再和原来的数据结构对比。如果不能在原始对象上修改,需要构造新对象的,要把构造的新对象的属性弄清楚再去构造。这样就不用走弯路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值