首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >《仿盒马》app开发技术分享-- 逻辑优化第二弹(82)

《仿盒马》app开发技术分享-- 逻辑优化第二弹(82)

原创
作者头像
用户10696402
修改2025-07-24 07:39:21
修改2025-07-24 07:39:21
820
举报

## 技术栈

Appgallery connect

## 开发准备

这一节我们继续对我们已有的业务逻辑进行优化,在积分兑换完商品后我们回到积分展示页面发现积分的数量并没有减少,而是重新进入才会发生变化,上一节我们实现商城订单的确认揽收之后继续在待收货页面实现确认揽收按钮的业务逻辑。

## 功能分析

要实现积分的实时变化,我们需要在page页面的生命周期onpageshow中实现积分信息的获取,待收货页面我们要新增一个确认收货按钮并实现数据库逻辑的修改,数据修改完成后我们对数据列表进行刷新,记得修改orderstatus的状态,这会影响到我们对数据的筛选

## 代码实现

首先我们在积分页面实现每次页面展示都请求数据,我们在生命周期方法中onpageshow中查询当前用户的信息,然后根据用户的id去查询数据。我们创建变量来接收数据,在数据查询回调中赋值给定义的变量

```css

@State user: User|null=null;

@State userInfo:UserInfo|null=null;

async onPageShow(): Promise<void> {

const value = await StorageUtils.getAll('user');

if (value != "") {

this.user = JSON.parse(value)

if (this.user != null) {

let databaseZone = cloudDatabase.zone('default');

let condition = new cloudDatabase.DatabaseQuery(user_info);

condition.equalTo("user_id", this.user?.user_id)

let listData = await databaseZone.query(condition);

let json = JSON.stringify(listData)

let data: UserInfo[] = JSON.parse(json)

this.userInfo = data[0]

this.points = data[0].points

hilog.error(0x0000, 'testTag', `Failed to query data, code: ${data}`);

}

}

}

```

然后我们在商品订单待收货列表新增确认收货按钮,在确认收货时我们因为是修改已有订单的参数,所以这里的id我们用查询到订单的id,不要用新建的id,其他的参数我们都要用已经查询的数据,赋值给对应的参数,在数据修改完成之后,我们拿到返回的修改条目数据,根据对条目的回调数据的判断是否大于1,来实现后续的业务逻辑

```css

Text("确认收货")

.fontColor(Color.Black)

.fontSize(12)

.padding(5)

.borderRadius(10)

.backgroundColor(Color.Pink)

.onClick(async ()=>{

let orderPush=new order_list()

orderPush.id=item.id

orderPush.user_id=this.user!.user_id

orderPush.order_product_id=item.order_product_id

orderPush.order_code=item.order_code

orderPush.order_status=2

orderPush.order_remark=item.order_remark

orderPush.address=item.address

orderPush.nickname=item.nickname

orderPush.phone=item.phone

orderPush.order_create_time=item.order_create_time

orderPush.order_pay_time=item.order_pay_time

orderPush.order_delivery_time=item.order_delivery_time

let num = await databaseZone.upsert(orderPush);

if (num>0) {

this.onRefresh()

showToast("收货成功")

}

})

```

到这里我们就实现了对应的业务逻辑优化了

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档