package yb_activity import ( "hongze/hongze_yb/global" "time" ) type ActivityItem struct { ActivityID int `json:"activityId"` FirstActivityTypeID int `json:"firstActivityTypeId"` // 第一级的活动类型ID FirstActivityTypeName string `json:"firstActivityTypeName"` // 第一级的活动类型名称 ActivityName string `json:"activityName"` // 活动名称 ActivityTypeID int `json:"activityTypeId"` // 活动类型ID ActivityTypeName string `json:"activityTypeName"` // 活动类型名称 StartTime time.Time `json:"startTime"` // 活动开始时间 EndTime time.Time `json:"endTime"` // 活动结束时间 Speaker string `json:"speaker"` // 主讲人 SpeakerHeadPic string `json:"speakerHeadPic"` // 主讲人头像 SpeakerBackgroundPic string `json:"speakerBackgroundPic"` // 主讲人背景图 City string `json:"city"` // 城市 WeekString string `json:"weekString"` // 周几 HasRemind int `json:"hasRemind"` // 是否已提醒 HasPlayBack int `json:"hasPlayBack"` // 是否有回放 RegisterState int `json:"registerState"` // 报名状态 0-取消报名 1-已报名 ActivityState int `json:"activityState"` // 活动状态 1-本周预告 2-进行中 3-已结束 } type ActivityDetail struct { ActivityItem MainlandTel string `json:"mainlandTel"` // 大陆拨入 HongKongTel string `json:"hongKongTel"` // 香港拨入 TaiwanTel string `json:"taiwanTel"` // 台湾拨入 AmericaTel string `json:"americaTel"` // 美国拨入 SingaporeTel string `json:"singaporeTel"` // 新加坡拨入 ParticipationCode string `json:"participationCode"` // 参会密码 LinkParticipants string `json:"linkParticipants"` // 参会链接 IsLimitPeople int8 `json:"isLimitPeople"` // 是否限制人数 1是,0否 LimitPeopleNum int `json:"limitPeopleNum"` // 限制人数数量 ReportLink string `json:"reportLink"` // 报告链接 ReportName string `json:"reportName"` // 报告名称 Address string `json:"address"` // 活动地址 RegisteredNum int `json:"registeredNum"` // 已报名人数 ReportId int `json:"report_id"` // 报告ID IsNewReport int `json:"is_new_report"` // 是否关联新报告 } // GetPageListByWhere 分页获取活动列表 func GetPageListByWhere(condition string, pars []interface{}, page, limit int, order string, userId int) (activities []ActivityItem, err error) { fields := []string{ "activity_id", "activity_name", "activity_type_id", "activity_type_name", "start_time", "end_time", "speaker", "city", "speaker_head_pic", "speaker_background_pic", "first_activity_type_id", "first_activity_type_name", } queryOrder := "start_time asc" if order != "" { queryOrder = order } err = global.DEFAULT_MYSQL.Model(YbActivity{}).Select(fields).Where(condition, pars...).Order(queryOrder).Limit(limit).Offset((page - 1) * limit).Scan(&activities).Error return } // GetDetailById 根据主键获取详情 func GetDetailById(activityId int) (activity *ActivityDetail, err error) { fields := []string{ "activity_id", "activity_name", "activity_type_id", "activity_type_name", "start_time", "end_time", "speaker", "city", "speaker_head_pic", "speaker_background_pic", "mainland_tel", "hong_kong_tel", "taiwan_tel", "america_tel", "singapore_tel", "participation_code", "report_id", "is_new_report", "link_participants", "is_limit_people", "limit_people_num", "report_link", "report_name", "address", "first_activity_type_id", "first_activity_type_name", } err = global.DEFAULT_MYSQL.Model(YbActivity{}).Select(fields).Where("activity_id", activityId).Scan(&activity).Error return } // GetOneById 根据主键获取活动 func GetOneById(activityId int) (activity *YbActivity, err error) { err = global.DEFAULT_MYSQL.Where("activity_id = ?", activityId).First(&activity).Error return } // GetActivityByIDsAndDate 根据时间和活动ID筛选出合适的记录 func GetActivityByIDsAndDate(ids []int, publishTime string) (list []*YbActivity, err error) { err = global.DEFAULT_MYSQL.Model(YbActivity{}). Select("DISTINCT activity_id"). Where("activity_id in (?) and publish_status = 1 and create_time > ? and is_delete = 0", ids, publishTime).Scan(&list).Error return } // GetLatestByIds 获取最新的活动 func GetLatestByIds(activityids []int) (activity *YbActivity, err error) { err = global.DEFAULT_MYSQL.Model(YbActivity{}).Where("activity_id in (?) and is_delete = 0 and publish_status = 1", activityids).Order("create_time desc").First(&activity).Error return } // GetListByIds 分页查询活动列表 func GetListByIds(activityids []int, offset, limit int) (activitys []*YbActivity, err error) { err = global.DEFAULT_MYSQL.Model(YbActivity{}). Where("activity_id in (?) and is_delete = 0 and publish_status = 1", activityids). Order("create_time desc"). Offset(offset). Limit(limit). Scan(&activitys).Error return } // GetListCountByIds 查询活动列表总数 func GetListCountByIds(activityIds []int) (total int64, err error) { err = global.DEFAULT_MYSQL.Model(YbActivity{}). Where("activity_id in (?) and is_delete = 0 and publish_status = 1", activityIds). Count(&total).Error return } // GetLatestActivity 获取最新的活动 func GetLatestActivity() (activity *YbActivity, err error) { err = global.DEFAULT_MYSQL.Model(YbActivity{}).Where("is_delete = 0 and publish_status = 1").Order("create_time desc").First(&activity).Error return }