daShangDao_psiServer/models/response/shipping.go
Administrator a2ea0c3a40 1.在这个接口里 /api/product/updateNameAndImages,添加多张图片时,并未覆盖原来的多张图片。(Y)
2.从系统导出的excel数据,在外部对excel某一列进行更改时,新增的要回传到原来的地方;并对改动的地方进行覆盖。
3.销售单管理、出库管理、发货单三个接口里面展示第三方订单编号和快递单号
4.选择多个仓库时,只要选择发货单子就会报错
5.在这个/api/split-account-deduction-log/create接口里,当传参时,如果参数 total_amount 是0,则会报错 {"code":204,"data":{},"msg":"TotalAmount不能为空"} 0是金额数字,不能当空值进行判断(T)
传递参数created_by,没有往数据表里写入
6.商品销毁的同时写入日志,也能通过读取这个日志,还原销毁的商品。传出这个新增的接口
7.新增一个不需要签名认证的分帐扣钱日志列表接口,新增一个返回字段buniness_no,并对这个字段进行模糊查询。
测试接口:/open/split-account-deduction-log/list
8.增加个新接口:首先 调用 /api/sales-order/create 创建销售订单的时候会锁定库存,
现在我需要一个解锁库存的接口,传递参数是订单编号
POST /api/sales-order/unlock-inventory // 解锁销售订单库存
/api/split-account-deduction-log/update /api/sales-order/unlock-inventory 在这两个接口里不需要签名认证
/api/sales-order/unlock-inventory 在这个接口里面返回解锁的所有商品信息
/api/split-account-deduction-log/update  在这个接口里面的status也需要更改,status没有变化
2026-06-24 09:41:12 +08:00

