《仿盒马》app开发技术分享-- 兑换订单提交(73)

鸿蒙小林
• 阅读 4

## 技术栈

Appgallery connect

开发准备

上一节我们实现了兑换提交前的准备页面,向用户展示了兑换相关的所有信息,这一节我们就可以实现兑换订单的提交了

功能分析

订单提交我们需要创建对应的兑换商品订单提交信息表,我们需要把地址,商品信息,积分,备注,订单状态,订单创建时间,订单取消时间,订完完成时间等信息都进行存储

代码实现

首先我们创建兑换订单表

{
  "objectTypeName": "points_order_info",
  "fields": [
    {"fieldName": "id", "fieldType": "Integer", "notNull": true, "belongPrimaryKey": true},
    {"fieldName": "user_id", "fieldType": "String"},
    {"fieldName": "order_code", "fieldType": "String"},
    {"fieldName": "name", "fieldType": "String"},
    {"fieldName": "points", "fieldType": "Double"},
    {"fieldName": "msg", "fieldType": "String"},
    {"fieldName": "amount", "fieldType": "Integer"},
    {"fieldName": "nike_name", "fieldType": "String"},
    {"fieldName": "address", "fieldType": "String"},
    {"fieldName": "phone", "fieldType": "String"},
    {"fieldName": "crete_time", "fieldType": "String"},
    {"fieldName": "cancel_time", "fieldType": "String"},
    {"fieldName": "over_time", "fieldType": "String"},
    {"fieldName": "success_time", "fieldType": "String"},
    {"fieldName": "order_type", "fieldType": "Integer"}


  ],
  "indexes": [
    {"indexName": "field1Index", "indexList": [{"fieldName":"id","sortType":"ASC"}]}
  ],
  "permissions": [
    {"role": "World", "rights": ["Read", "Upsert", "Delete"]},
    {"role": "Authenticated", "rights": ["Read", "Upsert", "Delete"]},
    {"role": "Creator", "rights": ["Read", "Upsert", "Delete"]},
    {"role": "Administrator", "rights": ["Read", "Upsert", "Delete"]}
  ]
}

实体


class PointsOrderInfo {
    id: number;
    user_id: string;
    order_code: string;
    name: string;
    points: number;
    msg: string;
    amount: number;
    nike_name: string;
    address: string;
    phone: string;
    crete_time: string;
    cancel_time: string;
    over_time: string;
    success_time: string;
    order_type: number;

    constructor() {
    }

    setId(id: number): void {
        this.id = id;
    }

    getId(): number  {
        return this.id;
    }

    setUser_id(user_id: string): void {
        this.user_id = user_id;
    }

    getUser_id(): string  {
        return this.user_id;
    }

    setOrder_code(order_code: string): void {
        this.order_code = order_code;
    }

    getOrder_code(): string  {
        return this.order_code;
    }

    setName(name: string): void {
        this.name = name;
    }

    getName(): string  {
        return this.name;
    }

    setPoints(points: number): void {
        this.points = points;
    }

    getPoints(): number  {
        return this.points;
    }

    setMsg(msg: string): void {
        this.msg = msg;
    }

    getMsg(): string  {
        return this.msg;
    }

    setAmount(amount: number): void {
        this.amount = amount;
    }

    getAmount(): number  {
        return this.amount;
    }

    setNike_name(nike_name: string): void {
        this.nike_name = nike_name;
    }

    getNike_name(): string  {
        return this.nike_name;
    }

    setAddress(address: string): void {
        this.address = address;
    }

    getAddress(): string  {
        return this.address;
    }

    setPhone(phone: string): void {
        this.phone = phone;
    }

    getPhone(): string  {
        return this.phone;
    }

    setCrete_time(crete_time: string): void {
        this.crete_time = crete_time;
    }

    getCrete_time(): string  {
        return this.crete_time;
    }

    setCancel_time(cancel_time: string): void {
        this.cancel_time = cancel_time;
    }

    getCancel_time(): string  {
        return this.cancel_time;
    }

    setOver_time(over_time: string): void {
        this.over_time = over_time;
    }

    getOver_time(): string  {
        return this.over_time;
    }

    setSuccess_time(success_time: string): void {
        this.success_time = success_time;
    }

    getSuccess_time(): string  {
        return this.success_time;
    }

    setOrder_type(order_type: number): void {
        this.order_type = order_type;
    }

    getOrder_type(): number  {
        return this.order_type;
    }

}

export { PointsOrderInfo };

db类

import { cloudDatabase } from '@kit.CloudFoundationKit';

class points_order_info extends cloudDatabase.DatabaseObject {
  public id: number;
  public user_id: string;
  public order_code: string;
  public name: string;
  public points: number;
  public msg: string;
  public amount: number;
  public nike_name: string;
  public address: string;
  public phone: string;
  public crete_time: string;
  public cancel_time: string;
  public over_time: string;
  public success_time: string;
  public order_type: number;

