Browse Source

Merge branch 'cygx_youhua_02-22' of http://8.136.199.33:3000/hongze/hongze_cygx into debug

xingzai 1 year ago
parent
commit
ed1ebe6696

+ 1 - 1
controllers/report.go

@@ -742,7 +742,7 @@ func (this *ReportController) List() {
 
 		resp := new(models.TimeLineReportListResp)
 		//resp.CategoryImgUrlPc = mapChartPermission[detail.ChartPermissionName]
-
+		go services.AddCygxTimelineLog(user, industrialManagementId)
 		resp.List = list
 		resp.Paging = page
 		br.Ret = 200

+ 21 - 1
models/send_company_user.go

@@ -135,7 +135,27 @@ func GetSendCompanyPermissionDataList(condition string, pars []interface{}) (ite
 			WHERE
 				1 = 1
 				AND cp.STATUS IN ( '正式', '试用', '永续' )
-				AND c.chart_permission_name IN ( '医药', '消费', '科技', '智造', '策略', '买方研选', '专家', '路演服务' ) ` + condition + ` GROUP BY c.permission_name, cp.company_id `
+				AND c.chart_permission_name IN ( '医药', '消费', '科技', '智造', '策略', '研选扣点包', '专家', '路演服务' ) ` + condition + ` GROUP BY c.permission_name, cp.company_id `
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}
+
+// 不做正式,试用,永续权限的校验
+func GetSendCompanyPermissionDataListNoChekcStatus(condition string, pars []interface{}) (items []*PermissionDataResp, err error) {
+	o := orm.NewOrmUsingDB("weekly_report")
+	sql := ` SELECT
+				company_id,
+				c.permission_name,
+				cp.status,
+				cp.end_date,
+				cp.start_date 
+			FROM
+				company_report_permission AS cp
+				INNER JOIN chart_permission AS c ON cp.chart_permission_id = c.chart_permission_id 
+			WHERE
+				1 = 1
+				AND cp.STATUS  NOT  IN ( '正式', '试用', '永续' )
+				AND c.chart_permission_name IN ( '医药', '消费', '科技', '智造', '策略', '研选扣点包', '专家', '路演服务' ) ` + condition + ` GROUP BY c.permission_name, cp.company_id `
 	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 }

+ 60 - 0
models/timeline_log.go

@@ -0,0 +1,60 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"hongze/hongze_cygx/utils"
+	"time"
+)
+
+type CygxTimelineLog struct {
+	Id                     int       `orm:"column(id);pk"`
+	IndustrialManagementId int       `description:"产业D"`
+	UserId                 int       `description:"用户ID"`
+	Mobile                 string    `description:"手机号"`
+	Email                  string    `description:"邮箱"`
+	CompanyId              int       `description:"公司id"`
+	CompanyName            string    `description:"公司名称"`
+	CreateTime             time.Time `description:"创建时间"`
+	ModifyTime             time.Time `description:"更新时间"`
+	RealName               string    `description:"用户实际名称"`
+}
+
+// 判断用户是否阅读过该产业下的时间线
+func GetCygxTimelineLogCountByUser(userId, industrialManagementId int) (count int, err error) {
+	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_timeline_log as a  WHERE user_id= ?    AND industrial_management_id  = ? `
+	o := orm.NewOrm()
+	err = o.Raw(sqlCount, userId, industrialManagementId).QueryRow(&count)
+	return
+}
+
+// 新增
+func AddCygxTimelineLog(item *CygxTimelineLog) (lastId int64, err error) {
+	o := orm.NewOrm()
+	lastId, err = o.Insert(item)
+	return
+}
+
+// UpdateCygxTimelineLogModifyTime 更新用户阅读过该产业下的时间线的时间
+func UpdateCygxTimelineLogModifyTime(userId, industrialManagementId int) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE cygx_timeline_log SET modify_time = ?  WHERE user_id= ?    AND industrial_management_id  = ? `
+	_, err = o.Raw(sql, time.Now(), userId, industrialManagementId).Exec()
+	return
+}
+
+//func GetCygxTimelineLogCount(userId int, date string) (items []*CygxPageHistoryRecord, err error) {
+//	o := orm.NewOrm()
+//	sql := `SELECT * FROM cygx_timeline_log WHERE user_id=?  `
+//	_, err = o.Raw(sql, userId, date).QueryRows(&items)
+//	return
+//}
+
+func GetCygxTimelineLogCount(userId int, industrialIdArr []int) (items []*CygxTimelineLog, err error) {
+	if len(industrialIdArr) == 0 {
+		return
+	}
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_timeline_log WHERE user_id=? AND 	 industrial_management_id IN (` + utils.GetOrmInReplace(len(industrialIdArr)) + `)`
+	_, err = o.Raw(sql, userId, industrialIdArr).QueryRows(&items)
+	return
+}

+ 6 - 4
services/admin.go

@@ -148,11 +148,13 @@ func GetSelleridWhichGroup(companyId, productId int, mobile string) (adminIds st
 				err = errors.New("models GetAdminListByGroupId, Err: " + e.Error())
 				return
 			}
-			var adminIdArr []string
-			for _, v := range adminList {
-				adminIdArr = append(adminIdArr, strconv.Itoa(v.AdminId))
+			if len(adminList) > 0 {
+				var adminIdArr []string
+				for _, v := range adminList {
+					adminIdArr = append(adminIdArr, strconv.Itoa(v.AdminId))
+				}
+				adminIds += "," + strings.Join(adminIdArr, ",")
 			}
-			adminIds += "," + strings.Join(adminIdArr, ",")
 		}
 	}
 	return

+ 12 - 10
services/industrial_management.go

@@ -523,21 +523,23 @@ func HandleIndustryList(list []*models.IndustrialManagement, user *models.WxUser
 	//查询用户今天是否看过时间线
 	//haveMorningMeeting := false
 	//var morningMeetingTime string
-	recrodList, err := models.GetTimeLineRecordAllCount(user.UserId, time.Now().Format(utils.FormatDate))
-	if err != nil {
+	recrodList, err := models.GetCygxTimelineLogCount(user.UserId, industrialIdArr)
+	if err != nil && err.Error() != utils.ErrNoRow() {
 		return
 	}
 	var industrialManagementIdstr string
 	industrialIdMap := make(map[string]time.Time)
 	for _, v := range recrodList {
-		industrialManagementIdstr = strings.TrimLeft(v.Parameter, "PageSize=10&CurrentIndex=1&CategoryId=99999&IndustrialManagementId=")
-		if createTime, ok := industrialIdMap[industrialManagementIdstr]; ok {
-			if createTime.Before(v.CreateTime) {
-				industrialIdMap[industrialManagementIdstr] = v.CreateTime
-			}
-		} else {
-			industrialIdMap[industrialManagementIdstr] = v.CreateTime
-		}
+		industrialManagementIdstr = strconv.Itoa(v.IndustrialManagementId)
+		industrialIdMap[industrialManagementIdstr] = v.ModifyTime
+		//industrialManagementIdstr = strings.TrimLeft(v.Parameter, "PageSize=10&CurrentIndex=1&CategoryId=99999&IndustrialManagementId=")
+		//if createTime, ok := industrialIdMap[industrialManagementIdstr]; ok {
+		//	if createTime.Before(v.CreateTime) {
+		//		industrialIdMap[industrialManagementIdstr] = v.CreateTime
+		//	}
+		//} else {
+		//	industrialIdMap[industrialManagementIdstr] = v.CreateTime
+		//}
 	}
 
 	mmList, err := models.GetCygxMorningMeetingReviewsListByIndustrialIds(industrialIds)

+ 48 - 0
services/send_company_user.go

@@ -231,6 +231,7 @@ func DotongbuShangHaApi(condition string) (err error) {
 		return
 	}
 	mappermissionData := make(map[int][]*models.PermissionData)
+	mappermissionDataNoChekcStatus := make(map[int][]*models.PermissionData)
 	if len(companyList) > 0 {
 		comapnyIdArr := make([]int, 0)
 		for _, v := range companyList {
@@ -252,6 +253,9 @@ func DotongbuShangHaApi(condition string) (err error) {
 			} else {
 				IsTryOut = 0
 			}
+			if v.PermissionName == utils.YAN_XUAN_KOU_DIAN_BAO_NAME {
+				v.PermissionName = utils.MAI_FANG_YAN_XUAN_NAME
+			}
 			mappermissionData[v.CompanyId] = append(mappermissionData[v.CompanyId], &models.PermissionData{
 				PermissionName: v.PermissionName,
 				StartTime:      strconv.Itoa(int(v.StartDate.Unix())),
@@ -259,6 +263,24 @@ func DotongbuShangHaApi(condition string) (err error) {
 				IsTryOut:       IsTryOut,
 			})
 		}
+
+		permissionDataListNoChekcStatus, e := models.GetSendCompanyPermissionDataListNoChekcStatus(conditionComapny, pars)
+		if e != nil {
+			err = errors.New("GetSendCompanyPermissionDataListNoChekcStatus, Err: " + e.Error())
+			return
+		}
+		//var IsTryOut int
+		for _, v := range permissionDataListNoChekcStatus {
+			if v.PermissionName == utils.YAN_XUAN_KOU_DIAN_BAO_NAME {
+				v.PermissionName = utils.MAI_FANG_YAN_XUAN_NAME
+			}
+			mappermissionDataNoChekcStatus[v.CompanyId] = append(mappermissionDataNoChekcStatus[v.CompanyId], &models.PermissionData{
+				PermissionName: v.PermissionName,
+				StartTime:      strconv.Itoa(int(v.StartDate.Unix())),
+				EndTime:        strconv.Itoa(int(v.EndDate.Unix())),
+				IsTryOut:       1,
+			})
+		}
 	}
 
 	fmt.Println("权益客户", len(companyList))
@@ -275,6 +297,8 @@ func DotongbuShangHaApi(condition string) (err error) {
 			//一次同步一百条
 			if len(mappermissionData[companyList[k].Cid]) > 0 {
 				companyList[k].PermissionData = mappermissionData[companyList[k].Cid]
+			} else if len(mappermissionDataNoChekcStatus[companyList[k].Cid]) > 0 {
+				companyList[k].PermissionData = mappermissionDataNoChekcStatus[companyList[k].Cid]
 			}
 			companyItems = append(companyItems, companyList[k])
 			if (k+1)%100 == 0 {
@@ -310,6 +334,7 @@ func DotongbuShangHaApi(condition string) (err error) {
 		return err
 	}
 	mappermissionDataFicc := make(map[int][]*models.PermissionData)
+	mappermissionDataFiccNoChekcStatus := make(map[int][]*models.PermissionData)
 	if len(companyFiccList) > 0 {
 		comapnyIdArr := make([]int, 0)
 		for _, v := range companyFiccList {
@@ -331,6 +356,9 @@ func DotongbuShangHaApi(condition string) (err error) {
 			} else {
 				IsTryOut = 0
 			}
+			if v.PermissionName == utils.YAN_XUAN_KOU_DIAN_BAO_NAME {
+				v.PermissionName = utils.MAI_FANG_YAN_XUAN_NAME
+			}
 			mappermissionDataFicc[v.CompanyId] = append(mappermissionDataFicc[v.CompanyId], &models.PermissionData{
 				PermissionName: v.PermissionName,
 				StartTime:      strconv.Itoa(int(v.StartDate.Unix())),
@@ -338,6 +366,24 @@ func DotongbuShangHaApi(condition string) (err error) {
 				IsTryOut:       IsTryOut,
 			})
 		}
+
+		permissionDataListNoChekcStatus, e := models.GetSendCompanyPermissionDataListNoChekcStatus(conditionComapny, pars)
+		if e != nil {
+			err = errors.New("GetSendCompanyPermissionDataListNoChekcStatus, Err: " + e.Error())
+			return
+		}
+		//var IsTryOut int
+		for _, v := range permissionDataListNoChekcStatus {
+			if v.PermissionName == utils.YAN_XUAN_KOU_DIAN_BAO_NAME {
+				v.PermissionName = utils.MAI_FANG_YAN_XUAN_NAME
+			}
+			mappermissionDataFiccNoChekcStatus[v.CompanyId] = append(mappermissionDataFiccNoChekcStatus[v.CompanyId], &models.PermissionData{
+				PermissionName: v.PermissionName,
+				StartTime:      strconv.Itoa(int(v.StartDate.Unix())),
+				EndTime:        strconv.Itoa(int(v.EndDate.Unix())),
+				IsTryOut:       1,
+			})
+		}
 	}
 
 	fmt.Println("FICC客户", len(companyFiccList))
@@ -350,6 +396,8 @@ func DotongbuShangHaApi(condition string) (err error) {
 			companyFiccList[k].EndDate = strconv.Itoa(int(companyFiccList[k].EndDateTime.Unix()))
 			if len(mappermissionDataFicc[companyFiccList[k].Cid]) > 0 {
 				companyFiccList[k].PermissionData = mappermissionDataFicc[companyFiccList[k].Cid]
+			} else if len(mappermissionDataFiccNoChekcStatus[companyList[k].Cid]) > 0 {
+				companyFiccList[k].PermissionData = mappermissionDataFiccNoChekcStatus[companyList[k].Cid]
 			}
 			//一次同步一百条
 			companyFiccItems = append(companyFiccItems, companyFiccList[k])

+ 58 - 0
services/timeline_log.go

@@ -0,0 +1,58 @@
+package services
+
+import (
+	"errors"
+	"fmt"
+	"hongze/hongze_cygx/models"
+	"hongze/hongze_cygx/utils"
+	"time"
+)
+
+// 记录产业时间线的点击记录
+func AddCygxTimelineLog(user *models.WxUserItem, industrialManagementId int) (err error) {
+	if user.UserId == 0 {
+		return
+	}
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg(fmt.Sprint("记录产业时间线的点击记录 失败 AddCygxTimelineLog Err:"+err.Error(), "userId:", user.UserId, "industrialManagementId:", industrialManagementId), 2)
+		}
+	}()
+	//获取销售信息
+	sellerItem, e := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetSellerByCompanyIdCheckFicc, Err: " + e.Error())
+		return
+	}
+	if sellerItem == nil {
+		return
+	}
+
+	//判断一个用户是否阅读过 某一篇研选专栏
+	totalRecord, e := models.GetCygxTimelineLogCountByUser(user.UserId, industrialManagementId)
+	if e != nil {
+		err = errors.New("GetCygxTimelineLogCountByUser, Err: " + e.Error())
+		return
+	}
+	if totalRecord == 0 {
+		item := new(models.CygxTimelineLog)
+		item.UserId = user.UserId
+		item.Mobile = user.Mobile
+		item.Email = user.Email
+		item.CompanyId = user.CompanyId
+		item.CompanyName = user.CompanyName
+		item.RealName = user.RealName
+		item.CreateTime = time.Now()
+		item.ModifyTime = time.Now()
+		item.IndustrialManagementId = industrialManagementId
+		_, e = models.AddCygxTimelineLog(item) // 添加历史记录
+	} else {
+		//更新时间线下对应产业的阅读时间
+		e = models.UpdateCygxTimelineLogModifyTime(user.UserId, industrialManagementId)
+		if e != nil {
+			err = errors.New("UpdateCygxTimelineLogModifyTime, Err: " + e.Error())
+			return
+		}
+	}
+	return
+}