《仿盒马》app开发技术分享-- 订单提交逻辑完善(74)

举报
yd_215151764 发表于 2025/06/30 10:50:17 2025/06/30
【摘要】 ## 技术栈Appgallery connect## 开发准备上一节我们实现了兑换订单的提交功能,并且成功的把数据提交到云端,但是我们的业务逻辑并没有完全实现,我们只是把数据提交到了云端,但我们的积分还存在,我们回到积分数据查看的页面也没有消费积分的记录,这一节我们要实现的就是完善订单提交的业务逻辑## 功能分析首先我们要在兑换完成后把用户信息的积分给扣除掉,点击按钮后进行云端交互修改用户信...


## 技术栈

Appgallery connect

## 开发准备
上一节我们实现了兑换订单的提交功能,并且成功的把数据提交到云端,但是我们的业务逻辑并没有完全实现,我们只是把数据提交到了云端,但我们的积分还存在,我们回到积分数据查看的页面也没有消费积分的记录,这一节我们要实现的就是完善订单提交的业务逻辑


## 功能分析
首先我们要在兑换完成后把用户信息的积分给扣除掉,点击按钮后进行云端交互修改用户信息表,然后我们在兑换成功时新增一条积分消费记录。


## 代码实现

我们先在订单提交的时候修改用户信息表的内容

```css
 if (num>0) {
                  showToast("兑换成功")

                  let userData=new user_info()
                  userData.id=this.userInfo!.id
                  userData.user_id=this.userInfo!.user_id
                  userData.sex=this.userInfo!.sex
                  userData.bind_phone=this.userInfo!.bind_phone
                  userData.create_time=this.userInfo!.create_time
                  userData.nickname=this.userInfo!.nickname
                  userData.head_img=this.userInfo!.head_img
                  userData.money=this.userInfo!.money
                  userData.points=this.userInfo!.points-this.pointsProduct!.points
                  let s= await databaseZone.upsert(userData);
                }
```
修改完用户信息之后,我们同时还需要新增一条积分收支记录,在收支记录添加前,还需要实现一个时间获取的方法

```css

@State year:string=''
  @State month:string=''
  @State day:string=''
  @State time:string=''
  formatCurrent() {
    const now = new Date();

    const years = now.getFullYear();
    const months = String(now.getMonth() + 1).padStart(2, '0');
    const days = String(now.getDate()).padStart(2, '0');
    const m_hours = String(now.getHours()).padStart(2, '0');
    const m_minutes = String(now.getMinutes()).padStart(2, '0');
    const m_seconds = String(now.getSeconds()).padStart(2, '0');
    this.year=String(years)
    this.month=months
    this.day=days
    this.time=m_hours+":"+m_minutes+":"+m_seconds
  }
```
记录生成

```css
 let points=new points_info()
                  points.id=Math.floor(Math.random() * 1000000)
                  points.user_id=this.user!.user_id
                  points.points=String(this.pointsProduct?.points)
                  points.points_type='0'
                  points.address='客户端下单奖励'
                  points.year=this.year
                  points.month=this.month
                  points.day=this.day
                  points.time=this.time
                  points.create_time=this.year+"-"+this.month+"-"+this.day+" "+this.time
                  let points_nums =  await databaseZone.upsert(points);
```
到这里我们的订单提交逻辑就彻底完善了

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。