123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287 |
- package cygx
- import (
- "encoding/json"
- "hongze/hz_crm_api/controllers"
- "hongze/hz_crm_api/models"
- "hongze/hz_crm_api/models/company"
- "hongze/hz_crm_api/models/cygx"
- "hongze/hz_crm_api/models/system"
- "hongze/hz_crm_api/utils"
- "strings"
- "time"
- )
- // X类客户录分模块
- type EnterScoreController struct {
- controllers.BaseAuthController
- }
- // @Title 详情
- // @Description 获取详情接口
- // @Param CompanyContractId query int true "ID"
- // @Success Ret=200 {object} cygx.CygxAllocationCompanyContractDetailResp
- // @router /enterScore/detail [get]
- func (this *EnterScoreController) CompanyContracDetail() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- AdminUser := this.SysUser
- if AdminUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,用户信息为空"
- br.Ret = 408
- return
- }
- resp := new(cygx.CygxEnterScoreDetailResp)
- //权益研究员
- sysUserList, err := cygx.GetAskEmailList()
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取失败,GetAskEmailList Err: " + err.Error()
- return
- }
- mapRaiUser := make(map[string][]*cygx.EnterScoreRealNameListResp)
- for _, v := range sysUserList {
- item := new(cygx.EnterScoreRealNameListResp)
- item.RealName = v.Name
- item.ChartPermissionName = v.ChartPermissionName
- mapRaiUser[v.ChartPermissionName] = append(mapRaiUser[v.ChartPermissionName], item)
- }
- listPermission, err := cygx.GetChartPermissionAll()
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
- return
- }
- var itemslistPermission []*cygx.EnterScorePermissionListResp
- permissionNameArr := []string{"医药", "消费", "科技", "智造", "策略", "固收"}
- for _, v := range listPermission {
- if !utils.InArrayByStr(permissionNameArr, v.PermissionName) {
- continue
- }
- item := new(cygx.EnterScorePermissionListResp)
- item.ChartPermissionName = v.PermissionName
- item.List = mapRaiUser[v.PermissionName]
- itemslistPermission = append(itemslistPermission, item)
- }
- resp.EnterScoreObj.ListRai = itemslistPermission
- //ficc 研究员
- ficcUserList, err := system.GetFiccEnterScoreAdmin()
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取失败,GetFiccEnterScoreAdmin Err: " + err.Error()
- return
- }
- mapFiccUser := make(map[string][]*cygx.EnterScoreRealNameListResp)
- for _, v := range ficcUserList {
- item := new(cygx.EnterScoreRealNameListResp)
- item.RealName = v.RealName
- item.ChartPermissionName = v.GroupName
- mapFiccUser[v.GroupName] = append(mapFiccUser[v.GroupName], item)
- }
- var itemsFicclistPermission []*cygx.EnterScorePermissionListResp
- permissionFiccNameArr := []string{"宏观组", "建材组", "有色组", "能化组"}
- for _, v := range permissionFiccNameArr {
- item := new(cygx.EnterScorePermissionListResp)
- item.ChartPermissionName = v
- item.List = mapFiccUser[v]
- itemsFicclistPermission = append(itemsFicclistPermission, item)
- }
- resp.EnterScoreObj.ListFicc = itemsFicclistPermission
- groupNameArr := []string{"销售分", "专题分", "专家分", "云图大拓", "艾摩宏观"}
- var itemsGroup []*cygx.EnterScoreGroupListResp
- for _, v := range groupNameArr {
- item := new(cygx.EnterScoreGroupListResp)
- item.GroupName = v
- itemsGroup = append(itemsGroup, item)
- }
- resp.EnterScoreObj.ListGroup = itemsGroup
- resp.PercentageObj = resp.EnterScoreObj
- resp.EnterScoreType = 1
- resp.Quarter = make([]string, 0)
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 更新派点
- // @Description 更新派点接口
- // @Param request body cygx.AddProductInteriorReq true "type json string"
- // @Success 200 {object} "保存成功"
- // @router /enterScore/update [post]
- func (this *EnterScoreController) EnterScoreUpdate() {
- 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
- }
- var req cygx.UpdateEnterScoreReq
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- enterScoreId := req.EnterScoreId
- companyId := req.CompanyId
- if companyId == 0 {
- br.Msg = "参数错误"
- br.ErrMsg = "参数错误,companyId不可为空"
- return
- }
- //EnterScoreId int `orm:"column(enter_score_id);pk";comment:"主键"`
- //CompanyId int `comment:"公司ID"`
- //CompanyName string `comment:"客户名称"`
- //StartDate time.Time `comment:"开始日期"`
- //EndDate time.Time `comment:"结束日期"`
- //Quarter string `comment:"季度"`
- //EnterScoreType int `comment:"录入方式 1:按评分录入、2:按比例录入"`
- //TotalScore string `comment:"总分"`
- //Ranking string `comment:"排名"`
- //IsMergeScoring int `comment:"是否合并打分"`
- //SecuritiesFirmsName string `comment:"券商名称"`
- //MergeProportion float64 `comment:"合并占比"`
- //RaiProportionTotal float64 `comment:"权益研究员占比"`
- //FiccProportionTotal float64 `comment:"FICC研究员占比"`
- //ProportionTotal float64 `comment:"合计总占比"`
- //SellerId int `comment:"所属销售id"`
- //SellerName string `comment:"所属销售名称"`
- //AdminId int `comment:"操作人ID"`
- //AdminName string `comment:"操作人姓名"`
- //CreateTime time.Time `comment:"创建时间"`
- //ModifyTime time.Time `comment:"更新时间"`
- companyProduct, err := company.GetCompanyProductByCompanyIdAndProductId(companyId, utils.COMPANY_PRODUCT_RAI_ID)
- if err != nil {
- br.Msg = "查询客户产品信息失败"
- br.ErrMsg = "查询客户产品信息失败,Err:" + err.Error()
- return
- }
- item := new(cygx.CygxEnterScore)
- item.EnterScoreId = enterScoreId
- item.CompanyId = companyId
- item.CompanyName = req.CompanyName
- item.StartDate = req.StartDate
- item.EndDate = req.EndDate
- item.Quarter = strings.Join(req.Quarter, ",")
- item.EnterScoreType = req.EnterScoreType
- item.Ranking = req.Ranking
- item.IsMergeScoring = req.IsMergeScoring
- item.SecuritiesFirmsName = req.SecuritiesFirmsName
- item.MergeProportion = req.MergeProportion
- item.RaiProportionTotal = req.RaiProportionTotal
- item.FiccProportionTotal = req.FiccProportionTotal
- item.ProportionTotal = req.ProportionTotal
- item.SellerId = companyProduct.SellerId
- item.SellerName = companyProduct.SellerName
- item.AdminId = sysUser.AdminId
- item.AdminName = sysUser.RealName
- item.CreateTime = time.Now()
- item.ModifyTime = time.Now()
- var itemsPermission []*cygx.CygxEnterScorePermission //行业数组
- var itemsResearcher []*cygx.CygxEnterScoreResearcher //研究员数组
- var itemsGroup []*cygx.CygxEnterScoreGroup //自定义分组
- listRai := req.ListRai
- listFicc := req.ListFicc
- listGroup := req.ListGroup
- for _, v := range listRai { // 权益数据
- itemPermission := new(cygx.CygxEnterScorePermission)
- itemPermission.ChartPermissionName = v.ChartPermissionName
- itemPermission.Proportion = v.Proportion
- itemPermission.EnterScoreId = v.EnterScoreId
- itemPermission.AdminId = sysUser.AdminId
- itemPermission.AdminName = sysUser.RealName
- itemPermission.ProductId = utils.COMPANY_PRODUCT_RAI_ID
- itemPermission.CreateTime = time.Now()
- itemPermission.ModifyTime = time.Now()
- itemsPermission = append(itemsPermission, itemPermission)
- for _, vResearcher := range v.List {
- itemResearcher := new(cygx.CygxEnterScoreResearcher)
- itemResearcher.ChartPermissionName = v.ChartPermissionName
- itemResearcher.EnterScoreId = v.EnterScoreId
- itemResearcher.RealName = vResearcher.RealName
- itemResearcher.Proportion = vResearcher.Proportion
- itemResearcher.AdminId = sysUser.AdminId
- itemResearcher.AdminName = sysUser.RealName
- itemResearcher.ProductId = utils.COMPANY_PRODUCT_RAI_ID
- itemResearcher.CreateTime = time.Now()
- itemResearcher.ModifyTime = time.Now()
- itemsResearcher = append(itemsResearcher, itemResearcher)
- }
- }
- for _, v := range listFicc { // FICC数据
- itemPermission := new(cygx.CygxEnterScorePermission)
- itemPermission.ChartPermissionName = v.ChartPermissionName
- itemPermission.Proportion = v.Proportion
- itemPermission.EnterScoreId = v.EnterScoreId
- itemPermission.AdminId = sysUser.AdminId
- itemPermission.AdminName = sysUser.RealName
- itemPermission.ProductId = utils.COMPANY_PRODUCT_FICC_ID
- itemPermission.CreateTime = time.Now()
- itemPermission.ModifyTime = time.Now()
- itemsPermission = append(itemsPermission, itemPermission)
- for _, vResearcher := range v.List {
- itemResearcher := new(cygx.CygxEnterScoreResearcher)
- itemResearcher.ChartPermissionName = v.ChartPermissionName
- itemResearcher.EnterScoreId = v.EnterScoreId
- itemResearcher.RealName = vResearcher.RealName
- itemResearcher.Proportion = vResearcher.Proportion
- itemResearcher.AdminId = sysUser.AdminId
- itemResearcher.AdminName = sysUser.RealName
- itemResearcher.ProductId = utils.COMPANY_PRODUCT_FICC_ID
- itemResearcher.CreateTime = time.Now()
- itemResearcher.ModifyTime = time.Now()
- itemsResearcher = append(itemsResearcher, itemResearcher)
- }
- }
- for _, v := range listGroup {
- itemGroup := new(cygx.CygxEnterScoreGroup)
- itemGroup.GroupName = v.GroupName
- itemGroup.Proportion = v.Proportion
- itemGroup.AdminId = sysUser.AdminId
- itemGroup.AdminName = sysUser.RealName
- itemGroup.CreateTime = time.Now()
- itemGroup.ModifyTime = time.Now()
- itemsGroup = append(itemsGroup, itemGroup)
- }
- //fmt.Println("itemsPermission", len(itemsPermission))
- //fmt.Println("itemsResearcher", len(itemsResearcher))
- //fmt.Println("itemsGroup", len(itemsGroup))
- if enterScoreId == 0 { // 新增
- err = cygx.AddCygxEnterScore(item, itemsPermission, itemsResearcher, itemsGroup)
- } else { // 修改
- }
- if err != nil {
- br.Msg = "操作失败"
- br.ErrMsg = "操作失败Err:" + err.Error()
- return
- }
- br.Ret = 200
- br.Success = true
- br.IsAddLog = true
- br.Msg = "操作成功"
- }
|