《仿盒马》app开发技术分享-- 回收金提现记录查询(54)

鸿蒙小林
• 阅读 4

技术栈

Appgallery connect

开发准备

上一节我们实现了回收金提现的功能,并且成功展示了当前账户的支出列表,但是我们的提现相关的记录并没有很好的给用户做出展示,用户只知道当前账户提现扣款,并不知道回收金的去向,这一节我们就要实现回收金记录的查询添加、查询、展示

功能分析

要实现这些功能我们需要新建一张表,根据当前用户绑定的信息去填充对应的信息,把提现的银行卡,提现状态,提现时间,提现金额都先添加到表里,在用户进入提现记录页面之后,通过userid去查询当前用户的记录然后在列表里进行展示

代码实现

首先我们创建对应的提现记录表

{
  "objectTypeName": "withdrawal_record",
  "fields": [
    {"fieldName": "id", "fieldType": "Integer", "notNull": true, "belongPrimaryKey": true},
    {"fieldName": "user_id", "fieldType": "Integer", "notNull": true, "defaultValue": 0},
    {"fieldName": "bank_name", "fieldType": "String"},
    {"fieldName": "bank_num", "fieldType": "String"},
    {"fieldName": "creat_time", "fieldType": "String"},
    {"fieldName": "type_str", "fieldType": "String"},
    {"fieldName": "money", "fieldType": "Double"}
  ],
  "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"]}
  ]
}

我们生成对应的实体和db类之后,在提现成功的提交记录里,把我们表需要的信息添加进去

 let record=new withdrawal_record()
          record.id=Math.floor(Math.random() * 1000000)
          record.user_id=this.user!.user_id
          record.bank_name=this.bankList[0].bank_name
          record.bank_num=this.bankList[0].bank_card
          record.creat_time=this.year+"-"+this.month+"-"+this.day+" "+this.time
          record.type_str='0'
          record.money=this.moneyNum
          let status =  await databaseZone.upsert(record);

添加完成之后我们新建一个提现记录展示页面

@Entry
@Component
struct WithdrawalRecordPage {
  @State user: User|null=null

  build() {
    Column() {
      CommonTopBar({ title: "提现记录", alpha: 0, titleAlignment: TextAlign.Center ,backButton:true})
    }
    .backgroundColor("#F1F3F5")
    .height('100%')
    .width('100%')
  }
}

首先进行数据的查询

 @State user: User|null=null
  @State withdrawalRecordList:WithdrawalRecord[]=[]
  async aboutToAppear(): Promise<void> {
    const value = await StorageUtils.getAll('user');
    if (value != "") {
      this.user = JSON.parse(value)
    }
    let databaseZone = cloudDatabase.zone('default');
    let condition = new cloudDatabase.DatabaseQuery(withdrawal_record);
    condition.equalTo("user_id", this.user?.user_id)
    let listData = await databaseZone.query(condition);
    let json = JSON.stringify(listData)
    let data: WithdrawalRecord[] = JSON.parse(json)
    if (data.length>0) {
      this.withdrawalRecordList=data
    }
  }

然后把我们查询到的数据展示到列表组件中

 List({space:10}){
        ForEach(this.withdrawalRecordList,(item:WithdrawalRecord,index:number)=>{
          ListItem(){
            Column({space:10}){
              Row(){
                Text(item.type_str=='0'?"提现成功":"提现中")
                  .fontColor(item.type_str=='0'?Color.Green:Color.Black)
                  .fontSize(16)
                  .fontWeight(FontWeight.Bold)

                Text("¥"+item.money+"")
                  .fontSize(16)
                  .fontWeight(FontWeight.Bold)
                  .fontColor(Color.Black)
              }
              .width('100%')
              .justifyContent(FlexAlign.SpaceBetween)
              Row(){
                Text(item.bank_name+" ("+item.bank_num+")")
                  .fontColor(Color.Black)
                  .fontSize(14)
                  .fontWeight(FontWeight.Bold)

                Text(item.creat_time+"")
                  .fontSize(14)
                  .fontWeight(FontWeight.Bold)
                  .fontColor(Color.Grey)
              }
              .width('100%')
              .justifyContent(FlexAlign.SpaceBetween)

            }
            .padding(10)
            .width('100%')
            .borderRadius(10)
            .backgroundColor(Color.White)
          }
        })
      }
      .padding(10)
