+ 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
|
||||
}
|
||||
|
||||
@@ -129,6 +129,19 @@ func GetPossibleVendorIDFromVendorOrderID(vendorOrderID string) (vendorID int) {
|
||||
return vendorID
|
||||
}
|
||||
|
||||
func GetPossibleVendorIDFromAfsOrderID(afsOrderID string) (vendorID int) {
|
||||
vendorID = model.VendorIDUnknown
|
||||
if afsOrderIDInt64 := utils.Str2Int64WithDefault(afsOrderID, 0); afsOrderIDInt64 > 0 {
|
||||
orderIDLen := len(afsOrderID)
|
||||
if orderIDLen == len("22586438") {
|
||||
vendorID = model.VendorIDJD
|
||||
} else if orderIDLen == len("579557034") {
|
||||
vendorID = model.VendorIDEBAI
|
||||
}
|
||||
}
|
||||
return vendorID
|
||||
}
|
||||
|
||||
func ComposeUniversalOrderID(orderID string, vendorID int) string {
|
||||
// return fmt.Sprintf("%s|%d", orderID, vendorID)
|
||||
return orderID // 当前用长度就能区分,先不加上vendorID
|
||||
|
||||
@@ -284,6 +284,54 @@ func (c *OrderController) GetOrders() {
|
||||
})
|
||||
}
|
||||
|
||||
// @Title 查询售后单
|
||||
// @Description 查询售后单
|
||||
// @Param token header string true "认证token"
|
||||
// @Param afsOrderID query string false "售后单号,如果此项不为空,忽略其它所有查询条件"
|
||||
// @Param vendorOrderID query string false "订单号,如果此项不为空,忽略其它所有查询条件"
|
||||
// @Param vendorIDs query string false "订单所属厂商列表[1,2,3],缺省不限制"
|
||||
// @Param appealTypes query string false "售后处理s方式列表"
|
||||
// @Param storeIDs query string false "京西门店ID列表[1,2,3],缺省不限制"
|
||||
// @Param statuss query string false "订单状态列表[1,2,3],缺省不限制"
|
||||
// @Param keyword query string false "查询关键字"
|
||||
// @Param fromTime query string false "开始时间,如果订单号为空此项必须要求"
|
||||
// @Param toTime query string false "结束时间,如果订单号为空此项必须要求"
|
||||
// @Param offset query int false "结果起始序号(以0开始,缺省为0)"
|
||||
// @Param pageSize query int false "结果页大小(缺省为50,-1表示全部)"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /GetAfsOrders [get]
|
||||
func (c *OrderController) GetAfsOrders() {
|
||||
c.callGetAfsOrders(func(params *tOrderGetAfsOrdersParams) (retVal interface{}, errCode string, err error) {
|
||||
timeList, err := jxutils.BatchStr2Time(params.FromTime, params.ToTime)
|
||||
if err == nil {
|
||||
var vendorIDList, appealTypeList, storeIDList, statusList []int
|
||||
if err = jxutils.Strings2Objs(params.VendorIDs, &vendorIDList, params.AppealTypes, &appealTypeList,
|
||||
params.StoreIDs, &storeIDList, params.Statuss, &statusList); err == nil {
|
||||
retVal, err = orderman.FixedOrderManager.GetAfsOrders(params.Ctx, params.Keyword, params.AfsOrderID,
|
||||
params.VendorOrderID, vendorIDList, appealTypeList, storeIDList, statusList, timeList[0], timeList[1],
|
||||
params.Offset, params.PageSize)
|
||||
}
|
||||
}
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
// @Title 得到售后单SKU信息
|
||||
// @Description 得到售后单SKU信息
|
||||
// @Param token header string true "认证token"
|
||||
// @Param afsOrderID query string true "售后单ID"
|
||||
// @Param vendorID query int true "售后单所属的厂商ID"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /GetAfsOrderSkuInfo [get]
|
||||
func (c *OrderController) GetAfsOrderSkuInfo() {
|
||||
c.callGetAfsOrderSkuInfo(func(params *tOrderGetAfsOrderSkuInfoParams) (retVal interface{}, errCode string, err error) {
|
||||
retVal, err = orderman.FixedOrderManager.GetAfsOrderSkuInfo(params.Ctx, params.AfsOrderID, params.VendorID)
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
// @Title 查询运单
|
||||
// @Description 查询运单
|
||||
// @Param token header string true "认证token"
|
||||
|
||||
@@ -628,6 +628,24 @@ func init() {
|
||||
Filters: nil,
|
||||
Params: nil})
|
||||
|
||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"],
|
||||
beego.ControllerComments{
|
||||
Method: "GetAfsOrderSkuInfo",
|
||||
Router: `/GetAfsOrderSkuInfo`,
|
||||
AllowHTTPMethods: []string{"get"},
|
||||
MethodParams: param.Make(),
|
||||
Filters: nil,
|
||||
Params: nil})
|
||||
|
||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"],
|
||||
beego.ControllerComments{
|
||||
Method: "GetAfsOrders",
|
||||
Router: `/GetAfsOrders`,
|
||||
AllowHTTPMethods: []string{"get"},
|
||||
MethodParams: param.Make(),
|
||||
Filters: nil,
|
||||
Params: nil})
|
||||
|
||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"],
|
||||
beego.ControllerComments{
|
||||
Method: "GetOrderInfo",
|
||||
|
||||
Reference in New Issue
Block a user