首页 > 其他分享 >业务逻辑学习!

业务逻辑学习!

时间:2024-07-31 18:59:55浏览次数:7  
标签:逻辑 抽奖 业务 查询 学习 获取 json 支付 id

获取地址列表

  1. 方法传入一个token参数,首先解析获取token信息
  2. 获取用户id
  3. 构建查询条件,指定查询的用户id
  4. 设置查询结果按照地址进行降序
  5. 调用dao层查询 然后返回

查询条件为启用的json数组

  1. 首先创造查询条件,条件为1的,即状态为启用的
  2. 调用dao层进行查询返回一个数组对象
  3. 遍历查询结果并将结果构建到json对象中
  4. 最后存入数据

抽奖逻辑

  1. 方法中传入一个json和一个token
  2. 然后创建一个json的对象,用来获取其中的抽奖池id,抽奖次数以及支付金额
  3. 拿到token信息验证,获取用户id
  4. 根据拿到的id查询用户信息,获取用户当前的支付金额
  5. 判断用户的钱是否够抽奖
  6. 用数组集合 初始化抽奖结果列表,根据抽奖池ID查询普通商品列表,并根据商品概率初始化抽奖池
  7. 查询默认谢谢参与的商品ID和概率
  8. 进行多次抽奖,根据抽奖次数和抽奖池进行抽奖,并保存抽奖结果
  9. 根据商品ID查询商品封面图片,并添加到抽奖结果列表
  10. 更新用户支付金额和积分,根据新的积分值更新用户会员等级

登录

  • 首先参数json数据 需要从中获取用户名和密码
  • 创建查询条件,定义一个实例对象,绑定对应的账号和密码,并且设置状态必须为1
  • 调用dao层的查询返回一个集合对象
  • 判断查询结果至少存在一个管理员记录,则用户名和密码则匹配,否则登录失败
  • 当判断至少存在一条记录时,获取它的id并生成一个jwt令牌token对象
  • 创建一个新的 JSONObject 来存储管理员的 ID、姓名和生成的令牌。

处理订单请求

  1. 传入json和token数据,通过json得到用用户支付金额
  2. 验证用户的令牌并获取id,根据id查询用户信息
  3. 判断支付金额是否足够进行支付,从请求参数中获取订单详情
  4. 创建订单,在插入数据库,更新商品的销量、支付金额、积分。

商品发货

  1. 传入一个json对象,从json中获取商品的发货信息
  2. 创建商品实例,并设置订单id等信息,设置订单状态为已发货的状态
  3. 调用dao层更新订单信息

处理支付前的签名生成流程

  1. 通过jwt工具类解析出用户信息,获取唯一uid,通过uid调用dao层查询用户信息
  2. 获取支付金额,然后生成支付的订单,唯一的一个订单号,设置订单信息,最后将订单信息插入dao层的数据库中。
  3. 调用方法获取预支付的id,个方法通常与第三方支付平台(如微信支付)交互,以准备支付交易。
  4. 创建 SignInfo 对象并设置必要的信息,包括应用ID (appId)、时间戳 (timeStamp)、随机字符串 (nonceStr) 和预支付ID (repay_id)。生成签名信息
  5. 创建一个新的 JSONObject,并将签名信息和其它必要数据放入其中。
  6. 最后返回

与微信支付接口交互以获取预支付ID

  1. 创建一个 OrderInfo 对象并设置必要的订单信息
  2. 调用 Signature.getSign 方法生成签名,并将签名设置到 OrderInfo 对象上。
  3. 使用 HttpRequest.sendPost 方法向微信支付的统一下单接口发送 POST 请求,并接收返回的结果。
  4. 使用 XStream 库将从微信支付接口接收到的 XML 响应转换为 OrderReturnInfo 对象。
  5. 返回预支付的id

标签:逻辑,抽奖,业务,查询,学习,获取,json,支付,id
From: https://www.cnblogs.com/wzyzq/p/18334892

