feat: 客户端接口数据模型基础准备

- 新增资产状态、订单来源、操作人类型、实名链接类型常量
- 8个模型新增字段(asset_status/generation/source/retail_price等)
- 数据库迁移000082:7张表15+字段,含存量retail_price回填
- BUG-1修复:代理零售价渠道隔离,cost_price分配锁定
- BUG-2修复:一次性佣金仅客户端订单触发
- BUG-4修复:充值回调Store操作纳入事务
- 新增资产手动停用接口(PATCH /iot-cards/:id/deactivate、/devices/:id/deactivate)
- Carrier管理新增实名链接配置
- 后台订单generation写时快照
- BatchUpdatePricing支持retail_price调价目标
- 清理全部H5旧接口和个人客户旧登录方法
This commit is contained in:
2026-03-19 10:56:50 +08:00
parent 817d0d6e04
commit ec86dbf463
70 changed files with 1438 additions and 1188 deletions

View File

@@ -0,0 +1,11 @@
package constants
// 资产业务状态常量
// 用于 IotCard/Device 的 asset_status 字段,表示资产在 CMP 内部的业务生命周期状态
// 与运营商侧的 network_status 完全独立
const (
AssetStatusInStock = 1 // 在库
AssetStatusSold = 2 // 已销售
AssetStatusExchanged = 3 // 已换货
AssetStatusDeactivated = 4 // 已停用
)

View File

@@ -0,0 +1,8 @@
package constants
// 操作人类型常量
// 用于 AssetRechargeRecord.operator_type 字段,区分操作人的 ID 体系
const (
OperatorTypeAdminUser = "admin_user" // 后台用户
OperatorTypePersonalCustomer = "personal_customer" // 个人客户
)

View File

@@ -0,0 +1,8 @@
package constants
// 订单来源常量
// 用于 Order.source 字段,区分订单创建渠道
const (
OrderSourceAdmin = "admin" // 后台
OrderSourceClient = "client" // 客户端
)

View File

@@ -0,0 +1,9 @@
package constants
// 实名链接类型常量
// 用于 Carrier.realname_link_type 字段,定义运营商实名认证链接的生成方式
const (
RealnameLinkTypeNone = "none" // 不支持实名链接
RealnameLinkTypeTemplate = "template" // 模板URL支持 {iccid}/{msisdn}/{virtual_no} 占位符)
RealnameLinkTypeGateway = "gateway" // Gateway接口
)

View File

@@ -6,7 +6,6 @@ import (
"github.com/break/junhong_cmp_fiber/internal/handler/app"
authHandler "github.com/break/junhong_cmp_fiber/internal/handler/auth"
"github.com/break/junhong_cmp_fiber/internal/handler/callback"
"github.com/break/junhong_cmp_fiber/internal/handler/h5"
)
// BuildDocHandlers 构造文档生成用的 handlers所有依赖传 nil
@@ -25,7 +24,6 @@ func BuildDocHandlers() *bootstrap.Handlers {
Enterprise: admin.NewEnterpriseHandler(nil),
EnterpriseCard: admin.NewEnterpriseCardHandler(nil),
EnterpriseDevice: admin.NewEnterpriseDeviceHandler(nil),
EnterpriseDeviceH5: h5.NewEnterpriseDeviceHandler(nil),
Authorization: admin.NewAuthorizationHandler(nil),
MyCommission: admin.NewMyCommissionHandler(nil),
IotCard: admin.NewIotCardHandler(nil),
@@ -38,13 +36,10 @@ func BuildDocHandlers() *bootstrap.Handlers {
PackageSeries: admin.NewPackageSeriesHandler(nil),
Package: admin.NewPackageHandler(nil),
PackageUsage: admin.NewPackageUsageHandler(nil),
H5PackageUsage: h5.NewPackageUsageHandler(nil, nil),
ShopPackageBatchAllocation: admin.NewShopPackageBatchAllocationHandler(nil),
ShopPackageBatchPricing: admin.NewShopPackageBatchPricingHandler(nil),
ShopSeriesGrant: admin.NewShopSeriesGrantHandler(nil),
AdminOrder: admin.NewOrderHandler(nil, nil),
H5Order: h5.NewOrderHandler(nil),
H5Recharge: h5.NewRechargeHandler(nil),
PaymentCallback: callback.NewPaymentHandler(nil, nil, nil, nil),
PollingConfig: admin.NewPollingConfigHandler(nil),
PollingConcurrency: admin.NewPollingConcurrencyHandler(nil),