《仿盒马》app开发技术分享-- 插入积分信息(65)

简介: 上一节我们实现了积分页面的大概框架,那么现在我们开始进行数据的填充和查询,积分相关的内容现在之后当回收订单结算之后才会进行积分数据的添加,那我们想查询出对应的积分数据,还需要新增一张积分信息表

技术栈

Appgallery connect

开发准备

上一节我们实现了积分页面的大概框架,那么现在我们开始进行数据的填充和查询,积分相关的内容现在之后当回收订单结算之后才会进行积分数据的添加,那我们想查询出对应的积分数据,还需要新增一张积分信息表

功能分析

现在积分相关的有订单结算以及后续的积分兑换功能,我们先实现订单结算的积分新增以及用户信息表的积分总额计算。
首先在回收单待完成页面点击确认按钮时进行数据的添加,我们这里要用type去区分积分数据的状态,状态分为收入和支出。然后我们修改userinfo的积分信息,在积分列表全部选项里查询出积分的数据在list列表中进行展示

代码实现

首先我们创建对应的表、实体、db类

{
   
  "objectTypeName": "points_info",
  "fields": [
    {
   "fieldName": "id", "fieldType": "Integer", "notNull": true, "belongPrimaryKey": true},
    {
   "fieldName": "user_id", "fieldType": "Integer", "notNull": true, "defaultValue": 0},
    {
   "fieldName": "points", "fieldType": "String"},
    {
   "fieldName": "create_time", "fieldType": "String"},
    {
   "fieldName": "points_type", "fieldType": "String"},
    {
   "fieldName": "address", "fieldType": "String"},
    {
   "fieldName": "year", "fieldType": "String"},
    {
   "fieldName": "month", "fieldType": "String"},
    {
   "fieldName": "day", "fieldType": "String"},
    {
   "fieldName": "time", "fieldType": "String"}
  ],
  "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 PointsInfo {
   
    id: number;
    user_id: number = 0;
    points: string;
    create_time: string;
    points_type: string;
    address: string;
    year: string;
    month: string;
    day: string;
    time: string;

    constructor() {
   
    }



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

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

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

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

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

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

    setCreate_time(create_time: string): void {
   
        this.create_time = create_time;
    }

    getCreate_time(): string  {
   
        return this.create_time;
    }

    setPoints_type(points_type: string): void {
   
        this.points_type = points_type;
    }

    getPoints_type(): string  {
   
        return this.points_type;
    }

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

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

    setYear(year: string): void {
   
        this.year = year;
    }

    getYear(): string  {
   
        return this.year;
    }

    setMonth(month: string): void {
   
        this.month = month;
    }

    getMonth(): string  {
   
        return this.month;
    }

    setDay(day: string): void {
   
        this.day = day;
    }

    getDay(): string  {
   
        return this.day;
    }

    setTime(time: string): void {
   
        this.time = time;
    }

    getTime(): string  {
   
        return this.time;
    }

}

export {
    PointsInfo };


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

class points_info extends cloudDatabase.DatabaseObject {
   
  public id: number;
  public user_id = 0;
  public points: string;
  public create_time: string;
  public points_type: string;
  public address: string;
  public year: string;
  public month: string;
  public day: string;
  public time: string;

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

export {
    points_info };

在订单确认完成按钮处我们实现云数据库数据新增

 let points=new points_info()
                        points.id=Math.floor(Math.random() * 1000000)
                        points.user_id=this.user!.user_id
                        points.points=String(item.money)
                        points.points_type='0'
                        points.address='客户端下单奖励'
                        points.year=this.year
                        points.month=this.month
                        points.day=this.day
                        points.time=this.time
                        points.create_time=this.year+"-"+this.month+"-"+this.day+" "+this.time
                        let points_nums =  await databaseZone.upsert(money);

用户账号内的总积分数修改

 let userData=new user_info()
                        userData.id=this.userInfo!.id
                        userData.user_id=this.userInfo!.user_id
                        userData.sex=this.userInfo!.sex
                        userData.bind_phone=this.userInfo!.bind_phone
                        userData.create_time=this.userInfo!.create_time
                        userData.nickname=this.userInfo!.nickname
                        userData.head_img=this.userInfo!.head_img
                        if (this.userInfo?.money!=null) {
   
                          userData.money=this.userInfo!.money+item.money
                        }else {
   
                          userData.money=item.money
                        }
                        if (this.userInfo?.points!=null) {
   
                          userData.points=this.userInfo!.points+item.integral
                        }else {
   
                          userData.points=item.integral
                        }
                       let s= await databaseZone.upsert(userData);

到这里我们就实现了用户积分信息的插入

相关文章
|
存储 弹性计算 运维
得到APP: 突发情况下的信息传播
新冠肺炎的疫情突如其来,各个行业都在忙着为“抗疫”做些力所能及的事情。作为知识服务行业领头兵的得到也不例外。 得到是阿里云的合作伙伴。作为一家知识服务公司,得到APP的抗疫工作,春节前就开始了。
1924 0
得到APP: 突发情况下的信息传播
|
10月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1131 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
10月前
|
人工智能 前端开发 JavaScript
最佳实践3:用通义灵码开发一款 App
本示例演示使用通义灵码,基于React Native与Node.js开发跨平台类通义App,重点展示iOS端实现。涵盖前端页面生成、后端代码库自动生成、RTK Query通信集成及Qwen API调用全过程,体现灵码在全栈开发中的高效能力。(238字)
1005 11
|
10月前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
451 0
|
10月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1766 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
10月前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
1568 139
|
10月前
|
移动开发 JavaScript weex
UniApp开发的App在启动速度方面有哪些优势和劣势?
UniApp开发的App在启动速度方面有哪些优势和劣势?
708 137
|
10月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1205 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
10月前
|
人工智能 小程序 开发者
【一步步开发AI运动APP】十二、自定义扩展新运动项目03
继【一步步开发AI运动小程序】后,我们推出新系列【一步步开发AI运动APP】,助开发者打造高性能、优体验的AI运动应用。本文详解自定义扩展运动分析器的统一管理实现,提升代码复用性与可维护性,涵盖APP与小程序插件差异及完整代码示例,助力AI运动场景深度拓展。

热门文章

最新文章