|
@@ -1,14 +1,16 @@
|
|
|
package roadshow
|
|
|
|
|
|
import (
|
|
|
+ "context"
|
|
|
"errors"
|
|
|
"fmt"
|
|
|
"hongze/hongze_task/models"
|
|
|
+ "hongze/hongze_task/models/cygx"
|
|
|
"hongze/hongze_task/models/roadshow"
|
|
|
"hongze/hongze_task/utils"
|
|
|
"strconv"
|
|
|
+ "strings"
|
|
|
"time"
|
|
|
- "context"
|
|
|
)
|
|
|
|
|
|
func AddReportRecord(cont context.Context) (err error) {
|
|
@@ -17,44 +19,170 @@ func AddReportRecord(cont context.Context) (err error) {
|
|
|
fmt.Println("AddReportRecord Err:" + err.Error())
|
|
|
}
|
|
|
}()
|
|
|
-
|
|
|
adminAll, err := models.GetAdminList()
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
adminMap := make(map[int]*models.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
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ listEmail, err := cygx.GetAskEmail() //权益研究员姓名
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mapResearcherNameRai := make(map[string]bool)
|
|
|
+ for _, v := range listEmail {
|
|
|
+ mapResearcherNameRai[v.Name] = true
|
|
|
}
|
|
|
|
|
|
companyList, err := roadshow.RsCompanyList()
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+ companyListRai, err := roadshow.RsCompanyListRai() //权益客户信息
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
companyMap := make(map[int]*roadshow.CompanySearchView)
|
|
|
+ companyMapRai := make(map[int]*roadshow.CompanySearchView)
|
|
|
for _, v := range companyList {
|
|
|
companyMap[v.CompanyId] = v
|
|
|
}
|
|
|
|
|
|
- endDate := time.Now().AddDate(-1, 0, 0).Format(utils.FormatDate)
|
|
|
+ for _, v := range companyListRai {
|
|
|
+ companyMapRai[v.CompanyId] = v
|
|
|
+ }
|
|
|
+
|
|
|
+ endDate := time.Now().AddDate(-0, 0, -3).Format(utils.FormatDate)
|
|
|
|
|
|
existList, err := roadshow.GetExistRsReportRecord(endDate)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
existMap := make(map[string]*roadshow.RsReportRecord)
|
|
|
+
|
|
|
for _, v := range existList {
|
|
|
key := strconv.Itoa(v.RsCalendarId) + "_" + strconv.Itoa(v.RsCalendarResearcherId)
|
|
|
existMap[key] = v
|
|
|
}
|
|
|
+ mapInteractionNum := make(map[int]int)
|
|
|
+ mapPermissionNameFicc := make(map[int][]string)
|
|
|
+ mapPermissionNameRai := make(map[int][]string)
|
|
|
+ mapPermissionFicc := make(map[int][]*roadshow.RsReportRecordPermission)
|
|
|
+ mapPermissionRai := make(map[int][]*roadshow.RsReportRecordPermission)
|
|
|
+
|
|
|
+ var itemsRs []*roadshow.RsReportRecordPermission
|
|
|
list, err := roadshow.GetRsCalendarDetail(endDate)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
+ var companyIds []int
|
|
|
for _, v := range list {
|
|
|
+ if v.CompanyId > 0 {
|
|
|
+ companyIds = append(companyIds, v.CompanyId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ 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 companyMap[v.CompanyId] == nil {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if mapPermissionArrFicc[fmt.Sprint(v.CompanyId, v.PermissionName)] || v.PermissionName == "" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if companyMap[v.CompanyId].Status == "正式" && v.Status != "正式" {
|
|
|
+ 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 companyMapRai[v.CompanyId] == nil {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if mapPermissionArrRai[fmt.Sprint(v.CompanyId, v.PermissionName)] || v.PermissionName == "" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if companyMapRai[v.CompanyId].Status == "正式" && v.Status != "正式" {
|
|
|
+ continue // 正式客户只统计正式权限
|
|
|
+ }
|
|
|
+ mapPermissionNameRai[v.CompanyId] = append(mapPermissionNameRai[v.CompanyId], v.PermissionName)
|
|
|
+ mapPermissionArrRai[fmt.Sprint(v.CompanyId, v.PermissionName)] = true
|
|
|
+ }
|
|
|
+
|
|
|
+ listPermissionFicc, errFicc := roadshow.GetCompanyProductReportPermissionList(companyIds, 1) // FICC权限信息
|
|
|
+ if errFicc != nil {
|
|
|
+ err = errFicc
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range listPermissionFicc {
|
|
|
+ if companyMap[v.CompanyId] == nil {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ mapPermissionFicc[v.CompanyId] = append(mapPermissionFicc[v.CompanyId], v)
|
|
|
+ }
|
|
|
+
|
|
|
+ listPermissionRai, errRai := roadshow.GetCompanyProductReportPermissionList(companyIds, 2) // 权益权限信息
|
|
|
+ if errRai != nil {
|
|
|
+ err = errRai
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range listPermissionRai {
|
|
|
+ if companyMapRai[v.CompanyId] == nil {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ mapPermissionRai[v.CompanyId] = append(mapPermissionRai[v.CompanyId], v)
|
|
|
+ }
|
|
|
+ listerrCompanyInteractionNum, errCompany := models.GetCompanyListByCompanyId(companyIds) // 权益客户互动信息
|
|
|
+ if errCompany != nil {
|
|
|
+ err = errCompany
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range listerrCompanyInteractionNum {
|
|
|
+ mapInteractionNum[v.CompanyId] = v.InteractionNum
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ mapRsReportRecordPermission := make(map[string]bool) // 一个公司的一场路演,添加了多个研究员只记录一次
|
|
|
+ for _, v := range list {
|
|
|
+ if mapResearcherNameRai[v.ResearcherName] && v.CompanyName == "" && v.Source == 1 && v.ActivityType == "路演" {
|
|
|
+ continue // 如果权益研究员的而且公司名称为空,而且是上海那边同步过来的路演就不做记录
|
|
|
+ }
|
|
|
company := new(roadshow.CompanySearchView)
|
|
|
if v.CompanyId > 0 {
|
|
|
- company, _ = companyMap[v.CompanyId]
|
|
|
+ if mapRaiSllerId[v.SysUserId] {
|
|
|
+ company, _ = companyMapRai[v.CompanyId] // 如果是权益销售添加的信息,就用权益相关的客户信息
|
|
|
+ if len(mapPermissionNameRai[v.CompanyId]) > 0 {
|
|
|
+ company.PermissionName = strings.Join(mapPermissionNameRai[v.CompanyId], "/")
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ company, _ = companyMap[v.CompanyId]
|
|
|
+ if len(mapPermissionNameFicc[v.CompanyId]) > 0 {
|
|
|
+ company.PermissionName = strings.Join(mapPermissionNameFicc[v.CompanyId], "/")
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
researcher, ok := adminMap[v.ResearcherId]
|
|
@@ -81,7 +209,8 @@ func AddReportRecord(cont context.Context) (err error) {
|
|
|
reportUpdateParams["company_id"] = company.CompanyId
|
|
|
reportUpdateParams["company_name"] = company.CompanyName
|
|
|
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
|
|
|
if researcher != nil {
|
|
@@ -116,6 +245,7 @@ func AddReportRecord(cont context.Context) (err error) {
|
|
|
reportUpdateParams["rs_calendar_researcher_status"] = v.Status
|
|
|
reportUpdateParams["activity_type"] = v.ActivityType
|
|
|
reportUpdateParams["roadshow_type"] = v.RoadshowType
|
|
|
+ reportUpdateParams["question_status"] = v.QuestionStatus
|
|
|
reportUpdateParams["modify_time"] = time.Now()
|
|
|
err = roadshow.UpdateRsReportRecord(reportWhereParams, reportUpdateParams)
|
|
|
} else { //新增
|
|
@@ -125,6 +255,7 @@ func AddReportRecord(cont context.Context) (err error) {
|
|
|
item.CompanyName = company.CompanyName
|
|
|
item.CreditCode = company.CreditCode
|
|
|
item.CompanyStatus = company.Status
|
|
|
+ item.PermissionName = company.PermissionName
|
|
|
}
|
|
|
item.ActivityType = v.ActivityType
|
|
|
item.ResearcherId = v.ResearcherId
|
|
@@ -161,10 +292,41 @@ func AddReportRecord(cont context.Context) (err error) {
|
|
|
item.ModifyTime = time.Now()
|
|
|
item.RsCalendarResearcherStatus = v.Status
|
|
|
item.RoadshowType = v.RoadshowType
|
|
|
+ item.QuestionStatus = v.QuestionStatus
|
|
|
+ item.InteractionNum = mapInteractionNum[v.CompanyId]
|
|
|
_, err = roadshow.AddRsReportRecord(item)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+ if mapRaiSllerId[v.SysUserId] {
|
|
|
+ for _, vP := range mapPermissionRai[v.CompanyId] {
|
|
|
+ pKey := strconv.Itoa(v.RsCalendarId) + "_" + strconv.Itoa(vP.ChartPermissionId)
|
|
|
+ if mapRsReportRecordPermission[pKey] {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ vP.CreatedTime = time.Now()
|
|
|
+ vP.ModifyTime = time.Now().Format(utils.FormatDateTime)
|
|
|
+ vP.RsCalendarId = v.RsCalendarId
|
|
|
+ itemsRs = append(itemsRs, vP)
|
|
|
+ mapRsReportRecordPermission[pKey] = true
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for _, vP := range mapPermissionFicc[v.CompanyId] {
|
|
|
+ pKey := strconv.Itoa(v.RsCalendarId) + "_" + strconv.Itoa(vP.ChartPermissionId)
|
|
|
+ if mapRsReportRecordPermission[pKey] {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ vP.CreatedTime = time.Now()
|
|
|
+ vP.ModifyTime = time.Now().Format(utils.FormatDateTime)
|
|
|
+ vP.RsCalendarId = v.RsCalendarId
|
|
|
+ itemsRs = append(itemsRs, vP)
|
|
|
+ mapRsReportRecordPermission[pKey] = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(itemsRs) > 0 {
|
|
|
+ err = roadshow.MultiRsReportRecordPermission(itemsRs) // 添加公司当时对应的权限信息
|
|
|
}
|
|
|
}
|
|
|
return err
|