فهرست منبع

Merge branch 'master' of http://8.136.199.33:3000/hongze/hongze_cygx into cygx_7.2_yidongapi

xingzai 2 سال پیش
والد
کامیت
b379bbdc7b

+ 3 - 2
controllers/activity.go

@@ -2266,7 +2266,8 @@ func (this *ActivityCoAntroller) AskAdd() {
 			openIpItem, _ := models.GetUserRecordByMobile(4, sendMobile)
 			if openIpItem != nil && openIpItem.OpenId != "" {
 				if sellerItem != nil {
-					services.SendActivityAskApplyTemplateMsg(user.RealName+"——"+user.CompanyName+"(所属销售:"+sellerItem.RealName+")", time.Now().Format(utils.FormatDateTime), req.Content, activityInfo.ActivityName, activityInfo.ActivityId, openIpItem)
+					//services.SendActivityAskApplyTemplateMsg(user.RealName+"——"+user.CompanyName+"(所属销售:"+sellerItem.RealName+")", time.Now().Format(utils.FormatDateTime), req.Content, activityInfo.ActivityName, activityInfo.ActivityId, openIpItem)
+					services.SendActivityAskApplyTemplateMsgV2(user.RealName+"——"+user.CompanyName, "所属销售:"+sellerItem.RealName, time.Now().Format(utils.FormatDateTime), req.Content, activityInfo.ActivityName, openIpItem, activityInfo)
 				}
 			}
 		}
@@ -2274,7 +2275,7 @@ func (this *ActivityCoAntroller) AskAdd() {
 		if sellerItem != nil {
 			openIpItem, _ := models.GetUserRecordByMobile(4, sellerItem.Mobile)
 			if openIpItem != nil && openIpItem.OpenId != "" {
-				services.SendActivityAskApplyTemplateMsg(user.RealName+"——"+user.CompanyName+"(所属销售:"+sellerItem.RealName+")", time.Now().Format(utils.FormatDateTime), req.Content, activityInfo.ActivityName, activityInfo.ActivityId, openIpItem)
+				services.SendActivityAskApplyTemplateMsgV2(user.RealName+"——"+user.CompanyName, "所属销售:"+sellerItem.RealName, time.Now().Format(utils.FormatDateTime), req.Content, activityInfo.ActivityName, openIpItem, activityInfo)
 			}
 		}
 	}

+ 4 - 1
controllers/chart.go

