獲取地址列表
- 方法傳入一個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