From 0a42beac8af9a95917cb986e7c39ea811a6490d2 Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 2 Dec 2019 11:00:57 +0800 Subject: [PATCH] +GetMyOrderCountInfo --- business/model/dao/dao_order.go | 28 +++++++++++++++++++ business/partner/purchase/jx/localjx/order.go | 6 ++++ controllers/jx_order2.go | 23 +++++++++++++++ routers/commentsRouter_controllers.go | 9 ++++++ 4 files changed, 66 insertions(+) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 2d5c62775..300156bdc 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -918,3 +918,31 @@ func GetOrders(db *DaoDB, ids []int64, isIncludeSku, isIncludeFake bool, fromDat } return orders, totalCount, err } + +func GetMyOrderCountInfo(db *DaoDB, userID string, fromDate, toDate time.Time, statuss []int) (countInfo []*model.GoodsOrderCountInfo, err error) { + if utils.IsTimeZero(fromDate) { + return nil, fmt.Errorf("必须指定开始日期") + } + if utils.IsTimeZero(toDate) { + toDate = fromDate + } + + sql := ` + SELECT t1.lock_status, t1.status, COUNT(*) count + FROM goods_order t1 + WHERE t1.user_id = ? AND t1.vendor_id = ? + AND t1.order_created_at >= ? AND t1.order_created_at <= ? + ` + sqlParams := []interface{}{ + userID, + model.VendorIDJX, + fromDate, toDate, + } + if len(statuss) > 0 { + sql += " AND t1.status IN (" + GenQuestionMarks(len(statuss)) + ")" + sqlParams = append(sqlParams, statuss) + } + sql += " GROUP BY 1,2" + err = GetRows(db, &countInfo, sql, sqlParams...) + return countInfo, err +} diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 3bd71af27..7d8527017 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -102,6 +102,7 @@ func init() { func GetMyOrders(ctx *jxcontext.Context, fromDateStr, toDateStr string, params map[string]interface{}, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) { db := dao.GetDB() + params["vendorIDs"] = string(utils.MustMarshal([]int{model.VendorIDJX})) tmpOrderList, totalCount, err := dao.GetOrders(db, nil, false, false, fromDateStr, toDateStr, false, nil, false, ctx.GetUserID(), params, offset, pageSize) if err == nil { pagedInfo = &model.PagedInfo{ @@ -133,6 +134,11 @@ func GetMyOrders(ctx *jxcontext.Context, fromDateStr, toDateStr string, params m return pagedInfo, err } +func GetMyOrderCountInfo(ctx *jxcontext.Context, fromDate, toDate time.Time, statuss []int) (countInfo []*model.GoodsOrderCountInfo, err error) { + countInfo, err = dao.GetMyOrderCountInfo(dao.GetDB(), ctx.GetUserID(), fromDate, toDate, statuss) + return countInfo, err +} + func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, createType int) (outJxOrder *JxOrderInfo, err error) { outJxOrder, deliveryAddress, err := generateOrder(ctx, jxOrder, addressID) if err != nil { diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index 8135d1a02..f42fd25e4 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -2,6 +2,7 @@ package controllers import ( "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/partner/purchase/jx/localjx" "github.com/astaxie/beego" ) @@ -92,3 +93,25 @@ func (c *JxOrderController) GetMyOrders() { return retVal, "", err }) } + +// @Title 查询自己的订单状态数量信息 +// @Description 查询自己的订单状态数量信息 +// @Param token header string true "认证token" +// @Param fromDate query string false "开始日期(包含),格式(2006-01-02),如果订单号为空此项必须要求" +// @Param toDate query string false "结束日期(包含),格式(2006-01-02),如果订单号为空此项必须要求" +// @Param statuss query string false "订单状态列表[1,2,3],缺省不限制" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /GetMyOrderCountInfo [get] +func (c *JxOrderController) GetMyOrderCountInfo() { + c.callGetMyOrderCountInfo(func(params *tJxorderGetMyOrderCountInfoParams) (retVal interface{}, errCode string, err error) { + timeList, err := jxutils.BatchStr2Time(params.FromDate, params.ToDate) + if err == nil { + var statuss []int + if err = jxutils.Strings2Objs(params.Statuss, &statuss); err == nil { + retVal, err = localjx.GetMyOrderCountInfo(params.Ctx, timeList[0], timeList[1], statuss) + } + } + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index ed1770ced..3284b8ce3 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -610,6 +610,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"], + beego.ControllerComments{ + Method: "GetMyOrderCountInfo", + Router: `/GetMyOrderCountInfo`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"], beego.ControllerComments{ Method: "GetMyOrders",