123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- package services
- import (
- "context"
- "errors"
- "fmt"
- "hongze/hongze_cygx/models"
- "hongze/hongze_cygx/utils"
- "strconv"
- "time"
- )
- // AddCygxActivitySigninLog 扫码签到日志记录
- func AddCygxActivitySigninLog(item *models.CygxActivitySignin) (err error) {
- defer func() {
- if err != nil {
- fmt.Println(err)
- go utils.SendAlarmMsg("扫码签到日志记录,失败,活动ID:"+strconv.Itoa(item.ActivityId)+err.Error(), 2)
- }
- }()
- //添加日志记录
- itemLog := new(models.CygxActivitySigninLog)
- itemLog.ActivityId = item.ActivityId
- itemLog.UserId = item.UserId
- itemLog.Mobile = item.Mobile
- itemLog.Email = item.Email
- itemLog.CompanyId = item.CompanyId
- itemLog.RealName = item.RealName
- itemLog.CompanyName = item.CompanyName
- itemLog.IsSignup = item.IsSignup
- itemLog.BusinessCard = item.BusinessCard
- itemLog.CountryCode = item.CountryCode
- itemLog.OpenId = item.OpenId
- itemLog.CreateTime = time.Now()
- err = models.AddCygxActivitySigninLog(itemLog)
- if err != nil {
- return
- }
- err = models.UpdatedateCygxActivitySignin(item)
- return
- }
- // AddCygxActivityOfflineMeetingDetail 扫码签到日志记录
- func AddCygxActivityOfflineMeetingDetail(activityid, userId int) (err error) {
- defer func() {
- if err != nil {
- fmt.Println(err)
- go utils.SendAlarmMsg("扫码签到日志记录,失败,活动ID:"+strconv.Itoa(activityid)+err.Error(), 2)
- }
- }()
- var condition string
- var pars []interface{}
- condition = ` AND activity_id = ?`
- pars = append(pars, activityid)
- listOfflineMeeting, err := models.GetOfflineMeetingList(condition, pars)
- if err != nil {
- err = errors.New("GetOfflineMeetingList, Err: " + err.Error())
- return
- }
- mapOfflineMeeting := make(map[int]bool)
- for _, v := range listOfflineMeeting {
- mapOfflineMeeting[v.UserId] = true
- }
- pars = make([]interface{}, 0)
- condition = ` AND do_fail_type = 0 AND activity_id = ?`
- pars = append(pars, activityid)
- listSignup, e := models.GetActivitySignupList(condition, pars)
- if e != nil {
- err = errors.New("GetResourceDataList, Err: " + e.Error())
- return
- }
- var items []*models.CygxActivityOfflineMeetingDetail
- for _, v := range listSignup {
- if !mapOfflineMeeting[v.UserId] {
- item := new(models.CygxActivityOfflineMeetingDetail)
- item.UserId = v.UserId
- item.ActivityId = v.ActivityId
- item.CreateTime = v.CreateTime
- item.Mobile = v.Mobile
- item.CompanyId = v.CompanyId
- item.CompanyName = v.CompanyName
- if userId == v.UserId {
- item.IsMeeting = 1
- item.SigninTime = time.Now().Format(utils.FormatDateTime)
- }
- items = append(items, item)
- }
- }
- //添加线下到会信息记录
- _, err = models.AddCygxActivityOfflineMeetingDetailList(items)
- if err != nil {
- err = errors.New("AddCygxActivityOfflineMeetingDetailList, Err: " + err.Error())
- return
- }
- //修改活动是否提交到会状态
- err = models.UpdateCygxActivitySubmitMeetingByActivityId(activityid)
- if err != nil {
- err = errors.New("UpdateCygxActivitySubmitMeetingByActivityId, Err: " + err.Error())
- return
- }
- //修改签到时间
- err = models.UpdateCygxActivityOfflineMeetingDetailSigninTime(activityid, userId)
- if err != nil {
- err = errors.New("UpdateCygxActivityOfflineMeetingDetailSigninTime, Err: " + err.Error())
- return
- }
- return
- }
- // CygxActivityRestrictSignupByTask 定时任务处理未到会人员的爽约
- func CygxActivityRestrictSignupByTask(cont context.Context) (err error) {
- //func CygxActivityRestrictSignupByTask() (err error) {
- defer func() {
- if err != nil {
- fmt.Println(err)
- go utils.SendAlarmMsg("判断是否加入黑名单记录失败"+err.Error(), 2)
- }
- }()
- var pars []interface{}
- var condition string
- startDate := time.Now().Add(-time.Minute * 120).Format(utils.FormatDateTime)
- endDate := time.Now().Add(-time.Minute * 105).Format(utils.FormatDateTime)
- condition = " AND activity_type_id IN (5,6) AND signin_img != '' AND publish_status = 1 AND activity_time >= ? AND activity_time <= ? "
- pars = append(pars, startDate, endDate)
- activityList, err := models.GetActivityListByCondition(condition, pars)
- if err != nil && err.Error() != utils.ErrNoRow() {
- return
- }
- if len(activityList) == 0 {
- return
- }
- for _, v := range activityList {
- go AddCygxActivityRestrictSignupByAdmin(v.ActivityId) // 处理爽约限制
- }
- for _, v := range activityList {
- err = models.AddCygxActivityMeetDetailLogOffline(v.ActivityId)
- if err != nil {
- return
- }
- //修改活动是否提交到会状态
- err = models.UpdateCygxActivitySubmitMeetingByActivityId(v.ActivityId)
- if err != nil {
- err = errors.New("UpdateCygxActivitySubmitMeetingByActivityId, Err: " + err.Error())
- return
- }
- //把报名信息写入签到到会表
- AddCygxActivityOfflineMeetingDetail(v.ActivityId, 0)
- }
- return
- }
- func CygxActivityRestrictSignupByuid(uid, activityId int) (err error) {
- defer func() {
- if err != nil {
- fmt.Println(err)
- go utils.SendAlarmMsg("判断是否加入黑名单记录失败"+err.Error(), 2)
- }
- }()
- err = models.DeleteCygxActivitySignupBreak(uid, activityId)
- if err != nil {
- err = errors.New("DeleteCygxActivitySignupBreak" + err.Error())
- return err
- }
- totalNomeet, err := models.GetActivitySignupNomeetingCountByUid(uid)
- if err != nil {
- err = errors.New("GetActivitySignupNomeetingCountByUid" + err.Error())
- return err
- }
- if totalNomeet < 3 {
- err = models.DeleteCygxActivityRestrictSignup(uid)
- }
- return
- }
- // GetUserActivitySigninTimeMap 获取用户的签到时间
- func GetUserActivitySigninTimeMap(activityId int) (mapItem map[int]string, err error) {
- defer func() {
- if err != nil {
- fmt.Println(err)
- go utils.SendAlarmMsg("扫码签到日志记录,失败,活动ID:"+strconv.Itoa(activityId)+err.Error(), 2)
- }
- }()
- var condition string
- var pars []interface{}
- condition = " AND activity_id = ? "
- pars = append(pars, activityId)
- userList, e := models.GetCygxActivitySigninList(condition, pars)
- if e != nil && e.Error() != utils.ErrNoRow() {
- err = errors.New("GetCygxActivitySigninList" + e.Error())
- return
- }
- mapItem = make(map[int]string, 0)
- for _, v := range userList {
- if v.UserId == 0 {
- continue
- }
- mapItem[v.UserId] = v.CreateTime.Format(utils.FormatDateTime)
- }
- return
- }
|