Browse Source

查研观向10.12

xingzai 1 year ago
parent
commit
bb847bf87d

+ 41 - 1
controllers/cygx/activity.go

@@ -96,6 +96,9 @@ func (this *ActivityCoAntroller) PreserveAndPublish() {
 		req.Scale = ""
 		req.CustomerTypeIds = ""
 	}
+	if req.IsResearchPoints == 0 {
+		req.SiginupDeadline = ""
+	}
 	activityId := req.ActivityId
 	labelType := req.LabelType
 	labelList := req.List
@@ -1114,6 +1117,9 @@ func (this *ActivityCoAntroller) Detail() {
 		return
 	}
 	if PointsSetDetail != nil {
+		if PointsSetDetail.CancelDeadlineType == "0" {
+			PointsSetDetail.CancelDeadlineType = ""
+		}
 		activityInfo.PointsSet = PointsSetDetail
 	} else {
 		activityInfo.PointsSet = new(cygx.CygxActivityPointsSetRsq)
@@ -1122,7 +1128,7 @@ func (this *ActivityCoAntroller) Detail() {
 	if activityInfo.VisibleRange == 0 {
 		activityInfo.VisibleRange = 2
 	}
-
+	//activityInfo.CancelDeadlineType = cygxService.ActivityCancelDeadlineType(activityInfo) //处理活动取消报名截止时间类型展示
 	activityInfo.VoiceList = VoiceReqList
 	activityInfo.VideoDetail = VideoDetail
 	activityInfo.ShowType = detail.ShowType
@@ -1413,3 +1419,37 @@ func (this *ActivityCoAntroller) CompanySearch() {
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// @Title 报名截止时间设置
+// @Description 报名截止时间设置接口
+// @Success Ret=200
+// @router /activity/deadlineSet [get]
+func (this *ActivityCoAntroller) DeadlineSet() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	AdminUser := this.SysUser
+	if AdminUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		return
+	}
+	list := make([]cygx.SendGroupStr, 0)
+	list = append(list, cygx.SendGroupStr{
+		Id:   "1",
+		Name: "同报名截止时间",
+	})
+	list = append(list, cygx.SendGroupStr{
+		Id:   "2",
+		Name: "活动开始前24小时",
+	})
+	list = append(list, cygx.SendGroupStr{
+		Id:   "3",
+		Name: "活动开始前48小时",
+	})
+	br.Ret = 200
+	br.Success = true
+	br.Data = list
+}

+ 38 - 28
controllers/cygx/activity_signup.go

@@ -296,13 +296,13 @@ func (this *ActivitySignupCoAntroller) AppointmentList() {
 	}
 	for k, v := range list {
 		//公司调研电话会的活动,研选扣点的展示自主拨入,非扣点的展示预约外呼
-		if activityInfo.ActivityTypeId == 3 {
-			if activityInfo.IsResearchPoints == 1 {
-				v.SignupType = 2
-			} else {
-				v.SignupType = 1
-			}
-		}
+		//if activityInfo.ActivityTypeId == 3 {
+		//	if activityInfo.IsResearchPoints == 1 {
+		//		v.SignupType = 2
+		//	} else {
+		//		v.SignupType = 1
+		//	}
+		//}
 		list[k].SellerName = v.PsellerName
 	}
 	respList := new(cygx.GetAppointmentListRep)
@@ -1362,28 +1362,28 @@ func (this *ActivitySignupCoAntroller) SignupFailExport() {
 	sqlStrOther := sqlStr
 	var listReminder []*cygx.CygxAppointmentList
 	var summaryList []*cygx.CygxAppointmentList
-	if activityInfo.ActivityTypeId == 1 || activityInfo.ActivityTypeId == 2 {
-		var err error
-		//消息提醒
-		listReminder, err = cygx.GetCygxActivityMeetingReminderList(activityId, sqlStrOther)
-		if err != nil {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取失败,Err:" + err.Error()
-			return
-		}
-		//预约纪要
-		summaryList, err = cygx.GetCygxAppointmentSummaryList(activityId, sqlStrOther)
-		if err != nil {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取失败,Err:" + err.Error()
-			return
-		}
-		if excelType == 1 {
-			sqlStr += ` AND  s.signup_type = 1 `
-		} else if excelType == 2 {
-			sqlStr += ` AND  s.signup_type != 1 `
-		}
+	//if activityInfo.ActivityTypeId == 1 || activityInfo.ActivityTypeId == 2 {
+	var err error
+	//消息提醒
+	listReminder, err = cygx.GetCygxActivityMeetingReminderList(activityId, sqlStrOther)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
 	}
+	//预约纪要
+	summaryList, err = cygx.GetCygxAppointmentSummaryList(activityId, sqlStrOther)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	if excelType == 1 {
+		sqlStr += ` AND  s.signup_type = 1 `
+	} else if excelType == 2 {
+		sqlStr += ` AND  s.signup_type != 1 `
+	}
+	//}
 	list, err := cygx.GetCygxAppointmentList(activityId, sqlStr)
 	if err != nil {
 		br.Msg = "获取失败"
@@ -2280,9 +2280,19 @@ func (this *ActivitySignupCoAntroller) SignupCancel() {
 			resultTime := utils.StrTimeToTime(activityInfo.ActivityTime) //时间字符串格式转时间格式
 			if time.Now().After(resultTime.Add(-time.Minute * 60)) {
 				br.Msg = "报名名单已发送至办会平台,请联系相关人员处理。"
+				br.ErrMsg = fmt.Sprint("UserId:", detail.UserId, "ActivityId:", detail.ActivityId)
 				return
 			}
 		}
+		//取消报名截止时间校验
+		//if activityInfo.CancelDeadline != utils.EmptyDateTimeStr {
+		//	cancelDeadline := utils.StrTimeToTime(activityInfo.CancelDeadline) //时间字符串格式转时间格式
+		//	if time.Now().After(cancelDeadline) {
+		//		br.Msg = "当前时间晚于取消报名截止时间,已无法取消报名。"
+		//		br.ErrMsg = fmt.Sprint("UserId:", detail.UserId, "ActivityId:", detail.ActivityId)
+		//		return
+		//	}
+		//}
 	}
 	_, err = cygx.CancelActivitySignup(detail)
 	if err != nil {

+ 3 - 0
models/cygx/activity.go

@@ -225,6 +225,7 @@ type CygxActivity struct {
 	IsBClass                int       `description:"是否为B类电话会 1是,0否"`
 	IsNeedEmail             int       `description:"是否需要提供邮箱 1是,0否"`
 	SiginupDeadline         string    `description:"报名截止时间"`
+	CancelDeadline          string    `description:"取消报名截止时间"`
 	IsResearchPoints        int       `description:"是否为研选扣点  1是,0否"`
 }
 
@@ -390,6 +391,7 @@ func EditActivity(item *CygxActivity, oldPublishStatus int, industrialActivityIt
 	updateParams["IsNeedEmail"] = item.IsNeedEmail
 	updateParams["SiginupDeadline"] = item.SiginupDeadline
 	updateParams["IsResearchPoints"] = item.IsResearchPoints
+	updateParams["CancelDeadline"] = item.CancelDeadline
 	//修改活动信息
 	ptrStructOrTableName := "cygx_activity"
 	whereParam := map[string]interface{}{"activity_id": item.ActivityId}
@@ -502,6 +504,7 @@ func EditActivity(item *CygxActivity, oldPublishStatus int, industrialActivityIt
 				updateParams["PointsType"] = itemPointsSet.PointsType
 				updateParams["CompanyPointsNum"] = itemPointsSet.CompanyPointsNum
 				updateParams["ModifyTime"] = itemPointsSet.ModifyTime
+				updateParams["CancelDeadlineType"] = itemPointsSet.CancelDeadlineType
 				//修改活动信息
 				ptrStructOrTableName = "cygx_activity_points_set"
 				whereParam := map[string]interface{}{"activity_id": itemPointsSet.ActivityId}

+ 19 - 17
models/cygx/activity_points_set.go

@@ -18,26 +18,28 @@ type YanXuanActivityPointsRedis struct {
 }
 
 type CygxActivityPointsSet struct {
-	Id               int       `gorm:"column:id;primary_key;AUTO_INCREMENT" json:"id"`
-	ActivityId       int       `gorm:"column:activity_id;NOT NULL" json:"activity_id"`                         // 活动ID
-	PointsObject     string    `gorm:"column:points_object;default:1;NOT NULL" json:"points_object"`           // 扣点对象,1:参会人、2:办会人、3:办会人和参会人
-	CompanyId        int       `gorm:"column:company_id;default:0;NOT NULL" json:"company_id"`                 // 公司ID
-	CompanyName      string    `gorm:"column:company_name;NOT NULL" json:"company_name"`                       // 公司名称
-	UserPointsNum    string    `gorm:"column:user_points_num;default:0;NOT NULL" json:"user_points_num"`       // 参会人扣点数量
-	PointsType       string    `gorm:"column:points_type;default:0;NOT NULL" json:"points_type"`               // 扣点形式,1:报名即扣点,2:到会即扣点
-	CompanyPointsNum string    `gorm:"column:company_points_num;default:0;NOT NULL" json:"company_points_num"` // 办会人扣点数量
-	CreateTime       time.Time `gorm:"column:create_time;NOT NULL" json:"create_time"`                         // 创建时间
-	ModifyTime       time.Time `gorm:"column:modify_time;NOT NULL" json:"modify_time"`                         // 更新时间
+	Id                 int       `gorm:"column:id;primary_key;AUTO_INCREMENT" json:"id"`
+	ActivityId         int       `gorm:"column:activity_id;NOT NULL" json:"activity_id"`                             // 活动ID
+	PointsObject       string    `gorm:"column:points_object;default:1;NOT NULL" json:"points_object"`               // 扣点对象,1:参会人、2:办会人、3:办会人和参会人
+	CompanyId          int       `gorm:"column:company_id;default:0;NOT NULL" json:"company_id"`                     // 公司ID
+	CompanyName        string    `gorm:"column:company_name;NOT NULL" json:"company_name"`                           // 公司名称
+	UserPointsNum      string    `gorm:"column:user_points_num;default:0;NOT NULL" json:"user_points_num"`           // 参会人扣点数量
+	PointsType         string    `gorm:"column:points_type;default:0;NOT NULL" json:"points_type"`                   // 扣点形式,1:报名即扣点,2:到会即扣点
+	CompanyPointsNum   string    `gorm:"column:company_points_num;default:0;NOT NULL" json:"company_points_num"`     // 办会人扣点数量
+	CancelDeadlineType string    `gorm:"column:cancel_deadline_type;default:0;NOT NULL" json:"cancel_deadline_type"` // 取消报名截止时间类型,0:不设置,1:同报名截止时间, 2:24小时之前、3:48小时之前
+	CreateTime         time.Time `gorm:"column:create_time;NOT NULL" json:"create_time"`                             // 创建时间
+	ModifyTime         time.Time `gorm:"column:modify_time;NOT NULL" json:"modify_time"`                             // 更新时间
 }
 
 type CygxActivityPointsSetRsq struct {
-	ActivityId       int    `gorm:"column:activity_id;NOT NULL" json:"ActivityId"`                        // 活动ID
-	PointsObject     string `gorm:"column:points_object;NOT NULL" json:"PointsObject"`                    // 扣点对象,1:参会人、2:办会人、3:办会人和参会人
-	CompanyId        int    `gorm:"column:company_id;default:0;NOT NULL" json:"CompanyId"`                // 公司ID
-	CompanyName      string `gorm:"column:company_name;NOT NULL" json:"CompanyName"`                      // 公司名称
-	UserPointsNum    string `gorm:"column:user_points_num;default:0;NOT NULL" json:"UserPointsNum"`       // 参会人扣点数量
-	PointsType       string `gorm:"column:points_type;default:0;NOT NULL" json:"PointsType"`              // 扣点形式,1:报名即扣点,2:到会即扣点
-	CompanyPointsNum string `gorm:"column:company_points_num;default:0;NOT NULL" json:"CompanyPointsNum"` // 办会人扣点数量
+	ActivityId         int    `gorm:"column:activity_id;NOT NULL" json:"ActivityId"`                        // 活动ID
+	PointsObject       string `gorm:"column:points_object;NOT NULL" json:"PointsObject"`                    // 扣点对象,1:参会人、2:办会人、3:办会人和参会人
+	CompanyId          int    `gorm:"column:company_id;default:0;NOT NULL" json:"CompanyId"`                // 公司ID
+	CompanyName        string `gorm:"column:company_name;NOT NULL" json:"CompanyName"`                      // 公司名称
+	UserPointsNum      string `gorm:"column:user_points_num;default:0;NOT NULL" json:"UserPointsNum"`       // 参会人扣点数量
+	PointsType         string `gorm:"column:points_type;default:0;NOT NULL" json:"PointsType"`              // 扣点形式,1:报名即扣点,2:到会即扣点
+	CompanyPointsNum   string `gorm:"column:company_points_num;default:0;NOT NULL" json:"CompanyPointsNum"` // 办会人扣点数量
+	CancelDeadlineType string `description:"取消报名截止时间类型,0:不设置,1:同报名截止时间, 2:24小时之前、3:48小时之前"`
 }
 
 type CygxActivityPointsSetConfigListResp struct {

+ 7 - 1
models/cygx/activity_signup.go

@@ -5,7 +5,7 @@ import (
 	"hongze/hz_crm_api/models/company"
 	"hongze/hz_crm_api/utils"
 
-	//"hongze/hz_crm_api/models"
+	//"hongze/hongze_admin/models"
 	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
@@ -37,6 +37,7 @@ type CygxSignupList struct {
 	IsCanAppointmentMinutes int    `description:"是否可预约纪要 1是 ,0 否 默认0 "`
 	IsCancel                int    `description:"是否取消,1是,0否"`
 	IsYidongConduct         int    `description:"是否属于易董办会 1:是 、0:否"`
+	IsResearchPoints        int    `description:"是否为研选扣点  1是,0否"`
 }
 
 type GetCygxSignupListRep struct {
@@ -1101,6 +1102,11 @@ type SendGroup struct {
 	Name string
 }
 
+type SendGroupStr struct {
+	Id   string
+	Name string
+}
+
 type PermissionList struct {
 	CompanyId  int
 	Permission string

+ 9 - 0
routers/commentsRouter.go

@@ -511,6 +511,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:ActivityCoAntroller"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:ActivityCoAntroller"],
+        beego.ControllerComments{
+            Method: "DeadlineSet",
+            Router: `/activity/deadlineSet`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:ActivityCoAntroller"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:ActivityCoAntroller"],
         beego.ControllerComments{
             Method: "Delete",

+ 35 - 2
services/cygx/acitvity.go

@@ -499,6 +499,26 @@ func CheckActivityAddAppointment(activityInfo *cygx.ActivityDetail) (isProhibit
 	return
 }
 
+//// 处理活动取消报名截止时间类型展示
+//func ActivityCancelDeadlineType(activityInfo *cygx.ActivityDetail) (cancelDeadlineType int) {
+//	//CancelDeadlineType      int                       `description:"取消报名截止时间类型,0:不设置,1:24小时之前、2:48小时之前"`
+//	//如果时间是初始值或者为空,就是默认为0 状态
+//	if activityInfo.CancelDeadline == "" || activityInfo.CancelDeadline == utils.EmptyDateTimeStr {
+//		cancelDeadlineType = 0
+//		return
+//	}
+//	activityTime := utils.StrTimeToTime(activityInfo.ActivityTime)     //时间字符串格式转时间格式
+//	cancelDeadline := utils.StrTimeToTime(activityInfo.CancelDeadline) //时间字符串格式转时间格式
+//	hourNum := activityTime.Sub(cancelDeadline).Hours()
+//	if hourNum == 24 {
+//		cancelDeadlineType = 1
+//	}
+//	if hourNum == 48 {
+//		cancelDeadlineType = 2
+//	}
+//	return
+//}
+
 // 解析查研观向的模板内容
 func ActivityBodyAnalysis(body string, activeState int, req cygx.ActivityRep) (itemr *cygx.CygxActivity, errstr string) {
 	item := new(cygx.CygxActivity)
@@ -569,14 +589,27 @@ func ActivityBodyAnalysis(body string, activeState int, req cygx.ActivityRep) (i
 					errstr = "时间格式错误,请按照模板时间格式填写!"
 					return
 				}
-				//如果报名时间不为空,那么就做校验、
-				if req.SiginupDeadline != "" {
+				//如果报名时间不为空,而且是买方研选活动那么就做校验、
+				if req.SiginupDeadline != "" && strings.Contains(req.PermissionName, utils.CHART_PERMISSION_NAME_MF_YANXUAN) {
 					siginupDeadline := utils.StrTimeToTime(req.SiginupDeadline)
 					if siginupDeadline.After(resultTime) && activeState == 0 {
 						errstr = "截止时间需早于活动开始时间!"
 						return
 					}
 				}
+				//设置取消报名截止时间为会前一小时
+				item.CancelDeadline = resultTime.Add(-time.Hour * 1).Format(utils.FormatDateTime)
+				if req.IsResearchPoints == 1 {
+					if req.PointsSet.CancelDeadlineType == "1" && req.SiginupDeadline != "" {
+						item.CancelDeadline = req.SiginupDeadline
+					}
+					if req.PointsSet.CancelDeadlineType == "2" {
+						item.CancelDeadline = resultTime.Add(-time.Hour * 24).Format(utils.FormatDateTime)
+					}
+					if req.PointsSet.CancelDeadlineType == "3" {
+						item.CancelDeadline = resultTime.Add(-time.Hour * 48).Format(utils.FormatDateTime)
+					}
+				}
 			}
 		}
 		if strings.Contains(contentTxt, "主讲人:") {

+ 1 - 0
services/cygx/activity_points_set.go

@@ -131,6 +131,7 @@ func CheckActivityPointsSet(pointsSet *cygx.CygxActivityPointsSetRsq, activityId
 	item.UserPointsNum = pointsSet.UserPointsNum
 	item.PointsType = pointsSet.PointsType
 	item.CompanyPointsNum = pointsSet.CompanyPointsNum
+	item.CancelDeadlineType = pointsSet.CancelDeadlineType
 	item.CreateTime = time.Now()
 	item.ModifyTime = time.Now()
 	itemResp = item