|
@@ -938,29 +938,27 @@ func HandleArticleListByApi(artcleId int) (err error) {
|
|
|
//}
|
|
|
|
|
|
// 过滤策略平台报告,研选报告重复推送,以及权限勾选的推送
|
|
|
-func DoArticleOnenIdWxTemplateMsg(articleId int) (err error) {
|
|
|
+func DoArticleOnenIdWxTemplateMsg(articleId int) {
|
|
|
|
|
|
+ var err error
|
|
|
//策略平台同步过来的文章ID,做微信模板消息推送,同一篇报告12小时只推送一次
|
|
|
cacheKey := fmt.Sprint(utils.CACHE_KEY_ARTICLE_ID_TEMPLATE, ":ArticleId", articleId)
|
|
|
ttlTime := utils.Rc.GetRedisTTL(cacheKey)
|
|
|
if ttlTime > 0 {
|
|
|
fmt.Println(ttlTime)
|
|
|
- return err
|
|
|
+ return
|
|
|
}
|
|
|
- var msg string
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
|
go utils.SendAlarmMsg("过滤策略平台报告,研选报告重复推送,以及权限勾选的推送失败 DoArticleOnenIdWxTemplateMsg ErrMsg:"+err.Error(), 2)
|
|
|
fmt.Println(err)
|
|
|
}
|
|
|
- if msg != "" {
|
|
|
- utils.FileLog.Info("发送模版消息失败,msg:%s", msg)
|
|
|
- }
|
|
|
}()
|
|
|
|
|
|
//获取文章详情
|
|
|
- articleInfo, err := models.GetArticleDetailById(articleId)
|
|
|
- if err != nil {
|
|
|
+ articleInfo, e := models.GetArticleDetailById(articleId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetArticleDetailById, Err: " + e.Error())
|
|
|
return
|
|
|
}
|
|
|
articleInfo.Abstract, _ = GetReportContentTextSub(articleInfo.Abstract)
|
|
@@ -968,10 +966,13 @@ func DoArticleOnenIdWxTemplateMsg(articleId int) (err error) {
|
|
|
|
|
|
//固收的权限,暂时当策略的逻辑一样处理
|
|
|
var chartPermissionName string
|
|
|
- reportMapDetail, err := models.GetdetailByCategoryIdPush(articleInfo.CategoryId)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
+ var permissionName string
|
|
|
+ reportMapDetail, e := models.GetdetailByCategoryIdPush(articleInfo.CategoryId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetdetailByCategoryIdPush, Err: " + e.Error())
|
|
|
+ return
|
|
|
}
|
|
|
+ permissionName = reportMapDetail.ChartPermissionName
|
|
|
if reportMapDetail.ChartPermissionId == utils.CE_LUE_ID {
|
|
|
chartPermissionId = utils.CE_LUE_ID
|
|
|
} else if reportMapDetail.ChartPermissionId == utils.GU_SHOU_ID_CHART {
|
|
@@ -982,9 +983,10 @@ func DoArticleOnenIdWxTemplateMsg(articleId int) (err error) {
|
|
|
} else {
|
|
|
chartPermissionName = reportMapDetail.ChartPermissionName + "(客观)"
|
|
|
}
|
|
|
- chartPermissionDetail, err := models.GetChartPermissionByRemark(chartPermissionName)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
+ chartPermissionDetail, e := models.GetChartPermissionByRemark(chartPermissionName)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetdetailByCategoryIdPush, Err: " + e.Error())
|
|
|
+ return
|
|
|
}
|
|
|
chartPermissionId = chartPermissionDetail.ChartPermissionId
|
|
|
}
|
|
@@ -994,84 +996,10 @@ func DoArticleOnenIdWxTemplateMsg(articleId int) (err error) {
|
|
|
var industrialManagementId string
|
|
|
if chartPermissionId == utils.CE_LUE_ID || chartPermissionId == utils.GU_SHOU_ID_CHART {
|
|
|
industryName = reportMapDetail.SubCategoryName
|
|
|
- } else {
|
|
|
- if articleInfo.ReportType == 2 {
|
|
|
- detailIndustryNameList, err := models.GetIndustrialManagemenDetailByAaticleID(articleId)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- return err
|
|
|
- }
|
|
|
- //如果不存在关联的产业则不推送
|
|
|
- if len(detailIndustryNameList) == 0 {
|
|
|
- return err
|
|
|
- }
|
|
|
- for _, v := range detailIndustryNameList {
|
|
|
- industryName += v.IndustryName + ","
|
|
|
- industrialManagementId += strconv.Itoa(v.IndustrialManagementId) + ","
|
|
|
- }
|
|
|
- industryName = strings.TrimRight(industryName, ",")
|
|
|
- industrialManagementId = strings.TrimRight(industrialManagementId, ",")
|
|
|
-
|
|
|
- //处理勾选了全部行业赛道的用户
|
|
|
- var allIn string
|
|
|
- allIn = DoXzsChooseSend(reportMapDetail.ChartPermissionName)
|
|
|
- if allIn != "" {
|
|
|
- allInList, err := models.GetCygxXzsChooseSendByAllIn(allIn)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- return err
|
|
|
- }
|
|
|
- if len(allInList) > 0 {
|
|
|
- var allInUserId string
|
|
|
- for _, v := range allInList {
|
|
|
- allInUserId += strconv.Itoa(v.UserId) + ","
|
|
|
- }
|
|
|
- allInUserId = strings.TrimRight(allInUserId, ",")
|
|
|
-
|
|
|
- userFllowIndustrialList, err := models.GetUserFllowIndustrialListByUserIdAndIndustrial(allInUserId, industrialManagementId)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- return err
|
|
|
- }
|
|
|
- mapUserFllowed := make(map[string]int)
|
|
|
- for _, v := range userFllowIndustrialList {
|
|
|
- //用户ID与其关注的产业组成唯一索引,判断是否存在,如果不存在就进行自动关注
|
|
|
- mapUserFllowed[fmt.Sprint("uid:", v.UserId, "_Industrial:", v.IndustrialManagementId)] = v.UserId
|
|
|
- }
|
|
|
- //获取这些allIN用户的的信息进行遍历生成需要插入的数据
|
|
|
- userList, err := models.GetWxUserListByUserIds(allInUserId)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- return err
|
|
|
- }
|
|
|
- var industryFllowItems []*models.CygxIndustryFllow
|
|
|
- for _, v := range detailIndustryNameList {
|
|
|
- for _, vUser := range userList {
|
|
|
- //如果用户这个用户没有关注这个产业就进行自动关注
|
|
|
- if mapUserFllowed[fmt.Sprint("uid:", vUser.UserId, "_Industrial:", v.IndustrialManagementId)] == 0 {
|
|
|
- item := new(models.CygxIndustryFllow)
|
|
|
- item.IndustrialManagementId = v.IndustrialManagementId
|
|
|
- item.UserId = vUser.UserId
|
|
|
- item.Email = vUser.Email
|
|
|
- item.Mobile = vUser.Mobile
|
|
|
- item.RealName = vUser.RealName
|
|
|
- item.CompanyId = vUser.CompanyId
|
|
|
- item.CompanyName = vUser.CompanyName
|
|
|
- item.Source = 3
|
|
|
- item.Type = 1
|
|
|
- item.CreateTime = time.Now()
|
|
|
- item.ModifyTime = time.Now()
|
|
|
- industryFllowItems = append(industryFllowItems, item)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- err = models.AddCygxIndustryFllowMulti(industryFllowItems)
|
|
|
- if err != nil {
|
|
|
- go utils.SendAlarmMsg("用户关注全部赛道,出现新赛道批量添加失败 ,AddCygxIndustryFllowMulti ErrMsg:"+err.Error(), 2)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
// 获取所有有权的用户的 openid
|
|
|
- mapOpenidPower := make(map[int]string)
|
|
|
+ //mapOpenidPower := make(map[int]string)
|
|
|
permissionIdList := make([]string, 0)
|
|
|
var condition string
|
|
|
var pars []interface{}
|
|
@@ -1086,9 +1014,21 @@ func DoArticleOnenIdWxTemplateMsg(articleId int) (err error) {
|
|
|
condition += ` AND p.chart_permission_id IN (` + utils.GetOrmInReplace(len(slicepermissionId)) + ` ) `
|
|
|
pars = append(pars, permissionIdList)
|
|
|
}
|
|
|
- openidPowerListMobile, err := models.GetCygxUserRecordPower(condition, pars)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
+ openidPowerListMobile, e := models.GetCygxUserRecordPower(condition, pars)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxUserRecordPower, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取拒绝接收推送的的用户的 openid
|
|
|
+ mapOpenidRefuset := make(map[int]string)
|
|
|
+ openidRefusetList, e := models.GetCygxUserRefusetOpenid()
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxUserRefusetOpenid, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range openidRefusetList {
|
|
|
+ mapOpenidRefuset[v.UserId] = v.OpenId
|
|
|
}
|
|
|
|
|
|
var mobileArr []string
|
|
@@ -1096,248 +1036,415 @@ func DoArticleOnenIdWxTemplateMsg(articleId int) (err error) {
|
|
|
mobileArr = append(mobileArr, v.Mobile)
|
|
|
}
|
|
|
openidPowerList, err := models.GetWxOpenIdByMobileSliceList(mobileArr)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetWxOpenIdByMobileSliceList, Err: " + e.Error())
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
//四大行业的行业综述报告,对所有开通了对应行业权限的客户都推送。
|
|
|
- if articleInfo.ReportType == 1 && chartPermissionId != utils.CE_LUE_ID && chartPermissionId != utils.GU_SHOU_ID_CHART {
|
|
|
+ if articleInfo.ReportType == 1 && permissionName != utils.CE_LUE_NAME && permissionName != utils.GU_SHOU_NAME && permissionName != utils.ZHOU_QI_NAME {
|
|
|
+ keyword1 := "【" + articleInfo.SubCategoryName + "】有报告发布/更新"
|
|
|
+ //openIditem := new(models.OpenIdList)
|
|
|
+ var openIdArr []string
|
|
|
for _, item := range openidPowerList {
|
|
|
- first := "您关注的赛道,有新的报告发布/更新,欢迎查看"
|
|
|
- keyword1 := "【" + articleInfo.SubCategoryName + "】有报告发布/更新"
|
|
|
- openIditem := new(models.OpenIdList)
|
|
|
- openIditem.OpenId = item.OpenId
|
|
|
- openIditem.UserId = item.UserId
|
|
|
- SendWxMsgWithArticleUpdate(first, keyword1, articleInfo.Title, articleInfo.PublishDate, articleInfo.Abstract, openIditem, articleId)
|
|
|
+ if mapOpenidRefuset[item.UserId] != "" {
|
|
|
+ continue // 拒绝消息推送的用户不接收模版消息
|
|
|
+ }
|
|
|
+ openIdArr = append(openIdArr, item.OpenId)
|
|
|
}
|
|
|
- return err
|
|
|
- }
|
|
|
- for _, v := range openidPowerList {
|
|
|
- mapOpenidPower[v.UserId] = v.OpenId
|
|
|
+ go SendWxMsgWithArticleUpdateList(keyword1, articleInfo.Title, articleInfo.PublishDate, articleInfo.Abstract, openIdArr, articleId)
|
|
|
+ return
|
|
|
}
|
|
|
- //获取关注这个文章对应产业的用户的 openid
|
|
|
- mapOpenidFllow := make(map[int]string)
|
|
|
- if chartPermissionId != utils.CE_LUE_ID && chartPermissionId != utils.GU_SHOU_ID_CHART {
|
|
|
- openidFllowListMobile, err := models.GetCygxUserFllowOpenid(articleId)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
+ //for _, v := range openidPowerList {
|
|
|
+ // mapOpenidPower[v.UserId] = v.OpenId
|
|
|
+ //}
|
|
|
|
|
|
- var mobileArrFllow []string
|
|
|
- for _, v := range openidFllowListMobile {
|
|
|
- mobileArrFllow = append(mobileArrFllow, v.Mobile)
|
|
|
+ if permissionName == utils.CE_LUE_NAME || permissionName == utils.GU_SHOU_NAME {
|
|
|
+ celueListUninterested, e := models.GetCygxXzsChooseCategoryListFollowType(articleInfo.CategoryId, 3)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxXzsChooseCategoryListFollowType " + e.Error())
|
|
|
+ return
|
|
|
}
|
|
|
-
|
|
|
- openidFllowList, err := models.GetWxOpenIdByMobileSliceList(mobileArrFllow)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
+ mapUninterestedClue := make(map[int]string)
|
|
|
+ for _, v := range celueListUninterested {
|
|
|
+ mapUninterestedClue[v.UserId] = "_"
|
|
|
+ mapOpenidRefuset[v.UserId] = "_" //归类成拒绝推送的人
|
|
|
}
|
|
|
-
|
|
|
- for _, v := range openidFllowList {
|
|
|
- mapOpenidFllow[v.UserId] = v.OpenId
|
|
|
+ keyword1 := "【" + articleInfo.SubCategoryName + "】有报告发布/更新"
|
|
|
+ var openIdArr []string
|
|
|
+ for _, item := range openidPowerList {
|
|
|
+ if mapOpenidRefuset[item.UserId] != "" {
|
|
|
+ continue // 拒绝消息推送的用户不接收模版消息
|
|
|
+ }
|
|
|
+ openIdArr = append(openIdArr, item.OpenId)
|
|
|
}
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- //获取拒绝接收推送的的用户的 openid
|
|
|
- mapOpenidRefuset := make(map[int]string)
|
|
|
- openidRefusetList, err := models.GetCygxUserRefusetOpenid()
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- for _, v := range openidRefusetList {
|
|
|
- mapOpenidRefuset[v.UserId] = v.OpenId
|
|
|
- }
|
|
|
- //获取提交过推送规则的用户的 openid
|
|
|
- mapUserIdChooseSend := make(map[int]int)
|
|
|
- mapUserIdChooseSendTypeNoPermission := make(map[int]int)
|
|
|
- chooseSendtList, err := models.GetCygxXzsChooseSend()
|
|
|
- for _, v := range chooseSendtList {
|
|
|
- mapUserIdChooseSend[v.UserId] = v.UserId
|
|
|
- if v.IsRefuse == 1 {
|
|
|
- continue
|
|
|
+ go SendWxMsgWithArticleUpdateList(keyword1, articleInfo.Title, articleInfo.PublishDate, articleInfo.Abstract, openIdArr, articleId)
|
|
|
+ return
|
|
|
+ } else if permissionName == utils.ZHOU_QI_NAME {
|
|
|
+ if articleInfo.SeriesName == "" {
|
|
|
+ articleInfo.SeriesName = articleInfo.FieldName
|
|
|
}
|
|
|
- //获取选择主客观赛道的用户
|
|
|
- if reportMapDetail.PermissionType == 1 {
|
|
|
- if v.IsSubjective == 1 {
|
|
|
- mapUserIdChooseSendTypeNoPermission[v.UserId] = v.UserId
|
|
|
- }
|
|
|
- } else {
|
|
|
- if v.IsObjective == 1 {
|
|
|
- mapUserIdChooseSendTypeNoPermission[v.UserId] = v.UserId
|
|
|
+ zhouqiListUninterested, e := models.GetCygxXzsChooseCategoryZhouqiListFollowType(articleInfo.FieldName, articleInfo.SeriesName, 3)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxXzsChooseCategoryListFollowType " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mapUninterestedClue := make(map[int]string)
|
|
|
+ for _, v := range zhouqiListUninterested {
|
|
|
+ mapUninterestedClue[v.UserId] = "_"
|
|
|
+ mapOpenidRefuset[v.UserId] = "_" //归类成拒绝推送的人
|
|
|
+ }
|
|
|
+ keyword1 := "【" + articleInfo.SubCategoryName + "】有报告发布/更新"
|
|
|
+ var openIdArr []string
|
|
|
+ for _, item := range openidPowerList {
|
|
|
+ if mapOpenidRefuset[item.UserId] != "" {
|
|
|
+ continue // 拒绝消息推送的用户不接收模版消息
|
|
|
}
|
|
|
+ openIdArr = append(openIdArr, item.OpenId)
|
|
|
}
|
|
|
- }
|
|
|
- //已经推送了的openid
|
|
|
- mapOpenidPushed := make(map[int]string)
|
|
|
+ go SendWxMsgWithArticleUpdateList(keyword1, articleInfo.Title, articleInfo.PublishDate, articleInfo.Abstract, openIdArr, articleId)
|
|
|
+ return
|
|
|
+ } else {
|
|
|
|
|
|
- keyword2 := articleInfo.Title
|
|
|
- keyword3 := time.Now().Format(utils.FormatDateTime)
|
|
|
- keyword4 := articleInfo.Abstract
|
|
|
- mapAlreadySend := make(map[int]int)
|
|
|
- //如果是策略就按照策略的推送方式来写
|
|
|
- if reportMapDetail.ChartPermissionName == utils.CE_LUE_NAME || reportMapDetail.ChartPermissionName == utils.GU_SHOU_NAME {
|
|
|
- //获取提交过推送规则的用户的 openid
|
|
|
- mapUserFllowCeLue := make(map[int]string)
|
|
|
- userFllowCeLueList, err := models.GetCygxUserFllowCeLueOpenid(articleInfo.CategoryId)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- for _, v := range userFllowCeLueList {
|
|
|
- mapUserFllowCeLue[v.UserId] = v.OpenId
|
|
|
+ //if articleInfo.ReportType == 2 {
|
|
|
+ detailIndustryNameList, e := models.GetIndustrialManagemenDetailByAaticleID(articleId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetIndustrialManagemenDetailByAaticleID, Err: " + e.Error())
|
|
|
+ return
|
|
|
}
|
|
|
- for k, v := range mapOpenidPower {
|
|
|
- if mapOpenidPushed[k] != "" {
|
|
|
- continue
|
|
|
- }
|
|
|
- openIditem := new(models.OpenIdList)
|
|
|
- openIditem.UserId = k
|
|
|
- openIditem.OpenId = v
|
|
|
- first := "您关注的赛道,有新的报告发布/更新,欢迎查看"
|
|
|
- keyword1 := "【" + articleInfo.SubCategoryName + "】有报告发布/更新"
|
|
|
- mapActivityUserId := make(map[int]string)
|
|
|
- if articleInfo.ReportType == 2 {
|
|
|
- sliceSubjectId, _ := models.GetSubjectIds(articleId)
|
|
|
- if sliceSubjectId != "" {
|
|
|
- appointmentList, err := models.GetCygxAppointmentSummaryBySubjectId(sliceSubjectId)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("GetCygxAppointmentSummaryListBySubjectId Err:", err.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
- var userIds []string
|
|
|
- if len(appointmentList) > 0 {
|
|
|
- for _, v := range appointmentList {
|
|
|
- //fmt.Println("mapActivityUserId:", v.UserId)
|
|
|
- userIds = append(userIds, strconv.Itoa(v.UserId))
|
|
|
- mapActivityUserId[v.UserId] += v.ActivityName + ","
|
|
|
- }
|
|
|
- userIdstr := strings.Join(userIds, ",")
|
|
|
- openIdLists, err := models.GetOpenIdByUserIds(userIdstr)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("GetOpenIdByUserIds Err:", err.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
- for _, item := range openIdLists {
|
|
|
- first := "您预约的调研,有关联的纪要发布/更新了"
|
|
|
- keyword1 := industryName
|
|
|
- openIditem := new(models.OpenIdList)
|
|
|
- openIditem.OpenId = item.OpenId
|
|
|
- openIditem.UserId = item.UserId
|
|
|
- if _, ok := mapAlreadySend[openIditem.UserId]; !ok {
|
|
|
- SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
|
|
|
- delete(mapUserIdChooseSendTypeNoPermission, openIditem.UserId)
|
|
|
- fmt.Println("AlreadySend:", openIditem.UserId)
|
|
|
- mapAlreadySend[openIditem.UserId] = openIditem.UserId
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //fmt.Println("openIditem.UserId:", openIditem.UserId)
|
|
|
- //if _,ok := mapActivityUserId[openIditem.UserId]; ok{
|
|
|
- // first = "您预约的调研,有关联的纪要发布/更新了"
|
|
|
- // keyword1 = industryName
|
|
|
- // SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
|
|
|
- // delete(mapUserIdChooseSendTypeNoPermission, openIditem.UserId)
|
|
|
- // mapAlreadySend[openIditem.UserId] = openIditem.UserId
|
|
|
- //}
|
|
|
+ //如果不存在关联的产业则不推送
|
|
|
+ if len(detailIndustryNameList) == 0 {
|
|
|
+ return
|
|
|
+ } else {
|
|
|
+
|
|
|
+ var industrialIds []int
|
|
|
+ for _, v := range detailIndustryNameList {
|
|
|
+ industrialIds = append(industrialIds, v.IndustrialManagementId)
|
|
|
}
|
|
|
- _, ok := mapAlreadySend[openIditem.UserId]
|
|
|
- //如果有权限而且小助手没有提交过信息的 就做正常推送
|
|
|
- if mapUserIdChooseSend[openIditem.UserId] == 0 && !ok {
|
|
|
- fmt.Println("1:", articleId)
|
|
|
- SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
|
|
|
+ var conditionFollow string
|
|
|
+ var parsFollow []interface{}
|
|
|
+ //根据产业关注ID,获取用户不感兴趣的产业信息
|
|
|
+ conditionFollow = " AND industrial_management_id IN (" + utils.GetOrmInReplace(len(industrialIds)) + ") AND follow_type = 3 "
|
|
|
+ parsFollow = append(parsFollow, industrialIds)
|
|
|
+ userFllowListUninterested, e := models.GetCygxIndustryFllowListByCon(conditionFollow, parsFollow)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxIndustryFllowList, Err: " + e.Error())
|
|
|
+ return
|
|
|
}
|
|
|
- //如果小助手勾选了对应的权限信息 就做正常推送
|
|
|
- if mapUserIdChooseSend[openIditem.UserId] != 0 && mapUserFllowCeLue[openIditem.UserId] != "" && !ok {
|
|
|
- fmt.Println("2:", articleId)
|
|
|
- SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
|
|
|
+ var userFllowNum = make(map[int]int)
|
|
|
+ for _, v := range userFllowListUninterested {
|
|
|
+ userFllowNum[v.UserId]++
|
|
|
+ //如果活动对应的产业数量,跟用户不感兴趣的产业数量一致,就不做推送
|
|
|
+ if userFllowNum[v.UserId] == len(detailIndustryNameList) {
|
|
|
+ mapOpenidRefuset[v.UserId] = "_"
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
- } else {
|
|
|
- for k, v := range mapOpenidPower {
|
|
|
- if mapOpenidPushed[k] != "" {
|
|
|
- continue
|
|
|
+ for _, v := range detailIndustryNameList {
|
|
|
+ industryName += v.IndustryName + ","
|
|
|
+ industrialManagementId += strconv.Itoa(v.IndustrialManagementId) + ","
|
|
|
+ }
|
|
|
+ industryName = strings.TrimRight(industryName, ",")
|
|
|
+ industrialManagementId = strings.TrimRight(industrialManagementId, ",")
|
|
|
+ //}
|
|
|
+
|
|
|
+ keyword1 := fmt.Sprint("【", industryName, "】有报告发布/更新")
|
|
|
+ keyword2 := articleInfo.Title
|
|
|
+ keyword3 := time.Now().Format(utils.FormatDateTime)
|
|
|
+ keyword4 := articleInfo.Abstract
|
|
|
+ sliceSubjectId, _ := models.GetSubjectIds(articleId)
|
|
|
+ var appointmentList []*models.CygxAppointment
|
|
|
+ var mapOpenidSubjectId = make(map[int]string) //预约相关纪要的用户
|
|
|
+ if sliceSubjectId != "" {
|
|
|
+ appointmentList, e = models.GetCygxAppointmentSummaryBySubjectId(sliceSubjectId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxAppointmentSummaryBySubjectId, Err: " + e.Error())
|
|
|
+ return
|
|
|
}
|
|
|
- mapUserIdChooseSendType := make(map[int]int)
|
|
|
- for _, vS := range chooseSendtList {
|
|
|
- if vS.IsRefuse == 1 {
|
|
|
- continue
|
|
|
+ var userIds []string
|
|
|
+ if len(appointmentList) > 0 {
|
|
|
+ for _, v := range appointmentList {
|
|
|
+ userIds = append(userIds, strconv.Itoa(v.UserId))
|
|
|
}
|
|
|
- //获取选择主客观赛道的用户
|
|
|
- if reportMapDetail.PermissionType == 1 {
|
|
|
- if vS.IsSubjective == 1 {
|
|
|
- mapUserIdChooseSendType[vS.UserId] = vS.UserId
|
|
|
- }
|
|
|
- } else if reportMapDetail.PermissionType == 2 {
|
|
|
- if vS.IsObjective == 1 {
|
|
|
- mapUserIdChooseSendType[vS.UserId] = vS.UserId
|
|
|
- }
|
|
|
- } else {
|
|
|
- if vS.IsSubjective == 1 || vS.IsObjective == 1 {
|
|
|
- mapUserIdChooseSendType[vS.UserId] = vS.UserId
|
|
|
- }
|
|
|
+ userIdstr := strings.Join(userIds, ",")
|
|
|
+ openIdLists, e := models.GetOpenIdByUserIds(userIdstr)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetOpenIdByUserIds, Err: " + e.Error())
|
|
|
+ return
|
|
|
}
|
|
|
- }
|
|
|
- openIditem := new(models.OpenIdList)
|
|
|
- openIditem.UserId = k
|
|
|
- openIditem.OpenId = v
|
|
|
- first := "您关注的赛道,有新的报告发布/更新,欢迎查看"
|
|
|
- keyword1 := "【" + articleInfo.SubCategoryName + "】有报告发布/更新"
|
|
|
- mapActivityUserId := make(map[int]string)
|
|
|
- if articleInfo.ReportType == 2 {
|
|
|
- keyword1 = fmt.Sprint("【", industryName, "】有报告发布/更新")
|
|
|
- sliceSubjectId, _ := models.GetSubjectIds(articleId)
|
|
|
- if sliceSubjectId != "" {
|
|
|
- appointmentList, err := models.GetCygxAppointmentSummaryBySubjectId(sliceSubjectId)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("GetCygxAppointmentSummaryListBySubjectId Err:", err.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
- var userIds []string
|
|
|
- if len(appointmentList) > 0 {
|
|
|
- for _, v := range appointmentList {
|
|
|
- //fmt.Println("mapActivityUserId:", v.UserId)
|
|
|
- userIds = append(userIds, strconv.Itoa(v.UserId))
|
|
|
- mapActivityUserId[v.UserId] += v.ActivityName + ","
|
|
|
- }
|
|
|
- userIdstr := strings.Join(userIds, ",")
|
|
|
- openIdLists, err := models.GetOpenIdByUserIds(userIdstr)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("GetOpenIdByUserIds Err:", err.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
- for _, item := range openIdLists {
|
|
|
- //first := "您预约的调研,有关联的纪要发布/更新了"
|
|
|
- //keyword1 := industryName
|
|
|
- openIditem := new(models.OpenIdList)
|
|
|
- openIditem.OpenId = item.OpenId
|
|
|
- openIditem.UserId = item.UserId
|
|
|
- if _, ok := mapAlreadySend[openIditem.UserId]; !ok {
|
|
|
- SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
|
|
|
- delete(mapUserIdChooseSendTypeNoPermission, openIditem.UserId)
|
|
|
- fmt.Println("AlreadySend:", openIditem.UserId)
|
|
|
- mapAlreadySend[openIditem.UserId] = openIditem.UserId
|
|
|
- }
|
|
|
- }
|
|
|
+ keyword1 = industryName
|
|
|
+ var openIdArr []string
|
|
|
+ for _, item := range openIdLists {
|
|
|
+ if mapOpenidRefuset[item.UserId] != "" {
|
|
|
+ continue // 拒绝消息推送的用户不接收模版消息
|
|
|
}
|
|
|
+ openIdArr = append(openIdArr, item.OpenId)
|
|
|
+ mapOpenidSubjectId[item.UserId] = "_"
|
|
|
}
|
|
|
+ go SendWxMsgWithArticleUpdateList(industryName, keyword2, keyword3, keyword4, openIdArr, articleId)
|
|
|
}
|
|
|
-
|
|
|
- //如果有权限而且小助手没有提交过信息的 就做正常推送
|
|
|
- _, ok := mapAlreadySend[openIditem.UserId]
|
|
|
- if mapUserIdChooseSend[openIditem.UserId] == 0 && !ok {
|
|
|
- SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
|
|
|
- delete(mapUserIdChooseSendTypeNoPermission, openIditem.UserId)
|
|
|
- mapAlreadySend[openIditem.UserId] = openIditem.UserId
|
|
|
- }
|
|
|
- //如果小助手勾选了对应的权限信息 就做正常推送
|
|
|
- if mapUserIdChooseSend[openIditem.UserId] != 0 && mapOpenidFllow[openIditem.UserId] != "" && mapUserIdChooseSendType[openIditem.UserId] > 0 && !ok {
|
|
|
- SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
|
|
|
- delete(mapUserIdChooseSendTypeNoPermission, openIditem.UserId)
|
|
|
- mapAlreadySend[openIditem.UserId] = openIditem.UserId
|
|
|
+ }
|
|
|
+ var openIdArr2 []string
|
|
|
+ for _, item := range openidPowerList {
|
|
|
+ if mapOpenidRefuset[item.UserId] != "" || mapOpenidSubjectId[item.UserId] != "" {
|
|
|
+ continue // 拒绝消息推送的用户不接收模版消息
|
|
|
}
|
|
|
+ openIdArr2 = append(openIdArr2, item.OpenId)
|
|
|
}
|
|
|
+ go SendWxMsgWithArticleUpdateList(keyword1, keyword2, keyword3, keyword4, openIdArr2, articleId)
|
|
|
}
|
|
|
+
|
|
|
+ ////获取关注这个文章对应产业的用户的 openid
|
|
|
+ //mapOpenidFllow := make(map[int]string)
|
|
|
+ //if chartPermissionId != utils.CE_LUE_ID && chartPermissionId != utils.GU_SHOU_ID_CHART && chartPermissionId != utils.ZHOU_QI_ID {
|
|
|
+ // openidFllowListMobile, e := models.GetCygxUserFllowOpenid(articleId)
|
|
|
+ // if e != nil {
|
|
|
+ // err = errors.New("GetCygxUserFllowOpenid, Err: " + e.Error())
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // var mobileArrFllow []string
|
|
|
+ // for _, v := range openidFllowListMobile {
|
|
|
+ // mobileArrFllow = append(mobileArrFllow, v.Mobile)
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // openidFllowList, e := models.GetWxOpenIdByMobileSliceList(mobileArrFllow)
|
|
|
+ // if e != nil {
|
|
|
+ // err = errors.New("GetWxOpenIdByMobileSliceList, Err: " + e.Error())
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // for _, v := range openidFllowList {
|
|
|
+ // mapOpenidFllow[v.UserId] = v.OpenId
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ //
|
|
|
+ ////获取提交过推送规则的用户的 openid
|
|
|
+ //mapUserIdChooseSend := make(map[int]int)
|
|
|
+ //mapUserIdChooseSendTypeNoPermission := make(map[int]int)
|
|
|
+ //chooseSendtList, e := models.GetCygxXzsChooseSend()
|
|
|
+ //if e != nil {
|
|
|
+ // err = errors.New("GetCygxXzsChooseSend, Err: " + e.Error())
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ //for _, v := range chooseSendtList {
|
|
|
+ // mapUserIdChooseSend[v.UserId] = v.UserId
|
|
|
+ // if v.IsRefuse == 1 {
|
|
|
+ // continue
|
|
|
+ // }
|
|
|
+ // //获取选择主客观赛道的用户
|
|
|
+ // if reportMapDetail.PermissionType == 1 {
|
|
|
+ // if v.IsSubjective == 1 {
|
|
|
+ // mapUserIdChooseSendTypeNoPermission[v.UserId] = v.UserId
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // if v.IsObjective == 1 {
|
|
|
+ // mapUserIdChooseSendTypeNoPermission[v.UserId] = v.UserId
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ ////已经推送了的openid
|
|
|
+ //mapOpenidPushed := make(map[int]string)
|
|
|
+ //
|
|
|
+ //keyword2 := articleInfo.Title
|
|
|
+ //keyword3 := time.Now().Format(utils.FormatDateTime)
|
|
|
+ //keyword4 := articleInfo.Abstract
|
|
|
+ //mapAlreadySend := make(map[int]int)
|
|
|
+ //
|
|
|
+ //sliceSubjectId, _ := models.GetSubjectIds(articleId)
|
|
|
+ //var appointmentList []*models.CygxAppointment
|
|
|
+ //if sliceSubjectId != "" {
|
|
|
+ // appointmentList, e = models.GetCygxAppointmentSummaryBySubjectId(sliceSubjectId)
|
|
|
+ // if e != nil {
|
|
|
+ // err = errors.New("GetCygxAppointmentSummaryBySubjectId, Err: " + e.Error())
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // //var userIds []string
|
|
|
+ // //if len(appointmentList) > 0 {
|
|
|
+ // // for _, v := range appointmentList {
|
|
|
+ // // //fmt.Println("mapActivityUserId:", v.UserId)
|
|
|
+ // // userIds = append(userIds, strconv.Itoa(v.UserId))
|
|
|
+ // // mapActivityUserId[v.UserId] += v.ActivityName + ","
|
|
|
+ // // }
|
|
|
+ // // userIdstr := strings.Join(userIds, ",")
|
|
|
+ // // openIdLists, err := models.GetOpenIdByUserIds(userIdstr)
|
|
|
+ // // if err != nil {
|
|
|
+ // // fmt.Println("GetOpenIdByUserIds Err:", err.Error())
|
|
|
+ // // return err
|
|
|
+ // // }
|
|
|
+ // // for _, item := range openIdLists {
|
|
|
+ // // //first := "您预约的调研,有关联的纪要发布/更新了"
|
|
|
+ // // //keyword1 := industryName
|
|
|
+ // // openIditem := new(models.OpenIdList)
|
|
|
+ // // openIditem.OpenId = item.OpenId
|
|
|
+ // // openIditem.UserId = item.UserId
|
|
|
+ // // if _, ok := mapAlreadySend[openIditem.UserId]; !ok {
|
|
|
+ // // SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
|
|
|
+ // // delete(mapUserIdChooseSendTypeNoPermission, openIditem.UserId)
|
|
|
+ // // fmt.Println("AlreadySend:", openIditem.UserId)
|
|
|
+ // // mapAlreadySend[openIditem.UserId] = openIditem.UserId
|
|
|
+ // // }
|
|
|
+ // // }
|
|
|
+ // //}
|
|
|
+ //}
|
|
|
+ ////如果是策略就按照策略的推送方式来写
|
|
|
+ //if reportMapDetail.ChartPermissionName == utils.CE_LUE_NAME || reportMapDetail.ChartPermissionName == utils.GU_SHOU_NAME {
|
|
|
+ // //获取提交过推送规则的用户的 openid
|
|
|
+ // mapUserFllowCeLue := make(map[int]string)
|
|
|
+ // userFllowCeLueList, e := models.GetCygxUserFllowCeLueOpenid(articleInfo.CategoryId)
|
|
|
+ // if e != nil {
|
|
|
+ // err = errors.New("GetCygxUserFllowCeLueOpenid, Err: " + e.Error())
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // for _, v := range userFllowCeLueList {
|
|
|
+ // mapUserFllowCeLue[v.UserId] = v.OpenId
|
|
|
+ // }
|
|
|
+ // for k, v := range mapOpenidPower {
|
|
|
+ // if mapOpenidPushed[k] != "" {
|
|
|
+ // continue
|
|
|
+ // }
|
|
|
+ // openIditem := new(models.OpenIdList)
|
|
|
+ // openIditem.UserId = k
|
|
|
+ // openIditem.OpenId = v
|
|
|
+ // first := "您关注的赛道,有新的报告发布/更新,欢迎查看"
|
|
|
+ // keyword1 := "【" + articleInfo.SubCategoryName + "】有报告发布/更新"
|
|
|
+ // mapActivityUserId := make(map[int]string)
|
|
|
+ // if articleInfo.ReportType == 2 {
|
|
|
+ // sliceSubjectId, _ = models.GetSubjectIds(articleId)
|
|
|
+ // if sliceSubjectId != "" {
|
|
|
+ // appointmentList, e = models.GetCygxAppointmentSummaryBySubjectId(sliceSubjectId)
|
|
|
+ // if e != nil {
|
|
|
+ // err = errors.New("GetCygxAppointmentSummaryBySubjectId, Err: " + e.Error())
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // var userIds []string
|
|
|
+ // if len(appointmentList) > 0 {
|
|
|
+ // for _, v := range appointmentList {
|
|
|
+ // //fmt.Println("mapActivityUserId:", v.UserId)
|
|
|
+ // userIds = append(userIds, strconv.Itoa(v.UserId))
|
|
|
+ // mapActivityUserId[v.UserId] += v.ActivityName + ","
|
|
|
+ // }
|
|
|
+ // userIdstr := strings.Join(userIds, ",")
|
|
|
+ // openIdLists, e := models.GetOpenIdByUserIds(userIdstr)
|
|
|
+ // appointmentList, e = models.GetCygxAppointmentSummaryBySubjectId(sliceSubjectId)
|
|
|
+ // if e != nil {
|
|
|
+ // err = errors.New("GetCygxAppointmentSummaryBySubjectId, Err: " + e.Error())
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // for _, item := range openIdLists {
|
|
|
+ // first = "您预约的调研,有关联的纪要发布/更新了"
|
|
|
+ // keyword1 = industryName
|
|
|
+ // openIditem = new(models.OpenIdList)
|
|
|
+ // openIditem.OpenId = item.OpenId
|
|
|
+ // openIditem.UserId = item.UserId
|
|
|
+ // if _, ok := mapAlreadySend[openIditem.UserId]; !ok {
|
|
|
+ // SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
|
|
|
+ // delete(mapUserIdChooseSendTypeNoPermission, openIditem.UserId)
|
|
|
+ // fmt.Println("AlreadySend:", openIditem.UserId)
|
|
|
+ // mapAlreadySend[openIditem.UserId] = openIditem.UserId
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // _, ok := mapAlreadySend[openIditem.UserId]
|
|
|
+ // //如果有权限而且小助手没有提交过信息的 就做正常推送
|
|
|
+ // if mapUserIdChooseSend[openIditem.UserId] == 0 && !ok {
|
|
|
+ // fmt.Println("1:", articleId)
|
|
|
+ // SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
|
|
|
+ // }
|
|
|
+ // //如果小助手勾选了对应的权限信息 就做正常推送
|
|
|
+ // if mapUserIdChooseSend[openIditem.UserId] != 0 && mapUserFllowCeLue[openIditem.UserId] != "" && !ok {
|
|
|
+ // fmt.Println("2:", articleId)
|
|
|
+ // SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //} else {
|
|
|
+ // for k, v := range mapOpenidPower {
|
|
|
+ // if mapOpenidPushed[k] != "" {
|
|
|
+ // continue
|
|
|
+ // }
|
|
|
+ // mapUserIdChooseSendType := make(map[int]int)
|
|
|
+ // for _, vS := range chooseSendtList {
|
|
|
+ // if vS.IsRefuse == 1 {
|
|
|
+ // continue
|
|
|
+ // }
|
|
|
+ // //获取选择主客观赛道的用户
|
|
|
+ // if reportMapDetail.PermissionType == 1 {
|
|
|
+ // if vS.IsSubjective == 1 {
|
|
|
+ // mapUserIdChooseSendType[vS.UserId] = vS.UserId
|
|
|
+ // }
|
|
|
+ // } else if reportMapDetail.PermissionType == 2 {
|
|
|
+ // if vS.IsObjective == 1 {
|
|
|
+ // mapUserIdChooseSendType[vS.UserId] = vS.UserId
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // if vS.IsSubjective == 1 || vS.IsObjective == 1 {
|
|
|
+ // mapUserIdChooseSendType[vS.UserId] = vS.UserId
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // openIditem := new(models.OpenIdList)
|
|
|
+ // openIditem.UserId = k
|
|
|
+ // openIditem.OpenId = v
|
|
|
+ // first := "您关注的赛道,有新的报告发布/更新,欢迎查看"
|
|
|
+ // keyword1 := "【" + articleInfo.SubCategoryName + "】有报告发布/更新"
|
|
|
+ // mapActivityUserId := make(map[int]string)
|
|
|
+ // if articleInfo.ReportType == 2 {
|
|
|
+ // keyword1 = fmt.Sprint("【", industryName, "】有报告发布/更新")
|
|
|
+ // //sliceSubjectId, _ = models.GetSubjectIds(articleId)
|
|
|
+ // if sliceSubjectId != "" {
|
|
|
+ // //appointmentList, e = models.GetCygxAppointmentSummaryBySubjectId(sliceSubjectId)
|
|
|
+ // //if e != nil {
|
|
|
+ // // err = errors.New("GetCygxAppointmentSummaryBySubjectId, Err: " + e.Error())
|
|
|
+ // // return
|
|
|
+ // //}
|
|
|
+ // var userIds []string
|
|
|
+ // if len(appointmentList) > 0 {
|
|
|
+ // for _, v := range appointmentList {
|
|
|
+ // //fmt.Println("mapActivityUserId:", v.UserId)
|
|
|
+ // userIds = append(userIds, strconv.Itoa(v.UserId))
|
|
|
+ // mapActivityUserId[v.UserId] += v.ActivityName + ","
|
|
|
+ // }
|
|
|
+ // userIdstr := strings.Join(userIds, ",")
|
|
|
+ // openIdLists, e := models.GetOpenIdByUserIds(userIdstr)
|
|
|
+ // if e != nil {
|
|
|
+ // err = errors.New("GetOpenIdByUserIds, Err: " + e.Error())
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // for _, item := range openIdLists {
|
|
|
+ // //first := "您预约的调研,有关联的纪要发布/更新了"
|
|
|
+ // //keyword1 := industryName
|
|
|
+ // openIditem := new(models.OpenIdList)
|
|
|
+ // openIditem.OpenId = item.OpenId
|
|
|
+ // openIditem.UserId = item.UserId
|
|
|
+ // if _, ok := mapAlreadySend[openIditem.UserId]; !ok {
|
|
|
+ // SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
|
|
|
+ // delete(mapUserIdChooseSendTypeNoPermission, openIditem.UserId)
|
|
|
+ // fmt.Println("AlreadySend:", openIditem.UserId)
|
|
|
+ // mapAlreadySend[openIditem.UserId] = openIditem.UserId
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // //如果有权限而且小助手没有提交过信息的 就做正常推送
|
|
|
+ // _, ok := mapAlreadySend[openIditem.UserId]
|
|
|
+ // if mapUserIdChooseSend[openIditem.UserId] == 0 && !ok {
|
|
|
+ // SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
|
|
|
+ // delete(mapUserIdChooseSendTypeNoPermission, openIditem.UserId)
|
|
|
+ // mapAlreadySend[openIditem.UserId] = openIditem.UserId
|
|
|
+ // }
|
|
|
+ // //如果小助手勾选了对应的权限信息 就做正常推送
|
|
|
+ // if mapUserIdChooseSend[openIditem.UserId] != 0 && mapOpenidFllow[openIditem.UserId] != "" && mapUserIdChooseSendType[openIditem.UserId] > 0 && !ok {
|
|
|
+ // SendWxMsgWithArticleUpdate(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
|
|
|
+ // delete(mapUserIdChooseSendTypeNoPermission, openIditem.UserId)
|
|
|
+ // mapAlreadySend[openIditem.UserId] = openIditem.UserId
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //}
|
|
|
utils.Rc.Put(cacheKey, articleId, time.Hour*12)
|
|
|
return
|
|
|
}
|