Эх сурвалжийг харах

Merge branch 'cygx_8.2' of http://8.136.199.33:3000/hongze/hongze_cygx into debug

xingzai 2 жил өмнө
parent
commit
a854714e90

+ 25 - 147
controllers/activity.go

@@ -3664,22 +3664,6 @@ func (this *ActivityCoAntroller) SpecialSignupAdd() {
 		return
 	}
 	activityId := req.ActivityId
-	hasPermission := 0
-	//判断是否已经申请过
-	applyCount, err := models.GetApplyRecordCount(uid)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
-		return
-	}
-	//获取FICC销售信息
-	sellerItem, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 1)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Msg = "申请失败"
-		br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
-		return
-	}
-
 	activityInfo, errInfo := models.GetCygxActivitySpecialDetail(activityId)
 	if activityInfo == nil {
 		br.Msg = "操作失败"
@@ -3691,137 +3675,15 @@ func (this *ActivityCoAntroller) SpecialSignupAdd() {
 		br.ErrMsg = "操作失败,Err:" + errInfo.Error()
 		return
 	}
-	//HasPermission "1:有该行业权限,正常展示,2:无该行业权限,3:潜在客户,未提交过申请,4:潜在客户,已提交过申请"`
-	//var companyDetailStatus string
-	if user.CompanyId > 1 {
-		companyPermission, err := models.GetCompanyPermission(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
-			return
-		}
-		if companyPermission == "" {
-			if applyCount > 0 {
-				hasPermission = 4
-			} else {
-				if sellerItem != nil {
-					hasPermission = 5
-				} else {
-					//获取权益销售信息 如果是FICC的客户类型,则默认他申请过
-					sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
-					if err != nil && err.Error() != utils.ErrNoRow() {
-						br.Msg = "获取信息失败"
-						br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
-						return
-					}
-					if sellerItemQy != nil {
-						hasPermission = 2
-						resp.SellerMobile = sellerItemQy.Mobile
-						resp.SellerName = sellerItemQy.RealName
-					} else {
-						hasPermission = 3
-					}
-				}
-			}
-			resp.HasPermission = hasPermission
-			resp.ActivityId = activityId
-			resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			br.Data = resp
-			return
-		}
-		companyDetail, err := models.GetCompanyDetailById(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取信息失败!"
-			br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
-			return
-		}
-		if companyDetail == nil {
-			br.Msg = "获取信息失败!"
-			br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId) + "CompanyId:" + strconv.Itoa(user.CompanyId)
-			return
-		}
-	}
-	var userType int
-	var permissionStr string
-	userType, permissionStr, err = services.GetUserType(user.CompanyId)
+	havePower, err := services.GetSpecialDetailUserPower(user, activityInfo)
 	if err != nil {
-		br.Msg = "获取信息失败!"
-		br.ErrMsg = "获取失败,Err:" + err.Error()
-		return
-	}
-	if userType == 1 && strings.Contains(activityInfo.ChartPermissionName, "研选") {
-		br.Msg = "您暂无查看该活动权限"
-		br.ErrMsg = "被分享客户不可见,永续客户无法查看研选行业"
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
 		return
 	}
