浏览代码

报名接口使用假数据调试

xingzai 3 年之前
父节点
当前提交
a515c5cb04
共有 2 个文件被更改,包括 158 次插入40 次删除
  1. 151 40
      controllers/activity.go
  2. 7 0
      models/activity_signup.go

+ 151 - 40
controllers/activity.go

@@ -2,6 +2,7 @@ package controllers
 
 import (
 	"encoding/json"
+	"fmt"
 	"hongze/hongze_cygx/models"
 	"hongze/hongze_cygx/utils"
 	"rdluck_tools/paging"
@@ -204,6 +205,89 @@ func (this *ActivityCoAntroller) ActivityList() {
 	br.Data = resp
 }
 
+// @Title 活动列表
+// @Description 获取活动列表接口
+// @Param   PageSize   query   int  true       "每页数据条数"
+// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
+// @Success 200 {object} models.GetCygxActivityListRep
+// @router /scheduleList [get]
+func (this *ActivityCoAntroller) ScheduleList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	user := this.User
+	if user == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		return
+	}
+	uid := user.UserId
+	pageSize, _ := this.GetInt("PageSize")
+	currentIndex, _ := this.GetInt("CurrentIndex")
+
+	var startSize int
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+	startSize = utils.StartIndex(currentIndex, pageSize)
+	var condition string
+	var pars []interface{}
+
+	condition += ` AND art.publish_status = 1 `
+
+	total, err := models.GetActivityCount(condition, pars)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+
+	list, errList := models.GetActivityListAll(condition, pars, uid, startSize, pageSize)
+	srt30min := "1,2,3"
+	srt60min := "4,5,6"
+	for k, v := range list {
+		if strings.Contains(srt30min, strconv.Itoa(v.ActivityTypeId)) {
+			resultTime := utils.StrTimeToTime(v.ActivityTime) //时间字符串格式转时间格式
+			if resultTime.After(time.Now()) {
+				list[k].ActiveState = "1"
+			} else if time.Now().After(resultTime) && resultTime.After(time.Now().Add(+time.Minute*30)) {
+				list[k].ActiveState = "2"
+			} else {
+				list[k].ActiveState = "3"
+			}
+		}
+		if strings.Contains(srt60min, strconv.Itoa(v.ActivityTypeId)) {
+			resultTime := utils.StrTimeToTime(v.ActivityTime) //时间字符串格式转时间格式
+			if resultTime.After(time.Now()) {
+				list[k].ActiveState = "1"
+			} else if time.Now().After(resultTime) && resultTime.After(time.Now().Add(+time.Minute*60)) {
+				list[k].ActiveState = "2"
+			} else {
+				list[k].ActiveState = "3"
+			}
+		}
+	}
+	if errList != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + errList.Error()
+		return
+	}
+	page := paging.GetPaging(currentIndex, pageSize, total)
+	resp := new(models.GetCygxActivityListRep)
+	resp.List = list
+	resp.Paging = page
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}
+
 // @Title  活动详情
 // @Description 获取活动详情接口
 // @Param   ActivityId   query   int  true       "活动ID"
@@ -265,6 +349,8 @@ func (this *ActivityCoAntroller) SignupAdd() {
 		return
 	}
 	uid := user.UserId
+	//var signupStatus string
+	signupStatus := ""
 	var req models.ActivitySingnupRep
 	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
 	if err != nil {
@@ -278,53 +364,78 @@ func (this *ActivityCoAntroller) SignupAdd() {
 		br.Msg = "请选择正确的报名方式!"
 		return
 	}
+	//SignupStatus string `description:"报名状态:人数已满:FullStarffed、单机构超过两人:TwoPeople、爽约次数过多:BreakPromise、超时:Overtime 、成功:Success"`
 	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小时内无法报名,请联系对口销售处理"
+	if activityId%5 == 1 {
+		signupStatus = "FullStarffed"
+		item.FailType = 1
+	} else if activityId%5 == 2 {
+		signupStatus = "TwoPeople"
+		item.FailType = 2
+	} else if activityId%5 == 3 {
+		signupStatus = "BreakPromise"
+		item.FailType = 3
+	} else if activityId%5 == 4 {
+		signupStatus = "Overtime"
+	} else if activityId%5 == 5 {
+		signupStatus = "Success"
+	}
+	fmt.Println(signupStatus)
+	if item.FailType > 1 {
+		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.AddActivitySignup(item)
+		if errSignup != nil {
+			br.Msg = "操作失败"
+			br.ErrMsg = "操作失败,Err:" + errSignup.Error()
+			return
 		}
-		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.AddActivitySignup(item)
-	if errSignup != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "操作失败,Err:" + errSignup.Error()
-		return
+	resp := new(models.SignupStatus)
+	resp.SignupType = signupType
+	resp.SignupStatus = signupStatus
+	if activityId%2 == 1 {
+		resp.GoFollow = true
 	}
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "操作成功"
+	br.Data = resp
 }
 
 // @Title 活动取消报名

+ 7 - 0
models/activity_signup.go

@@ -15,6 +15,13 @@ type CygxActivitySignup struct {
 	Email       string    `description:"邮箱"`
 	CompanyId   int       `description:"公司id"`
 	CompanyName string    `description:"公司名称"`
+	FailType    int       `description:"失败原因,0,未失败,1总人数已满,2单机构超限制,3,爽约次数超限"`
+}
+
+type SignupStatus struct {
+	SignupStatus string `description:"报名状态:人数已满:FullStarffed、单机构超过两人:TwoPeople、爽约次数过多:BreakPromise、超时:Overtime 、成功:Success"`
+	GoFollow     bool   `description:"是否去关注"`
+	SignupType   int    `description:"报名方式,1预约外呼,2我要报名"`
 }
 
 //报名记录日志