|
@@ -246,12 +246,12 @@ func (this *ActivityCoAntroller) Detail() {
|
|
|
br.Data = activityInfo
|
|
|
}
|
|
|
|
|
|
-// @Title 活动的报名
|
|
|
-// @Description 活动的报名接口
|
|
|
-// @Param request body models.ActivityIdRep true "type json string"
|
|
|
+// @Title 活动报名
|
|
|
+// @Description 活动报名接口
|
|
|
+// @Param request body models.ActivitySingnupRep true "type json string"
|
|
|
// @Success 200 操作成功
|
|
|
// @router /signup/add [post]
|
|
|
-func (this *ActivityCoAntroller) PublishAndCancel() {
|
|
|
+func (this *ActivityCoAntroller) SignupAdd() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
this.Data["json"] = br
|
|
@@ -265,7 +265,7 @@ func (this *ActivityCoAntroller) PublishAndCancel() {
|
|
|
return
|
|
|
}
|
|
|
uid := user.UserId
|
|
|
- var req models.ActivityIdRep
|
|
|
+ var req models.ActivitySingnupRep
|
|
|
err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
if err != nil {
|
|
|
br.Msg = "参数解析异常!"
|
|
@@ -273,6 +273,11 @@ func (this *ActivityCoAntroller) PublishAndCancel() {
|
|
|
return
|
|
|
}
|
|
|
activityId := req.ActivityId
|
|
|
+ signupType := req.SignupType
|
|
|
+ if signupType != 1 && signupType != 2 {
|
|
|
+ br.Msg = "请选择正确的报名方式!"
|
|
|
+ return
|
|
|
+ }
|
|
|
item := new(models.CygxActivitySignup)
|
|
|
activityInfo, errInfo := models.GetAddActivityInfoById(activityId)
|
|
|
if activityInfo == nil {
|
|
@@ -285,6 +290,25 @@ func (this *ActivityCoAntroller) PublishAndCancel() {
|
|
|
br.ErrMsg = "操作失败,Err:" + errInfo.Error()
|
|
|
return
|
|
|
}
|
|
|
+ resultTime := utils.StrTimeToTime(activityInfo.ActivityTime) //时间字符串格式转时间格式
|
|
|
+ if time.Now().After(resultTime.Add(-time.Minute * 60)) {
|
|
|
+ if signupType == 1 {
|
|
|
+ br.Msg = "活动开始前1小时内无法预约外呼,请联系对口销售处理"
|
|
|
+ } else {
|
|
|
+ br.Msg = "活动开始前1小时内无法报名,请联系对口销售处理"
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+ total, err := models.GetActivitySignupCount(uid, activityId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if total > 0 {
|
|
|
+ br.Msg = "您已报名这个活动"
|
|
|
+ return
|
|
|
+ }
|
|
|
item.UserId = uid
|
|
|
item.ActivityId = activityId
|
|
|
item.CreateTime = time.Now()
|
|
@@ -303,6 +327,87 @@ func (this *ActivityCoAntroller) PublishAndCancel() {
|
|
|
br.Msg = "操作成功"
|
|
|
}
|
|
|
|
|
|
+// @Title 活动取消报名
|
|
|
+// @Description 活动取消报名接口
|
|
|
+// @Param request body models.ActivitySingnupRep true "type json string"
|
|
|
+// @Success 200 操作成功
|
|
|
+// @router /signup/cancel [post]
|
|
|
+func (this *ActivityCoAntroller) SignupCancel() {
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ uid := user.UserId
|
|
|
+ var req models.ActivitySingnupRep
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ activityId := req.ActivityId
|
|
|
+ signupType := req.SignupType
|
|
|
+ if signupType != 1 && signupType != 2 {
|
|
|
+ br.Msg = "请选择正确的报名方式!"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item := new(models.CygxActivitySignup)
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ resultTime := utils.StrTimeToTime(activityInfo.ActivityTime) //时间字符串格式转时间格式
|
|
|
+ if time.Now().After(resultTime.Add(-time.Minute * 60)) {
|
|
|
+ if signupType == 1 {
|
|
|
+ br.Msg = "活动开始前1小时内无法取消预约外呼,请联系对口销售处理"
|
|
|
+ } else {
|
|
|
+ br.Msg = "活动开始前1小时内无法取消报名,请联系对口销售处理"
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+ total, err := models.GetActivitySignupCount(uid, activityId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if total == 0 {
|
|
|
+ br.Msg = "您暂未报名这个活动"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item.UserId = uid
|
|
|
+ item.ActivityId = activityId
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.Mobile = user.Mobile
|
|
|
+ item.Email = user.Email
|
|
|
+ item.CompanyId = user.CompanyId
|
|
|
+ item.CompanyName = user.CompanyName
|
|
|
+ _, errSignup := models.CancelActivitySignup(item)
|
|
|
+ if errSignup != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "操作失败,Err:" + errSignup.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "操作成功"
|
|
|
+}
|
|
|
+
|
|
|
// @Title 用户搜索详情
|
|
|
// @Description 获取用户搜索详情接口
|
|
|
// @Param IsShowJurisdiction query int true "是否仅展示有权限的,1是,0否 默认为0"
|
|
@@ -328,17 +433,9 @@ func (this *ActivityCoAntroller) GetUserSearchContent() {
|
|
|
br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- //ChartPermissionids string `description:"行业id"`
|
|
|
- //ActivityTypeids string `description:"活动类型id"`
|
|
|
- //ActiveState string `description:
|
|
|
- //IsShowJurisdiction int `description:"是否仅展示有权限的,1是,0否"`
|
|
|
chartPermissionidsSlice := strings.Split(detail.ChartPermissionids, ",")
|
|
|
activityTypeidsSlice := strings.Split(detail.ActivityTypeids, ",")
|
|
|
- activeStateSlice := strings.Split(detail.ActiveState, ",")
|
|
|
-
|
|
|
- //activeStateSlice := [3]int{1, 2, 3} //"活动进行状态 未开始:1、进行中2、已结束3"`
|
|
|
-
|
|
|
+ activeStateSlice := strings.Split(detail.ActiveState, ",") //"活动进行状态 未开始:1、进行中2、已结束3"`
|
|
|
listActivityType, errActivityType := models.GetActivityTypeList()
|
|
|
if errActivityType != nil {
|
|
|
br.Msg = "获取失败"
|
|
@@ -368,12 +465,10 @@ func (this *ActivityCoAntroller) GetUserSearchContent() {
|
|
|
resp := new(models.ActivityUserSearchContentList)
|
|
|
resp.ListActivityType = listActivityType
|
|
|
resp.ListChartPermission = listChartPermissionid
|
|
|
-
|
|
|
if detail.IsShowJurisdiction == 1 {
|
|
|
resp.IsShowJurisdiction = true
|
|
|
}
|
|
|
activeStateList := []models.ActivityStaus{models.ActivityStaus{Id: 1, StatusName: "未开始"}, models.ActivityStaus{Id: 2, StatusName: "进行中"}, models.ActivityStaus{Id: 3, StatusName: "已结束"}}
|
|
|
-
|
|
|
for _, v := range activeStateSlice {
|
|
|
for k2, v2 := range activeStateList {
|
|
|
if strconv.Itoa(v2.Id) == v {
|
|
@@ -390,24 +485,3 @@ func (this *ActivityCoAntroller) GetUserSearchContent() {
|
|
|
br.Msg = "获取成功"
|
|
|
br.Data = resp
|
|
|
}
|
|
|
-
|
|
|
-type Arrayse struct {
|
|
|
- Id int
|
|
|
- IsChoose bool
|
|
|
- Name string
|
|
|
-}
|
|
|
-
|
|
|
-//"list" : [
|
|
|
-// {
|
|
|
-// "id" :1,
|
|
|
-// "IsChoose": bool
|
|
|
-// },
|
|
|
-// {
|
|
|
-// "id" :2,
|
|
|
-// "IsChoose": bool
|
|
|
-// },
|
|
|
-// {
|
|
|
-// "id" :3,
|
|
|
-// "IsChoose": bool
|
|
|
-// }
|
|
|
-//]
|