xingzai 11 bulan lalu
induk
melakukan
65c466eb97
3 mengubah file dengan 327 tambahan dan 106 penghapusan
  1. 205 97
      controllers/cygx/enter_score.go
  2. 121 8
      models/cygx/enter_score.go
  3. 1 1
      routers/commentsRouter.go

+ 205 - 97
controllers/cygx/enter_score.go

@@ -19,10 +19,10 @@ type EnterScoreController struct {
 
 // @Title  详情
 // @Description 获取详情接口
-// @Param   CompanyContractId   query   int  true       "ID"
-// @Success Ret=200 {object} cygx.CygxAllocationCompanyContractDetailResp
+// @Param   EnterScoreId   query   int  true       "录分ID"
+// @Success Ret=200 {object} cygx.CygxEnterScoreDetailResp
 // @router /enterScore/detail [get]
-func (this *EnterScoreController) CompanyContracDetail() {
+func (this *EnterScoreController) EnterScoreDetail() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -35,86 +35,219 @@ func (this *EnterScoreController) CompanyContracDetail() {
 		br.Ret = 408
 		return
 	}
+
+	enterScoreId, _ := this.GetInt("EnterScoreId")
 	resp := new(cygx.CygxEnterScoreDetailResp)
+	var itemslistPermission []*cygx.EnterScorePermissionListResp       // 权益行业
+	var itemsFicclistPermission []*cygx.EnterScorePermissionListResp   // FICC行业
+	mapRaiUser := make(map[string][]*cygx.EnterScoreRealNameListResp)  //权益研究员
+	mapFiccUser := make(map[string][]*cygx.EnterScoreRealNameListResp) // FICC研究员
+	var itemsGroup []*cygx.EnterScoreGroupListResp                     //自定义分组
+	if enterScoreId == 0 {
+		//权益研究员
+		sysUserList, err := cygx.GetAskEmailList()
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取失败,GetAskEmailList Err: " + err.Error()
+			return
+		}
 
-	//权益研究员
-	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)
-	}
+		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
+		listPermission, err := cygx.GetChartPermissionAll()
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
+			return
 		}