  public naturalbase_ClassName(): string {
    return 'points_order_info';
  }
}

export { points_order_info };

然后我们开始提交数据

   Text("确认兑换")
            .fontColor(Color.White)
            .padding(10)
            .borderRadius(10)
            .backgroundColor("#d81e06")
            .fontSize(14)
            .onClick(async ()=>{
              if (this.addressInfo!=null) {
                let order=new points_order_info()
                order.id=Math.floor(Math.random() * 1000000)
                order.user_id=String(this.user!.user_id)
                order.order_code=Math.floor(Math.random() * 1000000)+"1013"
                order.url=this.pointsProduct!.url
                order.name=this.pointsProduct!.name
                order.points=this.pointsProduct!.points
                if (this.remark!='') {
                  order.msg=this.remark
                }else {
                  order.msg="无"
                }
                order.amount=1
                order.nike_name=this.addressInfo.nikeName
                order.address=this.addressInfo.address
                order.phone=this.addressInfo.phone
                order.crete_time=this.thisTime()
                let num = await databaseZone.upsert(order);
                if (num>0) {
                  showToast("兑换成功")
                }
              }else {
                showToast("请选择地址")
              }
            })

到这里我们的兑换订单提交就完成了

点赞
收藏
评论区
推荐文章
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 订单地址修改(31)
技术栈Appgalleryconnect开发准备上一节我们实现了订单备注弹窗,订单商品列表的提交,订单列表的提交,提交之后的业务逻辑我们并没有去处理,那么订单提交之后我们需要进入到什么页面呢?这时候我们需要一个过渡页面,它能给我们提供更多的订单相关的入口,
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 旧物回收订单列表(43)
技术栈Appgalleryconnect开发准备上一节我们实现了订单的创建,并且成功吧数据提交到云数据库中,这一节我们实现的内容是展示我们提交的订单列表功能分析要实现订单列表的展示,首先我们要查询对应用户下的订单列表,查询出对应的订单列表后,展示出对应的数
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 商品兑换校验(70)
技术栈Appgalleryconnect开发准备上一节我们实现了可兑换商品的详情,我们能够查看到商品更多的信息,这一节我们来实现商品兑换相关的功能,在进行商品兑换之前,我们在兑换详情页面,点击立即兑换按钮之后我们需要跳转到兑换详情页,但是用户的积分可能达不
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 兑换提交准备(72)
技术栈Appgalleryconnect开发准备上一节我们实现了地址的选择,商品数据的展示,我们页面中需要的提交的内容还有所欠缺,我们还需要新增一些展示兑换细节的组件,同时在提交之前还需要实现备注功能,我们还要在页面中展示一些积分相关的内容,告知用户积分的
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 订单提交逻辑完善(74)
技术栈Appgalleryconnect开发准备上一节我们实现了兑换订单的提交功能,并且成功的把数据提交到云端,但是我们的业务逻辑并没有完全实现,我们只是把数据提交到了云端,但我们的积分还存在,我们回到积分数据查看的页面也没有消费积分的记录,这一节我们要实
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 兑换订单列表框架(75)
技术栈Appgalleryconnect开发准备上一节我们针对订单兑换的业务逻辑进行了完善,成功的在兑换物品之后修改了用户信息的修改,新增了积分消费的记录。这一节我们实现订单创建之后进入的列表展示页框架。功能分析兑换商品的订单列表框架我们选择使用tabs,
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 待发货兑换订单列表(76)
技术栈Appgalleryconnect开发准备上一节我们实现了兑换订单展示页面的框架,这一节我们要进行兑换订单的展示,在兑换订单提交后,默认的状态是待发货状态,我们用列表的方式展示出来功能分析进入页面时我们就要通过用户的userid去查询对应的订单,获取
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 兑换商品取消订单&取消列表展示(77)
技术栈Appgalleryconnect开发准备上一节我们实现了兑换订单待发货列表的展示逻辑,成功的在列表中展示出来,我们在订单条目中新增了两个按钮,确认揽收与取消订单,这一节我们要实现的功能是订单的取消,以及订单取消后取消列表的展示功能分析要实现订单取消
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 兑换商品收货确认&已完成列表展示(79)
技术栈Appgalleryconnect开发准备上一节我们实现了兑换商品订单的确认揽收功能,实现了tabs切换时的数据刷新,实现了待收货订单的列表展示。这一节我们要实现确认收货功能,并且实现待收货的列表展示功能功能分析当我们点击确认揽收的时候,修改订单状态
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 逻辑优化第一弹(81)
技术栈Appgalleryconnect开发准备随着上一节我们兑换商品订单相关逻辑的实现,我们的app功能已经更加的完善了,接下来我们开始对整个app缺失的小功能以及对已有的功能bug进行优化和逻辑的新增,这一节我们新增的功能是,商城订单的揽收功能,兑换订