Browse Source

Merge branch 'crm/crm_16.0' of http://8.136.199.33:3000/hongze/hz_crm_api into debug

zhangchuanxing 3 months ago
parent
commit
df50aa01af

+ 105 - 0
controllers/roadshow/company.go

@@ -1,11 +1,14 @@
 package roadshow
 
 import (
+	"fmt"
 	"hongze/hz_crm_api/models"
 	"hongze/hz_crm_api/models/company"
 	"hongze/hz_crm_api/models/roadshow"
+	"hongze/hz_crm_api/models/system"
 	"hongze/hz_crm_api/services"
 	"hongze/hz_crm_api/utils"
+	"strings"
 )
 
 // @Title 我的日历列表
@@ -91,6 +94,7 @@ func (this *CalendarController) CompanyDetail() {
 	if productId == 0 {
 		productId = 1
 	}
+
 	if companyType == utils.COMPANY_CLASSIFY_RAI {
 		productId = 2
 	}
@@ -132,6 +136,17 @@ func (this *CalendarController) CompanyDetail() {
 		//detailView.PermissionName = strings.Join(permissionArr, "/")
 		detailView.PermissionName = rsReportRecordItem.PermissionName
 		detailView.ReportReadTotal = companyProductItem.ViewTotal //ficc报告-累计阅读次数
+
+		if companyType == utils.COMPANY_CLASSIFY_RAI { //权益互动统计
+			companyItem, err := company.GetCompanyById(companyId)
+			if err != nil {
+				br.Msg = "查找客户失败"
+				br.ErrMsg = "查找客户失败,Err:" + err.Error()
+				return
+			}
+			detailView.ReportReadTotal = companyItem.InteractionNum
+		}
+
 		br.Ret = 200
 		br.Success = true
 		br.Msg = "获取成功"
@@ -157,3 +172,93 @@ func (this *CalendarController) CompanyDetail() {
 	br.Msg = "获取成功"
 	br.Data = detailView
 }
+
+//func init() {
+//	init16_0()
+//}
+
+func init16_0() {
+	var condition string
+	var pars []interface{}
+	condition = ` AND a.company_id > 0  `
+
+	list, err := roadshow.GetRsReportRecordList(condition, pars)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+
+	var companyIds []int
+	mapcompanyIds := make(map[int]bool)
+	for _, v := range list {
+		if mapcompanyIds[v.CompanyId] {
+			continue
+		}
+		companyIds = append(companyIds, v.CompanyId)
+		mapcompanyIds[v.CompanyId] = true
+	}
+
+	mapPermissionNameFicc := make(map[int][]string)
+	mapPermissionNameRai := make(map[int][]string)
+	listPermissionNameFicc, errFicc := company.GetCompanyProductReportPermissionListInit16_0(companyIds, 1) // FICC权限信息
+	if errFicc != nil {
+		err = errFicc
+		return
+	}
+	mapPermissionArrFicc := make(map[string]bool)
+	for _, v := range listPermissionNameFicc {
+		if mapPermissionArrFicc[fmt.Sprint(v.CompanyId, v.PermissionName)] || v.PermissionName == "" {
+			continue
+		}
+		mapPermissionNameFicc[v.CompanyId] = append(mapPermissionNameFicc[v.CompanyId], v.PermissionName)
+		mapPermissionArrFicc[fmt.Sprint(v.CompanyId, v.PermissionName)] = true
+	}
+
+	listPermissionNameRai, errRai := company.GetCompanyProductReportPermissionListInit16_0(companyIds, 2) // 权益权限信息
+	if errRai != nil {
+		err = errRai
+		return
+	}
+
+	mapPermissionArrRai := make(map[string]bool)
+	for _, v := range listPermissionNameRai {
+		if mapPermissionArrRai[fmt.Sprint(v.CompanyId, v.PermissionName)] || v.PermissionName == "" {
+			continue
+		}
+		mapPermissionNameRai[v.CompanyId] = append(mapPermissionNameRai[v.CompanyId], v.PermissionName)
+		mapPermissionArrRai[fmt.Sprint(v.CompanyId, v.PermissionName)] = true
+	}
+
+	adminAll, err := system.GetAdminList()
+	if err != nil {
+		return
+	}
+	//adminMap := make(map[int]*system.AdminView)
+	mapRaiSllerId := make(map[int]bool) // 是否为权益销售
+	for _, v := range adminAll {
+		//adminMap[v.AdminId] = v
+		if v.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER || v.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP || v.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN {
+			mapRaiSllerId[v.AdminId] = true
+		}
+	}
+
+	var updateItems []*roadshow.RsReportRecord
+	for _, v := range list {
+		item := new(roadshow.RsReportRecord)
+		item.RsReportRecordId = v.RsReportRecordId
+		if mapRaiSllerId[v.SellerId] {
+			if len(mapPermissionNameRai[v.CompanyId]) > 0 {
+				item.PermissionName = strings.Join(mapPermissionNameRai[v.CompanyId], "/")
+			}
+		} else {
+			if len(mapPermissionNameFicc[v.CompanyId]) > 0 {
+				item.PermissionName = strings.Join(mapPermissionNameFicc[v.CompanyId], "/")
+			}
+		}
+		updateItems = append(updateItems, item)
+	}
+	fmt.Println(len(updateItems))
+	err = roadshow.UpdateRsReportRecordPermissionMulti(updateItems)
+	fmt.Println(err)
+	return
+}

+ 1 - 0
models/company/company.go

@@ -42,6 +42,7 @@ type Company struct {
 	IsHide          int       `description:"是否隐藏:0:不隐藏,1:隐藏"`
 	OverseasStatus  string    `description:"海外客户状态:'正式','试用','关闭'"`
 	ResetBtn        int       `description:"转正式和重置按钮:同步过来默认为0:显示转正式为1:显示重置为2"`
+	InteractionNum  int       `description:"用户总的互动量"`
 }
 
 // 新增客户

+ 8 - 0
models/company/company_permission.go

@@ -457,6 +457,14 @@ func GetCompanyProductReportPermissionList(companyId, productId int) (items []*C
 	return
 }
 
+// 根据企业用户id和产品id获取所有正式的权限
+func GetCompanyProductReportPermissionListInit16_0(companyIds []int, productId int) (items []*CompanyReportPermissionAndName, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT a.*,b.permission_name,b.classify_name FROM company_report_permission a left join chart_permission b on a.chart_permission_id=b.chart_permission_id WHERE a.company_id IN (` + utils.GetOrmInReplace(len(companyIds)) + `) and a.product_id=? AND a.status IN ('正式','试用','永续')   `
+	_, err = o.Raw(sql, companyIds, productId).QueryRows(&items)
+	return
+}
+
 // GetChartPermissionListById 根据权限id获取产品权限详情
 func GetChartPermissionListById(chartPermissionId int) (item *ChartPermission, err error) {
 	o := orm.NewOrm()

+ 32 - 0
models/roadshow/report_record.go

@@ -418,3 +418,35 @@ func GetRsReportRecordDetailByRsReportRecordId(rsReportRecordId int) (item *RsRe
 	err = o.Raw(sql, rsReportRecordId).QueryRow(&item)
 	return
 }
+
+// UpdateRsReportRecordPermissionMulti 批量修改
+func UpdateRsReportRecordPermissionMulti(items []*RsReportRecord) (err error) {
+	o, err := orm.NewOrm().Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err == nil {
+			o.Commit()
+		} else {
+			o.Rollback()
+		}
+	}()
+
+	//批量修改
+	p, err := o.Raw("UPDATE rs_report_record SET permission_name = ?  WHERE rs_report_record_id = ?").Prepare()
+	if err != nil {
+		return
+	}
+	defer func() {
+		_ = p.Close() // 别忘记关闭 statement
+	}()
+
+	for _, v := range items {
+		_, err = p.Exec(v.PermissionName, v.RsReportRecordId)
+		if err != nil {
+			return
+		}
+	}
+	return
+}