Browse Source

fix:未授权记录

Roc 11 months ago
parent
commit
515958eafb

+ 18 - 9
models/data_manage/data_manage_permission/no_auth_record.go

@@ -35,17 +35,17 @@ type DataItem struct {
 // @param subSource int
 // @param dataIdList []string
 // @param dataList []DataItem
-// @param addUserIdList []int
+// @param authUserIdList []int
 // @param uniqueCode
 // @param content string
 // @param opUserId int
 // @return err error
-func AddRecordBySourceAndDataIdList(source, subSource int, dataIdList []string, dataList []DataItem, addUserIdList []int, uniqueCode, content string, opUserId int) (err error) {
+func AddRecordBySourceAndDataIdList(source, subSource int, dataIdList []string, dataList []DataItem, noAuthUserIdList, authUserIdList []int, uniqueCode, content string, opUserId int) (err error) {
 	num := len(dataList)
 	if num <= 0 {
 		return
 	}
-	userNum := len(addUserIdList)
+	userNum := len(noAuthUserIdList)
 	if userNum <= 0 {
 		return
 	}
@@ -84,15 +84,15 @@ func AddRecordBySourceAndDataIdList(source, subSource int, dataIdList []string,
 
 	addMessageList := make([]*DataPermissionMessage, 0)
 	addRecordList := make([]*DataPermissionNoAuthRecord, 0)
-	for _, userId := range addUserIdList {
+	for _, userId := range noAuthUserIdList {
 		isAdd := false
 
 		tmpUserExistMap, userExistOk := existMap[int32(userId)]
 
-		for _, dataitem := range dataList {
+		for _, dataItem := range dataList {
 			// 判断是否已经存在,已经存在就过滤
 			if userExistOk {
-				key := fmt.Sprint(source, "_", subSource, "_", dataitem.DataId)
+				key := fmt.Sprint(source, "_", subSource, "_", dataItem.DataId)
 				_, ok := tmpUserExistMap[key]
 				if ok {
 					continue
@@ -105,9 +105,9 @@ func AddRecordBySourceAndDataIdList(source, subSource int, dataIdList []string,
 				Source:                       int32(source),
 				SubSource:                    int32(subSource),
 				OpUniqueCode:                 uniqueCode,
-				DataId:                       dataitem.DataId,
-				DataCode:                     dataitem.DataCode,
-				DataName:                     dataitem.DataName,
+				DataId:                       dataItem.DataId,
+				DataCode:                     dataItem.DataCode,
+				DataName:                     dataItem.DataName,
 				SysUserId:                    int32(userId),
 				CreateTime:                   time.Now(),
 			})
@@ -131,6 +131,7 @@ func AddRecordBySourceAndDataIdList(source, subSource int, dataIdList []string,
 		}
 	}
 
+	// 添加消息
 	if len(addMessageList) > 0 {
 		_, err = o.InsertMulti(500, addMessageList)
 		if err != nil {
@@ -138,6 +139,7 @@ func AddRecordBySourceAndDataIdList(source, subSource int, dataIdList []string,
 		}
 	}
 
+	// 添加记录
 	if len(addRecordList) > 0 {
 		_, err = o.InsertMulti(500, addRecordList)
 		if err != nil {
@@ -145,6 +147,13 @@ func AddRecordBySourceAndDataIdList(source, subSource int, dataIdList []string,
 		}
 	}
 
+	// 删除未授权记录
+	authUserIdNum := len(authUserIdList)
+	if authUserIdNum > 0 {
+		sql = `DELETE FROM data_permission_no_auth_record WHERE sys_user_id in (` + utils.GetOrmInReplace(authUserIdNum) + `) AND data_id in (` + utils.GetOrmInReplace(num) + `)`
+		_, err = o.Raw(sql, authUserIdList, dataIdList).Exec()
+	}
+
 	return
 }
 

+ 4 - 4
services/data/data_manage_permission/edb_permission.go

@@ -166,18 +166,18 @@ func SetEdbChartPermission(source, subSource, userId int, userList []int, isSele
 	}
 
 	userIdMap := make(map[int]int)
-	for _, tmpUserId := range userIdMap {
+	for _, tmpUserId := range userList {
 		userIdMap[tmpUserId] = tmpUserId
 	}
 
-	addUserIdList := make([]int, 0)
+	noAuthUserIdList := make([]int, 0)
 	for _, v := range adminList {
 		if _, ok := userIdMap[v.AdminId]; !ok {
-			addUserIdList = append(addUserIdList, v.AdminId)
+			noAuthUserIdList = append(noAuthUserIdList, v.AdminId)
 		}
 	}
 
-	authRecordErr = data_manage_permission.AddRecordBySourceAndDataIdList(source, subSource, dataIdList, dataList, addUserIdList, uniqueCode, content, opUserId)
+	authRecordErr = data_manage_permission.AddRecordBySourceAndDataIdList(source, subSource, dataIdList, dataList, noAuthUserIdList, userList, uniqueCode, content, opUserId)
 
 	return
 }