- 重构GetOrders与ExportOrders
This commit is contained in:
@@ -218,8 +218,8 @@ func (c *OrderManager) ExportMTWaybills(ctx *jxcontext.Context, fromDateStr, toD
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr string, params map[string]interface{}, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) {
|
func (c *OrderManager) getOrders(ctx *jxcontext.Context, isIncludeSku bool, fromDateStr, toDateStr string, params map[string]interface{}, offset, pageSize int) (orders []*model.GoodsOrderExt, totalCount int, err error) {
|
||||||
globals.SugarLogger.Debugf("GetOrders from:%s to:%s", fromDateStr, toDateStr)
|
globals.SugarLogger.Debugf("getOrders from:%s to:%s", fromDateStr, toDateStr)
|
||||||
|
|
||||||
pageSize = jxutils.FormalizePageSize(pageSize)
|
pageSize = jxutils.FormalizePageSize(pageSize)
|
||||||
if offset < 0 {
|
if offset < 0 {
|
||||||
@@ -228,10 +228,18 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr
|
|||||||
sql := `
|
sql := `
|
||||||
SELECT SQL_CALC_FOUND_ROWS t1.*,
|
SELECT SQL_CALC_FOUND_ROWS t1.*,
|
||||||
t2.status waybill_status, t2.courier_name, t2.courier_mobile,
|
t2.status waybill_status, t2.courier_name, t2.courier_mobile,
|
||||||
t2.actual_fee, t2.desired_fee, t2.waybill_created_at, t2.waybill_finished_at
|
t2.actual_fee, t2.desired_fee, t2.waybill_created_at, t2.waybill_finished_at`
|
||||||
|
if isIncludeSku {
|
||||||
|
sql += `,
|
||||||
|
t3.sku_id, t3.count sku_count2, t3.shop_price sku_shop_price, t3.sale_price sku_sale_price`
|
||||||
|
}
|
||||||
|
sql += `
|
||||||
FROM goods_order t1
|
FROM goods_order t1
|
||||||
LEFT JOIN waybill t2 ON t1.vendor_waybill_id = t2.vendor_waybill_id AND t1.waybill_vendor_id = t2.waybill_vendor_id
|
LEFT JOIN waybill t2 ON t1.vendor_waybill_id = t2.vendor_waybill_id AND t1.waybill_vendor_id = t2.waybill_vendor_id`
|
||||||
`
|
if isIncludeSku {
|
||||||
|
sql += `
|
||||||
|
JOIN order_sku t3 ON t3.vendor_order_id = t1.vendor_order_id AND t3.vendor_id = t1.vendor_id`
|
||||||
|
}
|
||||||
var (
|
var (
|
||||||
sqlWhere string
|
sqlWhere string
|
||||||
sqlParams []interface{}
|
sqlParams []interface{}
|
||||||
@@ -255,14 +263,14 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr
|
|||||||
} else {
|
} else {
|
||||||
fromDate, err2 := utils.TryStr2Time(fromDateStr)
|
fromDate, err2 := utils.TryStr2Time(fromDateStr)
|
||||||
if err = err2; err != nil {
|
if err = err2; err != nil {
|
||||||
return nil, err
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
if toDateStr == "" {
|
if toDateStr == "" {
|
||||||
toDateStr = fromDateStr
|
toDateStr = fromDateStr
|
||||||
}
|
}
|
||||||
toDate, err2 := utils.TryStr2Time(toDateStr)
|
toDate, err2 := utils.TryStr2Time(toDateStr)
|
||||||
if err = err2; err != nil {
|
if err = err2; err != nil {
|
||||||
return nil, err
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
toDate = toDate.Add(24 * time.Hour)
|
toDate = toDate.Add(24 * time.Hour)
|
||||||
|
|
||||||
@@ -277,7 +285,7 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr
|
|||||||
keyword := params["keyword"].(string)
|
keyword := params["keyword"].(string)
|
||||||
keywordLike := "%" + keyword + "%"
|
keywordLike := "%" + keyword + "%"
|
||||||
sqlWhere += `
|
sqlWhere += `
|
||||||
AND (t1.store_name LIKE ? OR t1.vendor_order_id LIKE ? OR t1.vendor_store_id LIKE ?
|
AND (t1.store_name LIKE ? OR t1.vendor_order_id LIKE ? OR t1.vendor_store_id LIKE ?
|
||||||
OR t1.consignee_name LIKE ? OR t1.consignee_mobile LIKE ? OR t1.consignee_mobile2 LIKE ? OR t1.consignee_address LIKE ?
|
OR t1.consignee_name LIKE ? OR t1.consignee_mobile LIKE ? OR t1.consignee_mobile2 LIKE ? OR t1.consignee_address LIKE ?
|
||||||
OR t2.vendor_waybill_id LIKE ? OR t2.courier_name LIKE ? OR t2.courier_mobile LIKE ?
|
OR t2.vendor_waybill_id LIKE ? OR t2.courier_name LIKE ? OR t2.courier_mobile LIKE ?
|
||||||
`
|
`
|
||||||
@@ -291,7 +299,7 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr
|
|||||||
if params["waybillVendorIDs"] != nil {
|
if params["waybillVendorIDs"] != nil {
|
||||||
var waybillVendorIDs []int
|
var waybillVendorIDs []int
|
||||||
if err = utils.UnmarshalUseNumber([]byte(params["waybillVendorIDs"].(string)), &waybillVendorIDs); err != nil {
|
if err = utils.UnmarshalUseNumber([]byte(params["waybillVendorIDs"].(string)), &waybillVendorIDs); err != nil {
|
||||||
return nil, err
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
if len(waybillVendorIDs) > 0 {
|
if len(waybillVendorIDs) > 0 {
|
||||||
sqlWhere += " AND t1.waybill_vendor_id IN (" + dao.GenQuestionMarks(len(waybillVendorIDs)) + ")"
|
sqlWhere += " AND t1.waybill_vendor_id IN (" + dao.GenQuestionMarks(len(waybillVendorIDs)) + ")"
|
||||||
@@ -301,7 +309,7 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr
|
|||||||
if params["storeIDs"] != nil {
|
if params["storeIDs"] != nil {
|
||||||
var storeIDs []int
|
var storeIDs []int
|
||||||
if err = utils.UnmarshalUseNumber([]byte(params["storeIDs"].(string)), &storeIDs); err != nil {
|
if err = utils.UnmarshalUseNumber([]byte(params["storeIDs"].(string)), &storeIDs); err != nil {
|
||||||
return nil, err
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
if len(storeIDs) > 0 {
|
if len(storeIDs) > 0 {
|
||||||
sqlWhere += " AND IF(t1.vendor_id = ?, t1.store_id, IF(t1.jx_store_id != 0, t1.jx_store_id, t1.store_id) ) IN (" + dao.GenQuestionMarks(len(storeIDs)) + ")"
|
sqlWhere += " AND IF(t1.vendor_id = ?, t1.store_id, IF(t1.jx_store_id != 0, t1.jx_store_id, t1.store_id) ) IN (" + dao.GenQuestionMarks(len(storeIDs)) + ")"
|
||||||
@@ -311,7 +319,7 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr
|
|||||||
if params["statuss"] != nil {
|
if params["statuss"] != nil {
|
||||||
var statuss []int
|
var statuss []int
|
||||||
if err = utils.UnmarshalUseNumber([]byte(params["statuss"].(string)), &statuss); err != nil {
|
if err = utils.UnmarshalUseNumber([]byte(params["statuss"].(string)), &statuss); err != nil {
|
||||||
return nil, err
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
if len(statuss) > 0 {
|
if len(statuss) > 0 {
|
||||||
sqlWhere += " AND t1.status IN (" + dao.GenQuestionMarks(len(statuss)) + ")"
|
sqlWhere += " AND t1.status IN (" + dao.GenQuestionMarks(len(statuss)) + ")"
|
||||||
@@ -321,7 +329,7 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr
|
|||||||
if params["lockStatuss"] != nil {
|
if params["lockStatuss"] != nil {
|
||||||
var lockStatuss []int
|
var lockStatuss []int
|
||||||
if err = utils.UnmarshalUseNumber([]byte(params["lockStatuss"].(string)), &lockStatuss); err != nil {
|
if err = utils.UnmarshalUseNumber([]byte(params["lockStatuss"].(string)), &lockStatuss); err != nil {
|
||||||
return nil, err
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
if len(lockStatuss) > 0 {
|
if len(lockStatuss) > 0 {
|
||||||
sqlWhere += " AND t1.lock_status IN (" + dao.GenQuestionMarks(len(lockStatuss)) + ")"
|
sqlWhere += " AND t1.lock_status IN (" + dao.GenQuestionMarks(len(lockStatuss)) + ")"
|
||||||
@@ -331,7 +339,7 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr
|
|||||||
if params["cities"] != nil {
|
if params["cities"] != nil {
|
||||||
var cities []int
|
var cities []int
|
||||||
if err = utils.UnmarshalUseNumber([]byte(params["cities"].(string)), &cities); err != nil {
|
if err = utils.UnmarshalUseNumber([]byte(params["cities"].(string)), &cities); err != nil {
|
||||||
return nil, err
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
if len(cities) > 0 {
|
if len(cities) > 0 {
|
||||||
sql += " JOIN store st ON t1.store_id = st.id"
|
sql += " JOIN store st ON t1.store_id = st.id"
|
||||||
@@ -343,7 +351,7 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr
|
|||||||
if params["vendorIDs"] != nil {
|
if params["vendorIDs"] != nil {
|
||||||
var vendorIDs []int
|
var vendorIDs []int
|
||||||
if err = utils.UnmarshalUseNumber([]byte(params["vendorIDs"].(string)), &vendorIDs); err != nil {
|
if err = utils.UnmarshalUseNumber([]byte(params["vendorIDs"].(string)), &vendorIDs); err != nil {
|
||||||
return nil, err
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
if len(vendorIDs) > 0 {
|
if len(vendorIDs) > 0 {
|
||||||
sqlWhere += " AND t1.vendor_id IN (" + dao.GenQuestionMarks(len(vendorIDs)) + ")"
|
sqlWhere += " AND t1.vendor_id IN (" + dao.GenQuestionMarks(len(vendorIDs)) + ")"
|
||||||
@@ -351,13 +359,16 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
sql += sqlWhere
|
sql += sqlWhere
|
||||||
sql += `
|
if isIncludeSku {
|
||||||
ORDER BY t1.order_created_at DESC
|
sql += `
|
||||||
LIMIT ? OFFSET ?
|
ORDER BY t1.id`
|
||||||
`
|
} else {
|
||||||
sqlParams = append(sqlParams, pageSize, offset)
|
sql += `
|
||||||
|
ORDER BY t1.order_created_at DESC
|
||||||
|
LIMIT ? OFFSET ?`
|
||||||
|
sqlParams = append(sqlParams, pageSize, offset)
|
||||||
|
}
|
||||||
|
|
||||||
var orders []*model.GoodsOrderExt
|
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
dao.Begin(db)
|
dao.Begin(db)
|
||||||
defer func() {
|
defer func() {
|
||||||
@@ -367,160 +378,36 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
if err = dao.GetRows(db, &orders, sql, sqlParams...); err == nil {
|
if err = dao.GetRows(db, &orders, sql, sqlParams...); err == nil {
|
||||||
|
totalCount = dao.GetLastTotalRowCount(db)
|
||||||
|
}
|
||||||
|
dao.Commit(db)
|
||||||
|
return orders, totalCount, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr string, params map[string]interface{}, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) {
|
||||||
|
globals.SugarLogger.Debugf("GetOrders from:%s to:%s", fromDateStr, toDateStr)
|
||||||
|
orders, totalCount, err := c.getOrders(ctx, false, fromDateStr, toDateStr, params, offset, pageSize)
|
||||||
|
if err == nil {
|
||||||
pagedInfo = &model.PagedInfo{
|
pagedInfo = &model.PagedInfo{
|
||||||
TotalCount: dao.GetLastTotalRowCount(db),
|
TotalCount: totalCount,
|
||||||
Data: orders,
|
Data: orders,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dao.Commit(db)
|
|
||||||
return pagedInfo, err
|
return pagedInfo, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateStr string, params map[string]interface{}) (hint string, err error) {
|
func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateStr string, mapParams map[string]interface{}) (hint string, err error) {
|
||||||
globals.SugarLogger.Debugf("ExportOrders from:%s to:%s", fromDateStr, toDateStr)
|
globals.SugarLogger.Debugf("ExportOrders from:%s to:%s", fromDateStr, toDateStr)
|
||||||
sql := `
|
|
||||||
SELECT t1.*,
|
|
||||||
t2.status waybill_status, t2.courier_name, t2.courier_mobile,
|
|
||||||
t2.actual_fee, t2.desired_fee, t2.waybill_created_at, t2.waybill_finished_at,
|
|
||||||
t3.sku_id, t3.count sku_count2, t3.shop_price sku_shop_price, t3.sale_price sku_sale_price
|
|
||||||
FROM goods_order t1
|
|
||||||
LEFT JOIN waybill t2 ON t1.vendor_waybill_id = t2.vendor_waybill_id AND t1.waybill_vendor_id = t2.waybill_vendor_id
|
|
||||||
JOIN order_sku t3 ON t3.vendor_order_id = t1.vendor_order_id AND t3.vendor_id = t1.vendor_id
|
|
||||||
`
|
|
||||||
var (
|
var (
|
||||||
sqlWhere string
|
orders, orders2 []*model.GoodsOrderExt
|
||||||
sqlParams []interface{}
|
order *model.GoodsOrderExt
|
||||||
)
|
|
||||||
// 如果搜索关键字可能为订单号,则当成订单号查询
|
|
||||||
if params["keyword"] != nil {
|
|
||||||
if jxutils.GetPossibleVendorIDFromVendorOrderID(params["keyword"].(string)) > model.VendorIDUnknown {
|
|
||||||
params["vendorOrderID"] = params["keyword"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if params["orderID"] != nil || params["vendorOrderID"] != nil {
|
|
||||||
sqlWhere = " WHERE (t1.vendor_order_id = ? OR t1.vendor_order_id2 = ?)"
|
|
||||||
vendorOrderID := params["vendorOrderID"]
|
|
||||||
if vendorOrderID == nil {
|
|
||||||
vendorOrderID = params["orderID"]
|
|
||||||
}
|
|
||||||
sqlParams = []interface{}{
|
|
||||||
vendorOrderID,
|
|
||||||
vendorOrderID,
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
fromDate, err2 := utils.TryStr2Time(fromDateStr)
|
|
||||||
if err = err2; err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
if toDateStr == "" {
|
|
||||||
toDateStr = fromDateStr
|
|
||||||
}
|
|
||||||
toDate, err2 := utils.TryStr2Time(toDateStr)
|
|
||||||
if err = err2; err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
toDate = toDate.Add(24 * time.Hour)
|
|
||||||
|
|
||||||
sqlWhere = `
|
|
||||||
WHERE t1.order_created_at >= ? AND t1.order_created_at < ?
|
|
||||||
`
|
|
||||||
sqlParams = []interface{}{
|
|
||||||
fromDate,
|
|
||||||
toDate,
|
|
||||||
}
|
|
||||||
if params["keyword"] != nil {
|
|
||||||
keyword := params["keyword"].(string)
|
|
||||||
keywordLike := "%" + keyword + "%"
|
|
||||||
sqlWhere += `
|
|
||||||
AND (t1.store_name LIKE ? OR t1.vendor_order_id LIKE ? OR t1.vendor_store_id LIKE ?
|
|
||||||
OR t1.consignee_name LIKE ? OR t1.consignee_mobile LIKE ? OR t1.consignee_mobile2 LIKE ? OR t1.consignee_address LIKE ?
|
|
||||||
OR t2.vendor_waybill_id LIKE ? OR t2.courier_name LIKE ? OR t2.courier_mobile LIKE ?
|
|
||||||
`
|
|
||||||
sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike)
|
|
||||||
if keywordInt64, err2 := strconv.ParseInt(keyword, 10, 64); err2 == nil {
|
|
||||||
sqlWhere += " OR t1.store_id = ? OR t1.jx_store_id = ?"
|
|
||||||
sqlParams = append(sqlParams, keywordInt64, keywordInt64)
|
|
||||||
}
|
|
||||||
sqlWhere += ")"
|
|
||||||
}
|
|
||||||
if params["waybillVendorIDs"] != nil {
|
|
||||||
var waybillVendorIDs []int
|
|
||||||
if err = utils.UnmarshalUseNumber([]byte(params["waybillVendorIDs"].(string)), &waybillVendorIDs); err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
if len(waybillVendorIDs) > 0 {
|
|
||||||
sqlWhere += " AND t1.waybill_vendor_id IN (" + dao.GenQuestionMarks(len(waybillVendorIDs)) + ")"
|
|
||||||
sqlParams = append(sqlParams, waybillVendorIDs)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if params["storeIDs"] != nil {
|
|
||||||
var storeIDs []int
|
|
||||||
if err = utils.UnmarshalUseNumber([]byte(params["storeIDs"].(string)), &storeIDs); err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
if len(storeIDs) > 0 {
|
|
||||||
sqlWhere += " AND IF(t1.vendor_id = ?, t1.store_id, IF(t1.jx_store_id != 0, t1.jx_store_id, t1.store_id) ) IN (" + dao.GenQuestionMarks(len(storeIDs)) + ")"
|
|
||||||
sqlParams = append(sqlParams, model.VendorIDWSC, storeIDs)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if params["statuss"] != nil {
|
|
||||||
var statuss []int
|
|
||||||
if err = utils.UnmarshalUseNumber([]byte(params["statuss"].(string)), &statuss); err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
if len(statuss) > 0 {
|
|
||||||
sqlWhere += " AND t1.status IN (" + dao.GenQuestionMarks(len(statuss)) + ")"
|
|
||||||
sqlParams = append(sqlParams, statuss)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if params["lockStatuss"] != nil {
|
|
||||||
var lockStatuss []int
|
|
||||||
if err = utils.UnmarshalUseNumber([]byte(params["lockStatuss"].(string)), &lockStatuss); err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
if len(lockStatuss) > 0 {
|
|
||||||
sqlWhere += " AND t1.lock_status IN (" + dao.GenQuestionMarks(len(lockStatuss)) + ")"
|
|
||||||
sqlParams = append(sqlParams, lockStatuss)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if params["cities"] != nil {
|
|
||||||
var cities []int
|
|
||||||
if err = utils.UnmarshalUseNumber([]byte(params["cities"].(string)), &cities); err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
if len(cities) > 0 {
|
|
||||||
sql += " JOIN store st ON t1.store_id = st.id"
|
|
||||||
sqlWhere += " AND st.city_code IN (" + dao.GenQuestionMarks(len(cities)) + ")"
|
|
||||||
sqlParams = append(sqlParams, cities)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if params["vendorIDs"] != nil {
|
|
||||||
var vendorIDs []int
|
|
||||||
if err = utils.UnmarshalUseNumber([]byte(params["vendorIDs"].(string)), &vendorIDs); err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
if len(vendorIDs) > 0 {
|
|
||||||
sqlWhere += " AND t1.vendor_id IN (" + dao.GenQuestionMarks(len(vendorIDs)) + ")"
|
|
||||||
sqlParams = append(sqlParams, vendorIDs)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
sql += sqlWhere
|
|
||||||
sql += `
|
|
||||||
ORDER BY t1.id DESC
|
|
||||||
`
|
|
||||||
|
|
||||||
var (
|
|
||||||
orders, orders2 []*model.GoodsOrderExtAndSku
|
|
||||||
order *model.GoodsOrderExtAndSku
|
|
||||||
excelBin []byte
|
excelBin []byte
|
||||||
)
|
)
|
||||||
task := tasksch.NewSeqTask("导出订单SKU信息", ctx,
|
task := tasksch.NewSeqTask("导出订单SKU信息", ctx,
|
||||||
func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
||||||
switch step {
|
switch step {
|
||||||
case 0:
|
case 0:
|
||||||
db := dao.GetDB()
|
orders, _, err = c.getOrders(ctx, true, fromDateStr, toDateStr, mapParams, 0, -1)
|
||||||
err = dao.GetRows(db, &orders, sql, sqlParams...)
|
|
||||||
case 1:
|
case 1:
|
||||||
for _, v := range orders {
|
for _, v := range orders {
|
||||||
skuStr := strings.Join([]string{
|
skuStr := strings.Join([]string{
|
||||||
|
|||||||
@@ -22,17 +22,12 @@ type GoodsOrderExt struct {
|
|||||||
DesiredFee int64 `json:"desiredFee"` // 运单总费用
|
DesiredFee int64 `json:"desiredFee"` // 运单总费用
|
||||||
WaybillCreatedAt time.Time `orm:"type(datetime);index" json:"waybillCreatedAt"`
|
WaybillCreatedAt time.Time `orm:"type(datetime);index" json:"waybillCreatedAt"`
|
||||||
WaybillFinishedAt time.Time `orm:"type(datetime)" json:"waybillFinishedAt"`
|
WaybillFinishedAt time.Time `orm:"type(datetime)" json:"waybillFinishedAt"`
|
||||||
}
|
|
||||||
|
|
||||||
type GoodsOrderExtAndSku struct {
|
SkuID int `orm:"column(sku_id)" json:"skuID,omitempty"`
|
||||||
GoodsOrderExt
|
SkuShopPrice int `json:"skuShopPrice,omitempty"`
|
||||||
|
SkuSalePrice int `json:"skuSalePrice,omitempty"`
|
||||||
SkuID int `orm:"column(sku_id)" json:"skuID"`
|
SkuCount2 int `json:"skuCount2,omitempty"`
|
||||||
SkuShopPrice int `json:"skuShopPrice"`
|
SkuInfo string `json:"skuInfo,omitempty"`
|
||||||
SkuSalePrice int `json:"skuSalePrice"`
|
|
||||||
SkuCount2 int `json:"skuCount2"`
|
|
||||||
|
|
||||||
SkuInfo string `json:"skuInfo"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type OrderSkuExt struct {
|
type OrderSkuExt struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user