xingzai 2 anni fa
parent
commit
0bd86a3f50

+ 24 - 2
controllers/activity.go

@@ -4834,8 +4834,30 @@ func (this *ActivityCoAntroller) OverActivityList() {
 	//pageSize = 24 - len(list)
 
 	//已结束的活动
-	sortTime = ` timesort DESC `
-	list, err := models.GetActivityLabelListAllNoLimit(condition, sortTime, pars)
+	sortTime = ` activity_time DESC `
+
+	//如果是永续的就按照普通的权限逻辑来查,如果不是就按照升级的逻辑来查
+	var conditionSpecial string
+	companyDetail, err := models.GetCompanyDetailByIdGroupTrip(user.CompanyId)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	if companyDetail.Status == "永续" {
+		conditionSpecial, err = services.HandleActivityLabelSpecialPermission(user)
+	} else {
+		conditionSpecial, err = services.HandleActivityLabelSpecialTripPermission(user)
+	}
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	conditionSpecial += ` AND art.days >0  AND art.publish_status =1   AND art.is_offline = 0  `
+	conditionSpecial += ` AND art.activity_time_end <  ` + "'" + time.Now().Format(utils.FormatDateTime) + "'"
+
+	list, err := models.GetActivityLabelListAllNoLimit(condition, sortTime, pars, conditionSpecial)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()

+ 7 - 10
controllers/micro_roadshow.go

@@ -68,7 +68,7 @@ func (this *MicroRoadShowController) List() {
 		return
 	}
 	for _, item := range list {
-		if item.Type  == 1 {
+		if item.Type == 1 {
 			//音频
 			count, err := models.GetVoiceCollectCount(user.UserId, item.Id)
 			if err != nil {
@@ -79,7 +79,7 @@ func (this *MicroRoadShowController) List() {
 			if count > 0 {
 				item.IsCollect = true
 			}
-		} else if item.Type  == 2 {
+		} else if item.Type == 2 {
 			//活动视频
 			count, err := models.GetActivityVideoCollectCount(user.UserId, item.Id)
 			if err != nil {
@@ -90,7 +90,7 @@ func (this *MicroRoadShowController) List() {
 			if count > 0 {
 				item.IsCollect = true
 			}
-		} else if item.Type  == 3 {
+		} else if item.Type == 3 {
 			//微路演视频
 			count, err := models.GetVideoCollectCount(user.UserId, item.Id)
 			if err != nil {
@@ -312,22 +312,17 @@ func (this *MicroRoadShowController) CommentAdd() {
 	if sourceType == 0 {
 		sourceType = 1
 	}
-	//var sellerName string
-	//sellerName, err = models.GetCompanySellerName(user.CompanyId)
-	if err != nil {
-		br.Msg = "报名失败!"
-		br.ErrMsg = "获取对应销售失败,Err:" + err.Error()
-		return
-	}
 	item := models.CygxArticleComment{
 		UserId:      uid,
 		CreateTime:  time.Now(),
+		RealName:    user.RealName,
 		Mobile:      user.Mobile,
 		Email:       user.Email,
 		CompanyId:   user.CompanyId,
 		CompanyName: user.CompanyName,
 		Content:     req.Content,
 		Title:       req.Title,
+		VideoId:     req.Id,
 	}
 	if sourceType == 1 {
 		item.IndustryId = req.Id
@@ -349,6 +344,8 @@ func (this *MicroRoadShowController) CommentAdd() {
 		br.ErrMsg = "提交留言失败,Err:" + err.Error()
 		return
 	}
+
+	services.SendWxMsgWithMicroRoadshowAsk(req, user)
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "操作成功"

+ 15 - 3
models/activity.go

@@ -1060,14 +1060,26 @@ func GetActivityListNew(condition string, pars []interface{}, uid, startSize, pa
 }
 
 //主题列表
-func GetActivityLabelListAllNoLimit(condition, sortTime string, pars []interface{}) (items []*CygxActivityLabelList, err error) {
+func GetActivityLabelListAllNoLimit(condition, sortTime string, pars []interface{}, conditionSpecial string) (items []*CygxActivityLabelList, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT	activity_id, label,temporary_label,is_show_subject_name, MAX( art.activity_time ) AS timesort, MIn( art.activity_time ) AS mintimesort , yidong_activity_id 
+	sql := `SELECT	activity_id, label,temporary_label,is_show_subject_name, art.activity_time,	1 AS resource, yidong_activity_id 
 		FROM cygx_activity as art WHERE 1= 1 `
 	if condition != "" {
 		sql += condition
 	}
-	sql += ` GROUP BY art.label ORDER BY ` + sortTime + ` ,art.activity_id DESC `
+	sql += `  UNION ALL `
+	sql += ` SELECT
+			art.activity_id,
+			art.label,
+			art.temporary_label,
+			is_show_subject_name,
+			art.activity_time,
+			2 AS resource,
+			'' AS yidong_activity_id 
+		FROM
+			cygx_activity_special AS art   WHERE 1= 1 ` + conditionSpecial
+
+	sql += ` GROUP BY label,resource  ORDER BY ` + sortTime + ` , activity_id DESC `
 
 	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return

+ 8 - 0
models/article.go

@@ -282,6 +282,14 @@ func GetArticleAll2() (item []*ArticleDetail, err error) {
 	return
 }
 
+//获取文章列表
+func GetArticleList(condition string, pars []interface{}) (items []*ArticleDetail, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT	article_id FROM cygx_article  WHERE 1= 1 ` + condition
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}
+
 func ModifyArticleContent(articleId int, content, expertNumStr, expertContentStr, interviewDateStr string) (err error) {
 	o := orm.NewOrm()
 	sql := `UPDATE cygx_article SET body=?,expert_background=?,expert_number=?,interview_date=? WHERE article_id=? `

+ 1 - 0
models/article_comment.go

@@ -8,6 +8,7 @@ import (
 type CygxArticleComment struct {
 	Id          int       `orm:"column(id);pk" description:"留言id"`
 	UserId      int       `description:"用户id"`
+	RealName    string    `description:"用户姓名"`
 	ArticleId   int       `description:"文章id"`
 	ActivityId  int       `description:"活动id"`
 	VideoId     int       `description:"视频id"`

+ 15 - 0
models/industrial_article_group_management.go

@@ -63,3 +63,18 @@ func GetIndustryArticleMinMaxPublishTime(condition string, pars []interface{}) (
 	_, err = orm.NewOrm().Raw(sql, pars).QueryRows(&list)
 	return
 }
+
+// GetIndustrialArticleGroupManagementList  查询产业
+func GetIndustrialArticleGroupManagementList(condition string, pars []interface{}) (list []*CygxIndustrialArticleGroupManagement, err error) {
+	sql := `SELECT
+				*
+			FROM
+				cygx_industrial_article_group_management AS a
+			WHERE
+				1 = 1 `
+	if condition != `` {
+		sql += condition
+	}
+	_, err = orm.NewOrm().Raw(sql, pars).QueryRows(&list)
+	return
+}

+ 34 - 0
services/article.go

@@ -1588,3 +1588,37 @@ func GetSpecialArticleDetailUserPower(user *models.WxUserItem, articleInfo *mode
 	}
 	return
 }
+
+//弘则报告发布日期在三个月以内的
+func GetArticNewLabel3Month() (labelMap map[int]bool, err error) {
+	var condition string
+	var pars []interface{}
+	condition += ` AND publish_date  >= ? `
+	pars = append(pars, time.Now().AddDate(0, -3, 0))
+	articleList, e := models.GetArticleList(condition, pars)
+	if e != nil {
+		err = errors.New("GetArticleList, Err: " + e.Error())
+		return
+	}
+	var articleIds []int
+	for _, v := range articleList {
+		articleIds = append(articleIds, v.ArticleId)
+	}
+	if len(articleIds) == 0 {
+		return
+	}
+
+	pars = make([]interface{}, 0)
+	condition = ` AND article_id IN (` + utils.GetOrmInReplace(len(articleIds)) + `)`
+	pars = append(pars, articleIds)
+	industrialList, e := models.GetIndustrialArticleGroupManagementList(condition, pars)
+	if e != nil {
+		err = errors.New("GetIndustrialArticleGroupManagementList, Err: " + e.Error())
+		return
+	}
+	labelMap = make(map[int]bool, 0)
+	for _, v := range industrialList {
+		labelMap[v.IndustrialManagementId] = true
+	}
+	return
+}

+ 64 - 2
services/wx_template_msg.go

@@ -3,6 +3,7 @@ package services
 import (
 	"bytes"
 	"encoding/json"
+	"errors"
 	"fmt"
 	"hongze/hongze_cygx/models"
 	"hongze/hongze_cygx/utils"
@@ -679,7 +680,7 @@ func SendCommentWxTemplateMsg(title, companyName, userName, sellerName, createTi
 		return
 	}
 	var first string
-	first = "【"+title+"】有新的留言,请及时处理"
+	first = "【" + title + "】有新的留言,请及时处理"
 	keyword1 := companyName + "--" + userName + "(" + sellerName + ")"
 	keyword2 := "-"
 	keyword3 := createTime
@@ -698,4 +699,65 @@ func SendCommentWxTemplateMsg(title, companyName, userName, sellerName, createTi
 	sendMap["data"] = sendData
 	WxSendTemplateMsg(sendUrl, sendMap, openIdList, strconv.Itoa(articleId), utils.TEMPLATE_MSG_CYGX_COMMENT)
 	return
-}
+}
+
+//微路演新增留言提问消息提醒
+func SendWxMsgWithMicroRoadshowAsk(req models.AddVideoCommnetReq, user *models.WxUserItem) (err error) {
+	var msg string
+	defer func() {
+		if err != nil || msg != "" {
+			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("发送微路演新增留言提问消息提醒失败,用户名", req.Title, "ID:", req.Id), 2)
+			utils.FileLog.Info("发送模版消息失败,Err:%s", err.Error())
+		}
+	}()
+
+	companyItem, e := models.GetSellerDetailAllByCompanyId(user.CompanyId)
+	if e != nil {
+		return
+	}
+	if companyItem == nil {
+		msg = "获取客户所属销售信息失败,UserID:" + strconv.Itoa(user.UserId)
+	}
+	var first string
+	var keyword1 string
+	var keyword2 string
+	var keyword3 string
+	var keyword4 string
+	var remark string
+	first = req.Title + "有新的留言,请及时处理"
+	keyword1 = user.CompanyName + "——" + user.RealName + "(" + companyItem.SellerName + ")"
+	keyword3 = time.Now().Format(utils.FormatDateTime)
+	keyword2 = ""
+	keyword4 = req.Content
+	remark = ""
+	mobile := companyItem.Mobile + "," + utils.WxMsgTemplateIdAskMsgMobilePublic
+	openIdList, e := models.GetWxOpenIdByMobileList(mobile)
+	if e != nil {
+		err = errors.New("GetWxOpenIdByMobileList, Err: " + e.Error())
+		return
+	}
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	redirectUrl := ""
+	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(req.Id)
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
+	sendInfo.OpenIdArr = openIdArr
+	err = PublicSendTemplateMsg(sendInfo)
+	if err != nil {
+		return
+	}
+	return
+}

+ 3 - 1
utils/config.go

@@ -38,7 +38,8 @@ var (
 	WxMsgTemplateIdAskMsg               string //手机号用户【XXX】发送模板消息模板ID
 	WxMsgTemplateIdAskMsgXzs            string //手机号用户【XXX】发送模板消息模板ID(小助手)
 	WxMsgTemplateIdAskMsgMobile         string //手机号用户【XXX】发送模板消息
-	WxMsgTemplateIdAskMsgMobileAll      string //手机号用户【XXX】发送模板消rm -
+	WxMsgTemplateIdAskMsgMobileAll      string //手机号用户【XXX】发送模板消rm --
+	WxMsgTemplateIdAskMsgMobilePublic   string //手机号用户【XXX】发送模板消rm --
 	TemplateIdByProductXzs              string //产品运行报告通知-模板ID(小助手)
 	WxMsgTemplateIdArticleUserRemind    string //用户阅读报告通知-模板ID
 	WxMsgTemplateIdArticleUserRemindXzs string //用户阅读报告通知-模板ID(小助手)
@@ -140,6 +141,7 @@ func init() {
 	YanxSummaryPermissionId = 1001     //研选纪要分类ID
 	YanxViewpointPermissionId = 1002   //研选观点分类ID
 	WxMsgTemplateIdAskMsgMobileAll = "15557270714,18767183922,18621268829,15618524605"
+	WxMsgTemplateIdAskMsgMobilePublic = "15557270714,18767183922,18621268829"
 	HtgjDefaultSaleName = "王芳"
 	HtgjSalt = "HTGJ&HZ"
 	HtgjName = "海通国际"