This commit is contained in:
suyl
2021-05-17 10:36:57 +08:00
parent f6c974f73e
commit d1d8bbaeb6
3 changed files with 60 additions and 0 deletions

View File

@@ -280,3 +280,7 @@ func orderMessage(unionOrder *model.UnionOrder) {
func GetMyUnionOrders(ctx *jxcontext.Context, statuss []int, vendorID, offset, pageSize int) (page *model.PagedInfo, err error) {
return dao.GetMyUnionOrders(dao.GetDB(), ctx.GetUserID(), statuss, vendorID, offset, pageSize)
}
func GetUnionOrders(ctx *jxcontext.Context, vendorIDs, statuss []int, beginTime, endTime, keyword string, offset, pageSize int) (page *model.PagedInfo, err error) {
return dao.GetUnionOrdersPage(dao.GetDB(), vendorIDs, statuss, utils.Str2Time(beginTime), utils.Str2Time(endTime), keyword, offset, pageSize)
}

View File

@@ -602,3 +602,53 @@ func GetMyUnionOrders(db *DaoDB, userID string, statuss []int, vendorID, offset,
}
return page, err
}
type GetUnionOrdersPageResult struct {
model.UnionOrder
Name string `json:"name"`
Moble string `json:"moble"`
}
func GetUnionOrdersPage(db *DaoDB, vendorIDs, statuss []int, beginTime, endTime time.Time, keyword string, offset, pageSize int) (page *model.PagedInfo, err error) {
var orders []*GetUnionOrdersPageResult
sql := `
SELECT SQL_CALC_FOUND_ROWS a.*, b.name, b.mobile
FROM union_order a
LEFT JOIN user b ON a.user_id = b.user_id
WHERE 1 = 1
`
sqlParams := []interface{}{}
if len(vendorIDs) > 0 {
sql += ` AND a.vendor_id IN (` + GenQuestionMarks(len(vendorIDs)) + `)`
sqlParams = append(sqlParams, vendorIDs)
}
if len(statuss) > 0 {
sql += ` AND a.status IN (` + GenQuestionMarks(len(statuss)) + `)`
sqlParams = append(sqlParams, statuss)
}
if !utils.IsTimeZero(beginTime) {
sql += ` AND a.order_settle_at > ?`
sqlParams = append(sqlParams, beginTime)
}
if !utils.IsTimeZero(endTime) {
sql += ` AND a.order_settle_at < ?`
sqlParams = append(sqlParams, endTime)
}
if keyword != "" {
keywordLike := "%" + keyword + "%"
sql += ` AND (b.name LIKE ? OR b.mobile LIKE ? OR a.vendor_order_id LIKE ? OR a.goods_name LIKE ? OR a.comment LIKE ?)`
sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike)
}
sql += " LIMIT ? OFFSET ?"
pageSize = jxutils.FormalizePageSize(pageSize)
sqlParams = append(sqlParams, pageSize, offset)
txDB, _ := Begin(db)
defer Commit(db, txDB)
if err = GetRowsTx(txDB, &orders, sql, sqlParams...); err == nil {
page = &model.PagedInfo{
TotalCount: GetLastTotalRowCountTx(txDB),
Data: orders,
}
}
return page, err
}

View File

@@ -2,6 +2,7 @@ package controllers
import (
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/globals/api"
"github.com/astaxie/beego/server/web"
@@ -153,6 +154,11 @@ func (c *UnionController) GetPddBindInfo() {
// @router /GetUnionOrders [get]
func (c *UnionController) GetUnionOrders() {
c.callGetUnionOrders(func(params *tUnionGetUnionOrdersParams) (retVal interface{}, errCode string, err error) {
var vendorIDs []int
var statuss []int
if err = jxutils.Strings2Objs(params.VendorIDs, &vendorIDs, params.Statuss, &statuss); err == nil {
retVal, err = cms.GetUnionOrders(params.Ctx, vendorIDs, statuss, params.BeginTime, params.EndTime, params.Keyword, params.Offset, params.PageSize)
}
return retVal, "", err
})
}