代码初始化

This commit is contained in:
2026-04-02 10:22:36 +08:00
commit 7394983236
35 changed files with 3014 additions and 0 deletions

View File

@@ -0,0 +1,180 @@
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:"更新时间"`
}

View File

@@ -0,0 +1,158 @@
package dto
import (
marketConsts "shop-user-trade/consts/market"
"gitea.com/red-future/common/beans"
"github.com/gogf/gf/v2/frame/g"
)
// CreateMarketReq 创建市场物品请求
type CreateMarketReq struct {
g.Meta `path:"/createMarket" method:"post" tags:"市场管理" summary:"创建市场物品" dc:"将背包项上架到市场"`
KnapsackID int64 `json:"knapsackId" v:"required" dc:"背包项ID"`
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名称"`
ImageURL string `json:"imageUrl" dc:"资产图片URL"`
Type string `json:"type" v:"required" dc:"资产类型"`
Price int64 `json:"price" v:"required" dc:"售价(分)"`
OriginalPrice int64 `json:"originalPrice,omitempty" dc:"原价(分)"`
Description string `json:"description,omitempty" dc:"描述信息"`
ListExpireAt *int64 `json:"listExpireAt,omitempty" dc:"上架过期时间(时间戳)"`
OperatorID int64 `json:"operatorId" v:"required" dc:"操作者ID"`
OperatorName string `json:"operatorName" 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-批次模式"`
}
// GetMarketReq 获取市场物品请求
type GetMarketReq struct {
g.Meta `path:"/getMarket" method:"get" tags:"市场管理" summary:"获取市场物品" dc:"获取市场物品详情"`
Id int64 `json:"id" v:"required" dc:"市场物品ID"`
}
// UpdateMarketReq 更新市场物品请求(内部使用)
type UpdateMarketReq struct {
Id int64 `json:"id" v:"required" dc:"市场物品ID"`
Price *int64 `json:"price,omitempty" dc:"售价(分)"`
OriginalPrice *int64 `json:"originalPrice,omitempty" dc:"原价(分)"`
Description string `json:"description,omitempty" dc:"描述信息"`
Status *marketConsts.MarketStatus `json:"status,omitempty" dc:"状态"`
ListExpireAt *int64 `json:"listExpireAt,omitempty" dc:"上架过期时间"`
Updater string `json:"updater,omitempty" dc:"更新者"`
}
// DeleteMarketReq 删除市场物品请求
type DeleteMarketReq struct {
g.Meta `path:"/deleteMarket" method:"delete" tags:"市场管理" summary:"删除市场物品" dc:"删除市场物品"`
Id int64 `json:"id" v:"required" dc:"市场物品ID"`
}
// ListMarketReq 获取市场列表请求
type ListMarketReq struct {
g.Meta `path:"/listMarkets" 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:"关键词搜索"`
}
// UnlistMarketReq 下架市场物品请求
type UnlistMarketReq struct {
g.Meta `path:"/unlistMarket" 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:"下架原因"`
}
// UpdatePriceReq 更新价格请求
type UpdatePriceReq struct {
g.Meta `path:"/updatePrice" method:"post" tags:"市场管理" summary:"更新价格" dc:"更新市场物品价格"`
ID int64 `json:"id" v:"required" dc:"市场物品ID"`
Price int64 `json:"price" v:"required" dc:"新价格(分)"`
OperatorID int64 `json:"operatorId" v:"required" dc:"操作者ID"`
OperatorName string `json:"operatorName" v:"required" dc:"操作者名称"`
}
// BuyMarketReq 购买市场物品请求
type BuyMarketReq struct {
g.Meta `path:"/buyMarket" method:"post" tags:"市场管理" summary:"购买市场物品" dc:"购买市场中的物品"`
MarketID int64 `json:"marketId" v:"required" dc:"市场物品ID"`
BuyerID int64 `json:"buyerId" v:"required" dc:"买家ID"`
BuyerName string `json:"buyerName" v:"required" dc:"买家名称"`
}
// ========== 响应 ==========
// CreateMarketRes 创建市场物品响应
type CreateMarketRes struct {
ID int64 `json:"id" dc:"市场物品ID"`
}
// GetMarketRes 获取市场物品响应
type GetMarketRes struct {
*MarketItem
}
// ListMarketRes 获取市场列表响应
type ListMarketRes struct {
List []*MarketItem `json:"list" dc:"市场列表"`
Total int `json:"total" dc:"总数"`
}
// UnlistMarketRes 下架市场物品响应
type UnlistMarketRes struct {
Success bool `json:"success"`
Message string `json:"message"`
}
// UpdatePriceRes 更新价格响应
type UpdatePriceRes struct {
Success bool `json:"success"`
Message string `json:"message"`
}
// BuyMarketRes 购买市场物品响应
type BuyMarketRes struct {
OrderNo string `json:"orderNo"`
}
// MarketItem 市场物品视图
type MarketItem struct {
ID int64 `json:"id" dc:"市场物品ID"`
KnapsackID int64 `json:"knapsackId" 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 string `json:"type" dc:"资产类型"`
Price int64 `json:"price" dc:"售价(分)"`
OriginalPrice int64 `json:"originalPrice" dc:"原价(分)"`
Description string `json:"description" dc:"描述信息"`
Status marketConsts.MarketStatus `json:"status" dc:"状态"`
ListExpireAt *int64 `json:"listExpireAt,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:"更新时间"`
}

