From 8b1eda705c775244461e713febb39a19a768b208 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 16 Sep 2020 14:32:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E9=97=A8=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 62 ++++++++++++++++++++++++++- business/model/dao/store.go | 54 +++++++++++++++++++++-- business/model/store.go | 1 + controllers/cms_store.go | 46 ++++++++++++++++++++ routers/commentsRouter_controllers.go | 18 ++++++++ 5 files changed, 176 insertions(+), 5 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 7d0602a50..09ecc522b 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -3564,7 +3564,7 @@ func CreateStoreAudit(ctx *jxcontext.Context, storeAudit *model.StoreAudit) (err var ( db = dao.GetDB() ) - storeAudits, err := dao.GetStoreAudit(db, model.StoreAuditStatusOnline, storeAudit.UserID, "") + storeAudits, err := dao.GetStoreAudit(db, []int{model.StoreAuditStatusOnline}, storeAudit.UserID, "") if len(storeAudits) > 0 { return fmt.Errorf("您已申请过入驻,请不要重复申请!") } @@ -3572,3 +3572,63 @@ func CreateStoreAudit(ctx *jxcontext.Context, storeAudit *model.StoreAudit) (err dao.CreateEntity(db, storeAudit) return err } + +func GetStoreAudit(ctx *jxcontext.Context, statuss []int, keyword, applyTimeStart, applyTimeEnd, auditTimeStart, auditTimeEnd string, pageSize, offset int) (pagedInfo *model.PagedInfo, err error) { + var ( + applyTimeStartp, applyTimeEndp, auditTimeStartp, auditTimeEndp time.Time + db = dao.GetDB() + ) + if applyTimeStart != "" { + applyTimeStartp = utils.Str2Time(applyTimeStart) + } + if applyTimeEnd != "" { + applyTimeEndp = utils.Str2Time(applyTimeEnd) + } + if auditTimeStart != "" { + auditTimeStartp = utils.Str2Time(auditTimeStart) + } + if auditTimeEnd != "" { + auditTimeEndp = utils.Str2Time(auditTimeEnd) + } + pagedInfo, err = dao.GetStoreAuditPage(db, statuss, keyword, applyTimeStartp, applyTimeEndp, auditTimeStartp, auditTimeEndp, pageSize, offset) + return pagedInfo, err +} + +func StoreAudit(ctx *jxcontext.Context, storeAudits []*model.StoreAudit, status int) (err error) { + db := dao.GetDB() + if status == model.StoreAuditStatusOnline { + return fmt.Errorf("审核标志不正确!") + } + task := tasksch.NewParallelTask("StoreAudit", tasksch.NewParallelConfig().SetParallelCount(5).SetIsContinueWhenError(true), ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + storeAudit := batchItemList[0].(*model.StoreAudit) + storeAudits, err := dao.GetStoreAudit(db, []int{model.StoreAuditStatusOnline}, storeAudit.UserID, "") + if len(storeAudits) == 0 || err != nil { + return retVal, fmt.Errorf("未查询到待审核信息!") + } + if len(storeAudits) > 1 { + return retVal, fmt.Errorf("查询到该用户的待审核信息大于1条!userID: [%s]", storeAudit.UserID) + } + //审核通过 + if status == model.StoreAuditStatusCreated { + storeAudits[0].AuditStatus = model.StoreAuditStatusCreated + //添加门店 + // CreateStore(ctx, storeExt, ctx.GetUserName()) + } else if status == model.StoreAuditStatusRejected { + storeAudits[0].Status = model.StoreAuditStatusRejected + } else { + return retVal, fmt.Errorf("审核标志不正确!") + } + storeAudits[0].LastOperator = ctx.GetUserName() + storeAudits[0].Remark = storeAudit.Remark + _, err = dao.UpdateEntity(db, storeAudits[0], "UserID", "Status", "Remark") + //是否推送app消息 + if err == nil { + + } + return retVal, err + }, storeAudits) + tasksch.HandleTask(task, nil, true).Run() + task.GetID() + return err +} diff --git a/business/model/dao/store.go b/business/model/dao/store.go index 654b3d0c2..86a82e2c5 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -838,7 +838,7 @@ func GetStorePushClient(db *DaoDB, storeID int, cID string) (storePushClient []* return storePushClient, err } -func GetStoreAudit(db *DaoDB, auditStatus int, userID, keyword string) (storeAudit []*model.StoreAudit, err error) { +func GetStoreAudit(db *DaoDB, auditStatuss []int, userID, keyword string) (storeAudit []*model.StoreAudit, err error) { sql := ` SELECT * FROM store_audit @@ -847,9 +847,9 @@ func GetStoreAudit(db *DaoDB, auditStatus int, userID, keyword string) (storeAud sqlParams := []interface{}{ utils.DefaultTimeValue, } - if auditStatus != model.StoreStatusAll { - sql += " AND audit_status = ?" - sqlParams = append(sqlParams, auditStatus) + if len(auditStatuss) > 0 { + sql += " AND audit_status IN (" + GenQuestionMarks(len(auditStatuss)) + ")" + sqlParams = append(sqlParams, auditStatuss) } if userID != "" { sql += " AND user_id = ?" @@ -865,3 +865,49 @@ func GetStoreAudit(db *DaoDB, auditStatus int, userID, keyword string) (storeAud } return storeAudit, err } + +type tStoreAudit struct { + model.StoreAudit + UserName string `json:"userName"` +} + +func GetStoreAuditPage(db *DaoDB, statuss []int, keyword string, applyTimeStart, applyTimeEnd, auditTimeStart, auditTimeEnd time.Time, pageSize, offset int) (pagedInfo *model.PagedInfo, err error) { + var requestList []*tStoreAudit + sql := ` + SELECT SQL_CALC_FOUND_ROWS DISTINCT a.*, b.name user_name + FROM store_audit a + JOIN user b ON b.user_id = a.user_id + WHERE a.deleted_at = ? + ` + sqlParams := []interface{}{ + utils.DefaultTimeValue, + } + if len(statuss) > 0 { + sql += " AND a.audit_status IN (" + GenQuestionMarks(len(statuss)) + ")" + sqlParams = append(sqlParams, statuss) + } + if applyTimeStart != utils.ZeroTimeValue && applyTimeEnd != utils.ZeroTimeValue { + sql += " AND a.created_at BETWEEN ? AND ?" + sqlParams = append(sqlParams, applyTimeStart, applyTimeEnd) + } + if auditTimeStart != utils.ZeroTimeValue && auditTimeEnd != utils.ZeroTimeValue { + sql += " AND a.updated_at BETWEEN ? AND ?" + sqlParams = append(sqlParams, auditTimeStart, auditTimeEnd) + } + if keyword != "" { + sql += " AND (a.user_id LIKE ? OR a.name LIKE ? OR a.tel1 LIKE ? OR a.tel2 LIKE ? OR a.address LIKE ?)" + sqlParams = append(sqlParams, "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%") + } + sql += " ORDER BY a.updated_at LIMIT ? OFFSET ?" + pageSize = jxutils.FormalizePageSize(pageSize) + sqlParams = append(sqlParams, pageSize, offset) + Begin(db) + defer Commit(db) + if err = GetRows(db, &requestList, sql, sqlParams...); err == nil { + return &model.PagedInfo{ + TotalCount: GetLastTotalRowCount(db), + Data: requestList, + }, nil + } + return pagedInfo, err +} diff --git a/business/model/store.go b/business/model/store.go index f5449b942..b995d813e 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -743,6 +743,7 @@ type StoreAudit struct { UserID string `orm:"column(user_id);size(32)" json:"userID"` //谁发起的审核就把谁添加到这个门店里 AuditStatus int `json:"auditStatus"` //0是待审核,1是通过,-1是不通过 + Remark string `orm:"size(255)" json:"remark"` //不通过原因 } func (*StoreAudit) TableUnique() [][]string { diff --git a/controllers/cms_store.go b/controllers/cms_store.go index 866df9dff..1037eb721 100644 --- a/controllers/cms_store.go +++ b/controllers/cms_store.go @@ -857,3 +857,49 @@ func (c *StoreController) CreateStoreAudit() { return retVal, "", err }) } + +// @Title 获取用户申请门店审核 +// @Description 获取用户申请门店审核 +// @Param token header string true "认证token" +// @Param applyTimeStart query string false "申请开始时间" +// @Param applyTimeEnd query string false "申请结束时间" +// @Param auditTimeStart query string false "审核开始时间" +// @Param auditTimeEnd query string false "审核结束时间" +// @Param name query string false "审核人" +// @Param statuss query string false "审核状态" +// @Param keyword query string true "关键字" +// @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 /GetStoreAudit [get] +func (c *StoreController) GetStoreAudit() { + c.callGetStoreAudit(func(params *tStoreGetStoreAuditParams) (retVal interface{}, errCode string, err error) { + var ( + statuss []int + ) + if err = jxutils.Strings2Objs(params.Statuss, &statuss); err != nil { + return retVal, "", err + } + retVal, err = cms.GetStoreAudit(params.Ctx, statuss, params.Keyword, params.ApplyTimeStart, params.ApplyTimeEnd, params.AuditTimeStart, params.AuditTimeEnd, params.PageSize, params.Offset) + return retVal, "", err + }) +} + +// @Title 门店审核 +// @Description 门店审核 +// @Param token header string true "认证token" +// @Param payload fomData string true "json数据,storeaudit对象" +// @Param status formData int false "审核标志,1通过,-1 不通过" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /StoreAudit [post] +func (c *StoreController) StoreAudit() { + c.callStoreAudit(func(params *tStoreStoreAuditParams) (retVal interface{}, errCode string, err error) { + var stores []*model.StoreAudit + if err = utils.UnmarshalUseNumber([]byte(params.Payload), stores); err == nil { + // err = cms.CreateStoreAudit(params.Ctx, store) + } + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 84d5733e3..43e739309 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1881,6 +1881,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"], + beego.ControllerComments{ + Method: "GetStoreAudit", + Router: `/GetStoreAudit`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"], beego.ControllerComments{ Method: "GetStoreCategoryMap", @@ -1998,6 +2007,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"], + beego.ControllerComments{ + Method: "StoreAudit", + Router: `/StoreAudit`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"], beego.ControllerComments{ Method: "SyncJdStore",