feat(purchase): 新增 Apple 内购完整链路
- AppleReceiptController 改造:验签后立刻落库并解锁权益 - 新增 ApplePurchaseService 处理业务:防重、写订单、发道具 - 新增 KeyboardUserPurchaseRecords 实体与 Mapper,记录用户购买 - ErrorCode 补充 RECEIPT_INVALID(50016) - 删除过期 AGENTS.md,修正 i18n_message 表名与 CORS 白名单
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
<mapper namespace="com.yolo.keyborad.mapper.I18nMessageMapper">
|
||||
<resultMap id="BaseResultMap" type="com.yolo.keyborad.model.entity.I18nMessage">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table i18n_message-->
|
||||
<!--@Table keyboard_i18n_message-->
|
||||
<id column="id" jdbcType="BIGINT" property="id" />
|
||||
<result column="code" jdbcType="VARCHAR" property="code" />
|
||||
<result column="locale" jdbcType="VARCHAR" property="locale" />
|
||||
@@ -15,6 +15,6 @@
|
||||
</sql>
|
||||
|
||||
<select id="selectByCodeAndLocale" resultMap="BaseResultMap">
|
||||
SELECT * FROM "i18n_message" WHERE code = #{code,jdbcType=VARCHAR} AND locale = #{locale,jdbcType=VARCHAR}
|
||||
SELECT * FROM "keyboard_i18n_message" WHERE code = #{code,jdbcType=VARCHAR} AND locale = #{locale,jdbcType=VARCHAR}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.yolo.keyborad.mapper.KeyboardUserPurchaseRecordsMapper">
|
||||
<resultMap id="BaseResultMap" type="com.yolo.keyborad.model.entity.KeyboardUserPurchaseRecords">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table keyboard_user_purchase_records-->
|
||||
<id column="id" jdbcType="INTEGER" property="id" />
|
||||
<result column="user_id" jdbcType="INTEGER" property="userId" />
|
||||
<result column="product_id" jdbcType="VARCHAR" property="productId" />
|
||||
<result column="purchase_quantity" jdbcType="INTEGER" property="purchaseQuantity" />
|
||||
<result column="price" jdbcType="NUMERIC" property="price" />
|
||||
<result column="currency" jdbcType="VARCHAR" property="currency" />
|
||||
<result column="purchase_time" jdbcType="TIMESTAMP" property="purchaseTime" />
|
||||
<result column="purchase_type" jdbcType="VARCHAR" property="purchaseType" />
|
||||
<result column="status" jdbcType="VARCHAR" property="status" />
|
||||
<result column="payment_method" jdbcType="VARCHAR" property="paymentMethod" />
|
||||
<result column="transaction_id" jdbcType="VARCHAR" property="transactionId" />
|
||||
<result column="original_transaction_id" jdbcType="VARCHAR" property="originalTransactionId" />
|
||||
<result column="product_ids" jdbcType="VARCHAR" property="productIds" />
|
||||
<result column="purchase_date" jdbcType="TIMESTAMP" property="purchaseDate" />
|
||||
<result column="expires_date" jdbcType="TIMESTAMP" property="expiresDate" />
|
||||
<result column="environment" jdbcType="VARCHAR" property="environment" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
id, user_id, product_id, purchase_quantity, price, currency, purchase_time, purchase_type,
|
||||
"status", payment_method, transaction_id, original_transaction_id, product_ids, purchase_date,
|
||||
expires_date, environment
|
||||
</sql>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user