From b4eafb711f3b81a87875c0ed2ee6b9f1e7069048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 23 Oct 2020 16:45:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=94=A8=E6=88=B7=E7=9A=84?= =?UTF-8?q?=E4=BA=AC=E4=B8=9C=E5=BF=AB=E9=80=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/job.go | 8 +++ business/model/dao/dao_order.go | 74 +++++++++++++++++++++++++++ controllers/job_controller.go | 18 +++++++ routers/commentsRouter_controllers.go | 63 +++++++++++++++++++++++ 4 files changed, 163 insertions(+) diff --git a/business/jxstore/cms/job.go b/business/jxstore/cms/job.go index 5fe4891cb..c693069f4 100644 --- a/business/jxstore/cms/job.go +++ b/business/jxstore/cms/job.go @@ -595,9 +595,13 @@ func CancelJdDelivery(ctx *jxcontext.Context, vendorWaybillID, reason string) (e ) err = dao.GetEntity(db, &dOrder, "VendorWaybillID") userBill, err := dao.GetUserBill(db, ctx.GetUserID(), "") + dOrders, err := dao.GetDeliveryOrdersNoPage(db, []string{ctx.GetUserID()}, []int{model.OrderStatusCanceled}, DayTimeBegin, DayTimeEnd) if err != nil { return err } + if len(dOrders) > 0 { + return fmt.Errorf("抱歉,您已经在今天取消过京东物流订单!") + } if dOrder.ID == 0 { return fmt.Errorf("未找到该运单!") } @@ -635,3 +639,7 @@ func CancelJdDelivery(ctx *jxcontext.Context, vendorWaybillID, reason string) (e dao.Commit(db) return err } + +func GetJdDelivery(ctx *jxcontext.Context, status int, fromTime, toTime string, pageSize, offset int) (pagedInfo *model.PagedInfo, err error) { + return dao.GetDeliveryOrders(dao.GetDB(), []string{ctx.GetUserID()}, []int{status}, utils.Str2Time(fromTime), utils.Str2Time(toTime), pageSize, offset) +} diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 07a0cc0fc..89732e61e 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -1 +1,75 @@ package dao + +import ( + "time" + + "git.rosy.net.cn/baseapi/utils" + + "git.rosy.net.cn/jx-callback/business/jxutils" + "git.rosy.net.cn/jx-callback/business/model" +) + +func GetDeliveryOrdersNoPage(db *DaoDB, userIDs []string, statuss []int, fromTime, toTime time.Time) (dOrders []*model.DeliveryOrder, err error) { + sql := ` + SELECT * + FROM delivery_order + WHERE 1 = 1 + ` + sqlParams := []interface{}{} + if len(userIDs) > 0 { + sql += ` AND a.user_id IN (` + GenQuestionMarks(len(userIDs)) + `)` + sqlParams = append(sqlParams, userIDs) + } + if len(statuss) > 0 { + sql += ` AND a.status IN (` + GenQuestionMarks(len(statuss)) + `)` + sqlParams = append(sqlParams, statuss) + } + if fromTime != utils.ZeroTimeValue { + sql += ` AND a.created_at >= ?` + sqlParams = append(sqlParams, fromTime) + } + if toTime != utils.ZeroTimeValue { + sql += ` AND a.created_at <= ?` + sqlParams = append(sqlParams, toTime) + } + err = GetRows(db, &dOrders, sql, sqlParams) + return dOrders, err +} + +func GetDeliveryOrders(db *DaoDB, userIDs []string, statuss []int, fromTime, toTime time.Time, pageSize, offset int) (pagedInfo *model.PagedInfo, err error) { + var dOrders []*model.DeliveryOrder + sql := ` + SELECT SQL_CALC_FOUND_ROWS * + FROM delivery_order + WHERE 1 = 1 + ` + sqlParams := []interface{}{} + if len(userIDs) > 0 { + sql += ` AND a.user_id IN (` + GenQuestionMarks(len(userIDs)) + `)` + sqlParams = append(sqlParams, userIDs) + } + if len(statuss) > 0 { + sql += ` AND a.status IN (` + GenQuestionMarks(len(statuss)) + `)` + sqlParams = append(sqlParams, statuss) + } + if fromTime != utils.ZeroTimeValue { + sql += ` AND a.created_at >= ?` + sqlParams = append(sqlParams, fromTime) + } + if toTime != utils.ZeroTimeValue { + sql += ` AND a.created_at <= ?` + sqlParams = append(sqlParams, toTime) + } + sql += " LIMIT ? OFFSET ?" + pageSize = jxutils.FormalizePageSize(pageSize) + sqlParams = append(sqlParams, pageSize, offset) + Begin(db) + defer Commit(db) + if err = GetRows(db, &dOrders, sql, sqlParams...); err == nil { + pagedInfo = &model.PagedInfo{ + TotalCount: GetLastTotalRowCount(db), + Data: dOrders, + } + } + return pagedInfo, err +} diff --git a/controllers/job_controller.go b/controllers/job_controller.go index f12a55cd2..728d2a896 100644 --- a/controllers/job_controller.go +++ b/controllers/job_controller.go @@ -249,3 +249,21 @@ func (c *JobController) CancelJdDelivery() { return retVal, "", err }) } + +// @Title 查询用户的京东快递 +// @Description 查询用户的京东快递 +// @Param token header string true "认证token" +// @Param status query int 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 /GetJdDelivery [get] +func (c *JobController) GetJdDelivery() { + c.callGetJdDelivery(func(params *tJobGetJdDeliveryParams) (retVal interface{}, errCode string, err error) { + retVal, err = cms.GetJdDelivery(params.Ctx, params.Status, params.FromTime, params.ToTime, params.PageSize, params.Offset) + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 18884312c..88a822e2b 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -241,6 +241,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"], + beego.ControllerComments{ + Method: "CancelJdDelivery", + Router: `/CancelJdDelivery`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"], beego.ControllerComments{ Method: "CancelPublishJob", @@ -250,6 +259,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"], + beego.ControllerComments{ + Method: "GetJdDelivery", + Router: `/GetJdDelivery`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"], beego.ControllerComments{ Method: "GetJobCategories", @@ -313,6 +331,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"], + beego.ControllerComments{ + Method: "SendJdDelivery", + Router: `/SendJdDelivery`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"], beego.ControllerComments{ Method: "SubmitJob", @@ -376,6 +403,24 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:User2Controller"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:User2Controller"], + beego.ControllerComments{ + Method: "AddMyDeliveryAddress", + Router: `/AddMyDeliveryAddress`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:User2Controller"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:User2Controller"], + beego.ControllerComments{ + Method: "DeleteMyDeliveryAddress", + Router: `/DeleteMyDeliveryAddress`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:User2Controller"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:User2Controller"], beego.ControllerComments{ Method: "GetBindAuthInfo", @@ -421,6 +466,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:User2Controller"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:User2Controller"], + beego.ControllerComments{ + Method: "QueryMyDeliveryAddress", + Router: `/QueryMyDeliveryAddress`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:User2Controller"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:User2Controller"], beego.ControllerComments{ Method: "RegisterUser", @@ -439,4 +493,13 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:User2Controller"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:User2Controller"], + beego.ControllerComments{ + Method: "UpdateMyDeliveryAddress", + Router: `/UpdateMyDeliveryAddress`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + }