《仿盒马》app开发技术分享--未完成订单列表展示逻辑优化(61)

简介: 上一节我们实现订单与优惠券的联合提交时,我去到订单列表页面查看生成的订单信息,发现现在的订单从信息展示到价格计算全都是有问题的。所以紧急的把对应的问题修改一下。

技术栈

Appgallery connect

前言:

上一节我们实现订单与优惠券的联合提交时,我去到订单列表页面查看生成的订单信息,发现现在的订单从信息展示到价格计算全都是有问题的。所以紧急的把对应的问题修改一下。

问题来源:

async aboutToAppear(): Promise<void> {
   
    const value = await StorageUtils.getAll('user');
    if (value != "") {
   
      this.user = JSON.parse(value)
    }
    if (this.currentIndexCheck==this.currentIndex) {
   
      let databaseZone = cloudDatabase.zone('default');
      let condition = new cloudDatabase.DatabaseQuery(order_list);
      condition.equalTo("user_id",this.user?.user_id).and().equalTo("order_status",0)
      let listData = await databaseZone.query(condition);
      let json = JSON.stringify(listData)
      let data1:OrderList[]= JSON.parse(json)
      this.orderInfo=data1



      let condition1 = new cloudDatabase.DatabaseQuery(order_product_list);
      condition1.equalTo("order_product_id",data1[0].order_product_id)
      let listData1 = await databaseZone.query(condition1);
      let json1 = JSON.stringify(listData1)
      this.productList=JSON.parse(json1)

      this.flag=true
    }
  }

我们可以看到,当我们进入到待发货页面的时候,我们进行了orderlist所有订单的请求,这里的请求是没有错的,我们继续向下,这时候我们通过条件进行数据查询

condition1.equalTo("order_product_id",data1[0].order_product_id)

这里我们直接拿了当前第一条数据放到list中去执行逻辑,这就会导致,我们列表的所有内容展示的都是第一条的相关商品和价格,展示的图片和价格都是一样的。

发现问题之后决定采用map来存储不同order_product_id对应的数据,这样我们在循环的时候用order_product_id来作为key ,取出对应的数据就好了。现在我们来进行修改。

//先定义一个全局的map接收内容
  @State mapList:Map<string,OrderProductList[]>|null=null


//在这里把原先只请求第一条的逻辑替换掉存到map中

```css
const myMap = new Map<string,OrderProductList[]>();
      for (let i = 0; i <data1.length; i++) {
   
        let condition1 = new cloudDatabase.DatabaseQuery(order_product_list);
        condition1.equalTo("order_product_id",data1[i].order_product_id)
        let listData1 = await databaseZone.query(condition1);
        let json1 = JSON.stringify(listData1)
        myMap.set(data1[i].order_product_id,JSON.parse(json1))

      }
      this.mapList=myMap

现在我们就拿到了所有的order_product_list对应的商品数据了,现在我们还缺少对应的价格计算

//因为我们列表是通过循环展示的,这样每次我们都只会取一条数据出来,所以我们只需要取出key 对应的数组中的第一条数据即可


 price(item:OrderList):number{
   
   const  money= this.mapList!.get(String(item.order_product_id))
    return  money![0].buyAmount*money![0].price
  }

在商品流数据展示的list我们也要吧数据源修改一下

  List({
   space:10}){
   
                  ForEach(this.mapList?.get(item.order_product_id),(pos:OrderProductList)=>{
   
                    ListItem(){
   
                      Column(){
   
                        Image(pos.img)
                          .height(60)
                          .width(60)
                          .borderRadius(5)
                      }
                    }
                  })
                }
                .padding({
   left:10})
                .width('100%')
                .listDirection(Axis.Horizontal)
                .height(80)

这样我们的列表页面就完成了逻辑优化,变得通顺了

相关文章
|
JSON Dart 安全
Flutter App混淆加固、保护与优化原理
Flutter App混淆加固、保护与优化原理
289 0
|
4月前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
821 139
|
架构师 Java
jvm性能调优实战 - 35电商APP后台系统如何对Full GC进行深度优化
jvm性能调优实战 - 35电商APP后台系统如何对Full GC进行深度优化
322 0
|
4月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
430 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
5月前
|
存储 前端开发 安全
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
262 5
|
8月前
|
数据库
《仿盒马》app开发技术分享-- 优惠券逻辑优化(58)
我们已经实现了优惠券的领取和展示,现在已经趋近于一个完整的电商应用了,但是这时候问题又来了,我们领取完优惠券之后,我们的新用户优惠券模块依然存在,他并没有消失,既然我们是从云数据库中查询的数据,那么我们需要找到一个字段跟他对应起来,来实现新用户领券后关闭这个模块的展示,同时我们在未登录的时候他也要保持隐藏,登录后能实现优惠券的领取。然后在结算的时候得出有几张符合的券能用
130 9
|
8月前
《仿盒马》app开发技术分享-- 逻辑优化第三弹(83)
现在我们的app功能已经趋近完善,bug和缺失的细节也越来越少了,我们继续对app进行优化,首先是我们的积分页面,我们只实现了全部的积分展示内容,对收入和支出的积分明细并没有进行展示,这里我们要实现一下,然后就是我们的优惠券,我们已过期的优惠券并没有修改状态为已过期。
133 0
|
8月前
《仿盒马》app开发技术分享-- 个人中心页优化(62)
上一节我们实现了订单逻辑的优化,现在我们的app功能更加的完善了,并且随着我们的迭代逻辑疏漏越来越少,现在我们继续进行优化,在之前的业务逻辑中我们的个人中心页面展示了用户的余额以及积分商城入口,这里我们要展示余额准确的值,积分商城的入口我们修改为积分相关的功能入口。并且展示当前账号的积分余额
145 0
|
8月前
|
存储 安全
《仿盒马》app开发技术分享-- 购物车逻辑优化(39)
我们的app主要购物功能已经开发的相对来说比较完善了,接下来就针对各个功能的逻辑性进行迭代和修改,让我们的程序更加的健壮,减少一些逻辑上的bug
112 0
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
1004 4