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

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

技术栈

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)
相关文章
|
3月前
《仿盒马》app开发技术分享-- 商品兑换校验(70)
上一节我们实现了可兑换商品的详情,我们能够查看到商品更多的信息,这一节我们来实现商品兑换相关的功能,在进行商品兑换之前,我们在兑换详情页面,点击立即兑换按钮之后我们需要跳转到兑换详情页,但是用户的积分可能达不到我们当前商品的兑换标准,这时候如果我们进入了下个页面,在用户点击确认的时候去校验,就让用户多操作了一步,这样的操作体验非常的不友好,所以我们在兑换前进行校验,通过校验后我们在确认页实现地址添加相关的内容
87 4
|
3月前
|
数据库
《仿盒马》app开发技术分享-- 兑换商品取消订单&取消列表展示(77)
上一节我们实现了兑换订单待发货列表的展示逻辑,成功的在列表中展示出来,我们在订单条目中新增了两个按钮,确认揽收与取消订单,这一节我们要实现的功能是订单的取消,以及订单取消后取消列表的展示
83 1
|
3月前
|
存储
《仿盒马》app开发技术分享-- 兑换订单提交(73)
上一节我们实现了兑换提交前的准备页面,向用户展示了兑换相关的所有信息,这一节我们就可以实现兑换订单的提交了
83 1
|
3月前
《仿盒马》app开发技术分享-- 注销账号恢复(85)
上一节我们实现了欢迎页的逻辑,并且在欢迎页面实现了对账号状态的提示,但是如果我们的用户之前因为一些原因注销了账号,但现在又想用回我们的应用怎么办?我们这一节就要在注销账号的提示弹窗处,实现一个账号恢复功能,使我们的用户可以继续使用我们的应用
89 0
|
3月前
《仿盒马》app开发技术分享-- 逻辑优化第三弹(83)
现在我们的app功能已经趋近完善,bug和缺失的细节也越来越少了,我们继续对app进行优化,首先是我们的积分页面,我们只实现了全部的积分展示内容,对收入和支出的积分明细并没有进行展示,这里我们要实现一下,然后就是我们的优惠券,我们已过期的优惠券并没有修改状态为已过期。
80 0
|
数据库
《仿盒马》app开发技术分享-- 逻辑优化第二弹(82)
这一节我们继续对我们已有的业务逻辑进行优化,在积分兑换完商品后我们回到积分展示页面发现积分的数量并没有减少,而是重新进入才会发生变化,上一节我们实现商城订单的确认揽收之后继续在待收货页面实现确认揽收按钮的业务逻辑。
79 0
|
3月前
《仿盒马》app开发技术分享-- 逻辑优化第一弹(81)
随着上一节我们兑换商品订单相关逻辑的实现,我们的app功能已经更加的完善了,接下来我们开始对整个app缺失的小功能以及对已有的功能bug进行优化和逻辑的新增,这一节我们新增的功能是,商城订单的揽收 功能,兑换订单的取消后积分退回功能,如果不实现积分退回,就会出现用户兑换后取消订单,但是积分已经消耗的情况
76 0
|
3月前
《仿盒马》app开发技术分享-- 兑换商品收货确认&已完成列表展示(79)
上一节我们实现了兑换商品订单的确认揽收功能,实现了tabs切换时的数据刷新,实现了待收货订单的列表展示。这一节我们要实现确认收货功能,并且实现待收货的列表展示功能
79 0
|
3月前
《仿盒马》app开发技术分享-- 兑换商品确认揽收&待收货列表展示(78)
上一节我们实现了订单取消功能,实现了tabs切换时的数据刷新,实现了已取消订单的列表展示。这一节我们要实现揽收功能,并且实现待收货的列表展示功能
76 0
|
存储
《仿盒马》app开发技术分享-- 待发货兑换订单列表(76)
上一节我们实现了兑换订单展示页面的框架,这一节我们要进行兑换订单的展示,在兑换订单提交后,默认的状态是待发货状态,我们用列表的方式展示出来
74 0