|
@@ -2,6 +2,7 @@ package data_manage
|
|
|
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
+ "eta_gn/eta_api/cache"
|
|
|
"eta_gn/eta_api/controllers"
|
|
|
"eta_gn/eta_api/models"
|
|
|
"eta_gn/eta_api/models/data_manage"
|
|
@@ -128,12 +129,76 @@ func (c *ChartInfoShareController) Save() {
|
|
|
}
|
|
|
if chartItem.SysUserId != c.SysUser.AdminId {
|
|
|
br.Msg = "您没有权限设置共享"
|
|
|
- br.ErrMsg = "您没有权限设置共享,EdbInfoId:" + strconv.Itoa(req.ChartInfoId)
|
|
|
+ br.ErrMsg = "您没有权限设置共享,ChartInfoId:" + strconv.Itoa(req.ChartInfoId)
|
|
|
br.IsSendEmail = false
|
|
|
return
|
|
|
}
|
|
|
|
|
|
obj := data_manage.ChartInfoShare{}
|
|
|
+
|
|
|
+ // 如果图表未公开,则判断是否被其他用户使用
|
|
|
+ if chartItem.PublicStatus != utils.DataPublicSuccess {
|
|
|
+ checkUserIdList := []int{sysUser.AdminId}
|
|
|
+ if len(req.UserIdList) > 0 {
|
|
|
+ checkUserIdList = append(checkUserIdList, req.UserIdList...)
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ userIdList, err := obj.GetAllUserIdListByChartInfoIdAndNoShareType(chartItem.ChartInfoId, req.ShareType)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "设置失败!"
|
|
|
+ br.ErrMsg = "设置失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(userIdList) > 0 {
|
|
|
+ checkUserIdList = append(checkUserIdList, userIdList...)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 校验是否被其他用户关联
|
|
|
+ noReferenced, otherUserIdList, err, tips := data.CheckChartReferencedByOthers([]int{chartItem.ChartInfoId}, []string{chartItem.UniqueCode}, checkUserIdList)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "保存失败"
|
|
|
+ if tips != "" {
|
|
|
+ br.Msg = tips
|
|
|
+ }
|
|
|
+ br.ErrMsg = "设置图表共享失败,查找图表的关联用户失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if !noReferenced {
|
|
|
+ userNameStr := ``
|
|
|
+ if len(otherUserIdList) > 0 {
|
|
|
+ userNameList := make([]string, 0)
|
|
|
+ userList, err := system.GetAdminListByIdList(otherUserIdList)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "保存失败"
|
|
|
+ if tips != "" {
|
|
|
+ br.Msg = tips
|
|
|
+ }
|
|
|
+ br.ErrMsg = "设置图表共享失败,查找用户信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, userInfo := range userList {
|
|
|
+ userNameList = append(userNameList, userInfo.RealName)
|
|
|
+ }
|
|
|
+ userNameStr = strings.Join(userNameList, "、")
|
|
|
+ }
|
|
|
+ msg := `图表被其他用户使用,无法设置共享`
|
|
|
+ if userNameStr != "" {
|
|
|
+ msg = fmt.Sprintf(`图表被用户%s使用,无法设置共享`, userNameStr)
|
|
|
+ }
|
|
|
+ if tips != "" {
|
|
|
+ msg = fmt.Sprintf(`%s,用户为:%s,无法设置共享`, tips, userNameStr)
|
|
|
+ }
|
|
|
+ br.Msg = msg
|
|
|
+ br.ErrMsg = "图表被其他用户共享,无法设置共享,ChartInfoId:" + strconv.Itoa(chartItem.ChartInfoId)
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 修改
|
|
|
err = obj.SaveChartInfoShare([]int{req.ChartInfoId}, req.UserIdList, req.ShareType)
|
|
|
if err != nil {
|
|
|
br.Msg = `保存失败`
|
|
@@ -144,6 +209,9 @@ func (c *ChartInfoShareController) Save() {
|
|
|
// 更新es
|
|
|
data.AddOrEditChartInfoToEs(req.ChartInfoId)
|
|
|
|
|
|
+ // 图表收藏操作处理
|
|
|
+ go cache.AddDataCollectHandler(req.ChartInfoId, utils.DataCollectTypeChart)
|
|
|
+
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "保存成功"
|
|
@@ -349,15 +417,15 @@ func (c *ChartInfoShareController) List() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- editShareEdbInfoIdMap, err := data.GetAllEditSharedChartInfoIdMapByReceivedUserId(c.SysUser.AdminId)
|
|
|
+ editShareChartInfoIdMap, err := data.GetAllEditSharedChartInfoIdMapByReceivedUserId(c.SysUser.AdminId)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取所有有编辑权限的分享指标失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "获取所有有编辑权限的分享图表失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
for _, chartInfo := range respList {
|
|
|
chartInfo.HaveOperaAuth = true
|
|
|
- button := data.GetChartOpButton(c.SysUser, chartInfo.SysUserId, chartInfo.ChartInfoId, chartInfo.HaveOperaAuth, editShareEdbInfoIdMap)
|
|
|
+ button := data.GetChartOpButton(c.SysUser, chartInfo.SysUserId, chartInfo.ChartInfoId, chartInfo.HaveOperaAuth, editShareChartInfoIdMap)
|
|
|
chartInfo.Button.IsEdit = button.OpButton
|
|
|
chartInfo.Button.IsCopy = button.DeleteButton
|
|
|
}
|
|
@@ -593,30 +661,110 @@ func (c *ChartInfoShareController) BatchSave() {
|
|
|
}
|
|
|
|
|
|
num := len(selectChartInfoIdList)
|
|
|
-
|
|
|
+ if num <= 0 {
|
|
|
+ br.Msg = `请选择图表`
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
if num > 30 {
|
|
|
br.Msg = `图表数量不能超过30个`
|
|
|
br.IsSendEmail = false
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 设置
|
|
|
- if num > 0 {
|
|
|
+ chartInfoList, err := data_manage.GetChartInfoListByChartIdList(selectChartInfoIdList)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "设置失败!"
|
|
|
+ br.ErrMsg = "设置失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ obj := data_manage.ChartInfoShare{}
|
|
|
|
|
|
- obj := data_manage.ChartInfoShare{}
|
|
|
- err = obj.SaveChartInfoShare(selectChartInfoIdList, req.UserIdList, req.ShareType)
|
|
|
- if err != nil {
|
|
|
- br.Msg = `保存失败`
|
|
|
- br.ErrMsg = `保存失败:` + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
+ {
|
|
|
+ for _, chartItem := range chartInfoList {
|
|
|
+ // 如果指标已公开,则不判断是否被其他用户使用
|
|
|
+ if chartItem.PublicStatus == utils.DataPublicSuccess {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if chartItem.PublicStatus != utils.DataPublicSuccess {
|
|
|
+ checkUserIdList := []int{sysUser.AdminId}
|
|
|
+ if len(req.UserIdList) > 0 {
|
|
|
+ checkUserIdList = append(checkUserIdList, req.UserIdList...)
|
|
|
+ }
|
|
|
|
|
|
- // 更新es
|
|
|
- for _, chartInfoId := range selectChartInfoIdList {
|
|
|
- data.AddOrEditChartInfoToEs(chartInfoId)
|
|
|
+ {
|
|
|
+ userIdList, err := obj.GetAllUserIdListByChartInfoIdAndNoShareType(chartItem.ChartInfoId, req.ShareType)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "设置失败!"
|
|
|
+ br.ErrMsg = "设置失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(userIdList) > 0 {
|
|
|
+ checkUserIdList = append(checkUserIdList, userIdList...)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 校验是否被其他用户关联
|
|
|
+ noReferenced, otherUserIdList, err, tips := data.CheckChartReferencedByOthers([]int{chartItem.ChartInfoId}, []string{chartItem.UniqueCode}, checkUserIdList)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "保存失败"
|
|
|
+ if tips != "" {
|
|
|
+ br.Msg = tips
|
|
|
+ }
|
|
|
+ br.ErrMsg = "设置指标共享失败,查找指标的关联用户失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if !noReferenced {
|
|
|
+ userNameStr := ``
|
|
|
+ if len(otherUserIdList) > 0 {
|
|
|
+ userNameList := make([]string, 0)
|
|
|
+ userList, err := system.GetAdminListByIdList(otherUserIdList)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "保存失败"
|
|
|
+ if tips != "" {
|
|
|
+ br.Msg = tips
|
|
|
+ }
|
|
|
+ br.ErrMsg = "设置指标共享失败,查找用户信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, userInfo := range userList {
|
|
|
+ userNameList = append(userNameList, userInfo.RealName)
|
|
|
+ }
|
|
|
+ userNameStr = strings.Join(userNameList, "、")
|
|
|
+ }
|
|
|
+ msg := fmt.Sprintf(`指标《%s》被其他用户使用,无法设置共享`, chartItem.ChartName)
|
|
|
+ if userNameStr != "" {
|
|
|
+ msg = fmt.Sprintf(`指标《%s》被用户%s使用,无法设置共享`, chartItem.ChartName, userNameStr)
|
|
|
+ }
|
|
|
+ if tips != "" {
|
|
|
+ msg = fmt.Sprintf(`%s,用户为:%s,无法设置共享`, tips, userNameStr)
|
|
|
+ }
|
|
|
+ br.Msg = msg
|
|
|
+ br.ErrMsg = "指标被其他用户共享,无法设置共享,ChartInfoId:" + strconv.Itoa(chartItem.ChartInfoId)
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 设置
|
|
|
+ err = obj.SaveChartInfoShare(selectChartInfoIdList, req.UserIdList, req.ShareType)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = `保存失败`
|
|
|
+ br.ErrMsg = `保存失败:` + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新es
|
|
|
+ for _, chartInfoId := range selectChartInfoIdList {
|
|
|
+ data.AddOrEditChartInfoToEs(chartInfoId)
|
|
|
+
|
|
|
+ // 图表收藏操作处理
|
|
|
+ go cache.AddDataCollectHandler(chartInfoId, utils.DataCollectTypeChart)
|
|
|
+ }
|
|
|
+
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "保存成功"
|