获取地址列表
- 方法传入一个token参数,首先解析获取token信息
- 获取用户id
- 构建查询条件,指定查询的用户id
- 设置查询结果按照地址进行降序
- 调用dao层查询 然后返回
查询条件为启用的json数组
- 首先创造查询条件,条件为1的,即状态为启用的
- 调用dao层进行查询返回一个数组对象
- 遍历查询结果并将结果构建到json对象中
- 最后存入数据
抽奖逻辑
- 方法中传入一个json和一个token
- 然后创建一个json的对象,用来获取其中的抽奖池id,抽奖次数以及支付金额
- 拿到token信息验证,获取用户id
- 根据拿到的id查询用户信息,获取用户当前的支付金额
- 判断用户的钱是否够抽奖
- 用数组集合 初始化抽奖结果列表,根据抽奖池ID查询普通商品列表,并根据商品概率初始化抽奖池
- 查询默认谢谢参与的商品ID和概率
- 进行多次抽奖,根据抽奖次数和抽奖池进行抽奖,并保存抽奖结果
- 根据商品ID查询商品封面图片,并添加到抽奖结果列表
- 更新用户支付金额和积分,根据新的积分值更新用户会员等级
登录
- 首先参数json数据 需要从中获取用户名和密码
- 创建查询条件,定义一个实例对象,绑定对应的账号和密码,并且设置状态必须为1
- 调用dao层的查询返回一个集合对象
- 判断查询结果至少存在一个管理员记录,则用户名和密码则匹配,否则登录失败
- 当判断至少存在一条记录时,获取它的id并生成一个jwt令牌token对象
- 创建一个新的 JSONObject 来存储管理员的 ID、姓名和生成的令牌。
处理订单请求
- 传入json和token数据,通过json得到用用户支付金额
- 验证用户的令牌并获取id,根据id查询用户信息
- 判断支付金额是否足够进行支付,从请求参数中获取订单详情
- 创建订单,在插入数据库,更新商品的销量、支付金额、积分。
商品发货
- 传入一个json对象,从json中获取商品的发货信息
- 创建商品实例,并设置订单id等信息,设置订单状态为已发货的状态
- 调用dao层更新订单信息
处理支付前的签名生成流程
- 通过jwt工具类解析出用户信息,获取唯一uid,通过uid调用dao层查询用户信息
- 获取支付金额,然后生成支付的订单,唯一的一个订单号,设置订单信息,最后将订单信息插入dao层的数据库中。
- 调用方法获取预支付的id,个方法通常与第三方支付平台(如微信支付)交互,以准备支付交易。
- 创建 SignInfo 对象并设置必要的信息,包括应用ID (appId)、时间戳 (timeStamp)、随机字符串 (nonceStr) 和预支付ID (repay_id)。生成签名信息
- 创建一个新的 JSONObject,并将签名信息和其它必要数据放入其中。
- 最后返回
与微信支付接口交互以获取预支付ID
- 创建一个 OrderInfo 对象并设置必要的订单信息
- 调用 Signature.getSign 方法生成签名,并将签名设置到 OrderInfo 对象上。
- 使用 HttpRequest.sendPost 方法向微信支付的统一下单接口发送 POST 请求,并接收返回的结果。
- 使用 XStream 库将从微信支付接口接收到的 XML 响应转换为 OrderReturnInfo 对象。
- 返回预支付的id