-		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
+		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
+		}
+
+		for _, v := range ficcUserList {
+			item := new(cygx.EnterScoreRealNameListResp)
+			item.RealName = v.RealName
+			item.ChartPermissionName = v.GroupName
+			mapFiccUser[v.GroupName] = append(mapFiccUser[v.GroupName], item)
+		}
+
+		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{"销售分", "专题分", "专家分", "云图大拓", "艾摩宏观"}
+		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)
+	} else {
+		//初始化数据,方便前端渲染
+		var itemslistPermissionInit []*cygx.EnterScorePermissionListResp       // 权益行业
+		var itemsFicclistPermissionInit []*cygx.EnterScorePermissionListResp   // FICC行业
+		var itemsGroupInit []*cygx.EnterScoreGroupListResp                     //自定义分组
+		mapRaiUserInit := make(map[string][]*cygx.EnterScoreRealNameListResp)  //权益研究员
+		mapFiccUserInit := make(map[string][]*cygx.EnterScoreRealNameListResp) // FICC研究员
 
-	groupNameArr := []string{"销售分", "专题分", "专家分", "云图大拓", "艾摩宏观"}
-	var itemsGroup []*cygx.EnterScoreGroupListResp
-	for _, v := range groupNameArr {
-		item := new(cygx.EnterScoreGroupListResp)
-		item.GroupName = v
-		itemsGroup = append(itemsGroup, item)
+		enterScoreDetail, err := cygx.GetCygxEnterScoreInfoById(enterScoreId)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取失败,GetCygxEnterScoreInfoById Err: " + err.Error()
+			return
+		}
+
+		resp.EnterScoreId = enterScoreDetail.EnterScoreId
+		resp.CompanyId = enterScoreDetail.CompanyId
+		resp.CompanyName = enterScoreDetail.CompanyName
+		resp.StartDate = enterScoreDetail.StartDate
+		resp.EndDate = enterScoreDetail.EndDate
+		resp.Quarter = strings.Split(enterScoreDetail.Quarter, ",")
+		resp.EnterScoreType = enterScoreDetail.EnterScoreType
+		resp.Ranking = enterScoreDetail.Ranking
+		resp.IsMergeScoring = enterScoreDetail.IsMergeScoring
+		resp.SecuritiesFirmsName = enterScoreDetail.SecuritiesFirmsName
+		resp.MergeProportion = enterScoreDetail.MergeProportion
+		resp.ProportionTotal = enterScoreDetail.ProportionTotal
+		resp.RaiProportionTotal = enterScoreDetail.RaiProportionTotal
+		resp.FiccProportionTotal = enterScoreDetail.FiccProportionTotal
+
+		listResearcher, err := cygx.GeCygxEnterScoreResearcherListById(enterScoreId)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取失败,GeCygxEnterScoreResearcherListById Err: " + err.Error()
+			return
+		}
+		for _, v := range listResearcher {
+			item := new(cygx.EnterScoreRealNameListResp)
+			item.RealName = v.RealName
+			item.ChartPermissionName = v.ChartPermissionName
+			item.Proportion = v.Proportion
+			if v.ProductId == utils.COMPANY_PRODUCT_RAI_ID {
+				mapRaiUser[v.ChartPermissionName] = append(mapRaiUser[v.ChartPermissionName], item)
+			} else {
+				mapFiccUser[v.ChartPermissionName] = append(mapFiccUser[v.ChartPermissionName], item)
+			}
+		}
+
+		for _, v := range listResearcher {
+			item := new(cygx.EnterScoreRealNameListResp)
+			item.RealName = v.RealName
+			item.ChartPermissionName = v.ChartPermissionName
+			if v.ProductId == utils.COMPANY_PRODUCT_RAI_ID {
+				mapRaiUserInit[v.ChartPermissionName] = append(mapRaiUserInit[v.ChartPermissionName], item)
+			} else {
+				mapFiccUserInit[v.ChartPermissionName] = append(mapFiccUserInit[v.ChartPermissionName], item)
+			}
+		}
+
+		listPermission, err := cygx.GetCygxEnterScorePermissionListById(enterScoreId)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取失败,GetCygxEnterScorePermissionListById Err: " + err.Error()
+			return
+		}
+		for _, v := range listPermission {
+			item := new(cygx.EnterScorePermissionListResp)
+			item.ChartPermissionName = v.ChartPermissionName
+			item.Proportion = v.Proportion
+			if v.ProductId == utils.COMPANY_PRODUCT_RAI_ID {
+				item.List = mapRaiUser[v.ChartPermissionName]
+				itemslistPermission = append(itemslistPermission, item)
+			} else {
+				item.List = mapFiccUser[v.ChartPermissionName]
+				itemsFicclistPermission = append(itemsFicclistPermission, item)
+			}
+		}
+
+		for _, v := range listPermission {
+			item := new(cygx.EnterScorePermissionListResp)
+			item.ChartPermissionName = v.ChartPermissionName
+			if v.ProductId == utils.COMPANY_PRODUCT_RAI_ID {
+				item.List = mapRaiUserInit[v.ChartPermissionName]
+				itemslistPermissionInit = append(itemslistPermissionInit, item)
+			} else {
+				item.List = mapFiccUserInit[v.ChartPermissionName]
+				itemsFicclistPermissionInit = append(itemsFicclistPermissionInit, item)
+			}
+		}
+
+		listGroup, err := cygx.GeCygxEnterScoreGroupListById(enterScoreId)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取失败,GeCygxEnterScoreGroupListById Err: " + err.Error()
+			return
+		}
+		for _, v := range listGroup {
+			item := new(cygx.EnterScoreGroupListResp)
+			item.GroupName = v.GroupName
+			item.Proportion = v.Proportion
+			itemsGroup = append(itemsGroup, item)
+		}
+
+		for _, v := range listGroup {
+			item := new(cygx.EnterScoreGroupListResp)
+			item.GroupName = v.GroupName
+			itemsGroupInit = append(itemsGroupInit, item)
+		}
+
+		if enterScoreDetail.EnterScoreType == 1 {
+			resp.EnterScoreObj.ListGroup = itemsGroup
+			resp.EnterScoreObj.ListRai = itemslistPermission
+			resp.EnterScoreObj.ListFicc = itemsFicclistPermission
+
+			resp.PercentageObj.ListGroup = itemsGroupInit
+			resp.PercentageObj.ListRai = itemslistPermissionInit
+			resp.PercentageObj.ListFicc = itemsFicclistPermissionInit
+		} else {
+			resp.PercentageObj.ListGroup = itemsGroup
+			resp.PercentageObj.ListRai = itemslistPermission
+			resp.PercentageObj.ListFicc = itemsFicclistPermission
+
+			resp.EnterScoreObj.ListGroup = itemsGroupInit
+			resp.EnterScoreObj.ListRai = itemslistPermissionInit
+			resp.EnterScoreObj.ListFicc = itemsFicclistPermissionInit
+		}
 	}
