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 = "操作成功" }