123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406 |
- 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"
- "strconv"
- "strings"
- )
- // @Title 我的日历列表
- // @Description 我的日历列表接口
- // @Param KeyWord query string true "搜索关键词"
- // @Success 200 {object} roadshow.CalendarListResp
- // @router /company/search [get]
- func (this *CalendarController) CompanySearch() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- KeyWord := this.GetString("KeyWord")
- if KeyWord == "" {
- br.Msg = "请输入搜索词!"
- return
- }
- KeyWord = "%" + KeyWord + "%"
- var groupId int
- if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
- groupId = sysUser.GroupId
- } else {
- groupId = -1
- }
- list, err := roadshow.CompanySearchV2(sysUser.AdminId, groupId, KeyWord, sysUser.RoleTypeCode)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "搜索客户失败!"
- br.ErrMsg = "搜索客户失败!Err:" + err.Error()
- return
- }
- if list == nil {
- list = make([]*roadshow.CompanySearchView, 0)
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = list
- }
- // CompanyDetail
- // @Title 我的日历列表
- // @Description 我的日历列表接口
- // @Param CompanyId query int true "公司id"
- // @Param EnglishCompany query int true "是否为英文客户"
- // @Param CompanyType query string true "客户类型:'ficc','权益',传空默认为ficc,"
- // @Param RsReportRecordId query int true "路演统计Id"
- // @Success 200 {object} roadshow.CompanyDetailView
- // @router /company/detail [get]
- func (this *CalendarController) CompanyDetail() {
- br := new(models.BaseResponse).Init()
- defer func() {
- if br.ErrMsg == "" {
- br.IsSendEmail = false
- }
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- companyId, _ := this.GetInt("CompanyId")
- if companyId <= 0 {
- br.Msg = "参数错误!"
- return
- }
- englishCompany, _ := this.GetInt("EnglishCompany")
- companyType := this.GetString("CompanyType")
- rsReportRecordId, _ := this.GetInt("RsReportRecordId")
- productId := services.GetProductId(sysUser.RoleTypeCode)
- if productId == 0 {
- productId = 1
- }
- if companyType == utils.COMPANY_CLASSIFY_RAI {
- productId = 2
- }
- detailView := new(roadshow.CompanyDetailView)
- if englishCompany == 0 {
- var companyStatus string
- var permissionName string
- var viewTotal int
- companyProductItem, err := company.GetCompanyProductByCompanyIdAndProductId(companyId, productId)
- if err != nil {
- if err.Error() == utils.ErrNoRow() {
- br.Msg = "该客户已被删除"
- return
- }
- br.Msg = "搜索客户失败!"
- br.ErrMsg = "搜索客户失败!Err:" + err.Error()
- return
- }
- if rsReportRecordId > 0 {
- rsReportRecordItem, err := roadshow.GetRsReportRecordDetailByRsReportRecordId(rsReportRecordId)
- if err != nil {
- br.Msg = "路演信息不存在!"
- br.ErrMsg = "路演信息不存在!Err:" + err.Error()
- return
- }
- companyStatus = rsReportRecordItem.CompanyStatus
- permissionName = rsReportRecordItem.PermissionName
- viewTotal = rsReportRecordItem.InteractionNum
- } else {
- permissionList, err := company.GetCompanyProductReportPermissionList(companyId, productId)
- if err != nil {
- br.Msg = "搜索客户权限失败!"
- br.ErrMsg = "搜索客户权限失败!Err:" + err.Error()
- return
- }
- var permissionArr []string
- for _, v := range permissionList {
- permissionArr = append(permissionArr, v.PermissionName)
- }
- companyStatus = companyProductItem.Status
- permissionName = strings.Join(permissionArr, "/")
- }
- detailView.CompanyId = companyProductItem.CompanyId
- detailView.CompanyName = companyProductItem.CompanyName
- detailView.Status = companyStatus
- detailView.IndustryId = companyProductItem.IndustryId
- detailView.IndustryName = companyProductItem.IndustryName
- //detailView.PermissionName = strings.Join(permissionArr, "/")
- detailView.PermissionName = permissionName
- detailView.ReportReadTotal = companyProductItem.ViewTotal //ficc报告-累计阅读次数
- if companyType == utils.COMPANY_CLASSIFY_RAI { //权益互动统计
- detailView.ReportReadTotal = viewTotal
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = detailView
- return
- }
- // 英文客户
- enItem, e := models.GetEnglishCompanyById(companyId)
- if e != nil {
- br.Msg = "搜索英文客户失败!"
- br.ErrMsg = "获取英文客户详情失败!Err:" + e.Error()
- return
- }
- detailView.CompanyId = enItem.CompanyId
- detailView.CompanyName = enItem.CompanyName
- detailView.Status = "正常"
- detailView.EnglishCompany = 1
- detailView.EnglishCountry = enItem.Country
- detailView.EnglishViewTotal = enItem.ViewTotal
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = detailView
- }
- //func init() {
- // init16_0()
- //}
- func init16_0() {
- var condition string
- var pars []interface{}
- condition = ` AND a.company_id > 0 AND a.start_date > '2025-01-01' `
- 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
- }
- listCompanyProductFicc, err := company.GetCompanyProductListByCompanyIds(companyIds, 1)
- if err != nil {
- fmt.Println(err)
- return
- }
- listCompanyProductRai, err := company.GetCompanyProductListByCompanyIds(companyIds, 2)
- if err != nil {
- fmt.Println(err)
- return
- }
- companyMap := make(map[int]*company.CompanyProduct)
- companyMapRai := make(map[int]*company.CompanyProduct)
- for _, v := range listCompanyProductFicc {
- companyMap[v.CompanyId] = v
- }
- for _, v := range listCompanyProductRai {
- companyMapRai[v.CompanyId] = v
- }
- mapPermissionNameFicc := make(map[int][]string)
- mapPermissionNameRai := make(map[int][]string)
- mapPermissionFicc := make(map[int][]*roadshow.RsReportRecordPermission)
- mapPermissionRai := make(map[int][]*roadshow.RsReportRecordPermission)
- 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
- }
- 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 := 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
- }
- 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)
- }
- 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
- var itemsRs []*roadshow.RsReportRecordPermission
- mapRsReportRecordPermission := make(map[string]bool) // 一个公司的一场路演,添加了多个研究员只记录一次
- 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)
- if mapRaiSllerId[v.SellerId] {
- for _, vP := range mapPermissionRai[v.CompanyId] {
- pKey := strconv.Itoa(v.RsCalendarId) + "_" + strconv.Itoa(vP.ChartPermissionId)
- if mapRsReportRecordPermission[pKey] {
- continue
- }
- 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.RsCalendarId = v.RsCalendarId
- itemsRs = append(itemsRs, vP)
- mapRsReportRecordPermission[pKey] = true
- }
- }
- }
- fmt.Println(len(updateItems))
- //err = roadshow.UpdateRsReportRecordPermissionMulti(updateItems)
- fmt.Println(err)
- fmt.Println("----", len(itemsRs))
- if len(itemsRs) > 0 {
- err = roadshow.MultiRsReportRecordPermission(itemsRs) // 添加公司当时对应的权限信息
- fmt.Println(err)
- }
- return
- }
- func init16_01() {
- var condition string
- var pars []interface{}
- condition = ` AND a.company_id > 0 AND a.start_date > '2025-01-01' `
- 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
- }
- adminAll, err := system.GetAdminList()
- if err != nil {
- return
- }
- //adminMap := make(map[int]*system.AdminView)
- mapRaiSllerId := make(map[int]bool) // 是否为权益销售
- for _, v := range adminAll {
- 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
- }
- }
- listerrCompanyInteractionNum, errCompany := company.GetCompanyListByCompanyId(companyIds) // 权益客户互动信息
- if errCompany != nil {
- err = errCompany
- return
- }
- mapInteractionNum := make(map[int]int)
- for _, v := range listerrCompanyInteractionNum {
- mapInteractionNum[v.CompanyId] = v.InteractionNum
- }
- var updateItems []*roadshow.RsReportRecord
- for _, v := range list {
- if mapRaiSllerId[v.SellerId] == true {
- item := new(roadshow.RsReportRecord)
- item.RsReportRecordId = v.RsReportRecordId
- item.InteractionNum = mapInteractionNum[v.CompanyId]
- updateItems = append(updateItems, item)
- }
- }
- err = roadshow.UpdateRsReportRecordInteractionNumnMulti(updateItems)
- fmt.Println("end", err)
- }
|