OmgPaymentAttemptMapper.xml 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.ruoyi.system.omgpay.mapper.OmgPaymentAttemptMapper">
  4. <sql id="attemptColumns">
  5. id, dd_id AS ddId, merchant_trade_no AS merchantTradeNo,
  6. store_id AS storeId, merchant_id AS merchantId, amount,
  7. attempt_status AS attemptStatus, active_dd_id AS activeDdId,
  8. create_time AS createTime, update_time AS updateTime
  9. </sql>
  10. <!-- FOR UPDATE serializes concurrent endpoint calls before MerchantTradeNo generation/reuse decisions. -->
  11. <select id="selectOrderForUpdate"
  12. resultType="com.ruoyi.system.omgpay.domain.OmgPaymentOrderSnapshot">
  13. SELECT id, dd_id AS ddId, parent_dd_id AS parentDdId, md_id AS storeId,
  14. user_id AS userId, amount, state, pay_status AS payStatus, pay_type AS payType
  15. FROM pos_order WHERE dd_id = #{ddId} LIMIT 1 FOR UPDATE
  16. </select>
  17. <select id="selectActiveCreatedByDdId"
  18. resultType="com.ruoyi.system.omgpay.domain.OmgPaymentAttempt">
  19. SELECT <include refid="attemptColumns"/>
  20. FROM pos_order_omg_attempt
  21. WHERE active_dd_id = #{ddId}
  22. LIMIT 1
  23. </select>
  24. <!-- active_dd_id is a DB-generated key invariant, so Java inserts only the created facts. -->
  25. <insert id="insertCreated" useGeneratedKeys="true" keyProperty="id">
  26. INSERT INTO pos_order_omg_attempt
  27. (dd_id, merchant_trade_no, store_id, merchant_id, amount,
  28. attempt_status, create_time, update_time)
  29. VALUES
  30. (#{ddId}, #{merchantTradeNo}, #{storeId}, #{merchantId}, #{amount},
  31. #{attemptStatus}, #{createTime}, #{updateTime})
  32. </insert>
  33. </mapper>