|
@@ -2,6 +2,8 @@ package activity
|
|
|
|
|
|
import (
|
|
|
"gorm.io/gorm"
|
|
|
+ "hongze/hongze_yb/global"
|
|
|
+ "hongze/hongze_yb/models/tables/teleconference"
|
|
|
"hongze/hongze_yb/models/tables/yb_activity"
|
|
|
"hongze/hongze_yb/models/tables/yb_activity_permission"
|
|
|
"hongze/hongze_yb/models/tables/yb_activity_register"
|
|
@@ -11,13 +13,18 @@ import (
|
|
|
"hongze/hongze_yb/services/user"
|
|
|
"hongze/hongze_yb/utils"
|
|
|
"log"
|
|
|
+ "strconv"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
-var WeekDay = [7]string{"周日", "周一", "周二", "周三", "周四", "周五", "周六"}
|
|
|
+// ActivityList 活动列表
|
|
|
+type ActivityList struct {
|
|
|
+ yb_activity.ActivityItem // 活动信息
|
|
|
+ VoiceList []*yb_activity_voice.YbActivityVoice // 音频列表
|
|
|
+}
|
|
|
|
|
|
// PageList 活动分页列表
|
|
|
-func PageList(condition string, pars []interface{}, page, limit int, order string, userInfo user.UserInfo) (list []yb_activity.ActivityItem, err error) {
|
|
|
+func PageList(condition string, pars []interface{}, page, limit int, order string, userInfo user.UserInfo) (list []ActivityList, err error) {
|
|
|
activities, err := yb_activity.GetPageListByWhere(condition, pars, page, limit, order, int(userInfo.UserID))
|
|
|
if err != nil {
|
|
|
log.Print(err.Error())
|
|
@@ -35,10 +42,6 @@ func PageList(condition string, pars []interface{}, page, limit int, order strin
|
|
|
log.Print(queryErr.Error())
|
|
|
return
|
|
|
}
|
|
|
- voiceMap := make(map[int]int, 0)
|
|
|
- for _, voice := range voices {
|
|
|
- voiceMap[int(voice.ActivityID)] = 1
|
|
|
- }
|
|
|
// 提醒
|
|
|
reminds, queryErr := yb_activity_remind.GetRemindsByUserIdAndActivityIds(int(userInfo.UserID), activityIds)
|
|
|
if queryErr != nil {
|
|
@@ -62,24 +65,27 @@ func PageList(condition string, pars []interface{}, page, limit int, order strin
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- var temp yb_activity.ActivityItem
|
|
|
+ var temp ActivityList
|
|
|
for _, activity := range activities {
|
|
|
- temp = activity
|
|
|
- temp.WeekString = WeekDay[activity.StartTime.Weekday()]
|
|
|
+ temp.ActivityItem = activity
|
|
|
+ temp.WeekString = utils.StrDateTimeToWeek(activity.StartTime.Weekday().String())
|
|
|
temp.ActivityState = getActivityStateByTime(activity.StartTime, activity.EndTime)
|
|
|
- // 是否有回放
|
|
|
- tempActivity := activity
|
|
|
- _, ok := voiceMap[tempActivity.ActivityID]
|
|
|
- if ok {
|
|
|
- temp.HasPlayBack = 1
|
|
|
+ // 音频列表
|
|
|
+ var voiceMap []*yb_activity_voice.YbActivityVoice
|
|
|
+ for _, voice := range voices {
|
|
|
+ if temp.ActivityID == int(voice.ActivityID) {
|
|
|
+ voiceMap = append(voiceMap, voice)
|
|
|
+ temp.HasPlayBack = 1 // 有回放
|
|
|
+ }
|
|
|
}
|
|
|
+ temp.VoiceList = voiceMap
|
|
|
// 是否有提醒
|
|
|
- _, ok = remindMap[tempActivity.ActivityID]
|
|
|
+ _, ok := remindMap[temp.ActivityID]
|
|
|
if ok {
|
|
|
temp.HasRemind = 1
|
|
|
}
|
|
|
// 是否已报名
|
|
|
- _, ok = registerMap[tempActivity.ActivityID]
|
|
|
+ _, ok = registerMap[temp.ActivityID]
|
|
|
if ok {
|
|
|
temp.RegisterState = 1
|
|
|
}
|
|
@@ -123,7 +129,7 @@ func GetActivityDetail(activityId, userId int) (detail *yb_activity.ActivityDeta
|
|
|
return
|
|
|
}
|
|
|
detail.RegisteredNum = int(registeredNum)
|
|
|
- detail.WeekString = WeekDay[detail.StartTime.Weekday()]
|
|
|
+ detail.WeekString = utils.StrDateTimeToWeek(detail.StartTime.Weekday().String())
|
|
|
detail.ActivityState = getActivityStateByTime(detail.StartTime, detail.EndTime)
|
|
|
_, remindErr := yb_activity_remind.RemindExist(userId, activityId)
|
|
|
if remindErr != gorm.ErrRecordNotFound {
|
|
@@ -179,5 +185,103 @@ func GetUserAuthActivityIds(userInfo user.UserInfo) (acrivityIds []int, err erro
|
|
|
acrivityIds = append(acrivityIds, int(v.ActivityID))
|
|
|
}
|
|
|
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// SyncTeleconferenceOldData 同步旧数据
|
|
|
+func SyncTeleconferenceOldData() (countSuccess int, err error) {
|
|
|
+ // 查询所有三个月内的数据及相关音频
|
|
|
+ condition := "enabled = 1"
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
+ nowTime := time.Now()
|
|
|
+ threeMonth := nowTime.AddDate(0, -3, 0).Format(utils.FormatDateTime)
|
|
|
+ condition += " AND created_time >= ? AND created_time <= ?"
|
|
|
+ pars = append(pars, threeMonth, nowTime)
|
|
|
+ teleconferenceList, err := teleconference.GetTeleconferenceList(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 开启事务
|
|
|
+
|
|
|
+
|
|
|
+ // 遍历数据
|
|
|
+ for _, item := range teleconferenceList {
|
|
|
+ // 匹配报告名称和link
|
|
|
+ reportId := int(item.ReferResearchReportID)
|
|
|
+ linkUrl := `https://details.hzinsights.com/ficcReportDetail?research_report_id=`
|
|
|
+ if global.CONFIG.Serve.RunMode == `debug` {
|
|
|
+ linkUrl = `http://advisoryadmin.brilliantstart.cn/xcx_h5/ficcReportDetail?research_report_id=`
|
|
|
+ }
|
|
|
+ reportLink := linkUrl + strconv.Itoa(reportId)
|
|
|
+
|
|
|
+ // 匹配活动类型
|
|
|
+
|
|
|
+ // 匹配主讲人信息
|
|
|
+ /*if firstActivityTypeId == 1 {
|
|
|
+ // 电话会议
|
|
|
+ backgroundPic = `https://hongze.oss-accelerate.aliyuncs.com/static/images/202112/20211214/nNSTxmH6lxlT0PAp7xcfJJTGX9Gu.png`
|
|
|
+ } else {
|
|
|
+ // 线下沙龙
|
|
|
+ backgroundPic = `https://hongze.oss-accelerate.aliyuncs.com/static/images/202112/20211214/k77gDxvFvuAnYUhF6PU1FOVDHI8O.png`
|
|
|
+ }*/
|
|
|
+
|
|
|
+ // 新增活动数据
|
|
|
+ activityInfo := &yb_activity.YbActivity{
|
|
|
+ FirstActivityTypeID: 0,
|
|
|
+ FirstActivityTypeName: "",
|
|
|
+ ActivityTypeID: 0,
|
|
|
+ ActivityTypeName: "",
|
|
|
+ ActivityName: item.TeleconferenceTitle,
|
|
|
+ StartTime: item.StartTime,
|
|
|
+ EndTime: item.EndTime,
|
|
|
+ Speaker: "",
|
|
|
+ SpeakerHeadPic: "",
|
|
|
+ SpeakerBackgroundPic: "",
|
|
|
+ SingaporeTel: "",
|
|
|
+ ParticipationCode: item.Password,
|
|
|
+ MainlandTel: item.Telephone,
|
|
|
+ HongKongTel: item.HkTelephone,
|
|
|
+ ReportID: reportId,
|
|
|
+ ReportLink: reportLink,
|
|
|
+ ReportName: "",
|
|
|
+ Remarks: item.Remark,
|
|
|
+ PublishStatus: 1,
|
|
|
+ IsSendWxMsg: 1,
|
|
|
+ IsSendSalonWxMsg: 1,
|
|
|
+ ModifyTime: nowTime,
|
|
|
+ CreateTime: nowTime,
|
|
|
+ }
|
|
|
+ activityId, tempErr := activityInfo.Create()
|
|
|
+ if tempErr != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 5.新增活动音频-音频列表
|
|
|
+ activityVoice := &yb_activity_voice.YbActivityVoice{
|
|
|
+ ActivityVoiceID: activityId,
|
|
|
+ VoiceURL: item.VideoURL,
|
|
|
+ VoiceName: item.VideoName,
|
|
|
+ VoicePlaySeconds: item.VideoPlaySeconds,
|
|
|
+ CreateTime: nowTime,
|
|
|
+ }
|
|
|
+ tempErr = activityVoice.Create()
|
|
|
+ if tempErr != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 6.新增活动关联权限-源数据权限仅一个
|
|
|
+ activityPermission := &yb_activity_permission.YbActivityPermission{
|
|
|
+ ActivityID: uint32(activityId),
|
|
|
+ PermissionID: uint32(item.ReportPermissionID),
|
|
|
+ PermissionName: "",
|
|
|
+ CreateTime: nowTime,
|
|
|
+ }
|
|
|
+ tempErr = activityPermission.Create()
|
|
|
+ if tempErr != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return
|
|
|
}
|