浏览代码

no message

zhangchuanxing 5 月之前
父节点
当前提交
d52bfef862
共有 3 个文件被更改,包括 81 次插入6 次删除
  1. 27 0
      models/company_report_permission.go
  2. 7 5
      models/roadshow/report.go
  3. 47 1
      services/roadshow/report.go

+ 27 - 0
models/company_report_permission.go

@@ -23,6 +23,25 @@ type CompanyReportPermission struct {
 	ExpensiveYx               int       `description:"权益研选: 0-3w; 1-5w"`
 	ExpensiveYx               int       `description:"权益研选: 0-3w; 1-5w"`
 }
 }
 
 
+// 客户授权产品结构体(包含产品名称)
+type CompanyReportPermissionAndName struct {
+	CompanyReportPermissionId int `description:"客户授权产品id"`
+	CompanyId                 int
+	ReportPermissionId        int
+	CreatedTime               time.Time
+	LastUpdatedTime           time.Time
+	ChartPermissionId         int
+	StartDate                 string    `description:"权限开始日期"`
+	EndDate                   string    `description:"权限结束日期"`
+	ProductId                 int       `description:"产品id"`
+	ProductName               string    `description:"产品名称"`
+	CompanyContractId         int       `description:"合同id"`
+	PermissionName            string    `description:"客户授权产品的名称"`
+	ClassifyName              string    `description:"客户授权产品的分类名称"`
+	Status                    string    `description:"'正式','试用','关闭'"`
+	ModifyTime                time.Time `description:"修改时间"`
+}
+
 // Update 更新客户产品权限
 // Update 更新客户产品权限
 func (item *CompanyReportPermission) Update(cols []string) (err error) {
 func (item *CompanyReportPermission) Update(cols []string) (err error) {
 	o := orm.NewOrm()
 	o := orm.NewOrm()
@@ -115,3 +134,11 @@ func GetCompanyReportPermissionByStatus(companyId, productId int, status string)
 	_, err = o.Raw(sql, companyId, productId, status).QueryRows(&items)
 	_, err = o.Raw(sql, companyId, productId, status).QueryRows(&items)
 	return
 	return
 }
 }
+
+// 根据企业用户id和产品id获取所有正式的权限
+func GetCompanyProductReportPermissionList(companyId []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(companyId)) + `) and a.product_id=?   	AND a.status IN ('正式','试用','永续') `
+	_, err = o.Raw(sql, companyId, productId).QueryRows(&items)
+	return
+}

+ 7 - 5
models/roadshow/report.go

@@ -11,6 +11,7 @@ type RsReportRecord struct {
 	CompanyName                string    `description:"客户名称"`
 	CompanyName                string    `description:"客户名称"`
 	CreditCode                 string    `description:"社会统一信用码"`
 	CreditCode                 string    `description:"社会统一信用码"`
 	CompanyStatus              string    `description:"客户状态:'试用','永续','冻结','流失','正式','潜在'"`
 	CompanyStatus              string    `description:"客户状态:'试用','永续','冻结','流失','正式','潜在'"`
+	PermissionName             string    `description:"开通品种"`
 	ResearcherId               int       `description:"研究员id"`
 	ResearcherId               int       `description:"研究员id"`
 	ResearcherName             string    `description:"研究员名称"`
 	ResearcherName             string    `description:"研究员名称"`
 	ResearcherGroupId          int       `description:"研究员分组id"`
 	ResearcherGroupId          int       `description:"研究员分组id"`
@@ -89,11 +90,12 @@ func GetRsCalendarDetail(endDate string) (list []*RsCalendarResearcherView, err
 }
 }
 
 
 type CompanySearchView struct {
 type CompanySearchView struct {
-	CompanyId   int    `orm:"column(company_id);pk"`
-	CompanyName string `description:"客户名称"`
-	CreditCode  string `description:"社会统一信用码"`
-	CompanyCode string `description:"客户编码"`
-	Status      string `description:"客户状态"`
+	CompanyId      int    `orm:"column(company_id);pk"`
+	CompanyName    string `description:"客户名称"`
+	CreditCode     string `description:"社会统一信用码"`
+	CompanyCode    string `description:"客户编码"`
+	Status         string `description:"客户状态"`
+	PermissionName string `description:"开通品种"`
 }
 }
 
 
 func RsCompanyList() (list []*CompanySearchView, err error) {
 func RsCompanyList() (list []*CompanySearchView, err error) {

+ 47 - 1
services/roadshow/report.go

@@ -8,6 +8,7 @@ import (
 	"hongze/hongze_task/models/roadshow"
 	"hongze/hongze_task/models/roadshow"
 	"hongze/hongze_task/utils"
 	"hongze/hongze_task/utils"
 	"strconv"
 	"strconv"
+	"strings"
 	"time"
 	"time"
 )
 )
 
 
@@ -17,7 +18,6 @@ func AddReportRecord(cont context.Context) (err error) {
 			fmt.Println("AddReportRecord Err:" + err.Error())
 			fmt.Println("AddReportRecord Err:" + err.Error())
 		}
 		}
 	}()
 	}()
