diff --git a/business/jxstore/act/act.go b/business/jxstore/act/act.go index 9096ccacb..4c517d561 100644 --- a/business/jxstore/act/act.go +++ b/business/jxstore/act/act.go @@ -2113,3 +2113,11 @@ func GetActMtwmVendorSku(ctx *jxcontext.Context, storeID int, keyword string, ac func DeleteActStoreSkuVendor(ctx *jxcontext.Context, db *dao.DaoDB, actStoreSkuParam []*ActStoreSkuParam) (err error) { return fmt.Errorf("暂不支持直接取消平台活动,开发中……") } + +func GetActEbaiVendor(ctx *jxcontext.Context, storeIDs, skuIDs []int, keyword, beginAt, endAt string, actType, offset, pageSize int) (page *model.PagedInfo, err error) { + return dao.GetActEbaiVendorPage(dao.GetDB(), storeIDs, skuIDs, keyword, utils.Str2Time(beginAt), utils.Str2Time(endAt), actType, offset, pageSize) +} + +func GetActEbaiVendorSku(ctx *jxcontext.Context, actID, keyword string, offset, pageSize int) (page *model.PagedInfo, err error) { + return dao.GetActEbaiVendorSkuPage(dao.GetDB(), actID, keyword, offset, pageSize) +} diff --git a/business/model/dao/act.go b/business/model/dao/act.go index cec01920f..66be830cd 100644 --- a/business/model/dao/act.go +++ b/business/model/dao/act.go @@ -800,3 +800,91 @@ func GetActMtwmVendorSkuPage(db *DaoDB, storeID int, keyword string, actType, of Commit(db, txDB) return page, err } + +func GetActEbaiVendorPage(db *DaoDB, storeIDs, skuIDs []int, keyword string, beginAt, endAt time.Time, actType, offset, pageSize int) (page *model.PagedInfo, err error) { + var ( + acts []*model.ActEbaiVendor + ) + sql := ` + SELECT SQL_CALC_FOUND_ROWS a.begin_at, a.end_at, a.act_id, a.act_name + FROM act_ebai_vendor a + LEFT JOIN act_ebai_vendor_sku b ON a.act_id = b.act_id + LEFT JOIN store c ON c.id = b.store_id + ` + sqlParams := []interface{}{} + if len(storeIDs) > 0 { + sql += " AND b.store_id IN (" + GenQuestionMarks(len(storeIDs)) + ")" + sqlParams = append(sqlParams, storeIDs) + } + if len(skuIDs) > 0 { + sql += " AND b.sku_id IN (" + GenQuestionMarks(len(skuIDs)) + ")" + sqlParams = append(sqlParams, skuIDs) + } + if keyword != "" { + sql += " AND (b.store_id = ? OR b.sku_id = ? OR b.sku_name LIKE ? OR a.name LIKE ? OR c.name LIKE ?)" + sqlParams = append(sqlParams, keyword, keyword, "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%") + } + if !utils.IsTimeZero(beginAt) { + sql += " AND a.begin_at <= ?" + sqlParams = append(sqlParams, beginAt) + } + if !utils.IsTimeZero(endAt) { + sql += " AND a.end_at >= ?" + sqlParams = append(sqlParams, endAt) + } + if actType != 0 { + sql += " AND a.act_type = ?" + sqlParams = append(sqlParams, actType) + } + sql += ` + GROUP BY 1, 2, 3, 4 + LIMIT ? OFFSET ? + ` + sqlParams = append(sqlParams, pageSize, offset) + txDB, _ := Begin(db) + defer func() { + if r := recover(); r != nil { + Rollback(db, txDB) + panic(r) + } + }() + if err = GetRowsTx(txDB, &acts, sql, sqlParams...); err == nil { + page.TotalCount = GetLastTotalRowCount2(db, txDB) + page.Data = acts + } + Commit(db, txDB) + return page, err +} + +func GetActEbaiVendorSkuPage(db *DaoDB, actID, keyword string, offset, pageSize int) (page *model.PagedInfo, err error) { + var ( + acts []*model.ActEbaiVendorSku + ) + sql := ` + SELECT SQL_CALC_FOUND_ROWS a.* + FROM act_ebai_vendor_sku a WHERE act_id = ? + LEFT JOIN store b ON b.id = a.store_id + ` + sqlParams := []interface{}{actID} + if keyword != "" { + sql += " AND (a.store_id = ? OR a.sku_id = ? OR a.sku_name LIKE ? OR b.name LIKE ?)" + sqlParams = append(sqlParams, keyword, keyword, "%"+keyword+"%", "%"+keyword+"%") + } + sql += ` + LIMIT ? OFFSET ? + ` + sqlParams = append(sqlParams, pageSize, offset) + txDB, _ := Begin(db) + defer func() { + if r := recover(); r != nil { + Rollback(db, txDB) + panic(r) + } + }() + if err = GetRowsTx(txDB, &acts, sql, sqlParams...); err == nil { + page.TotalCount = GetLastTotalRowCount2(db, txDB) + page.Data = acts + } + Commit(db, txDB) + return page, err +} diff --git a/controllers/act.go b/controllers/act.go index 66f43e15d..ac0b6815d 100644 --- a/controllers/act.go +++ b/controllers/act.go @@ -504,6 +504,9 @@ func (c *ActController) GetActMtwmVendorSku() { // @router /GetActEbaiVendor [get] func (c *ActController) GetActEbaiVendor() { c.callGetActEbaiVendor(func(params *tActGetActEbaiVendorParams) (retVal interface{}, errCode string, err error) { + var storeIDs, skuIDs []int + err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.SkuIDs, &skuIDs) + retVal, err = act.GetActEbaiVendor(params.Ctx, storeIDs, skuIDs, params.Keyword, params.BeginAt, params.EndAt, params.ActType, params.Offset, params.PageSize) return retVal, "", err }) } @@ -511,9 +514,8 @@ func (c *ActController) GetActEbaiVendor() { // @Title 查询饿百平台活动sku // @Description 查询饿百平台活动sku // @Param token header string true "认证token" -// @Param actID query int true "活动ID" +// @Param actID query string true "活动ID" // @Param keyword query string false "关键字" -// @Param actType query int false "折扣或者秒杀" // @Param offset query int false "起始序号(以0开始,缺省为0)" // @Param pageSize query int false "表页大小(缺省全部)" // @Success 200 {object} controllers.CallResult @@ -521,6 +523,7 @@ func (c *ActController) GetActEbaiVendor() { // @router /GetActEbaiVendorSku [get] func (c *ActController) GetActEbaiVendorSku() { c.callGetActEbaiVendorSku(func(params *tActGetActEbaiVendorSkuParams) (retVal interface{}, errCode string, err error) { + retVal, err = act.GetActEbaiVendorSku(params.Ctx, params.ActID, params.Keyword, params.Offset, params.PageSize) return retVal, "", err }) }