+ GetAfsOrders

+ GetAfsOrderSkuInfo
This commit is contained in:
gazebo
2019-05-15 14:55:02 +08:00
parent ec6ee2620c
commit 5c436326bf
4 changed files with 201 additions and 0 deletions

View File

@@ -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
}