|
@@ -2,6 +2,7 @@ package controllers
|
|
|
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
+ "fmt"
|
|
|
"github.com/rdlucklib/rdluck_tools/paging"
|
|
|
"hongze/hongze_clpt/models"
|
|
|
"hongze/hongze_clpt/services"
|
|
@@ -22,6 +23,8 @@ type ActivityController struct {
|
|
|
// @Param ActiveState query string false "活动进行状态 未开始:1、进行中2、已结束3 多个用 , 隔开"
|
|
|
// @Param WhichDay query string false "哪一天 今天:1、明天:2,多个用 , 隔开"
|
|
|
// @Param IsPower query int false "是否选择有权限行业 ,1是 0 否 默认0"
|
|
|
+// @Param IsExternalLabel query int false "是否仅展示外部资源 1:是、0:否 默认0"
|
|
|
+// @Param IsResearchPoints query int false "是否仅展示研选扣点 1:是、0:否 默认0"
|
|
|
// @Success 200 {object} models.ActivityTypeListHomeResp
|
|
|
// @router /labelTypeList [get]
|
|
|
func (this *ActivityController) LabelTypeList() {
|
|
@@ -40,7 +43,10 @@ func (this *ActivityController) LabelTypeList() {
|
|
|
isPower, _ := this.GetInt("IsPower")
|
|
|
whichDay := this.GetString("WhichDay")
|
|
|
activeState := this.GetString("ActiveState")
|
|
|
+ isExternalLabel, _ := this.GetInt("IsExternalLabel") //
|
|
|
+ isResearchPoints, _ := this.GetInt("IsResearchPoints") //
|
|
|
var condition string
|
|
|
+ var conditioninit string
|
|
|
var pars []interface{}
|
|
|
|
|
|
// 查研观向7.4-始终查询宏观的活动
|
|
@@ -48,16 +54,80 @@ func (this *ActivityController) LabelTypeList() {
|
|
|
chartPermissionIds += ",1"
|
|
|
}
|
|
|
|
|
|
- condition += `AND art.activity_time > ? `
|
|
|
- pars = append(pars, time.Now().AddDate(0, -3, 0).Format(utils.FormatDate))
|
|
|
+ //condition += `AND art.activity_time > ? `
|
|
|
+ //pars = append(pars, time.Now().AddDate(0, -3, 0).Format(utils.FormatDate))
|
|
|
+
|
|
|
+ //行业名称
|
|
|
+ if len(chartPermissionIds) > 0 {
|
|
|
+ conditioninit += ` AND art.chart_permission_id IN (` + chartPermissionIds + `)`
|
|
|
+ }
|
|
|
+ //哪一天
|
|
|
+ if whichDay != "" {
|
|
|
+ var startDate string
|
|
|
+ var endDate string
|
|
|
+ if whichDay == "1" {
|
|
|
+ startDate = time.Now().Format(utils.FormatDate)
|
|
|
+ endDate = startDate
|
|
|
+ } else if whichDay == "2" {
|
|
|
+ startDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
|
|
|
+ endDate = startDate
|
|
|
+ } else if whichDay == "3" {
|
|
|
+ startDate = utils.GetNowWeekMonday().Format(utils.FormatDate)
|
|
|
+ endDate = utils.GetNowWeekSunday().Format(utils.FormatDate)
|
|
|
+ } else if whichDay == "4" {
|
|
|
+ startDate = utils.GetLastWeekMonday().Format(utils.FormatDate)
|
|
|
+ endDate = utils.GetLastWeekSunday().Format(utils.FormatDate)
|
|
|
+ } else if whichDay == "5" {
|
|
|
+ startDate = utils.GetNowMonthFirstDay().Format(utils.FormatDate)
|
|
|
+ endDate = utils.GetNowMonthLastDay().Format(utils.FormatDate)
|
|
|
+ } else if whichDay == "6" {
|
|
|
+ startDate = utils.GetLastMonthFirstDay().Format(utils.FormatDate)
|
|
|
+ endDate = utils.GetLastMonthLastDay().Format(utils.FormatDate)
|
|
|
+ } else if whichDay == "1,2" {
|
|
|
+ startDate = time.Now().Format(utils.FormatDate)
|
|
|
+ endDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
|
|
|
+ } else if whichDay == "3,4" {
|
|
|
+ startDate = utils.GetLastWeekMonday().Format(utils.FormatDate)
|
|
|
+ endDate = utils.GetNowWeekSunday().Format(utils.FormatDate)
|
|
|
+ } else if whichDay == "5,6" {
|
|
|
+ startDate = utils.GetLastMonthFirstDay().Format(utils.FormatDate)
|
|
|
+ endDate = utils.GetNowMonthLastDay().Format(utils.FormatDate)
|
|
|
+ } else {
|
|
|
+ startDate = time.Now().Format(utils.FormatDate)
|
|
|
+ endDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
|
|
|
+ }
|
|
|
+ conditioninit += ` AND art.activity_time >= ` + "'" + startDate + " 00:00:00'"
|
|
|
+ conditioninit += ` AND art.activity_time <= ` + "'" + endDate + " 23:59:59'"
|
|
|
+ }
|
|
|
+
|
|
|
+ //活动状态搜索
|
|
|
+ if activeState != "" {
|
|
|
+ // 默认查看未开始跟进行中
|
|
|
+ if activeState == "1" {
|
|
|
+ conditioninit += ` AND art.active_state IN (1,2)`
|
|
|
+ } else {
|
|
|
+ conditioninit += ` AND art.active_state IN (` + activeState + `)`
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ conditioninit += ` AND art.active_state IN (1,2)`
|
|
|
+ }
|
|
|
|
|
|
- conditionActivity, err := services.GetActivityonditionList(user, "", chartPermissionIds, whichDay, activeState, "", isPower, 0, "", 0, 1)
|
|
|
+ //是否为外部资源
|
|
|
+ if isExternalLabel == 1 {
|
|
|
+ conditioninit += ` AND art.is_external_label = 1 `
|
|
|
+ }
|
|
|
+ if isResearchPoints == 1 {
|
|
|
+ conditioninit += ` AND art.is_research_points = 1 `
|
|
|
+ }
|
|
|
+
|
|
|
+ conditionActivity, err := services.ActivityConditioninitSql(user, conditioninit, isPower)
|
|
|
+ //conditionActivity, err := services.GetActivityonditionList(user, "", chartPermissionIds, whichDay, activeState, "", isPower, 0, "", 0, 1)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取活动权限数据失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- condition += `AND art.is_limit_people = 1 ` + conditionActivity
|
|
|
+ condition += ` AND art.is_limit_people = 1 ` + conditionActivity
|
|
|
sortTime := ` mintimesort ASC `
|
|
|
if activeState == "3" {
|
|
|
sortTime = ` timesort DESC `
|
|
@@ -120,6 +190,8 @@ func (this *ActivityController) LabelTypeList() {
|
|
|
// @Param KeyWord query string false "搜索关键词 多个用 , 隔开"
|
|
|
// @Param ActivityId query int false "活动列表传过来的活动ID"
|
|
|
// @Param Filter query int false "筛选条件 0:全部 1:视频 2:音频"
|
|
|
+// @Param IsExternalLabel query int false "是否仅展示外部资源 1:是、0:否 默认0"
|
|
|
+// @Param IsResearchPoints query int false "是否仅展示研选扣点 1:是、0:否 默认0"
|
|
|
// @Success 200 {object} models.GetCygxActivityListRep
|
|
|
// @router /list [get]
|
|
|
func (this *ActivityController) ActivityListNew() {
|
|
@@ -137,7 +209,7 @@ func (this *ActivityController) ActivityListNew() {
|
|
|
uid := user.UserId
|
|
|
pageSize, _ := this.GetInt("PageSize")
|
|
|
currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
- source, _ := this.GetInt("Source")
|
|
|
+ //source, _ := this.GetInt("Source")
|
|
|
label := this.GetString("Label")
|
|
|
chartPermissionIds := this.GetString("ChartPermissionIds")
|
|
|
whichDay := this.GetString("WhichDay")
|
|
@@ -147,7 +219,10 @@ func (this *ActivityController) ActivityListNew() {
|
|
|
keyWord := this.GetString("KeyWord")
|
|
|
playBack, _ := this.GetInt("PlayBack")
|
|
|
filter, _ := this.GetInt("Filter")
|
|
|
- activityId, _ := this.GetInt("ActivityId") // 仅用于判断【新】标签
|
|
|
+ isPower, _ := this.GetInt("IsPower")
|
|
|
+ activityId, _ := this.GetInt("ActivityId") // 仅用于判断【新】标签
|
|
|
+ isExternalLabel, _ := this.GetInt("IsExternalLabel") //
|
|
|
+ isResearchPoints, _ := this.GetInt("IsResearchPoints") //
|
|
|
|
|
|
var startSize int
|
|
|
if pageSize <= 0 {
|
|
@@ -158,28 +233,135 @@ func (this *ActivityController) ActivityListNew() {
|
|
|
}
|
|
|
startSize = utils.StartIndex(currentIndex, pageSize)
|
|
|
var condition string
|
|
|
+ var conditioninit string //初始化搜索条件
|
|
|
var pars []interface{}
|
|
|
- //var activityList []*models.ActivityDetail
|
|
|
- //mapDingActivityId := make(map[int]int)
|
|
|
+
|
|
|
+ //主题
|
|
|
+ if label != "" {
|
|
|
+ conditioninit += ` AND art.label LIKE "%` + label + `%" `
|
|
|
+ }
|
|
|
+ //行业名称
|
|
|
+ if len(chartPermissionIds) > 0 {
|
|
|
+ conditioninit += ` AND art.chart_permission_id IN (` + chartPermissionIds + `)`
|
|
|
+ }
|
|
|
+ //哪一天
|
|
|
+ if whichDay != "" {
|
|
|
+ var startDate string
|
|
|
+ var endDate string
|
|
|
+ if whichDay == "1" {
|
|
|
+ startDate = time.Now().Format(utils.FormatDate)
|
|
|
+ endDate = startDate
|
|
|
+ } else if whichDay == "2" {
|
|
|
+ startDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
|
|
|
+ endDate = startDate
|
|
|
+ } else if whichDay == "3" {
|
|
|
+ startDate = utils.GetNowWeekMonday().Format(utils.FormatDate)
|
|
|
+ endDate = utils.GetNowWeekSunday().Format(utils.FormatDate)
|
|
|
+ } else if whichDay == "4" {
|
|
|
+ startDate = utils.GetLastWeekMonday().Format(utils.FormatDate)
|
|
|
+ endDate = utils.GetLastWeekSunday().Format(utils.FormatDate)
|
|
|
+ } else if whichDay == "5" {
|
|
|
+ startDate = utils.GetNowMonthFirstDay().Format(utils.FormatDate)
|
|
|
+ endDate = utils.GetNowMonthLastDay().Format(utils.FormatDate)
|
|
|
+ } else if whichDay == "6" {
|
|
|
+ startDate = utils.GetLastMonthFirstDay().Format(utils.FormatDate)
|
|
|
+ endDate = utils.GetLastMonthLastDay().Format(utils.FormatDate)
|
|
|
+ } else if whichDay == "1,2" {
|
|
|
+ startDate = time.Now().Format(utils.FormatDate)
|
|
|
+ endDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
|
|
|
+ } else if whichDay == "3,4" {
|
|
|
+ startDate = utils.GetLastWeekMonday().Format(utils.FormatDate)
|
|
|
+ endDate = utils.GetNowWeekSunday().Format(utils.FormatDate)
|
|
|
+ } else if whichDay == "5,6" {
|
|
|
+ startDate = utils.GetLastMonthFirstDay().Format(utils.FormatDate)
|
|
|
+ endDate = utils.GetNowMonthLastDay().Format(utils.FormatDate)
|
|
|
+ } else {
|
|
|
+ startDate = time.Now().Format(utils.FormatDate)
|
|
|
+ endDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
|
|
|
+ }
|
|
|
+ conditioninit += ` AND art.activity_time >= ` + "'" + startDate + " 00:00:00'"
|
|
|
+ conditioninit += ` AND art.activity_time <= ` + "'" + endDate + " 23:59:59'"
|
|
|
+ }
|
|
|
+
|
|
|
+ //活动状态搜索
|
|
|
+ if activeState != "" {
|
|
|
+ // 默认查看未开始跟进行中
|
|
|
+ if activeState == "1" {
|
|
|
+ conditioninit += ` AND art.active_state IN (1,2)`
|
|
|
+ } else {
|
|
|
+ conditioninit += ` AND art.active_state IN (` + activeState + `)`
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ conditioninit += ` AND art.active_state IN (1,2)`
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果是分析师电话会,那么可以连同C类一起查看
|
|
|
+ if activityTypeId != "" {
|
|
|
+ if activityTypeId == strconv.Itoa(utils.ANALYST_TELL_ACTIVITY_TYPE_ID) {
|
|
|
+ conditioninit += ` AND art.activity_type_id IN (` + activityTypeId + "," + strconv.Itoa(utils.C_CLASS_ACTIVITY_TYPE_ID) + `)`
|
|
|
+ } else {
|
|
|
+ conditioninit += ` AND art.activity_type_id IN (` + activityTypeId + `)`
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //关键词搜索
|
|
|
+ if keyWord != "" {
|
|
|
+ conditioninit += ` AND (art.label REGEXP '` + keyWord + `' OR art.activity_name REGEXP '` + keyWord + `' ) `
|
|
|
+ }
|
|
|
+
|
|
|
+ //回放
|
|
|
+ if playBack == 1 {
|
|
|
+ //获取所有带回放的活动ID
|
|
|
+ playBackActivityIds, err := services.GetActivityPlayBackActivityIds()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ conditioninit += ` AND art.activity_id IN ( ` + playBackActivityIds + `) `
|
|
|
+ }
|
|
|
+
|
|
|
+ //音频视频 1:视频 2:音频
|
|
|
+ if filter > 0 {
|
|
|
+ videoOrVoiceActivityIds, err := services.GetActivityVideoOrVoiceActivityIds(filter)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ conditioninit += ` AND art.activity_id IN ( ` + videoOrVoiceActivityIds + `) `
|
|
|
+ }
|
|
|
+ if isExternalLabel == 1 && isResearchPoints == 1 {
|
|
|
+ conditioninit += ` AND ( art.is_external_label = 1 OR art.is_research_points = 1 )`
|
|
|
+ } else {
|
|
|
+ //是否为外部资源
|
|
|
+ if isExternalLabel == 1 {
|
|
|
+ conditioninit += ` AND art.is_external_label = 1 `
|
|
|
+ }
|
|
|
+ // 是否为研选扣点
|
|
|
+ if isResearchPoints == 1 {
|
|
|
+ conditioninit += ` AND art.is_research_points = 1 `
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
condition = ""
|
|
|
//活动可见限制
|
|
|
- conditionActivity, err := services.GetActivityonditionList(user, activityTypeId, chartPermissionIds, whichDay, activeState, label, 0, source, keyWord, playBack, 1)
|
|
|
+ //conditionActivity, err := services.GetActivityonditionList(user, activityTypeId, chartPermissionIds, whichDay, activeState, label, 0, source, keyWord, playBack, 1)
|
|
|
+ conditionActivity, err := services.ActivityConditioninitSql(user, conditioninit, isPower)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取活动权限数据失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- if source == 1 {
|
|
|
- condition += ` AND art.yidong_activity_id = '' `
|
|
|
- }
|
|
|
|
|
|
- condition += ` AND art.is_limit_people = 1 AND art.publish_status = 1 ` + conditionActivity
|
|
|
+ condition += ` AND art.publish_status = 1 ` + conditionActivity
|
|
|
total, err := models.GetActivityCount(condition, playBack, pars, filter)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
+ //return
|
|
|
var conditionOrder string
|
|
|
if activeState == "2" || activeState == "3" {
|
|
|
conditionOrder = ` ORDER BY art.activity_time DESC `
|
|
@@ -415,7 +597,12 @@ func (this *ActivityController) ActivityListNew() {
|
|
|
//if keyWord != "" {
|
|
|
// go services.AddActivitykeyWordSearch(keyWord, user)
|
|
|
//}
|
|
|
-
|
|
|
+ if len(activityList) == 0 {
|
|
|
+ activityList = make([]*models.ActivityListResp, 0)
|
|
|
+ }
|
|
|
+ if activityTypeId == "3" || activityTypeId == "5" {
|
|
|
+ resp.IsShowResearchPoints = true
|
|
|
+ }
|
|
|
//预处理返给前端的字段
|
|
|
resp.List = activityList
|
|
|
resp.Paging = page
|
|
@@ -476,7 +663,6 @@ func (this *ActivityController) Detail() {
|
|
|
return
|
|
|
}
|
|
|
activityInfo.SignupNum = signupCount
|
|
|
-
|
|
|
havePower, isResearchSpecial, err := services.GetActivityDetailUserPower(user, activityInfo)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
@@ -658,6 +844,22 @@ func (this *ActivityController) SignupAdd() {
|
|
|
}
|
|
|
activityId := req.ActivityId
|
|
|
signupType := req.SignupType
|
|
|
+ email := req.Email
|
|
|
+
|
|
|
+ //如果用户传了邮箱就绑定邮箱
|
|
|
+ if email != "" && user.Email == "" {
|
|
|
+ if !utils.ValidateEmailFormatat(req.Email) {
|
|
|
+ br.Msg = "邮箱格式错误,请重新输入"
|
|
|
+ br.ErrMsg = "邮箱格式错误,请重新输入"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ user.Email = req.Email
|
|
|
+ err = models.UpdateUserEmail(email, uid)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "绑定客户邮箱失败!"
|
|
|
+ }
|
|
|
+ }
|
|
|
hasPermission := 0
|
|
|
if signupType == 1 && user.Mobile == "" && user.OutboundMobile == "" {
|
|
|
resp.GoBindEmail = true
|
|
@@ -711,6 +913,18 @@ func (this *ActivityController) SignupAdd() {
|
|
|
br.ErrMsg = "获取对应销售失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+ popupMsg, err := services.CheckActivityUserAll(activityInfo, user)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "报名失败!"
|
|
|
+ br.ErrMsg = "CheckActivityUserAll,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if popupMsg != "" {
|
|
|
+ br.Msg = "报名失败!"
|
|
|
+ br.ErrMsg = fmt.Sprint("userId:", uid, "Activity:id", popupMsg)
|
|
|
+ return
|
|
|
+ }
|
|
|
//人数已满:FullStarffed、单机构超过两人:TwoPeople、爽约次数过多:BreakPromise、超时:Overtime 、成功:Success"`
|
|
|
//如果是下面几种情况则对报名信息做判断限制 (公司调研电话会(限制人数)、公司线下调研、专家/分析师线下沙龙)
|
|
|
//if (activityInfo.ActivityTypeId == 3 && activityInfo.IsLimitPeople == 1) || activityInfo.ActivityTypeId > 3 {
|
|
@@ -870,6 +1084,11 @@ func (this *ActivityController) SignupAdd() {
|
|
|
go services.ActivityUserRemind(user, activityInfo, 4)
|
|
|
resp.PopupMsg = "<b>报名成功,已加入您的活动日程</b><br/><br/>想要及时获取活动信息变更通知,请关注【查研观向小助手】公众号"
|
|
|
}
|
|
|
+
|
|
|
+ if activityInfo.IsResearchPoints {
|
|
|
+ resp.PopupMsg = "<b>报名成功,已加入您的活动日程</b><br/><br/>想要及时获取活动信息变更通知,请关注【查研观向小助手】公众号"
|
|
|
+ }
|
|
|
+ go services.YanXuanActivityPointsBillSignupAdd(activityId, uid) // 用户报名添加到处理研选扣点
|
|
|
}
|
|
|
|
|
|
} else {
|
|
@@ -982,6 +1201,12 @@ func (this *ActivityController) SignupCancel() {
|
|
|
br.ErrMsg = "操作失败,Err:" + errInfo.Error()
|
|
|
return
|
|
|
}
|
|
|
+ checkTime, _ := services.CheckSiginupDeadline(activityInfo)
|
|
|
+ if !checkTime {
|
|
|
+ br.Msg = "报名名单已提交举办方,若想取消,请联系对口销售"
|
|
|
+ br.ErrMsg = "报名名单已提交举办方,若想取消,请联系对口销售"
|
|
|
+ return
|
|
|
+ }
|
|
|
resultTime := utils.StrTimeToTime(activityInfo.ActivityTime) //时间字符串格式转时间格式
|
|
|
if time.Now().After(resultTime.Add(-time.Minute * 60)) {
|
|
|
if signupType == 1 {
|
|
@@ -989,6 +1214,7 @@ func (this *ActivityController) SignupCancel() {
|
|
|
} else {
|
|
|
br.Msg = "活动开始前1小时内无法取消报名,请联系对口销售处理"
|
|
|
}
|
|
|
+ br.ErrMsg = br.Msg
|
|
|
return
|
|
|
}
|
|
|
total, err := models.GetActivitySignupCount(uid, activityId)
|
|
@@ -1014,6 +1240,7 @@ func (this *ActivityController) SignupCancel() {
|
|
|
br.ErrMsg = "操作失败,Err:" + errSignup.Error()
|
|
|
return
|
|
|
}
|
|
|
+ go services.YanXuanActivityPointsBillSignupCancel(activityId, uid) // 用户取消报名添加到处理研选扣点
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "操作成功"
|
|
@@ -1721,6 +1948,8 @@ func (this *ActivityController) ActivityListSearch() {
|
|
|
item.IsYidongConduct = v.IsYidongConduct
|
|
|
item.IsCanOutboundCall = v.IsCanOutboundCall
|
|
|
item.IsLimitPeople = v.IsLimitPeople
|
|
|
+ item.IsResearchPoints = v.IsResearchPoints
|
|
|
+ item.SiginupDeadline = v.SiginupDeadline
|
|
|
// 判断是否属于研选类型的活动
|
|
|
if strings.Contains(v.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
|
|
|
item.IsResearch = true
|
|
@@ -2025,3 +2254,93 @@ func (this *ActivityController) ScheduleList() {
|
|
|
br.Msg = "获取成功"
|
|
|
br.Data = resp
|
|
|
}
|
|
|
+
|
|
|
+// @Title 活动报名之前的校验(权限、时间、点数、邮箱)
|
|
|
+// @Description 活动报名之前的校验(权限、时间、点数、邮箱)接口
|
|
|
+// @Param request body models.ActivityIdRep true "type json string"
|
|
|
+// @Success Ret=200 {object} models.SignupStatus
|
|
|
+// @router /check [post]
|
|
|
+func (this *ActivityController) Check() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ user := this.User
|
|
|
+ if user == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,用户信息为空"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var req models.ActivityIdRep
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ activityId := req.ActivityId
|
|
|
+ activityInfo, errInfo := models.GetAddActivityInfoById(activityId)
|
|
|
+ if activityInfo == nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "活动ID错误,不存在activityId:" + strconv.Itoa(activityId)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if errInfo != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "操作失败,Err:" + errInfo.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //这里的文案顺序提示 权限>时间>研选扣点>邮箱绑定。
|
|
|
+ resp := new(models.ActivityCheck)
|
|
|
+ hasPermission := 0
|
|
|
+ havePower, isResearchSpecial, err := services.GetActivityDetailUserPower(user, activityInfo)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "校验用户权限失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp.IsResearchSpecial = isResearchSpecial
|
|
|
+ if havePower {
|
|
|
+ hasPermission = 1
|
|
|
+ resp.CheckPermission = true
|
|
|
+ resp.HasPermission = hasPermission
|
|
|
+ } else {
|
|
|
+ hasPermission, sellerName, sellerMobile, popupMsg, err := services.GetUserHasPermission(user)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp.PopupMsg = popupMsg
|
|
|
+ resp.HasPermission = hasPermission
|
|
|
+ resp.SellerName = sellerName
|
|
|
+ resp.SellerMobile = sellerMobile
|
|
|
+ }
|
|
|
+ if resp.CheckPermission {
|
|
|
+ //如果权限通过了校验,那么就来校验时间
|
|
|
+ resp.CheckTime, resp.PopupMsg = services.CheckSiginupDeadline(activityInfo)
|
|
|
+ }
|
|
|
+ if resp.CheckTime {
|
|
|
+ // 如果时间通过校验就校验点数
|
|
|
+ resp.CheckPoints, resp.PopupMsg, resp.CompanyPoints, resp.ActivityPoints, err = services.CheckActivityPoints(activityInfo, user)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "CheckActivityPoints,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if resp.CheckPoints {
|
|
|
+ //如果通过点数的校验,就来校验邮箱
|
|
|
+ resp.CheckEmail, resp.PopupMsg = services.CheckActivityUserEmail(activityInfo, user)
|
|
|
+ }
|
|
|
+ // 判断是否属于研选类型的活动
|
|
|
+ if strings.Contains(activityInfo.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
|
|
|
+ resp.IsResearch = true
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Data = resp
|
|
|
+}
|