|
@@ -17,6 +17,8 @@ import (
|
|
|
"strings"
|
|
|
)
|
|
|
|
|
|
+// TODO 取消共享的时候,需要清除对应用户的收藏状态
|
|
|
+
|
|
|
// EdbInfoShareController 数据管理
|
|
|
type EdbInfoShareController struct {
|
|
|
controllers.BaseAuthController
|
|
@@ -131,6 +133,54 @@ func (c *EdbInfoShareController) Save() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ // 如果指标未公开,则判断是否被其他用户使用
|
|
|
+ if edbItem.PublicStatus != utils.DataPublicSuccess {
|
|
|
+ checkUserIdList := []int{sysUser.AdminId}
|
|
|
+ if len(req.UserIdList) > 0 {
|
|
|
+ checkUserIdList = append(checkUserIdList, req.UserIdList...)
|
|
|
+ }
|
|
|
+ noReferenced, otherUserIdList, err, tips := data.CheckEdbReferencedByOthers(edbItem.EdbInfoType, []int{edbItem.EdbInfoId}, 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 = "指标被其他用户共享,无法设置共享,EdbInfoId:" + strconv.Itoa(req.EdbInfoId)
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
obj := data_manage.EdbInfoShare{}
|
|
|
err = obj.SaveEdbInfoShare([]int{req.EdbInfoId}, req.UserIdList, req.ShareType)
|
|
|
if err != nil {
|
|
@@ -602,26 +652,147 @@ func (c *EdbInfoShareController) BatchSave() {
|
|
|
}
|
|
|
|
|
|
num := len(selectEdbInfoIdList)
|
|
|
+ if num <= 0 {
|
|
|
+ br.Msg = `请选择指标`
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
if num > 30 {
|
|
|
br.Msg = `指标数量不能超过30个`
|
|
|
br.IsSendEmail = false
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 设置
|
|
|
- if num > 0 {
|
|
|
- obj := data_manage.EdbInfoShare{}
|
|
|
- err = obj.SaveEdbInfoShare(selectEdbInfoIdList, req.UserIdList, req.ShareType)
|
|
|
- if err != nil {
|
|
|
- br.Msg = `保存失败`
|
|
|
- br.ErrMsg = `保存失败:` + err.Error()
|
|
|
- return
|
|
|
+ edbInfoList, err := data_manage.GetEdbInfoListByEdbInfoId(selectEdbInfoIdList)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "设置失败!"
|
|
|
+ br.ErrMsg = "设置失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ checkBaseEdbInfoIdList := make([]int, 0)
|
|
|
+ checkCalculateEdbInfoIdList := make([]int, 0)
|
|
|
+
|
|
|
+ for _, edbItem := range edbInfoList {
|
|
|
+ // 设置公开的可以忽略
|
|
|
+ if edbItem.PublicStatus == utils.DataPublicSuccess {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ if edbItem.EdbInfoType == utils.EDB_INFO_TYPE {
|
|
|
+ checkBaseEdbInfoIdList = append(checkBaseEdbInfoIdList, edbItem.EdbInfoId)
|
|
|
+ } else if edbItem.EdbInfoType == utils.PREDICT_EDB_INFO_TYPE {
|
|
|
+ checkCalculateEdbInfoIdList = append(checkCalculateEdbInfoIdList, edbItem.EdbInfoId)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- // 更新es
|
|
|
- for _, edbInfoId := range selectEdbInfoIdList {
|
|
|
- data.AddOrEditEdbInfoToEs(edbInfoId)
|
|
|
+ checkUserIdList := []int{sysUser.AdminId}
|
|
|
+ if len(req.UserIdList) > 0 {
|
|
|
+ checkUserIdList = append(checkUserIdList, req.UserIdList...)
|
|
|
}
|
|
|
+
|
|
|
+ // 普通指标
|
|
|
+ {
|
|
|
+ noReferenced, otherUserIdList, err, tips := data.CheckEdbReferencedByOthers(utils.EDB_INFO_TYPE, checkBaseEdbInfoIdList, 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 = "指标被其他用户共享,无法设置共享"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 预测指标
|
|
|
+ {
|
|
|
+ noReferenced, otherUserIdList, err, tips := data.CheckEdbReferencedByOthers(utils.PREDICT_EDB_INFO_TYPE, checkCalculateEdbInfoIdList, 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 = "指标被其他用户共享,无法设置共享"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 设置
|
|
|
+ obj := data_manage.EdbInfoShare{}
|
|
|
+ err = obj.SaveEdbInfoShare(selectEdbInfoIdList, req.UserIdList, req.ShareType)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = `保存失败`
|
|
|
+ br.ErrMsg = `保存失败:` + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新es
|
|
|
+ for _, edbInfoId := range selectEdbInfoIdList {
|
|
|
+ data.AddOrEditEdbInfoToEs(edbInfoId)
|
|
|
}
|
|
|
|
|
|
br.Ret = 200
|