From 801850f1f7b980b2db9d4090bdce722d2805e644 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Nov 2020 10:51:34 +0800 Subject: [PATCH] getuser --- business/jxstore/cms/user2.go | 4 ++-- business/model/dao/dao_user.go | 31 +++++++++++++++++++++++++++ business/model/user.go | 2 -- routers/commentsRouter_controllers.go | 9 ++++++++ 4 files changed, 42 insertions(+), 4 deletions(-) diff --git a/business/jxstore/cms/user2.go b/business/jxstore/cms/user2.go index b5480ada5..8341740b2 100644 --- a/business/jxstore/cms/user2.go +++ b/business/jxstore/cms/user2.go @@ -284,8 +284,8 @@ func GetUsers(ctx *jxcontext.Context, userType int, keyword string, userIDs []st return pagedInfo, err } -func GetUser(ctx *jxcontext.Context, userID string) (user *model.User, err error) { - return user, err +func GetUser(ctx *jxcontext.Context, userID string) (user *dao.GetUserResult, err error) { + return dao.GetUser(dao.GetDB(), userID) } func checkUserType(userID string, userType int8) (err error) { diff --git a/business/model/dao/dao_user.go b/business/model/dao/dao_user.go index 4c9d2bfae..f1b7e5015 100644 --- a/business/model/dao/dao_user.go +++ b/business/model/dao/dao_user.go @@ -111,6 +111,37 @@ func GetUsers(db *DaoDB, userType int, keyword string, userIDs, userID2s, mobile } type GetUserResult struct { + model.User + AcceptOrderCount int `json:"acceptOrderCount"` + FinishedOrderCount int `json:"finishedOrderCount"` +} + +func GetUser(db *DaoDB, userID string) (user *GetUserResult, err error) { + sqlParams := []interface{}{} + sql := ` + SELECT + t1.*, IF(t2.accept_order_count is NULL, 0, t2.accept_order_count) accept_order_count, IF(t3.finished_order_count is NULL, 0, t3.finished_order_count) finished_order_count + FROM user t1 + LEFT JOIN (SELECT user_id, COUNT(user_id) accept_order_count FROM job_order` + if userID != "" { + sql += " WHERE user_id = ?" + sqlParams = append(sqlParams, userID) + } + sql += ` GROUP BY 1)t2 ON t2.user_id = t1.user_id + LEFT JOIN (SELECT user_id, COUNT(user_id) finished_order_count FROM job_order WHERE 1 = 1 ` + if userID != "" { + sql += " WHERE user_id = ?" + sqlParams = append(sqlParams, userID) + } + sql += ` AND status = ? GROUP BY 1)t3 ON t3.user_id = t1.user_id + WHERE t1.status = 1 AND t1.deleted_at = ?` + sqlParams = append(sqlParams, model.JobOrderStatusFinish, utils.DefaultTimeValue) + if userID != "" { + sql += " WHERE t1.user_id = ?" + sqlParams = append(sqlParams, userID) + } + err = GetRow(db, &user, sql, sqlParams...) + return user, err } func DeleteUsers(db *DaoDB, userIDs []string) (num int64, err error) { diff --git a/business/model/user.go b/business/model/user.go index d1482345f..65583d4d2 100644 --- a/business/model/user.go +++ b/business/model/user.go @@ -62,8 +62,6 @@ type User struct { // Profit int `json:"profit"` // ProfitSum int `json:"profitSum"` // Arrears int `json:"arrears"` - AcceptOrderCount int `orm:"-" json:"acceptOrderCount"` - FinishedOrderCount int `orm:"-" json:"finishedOrderCount"` } func (*User) TableUnique() [][]string { diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index a055e6f6d..dc912e633 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -511,6 +511,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: "GetUser", + Router: `/GetUser`, + 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: "GetUsers",