231 lines
10 KiB
Go
Raw 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 response
import (
"psi/models"
)
type ShippingOrderWithInfo struct {
models.ShippingOrder
CustomerName string `gorm:"column:customer_name"`
}
type ShippingOrderItemWithProduct struct {
models.ShippingOrderItem
SalesOrderItemID int64 `gorm:"column:sales_order_item_id"`
ProductID int64 `gorm:"column:product_id"`
ProductName string `gorm:"column:product_name"`
ProductCode string `gorm:"column:product_code"`
CategoryID int64 `gorm:"column:category_id"`
CategoryName string `gorm:"column:category_name"`
LocationID int64 `gorm:"column:location_id"`
LocationName string `gorm:"column:location_name"`
WarehouseName string `gorm:"column:warehouse_name"`
WarehouseCode string `gorm:"column:warehouse_code"`
WarehouseContactPerson string `json:"warehouse_contact_person"`
WarehouseContactPhone string `json:"warehouse_contact_phone"`
WarehouseProvince string `json:"warehouse_province"`
WarehouseCity string `json:"warehouse_city"`
WarehouseDistrict string `json:"warehouse_district"`
WarehouseAddress string `json:"warehouse_address"`
SalesOrderNo string `gorm:"column:sales_order_no"`
OutboundOrderNo string `gorm:"column:outbound_order_no"`
UnitPrice int64 `gorm:"column:unit_price"`
SalesOrderCreatedAt int64 `gorm:"column:sales_order_created_at"`
SalesPersonID string `gorm:"column:sales_person_id"`
AssociationOrderID int64 `gorm:"column:association_order_id"`
AssociationOrderNo string `gorm:"column:association_order_no"`
SoItemCreatedAt int64 `gorm:"column:so_item_created_at"`
ReceiverName string `gorm:"column:receiver_name"`
ReceiverPhone string `gorm:"column:receiver_phone"`
ReceiverAddress string `gorm:"column:receiver_address"`
LogisticsCompany string `gorm:"column:logistics_company"`
LogisticsNo string `gorm:"column:logistics_no"`
}
// ShippingOrderListResponse 发货单列表响应
type ShippingOrderListResponse struct {
List []ShippingOrderItem `json:"list"`
Total int64 `json:"total"`
Page int `json:"page"`
PageSize int `json:"pageSize"`
}
// ShippingOrderItem 发货单项
type ShippingOrderItem struct {
ID int64 `json:"id"`
ShippingNo string `json:"shipping_no"`
CustomerID int64 `json:"customer_id"`
CustomerName string `json:"customer_name"`
Status int8 `json:"status"`
StatusText string `json:"status_text"`
ShippingTime *int64 `json:"shipping_time"`
ExpectedArriveTime *int64 `json:"expected_arrive_time"`
ActualArriveTime *int64 `json:"actual_arrive_time"`
Operator string `json:"operator"`
CreatedAt int64 `json:"created_at"`
UpdatedAt *int64 `json:"updated_at"`
Remark string `json:"remark"`
ShopList []OutboundShopInfo `json:"shop_list"`
AssociationOrderNo string `json:"association_order_no"`
LogisticsNo string `json:"logistics_no"`
}
// ShippingOrderDetailResponse 发货单详情响应
type ShippingOrderDetailResponse struct {
ID int64 `json:"id"`
ShippingNo string `json:"shipping_no"`
CustomerID int64 `json:"customer_id"`
CustomerName string `json:"customer_name"`
Status int8 `json:"status"`
StatusText string `json:"status_text"`
ShippingTime *int64 `json:"shipping_time"`
ExpectedArriveTime *int64 `json:"expected_arrive_time"`
ActualArriveTime *int64 `json:"actual_arrive_time"`
Operator string `json:"operator"`
CreatedAt int64 `json:"created_at"`
UpdatedAt *int64 `json:"updated_at"`
Remark string `json:"remark"`
Items []ShippingOrderDetailItem `json:"items"`
}
// ShippingOrderDetailItem 发货单明细项
type ShippingOrderDetailItem struct {
ID int64 `json:"id"`
ShippingOrderID int64 `json:"shipping_order_id"`
OutboundOrderItemID *int64 `json:"outbound_order_item_id"`
SalesOrderItemID int64 `json:"sales_order_item_id"`
SalesOrderNo string `json:"sales_order_no"`
OutboundOrderNo string `json:"outbound_order_no"`
ProductID int64 `json:"product_id"`
ProductName string `json:"product_name"`
ProductCode string `json:"product_code"`
CategoryID int64 `json:"category_id"`
CategoryName string `json:"category_name"`
LocationID int64 `json:"location_id"`
LocationName string `json:"location_name"`
WarehouseName string `json:"warehouse_name"`
WarehouseCode string `json:"warehouse_code"`
WarehouseContactPerson string `json:"warehouse_contact_person"`
WarehouseContactPhone string `json:"warehouse_contact_phone"`
WarehouseProvince string `json:"warehouse_province"`
WarehouseCity string `json:"warehouse_city"`
WarehouseDistrict string `json:"warehouse_district"`
WarehouseAddress string `json:"warehouse_address"`
Quantity int64 `json:"quantity"`
UnitPrice int64 `json:"unit_price"`
SalesOrderCreatedAt int64 `json:"sales_order_created_at"`
SalesPersonID string `json:"sales_person_id"`
AssociationOrderID int64 `json:"association_order_id"`
AssociationOrderNo string `json:"association_order_no"`
SoItemCreatedAt int64 `json:"so_item_created_at"`
ReceiverName string `json:"receiver_name"`
ReceiverPhone string `json:"receiver_phone"`
ReceiverAddress string `json:"receiver_address"`
LogisticsCompany string `json:"logistics_company"`
LogisticsNo string `json:"logistics_no"`
}
// ConvertShippingOrderToItem 将发货单模型转换为响应项
func ConvertShippingOrderToItem(order models.ShippingOrder, customerName string, shopList []OutboundShopInfo, associationOrderNo string, logisticsNo string) ShippingOrderItem {
return ShippingOrderItem{
ID: order.ID,
ShippingNo: order.ShippingNo,
CustomerID: order.CustomerID,
CustomerName: customerName,
ShopList: shopList,
Status: order.Status,
StatusText: GetShippingOrderStatusText(order.Status),
ShippingTime: order.ShippingTime,
ExpectedArriveTime: order.ExpectedArriveTime,
ActualArriveTime: order.ActualArriveTime,
Operator: order.Operator,
CreatedAt: order.CreatedAt,
UpdatedAt: order.UpdatedAt,
Remark: order.Remark,
AssociationOrderNo: associationOrderNo,
LogisticsNo: logisticsNo,
}
}
// ConvertShippingOrderToDetail 将发货单模型转换为详情响应
func ConvertShippingOrderToDetail(order models.ShippingOrder, customerName string, items []ShippingOrderDetailItem) ShippingOrderDetailResponse {
return ShippingOrderDetailResponse{
ID: order.ID,
ShippingNo: order.ShippingNo,
CustomerID: order.CustomerID,
CustomerName: customerName,
Status: order.Status,
StatusText: GetShippingOrderStatusText(order.Status),
ShippingTime: order.ShippingTime,
ExpectedArriveTime: order.ExpectedArriveTime,
ActualArriveTime: order.ActualArriveTime,
Operator: order.Operator,
CreatedAt: order.CreatedAt,
UpdatedAt: order.UpdatedAt,
Remark: order.Remark,
Items: items,
}
}
// ShippingOrderDetailListItem 发货单详情列表项综合list和detail的所有字段
type ShippingOrderDetailListItem struct {
ID int64 `json:"id"`
ShippingNo string `json:"shipping_no"`
CustomerID int64 `json:"customer_id"`
CustomerName string `json:"customer_name"`
Status int8 `json:"status"`
StatusText string `json:"status_text"`
ShippingTime *int64 `json:"shipping_time"`
ExpectedArriveTime *int64 `json:"expected_arrive_time"`
ActualArriveTime *int64 `json:"actual_arrive_time"`
Operator string `json:"operator"`
CreatedAt int64 `json:"created_at"`
UpdatedAt *int64 `json:"updated_at"`
Remark string `json:"remark"`
ShopList []OutboundShopInfo `json:"shop_list"`
Items []ShippingOrderDetailItem `json:"items"`
}
// ShippingOrderDetailListResponse 发货单详情列表响应
type ShippingOrderDetailListResponse struct {
List []ShippingOrderDetailListItem `json:"list"`
Total int64 `json:"total"`
Page int `json:"page"`
PageSize int `json:"pageSize"`
}
// ConvertShippingOrderToDetailListItem 将发货单模型转换为详情列表项
func ConvertShippingOrderToDetailListItem(order models.ShippingOrder, customerName string, shopList []OutboundShopInfo, items []ShippingOrderDetailItem) ShippingOrderDetailListItem {
return ShippingOrderDetailListItem{
ID: order.ID,
ShippingNo: order.ShippingNo,
CustomerID: order.CustomerID,
CustomerName: customerName,
Status: order.Status,
StatusText: GetShippingOrderStatusText(order.Status),
ShippingTime: order.ShippingTime,
ExpectedArriveTime: order.ExpectedArriveTime,
ActualArriveTime: order.ActualArriveTime,
Operator: order.Operator,
CreatedAt: order.CreatedAt,
UpdatedAt: order.UpdatedAt,
Remark: order.Remark,
ShopList: shopList,
Items: items,
}
}
// GetShippingOrderStatusText 获取发货单状态文本
func GetShippingOrderStatusText(status int8) string {
statusMap := map[int8]string{
1: "待发货",
2: "已发货",
3: "已签收",
4: "已取消",
}
if text, ok := statusMap[status]; ok {
return text
}
return "未知"
}