HarmonyOS Next 应用本地数据管理实践(二)

119 阅读2分钟
3. 购物车数据管理

提供购物车数据的查询、插入、删除和更新方法。

queryShopCart() {
  return this.shopCartData;
}

insertShopCart(props: ShopProps): number {
  const result = commodityData.filter((item) => item.id === props.commodityId)[0];
  const newShop: Product = {
    id: getID(),
    name: result.title,
    img: result.images,
    price: result.price,
    count: props.count,
    specifications: props.specifications,
    selected: true,
    description: result.description,
    commodityId: result.id
  };
  this.shopCartData.splice(0, 0, newShop);
  return this.shopCartData.length;
}

deleteShopCart(ids: string[]) {
  ids.forEach((id: string) => {
    const result = this.shopCartData.filter((item: Product) => item.id === id);
    if (result.length > 0) {
      this.shopCartData.splice(this.shopCartData.indexOf(result[0]), 1);
    }
  });
  return this.shopCartData;
}

updateShopCart(props: UpdateShopProps) {
  const result: Product = this.shopCartData.filter((item: Product) => item.id === props.id)[0];
  const newShop: Product = {
    id: props.id,
    name: result.name,
    img: result.img,
    commodityId: result.commodityId,
    description: result.description,
    price: result.price,
    count: props.count !== undefined ? props.count : result.count,
    selected: props.selected !== undefined ? props.selected : result.selected,
    specifications: props.specifications !== undefined ? props.specifications : result.specifications,
    updateTime: result.updateTime,
    createTime: result.createTime,
    uid: result.uid
  }
  this.shopCartData.splice(this.shopCartData.indexOf(result), 1, newShop);
}
  • queryShopCart:返回购物车中的所有商品数据。
  • insertShopCart:根据商品 ID 从商品列表中获取商品信息,创建新的购物车商品并插入到购物车数据中。
  • deleteShopCart:根据商品 ID 从购物车数据中删除对应的商品。
  • updateShopCart:根据商品 ID 从购物车数据中获取商品信息,更新商品的数量、选中状态和规格等信息。
4. 订单数据管理

提供订单数据的查询、插入和更新方法。

queryOrderList() {
  return this.orderData;
}

insertOrder(props: InsertOrderProps): string | undefined {
  if (props.order !== undefined) {
    const orderId = props.order.orderId;
    const newOrder: Order = props.order;
    newOrder.orderId = (orderId !== undefined ? orderId : '');
    newOrder.uid = '1';
    newOrder.status = props.status;
    newOrder.createTime = props.createTime ?? new Date().toString();

    this.orderData.splice(0, 0, newOrder);
    return orderId;
  }
  return undefined;
}

updateOrder(props: UpdateOrderProps) {
  const result: Order = this.orderData.filter(item => item.orderId === props.orderId)[0];
  const newOrder: Order = {
    orderId: props.orderId,
    commodityId: result.commodityId,
    price: result.price,
    count: result.count,
    specifications: result.specifications,
    image: result.image,
    description: result.description,
    title: result.title,
    uid: result.uid,
    status: props.status,
    createTime: result.createTime
  }
  this.orderData.splice(this.orderData.indexOf(result), 1, newOrder);
  return this.orderData;
}
  • queryOrderList:返回所有订单数据。
  • insertOrder:根据传入的订单信息创建新的订单,并插入到订单数据中。
  • updateOrder:根据订单 ID 从订单数据中获取订单信息,更新订单的状态等信息。

总结

通过上述代码实现,我们在 HarmonyOS Next 中完成了一个本地数据管理工具的开发。该工具可以有效地管理商品列表、购物车数据和订单数据,提供了查询、插入、删除和更新等基本操作。开发者可以根据实际需求对代码进行扩展和优化,以满足不同应用场景的需求。