@@ -2,6 +2,7 @@ package controllers
 
 import (
 	"encoding/json"
+	"fmt"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"hongze/hongze_cygx/models"
 	"hongze/hongze_cygx/services"
@@ -88,6 +89,7 @@ func (this *ChartController) Collection() {
 	var listCollection []*models.HomeChartListResp
 	var total int
 	//var err error
+	fmt.Println(user)
 	chartUserTokenByMobile, _ := services.GetUserTokenByMobile(mobile)
 	if chartUserTokenByMobile != "" {
 		list, err, _ := services.GetChartCollectionByApi(mobile, 9999, 0)
@@ -96,6 +98,7 @@ func (this *ChartController) Collection() {
 			br.ErrMsg = "获取图表分类失败 Err:" + err.Error()
 			return
 		}
+		fmt.Println(len(list))
 		var chartIds string
 		var condition string
 		var pars []interface{}
@@ -109,7 +112,7 @@ func (this *ChartController) Collection() {
 			chartIds = "0"
 		}
 		condition = ` AND a.chart_id IN (` + chartIds + `) `
-		total, err = models.GetChartCount(condition, pars)
+		total, err = models.GetChartCollentCount(condition, pars)
 		if err != nil {
 			br.Msg = "获取信息失败"
 			br.Msg = "获取帖子总数失败,Err:" + err.Error()

+ 2 - 1
controllers/home.go

@@ -273,10 +273,11 @@ func (this *BaseHomeController) ListHomePublic() {
 		page = paging.GetPaging(currentIndex, pageSize, total)
 		if categoryId != "" {
 			condition += ` AND category_id IN(` + categoryId + `)`
-			condition += ` OR ( category_name  LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%' AND publish_status = 1 AND is_summary = 1 )`
+			//condition += ` OR ( category_name  LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%' AND publish_status = 1 AND is_summary = 1 )`
 		} else {
 			condition += ` AND  category_name   LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%'`
 		}
+
 	}
 	//永续客户无法查看研选分类的内容
 	if userType == 1 {

+ 1 - 1
controllers/report.go

@@ -1139,9 +1139,9 @@ func (this *ReportController) IsShow() {
 	}
 	total, _ := models.GetUserIsAdminCount(mobile)
 	if total > 0 {
-		resp.IsShow = true
 		resp.IsShowList = true
 	}
+	resp.IsShow = true
 	br.Ret = 200
 	br.Success = true
 	br.Data = resp

+ 8 - 6
models/activity_special_signup.go

@@ -73,18 +73,20 @@ type CygxActivitySpecialSignupResp struct {
 }
 
 //列表
-func GetActivityListSpecialGroupByMobile() (items []*CygxActivitySpecialSignupResp, err error) {
+func GetActivityListSpecialGroupByMobile(condition string, pars []interface{}) (items []*CygxActivitySpecialSignupResp, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT *,	COUNT( 1 ) AS count   FROM cygx_activity_special_signup   GROUP BY mobile`
-	_, err = o.Raw(sql).QueryRows(&items)
+	sql := `SELECT s.*,	COUNT( 1 ) AS count   FROM cygx_activity_special_signup as s INNER JOIN cygx_activity_special AS a ON a.activity_id = s.activity_id
+			INNER JOIN wx_user AS u ON u.user_id = s.user_id ` + condition + `  GROUP BY s.mobile`
+	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 }
 
 //列表
-func GetActivityListSpecialGroupByCompanyId() (items []*CygxActivitySpecialSignupResp, err error) {
+func GetActivityListSpecialGroupByCompanyId(condition string, pars []interface{}) (items []*CygxActivitySpecialSignupResp, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT *,	COUNT( 1 ) AS count   FROM cygx_activity_special_signup   GROUP BY company_id`
-	_, err = o.Raw(sql).QueryRows(&items)
+	sql := `SELECT *,	COUNT( 1 ) AS count   FROM cygx_activity_special_signup   as s INNER JOIN cygx_activity_special AS a ON a.activity_id = s.activity_id
+			INNER JOIN wx_user AS u ON u.user_id = s.user_id ` + condition + `  GROUP BY s.company_id`
+	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 }
 

+ 8 - 0
models/article.go

@@ -644,3 +644,11 @@ func GetSubjectIds(articleId int) (subjects string, err error) {
 	err = o.Raw(sql, articleId).QueryRow(&subjects)
 	return
 }
+
+//修改发布状态
+func UpdateIsClassFail(articleId int) (err error) {
+	sql := `UPDATE cygx_article SET  is_class_fail=1  WHERE article_id=? `
+	o := orm.NewOrm()
+	_, err = o.Raw(sql, articleId).Exec()
+	return
+}

+ 13 - 0
models/chart.go

@@ -264,6 +264,19 @@ func GetChartCount(condition string, pars []interface{}) (count int, err error)
 	return
 }
 
+//获取图表数量
+func GetChartCollentCount(condition string, pars []interface{}) (count int, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT COUNT(1) AS count
+                FROM cygx_chart_all AS a
+                WHERE a.publish_status=1 `
+	if condition != "" {
+		sql += condition
+	}
+	err = o.Raw(sql, pars).QueryRow(&count)
+	return
+}
+
 func GetChartDetailById(chartId, uid int) (item *CygxChartDetail, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT * ,( SELECT COUNT( 1 ) FROM cygx_chart_collect AS c WHERE c.chart_id = a.chart_id AND c.user_id = ? ) AS collection_num

+ 1 - 1
models/chart_permission.go

@@ -146,7 +146,7 @@ func AddChartPersion(item *CompanyReportPermission) (newId int64, err error) {
 func GetCompanyPermissionIdWithHtgj() (chartpermissionids string, err error) {
 	sql := ` SELECT GROUP_CONCAT(DISTINCT chart_permission_id  ORDER BY b.sort ASC  SEPARATOR ',') AS chartpermissionids
 			FROM chart_permission as  b 
-			WHERE chart_permission_name IN ('医药','消费','科技','智造','研选')`
+			WHERE chart_permission_name IN ('医药','消费','科技','智造','买方研选')`
 	o := orm.NewOrm()
 	err = o.Raw(sql).QueryRow(&chartpermissionids)
 	return

+ 1 - 1
models/report.go

@@ -203,7 +203,7 @@ func GetWhichDepartmentCount(condition string) (count int, err error) {
 }
 
 type IsShow struct {
-	IsShow          bool   `description:"是否展示"`
+	IsShow          bool   `description:"绝密内参按钮是否展示"`
 	IsShowResearch  bool   `description:"研选是否展示限免"`
 	IsShowChart     bool   `description:"图表是否展示限免"`
 	IsShowList      bool   `description:"榜单是否展示"`

+ 8 - 4
services/activity.go

@@ -611,14 +611,16 @@ func SendEmailFileForAskMsgResearch(cont context.Context) (err error) {
 			if sellerItem != nil {
 				openIpItem, _ := models.GetUserRecordByMobile(4, utils.ActSendMsgMobile)
 				if openIpItem != nil && openIpItem.OpenId != "" {
-					SendActivityAskApplyTemplateMsg(user.RealName+"——"+user.CompanyName+"(所属销售:"+sellerItem.RealName+")", v2.CreateTime, v2.Content, activityInfo.ActivityName, activityInfo.ActivityId, openIpItem)
+					//SendActivityAskApplyTemplateMsg(user.RealName+"——"+user.CompanyName+"(所属销售:"+sellerItem.RealName+")", v2.CreateTime, v2.Content, activityInfo.ActivityName, activityInfo.ActivityId, openIpItem)
+					SendActivityAskApplyTemplateMsgV2(user.RealName+"——"+user.CompanyName, "所属销售:"+sellerItem.RealName, time.Now().Format(utils.FormatDateTime), v2.Content, activityInfo.ActivityName, openIpItem, activityInfo)
 				}
 			}
 			//给所属销售推送消息
 			if sellerItem != nil {
 				openIpItem, _ := models.GetUserRecordByMobile(4, sellerItem.Mobile)
 				if openIpItem != nil && openIpItem.OpenId != "" {
-					SendActivityAskApplyTemplateMsg(user.RealName+"——"+user.CompanyName+"(所属销售:"+sellerItem.RealName+")", v2.CreateTime, v2.Content, activityInfo.ActivityName, activityInfo.ActivityId, openIpItem)
+					//SendActivityAskApplyTemplateMsg(user.RealName+"——"+user.CompanyName+"(所属销售:"+sellerItem.RealName+")", v2.CreateTime, v2.Content, activityInfo.ActivityName, activityInfo.ActivityId, openIpItem)
+					SendActivityAskApplyTemplateMsgV2(user.RealName+"——"+user.CompanyName, "所属销售:"+sellerItem.RealName, time.Now().Format(utils.FormatDateTime), v2.Content, activityInfo.ActivityName, openIpItem, activityInfo)
 				}
 			}
 		}
@@ -699,14 +701,16 @@ func SendEmailFileForAskMsg(cont context.Context) (err error) {
 			if sellerItem != nil {
 				openIpItem, _ := models.GetUserRecordByMobile(4, sendMobile)
 				if openIpItem != nil && openIpItem.OpenId != "" {
-					SendActivityAskApplyTemplateMsg(user.RealName+"——"+user.CompanyName+"(所属销售:"+sellerItem.RealName+")", v2.CreateTime, v2.Content, activityInfo.ActivityName, activityInfo.ActivityId, openIpItem)
+					//SendActivityAskApplyTemplateMsg(user.RealName+"——"+user.CompanyName+"(所属销售:"+sellerItem.RealName+")", v2.CreateTime, v2.Content, activityInfo.ActivityName, activityInfo.ActivityId, openIpItem)
+					SendActivityAskApplyTemplateMsgV2(user.RealName+"——"+user.CompanyName, "所属销售:"+sellerItem.RealName, time.Now().Format(utils.FormatDateTime), v2.Content, activityInfo.ActivityName, openIpItem, activityInfo)
 				}
 			}
 			//给销售推送模板消息
 			if sellerItem != nil {
 				openIpItem, _ := models.GetUserRecordByMobile(4, sellerItem.Mobile)
 				if openIpItem != nil && openIpItem.OpenId != "" {
-					SendActivityAskApplyTemplateMsg(user.RealName+"——"+user.CompanyName+"(所属销售:"+sellerItem.RealName+")", v2.CreateTime, v2.Content, activityInfo.ActivityName, activityInfo.ActivityId, openIpItem)
+					//SendActivityAskApplyTemplateMsg(user.RealName+"——"+user.CompanyName+"(所属销售:"+sellerItem.RealName+")", v2.CreateTime, v2.Content, activityInfo.ActivityName, activityInfo.ActivityId, openIpItem)
+					SendActivityAskApplyTemplateMsgV2(user.RealName+"——"+user.CompanyName, "所属销售:"+sellerItem.RealName, time.Now().Format(utils.FormatDateTime), v2.Content, activityInfo.ActivityName, openIpItem, activityInfo)
 				}
 			}
 		}

+ 7 - 2
services/activity_special.go

@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"hongze/hongze_cygx/models"
 	"hongze/hongze_cygx/utils"
+	"time"
 )
 
 //func init() {
@@ -21,7 +22,11 @@ func UpdateCygxActivitySpecialSignupNum(cont context.Context) (err error) {
 		}
 	}()
 	//根据手机号分组获取列表以及数量
-	listSpecial, err := models.GetActivityListSpecialGroupByMobile()
+	var condition string
+	var pars []interface{}
+	condition += ` AND  s.create_time < ? `
+	pars = append(pars, time.Now().Format(utils.FormatDate))
+	listSpecial, err := models.GetActivityListSpecialGroupByMobile(condition, pars)
 	if err != nil {
 		return err
 	}
@@ -49,7 +54,7 @@ func UpdateCygxActivitySpecialSignupNum(cont context.Context) (err error) {
 	}
 
 	//根据CompanyId分组获取列表以及数量
-	listSpecialByCompanyId, err := models.GetActivityListSpecialGroupByCompanyId()
+	listSpecialByCompanyId, err := models.GetActivityListSpecialGroupByCompanyId(condition, pars)
 	if err != nil {
 		return err
 	}

+ 1 - 0
services/article.go

@@ -994,6 +994,7 @@ func HandleArticleListByApi(artcleId int) (err error) {
 							keyword3 = v.Title
 							keyword4 = v.PublishDate.Format(utils.FormatDateTime)
 							SendWxMsgWithArticleClassToAdmin(keyword1, keyword2, keyword3, keyword4, openIdList, articleIdInt)
+							go models.UpdateIsClassFail(artcleId)
 						}
 					}
 				}

+ 69 - 0
services/wx_template_msg.go

@@ -352,6 +352,75 @@ func SendActivityAskApplyTemplateMsg(applyName, applyTime, askContent, activityN
 	return
 }
 
+//活动带问提醒
+func SendActivityAskApplyTemplateMsgV2(keyword1, keyword2, keyword3, keyword4, remark string, itemOpenid *models.OpenIdList, itemAct *models.ActivityDetail) (err error) {
+	var msg string
+	defer func() {
+		if err != nil {
+			go utils.SendEmail("发送模版消息失败"+time.Now().Format("2006-01-02 15:04:05"), msg+";Err:"+err.Error(), utils.EmailSendToUsers)
+			go utils.SendAlarmMsg("活动带问提醒发送模版消息失败"+remark, 2)
+		}
+		if msg != "" {
+			utils.FileLog.Info("发送模版消息失败,msg:%s", msg)
+		}
+	}()
+
+	var accessToken string
+	if utils.RunMode == "release" {
+		accessToken, err = models.GetWxAccessTokenByXzs()
+		if err != nil {
+			msg = "GetWxAccessToken Err:" + err.Error()
+			return
+		}
+		if accessToken == "" {
+			msg = "accessToken is empty"
+			return
+		}
+	} else {
+		accessToken, err = models.GetWxAccessToken()
+		if err != nil {
+			msg = "GetWxAccessToken Err:" + err.Error()
+			return
+		}
+		if accessToken == "" {
+			msg = "accessToken is empty"
+			return
+		}
+	}
+	activityId := itemAct.ArticleId
+	//fmt.Println("itemAct.Host", itemAct.Host)
+	if itemAct.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN && itemAct.Host != "" {
+		keyword2 += ",会议主持人:" + itemAct.Host
+	}
+	sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
+	sendMap := make(map[string]interface{})
+	sendData := make(map[string]interface{})
+
+	first := "有新的客户提问"
+	//keyword1 := applyName
+	//keyword2 := "-"
+	//keyword3 := applyTime
+	//keyword4 := askContent
+	//remark := activityName
+	fontColor := "#D9001B"
+	sendData["first"] = map[string]interface{}{"value": first, "color": fontColor}
+	sendData["keyword1"] = map[string]interface{}{"value": keyword1, "color": fontColor}
+	sendData["keyword2"] = map[string]interface{}{"value": keyword2, "color": fontColor}
+	sendData["keyword3"] = map[string]interface{}{"value": keyword3, "color": fontColor}
+	sendData["keyword4"] = map[string]interface{}{"value": keyword4, "color": fontColor}
+	sendData["remark"] = map[string]interface{}{"value": remark, "color": fontColor}
+	if utils.RunMode == "release" {
+		sendMap["template_id"] = utils.WxMsgTemplateIdApplyXzs
+	} else {
+		sendMap["template_id"] = utils.WxMsgTemplateIdApply
+	}
+	sendMap["miniprogram"] = map[string]interface{}{"appid": utils.WxAppId, "pagepath": "activityPages/activityDetail/activityDetail?id=" + strconv.Itoa(activityId)}
+	sendMap["data"] = sendData
+	sendTemplateMsg(sendUrl, sendMap, itemOpenid, strconv.Itoa(activityId), utils.TEMPLATE_MSG_CYGX_ACTIVITY_ADD)
+	fmt.Println("send end")
+	return
+}
+
 //专项产业调研模板消息推送
 func SendSpecialTemplateMsg(applyName, applyTime, mobile, activityName, resource string, itemOpenid *models.OpenIdList) (err error) {
 	var msg string