+ GetAfsOrders
+ GetAfsOrderSkuInfo
This commit is contained in:
@@ -648,3 +648,125 @@ func (c *OrderManager) GetStoresOrderSaleInfo(ctx *jxcontext.Context, storeIDLis
|
||||
err = dao.GetRows(dao.GetDB(), &saleInfoList, sql, sqlParams...)
|
||||
return saleInfoList, err
|
||||
}
|
||||
|
||||
func (c *OrderManager) GetAfsOrders(ctx *jxcontext.Context, keyword, afsOrderID, vendorOrderID string, vendorIDList, appealTypeList, storeIDList, statusList []int, fromTime, toTime time.Time, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) {
|
||||
globals.SugarLogger.Debugf("GetAfsOrders")
|
||||
|
||||
pageSize = jxutils.FormalizePageSize(pageSize)
|
||||
if offset < 0 {
|
||||
offset = 0
|
||||
}
|
||||
sql := `
|
||||
SELECT SQL_CALC_FOUND_ROWS t1.*
|
||||
FROM afs_order t1
|
||||
`
|
||||
var (
|
||||
sqlWhere string
|
||||
sqlParams []interface{}
|
||||
)
|
||||
// 如果搜索关键字可能为订单或售后单号,则当成订单或售后单查询
|
||||
if keyword != "" {
|
||||
if jxutils.GetPossibleVendorIDFromAfsOrderID(keyword) > model.VendorIDUnknown && afsOrderID == "" {
|
||||
afsOrderID = keyword
|
||||
keyword = ""
|
||||
} else if jxutils.GetPossibleVendorIDFromVendorOrderID(keyword) > model.VendorIDUnknown && vendorOrderID == "" {
|
||||
vendorOrderID = keyword
|
||||
keyword = ""
|
||||
}
|
||||
}
|
||||
if vendorOrderID != "" || afsOrderID != "" {
|
||||
if vendorOrderID != "" {
|
||||
sqlWhere = " WHERE (t1.vendor_order_id = ? OR t1.vendor_order_id2 = ?)"
|
||||
sqlParams = []interface{}{
|
||||
vendorOrderID,
|
||||
vendorOrderID,
|
||||
}
|
||||
} else {
|
||||
sqlWhere = " WHERE (t1.afs_order_id = ?)"
|
||||
sqlParams = []interface{}{
|
||||
afsOrderID,
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if toTime.Sub(fromTime) > 24*time.Hour*60 {
|
||||
return nil, fmt.Errorf("GetAfsOrders查询时间不能超过60天")
|
||||
}
|
||||
sqlWhere = `
|
||||
WHERE t1.afs_created_at >= ? AND t1.afs_created_at <= ?
|
||||
`
|
||||
sqlParams = []interface{}{
|
||||
fromTime,
|
||||
toTime,
|
||||
}
|
||||
if keyword != "" {
|
||||
keywordLike := "%" + keyword + "%"
|
||||
sqlWhere += `
|
||||
AND (t1.vendor_order_id2 LIKE ? OR t1.vendor_order_id LIKE ? OR t1.afs_order_id LIKE ?
|
||||
OR t1.vendor_store_id LIKE ? OR t1.reason_desc LIKE ?
|
||||
`
|
||||
sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike)
|
||||
if keywordInt64 := utils.Str2Int64WithDefault(keyword, 0); keywordInt64 > 0 {
|
||||
sqlWhere += " OR t1.store_id = ? OR t1.jx_store_id = ?"
|
||||
sqlParams = append(sqlParams, keywordInt64, keywordInt64)
|
||||
}
|
||||
sqlWhere += ")"
|
||||
}
|
||||
if len(storeIDList) > 0 {
|
||||
sqlWhere += " AND IF(t1.jx_store_id != 0, t1.jx_store_id, t1.store_id) IN (" + dao.GenQuestionMarks(len(storeIDList)) + ")"
|
||||
sqlParams = append(sqlParams, storeIDList)
|
||||
}
|
||||
if len(statusList) > 0 {
|
||||
sqlWhere += " AND t1.status IN (" + dao.GenQuestionMarks(len(statusList)) + ")"
|
||||
sqlParams = append(sqlParams, statusList)
|
||||
}
|
||||
if len(appealTypeList) > 0 {
|
||||
sqlWhere += " AND t1.appeal_type IN (" + dao.GenQuestionMarks(len(appealTypeList)) + ")"
|
||||
sqlParams = append(sqlParams, appealTypeList)
|
||||
}
|
||||
}
|
||||
if len(vendorIDList) > 0 {
|
||||
sqlWhere += " AND t1.vendor_id IN (" + dao.GenQuestionMarks(len(vendorIDList)) + ")"
|
||||
sqlParams = append(sqlParams, vendorIDList)
|
||||
}
|
||||
|
||||
sql += sqlWhere
|
||||
sql += `
|
||||
ORDER BY t1.afs_created_at DESC
|
||||
LIMIT ? OFFSET ?
|
||||
`
|
||||
sqlParams = append(sqlParams, pageSize, offset)
|
||||
|
||||
var orders []*model.AfsOrder
|
||||
db := dao.GetDB()
|
||||
dao.Begin(db)
|
||||
defer func() {
|
||||
if r := recover(); r != nil || err != nil {
|
||||
dao.Rollback(db)
|
||||
if r != nil {
|
||||
panic(r)
|
||||
}
|
||||
}
|
||||
}()
|
||||
if err = dao.GetRows(db, &orders, sql, sqlParams...); err == nil {
|
||||
pagedInfo = &model.PagedInfo{
|
||||
TotalCount: dao.GetLastTotalRowCount(db),
|
||||
Data: orders,
|
||||
}
|
||||
dao.Commit(db)
|
||||
}
|
||||
return pagedInfo, err
|
||||
}
|
||||
|
||||
func (c *OrderManager) GetAfsOrderSkuInfo(ctx *jxcontext.Context, afsOrderID string, vendorID int) (skus []*model.OrderSkuFinancial, err error) {
|
||||
sql := `
|
||||
SELECT t1.*
|
||||
FROM order_sku_financial t1
|
||||
WHERE t1.afs_order_id = ? AND t1.vendor_id = ?
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
afsOrderID,
|
||||
vendorID,
|
||||
}
|
||||
err = dao.GetRows(dao.GetDB(), &skus, sql, sqlParams...)
|
||||
return skus, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user