Files
shop-user-trade/model/dto/knapsack/knapsack_dto.go

181 lines
8.0 KiB
Go
Raw Normal View History

2026-04-02 10:22:36 +08:00
package dto
import (
knapsackConsts "shop-user-trade/consts/knapsack"
"shop-user-trade/model/config"
"gitea.com/red-future/common/beans"
"github.com/gogf/gf/v2/frame/g"
)
// CreateKnapsackReq 创建背包项请求
type CreateKnapsackReq struct {
g.Meta `path:"/createKnapsack" method:"post" tags:"背包管理" summary:"创建背包项" dc:"创建新的背包项"`
UserID int64 `json:"userId" v:"required" dc:"用户ID"`
AssetID int64 `json:"assetId" v:"required" dc:"资产ID"`
AssetName string `json:"assetName" v:"required" dc:"资产名称"`
SkuID int64 `json:"skuId,omitempty" dc:"SKU ID"`
SkuName string `json:"skuName,omitempty" dc:"SKU名称"`
SpecValues map[string]interface{} `json:"specValues,omitempty" dc:"规格值"`
ImageURL string `json:"imageUrl" dc:"资产图片URL"`
Type knapsackConsts.KnapsackAssetType `json:"type" v:"required" dc:"资产类型"`
StockDetailID int64 `json:"stockDetailId,omitempty" dc:"库存明细ID明细模式"`
BatchID int64 `json:"batchId,omitempty" dc:"批次ID批次模式"`
BatchNo string `json:"batchNo,omitempty" dc:"批次号(批次模式)"`
StockMode int `json:"stockMode" v:"required" dc:"库存管理模式1-明细模式2-批次模式"`
ExpireAt *int64 `json:"expireAt,omitempty" dc:"过期时间(时间戳)"`
PhysicalAssetConfig *config.PhysicalKnapsackConfig `json:"physicalAssetConfig,omitempty" dc:"实物资产配置"`
ServiceAssetConfig *config.ServiceKnapsackConfig `json:"serviceAssetConfig,omitempty" dc:"服务资产配置"`
VirtualAssetConfig *config.VirtualKnapsackConfig `json:"virtualAssetConfig,omitempty" dc:"虚拟资产配置"`
}
// GetKnapsackReq 获取背包项请求
type GetKnapsackReq struct {
g.Meta `path:"/getKnapsack" method:"get" tags:"背包管理" summary:"获取背包项" dc:"获取背包项详情"`
Id int64 `json:"id" v:"required" dc:"背包项ID"`
}
// UpdateKnapsackReq 更新背包项请求(内部使用)
type UpdateKnapsackReq struct {
Id int64 `json:"id" v:"required" dc:"背包项ID"`
Status *knapsackConsts.KnapsackStatus `json:"status,omitempty" dc:"状态"`
UsedAt *int64 `json:"usedAt,omitempty" dc:"使用时间"`
Updater string `json:"updater,omitempty" dc:"更新者"`
}
// DeleteKnapsackReq 删除背包项请求
type DeleteKnapsackReq struct {
g.Meta `path:"/deleteKnapsack" method:"delete" tags:"背包管理" summary:"删除背包项" dc:"删除背包项"`
Id int64 `json:"id" v:"required" dc:"背包项ID"`
}
// ListKnapsackReq 获取背包列表请求
type ListKnapsackReq struct {
g.Meta `path:"/listKnapsack" method:"get" tags:"背包管理" summary:"获取背包列表" dc:"分页查询背包列表,支持多条件筛选"`
*beans.Page
UserID int64 `json:"userId,omitempty" dc:"用户ID"`
Status *int `json:"status,omitempty" dc:"状态"`
Type string `json:"type,omitempty" dc:"资产类型"`
Keyword string `json:"keyword,omitempty" dc:"关键词搜索"`
}
// UseKnapsackReq 使用背包项请求
type UseKnapsackReq struct {
g.Meta `path:"/useKnapsack" method:"post" tags:"背包管理" summary:"使用背包项" dc:"手动使用背包中的物品"`
ID int64 `json:"id" v:"required" dc:"背包项ID"`
OperatorID int64 `json:"operatorId" v:"required" dc:"操作者ID"`
OperatorName string `json:"operatorName" v:"required" dc:"操作者名称"`
Reason string `json:"reason,omitempty" dc:"使用原因"`
}
// ListToMarketReq 上架背包项请求
type ListToMarketReq struct {
g.Meta `path:"/listToMarket" method:"post" tags:"背包管理" summary:"上架到市场" dc:"将背包项上架到市场"`
ID int64 `json:"id" v:"required" dc:"背包项ID"`
OperatorID int64 `json:"operatorId" v:"required" dc:"操作者ID"`
OperatorName string `json:"operatorName" v:"required" dc:"操作者名称"`
}
// UnlistKnapsackReq 下架背包项请求
type UnlistKnapsackReq struct {
g.Meta `path:"/unlistKnapsack" method:"post" tags:"背包管理" summary:"从市场下架" dc:"将背包项从市场下架"`
ID int64 `json:"id" v:"required" dc:"背包项ID"`
OperatorID int64 `json:"operatorId" v:"required" dc:"操作者ID"`
OperatorName string `json:"operatorName" v:"required" dc:"操作者名称"`
}
// VerifyKnapsackReq 核销背包项请求
type VerifyKnapsackReq struct {
g.Meta `path:"/verifyKnapsack" method:"post" tags:"背包管理" summary:"核销背包项" dc:"核销背包中的物品"`
ID int64 `json:"id" v:"required" dc:"背包项ID"`
OperatorID int64 `json:"operatorId" v:"required" dc:"操作者ID"`
OperatorName string `json:"operatorName" v:"required" dc:"操作者名称"`
VerifyLocation string `json:"verifyLocation,omitempty" dc:"核销位置"`
VerifyDevice string `json:"verifyDevice,omitempty" dc:"核销设备"`
}
// GenerateQRCodeReq 生成二维码请求
type GenerateQRCodeReq struct {
g.Meta `path:"/generateQRCode" method:"post" tags:"背包管理" summary:"生成核销二维码" dc:"生成用于核销的二维码"`
ID int64 `json:"id" v:"required" dc:"背包项ID"`
ExpireDuration int64 `json:"expireDuration" v:"required" dc:"过期时长(秒)"`
}
// ========== 响应 ==========
// CreateKnapsackRes 创建背包项响应
type CreateKnapsackRes struct {
ID int64 `json:"id" dc:"背包项ID"`
}
// GetKnapsackRes 获取背包项响应
type GetKnapsackRes struct {
*KnapsackItem
}
// ListKnapsackRes 获取背包列表响应
type ListKnapsackRes struct {
List []*KnapsackItem `json:"list" dc:"背包列表"`
Total int `json:"total" dc:"总数"`
}
// UseKnapsackRes 使用背包项响应
type UseKnapsackRes struct {
Success bool `json:"success"`
Message string `json:"message"`
}
// ListToMarketRes 上架背包项响应
type ListToMarketRes struct {
Success bool `json:"success"`
Message string `json:"message"`
}
// UnlistKnapsackRes 下架背包项响应
type UnlistKnapsackRes struct {
Success bool `json:"success"`
Message string `json:"message"`
}
// VerifyKnapsackRes 核销背包项响应
type VerifyKnapsackRes struct {
Success bool `json:"success"`
Message string `json:"message"`
}
// GenerateQRCodeRes 生成二维码响应
type GenerateQRCodeRes struct {
QRCode string `json:"qrCode,omitempty"`
VerifyCode string `json:"verifyCode,omitempty"`
}
// KnapsackItem 背包项视图
type KnapsackItem struct {
ID int64 `json:"id" dc:"背包项ID"`
UserID int64 `json:"userId" dc:"用户ID"`
AssetID int64 `json:"assetId" dc:"资产ID"`
AssetName string `json:"assetName" dc:"资产名称"`
SkuID int64 `json:"skuId,omitempty" dc:"SKU ID"`
SkuName string `json:"skuName,omitempty" dc:"SKU名称"`
ImageURL string `json:"imageUrl" dc:"资产图片URL"`
Type knapsackConsts.KnapsackAssetType `json:"type" dc:"资产类型"`
Status knapsackConsts.KnapsackStatus `json:"status" dc:"状态"`
ExpireAt *int64 `json:"expireAt,omitempty" dc:"过期时间"`
// 库存相关字段
StockDetailID int64 `json:"stockDetailId,omitempty" dc:"库存明细ID"`
BatchID int64 `json:"batchId,omitempty" dc:"批次ID"`
BatchNo string `json:"batchNo,omitempty" dc:"批次号"`
StockMode int `json:"stockMode" dc:"库存管理模式"`
CreatedAt string `json:"createdAt" dc:"创建时间"`
UpdatedAt string `json:"updatedAt" dc:"更新时间"`
}