diff --git a/business/jxstore/act/act.go b/business/jxstore/act/act.go index 2f12b8483..349890b60 100644 --- a/business/jxstore/act/act.go +++ b/business/jxstore/act/act.go @@ -534,8 +534,8 @@ func (a *ActManager) IsVendorActExist(ctx *jxcontext.Context, vendorActID string return isExist } -func QueryActs(ctx *jxcontext.Context, actID int, offset, pageSize int, keyword string, vendorID int, statusList, actTypeList, createTypeList []int, storeID, skuID, cityCode int, beginAt, endAt, createdAtFrom, createdAtTo time.Time) (pagedInfo *dao.PagedActListInfo, err error) { - return dao.QueryActs(dao.GetDB(), actID, offset, pageSize, keyword, vendorID, statusList, actTypeList, createTypeList, storeID, skuID, cityCode, beginAt, endAt, createdAtFrom, createdAtTo) +func QueryActs(ctx *jxcontext.Context, actID int, offset, pageSize int, syncStatus int, keyword string, vendorID int, statusList, actTypeList, createTypeList []int, storeID, skuID, cityCode int, beginAt, endAt, createdAtFrom, createdAtTo time.Time) (pagedInfo *dao.PagedActListInfo, err error) { + return dao.QueryActs(dao.GetDB(), actID, offset, pageSize, syncStatus, keyword, vendorID, statusList, actTypeList, createTypeList, storeID, skuID, cityCode, beginAt, endAt, createdAtFrom, createdAtTo) } func GetActStoreSkuInfo(ctx *jxcontext.Context, actID int, vendorIDs []int, keyword string, offset, pageSize int) (retVal interface{}, err error) { @@ -733,7 +733,7 @@ func RefreshPageActs(ctx *jxcontext.Context, vendorIDs []int, createdFrom time.T if err = err2; err != nil { return nil, err } - // actInfo, err2 := dao.QueryActs(db, 0, 0, -1, "", vendorID, nil, []int{model.ActCreateTypeSpider}, + // actInfo, err2 := dao.QueryActs(db, 0, 0, -1, -1, "", vendorID, nil, []int{model.ActCreateTypeSpider}, // nil, 0, 0, 0, utils.DefaultTimeValue, utils.DefaultTimeValue, createdFrom, utils.DefaultTimeValue) vendorActIDs, err2 := dao.GetExistVendorActIDs(db, vendorID) if err = err2; err != nil { @@ -821,7 +821,7 @@ func DeleteSkusFromAct(ctx *jxcontext.Context, vendorID int, skuIDs []int, isAsy db := dao.GetDB() actMap := make(map[int]*model.Act) for _, skuID := range skuIDs { - pagedInfo, err2 := dao.QueryActs(db, 0, 0, -1, "", vendorID, []int{model.ActStatusCreated}, []int{model.ActSkuDirectDown, model.ActSkuSecKill}, nil, 0, skuID, 0, + pagedInfo, err2 := dao.QueryActs(db, 0, 0, -1, -1, "", vendorID, []int{model.ActStatusCreated}, []int{model.ActSkuDirectDown, model.ActSkuSecKill}, nil, 0, skuID, 0, utils.DefaultTimeValue, utils.DefaultTimeValue, time.Now().Add(-24*30*3*time.Hour), utils.DefaultTimeValue) if err = err2; err != nil { return "", err diff --git a/business/jxstore/cms/user2_test.go b/business/jxstore/cms/user2_test.go new file mode 100644 index 000000000..3ee432799 --- /dev/null +++ b/business/jxstore/cms/user2_test.go @@ -0,0 +1,23 @@ +package cms + +import ( + "testing" + + "git.rosy.net.cn/baseapi/utils" + + _ "git.rosy.net.cn/jx-callback/globals/api/apimanager" + + "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" + "git.rosy.net.cn/jx-callback/business/model" +) + +func TestTryAddStoreBossRole4User(t *testing.T) { + err := TryAddStoreBossRole4User(jxcontext.AdminCtx, &model.User{ + Type: model.UserTypeStoreBoss, + UserID: "24058800CD3711E991B2525400E86DC0", + Mobile: utils.String2Pointer("91112345678"), + }) + if err != nil { + t.Fatal(err) + } +} diff --git a/business/jxutils/jxutils.go b/business/jxutils/jxutils.go index 70d3e9141..eb96e823d 100644 --- a/business/jxutils/jxutils.go +++ b/business/jxutils/jxutils.go @@ -474,7 +474,9 @@ func HandleUserWXRemark(db *dao.DaoDB, mobile string, mobileIsUerID bool) (err e } } if err == nil { - err = api.WeixinAPI.CBUpdateRemark(openID, remark) + if globals.EnableStoreWrite { + err = api.WeixinAPI.CBUpdateRemark(openID, remark) + } } } return err diff --git a/business/model/dao/act.go b/business/model/dao/act.go index 1ca1fe5cd..5475f3a8f 100644 --- a/business/model/dao/act.go +++ b/business/model/dao/act.go @@ -173,7 +173,7 @@ func GetActStoreSkuVendorInfo(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs return actStoreSkuMap, err } -func QueryActs(db *DaoDB, actID int, offset, pageSize int, keyword string, vendorID int, statusList, actTypeList, createTypeList []int, +func QueryActs(db *DaoDB, actID int, offset, pageSize int, syncStatus int, keyword string, vendorID int, statusList, actTypeList, createTypeList []int, storeID, skuID, cityCode int, beginAt, endAt, createdAtFrom, createdAtTo time.Time) (pagedInfo *PagedActListInfo, err error) { if actID == 0 && utils.IsTimeZero(createdAtFrom) && utils.IsTimeZero(beginAt) { return nil, fmt.Errorf("actID,createdAtFrom和beginAt中,至少要指定一个条件") @@ -184,7 +184,7 @@ func QueryActs(db *DaoDB, actID int, offset, pageSize int, keyword string, vendo sql := ` SELECT SQL_CALC_FOUND_ROWS - t1.id + DISTINCT t1.id FROM act t1` sqlParams := []interface{}{} if isGetAll { @@ -195,8 +195,14 @@ func QueryActs(db *DaoDB, actID int, offset, pageSize int, keyword string, vendo FROM act t1 LEFT JOIN act_map t2 ON t2.act_id = t1.id AND t2.deleted_at = ?` sqlParams = []interface{}{utils.DefaultTimeValue} + if syncStatus >= 0 { + sql += " AND (t2.sync_status = ? OR t2.sync_status & ? <> 0)" + sqlParams = append(sqlParams, syncStatus, syncStatus) + } + } else if syncStatus >= 0 { + sql += " JOIN act_map t2 ON t2.act_id = t1.id AND t2.deleted_at = ? AND (t2.sync_status = ? OR t2.sync_status & ? <> 0)" + sqlParams = append(sqlParams, utils.DefaultTimeValue, syncStatus, syncStatus) } - sql += ` WHERE t1.deleted_at = ?` sqlParams = append(sqlParams, utils.DefaultTimeValue) @@ -289,6 +295,7 @@ func QueryActs(db *DaoDB, actID int, offset, pageSize int, keyword string, vendo panic(r) } }() + // globals.SugarLogger.Debug(sql) if err = GetRows(db, &idList, sql, sqlParams...); err != nil || len(idList) == 0 { Rollback(db) return pagedInfo, err @@ -311,6 +318,7 @@ func QueryActs(db *DaoDB, actID int, offset, pageSize int, keyword string, vendo } } var actList []*tActAndMap + // globals.SugarLogger.Debug(sql) if err = GetRows(db, &actList, sql, sqlParams...); err != nil { return nil, err } diff --git a/business/model/dao/store.go b/business/model/dao/store.go index 179fdc5cd..d67c32274 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -458,7 +458,7 @@ func GetStoreList(db *DaoDB, idList []int, mobileList []string, shortRoleName st sqlParams = append(sqlParams, idList) } if len(mobileList) > 0 { - sql += " AND (t1.tel1 IN (" + GenQuestionMarks(len(mobileList)) + ") OR t1.tel2 IN (" + GenQuestionMarks(len(mobileList)) + ")" + sql += " AND (t1.tel1 IN (" + GenQuestionMarks(len(mobileList)) + ") OR t1.tel2 IN (" + GenQuestionMarks(len(mobileList)) + "))" sqlParams = append(sqlParams, mobileList, mobileList) } if shortRoleName != "" { diff --git a/controllers/act.go b/controllers/act.go index 4204d8552..edf33804d 100644 --- a/controllers/act.go +++ b/controllers/act.go @@ -128,6 +128,7 @@ func (c *ActController) CreateAct() { // @Param createTypeList query string false "创建方式列表" // @Param storeID query int false "包含门店" // @Param skuID query int false "包含sku" +// @Param syncStatus query int false "活动同步标识,缺省不限制" // @Param offset query int false "活动列表起始序号(以0开始,缺省为0)" // @Param pageSize query int false "活动列表页大小(缺省为50,-1表示全部)" // @Success 200 {object} controllers.CallResult @@ -142,7 +143,10 @@ func (c *ActController) QueryActs() { if params.MapData["vendorID"] == nil { params.VendorID = -1 } - retVal, err = act.QueryActs(params.Ctx, params.ActID, params.Offset, params.PageSize, params.Keyword, params.VendorID, + if params.MapData["syncStatus"] == nil { + params.SyncStatus = -1 + } + retVal, err = act.QueryActs(params.Ctx, params.ActID, params.Offset, params.PageSize, params.SyncStatus, params.Keyword, params.VendorID, statusList, typeList, createTypeList, params.StoreID, params.SkuID, params.CityCode, timeList[2], timeList[3], timeList[0], timeList[1]) } }