相关文章

  • 【C++】构造函数的深入学习
    一、初始化列表C++提供初始化列表语法用来初始化属性语法:构造函数():属性1(值1),属性2(值2)...{}classPeople{public://传统初始化操作Person(inta,intb,intc){A=a;B=b;C=c;}//初始化列表初始化属性Pers......
  • MySQL 学习笔记 进阶(锁 下,InnoDB引擎 上)
    锁 锁-表级锁-表锁介绍表级锁,每次操作锁住整张表。锁定粒度大,发生锁冲突的概率最高,并发度最低。应用在MyISAM,InnoDB,BDB等存储引擎中。对于表级锁,主要分为以下三类:表锁元数据锁(metadatalock,MDL)意向锁表锁对于表锁,分为两类:表共享读锁(readlock)表独占写锁(write......
  • 网络安全自学入门:(超详细)从入门到精通学习路线&规划,学完即可就业
    很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习,最终也只是会无疾而终!黑客是一个大的概念,里面包含了许多方向,不同的方向需要学习的内容也不一样。算上从学校开始学习,已经在网安这条路上走了10年了,无论是以前在学校做安全研究,还是毕业后在百度、360从事内核安全产品......
  • 网络安全自学入门:(超详细)从入门到精通学习路线&规划,学完即可就业
    很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习,最终也只是会无疾而终!黑客是一个大的概念,里面包含了许多方向,不同的方向需要学习的内容也不一样。算上从学校开始学习,已经在网安这条路上走了10年了,无论是以前在学校做安全研究,还是毕业后在百度、360从事内核安全产品......
  • 网络安全自学入门:(超详细)从入门到精通学习路线&规划,学完即可就业
    很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习,最终也只是会无疾而终!黑客是一个大的概念,里面包含了许多方向,不同的方向需要学习的内容也不一样。算上从学校开始学习,已经在网安这条路上走了10年了,无论是以前在学校做安全研究,还是毕业后在百度、360从事内核安全产品......
  • 扩展 BSGS 学习笔记
    在之前,我们学习了BSGS。设有\(a,b,m\),且\((a,m)\ne1\),求解:\[a^x\equivb\pmodm\]这玩意如何求解?把它变成BSGS能做的形式不就行了!具体的,设\(d_1=(a,m)\),若\(d_1\not|b\)则方程无解。否则我们可以得到:\[\dfrac{a}{d_1}\cdota^{x-1}\equiv\dfrac{b}{d_1}\pmod{\d......
  • STM32学习记录(七):ADC
    STM32学习记录(七):ADC模拟/数字转换器(Analog-to-digitalconverter:ADC)将模拟量转为数字量。STM32F103C8T6中的有2个12bit转换时间为1us的A/D转换器,内置了一个温度传感器,可以通过ADC读取。ADC的系统框图ADC读取温度传感器STM32内部有一个温度传感器,只有使用ADC1时,内部温度......
  • HarmonyOS应用开发学习-HarmonyOs概述
    HarmonyOs概述HarmonyOs是一款面向万物互联时代的、全新的分布式操作系统在传统的单设备系统能力基础上,HarmonyOs提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机、PC、智能音箱、耳机、AR/VR眼镜等多种终端设备,提供全场景(......
  • 二十五、【机器学习】-【Python手搓3层神经网络】:从零构建深度学习模型的实战指南
    目录一、序章:为什么你需要掌握手搓神经网络二、基础篇:神经网络基础知识回顾三、实战配置:搭建3层神经网络的步骤与技巧(一)、__init__ 方法初始化神经网络(二)、train 方法实现了前向传播和反向传播(三)、query 方法(四)、全部代码四、总结一、序章:为什么你需要掌握手......
  • 在Mybatis中不对select做任何改变,将物理删除的逻辑迁移到逻辑删除
    假设现在有一个已经完成或者已经到中期的项目,但是忘记做逻辑删除了,更改的办法如下第一步,在项目中添加如下的拦截器importcom.baomidou.mybatisplus.core.toolkit.PluginUtils;importcom.baomidou.mybatisplus.extension.plugins.inner.DataPermissionInterceptor;importlom......