结账第二期
This commit is contained in:
@@ -490,3 +490,115 @@ func (c *OrderManager) GetOrderStatusList(ctx *jxcontext.Context, vendorOrderID
|
||||
}
|
||||
return statusList, nil
|
||||
}
|
||||
|
||||
func (c *OrderManager) GetOrdersFinancial(ctx *jxcontext.Context, fromDateStr, toDateStr string, params map[string]interface{}, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) {
|
||||
globals.SugarLogger.Debugf("GetOrdersFinancial from:%s to:%s", fromDateStr, toDateStr)
|
||||
pageSize = jxutils.FormalizePageSize(pageSize)
|
||||
if offset < 0 {
|
||||
offset = 0
|
||||
}
|
||||
sql := `
|
||||
SELECT SQL_CALC_FOUND_ROWS t1.*,
|
||||
t2.store_name,t2.vendor_store_id,t2.store_id,t2.jx_store_id,t2.status,t2.order_finished_at
|
||||
FROM order_financial t1
|
||||
LEFT JOIN goods_order t2 ON t1.vendor_order_id = t2.vendor_order_id
|
||||
`
|
||||
var (
|
||||
sqlWhere string
|
||||
sqlParams []interface{}
|
||||
)
|
||||
if params["orderID"] != nil {
|
||||
sqlWhere = " WHERE (t1.vendor_order_id = ? OR t1.vendor_order_id2 = ?)"
|
||||
sqlParams = []interface{}{
|
||||
params["orderID"],
|
||||
params["orderID"],
|
||||
}
|
||||
} else {
|
||||
fromDate, err2 := utils.TryStr2Time(fromDateStr)
|
||||
if err = err2; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if toDateStr == "" {
|
||||
toDateStr = fromDateStr
|
||||
}
|
||||
toDate, err2 := utils.TryStr2Time(toDateStr)
|
||||
if err = err2; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
toDate = toDate.Add(24 * time.Hour)
|
||||
|
||||
sqlWhere = `
|
||||
WHERE t2.order_finished_at >= ? AND t2.order_finished_at < ?
|
||||
`
|
||||
sqlParams = []interface{}{
|
||||
fromDate,
|
||||
toDate,
|
||||
}
|
||||
if params["vendorIDs"] != nil {
|
||||
var vendorIDs []int
|
||||
if err = utils.UnmarshalUseNumber([]byte(params["vendorIDs"].(string)), &vendorIDs); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(vendorIDs) > 0 {
|
||||
sqlWhere += " AND t1.vendor_id IN (" + dao.GenQuestionMarks(len(vendorIDs)) + ")"
|
||||
sqlParams = append(sqlParams, vendorIDs)
|
||||
}
|
||||
}
|
||||
if params["storeIDs"] != nil {
|
||||
var storeIDs []int
|
||||
if err = utils.UnmarshalUseNumber([]byte(params["storeIDs"].(string)), &storeIDs); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(storeIDs) > 0 {
|
||||
sqlWhere += " AND IF(t1.vendor_id = ?, t2.store_id, IF(t2.jx_store_id != 0, t2.jx_store_id, t2.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 nil, err
|
||||
}
|
||||
if len(statuss) > 0 {
|
||||
sqlWhere += " AND t2.status IN (" + dao.GenQuestionMarks(len(statuss)) + ")"
|
||||
sqlParams = append(sqlParams, statuss)
|
||||
}
|
||||
}
|
||||
if params["cities"] != nil {
|
||||
var cities []int
|
||||
if err = utils.UnmarshalUseNumber([]byte(params["cities"].(string)), &cities); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(cities) > 0 {
|
||||
sql += "JOIN store st ON t2.store_id = st.id"
|
||||
sqlWhere += " AND st.city_code IN (" + dao.GenQuestionMarks(len(cities)) + ")"
|
||||
sqlParams = append(sqlParams, cities)
|
||||
}
|
||||
}
|
||||
}
|
||||
sql += sqlWhere
|
||||
sql += `
|
||||
ORDER BY t1.delivery_confirm_time DESC
|
||||
LIMIT ? OFFSET ?
|
||||
`
|
||||
sqlParams = append(sqlParams, pageSize, offset)
|
||||
|
||||
var orders []*model.OrderFinancialExt
|
||||
db := dao.GetDB()
|
||||
dao.Begin(db)
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
dao.Rollback(db)
|
||||
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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user