業務邏輯學習!

东三元發表於2024-07-31

獲取地址列表

  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

相關文章