-
 	adminAll, err := models.GetAdminList()
 	adminAll, err := models.GetAdminList()
 	if err != nil {
 	if err != nil {
 		return
 		return
@@ -57,10 +57,48 @@ func AddReportRecord(cont context.Context) (err error) {
 		return
 		return
 	}
 	}
 	existMap := make(map[string]*roadshow.RsReportRecord)
 	existMap := make(map[string]*roadshow.RsReportRecord)
+	var companyIds []int
 	for _, v := range existList {
 	for _, v := range existList {
 		key := strconv.Itoa(v.RsCalendarId) + "_" + strconv.Itoa(v.RsCalendarResearcherId)
 		key := strconv.Itoa(v.RsCalendarId) + "_" + strconv.Itoa(v.RsCalendarResearcherId)
 		existMap[key] = v
 		existMap[key] = v
+		if v.CompanyId > 0 {
+			companyIds = append(companyIds, v.CompanyId)
+		}
+	}
+	mapPermissionNameFicc := make(map[int][]string)
+	mapPermissionNameRai := make(map[int][]string)
+
+	if len(companyIds) > 0 {
+		listPermissionNameFicc, errFicc := models.GetCompanyProductReportPermissionList(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 := models.GetCompanyProductReportPermissionList(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)] {
+				continue
+			}
+			mapPermissionNameRai[v.CompanyId] = append(mapPermissionNameRai[v.CompanyId], v.PermissionName)
+			mapPermissionArrRai[fmt.Sprint(v.CompanyId, v.PermissionName)] = true
+		}
 	}
 	}
+
 	list, err := roadshow.GetRsCalendarDetail(endDate)
 	list, err := roadshow.GetRsCalendarDetail(endDate)
 	if err != nil {
 	if err != nil {
 		return
 		return
@@ -70,8 +108,14 @@ func AddReportRecord(cont context.Context) (err error) {
 		if v.CompanyId > 0 {
 		if v.CompanyId > 0 {
 			if mapRaiSllerId[v.SysUserId] {
 			if mapRaiSllerId[v.SysUserId] {
 				company, _ = companyMapRai[v.CompanyId] // 如果是权益销售添加的信息,就用权益相关的客户信息
 				company, _ = companyMapRai[v.CompanyId] // 如果是权益销售添加的信息,就用权益相关的客户信息
+				if len(mapPermissionNameRai[v.CompanyId]) > 0 {
+					company.PermissionName = strings.Join(mapPermissionNameRai[v.CompanyId], "/")
+				}
 			} else {
 			} else {
 				company, _ = companyMap[v.CompanyId]
 				company, _ = companyMap[v.CompanyId]
+				if len(mapPermissionNameFicc[v.CompanyId]) > 0 {
+					company.PermissionName = strings.Join(mapPermissionNameFicc[v.CompanyId], "/")
+				}
 			}
 			}
 		}
 		}
 
 
@@ -100,6 +144,7 @@ func AddReportRecord(cont context.Context) (err error) {
 				reportUpdateParams["company_name"] = company.CompanyName
 				reportUpdateParams["company_name"] = company.CompanyName
 				reportUpdateParams["credit_code"] = company.CreditCode
 				reportUpdateParams["credit_code"] = company.CreditCode
 				reportUpdateParams["company_status"] = company.Status
 				reportUpdateParams["company_status"] = company.Status
+				reportUpdateParams["permission_name"] = company.PermissionName
 			}
 			}
 			reportUpdateParams["activity_type"] = v.ActivityType
 			reportUpdateParams["activity_type"] = v.ActivityType
 			if researcher != nil {
 			if researcher != nil {
@@ -143,6 +188,7 @@ func AddReportRecord(cont context.Context) (err error) {
 				item.CompanyName = company.CompanyName
 				item.CompanyName = company.CompanyName
 				item.CreditCode = company.CreditCode
 				item.CreditCode = company.CreditCode
 				item.CompanyStatus = company.Status
 				item.CompanyStatus = company.Status
+				item.PermissionName = company.PermissionName
 			}
 			}
 			item.ActivityType = v.ActivityType
 			item.ActivityType = v.ActivityType
 			item.ResearcherId = v.ResearcherId
 			item.ResearcherId = v.ResearcherId