From 88d965962adb789dea893054319932ae6562f9fa Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 10 Jul 2019 10:03:26 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=88=A0=E9=99=A4GetActVendorInfo=EF=BC=8C?= =?UTF-8?q?=E5=9C=A8QueryActs=E8=BF=94=E5=9B=9E=E7=BB=93=E6=9E=9C=E4=B8=AD?= =?UTF-8?q?=E5=8C=85=E5=90=AB=E5=B9=B3=E5=8F=B0=E7=9B=B8=E5=85=B3=E4=BF=A1?= =?UTF-8?q?=E6=81=AF`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/act/act.go | 34 ------------- business/model/dao/act.go | 72 +++++++++++++++++++++++---- controllers/act.go | 14 ------ routers/commentsRouter_controllers.go | 9 ---- 4 files changed, 61 insertions(+), 68 deletions(-) diff --git a/business/jxstore/act/act.go b/business/jxstore/act/act.go index 07ee7e2fb..9c68a2e6b 100644 --- a/business/jxstore/act/act.go +++ b/business/jxstore/act/act.go @@ -37,17 +37,6 @@ type ActDetail struct { model.Act2 } -type ActMapPureInfo struct { - VendorID int `orm:"column(vendor_id)" json:"vendorID"` - VendorActID string `orm:"column(vendor_act_id);size(48)" json:"vendorActID"` - SyncStatus int `orm:"default(2)" json:"syncStatus"` -} - -type ActVendorInfo struct { - model.Act - VendorList []*ActMapPureInfo `json:"vendorList"` -} - type tPreCreateActVendorInfo struct { VendorID int @@ -505,29 +494,6 @@ func QueryActs(ctx *jxcontext.Context, actID int, offset, pageSize int, keyword return dao.QueryActs(dao.GetDB(), actID, offset, pageSize, keyword, vendorID, statusList, actTypeList, storeID, skuID, cityCode, beginAt, endAt, createdAtFrom, createdAtTo) } -func GetActVendorInfo(ctx *jxcontext.Context, actID int) (actVendorInfo *ActVendorInfo, err error) { - db := dao.GetDB() - actMap, err := dao.GetActVendorInfo(db, actID, nil) - if err != nil { - return nil, err - } - if len(actMap) == 0 { - return nil, fmt.Errorf("不能找到活动:%d", actID) - } - actVendorInfo = &ActVendorInfo{} - for vendorID, v := range actMap { - if actVendorInfo.ID == 0 { - actVendorInfo.Act = v.Act - } - actVendorInfo.VendorList = append(actVendorInfo.VendorList, &ActMapPureInfo{ - VendorID: vendorID, - SyncStatus: v.SyncStatus, - VendorActID: v.VendorActID, - }) - } - return actVendorInfo, err -} - func GetActStoreSkuInfo(ctx *jxcontext.Context, actID int, vendorIDs []int) (actStoreSkuList []*model.ActStoreSku2, err error) { db := dao.GetDB() actStoreSkuMap, err := dao.GetActStoreSkuVendorInfo(db, actID, vendorIDs, nil, nil) diff --git a/business/model/dao/act.go b/business/model/dao/act.go index eb4b47297..93d2b473b 100644 --- a/business/model/dao/act.go +++ b/business/model/dao/act.go @@ -10,9 +10,27 @@ import ( "git.rosy.net.cn/jx-callback/business/model" ) +type ActMapPureInfo struct { + VendorID int `orm:"column(vendor_id)" json:"vendorID"` + VendorActID string `orm:"column(vendor_act_id);size(48)" json:"vendorActID"` + SyncStatus int `orm:"default(2)" json:"syncStatus"` + Remark string `orm:"column(map_remark)" json:"remark"` +} + +type ActVendorInfo struct { + model.Act + VendorList []*ActMapPureInfo `json:"vendorList"` +} + +type tActAndMap struct { + model.Act + MapID int `orm:"column(map_id)" json:"-"` // 内部使用,不暴露 + ActMapPureInfo +} + type PagedActListInfo struct { - TotalCount int `json:"totalCount"` - Data []*model.Act `json:"data"` + TotalCount int `json:"totalCount"` + Data []*ActVendorInfo `json:"data"` } func GetActVendorInfo(db *DaoDB, actID int, vendorIDs []int) (actMap map[int]*model.Act2, err error) { @@ -122,7 +140,7 @@ func GetActStoreSkuVendorInfo(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs func QueryActs(db *DaoDB, actID int, offset, pageSize int, keyword string, vendorID int, statusList []int, actTypeList []int, storeID, skuID, cityCode int, beginAt, endAt, createdAtFrom, createdAtTo time.Time) (pagedInfo *PagedActListInfo, err error) { sql := ` SELECT SQL_CALC_FOUND_ROWS - t1.* + t1.id FROM act t1 WHERE 1 = 1 ` @@ -192,9 +210,11 @@ func QueryActs(db *DaoDB, actID int, offset, pageSize int, keyword string, vendo sqlParams = append(sqlParams, createdAtTo) } sql += ` - ORDER by t1.id - LIMIT ? OFFSET ?` + ORDER BY 1 + LIMIT ? OFFSET ? + ` sqlParams = append(sqlParams, FormalizePageSize(pageSize), FormalizePageOffset(offset)) + var idList []int pagedInfo = &PagedActListInfo{} Begin(db) @@ -204,13 +224,43 @@ func QueryActs(db *DaoDB, actID int, offset, pageSize int, keyword string, vendo panic(r) } }() - err = GetRows(db, &pagedInfo.Data, sql, sqlParams...) - if err == nil { - pagedInfo.TotalCount = GetLastTotalRowCount(db) - Commit(db) - } else { + if err = GetRows(db, &idList, sql, sqlParams...); err != nil || len(idList) == 0 { Rollback(db) - pagedInfo = nil + return nil, err + } + pagedInfo.TotalCount = GetLastTotalRowCount(db) + Commit(db) + + sql = ` + SELECT + t1.*, + t2.id map_id, t2.vendor_id, t2.vendor_act_id, t2.sync_status, t2.remark map_remark + FROM act t1 + LEFT JOIN act_map t2 ON t2.act_id = t1.id AND t2.deleted_at = ? + WHERE t1.id IN (` + GenQuestionMarks(len(idList)) + `) + ORDER BY t1.id, t2.vendor_id + ` + sqlParams = []interface{}{ + utils.DefaultTimeValue, + idList, + } + var actList []*tActAndMap + if err = GetRows(db, &actList, sql, sqlParams...); err != nil || len(idList) == 0 { + return nil, err + } + actMap := make(map[int]*ActVendorInfo) + for _, v := range actList { + tmpAct := actMap[v.ID] + if tmpAct == nil { + tmpAct = &ActVendorInfo{ + Act: v.Act, + } + actMap[v.ID] = tmpAct + pagedInfo.Data = append(pagedInfo.Data, tmpAct) + } + if v.MapID > 0 { + tmpAct.VendorList = append(tmpAct.VendorList, &v.ActMapPureInfo) + } } return pagedInfo, err } diff --git a/controllers/act.go b/controllers/act.go index 4a6ed32f7..46d1c9412 100644 --- a/controllers/act.go +++ b/controllers/act.go @@ -163,20 +163,6 @@ func (c *ActController) CancelAct() { }) } -// @Title 得到活动平台信息 -// @Description 得到活动平台信息 -// @Param token header string true "认证token" -// @Param actID query int true "活动id" -// @Success 200 {object} controllers.CallResult -// @Failure 200 {object} controllers.CallResult -// @router /GetActVendorInfo [get] -func (c *ActController) GetActVendorInfo() { - c.callGetActVendorInfo(func(params *tActGetActVendorInfoParams) (retVal interface{}, errCode string, err error) { - retVal, err = act.GetActVendorInfo(params.Ctx, params.ActID) - return retVal, "", err - }) -} - // @Title 得到活动门店商品信息 // @Description 得到活动门店商品信息 // @Param token header string true "认证token" diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 00489ab53..192506af4 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -34,15 +34,6 @@ func init() { Filters: nil, Params: nil}) - beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:ActController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:ActController"], - beego.ControllerComments{ - Method: "GetActVendorInfo", - Router: `/GetActVendorInfo`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:ActController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:ActController"], beego.ControllerComments{ Method: "PreCreateAct",