-	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"
+// @Title 更新录分
+// @Description 更新录分接口
+// @Param	request	body cygx.UpdateEnterScoreReq true "type json string"
 // @Success 200 {object} "保存成功"
 // @router /enterScore/update [post]
 func (this *EnterScoreController) EnterScoreUpdate() {
@@ -145,28 +278,6 @@ func (this *EnterScoreController) EnterScoreUpdate() {
 		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 = "查询客户产品信息失败"
@@ -265,16 +376,13 @@ func (this *EnterScoreController) EnterScoreUpdate() {
 		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 { // 修改
-
+		item.EnterScoreId = enterScoreId
+		err = cygx.UpdateCygxEnterScore(item, itemsPermission, itemsResearcher, itemsGroup)
 	}
-
 	if err != nil {
 		br.Msg = "操作失败"
 		br.ErrMsg = "操作失败Err:" + err.Error()

+ 121 - 8
models/cygx/enter_score.go

@@ -33,12 +33,19 @@ type CygxEnterScoreDetailResp struct {
 	EnterScoreId        int               `comment:"录分ID"`
 	CompanyId           int               `comment:"公司ID,公司标识符"`
 	CompanyName         string            `comment:"公司名称"`
+	StartDate           string            `comment:"开始日期"`
+	EndDate             string            `comment:"结束日期"`
 	Quarter             []string          `comment:"季度,评分季度"`
 	EnterScoreType      int               `comment:"录入方式 1:按评分录入、2:按比例录入"`
-	RaiProportionTotal  float64           `description:"权益研究员占比"`
-	FiccProportionTotal float64           `description:"FICC研究员占比"`
-	EnterScoreObj       EnterScoreDateObj `description:"按评分录入"`
-	PercentageObj       EnterScoreDateObj `description:"按比例录入"`
+	Ranking             string            `comment:"排名"`
+	IsMergeScoring      int               `comment:"是否合并打分"`
+	SecuritiesFirmsName string            `comment:"券商名称"`
+	MergeProportion     float64           `comment:"合并占比"`
+	ProportionTotal     float64           `comment:"合计总占比"`
+	RaiProportionTotal  float64           `comment:"权益研究员占比"`
+	FiccProportionTotal float64           `comment:"FICC研究员占比"`
+	EnterScoreObj       EnterScoreDateObj `comment:"按评分录入"`
+	PercentageObj       EnterScoreDateObj `comment:"按比例录入"`
 }
 
 // 行业
@@ -58,14 +65,14 @@ type EnterScorePermissionListResp struct {
 
 // 研究员
 type EnterScoreRealNameListResp struct {
-	RealName            string  `description:"研究员姓名"`
-	Proportion          float64 `description:"占比"`
-	ChartPermissionName string  `description:"行业名称"`
+	RealName            string  `comment:"研究员姓名"`
+	Proportion          float64 `comment:"占比"`
+	ChartPermissionName string  `comment:"行业名称"`
 }
 
 // 其他分组
 type EnterScoreGroupListResp struct {
-	GroupName  string  `description:"研究员姓名"`
+	GroupName  string  `description:"名"`
 	Proportion float64 `description:"占比"`
 }
 
@@ -181,3 +188,109 @@ func AddCygxEnterScore(item *CygxEnterScore, itemsPermission []*CygxEnterScorePe
 	}
 	return
 }
+
+// 更新派点信息
+func UpdateCygxEnterScore(item *CygxEnterScore, itemsPermission []*CygxEnterScorePermission, itemsResearcher []*CygxEnterScoreResearcher, itemsGroup []*CygxEnterScoreGroup) (err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	to, err := o.Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err != nil {
+			_ = to.Rollback()
+		} else {
+			_ = to.Commit()
+		}
+	}()
+
+	_, err = to.Update(item, "CompanyId", "CompanyName", "StartDate", "EndDate", "Quarter", "EnterScoreType", "Ranking", "IsMergeScoring", "SecuritiesFirmsName", "MergeProportion", "RaiProportionTotal", "FiccProportionTotal", "ProportionTotal", "SellerId", "SellerName", "AdminId", "AdminName", "ModifyTime")
+	if err != nil {
+		return
+	}
+	enterScoreId := item.EnterScoreId
+
+	//批量删除行业信息
+	sql := `DELETE FROM cygx_enter_score_permission WHERE enter_score_id = ?`
+	_, err = to.Raw(sql, enterScoreId).Exec()
+	if err != nil {
+		return
+	}
+
+	//批量删除研究员信息
+	sql = `	DELETE FROM cygx_enter_score_researcher WHERE enter_score_id = ?`
+	_, err = to.Raw(sql, enterScoreId).Exec()
+	if err != nil {
+		return
+	}
+
+	//批量删除自定义分组信息
+	sql = `	DELETE FROM cygx_enter_score_group WHERE enter_score_id = ?`
+	_, err = to.Raw(sql, enterScoreId).Exec()
+	if err != nil {
+		return
+	}
+
+	for _, v := range itemsPermission {
+		v.EnterScoreId = enterScoreId
+	}
+
+	for _, v := range itemsResearcher {
+		v.EnterScoreId = enterScoreId
+	}
+
+	for _, v := range itemsGroup {
+		v.EnterScoreId = enterScoreId
+	}
+
+	//批量添加行业信息
+	_, err = to.InsertMulti(len(itemsPermission), itemsPermission)
+	if err != nil {
+		return
+	}
+
+	//批量添加研究员信息
+	_, err = to.InsertMulti(len(itemsResearcher), itemsResearcher)
+	if err != nil {
+		return
+	}
+
+	//批量添加自定义分组信息
+	_, err = to.InsertMulti(len(itemsGroup), itemsGroup)
+	if err != nil {
+		return
+	}
+	return
+}
+
+// 通过ID获取详情
+func GetCygxEnterScoreInfoById(id int) (item *CygxEnterScore, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT * FROM cygx_enter_score  WHERE enter_score_id = ? `
+	err = o.Raw(sql, id).QueryRow(&item)
+	return
+}
+
+// 行业列表
+func GetCygxEnterScorePermissionListById(enterScoreId int) (items []*CygxEnterScorePermission, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT * FROM cygx_enter_score_permission WHERE enter_score_id = ? `
+	_, err = o.Raw(sql, enterScoreId).QueryRows(&items)
+	return
+}
+
+// 研究员列表
+func GeCygxEnterScoreResearcherListById(enterScoreId int) (items []*CygxEnterScoreResearcher, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT * FROM cygx_enter_score_researcher WHERE enter_score_id = ? `
+	_, err = o.Raw(sql, enterScoreId).QueryRows(&items)
+	return
+}
+
+// 研究员列表
+func GeCygxEnterScoreGroupListById(enterScoreId int) (items []*CygxEnterScoreGroup, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT * FROM cygx_enter_score_group WHERE enter_score_id = ? `
+	_, err = o.Raw(sql, enterScoreId).QueryRows(&items)
+	return
+}

+ 1 - 1
routers/commentsRouter.go

@@ -1458,7 +1458,7 @@ func init() {
 
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:EnterScoreController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:EnterScoreController"],
         beego.ControllerComments{
-            Method: "CompanyContracDetail",
+            Method: "EnterScoreDetail",
             Router: `/enterScore/detail`,
             AllowHTTPMethods: []string{"get"},
             MethodParams: param.Make(),