互动
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
2.9 KiB

package client
import (
"hudongzhuanjia/controllers"
"hudongzhuanjia/models"
"hudongzhuanjia/utils/code"
"time"
)
type InvitationLetterCtl struct {
controllers.AuthorCtl
}
func (t *InvitationLetterCtl) Invite() {
uid := t.GetAccountId()
activityId := t.MustGetInt("activity_id")
invitationId := t.MustGetInt("invitation_id")
answer := t.MustGet("answer")
activity := new(models.Activity)
exist, err := models.Get(activity, activityId)
t.CheckErr(err)
t.Assert(exist, code.MSG_ACTIVITY_NOT_EXIST, "互动不存在")
area := new(models.AreaStore)
exist, err = area.GetByCustomerId(activity.CustomerId, activity.Id)
t.CheckErr(err)
t.Assert(exist, code.MSG_AREASTORE_NOT_EXIST, "地区不存在")
customer := new(models.Customer)
exist, err = models.Get(customer, activity.CustomerId)
t.CheckErr(err)
t.Assert(exist, code.MSG_CUSTOMER_NOT_EXIST, "客户不存在")
letter := new(models.InvitationLetter)
exist, err = letter.GetByUserIdAndActivityId(uid, activity.Id, activity.ArchId, activity.RehearsalId)
t.CheckErr(err)
t.Assert(!exist, code.MSG_INVITE_LETTER_EXIST, "您已经接受过邀请")
letter.UserId = uid
letter.ActivityId = activityId
letter.InvitationId = invitationId
letter.RehearsalId = activity.RehearsalId
letter.ExtraData = answer
letter.ArchId = activity.ArchId
letter.IsDelete = false
letter.CreatedAt = time.Now()
letter.UpdatedAt = time.Now()
_, err = models.Add(letter)
t.CheckErr(err)
sign := new(models.SignUp)
exist, err = sign.GetByActivityId(activityId)
t.CheckErr(err)
t.Assert(exist, code.MSG_SIGN_UP_NOT_EXIST, "签到活动不存在")
history := new(models.SignHistory)
signExist, err := history.GetByUserId(activityId, activity.ArchId, uid, activity.RehearsalId, area.Id)
t.CheckErr(err)
if customer.IsSpecial == 1 || customer.IsSpecial == 3 {
if signExist {
history = new(models.SignHistory)
history.UserId = uid
history.RehearsalId = activity.RehearsalId
history.ActivityId = activityId
history.SignRuleId = sign.Id
history.AreaId = area.Id
history.ArchId = activity.ArchId
history.Status = 2
_, err = models.Add(history)
t.CheckErr(err)
}
}
t.SUCCESS("success")
}
func (t *InvitationLetterCtl) Setting() {
activityId := t.MustGetInt("activity_id")
uid := t.GetAccountId()
activity := new(models.Activity)
exist, err := models.Get(activity, activityId)
t.CheckErr(err)
t.Assert(exist, code.MSG_ACTIVITY_NOT_EXIST, "互动不存在")
letter := new(models.InvitationLetter)
exist, err = letter.GetByUserIdAndActivityId(uid, activityId, activity.ArchId, activity.RehearsalId)
t.CheckErr(err)
t.Assert(!exist, code.MSG_INVITE_LETTER_EXIST, "您已经接受过邀请")
invitation := new(models.Invitation)
exist, err = invitation.GetInvitationByActivityId(activityId)
t.CheckErr(err)
t.Assert(exist, code.MSG_INVITE_SETTING_NOT_EXIST, "邀请函设置不存在")
t.JSON(map[string]interface{}{
"setting": invitation,
})
}