Browse Source

解除报名限制之后二次报名

xingzai 3 years ago
parent
commit
4e3e9e3d42
2 changed files with 75 additions and 0 deletions
  1. 28 0
      controllers/activity.go
  2. 47 0
      models/activity_signup.go

+ 28 - 0
controllers/activity.go

@@ -531,12 +531,40 @@ func (this *ActivityCoAntroller) SignupAdd() {
 						signupStatus = "FullStarffed"
 						item.FailType = 1
 					}
+					totalUserRestrictCount, err := models.GetActivitySignupByUserRestrictCount(uid, activityId)
+					if err != nil {
+						br.Msg = "获取失败"
+						br.ErrMsg = "获取失败,Err:" + err.Error()
+						return
+					}
+					//解除报名限制之后二次报名相同活动
+					if totalUserRestrictCount > 0 && totalRestrict == 0 {
+						item.UserId = uid
+						item.ActivityId = activityId
+						item.CreateTime = time.Now()
+						item.Mobile = user.Mobile
+						item.Email = user.Email
+						item.CompanyId = user.CompanyId
+						item.CompanyName = user.CompanyName
+						item.SignupType = signupType
+						item.FailType = 0
+						item.DoFailType = 0
+						_, errSignup := models.AddActivitySignupByRestrict(item)
+						if errSignup != nil {
+							br.Msg = "操作失败"
+							br.ErrMsg = "操作失败,Err:" + errSignup.Error()
+							return
+						}
+						resp.HaqveJurisdiction = true
+					}
+
 					totalMy, err := models.GetActivitySignupByUserCount(uid, activityId)
 					if err != nil {
 						br.Msg = "获取失败"
 						br.ErrMsg = "获取失败,Err:" + err.Error()
 						return
 					}
+
 					if signupStatus != "Success" && totalMy == 0 {
 						item.UserId = uid
 						item.ActivityId = activityId

+ 47 - 0
models/activity_signup.go

@@ -162,6 +162,14 @@ func GetActivitySignupByUserCount(uid, activityId int) (count int, err error) {
 	return
 }
 
+//获取用户报名禁止数量
+func GetActivitySignupByUserRestrictCount(uid, activityId int) (count int, err error) {
+	sqlCount := `SELECT COUNT(1) AS count FROM cygx_activity_signup WHERE do_fail_type=3 AND user_id=? AND activity_id=? `
+	o := orm.NewOrm()
+	err = o.Raw(sqlCount, uid, activityId).QueryRow(&count)
+	return
+}
+
 //获取某一活动已经报名的数量
 func GetActivitySignupSuccessCount(activityId int) (count int, err error) {
 	sqlCount := `SELECT COUNT(1) AS count FROM cygx_activity_signup WHERE is_cancel=0 AND fail_type = 0 AND activity_id=? `
@@ -245,3 +253,42 @@ func GetActivitySignupDetail(activityId, uid int) (item *CygxActivitySignup, err
 	err = o.Raw(sql, activityId, uid).QueryRow(&item)
 	return
 }
+
+//解除报名限制之后二次报名
+func AddActivitySignupByRestrict(item *CygxActivitySignup) (lastId int64, err error) {
+	o := orm.NewOrm()
+	o.Begin()
+	defer func() {
+		fmt.Println(err)
+		if err == nil {
+			o.Commit()
+		} else {
+			o.Rollback()
+		}
+	}()
+	itemMy := new(CygxMySchedule)
+	itemMy.UserId = item.UserId
+	itemMy.ActivityId = item.ActivityId
+	itemMy.CreateTime = time.Now()
+	itemMy.Mobile = item.Mobile
+	itemMy.Email = item.Email
+	itemMy.CompanyId = item.CompanyId
+	itemMy.CompanyName = item.CompanyName
+	lastId, err = o.Insert(itemMy)
+	if err != nil {
+		return
+	}
+	sql := `UPDATE cygx_activity_signup SET do_fail_type = 0 , fail_type=0 WHERE user_id=?  AND activity_id=? `
+	_, err = o.Raw(sql, item.UserId, item.ActivityId).Exec()
+	itemLog := new(CygxActivitySignupLog)
+	itemLog.UserId = item.UserId
+	itemLog.ActivityId = item.ActivityId
+	itemLog.CreateTime = time.Now()
+	itemLog.Mobile = item.Mobile
+	itemLog.Email = item.Email
+	itemLog.CompanyId = item.CompanyId
+	itemLog.CompanyName = item.CompanyName
+	itemLog.Type = 1
+	lastId, err = o.Insert(itemLog)
+	return
+}