ソースを参照

修改专项调研,用户与公司的参与数量

xingzai 2 年 前
コミット
68475bb7a0

+ 0 - 1
controllers/chart_permission.go

@@ -125,7 +125,6 @@ func (this *ChartPermissionAuthController) ReportDetail() {
 	if userType == 1 {
 		condition += ` AND permission_name  != '买方研选'`
 	}
-	//condition += ` AND permission_name  != '买方研选'`
 	list, err := models.GetChartPermissionReportAll(condition)
 	if err != nil {
 		br.Msg = "获取信息失败"

+ 3 - 3
controllers/report.go

@@ -1140,7 +1140,8 @@ func (this *ReportController) IsShow() {
 
 	resp.IsShowChart = true
 	resp.IsShowResearch = true
-	resp.IsShowList = true
+	resp.LinkWxExplain = utils.LINK_WX_EXPLAIN
+	resp.YanXuan_Explain = true
 	mobile := user.Mobile
 	if mobile == "" {
 		br.Ret = 200
@@ -1151,9 +1152,8 @@ func (this *ReportController) IsShow() {
 	total, _ := models.GetUserIsAdminCount(mobile)
 	if total > 0 {
 		resp.IsShow = true
+		resp.IsShowList = true
 	}
-	resp.LinkWxExplain = utils.LINK_WX_EXPLAIN
-	resp.YanXuan_Explain = true
 	br.Ret = 200
 	br.Success = true
 	br.Data = resp

+ 1 - 1
controllers/report_billboard.go

@@ -32,7 +32,7 @@ func (this *ReportBillboardController) CompanyTableList() {
 	}
 	ListPermission := []*models.ChartPermission{{PermissionName: utils.YI_YAO_NAME, ChartPermissionId: utils.YI_YAO_ID}, {PermissionName: utils.XIAO_FEI_NAME, ChartPermissionId: utils.XIAO_FEI_ID}, {PermissionName: utils.KE_JI_NAME, ChartPermissionId: utils.KE_JI_ID}, {PermissionName: utils.ZHI_ZAO_NAME, ChartPermissionId: utils.ZHI_ZAO_ID}}
 	ListAllPermission := []*models.ChartPermission{{PermissionName: utils.YI_YAO_NAME, ChartPermissionId: utils.YI_YAO_ID}, {PermissionName: utils.XIAO_FEI_NAME, ChartPermissionId: utils.XIAO_FEI_ID}, {PermissionName: utils.KE_JI_NAME, ChartPermissionId: utils.KE_JI_ID}, {PermissionName: utils.ZHI_ZAO_NAME, ChartPermissionId: utils.ZHI_ZAO_ID}, {PermissionName: utils.CE_LUE_NAME, ChartPermissionId: utils.CE_LUE_ID}}
-	List := []*models.ReportBillboardTableResp{{Name: "产业关注", Source: 1, List: ListPermission}, {Name: "阅读飙升", Source: 2, List: ListPermission}, {Name: "报告收藏", Source: 3, List: ListAllPermission}}
+	List := []*models.ReportBillboardTableResp{{Name: "产业关注", Source: 1, List: ListPermission}, {Name: "阅读飙升", Source: 2, List: ListAllPermission}, {Name: "报告收藏", Source: 3, List: ListAllPermission}}
 	resp := new(models.ReportBillboardTableListResp)
 	resp.List = List
 	br.Ret = 200

+ 87 - 0
models/activity_special_signup.go

@@ -57,3 +57,90 @@ func GetActivityListSpecialAll(activityId int) (items []*CygxActivitySpecialSign
 	_, err = o.Raw(sql, activityId).QueryRows(&items)
 	return
 }
+
+type CygxActivitySpecialSignupResp struct {
+	Id          int       `orm:"column(id);pk"`
+	ActivityId  int       `description:"活动ID"`
+	UserId      int       `description:"用户ID"`
+	CreateTime  time.Time `description:"创建时间"`
+	Mobile      string    `description:"手机号"`
+	Email       string    `description:"邮箱"`
+	CompanyId   int       `description:"公司id"`
+	CompanyName string    `description:"公司名称"`
+	RealName    string    `description:"用户实际名称"`
+	SellerName  string    `description:"所属销售"`
+	Count       string    `description:"所属销售"`
+}
+
+//列表
+func GetActivityListSpecialGroupByMobile() (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)
+	return
+}
+
+//列表
+func GetActivityListSpecialGroupByCompanyId() (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)
+	return
+}
+
+// UpdateActivitySpecialSignupNumMulti 批量修改专项调研感兴趣的人数排名
+func UpdateActivitySpecialSignupNumMulti(items []*CygxActivitySpecialSignupResp) (err error) {
+	o := orm.NewOrm()
+	p, err := o.Raw("UPDATE cygx_activity_special_signup SET user_num = ? WHERE mobile = ?").Prepare()
+	if err != nil {
+		return
+	}
+	defer func() {
+		_ = p.Close() // 别忘记关闭 statement
+	}()
+	for _, v := range items {
+		_, err = p.Exec(v.Count, v.Mobile)
+		if err != nil {
+			return
+		}
+	}
+	return
+}
+
+// UpdateActivitySpecialSignupCompanyIdMulti 批量修改专项调研感兴趣的用户的对应公司ID
+func UpdateActivitySpecialSignupCompanyIdMulti(items []*WxUser) (err error) {
+	o := orm.NewOrm()
+	p, err := o.Raw("UPDATE cygx_activity_special_signup SET company_id = ? WHERE mobile = ?").Prepare()
+	if err != nil {
+		return
+	}
+	defer func() {
+		_ = p.Close() // 别忘记关闭 statement
+	}()
+	for _, v := range items {
+		_, err = p.Exec(v.CompanyId, v.Mobile)
+		if err != nil {
+			return
+		}
+	}
+	return
+}
+
+// UpdateActivitySpecialSignupCompanyNumMulti 批量修改专项调研感兴趣的公司对应的数量
+func UpdateActivitySpecialSignupCompanyNumMulti(items []*CygxActivitySpecialSignupResp) (err error) {
+	o := orm.NewOrm()
+	p, err := o.Raw("UPDATE cygx_activity_special_signup SET company_num = ? WHERE company_id = ?").Prepare()
+	if err != nil {
+		return
+	}
+	defer func() {
+		_ = p.Close() // 别忘记关闭 statement
+	}()
+	for _, v := range items {
+		_, err = p.Exec(v.Count, v.CompanyId)
+		if err != nil {
+			return
+		}
+	}
+	return
+}

+ 2 - 2
models/report.go

@@ -642,8 +642,8 @@ func GetReoprtSearchList(condition string, userId int) (items []*ArticleCollecti
 			( SELECT count( 1 ) FROM cygx_article_collect AS ac WHERE ac.article_id = a.article_id  AND user_id = ?) AS my_collect_num
 		FROM
 			cygx_article AS a
-			INNER JOIN cygx_industrial_article_group_management AS mg ON mg.article_id = a.article_id
-			INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = mg.industrial_management_id
+			LEFT JOIN cygx_industrial_article_group_management AS mg ON mg.article_id = a.article_id
+			LEFT JOIN cygx_industrial_management AS m ON m.industrial_management_id = mg.industrial_management_id
 		WHERE
 			1 = 1 `
 	if condition != "" {

+ 13 - 0
models/wx_user.go

@@ -2,6 +2,7 @@ package models
 
 import (
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hongze_cygx/utils"
 	"time"
 )
 
@@ -544,3 +545,15 @@ func GetCygxCompanyUserUserInteraction(userIds string) (items []*CygxUserInterac
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }
+
+// GetWxUserByMobiles 根据用户手机号获取用户详情
+func GetWxUserByMobiles(mobiles []string) (items []*WxUser, err error) {
+	lenmobiles := len(mobiles)
+	if lenmobiles == 0 {
+		return
+	}
+	sql := `SELECT* FROM wx_user  WHERE mobile in (` + utils.GetOrmInReplace(lenmobiles) + `)  `
+	o := orm.NewOrm()
+	_, err = o.Raw(sql, mobiles).QueryRows(&items)
+	return
+}

+ 64 - 0
services/activity_special.go

@@ -0,0 +1,64 @@
+package services
+
+import (
+	"context"
+	"fmt"
+	"hongze/hongze_cygx/models"
+	"hongze/hongze_cygx/utils"
+)
+
+//func init() {
+//	UpdateCygxActivitySpecialSignupNum()
+//}
+
+//修改专项调研,用户与公司的参与数量
+func UpdateCygxActivitySpecialSignupNum(cont context.Context) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg("修改活动状态至进行中失败"+err.Error(), 2)
+			go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "修改活动状态至进行中失败 ErrMsg:"+err.Error(), utils.EmailSendToUsers)
+		}
+	}()
+	//根据手机号分组获取列表以及数量
+	listSpecial, err := models.GetActivityListSpecialGroupByMobile()
+	if err != nil {
+		return err
+	}
+	var mapMobile []string
+	for _, v := range listSpecial {
+		mapMobile = append(mapMobile, v.Mobile)
+	}
+
+	//根据手机号获取这些用户的信息
+	userList, err := models.GetWxUserByMobiles(mapMobile)
+	if err != nil {
+		return err
+	}
+
+	//更改这些手机对应的关注关注数量
+	err = models.UpdateActivitySpecialSignupNumMulti(listSpecial)
+	if err != nil {
+		return err
+	}
+
+	//更改这些手机对应的公司ID
+	err = models.UpdateActivitySpecialSignupCompanyIdMulti(userList)
+	if err != nil {
+		return err
+	}
+
+	//根据CompanyId分组获取列表以及数量
+	listSpecialByCompanyId, err := models.GetActivityListSpecialGroupByCompanyId()
+	if err != nil {
+		return err
+	}
+
+	//更改这些公司对应的关注关注数量
+	err = models.UpdateActivitySpecialSignupCompanyNumMulti(listSpecialByCompanyId)
+	if err != nil {
+		return err
+	}
+	fmt.Println("UpdateCygxActivitySpecialSignupNum end")
+	return
+}

+ 6 - 1
services/send_company_user.go

@@ -115,6 +115,11 @@ func DotongbuShangHai(cont context.Context) (err error) {
 		}
 	}
 	condition = ` AND p.modify_time > ` + "'" + updateTime + "'"
+	companyIds = strings.TrimRight(companyIds, ",")
+	if companyIds != "" {
+		//这一部分先不推送,避免并发推送
+		condition += ` AND c.company_id  NOT  IN (` + companyIds + ") "
+	}
 
 	//偶尔需要单独同步某一个公司的人员
 	//condition = ` AND c.company_id  =  8284  `
@@ -122,7 +127,7 @@ func DotongbuShangHai(cont context.Context) (err error) {
 	go DotongbuShangHaApi(condition)
 
 	//原有的公司如果新增了也同步
-	companyIds = strings.TrimRight(companyIds, ",")
+	//companyIds = strings.TrimRight(companyIds, ",")
 	if companyIds != "" {
 		condition = ` AND c.company_id  IN (` + companyIds + ")"
 		go DotongbuShangHaApi(condition)

+ 6 - 3
services/task.go

@@ -75,12 +75,15 @@ func Task() {
 		getCeLueArticlePv := task.NewTask("getCeLueArticlePv", "0 */10 * * * *", GetCeLueArticlePv) //通过三方接口获取策略平台上的阅读记录
 		task.AddTask("getCeLueArticlePv", getCeLueArticlePv)
 
-		doActivityOnenIdWxTemplateMsg := task.NewTask("doActivityOnenIdWxTemplateMsg", "0 0 16 * * 0", DoActivityOnenIdWxTemplateMsg) ////周日下午四点半推送全部活动
-		task.AddTask("doActivityOnenIdWxTemplateMsg", doActivityOnenIdWxTemplateMsg)
-
 		reportBillboardUpdate := task.NewTask("reportBillboardUpdate", "0 10 0 * * *", ReportBillboardUpdate) //报告榜单更新
 		task.AddTask("reportBillboardUpdate", reportBillboardUpdate)
 
+		doActivityOnenIdWxTemplateMsg := task.NewTask("doActivityOnenIdWxTemplateMsg", "0 30 16 * * 0", DoActivityOnenIdWxTemplateMsg) //周日下午四点半推送全部活动
+		task.AddTask("doActivityOnenIdWxTemplateMsg", doActivityOnenIdWxTemplateMsg)
+
+		updateCygxActivitySpecialSignupNum := task.NewTask("updateCygxActivitySpecialSignupNum", "0 25 0 * * *", UpdateCygxActivitySpecialSignupNum) //修改专项调研,用户与公司的参与数量
+		task.AddTask("updateCygxActivitySpecialSignupNum", updateCygxActivitySpecialSignupNum)
+
 	}
 	if utils.RunMode != "release" {
 		getArticleListByApi := task.NewTask("getArticleListByApi", "0 */60 * * * *", GetArticleListByApi) //通过三方接口获取策略平台上的文章