123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- package activity
- import (
- "errors"
- "gorm.io/gorm"
- "hongze/hongze_yb/models/tables/yb_activity"
- "hongze/hongze_yb/models/tables/yb_activity_remind"
- "hongze/hongze_yb/services/user"
- "log"
- "time"
- )
- type RemindCheckInfo struct {
- Specific int `json:"specific" description:"是否指定返回"`
- Msg string `json:"msg" description:"提示信息"`
- Type string `json:"type" description:"校验失败,需要让前端处理的类型,枚举值:time"`
- }
- // CreateRemind 新增提醒
- func CreateRemind(activityId int, userInfo user.UserInfo) (err error, remindCheck RemindCheckInfo) {
- userId := int(userInfo.UserID)
- ok, msg, remindCheck := checkRemindOk(userId, activityId)
- if !ok {
- err = errors.New(msg)
- return
- }
- remindInfo := &yb_activity_remind.YbActivityRemind{
- ActivityID: uint32(activityId),
- UserID: uint64(userId),
- CompanyID: uint64(userInfo.CompanyID),
- RealName: userInfo.RealName,
- Mobile: userInfo.Mobile,
- CreateTime: time.Now(),
- }
- err = remindInfo.Create()
- if err != nil {
- log.Print(err)
- err = errors.New("设置提醒失败")
- }
- return
- }
- // checkRemindOk 验证是否可以新增提醒
- func checkRemindOk(userId, activityId int) (ok bool, msg string, remindCheck RemindCheckInfo) {
- activity, err := yb_activity.GetOneById(activityId)
- if err == gorm.ErrRecordNotFound {
- msg = "活动信息有误"
- return
- }
- _, err = yb_activity_remind.RemindExist(userId, activityId)
- if err != gorm.ErrRecordNotFound {
- msg = "请勿重复设置提醒"
- return
- }
- // 活动时间
- nowUtime := time.Now().Unix()
- endUtime := activity.EndTime.Unix()
- if nowUtime > endUtime {
- msg = "活动已结束"
- return
- }
- nowUtime += 60 * 15
- startUtime := activity.StartTime.Unix()
- if nowUtime > startUtime {
- msg = "活动开始前十五分钟内无法设置会议提醒"
- remindCheck = RemindCheckInfo{
- Specific: 1,
- Msg: msg,
- Type: "time",
- }
- return
- }
- ok = true
- return
- }
- // CancelRemind 取消提醒
- func CancelRemind(activityId int, userInfo user.UserInfo) (err error) {
- userId := int(userInfo.UserID)
- _, err = yb_activity.GetOneById(activityId)
- if err == gorm.ErrRecordNotFound {
- err = errors.New("活动信息有误")
- return
- }
- remindInfo, err := yb_activity_remind.RemindExist(userId, activityId)
- if err == gorm.ErrRecordNotFound {
- err = errors.New("提醒信息有误")
- return
- }
- err = yb_activity_remind.Delete(remindInfo)
- if err != nil {
- log.Print(err.Error())
- err = errors.New("取消提醒失败")
- }
- return
- }
|