2.在商品管理下的商品列表接口里 分别统计:已落位 locatedCount, 未落位 unlocatedCount, 启用中 enabledCount, 已禁用 disabledCount 4个字段并进行返回 3.新增一个接口 对商品名称字段进行修改,对实拍图字段修改,实拍图可以为单图或者多图 4.波次任务列表- 缺少统计信息:分别为今日入库波次数 today_inbound_waves, 昨日入库波次数 ,yesterday_inbound_waves 今日入库数量,today_inbound_qty 昨日入库数量,yesterday_inbound_qty 今日出库数量,today_outbound_qty 昨日出库数量 yesterday_outbound_qty 5.采购单列表- 缺少导出到旺店通功能
254 lines
12 KiB
Go
254 lines
12 KiB
Go
package response
|
||
|
||
import (
|
||
"encoding/json"
|
||
"psi/models"
|
||
)
|
||
|
||
type ProductListResponse struct {
|
||
List []ProductItem `json:"list"`
|
||
Total int64 `json:"total"`
|
||
Page int `json:"page"`
|
||
PageSize int `json:"pageSize"`
|
||
LocatedCount int64 `json:"located_count"` // 已落位商品数
|
||
UnlocatedCount int64 `json:"unlocated_count"` // 未落位商品数
|
||
EnabledCount int64 `json:"enabled_count"` // 启用中商品数
|
||
DisabledCount int64 `json:"disabled_count"` // 已禁用商品数
|
||
}
|
||
|
||
type ProductItem struct {
|
||
ID int64 `json:"id"`
|
||
CategoryID int64 `json:"category_id"`
|
||
CategoryName string `json:"category_name"`
|
||
StandardProductID int64 `json:"standard_product_id"`
|
||
Name string `json:"name"`
|
||
Appearance int64 `json:"appearance"`
|
||
Barcode string `json:"barcode"`
|
||
Price int64 `json:"price"`
|
||
SalePrice int64 `json:"sale_price"`
|
||
LiveImage []string `json:"live_image"`
|
||
IsBatchManaged int8 `json:"is_batch_managed"`
|
||
IsShelfLifeManaged int8 `json:"is_shelf_life_managed"`
|
||
Status int8 `json:"status"`
|
||
WarehouseID int64 `json:"warehouse_id"`
|
||
WarehouseCode string `json:"warehouse_code"`
|
||
WarehouseName string `json:"warehouse_name"`
|
||
LocationID int64 `json:"location_id"`
|
||
LocationCode string `json:"location_code"`
|
||
Quantity int64 `json:"quantity"`
|
||
InboundTime string `json:"inbound_time"`
|
||
CreatedAt int64 `json:"created_at"`
|
||
UpdatedAt int64 `json:"updated_at"`
|
||
ShopList []ShopInfo `json:"shop_list"`
|
||
FirPrice float64 `json:"fir_price"`
|
||
}
|
||
|
||
type ShopInfo struct {
|
||
ShopID string `json:"shop_id"`
|
||
ShopAliasName string `json:"shop_alias_name"`
|
||
ShopType int8 `json:"shop_type"`
|
||
ShopTypeName string `json:"shop_type_name"`
|
||
IsSent bool `json:"is_sent"`
|
||
OutTaskLogID int64 `json:"out_task_log_id"`
|
||
OutTaskID int64 `json:"out_task_id"`
|
||
LogStatus int8 `json:"status"`
|
||
LogMsg string `json:"msg"`
|
||
LogCreatedAt int64 `json:"created_at"`
|
||
}
|
||
|
||
type ProductWithInfo struct {
|
||
models.Product
|
||
CategoryName string `gorm:"column:category_name"`
|
||
WarehouseID int64 `gorm:"column:warehouse_id"`
|
||
WarehouseCode string `gorm:"column:warehouse_code"`
|
||
WarehouseName string `gorm:"column:warehouse_name"`
|
||
LocationID int64 `gorm:"column:location_id"`
|
||
LocationCode string `gorm:"column:location_code"`
|
||
Quantity int64 `gorm:"column:quantity"`
|
||
FirPrice float64 `json:"fir_price"`
|
||
InboundTime string `json:"inbound_time"`
|
||
}
|
||
|
||
// ExportProductResponse 导出商品响应
|
||
type ExportProductResponse struct {
|
||
Total int64 `json:"total"`
|
||
FileName string `json:"file_name,omitempty"`
|
||
FilePath string `json:"file_path,omitempty"`
|
||
}
|
||
|
||
func ConvertProductWithInfoToItem(product ProductWithInfo) ProductItem {
|
||
var liveImage []string
|
||
if len(product.LiveImage) > 0 {
|
||
json.Unmarshal(product.LiveImage, &liveImage)
|
||
}
|
||
|
||
return ProductItem{
|
||
ID: product.ID,
|
||
CategoryID: product.CategoryID,
|
||
CategoryName: product.CategoryName,
|
||
StandardProductID: product.StandardProductID,
|
||
Name: product.Name,
|
||
Appearance: product.Appearance,
|
||
Barcode: product.Barcode,
|
||
Price: product.Price,
|
||
SalePrice: product.SalePrice,
|
||
LiveImage: liveImage,
|
||
IsBatchManaged: product.IsBatchManaged,
|
||
IsShelfLifeManaged: product.IsShelfLifeManaged,
|
||
Status: product.Status,
|
||
WarehouseID: product.WarehouseID,
|
||
WarehouseCode: product.WarehouseCode,
|
||
WarehouseName: product.WarehouseName,
|
||
LocationID: product.LocationID,
|
||
LocationCode: product.LocationCode,
|
||
Quantity: product.Quantity,
|
||
CreatedAt: product.CreatedAt,
|
||
UpdatedAt: product.UpdatedAt,
|
||
InboundTime: product.InboundTime,
|
||
ShopList: []ShopInfo{},
|
||
FirPrice: product.FirPrice,
|
||
}
|
||
}
|
||
|
||
type ProductLogItem struct {
|
||
ID int64 `json:"id"`
|
||
Barcode string `json:"barcode"`
|
||
Md5Data string `json:"md5_data"`
|
||
OldName string `json:"old_name"`
|
||
NewName string `json:"new_name"`
|
||
OldPublisher string `json:"old_publisher"`
|
||
NewPublisher string `json:"new_publisher"`
|
||
OldAuthor string `json:"old_author"`
|
||
NewAuthor string `json:"new_author"`
|
||
OldPublicationTime int64 `json:"old_publication_time"`
|
||
NewPublicationTime int64 `json:"new_publication_time"`
|
||
OldPrice int64 `json:"old_price"`
|
||
NewPrice int64 `json:"new_price"`
|
||
OldBindingLayout string `json:"old_binding_layout"`
|
||
NewBindingLayout string `json:"new_binding_layout"`
|
||
OldPageCount int64 `json:"old_page_count"`
|
||
NewPageCount int64 `json:"new_page_count"`
|
||
OldWordCount int64 `json:"old_word_count"`
|
||
NewWordCount int64 `json:"new_word_count"`
|
||
OldLiveImage []string `json:"old_live_image"`
|
||
NewLiveImage []string `json:"new_live_image"`
|
||
OldIsSuit int8 `json:"old_is_suit"`
|
||
NewIsSuit int8 `json:"new_is_suit"`
|
||
Status int8 `json:"status"`
|
||
CreateBy int64 `json:"create_by"`
|
||
AuditBy int64 `json:"audit_by"`
|
||
CreatedAt int64 `json:"created_at"`
|
||
UpdatedAt int64 `json:"updated_at"`
|
||
}
|
||
|
||
type ProductLogListResponse struct {
|
||
List []ProductLogItem `json:"list"`
|
||
Total int64 `json:"total"`
|
||
Page int `json:"page"`
|
||
PageSize int `json:"pageSize"`
|
||
}
|
||
|
||
// ProductInventoryResponse 商品库存响应
|
||
type ProductInventoryResponse struct {
|
||
Quantity int64 `json:"quantity"` // 总库存数量(type=0时使用)
|
||
Warehouses []ProductInventoryWarehouse `json:"warehouses,omitempty"` // 仓库列表(type=1时使用)
|
||
}
|
||
|
||
// ShopProductDetailResponse 店铺商品详情响应
|
||
type ShopProductDetailResponse struct {
|
||
ID int64 `json:"id"` // 店铺ID
|
||
ShopName string `json:"shop_name"` // 店铺名称
|
||
ShopAliasName string `json:"shop_alias_name"` // 店铺别名
|
||
ShopType int8 `json:"shop_type"` // 店铺类型
|
||
ShopTypeName string `json:"shop_type_name"` // 店铺类型名称
|
||
CreatedAt int64 `json:"created_at"` // 创建时间
|
||
UpdatedAt int64 `json:"updated_at"` // 更新时间
|
||
Products []ProductInShop `json:"products"` // 商品列表
|
||
Total int64 `json:"total"` // 总数
|
||
Page int `json:"page"` // 当前页
|
||
PageSize int `json:"page_size"` // 每页条数
|
||
SuccessCount int64 `json:"success_count"` // 成功数量
|
||
NotSentCount int64 `json:"not_sent_count"` // 任务已创建未发送到店铺数量
|
||
FailedCount int64 `json:"failed_count"` // 发送到店铺失败数量
|
||
}
|
||
|
||
// PushProductToShopResponse 上架到商铺响应
|
||
type PushProductToShopResponse struct {
|
||
UserID int64 `json:"user_id,string"` // 用户ID
|
||
WarehouseID int64 `json:"warehouse_id"` // 仓库ID
|
||
ProductID int64 `json:"product_id"` // 商品ID
|
||
ISBN string `json:"isbn"` // ISBN
|
||
}
|
||
|
||
// ProductInShop 店铺中的商品信息
|
||
type ProductInShop struct {
|
||
ID int64 `json:"id"` // 商品ID
|
||
Name string `json:"name"` // 商品名称
|
||
Barcode string `json:"barcode"` // 条码
|
||
LiveImage []string `json:"live_image"` // 实拍图
|
||
Price int64 `json:"price"` // 价格
|
||
SalePrice int64 `json:"sale_price"` // 售价
|
||
Quantity int64 `json:"quantity"` // 库存数量
|
||
WarehouseName string `json:"warehouse_name"` // 仓库名称
|
||
LocationCode string `json:"location_code"` // 库位编码
|
||
IsBatchManaged int8 `json:"is_batch_managed"` // 是否批次管理
|
||
IsShelfLifeManaged int8 `json:"is_shelf_life_managed"` // 是否效期管理
|
||
OutTaskLogID int64 `json:"out_task_log_id"` // 出库任务日志ID
|
||
StatusInShop int8 `json:"status_in_shop"` // 在店铺中的状态 0未发布 1已发布
|
||
Msg string `json:"msg"` // 消息
|
||
WaveNo string `json:"wave_no"` // 波次编号
|
||
WaveTaskNo string `json:"wave_task_no"` // 波次任务编号
|
||
OutTaskNo int64 `json:"out_task_no"` // 出库任务编号
|
||
SalesOrderNo string `json:"sales_order_no"` // 销售单编号
|
||
ShippingNo string `json:"shipping_no"` // 发货单编号
|
||
CreatedAt int64 `json:"created_at"` // 创建时间
|
||
UpdatedAt int64 `json:"updated_at"` // 更新时间
|
||
}
|
||
|
||
// ProductInventoryWarehouse 商品库存仓库信息
|
||
type ProductInventoryWarehouse struct {
|
||
WarehouseID int64 `json:"warehouse_id"` // 仓库ID
|
||
WarehouseName string `json:"warehouse_name"` // 仓库名称
|
||
WarehouseCode string `json:"warehouse_code"` // 仓库编码
|
||
ProductName string `json:"product_name"` // 商品名称
|
||
ISBN string `json:"isbn"` // ISBN/条码
|
||
Appearance int64 `json:"appearance"` // 品相
|
||
TotalQuantity int64 `json:"total_quantity"` // 该仓库下该商品的总库存
|
||
}
|
||
|
||
// ProductFullInfoResponse 商品完整信息响应
|
||
type ProductFullInfoResponse struct {
|
||
ID int64 `json:"id"` // 商品ID
|
||
CategoryID int64 `json:"category_id"` // 分类ID
|
||
CategoryName string `json:"category_name"` // 分类名称
|
||
StandardProductID int64 `json:"standard_product_id"` // 标准商品ID
|
||
Name string `json:"name"` // 商品名称
|
||
Appearance int64 `json:"appearance"` // 外观/品相
|
||
Barcode string `json:"barcode"` // 条码
|
||
Price int64 `json:"price"` // 价格(分)
|
||
SalePrice int64 `json:"sale_price"` // 售价(分)
|
||
Cost int64 `json:"cost"` // 运费(分)
|
||
Stock int64 `json:"stock"` // 库存数量
|
||
LiveImage []string `json:"live_image"` // 实拍图
|
||
IsBatchManaged int8 `json:"is_batch_managed"` // 是否批次管理
|
||
IsShelfLifeManaged int8 `json:"is_shelf_life_managed"` // 是否保质期管理
|
||
Status int8 `json:"status"` // 状态
|
||
CreatedAt int64 `json:"created_at"` // 创建时间
|
||
UpdatedAt int64 `json:"updated_at"` // 更新时间
|
||
TotalStock int64 `json:"total_stock"` // 总库存数量
|
||
Inventories []ProductInventoryDetail `json:"inventories"` // 库存详情列表
|
||
ShopList []ShopInfo `json:"shop_list"` // 店铺信息列表
|
||
}
|
||
|
||
// ProductInventoryDetail 库存详情
|
||
type ProductInventoryDetail struct {
|
||
WarehouseID int64 `json:"warehouse_id"` // 仓库ID
|
||
WarehouseName string `json:"warehouse_name"` // 仓库名称
|
||
WarehouseCode string `json:"warehouse_code"` // 仓库编码
|
||
LocationID int64 `json:"location_id"` // 库位ID
|
||
LocationCode string `json:"location_code"` // 库位编码
|
||
LocationName string `json:"location_name"` // 库位名称
|
||
Quantity int64 `json:"quantity"` // 库存数量
|
||
InboundTime string `json:"inbound_time"` // 入库时间
|
||
}
|