Browse Source

no message

xingzai 11 months ago
parent
commit
cee0f8f129

+ 109 - 0
controllers/cygx/enter_score.go

@@ -0,0 +1,109 @@
+package cygx
+
+import (
+	"hongze/hz_crm_api/controllers"
+	"hongze/hz_crm_api/models"
+	"hongze/hz_crm_api/models/cygx"
+	"hongze/hz_crm_api/models/system"
+	"hongze/hz_crm_api/utils"
+)
+
+// 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.ListProup = itemsGroup
+	resp.PercentageObj = resp.EnterScoreObj
+	resp.EnterScoreType = 1
+	resp.Quarter = make([]string, 0)
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 66 - 0
models/cygx/enter_score.go

@@ -0,0 +1,66 @@
+package cygx
+
+import "time"
+
+// CygxEnterScore 结构体代表了 cygx_enter_score 表格
+type CygxEnterScore struct {
+	EnterScoreID        int       `comment:"主键"`
+	EnterScoreType      int       `comment:"录入方式 1:按评分录入、2:按比例录入"`
+	CompanyID           int       `comment:"公司ID"`
+	CreateTime          time.Time `comment:"创建时间"`
+	ModifyTime          time.Time `comment:"更新时间"`
+	AdminID             int       `comment:"操作人ID"`
+	AdminName           string    `comment:"操作人姓名"`
+	Proportion          float64   `comment:"占比"`
+	ChartPermissionName string    `comment:"名称"`
+	SellerID            int       `comment:"所属销售id"`
+	SellerName          string    `comment:"所属销售名称"`
+	CompanyName         string    `comment:"客户名称"`
+	StartDate           time.Time `comment:"开始日期"`
+	EndDate             time.Time `comment:"结束日期"`
+	Quarter             string    `comment:"季度"`
+	TotalScore          string    `comment:"总分"`
+	Ranking             string    `comment:"排名"`
+	IsMergeScoring      int       `comment:"是否合并打分"`
+	SecuritiesFirmsName string    `comment:"券商名称"`
+	MergeProportion     float64   `comment:"合并占比"`
+}
+type CygxEnterScoreDetailResp struct {
+	EnterScoreId        int               `comment:"录分ID"`
+	CompanyId           int               `comment:"公司ID,公司标识符"`
+	CompanyName         string            `comment:"公司名称"`
+	Quarter             []string          `comment:"季度,评分季度"`
+	EnterScoreType      int               `comment:"录入方式 1:按评分录入、2:按比例录入"`
+	RaiProportionTotal  float64           `description:"权益研究员占比"`
+	FiccProportionTotal float64           `description:"FICC研究员占比"`
+	EnterScoreObj       EnterScoreDateObj `description:"按评分录入"`
+	PercentageObj       EnterScoreDateObj `description:"按比例录入"`
+}
+
+// 行业
+type EnterScoreDateObj struct {
+	ListRai   []*EnterScorePermissionListResp //权益列表
+	ListFicc  []*EnterScorePermissionListResp //FICC列表
+	ListProup []*EnterScoreGroupListResp      //其他配置信息
+}
+
+// 行业
+type EnterScorePermissionListResp struct {
+	ChartPermissionName string  `description:"行业名称"`
+	Proportion          float64 `description:"占比"`
+	EnterScoreId        int     `comment:"录分ID"`
+	List                []*EnterScoreRealNameListResp
+}
+
+// 研究员
+type EnterScoreRealNameListResp struct {
+	RealName            string  `description:"研究员姓名"`
+	Proportion          float64 `description:"占比"`
+	ChartPermissionName string  `description:"行业名称"`
+}
+
+// 其他分组
+type EnterScoreGroupListResp struct {
+	GroupName  string  `description:"研究员姓名"`
+	Proportion float64 `description:"占比"`
+}

+ 8 - 0
models/system/sys_admin.go

@@ -512,6 +512,14 @@ func GetRaiAdmin() (items []*AdminItem, err error) {
 	return
 }
 
+// GetFiccEnterScoreAdmin 获取Ficc需要录分的研究员
+func GetFiccEnterScoreAdmin() (items []*AdminItem, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT   *  FROM admin WHERE group_name  IN('宏观组','建材组','有色组','能化组')`
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
 // SyncRoleData 同步角色数据
 type SyncRoleData struct {
 	Source int `description:"来源: 1-CRM; 2-ETA"`

+ 9 - 0
routers/commentsRouter.go

@@ -1456,6 +1456,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:EnterScoreController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:EnterScoreController"],
+        beego.ControllerComments{
+            Method: "CompanyContracDetail",
+            Router: `/enterScore/detail`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:IndustrialAnalystController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:IndustrialAnalystController"],
         beego.ControllerComments{
             Method: "IndustrialAnalystAdd",

+ 1 - 0
routers/router.go

@@ -160,6 +160,7 @@ func init() {
 				&cygx.QuestionnaireController{},
 				&cygx.AskserieVideoController{},
 				&cygx.UserAdminShareHistoryController{},
+				&cygx.EnterScoreController{},
 			),
 		),
 		web.NSNamespace("/advisory",