Prechádzať zdrojové kódy

用户筛选活动记录并发缓存校验

xingzai 3 rokov pred
rodič
commit
da48e31b94

+ 5 - 2
controllers/activity.go

@@ -119,13 +119,16 @@ func (this *ActivityCoAntroller) ActivityList() {
 	itemSearch.ActivityTypeids = activityTypeIds
 	itemSearch.ActiveState = activeState
 	itemSearch.IsShowJurisdiction = isShowJurisdiction
-	_, errSearch := models.AddUserSearchContent(itemSearch)
+	//并发缓存校验
+	cacheKey := fmt.Sprint("xygx:activity_user_search:add:", uid)
+	ttlTime := utils.Rc.GetRedisTTL(cacheKey)
+	_, errSearch := models.AddUserSearchContent(itemSearch, ttlTime)
 	if errSearch != nil {
 		br.Msg = "操作失败"
 		br.ErrMsg = "操作失败,Err:" + errSearch.Error()
 		return
 	}
-
+	utils.Rc.SetNX(cacheKey, user.Mobile, time.Second*10)
 	var userType int
 	var permissionStr string
 	if user.CompanyId <= 1 {

+ 2 - 2
models/activity_user_search_content.go

@@ -22,7 +22,7 @@ type CygxActivityUserSearchContent struct {
 }
 
 //添加报名信息
-func AddUserSearchContent(item *CygxActivityUserSearchContent) (lastId int64, err error) {
+func AddUserSearchContent(item *CygxActivityUserSearchContent, ttlTime time.Duration) (lastId int64, err error) {
 	o := orm.NewOrm()
 	o.Begin()
 	defer func() {
@@ -39,7 +39,7 @@ func AddUserSearchContent(item *CygxActivityUserSearchContent) (lastId int64, er
 	if err != nil {
 		return
 	}
-	if count > 0 {
+	if count > 0 || ttlTime > 0 {
 		sql := `UPDATE cygx_activity_user_search_content SET chart_permissionids = ?,activity_typeids = ?,active_state = ?,is_show_jurisdiction = ? ,modify_time=NOW() WHERE user_id=? `
 		_, err = o.Raw(sql, item.ChartPermissionids, item.ActivityTypeids, item.ActiveState, item.IsShowJurisdiction, item.UserId).Exec()
 		return