Files
shop-user-trade/model/dto/knapsack/knapsack_dto.go
2026-04-02 10:22:36 +08:00

181 lines
8.0 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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:"更新时间"`
}