feat: 补全客户端订单和资产 DTO _name 字段,修复代码格式
This commit is contained in:
@@ -151,41 +151,45 @@ func (h *ClientAssetHandler) GetAssetInfo(c *fiber.Ctx) error {
|
||||
phone, _ := middleware.GetCustomerPhone(c)
|
||||
|
||||
resp := &dto.AssetInfoResponse{
|
||||
BoundPhone: phone,
|
||||
AssetType: resolved.Asset.AssetType,
|
||||
AssetID: resolved.Asset.AssetID,
|
||||
Identifier: resolved.Identifier,
|
||||
VirtualNo: resolved.Asset.VirtualNo,
|
||||
Status: resolved.Asset.Status,
|
||||
RealNameStatus: resolved.Asset.RealNameStatus,
|
||||
CarrierName: resolved.Asset.CarrierName,
|
||||
Generation: strconv.Itoa(resolved.Generation),
|
||||
WalletBalance: resolved.WalletBalance,
|
||||
ActivatedAt: resolved.Asset.ActivatedAt,
|
||||
CurrentPackage: resolved.Asset.CurrentPackage,
|
||||
PackageTotalMB: resolved.Asset.PackageTotalMB,
|
||||
PackageUsedMB: resolved.Asset.PackageUsedMB,
|
||||
PackageRemainMB: resolved.Asset.PackageRemainMB,
|
||||
DeviceName: resolved.Asset.DeviceName,
|
||||
IMEI: resolved.Asset.IMEI,
|
||||
SN: resolved.Asset.SN,
|
||||
DeviceModel: resolved.Asset.DeviceModel,
|
||||
DeviceType: resolved.Asset.DeviceType,
|
||||
Manufacturer: resolved.Asset.Manufacturer,
|
||||
MaxSimSlots: resolved.Asset.MaxSimSlots,
|
||||
BoundCardCount: resolved.Asset.BoundCardCount,
|
||||
Cards: resolved.Asset.Cards,
|
||||
DeviceProtectStatus: resolved.Asset.DeviceProtectStatus,
|
||||
ICCID: resolved.Asset.ICCID,
|
||||
MSISDN: resolved.Asset.MSISDN,
|
||||
CarrierID: resolved.Asset.CarrierID,
|
||||
CarrierType: resolved.Asset.CarrierType,
|
||||
NetworkStatus: resolved.Asset.NetworkStatus,
|
||||
ActivationStatus: resolved.Asset.ActivationStatus,
|
||||
CardCategory: resolved.Asset.CardCategory,
|
||||
BoundDeviceID: resolved.Asset.BoundDeviceID,
|
||||
BoundDeviceNo: resolved.Asset.BoundDeviceNo,
|
||||
BoundDeviceName: resolved.Asset.BoundDeviceName,
|
||||
BoundPhone: phone,
|
||||
AssetType: resolved.Asset.AssetType,
|
||||
AssetID: resolved.Asset.AssetID,
|
||||
Identifier: resolved.Identifier,
|
||||
VirtualNo: resolved.Asset.VirtualNo,
|
||||
Status: resolved.Asset.Status,
|
||||
StatusName: resolved.Asset.StatusName,
|
||||
RealNameStatus: resolved.Asset.RealNameStatus,
|
||||
RealNameStatusName: constants.GetRealNameStatusName(resolved.Asset.RealNameStatus),
|
||||
CarrierName: resolved.Asset.CarrierName,
|
||||
Generation: strconv.Itoa(resolved.Generation),
|
||||
WalletBalance: resolved.WalletBalance,
|
||||
ActivatedAt: resolved.Asset.ActivatedAt,
|
||||
CurrentPackage: resolved.Asset.CurrentPackage,
|
||||
PackageTotalMB: resolved.Asset.PackageTotalMB,
|
||||
PackageUsedMB: resolved.Asset.PackageUsedMB,
|
||||
PackageRemainMB: resolved.Asset.PackageRemainMB,
|
||||
DeviceName: resolved.Asset.DeviceName,
|
||||
IMEI: resolved.Asset.IMEI,
|
||||
SN: resolved.Asset.SN,
|
||||
DeviceModel: resolved.Asset.DeviceModel,
|
||||
DeviceType: resolved.Asset.DeviceType,
|
||||
Manufacturer: resolved.Asset.Manufacturer,
|
||||
MaxSimSlots: resolved.Asset.MaxSimSlots,
|
||||
BoundCardCount: resolved.Asset.BoundCardCount,
|
||||
Cards: resolved.Asset.Cards,
|
||||
DeviceProtectStatus: resolved.Asset.DeviceProtectStatus,
|
||||
ICCID: resolved.Asset.ICCID,
|
||||
MSISDN: resolved.Asset.MSISDN,
|
||||
CarrierID: resolved.Asset.CarrierID,
|
||||
CarrierType: resolved.Asset.CarrierType,
|
||||
NetworkStatus: resolved.Asset.NetworkStatus,
|
||||
NetworkStatusName: constants.GetNetworkStatusName(resolved.Asset.NetworkStatus),
|
||||
ActivationStatus: resolved.Asset.ActivationStatus,
|
||||
ActivationStatusName: constants.GetActivationStatusName(resolved.Asset.ActivationStatus),
|
||||
CardCategory: resolved.Asset.CardCategory,
|
||||
BoundDeviceID: resolved.Asset.BoundDeviceID,
|
||||
BoundDeviceNo: resolved.Asset.BoundDeviceNo,
|
||||
BoundDeviceName: resolved.Asset.BoundDeviceName,
|
||||
}
|
||||
|
||||
// 调用服务层获取设备实时 Gateway 数据(per D-11)
|
||||
|
||||
@@ -23,11 +23,12 @@ type ClientCreateOrderResponse struct {
|
||||
|
||||
// ClientOrderInfo D1 套餐订单信息
|
||||
type ClientOrderInfo struct {
|
||||
OrderID uint `json:"order_id" description:"订单ID"`
|
||||
OrderNo string `json:"order_no" description:"订单号"`
|
||||
TotalAmount int64 `json:"total_amount" description:"订单总金额(分)"`
|
||||
PaymentStatus int `json:"payment_status" description:"支付状态 (1:待支付, 2:已支付, 3:已取消, 4:已退款)"`
|
||||
CreatedAt string `json:"created_at" description:"创建时间"`
|
||||
OrderID uint `json:"order_id" description:"订单ID"`
|
||||
OrderNo string `json:"order_no" description:"订单号"`
|
||||
TotalAmount int64 `json:"total_amount" description:"订单总金额(分)"`
|
||||
PaymentStatus int `json:"payment_status" description:"支付状态 (1:待支付, 2:已支付, 3:已取消, 4:已退款)"`
|
||||
PaymentStatusName string `json:"payment_status_name" description:"支付状态名称(中文)"`
|
||||
CreatedAt string `json:"created_at" description:"创建时间"`
|
||||
}
|
||||
|
||||
// ClientRechargeInfo D1 充值订单信息
|
||||
@@ -36,6 +37,7 @@ type ClientRechargeInfo struct {
|
||||
RechargeNo string `json:"recharge_no" description:"充值单号"`
|
||||
Amount int64 `json:"amount" description:"充值金额(分)"`
|
||||
Status int `json:"status" description:"状态 (0:待支付, 1:已支付, 2:已关闭)"`
|
||||
StatusName string `json:"status_name" description:"状态名称(中文)"`
|
||||
AutoPurchaseStatus string `json:"auto_purchase_status" description:"自动购包状态"`
|
||||
}
|
||||
|
||||
@@ -71,12 +73,13 @@ type ClientOrderListRequest struct {
|
||||
|
||||
// ClientOrderListItem D2 客户端订单列表项
|
||||
type ClientOrderListItem struct {
|
||||
OrderID uint `json:"order_id" description:"订单ID"`
|
||||
OrderNo string `json:"order_no" description:"订单号"`
|
||||
TotalAmount int64 `json:"total_amount" description:"订单总金额(分)"`
|
||||
PaymentStatus int `json:"payment_status" description:"支付状态 (1:待支付, 2:已支付, 3:已取消, 4:已退款)"`
|
||||
CreatedAt string `json:"created_at" description:"创建时间"`
|
||||
PackageNames []string `json:"package_names" description:"套餐名称列表"`
|
||||
OrderID uint `json:"order_id" description:"订单ID"`
|
||||
OrderNo string `json:"order_no" description:"订单号"`
|
||||
TotalAmount int64 `json:"total_amount" description:"订单总金额(分)"`
|
||||
PaymentStatus int `json:"payment_status" description:"支付状态 (1:待支付, 2:已支付, 3:已取消, 4:已退款)"`
|
||||
PaymentStatusName string `json:"payment_status_name" description:"支付状态名称(中文)"`
|
||||
CreatedAt string `json:"created_at" description:"创建时间"`
|
||||
PackageNames []string `json:"package_names" description:"套餐名称列表"`
|
||||
}
|
||||
|
||||
// ClientOrderListResponse D2 客户端订单列表响应
|
||||
@@ -93,15 +96,16 @@ type ClientOrderListResponse struct {
|
||||
|
||||
// ClientOrderDetailResponse D3 客户端订单详情响应
|
||||
type ClientOrderDetailResponse struct {
|
||||
OrderID uint `json:"order_id" description:"订单ID"`
|
||||
OrderNo string `json:"order_no" description:"订单号"`
|
||||
TotalAmount int64 `json:"total_amount" description:"订单总金额(分)"`
|
||||
PaymentStatus int `json:"payment_status" description:"支付状态 (1:待支付, 2:已支付, 3:已取消, 4:已退款)"`
|
||||
PaymentMethod string `json:"payment_method" description:"支付方式"`
|
||||
CreatedAt string `json:"created_at" description:"创建时间"`
|
||||
PaidAt *string `json:"paid_at,omitempty" description:"支付时间"`
|
||||
CompletedAt *string `json:"completed_at,omitempty" description:"完成时间"`
|
||||
Packages []ClientOrderPackageItem `json:"packages" description:"订单套餐列表"`
|
||||
OrderID uint `json:"order_id" description:"订单ID"`
|
||||
OrderNo string `json:"order_no" description:"订单号"`
|
||||
TotalAmount int64 `json:"total_amount" description:"订单总金额(分)"`
|
||||
PaymentStatus int `json:"payment_status" description:"支付状态 (1:待支付, 2:已支付, 3:已取消, 4:已退款)"`
|
||||
PaymentStatusName string `json:"payment_status_name" description:"支付状态名称(中文)"`
|
||||
PaymentMethod string `json:"payment_method" description:"支付方式"`
|
||||
CreatedAt string `json:"created_at" description:"创建时间"`
|
||||
PaidAt *string `json:"paid_at,omitempty" description:"支付时间"`
|
||||
CompletedAt *string `json:"completed_at,omitempty" description:"完成时间"`
|
||||
Packages []ClientOrderPackageItem `json:"packages" description:"订单套餐列表"`
|
||||
}
|
||||
|
||||
// ClientOrderPackageItem D3 订单套餐项
|
||||
|
||||
@@ -323,11 +323,12 @@ func (s *Service) createPackageOrder(
|
||||
return &dto.ClientCreateOrderResponse{
|
||||
OrderType: "package",
|
||||
Order: &dto.ClientOrderInfo{
|
||||
OrderID: order.ID,
|
||||
OrderNo: order.OrderNo,
|
||||
TotalAmount: order.TotalAmount,
|
||||
PaymentStatus: order.PaymentStatus,
|
||||
CreatedAt: formatClientServiceTime(order.CreatedAt),
|
||||
OrderID: order.ID,
|
||||
OrderNo: order.OrderNo,
|
||||
TotalAmount: order.TotalAmount,
|
||||
PaymentStatus: order.PaymentStatus,
|
||||
PaymentStatusName: constants.GetOrderPaymentStatusName(order.PaymentStatus),
|
||||
CreatedAt: formatClientServiceTime(order.CreatedAt),
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
@@ -394,13 +395,15 @@ func (s *Service) createForceRechargeOrder(
|
||||
s.markClientPurchaseCreated(ctx, redisKey, recharge.RechargeNo)
|
||||
*created = true
|
||||
|
||||
clientStatus := rechargeStatusToClientStatus(recharge.Status)
|
||||
return &dto.ClientCreateOrderResponse{
|
||||
OrderType: "recharge",
|
||||
Recharge: &dto.ClientRechargeInfo{
|
||||
RechargeID: recharge.ID,
|
||||
RechargeNo: recharge.RechargeNo,
|
||||
Amount: recharge.Amount,
|
||||
Status: rechargeStatusToClientStatus(recharge.Status),
|
||||
Status: clientStatus,
|
||||
StatusName: clientRechargeStatusName(clientStatus),
|
||||
AutoPurchaseStatus: recharge.AutoPurchaseStatus,
|
||||
},
|
||||
PayConfig: buildClientPayConfigFromResult(paymentResult),
|
||||
@@ -709,6 +712,17 @@ func rechargeStatusToClientStatus(status int) int {
|
||||
}
|
||||
}
|
||||
|
||||
func clientRechargeStatusName(clientStatus int) string {
|
||||
switch clientStatus {
|
||||
case 0:
|
||||
return "待支付"
|
||||
case 1:
|
||||
return "已支付"
|
||||
default:
|
||||
return "已关闭"
|
||||
}
|
||||
}
|
||||
|
||||
func formatClientServiceTime(t time.Time) string {
|
||||
if t.IsZero() {
|
||||
return ""
|
||||
@@ -789,12 +803,13 @@ func (s *Service) ListOrders(ctx context.Context, customerID uint, req *dto.Clie
|
||||
}
|
||||
|
||||
list = append(list, dto.ClientOrderListItem{
|
||||
OrderID: order.ID,
|
||||
OrderNo: order.OrderNo,
|
||||
TotalAmount: order.TotalAmount,
|
||||
PaymentStatus: order.PaymentStatus,
|
||||
CreatedAt: formatClientServiceTime(order.CreatedAt),
|
||||
PackageNames: packageNames,
|
||||
OrderID: order.ID,
|
||||
OrderNo: order.OrderNo,
|
||||
TotalAmount: order.TotalAmount,
|
||||
PaymentStatus: order.PaymentStatus,
|
||||
PaymentStatusName: constants.GetOrderPaymentStatusName(order.PaymentStatus),
|
||||
CreatedAt: formatClientServiceTime(order.CreatedAt),
|
||||
PackageNames: packageNames,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -835,15 +850,16 @@ func (s *Service) GetOrderDetail(ctx context.Context, customerID uint, orderID u
|
||||
}
|
||||
|
||||
return &dto.ClientOrderDetailResponse{
|
||||
OrderID: order.ID,
|
||||
OrderNo: order.OrderNo,
|
||||
TotalAmount: order.TotalAmount,
|
||||
PaymentStatus: order.PaymentStatus,
|
||||
PaymentMethod: order.PaymentMethod,
|
||||
CreatedAt: formatClientServiceTime(order.CreatedAt),
|
||||
PaidAt: formatClientServiceTimePtr(order.PaidAt),
|
||||
CompletedAt: nil,
|
||||
Packages: packages,
|
||||
OrderID: order.ID,
|
||||
OrderNo: order.OrderNo,
|
||||
TotalAmount: order.TotalAmount,
|
||||
PaymentStatus: order.PaymentStatus,
|
||||
PaymentStatusName: constants.GetOrderPaymentStatusName(order.PaymentStatus),
|
||||
PaymentMethod: order.PaymentMethod,
|
||||
CreatedAt: formatClientServiceTime(order.CreatedAt),
|
||||
PaidAt: formatClientServiceTimePtr(order.PaidAt),
|
||||
CompletedAt: nil,
|
||||
Packages: packages,
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user