|
@@ -2,8 +2,10 @@ package services
|
|
|
|
|
|
import (
|
|
|
"errors"
|
|
|
+ "fmt"
|
|
|
"hongze/hongze_clpt/models"
|
|
|
"hongze/hongze_clpt/utils"
|
|
|
+ "strconv"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -49,14 +51,17 @@ func SpecialTripPopupMsg(activityInfo *models.CygxActivitySpecialDetail, user *m
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-//获取用户剩余报名次数
|
|
|
+// 获取用户剩余报名次数
|
|
|
+
|
|
|
+// 获取用户剩余报名次数
|
|
|
func GetTripRemainingtimesBycompany(user *models.WxUserItem, activityInfo *models.CygxActivitySpecialDetail) (errMsg string, tripRemaining int, err error) {
|
|
|
|
|
|
//获取 专项调研客户类型 //1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //3、分行业套餐客户(开通对应行业的正式客户) //4、仅开通专家套餐的正式客户 //5、开通对应行业套餐或专家套餐的试用客户;6、冻结客户;7、流失客户 8:行业升级套餐客户
|
|
|
msgTemplate := "您的专项调研次数已用完,如仍想参加,请与您的对口销售商议"
|
|
|
- var tripTota int
|
|
|
+ //var tripTota int
|
|
|
var airborneTota int
|
|
|
- userType, _, e := GetActivitySpecialUserType(user.CompanyId)
|
|
|
+ //userType, _, e := GetActivitySpecialUserType(user.CompanyId)
|
|
|
+ userType, _, e := GetUserType(user.CompanyId)
|
|
|
if e != nil {
|
|
|
err = errors.New("获取客户身份信息失败 GetActivitySpecialUserType, Err: " + e.Error())
|
|
|
return
|
|
@@ -79,20 +84,25 @@ func GetTripRemainingtimesBycompany(user *models.WxUserItem, activityInfo *model
|
|
|
err = errors.New("GetActivitySpecialTripAirborneCountByActivitySpecial, Err: " + e.Error())
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- condition += ` AND is_valid = 1 `
|
|
|
-
|
|
|
- tripTota, e = models.GetActivitySpecialTripCountByActivitySpecial(condition, pars)
|
|
|
+ //condition += ` AND is_valid = 1 `
|
|
|
+ //查询当年的数据
|
|
|
+ condition += ` AND create_time > ? `
|
|
|
+ pars = append(pars, time.Now().Format(utils.FormatDate))
|
|
|
+ listTripBill, e := models.GetCygxActivitySpecialTripBill(condition, pars)
|
|
|
if e != nil {
|
|
|
err = errors.New("GetActivitySpecialTripCountByActivitySpecial, Err: " + e.Error())
|
|
|
return
|
|
|
}
|
|
|
- tripTota += airborneTota
|
|
|
- if tripTota >= 12 {
|
|
|
+ var TripBillNum int
|
|
|
+ for _, v := range listTripBill {
|
|
|
+ TripBillNum += v.BillDetailed
|
|
|
+ }
|
|
|
+ tripRemaining = 10 - airborneTota + TripBillNum
|
|
|
+ if tripRemaining <= 0 {
|
|
|
errMsg = msgTemplate
|
|
|
return
|
|
|
}
|
|
|
- tripRemaining = 12 - tripTota
|
|
|
+ //tripRemaining = 12 - tripTota
|
|
|
} else {
|
|
|
var condition string
|
|
|
var pars []interface{}
|
|
@@ -108,20 +118,97 @@ func GetTripRemainingtimesBycompany(user *models.WxUserItem, activityInfo *model
|
|
|
err = errors.New("GetActivitySpecialTripAirborneCountByActivitySpecial, Err: " + e.Error())
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- condition += ` AND is_valid = 1 `
|
|
|
-
|
|
|
- tripTota, e = models.GetActivitySpecialTripCountByActivitySpecial(condition, pars)
|
|
|
+ //查询当年的数据
|
|
|
+ condition += ` AND create_time > ? `
|
|
|
+ pars = append(pars, time.Now().Format(utils.FormatDate))
|
|
|
+ listTripBill, e := models.GetCygxActivitySpecialTripBill(condition, pars)
|
|
|
if e != nil {
|
|
|
err = errors.New("GetActivitySpecialTripCountByActivitySpecial, Err: " + e.Error())
|
|
|
return
|
|
|
}
|
|
|
- tripTota += airborneTota
|
|
|
- if tripTota >= 6 {
|
|
|
+ var TripBillNum int
|
|
|
+ for _, v := range listTripBill {
|
|
|
+ TripBillNum += v.BillDetailed
|
|
|
+ }
|
|
|
+ tripRemaining = 5 - airborneTota + TripBillNum
|
|
|
+ if tripRemaining <= 0 {
|
|
|
errMsg = msgTemplate
|
|
|
return
|
|
|
}
|
|
|
- tripRemaining = 6 - tripTota
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 用户搜专项调研操作操作行为,模板消息推送
|
|
|
+func ActivitySpecialUserRmind(user *models.WxUserItem, activityId, TripStatus int) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendAlarmMsg("用户搜专项调研操作操作行为,模板消息推送失败"+err.Error(), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ countUser, err := models.GetUserRemind(user.UserId)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if countUser == 0 {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ var first string
|
|
|
+ var keyword1 string
|
|
|
+ var keyword2 string
|
|
|
+ var keyword3 string
|
|
|
+ var keyword4 string
|
|
|
+ var remark string
|
|
|
+ //获取销售手机号
|
|
|
+ sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if sellerItemQy != nil {
|
|
|
+ openIdList, e := models.GetWxOpenIdByMobileList(sellerItemQy.Mobile)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetSellerByAdminId, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ activityInfo, e := models.GetCygxActivitySpecialDetailById(user.UserId, activityId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxActivitySpecialDetailById, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if activityInfo == nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //TripStatus int `description:"行程进行状态 1:预报名,2:确定行程"`
|
|
|
+ if TripStatus == 1 {
|
|
|
+ first = fmt.Sprint(user.RealName, "--", user.CompanyName, ",有新的互动:专项调研预报名")
|
|
|
+ } else {
|
|
|
+ first = fmt.Sprint(user.RealName, "--", user.CompanyName, ",有新的互动:活动报名")
|
|
|
+ }
|
|
|
+ keyword1 = activityInfo.ResearchTheme
|
|
|
+ keyword2 = "__"
|
|
|
+ remark = "点击查看活动详情"
|
|
|
+ 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.WxMsgTemplateIdArticleUserRemind
|
|
|
+ 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
|
|
|
}
|