点赞
收藏
评论区
推荐文章
鸿蒙小林 鸿蒙小林
9小时前
《仿盒马》app开发技术分享-- 地图选点(27)
技术栈Appgalleryconnect开发准备上一节我们实现了地图的简单展示,这一节我们要实现的内容是,根据展示的地图,实现当前定位功能,当前位置的poi地址功能,以及列表的展示,给地图添加标记,展示自己的当前定位功能分析要想实现这些功能,首先我们需要在
鸿蒙小林 鸿蒙小林
9小时前
《仿盒马》app开发技术分享-- 旧物回收页(静态)(40)
技术栈Appgalleryconnect开发准备上一节我们进行了购物车业务逻辑的优化,使我们的程序变得更加健壮,这一节我们将要开始电商业务以外的内容,旧物回收,这是一个全新的业务模块,我们将要在这里实现对应的,回收金,积分,回收业务相关内容功能分析要想实现
鸿蒙小林 鸿蒙小林
9小时前
《仿盒马》app开发技术分享-- 回收金收支查询(49)
技术栈Appgalleryconnect开发准备上一节我们实现了回收金页面的部分布局填充和内容展示,并且实现了当前订单收益总金额的展示,以及金额的隐藏,这一节我们来实现当前用户收支列表的展示,在这之前,我们先要修改一下我们recycleinfo表,我们把规
鸿蒙小林 鸿蒙小林
9小时前
《仿盒马》app开发技术分享-- 回收金提现准备页(50)
技术栈Appgalleryconnect开发准备上一节我们实现了回收金的收入、支出记录查询,并且在订单完成后成功创建对应的收支记录,但是我们暂时只有收入记录,并没有支出记录,这一节我们将要实现账号的回收金提现功能,从商业角度实现app应用的正向循环功能分析
鸿蒙小林 鸿蒙小林
9小时前
《仿盒马》app开发技术分享-- 设置安全锁(51)
技术栈Appgalleryconnect开发准备上一节我们实现了提现页面以及部分组件的业务逻辑,那么我们在提现这一步为了更多的安全层面的考虑,设置了一个安全锁,用户只要开启了安全锁,那么每次的提现,都需要把本地的密码提交到云端核对安全锁的内容才可以执行后续
鸿蒙小林 鸿蒙小林
9小时前
《仿盒马》app开发技术分享-- 绑定银行卡回显(52)
技术栈Appgalleryconnect开发准备上一节我们实现了安全锁的绑定,这一切都是为了帮助用户在提现流程上能有更好更安全的体验,现在我们开始正式着手提现相关的流程,我们先进行提现银行卡的绑定,绑定成功后我们关闭页面把数据回显到提现页功能分析首先我们要
鸿蒙小林 鸿蒙小林
9小时前
《仿盒马》app开发技术分享-- 回收金提现(53)
技术栈Appgalleryconnect开发准备上一节我们实现了银行卡的绑定跟回显,这一节我们要真正的实现银行卡提现的功能了,在这之前我们还需要对提现页的业务逻辑进行更进一步的优化,同时为了方便我们去进行数据间的交互,我们在个人信息模块新增了金额和积分的字
鸿蒙小林 鸿蒙小林
9小时前
《仿盒马》app开发技术分享-- 回收金提现安全锁校验(55)
技术栈Appgalleryconnect开发准备上一节我们实现了回收金提现记录的展示功能,我们回收金相关的内容更加的丰富了,在之前的业务逻辑中我们添加了一个设置安全锁的功能,虽然我们成功设置了安全锁,也把对应的表信息提交到云端,但是我们并没有在提现的流程中
鸿蒙小林 鸿蒙小林
9小时前
《仿盒马》app开发技术分享-- 我的积分页(63)
技术栈Appgalleryconnect开发准备上一节我们实现了个人中心页面的业务逻辑优化,成功的在用户登陆退出状态下展示对应的组件内容,这一节我们来实现app中另外一个比较重要的模块积分模块。功能分析因为我们的回收订单是跟回收金积分是绑定的,我们在完成回
鸿蒙小林 鸿蒙小林
9小时前
《仿盒马》app开发技术分享-- 兑换商品详情(69)
技术栈Appgalleryconnect开发准备上一节我们实现了兑换商品列表的展示,用户可以在回收之后通过积分页面进入兑换列表页查看当前能够兑换的商品了,我们距离一个完整的app又更近了一步,现在我们要实现的就是当用户点击列表条目的时候能够查看数据详情。功