fix(admin): classify legacy coin seller recharges
This commit is contained in:
parent
dc79adae36
commit
a10213b4d8
@ -18,6 +18,8 @@ var (
|
|||||||
errLegacyCoinSellerOrderDuplicate = errors.New("legacy coin seller recharge order already exists")
|
errLegacyCoinSellerOrderDuplicate = errors.New("legacy coin seller recharge order already exists")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const legacyCoinSellerRechargeType = "USDT-进货"
|
||||||
|
|
||||||
type coinSellerTarget struct {
|
type coinSellerTarget struct {
|
||||||
UserID int64
|
UserID int64
|
||||||
DisplayUserID string
|
DisplayUserID string
|
||||||
@ -214,7 +216,9 @@ WHERE id = ?`, input.CoinAmount, input.UserID, input.GrantedAt, balanceID); err
|
|||||||
return legacyRechargeGrantResult{}, err
|
return legacyRechargeGrantResult{}, err
|
||||||
}
|
}
|
||||||
waterID := legacySnowflakeLikeID(input.GrantedAt)
|
waterID := legacySnowflakeLikeID(input.GrantedAt)
|
||||||
rechargeType := legacyRechargeType(input.ProviderCode, input.Chain)
|
// likei-services 经理中心按固定 recharge_type=USDT-进货 汇总币商入金;
|
||||||
|
// V5Pay、Binance 站内转账和链上网络属于支付凭证维度,已完整保存在 admin 订单中,不能写进旧钱包的统计分类字段。
|
||||||
|
rechargeType := legacyCoinSellerRechargeType
|
||||||
if _, err := tx.ExecContext(queryCtx, `
|
if _, err := tx.ExecContext(queryCtx, `
|
||||||
INSERT INTO user_freight_balance_running_water
|
INSERT INTO user_freight_balance_running_water
|
||||||
(id, sys_origin, user_id, accept_user_id, seller_id, type, quantity, usd_quantity, balance, amount, recharge_type, origin, remark, create_user, update_user, create_time, update_time)
|
(id, sys_origin, user_id, accept_user_id, seller_id, type, quantity, usd_quantity, balance, amount, recharge_type, origin, remark, create_user, update_user, create_time, update_time)
|
||||||
@ -258,17 +262,6 @@ func decimalBalanceAfter(earnPointsText string, consumptionText string, delta in
|
|||||||
return int64(earn) + delta - int64(consumption), nil
|
return int64(earn) + delta - int64(consumption), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func legacyRechargeType(providerCode string, chain string) string {
|
|
||||||
providerCode = strings.ToUpper(strings.TrimSpace(providerCode))
|
|
||||||
if providerCode == "USDT" {
|
|
||||||
if chain = strings.ToUpper(strings.TrimSpace(chain)); chain != "" {
|
|
||||||
return "USDT-" + chain + "-进货"
|
|
||||||
}
|
|
||||||
return "USDT-进货"
|
|
||||||
}
|
|
||||||
return providerCode + "-进货"
|
|
||||||
}
|
|
||||||
|
|
||||||
func legacySnowflakeLikeID(now time.Time) int64 {
|
func legacySnowflakeLikeID(now time.Time) int64 {
|
||||||
// 旧服务用 MyBatis ASSIGN_ID 写 bigint 主键;后台没有接入旧雪花 worker,只需保证单进程内足够唯一且单调。
|
// 旧服务用 MyBatis ASSIGN_ID 写 bigint 主键;后台没有接入旧雪花 worker,只需保证单进程内足够唯一且单调。
|
||||||
return now.UTC().UnixMilli()*1000 + int64(legacyWaterIDCounter.Add(1)%1000)
|
return now.UTC().UnixMilli()*1000 + int64(legacyWaterIDCounter.Add(1)%1000)
|
||||||
|
|||||||
@ -32,7 +32,7 @@ func TestLegacyCoinSellerRechargeWriterGrantUpdatesBalanceAndRunningWater(t *tes
|
|||||||
WithArgs(int64(1200), int64(10001), grantedAt, int64(77)).
|
WithArgs(int64(1200), int64(10001), grantedAt, int64(77)).
|
||||||
WillReturnResult(sqlmock.NewResult(0, 1))
|
WillReturnResult(sqlmock.NewResult(0, 1))
|
||||||
walletMock.ExpectExec(`(?s)INSERT INTO user_freight_balance_running_water`).
|
walletMock.ExpectExec(`(?s)INSERT INTO user_freight_balance_running_water`).
|
||||||
WithArgs(sqlmock.AnyArg(), "ATYOU", int64(10001), int64(10001), nil, int64(1200), int64(5200), "12.34", "MIFAPAY-进货", "MIFA-001", int64(10001), int64(10001), grantedAt, grantedAt).
|
WithArgs(sqlmock.AnyArg(), "ATYOU", int64(10001), int64(10001), nil, int64(1200), int64(5200), "12.34", legacyCoinSellerRechargeType, "MIFA-001", int64(10001), int64(10001), grantedAt, grantedAt).
|
||||||
WillReturnResult(sqlmock.NewResult(0, 1))
|
WillReturnResult(sqlmock.NewResult(0, 1))
|
||||||
walletMock.ExpectCommit()
|
walletMock.ExpectCommit()
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user