-
-	if user.CompanyId > 1 {
-		companyItem, err := models.GetCompanyDetailById(user.CompanyId)
-		//冻结客户
-		if err != nil {
-			if err.Error() == utils.ErrNoRow() {
-				if applyCount > 0 {
-					hasPermission = 4
-				} else {
-					if sellerItem != nil {
-						hasPermission = 5
-					} else {
-						hasPermission = 3
-					}
-				}
-				resp.ActivityId = activityId
-				resp.HasPermission = hasPermission
-				resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
-				br.Ret = 200
-				br.Success = true
-				br.Msg = "获取成功"
-				br.Data = resp
-				return
-			} else {
-				br.Msg = "获取信息失败"
-				br.ErrMsg = "获取客户公司信息失败,Err:" + err.Error()
-				return
-			}
-		}
-		//判断是否有权限
-		var havePower bool
-		if strings.Contains(permissionStr, activityInfo.ActivityTypeName) {
-			havePower = true
-		}
-		if havePower {
-			hasPermission = 1
-		} else {
-			if companyItem.ProductId == 2 {
-				hasPermission = 2
-				resp.SellerMobile = companyItem.Mobile
-				resp.SellerName = companyItem.SellerName
-				if permissionStr == "专家" {
-					resp.PopupMsg = "您暂无权限参加【" + activityInfo.ActivityTypeName + "】类型活动,若想参加请联系对口销售--" + companyItem.SellerName + ":" + companyItem.Mobile
-				} else {
-					resp.PopupMsg = "您暂无权限参加【" + activityInfo.ChartPermissionName + "】行业活动,若想参加请联系对口销售--" + companyItem.SellerName + ":" + companyItem.Mobile
-				}
-			} else {
-				hasPermission = 5
-			}
-		}
-	} else { //潜在客户
-		if applyCount > 0 {
-			hasPermission = 4
-		} else {
-			if sellerItem != nil {
-				hasPermission = 5
-			} else {
-				hasPermission = 3
-			}
-		}
-		resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
-	}
-	resp.HasPermission = hasPermission
-	resp.ActivityId = activityId
-	if hasPermission == 1 {
+	//判断有没有对应的权限,如果没有则给出对应的状态码
+	if havePower {
+		resp.HasPermission = 1
 		total, err := models.GetUserCygxActivitySpecialSignup(user.UserId, activityId)
 		if err != nil {
 			br.Msg = "获取信息失败"
@@ -3856,8 +3718,7 @@ func (this *ActivityCoAntroller) SpecialSignupAdd() {
 				return
 			}
 			resp.Status = 1
-
-			////给所属销售发送消息
+			//给所属销售发送消息
 			if sellerItem.Mobile != "" {
 				openIpItem, _ := models.GetUserRecordByMobile(4, sellerItem.Mobile)
 				if openIpItem != nil && openIpItem.OpenId != "" {
@@ -3868,10 +3729,10 @@ func (this *ActivityCoAntroller) SpecialSignupAdd() {
 			}
 			// 给芳姐发消息
 			cnf, _ := models.GetConfigByCode("tpl_msg")
+			actList, _ := models.GetActivityListSpecialByActivityId(activityId)
 			if cnf != nil {
 				openIpItem, _ := models.GetUserRecordByMobile(4, cnf.ConfigValue)
 				if openIpItem != nil && openIpItem.OpenId != "" {
-					actList, _ := models.GetActivityListSpecialAll(activityId)
 					if len(actList) == 5 {
 						var companyName string
 						for _, v := range actList {
@@ -3881,6 +3742,11 @@ func (this *ActivityCoAntroller) SpecialSignupAdd() {
 					}
 				}
 			}
+			//感兴趣人数到达10人时,模板消息发送给活动负责人
+			if len(actList) == 2 {
+				go services.SendWxMsgActivitySpecial10(activityInfo)
+			}
+
 			//用户专项调研操作行为,模板消息推送
 			go services.SpecialActivityUserRemind(user, activityInfo, 1)
 		} else {
@@ -3892,7 +3758,19 @@ func (this *ActivityCoAntroller) SpecialSignupAdd() {
 			}
 			resp.Status = 2
 		}
+	} else {
+		hasPermission, sellerName, sellerMobile, err := services.GetUserHasPermission(user)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
+			return
+		}
+		resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
+		resp.HasPermission = hasPermission
+		resp.SellerName = sellerName
+		resp.SellerMobile = sellerMobile
 	}
+
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "操作成功"

+ 1 - 0
models/activity.go

@@ -828,6 +828,7 @@ type CygxActivitySpecialDetail struct {
 	ActiveState           int    `description:"活动进行状态 未开始:1、进行中2、已结束3"`
 	TripStatus            int    `description:"行程进行状态 1:预报名,2:确定行程"`
 	Explain               string `description:"说明"`
+	AdminId               int    `description:"管理员ID"`
 }
 
 type GetCygxActivitySpecialDetailListResp struct {

+ 8 - 0
models/activity_special_signup.go

@@ -60,6 +60,14 @@ func GetActivityListSpecialAll(activityId int) (items []*CygxActivitySpecialSign
 	return
 }
 
+//列表
+func GetActivityListSpecialByActivityId(activityId int) (items []*CygxActivitySpecialSignup, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT art.*  FROM cygx_activity_special_signup as art WHERE 1= 1 AND  activity_id = ? `
+	_, err = o.Raw(sql, activityId).QueryRows(&items)
+	return
+}
+
 type CygxActivitySpecialSignupResp struct {
 	Id          int       `orm:"column(id);pk"`
 	ActivityId  int       `description:"活动ID"`

+ 7 - 0
models/seller.go

@@ -47,6 +47,13 @@ func GetSellerByName(userName string) (item *AdminItem, err error) {
 	return
 }
 
+func GetSellerByAdminId(adminId int) (item *AdminItem, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT * FROM admin WHERE admin_id=?  `
+	err = o.Raw(sql, adminId).QueryRow(&item)
+	return
+}
+
 //获取本组的销售ID
 func GetSelleridWhichGroup(companyId, productId int) (adminId string, err error) {
 	o := orm.NewOrm()

+ 67 - 2
services/activity_special.go

@@ -640,8 +640,73 @@ func GetSpecialDetailUserPower(user *models.WxUserItem, activityInfo *models.Cyg
 	if total == 1 {
 		havePower = true
 	}
-	fmt.Println(havePower)
+	return
+}
+
+//预报名活动,感兴趣人数满10人时,推送给活动负责人和王芳
+func SendWxMsgActivitySpecial10(activityInfo *models.CygxActivitySpecialDetail) (err error) {
+	activityId := activityInfo.ActivityId
+	var msg string
+	defer func() {
+		if err != nil {
+			go utils.SendEmail("发送模版消息失败"+"【"+utils.APPNAME+"】"+time.Now().Format("2006-01-02 15:04:05"), msg+";Err:"+err.Error(), utils.EmailSendToUsers)
+			go utils.SendAlarmMsg(fmt.Sprint("预报名活动,感兴趣人数满10人时,推送给活动负责人和王芳消息发送失败", activityInfo.ResearchTheme, ", activityId"), 2)
+			utils.FileLog.Info("发送模版消息失败,Err:%s", err.Error())
+		}
+	}()
+	var first string
+	var keyword1 string
+	var keyword2 string
+	var keyword3 string
+	var keyword4 string
+	var remark string
+
+	adminUser, e := models.GetSellerByAdminId(activityInfo.AdminId)
+	if e != nil {
+		err = errors.New("GetSellerByAdminId, Err: " + e.Error())
+		return
+	}
+	cnf, _ := models.GetConfigByCode("tpl_msg")
+	mobile := adminUser.Mobile + "," + cnf.ConfigValue
 
-	fmt.Println(userType)
+	specialSignupList, e := models.GetActivityListSpecialByActivityId(activityId)
+	if e != nil {
+		err = errors.New("GetActivityListSpecialAll, Err: " + e.Error())
+		return
+	}
+	for _, v := range specialSignupList {
+		keyword1 += "【" + v.RealName + "--" + v.CompanyName + "】"
+	}
+	openIdList, e := models.GetWxOpenIdByMobileList(mobile)
+	if e != nil {
+		err = errors.New("GetSellerByAdminId, Err: " + e.Error())
+		return
+	}
+	first = "【" + activityInfo.ResearchTheme + "】已有10人预报名"
+	keyword3 = "-"
+	keyword2 = "-"
+	keyword4 = activityInfo.ResearchTheme
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	redirectUrl := utils.WX_MSG_PATH_ACTIVITY_SPECIAL_DETAIL + strconv.Itoa(activityId)
+	sendInfo := new(SendWxTemplate)
+	sendInfo.First = first
+	sendInfo.Keyword1 = keyword1
+	sendInfo.Keyword2 = keyword2
+	sendInfo.Keyword3 = keyword3
+	sendInfo.Keyword4 = keyword4
+	sendInfo.Remark = remark
+	sendInfo.TemplateId = utils.WxMsgTemplateIdAskMsgXzs
+	sendInfo.RedirectUrl = redirectUrl
+	sendInfo.RedirectTarget = 3
+	sendInfo.Resource = strconv.Itoa(activityId)
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
+	sendInfo.OpenIdArr = openIdArr
+	err = PublicSendTemplateMsg(sendInfo)
+	if err != nil {
+		return
+	}
 	return
 }

+ 2 - 1
utils/constants.go

@@ -141,5 +141,6 @@ const (
 
 //模板消息地址路由
 const (
-	WX_MSG_PATH_ARTICLE_DETAIL = "pageMy/reportDetail/reportDetail?id="
+	WX_MSG_PATH_ARTICLE_DETAIL          = "pageMy/reportDetail/reportDetail?id="          //文章详情模板消息地址
+	WX_MSG_PATH_ACTIVITY_SPECIAL_DETAIL = "activityPages/specialDetail/specialDetail?id=" //专项调研活动模板消息地址
 )