View File

@@ -0,0 +1,112 @@
package dto
import (
"github.com/gogf/gf/v2/frame/g"
)
// GetWalletByUserIdReq 根据用户ID获取钱包请求
type GetWalletByUserIdReq struct {
g.Meta `path:"/getWallet" method:"get" tags:"钱包管理" summary:"获取钱包" dc:"根据用户ID获取钱包信息"`
UserId int64 `json:"userId" v:"required|min:1" dc:"用户ID"`
}
// GetWalletByUserIdResp 根据用户ID获取钱包响应
type GetWalletByUserIdResp struct {
Data WalletInfo `json:"data"`
}
// WalletInfo 钱包信息
type WalletInfo struct {
ID int64 `json:"id" dc:"钱包ID"`
UserID int64 `json:"userId" dc:"用户ID"`
Balance int64 `json:"balance" dc:"余额(分)"`
Currency string `json:"currency" dc:"货币类型"`
Status int `json:"status" dc:"状态"`
}
// CreateWalletReq 创建钱包请求
type CreateWalletReq struct {
g.Meta `path:"/createWallet" method:"post" tags:"钱包管理" summary:"创建钱包" dc:"为用户创建钱包"`
UserId int64 `json:"userId" v:"required|min:1" dc:"用户ID"`
Currency string `json:"currency" v:"required" dc:"货币类型"`
}
// CreateWalletResp 创建钱包响应
type CreateWalletResp struct {
Data CreateWalletData `json:"data"`
}
// CreateWalletData 创建钱包数据
type CreateWalletData struct {
WalletID int64 `json:"walletId" dc:"钱包ID"`
}
// UpdateBalanceReq 更新余额请求
type UpdateBalanceReq struct {
g.Meta `path:"/updateBalance" method:"post" tags:"钱包管理" summary:"更新余额" dc:"对钱包余额进行收入/支出/冻结/解冻操作"`
WalletID int64 `json:"walletId" v:"required" dc:"钱包ID"`
Amount int64 `json:"amount" v:"required|min:1" dc:"金额(分)"`
Type string `json:"type" v:"required|in:income,expense,freeze,unfreeze" dc:"操作类型"`
OrderNo string `json:"orderNo" dc:"业务订单号"`
TransactionNo string `json:"transactionNo" dc:"钱包交易流水号"`
Description string `json:"description" dc:"描述"`
ExtraData map[string]interface{} `json:"extraData" dc:"额外数据"`
}
// UpdateBalanceResp 更新余额响应
type UpdateBalanceResp struct {
Success bool `json:"success"`
Message string `json:"message"`
}
// GetWalletLogsReq 获取钱包日志请求
type GetWalletLogsReq struct {
g.Meta `path:"/getWalletLogs" method:"get" tags:"钱包管理" summary:"获取钱包日志" dc:"分页获取钱包操作日志"`
UserId int64 `json:"userId" v:"required|min:1" dc:"用户ID"`
Page int `json:"page" v:"required|min:1" dc:"页码"`
PageSize int `json:"pageSize" v:"required|min:1|max:100" dc:"每页大小"`
}
// GetWalletLogsResp 获取钱包日志响应
type GetWalletLogsResp struct {
Data WalletLogData `json:"data"`
}
// WalletLogData 钱包日志数据
type WalletLogData struct {
Logs []WalletLogInfo `json:"logs"`
Total int `json:"total"`
}
// WalletLogInfo 钱包日志信息
type WalletLogInfo struct {
ID int64 `json:"id"`
OrderNo string `json:"orderNo"`
TransactionNo string `json:"transactionNo"`
Type string `json:"type"`
Amount int64 `json:"amount"`
BalanceBefore int64 `json:"balanceBefore"`
BalanceAfter int64 `json:"balanceAfter"`
Currency string `json:"currency"`
Description string `json:"description"`
CreatedAt string `json:"createdAt"`
}
// CreateWalletLogReq 创建钱包日志请求(内部使用)
type CreateWalletLogReq struct {
UserID int64 `json:"userId"`
WalletID int64 `json:"walletId"`
OrderNo string `json:"orderNo"`
TransactionNo string `json:"transactionNo"`
Type string `json:"type"`
Amount int64 `json:"amount"`
BalanceBefore int64 `json:"balanceBefore"`
BalanceAfter int64 `json:"balanceAfter"`
Currency string `json:"currency"`
Description string `json:"description"`
ExtraData map[string]interface{} `json:"extraData"`
}