edb_permission.go 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712
  1. package data_manage_permission
  2. import (
  3. "eta/eta_api/models/data_manage"
  4. "eta/eta_api/models/data_manage/data_manage_permission"
  5. "eta/eta_api/models/data_manage/excel"
  6. "eta/eta_api/models/system"
  7. "eta/eta_api/utils"
  8. "fmt"
  9. "github.com/rdlucklib/rdluck_tools/uuid"
  10. "strings"
  11. )
  12. // SetEdbChartPermission
  13. // @Description: 单独给资产(指标、图表、ETA表格)设置权限
  14. // @author: Roc
  15. // @datetime 2024-03-27 10:52:32
  16. // @param source int
  17. // @param subSource int
  18. // @param userId int
  19. // @param authUserList []int
  20. // @param isSelectAll bool
  21. // @param dataId []string
  22. // @param noDataId []string
  23. // @param keyword string
  24. // @param classify string
  25. // @param opUserId int 操作人
  26. // @return err error
  27. // @return errMsg string
  28. func SetEdbChartPermission(source, subSource, userId int, authUserList []int, isSelectAll bool, dataIdList, noDataIdList []string, keyword, classify string, opUserId int) (err error, errMsg string) {
  29. // 如果勾选全部数据,那么
  30. if isSelectAll {
  31. // 找出不要的指标ID列表
  32. noDataIdMap := make(map[string]string, 0)
  33. for _, v := range noDataIdList {
  34. noDataIdMap[v] = v
  35. }
  36. // 需要转义的指标/图表ID列表
  37. dataIdList = make([]string, 0)
  38. // 获取所有指标/图表
  39. list, _, tmpErr := GetMoveEdbChartList(source, subSource, userId, keyword, classify, 0, 100000)
  40. if tmpErr != nil {
  41. err = tmpErr
  42. return
  43. }
  44. for _, v := range list {
  45. if _, ok := noDataIdMap[v.DataId]; !ok {
  46. dataIdList = append(dataIdList, v.DataId)
  47. }
  48. }
  49. }
  50. if len(authUserList) <= 0 {
  51. // 说明是取消权限管控
  52. }
  53. uniqueCode := uuid.NewUUID().Hex32()
  54. content := `数据权限`
  55. dataList := make([]data_manage_permission.DataItem, 0)
  56. switch source {
  57. case 3, 4:
  58. //ETA指标库、ETA预测指标
  59. if source == 3 {
  60. content += `(ETA指标库)`
  61. } else {
  62. content += `(ETA预测指标)`
  63. }
  64. tmpList, tmpErr := data_manage.GetEdbInfoListByEdbInfoId(dataIdList)
  65. if tmpErr != nil {
  66. err = tmpErr
  67. return
  68. }
  69. dataIdList = make([]string, 0)
  70. if len(tmpList) > 0 {
  71. for _, v := range tmpList {
  72. dataList = append(dataList, data_manage_permission.DataItem{
  73. DataId: fmt.Sprint(v.EdbInfoId),
  74. DataCode: v.EdbCode,
  75. DataName: v.EdbName,
  76. })
  77. dataIdList = append(dataIdList, fmt.Sprint(v.EdbInfoId))
  78. }
  79. // 重新设置权限
  80. edbInfoType := 0
  81. if source == 4 {
  82. edbInfoType = 1
  83. }
  84. err = data_manage_permission.SetPermissionByEdbIdList(dataIdList, authUserList, edbInfoType)
  85. }
  86. case 5:
  87. //图库
  88. content += `(ETA图库)`
  89. tmpList, tmpErr := data_manage.GetChartInfoListByChartIdList(dataIdList)
  90. if tmpErr != nil {
  91. err = tmpErr
  92. return
  93. }
  94. if len(tmpList) > 0 {
  95. dataIdList = make([]string, 0)
  96. for _, v := range tmpList {
  97. dataList = append(dataList, data_manage_permission.DataItem{
  98. DataId: fmt.Sprint(v.ChartInfoId),
  99. DataCode: fmt.Sprint(v.ChartInfoId),
  100. DataName: v.ChartName,
  101. })
  102. dataIdList = append(dataIdList, fmt.Sprint(v.ChartInfoId))
  103. }
  104. // 重新设置权限
  105. chartSource := utils.CHART_SOURCE_DEFAULT
  106. err = data_manage_permission.SetPermissionByChartIdList(dataIdList, authUserList, chartSource)
  107. }
  108. case 6:
  109. // ETA表格
  110. content += `(ETA表格)`
  111. tmpList, tmpErr := excel.GetNoContentExcelListByExcelInfoIdList(dataIdList)
  112. if tmpErr != nil {
  113. err = tmpErr
  114. return
  115. }
  116. if len(tmpList) > 0 {
  117. dataIdList = make([]string, 0)
  118. for _, v := range tmpList {
  119. dataList = append(dataList, data_manage_permission.DataItem{
  120. DataId: fmt.Sprint(v.ExcelInfoId),
  121. DataCode: fmt.Sprint(v.ExcelInfoId),
  122. DataName: v.ExcelName,
  123. })
  124. dataIdList = append(dataIdList, fmt.Sprint(v.ExcelInfoId))
  125. }
  126. // 重新设置权限
  127. err = data_manage_permission.SetPermissionByExcelIdList(dataIdList, authUserList, subSource)
  128. }
  129. default:
  130. return
  131. }
  132. if err != nil {
  133. return
  134. }
  135. var authRecordErr error
  136. defer func() {
  137. if authRecordErr != nil {
  138. utils.FileLog.Error(fmt.Sprintf("记录未设置记录资产权限的记录失败:%s;source:%d;sub_source:%d;数据ID列表:%s;授权人列表:%v", authRecordErr.Error(), source, subSource, strings.Join(dataIdList, ","), authUserList))
  139. }
  140. }()
  141. // 获取所有在用的用户
  142. cond := ` AND enabled = 1`
  143. pars := make([]interface{}, 0)
  144. adminList, authRecordErr := system.GetSysAdminList(cond, pars, []string{}, "")
  145. if authRecordErr != nil {
  146. return
  147. }
  148. // 如果没有授权人,那么就删除未授权记录
  149. if len(authUserList) < 0 {
  150. authRecordErr = data_manage_permission.DeleteRecordBySourceAndDataIdList(source, subSource, dataIdList)
  151. return
  152. }
  153. userIdMap := make(map[int]int)
  154. for _, tmpUserId := range authUserList {
  155. userIdMap[tmpUserId] = tmpUserId
  156. }
  157. noAuthUserIdList := make([]int, 0)
  158. for _, v := range adminList {
  159. if _, ok := userIdMap[v.AdminId]; !ok {
  160. noAuthUserIdList = append(noAuthUserIdList, v.AdminId)
  161. }
  162. }
  163. content += "已关闭"
  164. // 添加未授权记录
  165. authRecordErr = data_manage_permission.AddRecordBySourceAndDataIdList(source, subSource, dataList, noAuthUserIdList, authUserList, uniqueCode, content, opUserId)
  166. return
  167. }
  168. // SetDataClassifyIsPermission
  169. // @Description: 设置资产(指标、图表、ETA表格)分类是否涉密
  170. // @author: Roc
  171. // @datetime 2024-03-27 10:52:32
  172. // @param source int
  173. // @param subSource int
  174. // @param dataId []string
  175. // @param opUserId int 操作人id
  176. // @return err error
  177. // @return errMsg string
  178. func SetDataClassifyIsPermission(source, subSource int, classifyIdList []int, opUserId int) (err error, errMsg string) {
  179. uniqueCode := uuid.NewUUID().Hex32()
  180. content := `分类权限`
  181. classifyDataList := make([]data_manage_permission.ClassifyDataItem, 0)
  182. switch source {
  183. case 3, 4:
  184. //ETA指标库、ETA预测指标
  185. if source == 3 {
  186. content += `(ETA指标库)`
  187. } else {
  188. content += `(ETA预测指标)`
  189. }
  190. {
  191. // 分类信息
  192. classifyInfoList, tmpErr := data_manage.GetEdbClassifyByIdList(classifyIdList)
  193. if tmpErr != nil {
  194. err = tmpErr
  195. return
  196. }
  197. for _, v := range classifyInfoList {
  198. classifyDataList = append(classifyDataList, data_manage_permission.ClassifyDataItem{
  199. ClassifyId: v.ClassifyId,
  200. ClassifyName: v.ClassifyName,
  201. })
  202. }
  203. }
  204. // 重新设置权限
  205. classifyType := 0
  206. if source == 4 {
  207. classifyType = 1
  208. }
  209. err = data_manage_permission.SetIsPermissionEdbChartByEdbClassifyIdList(classifyIdList, classifyType)
  210. case 5:
  211. //图库
  212. content += `(ETA图库)`
  213. {
  214. // 分类信息
  215. classifyInfoList, tmpErr := data_manage.GetChartClassifyByIdList(classifyIdList)
  216. if tmpErr != nil {
  217. err = tmpErr
  218. return
  219. }
  220. for _, v := range classifyInfoList {
  221. classifyDataList = append(classifyDataList, data_manage_permission.ClassifyDataItem{
  222. ClassifyId: v.ChartClassifyId,
  223. ClassifyName: v.ChartClassifyName,
  224. })
  225. }
  226. }
  227. // 重新设置权限
  228. chartClassifySource := utils.CHART_SOURCE_DEFAULT
  229. err = data_manage_permission.SetIsPermissionByChartClassifyIdList(classifyIdList, chartClassifySource)
  230. case 6:
  231. // ETA表格
  232. content += `(ETA表格)`
  233. {
  234. // 分类信息
  235. classifyInfoList, tmpErr := excel.GetExcelClassifyByIdList(classifyIdList)
  236. if tmpErr != nil {
  237. err = tmpErr
  238. return
  239. }
  240. for _, v := range classifyInfoList {
  241. classifyDataList = append(classifyDataList, data_manage_permission.ClassifyDataItem{
  242. ClassifyId: v.ExcelClassifyId,
  243. ClassifyName: v.ExcelClassifyName,
  244. })
  245. }
  246. }
  247. // 重新设置权限
  248. err = data_manage_permission.SetIsPermissionByExcelClassifyIdList(classifyIdList, subSource)
  249. default:
  250. return
  251. }
  252. if err != nil {
  253. return
  254. }
  255. var authRecordErr error
  256. defer func() {
  257. if authRecordErr != nil {
  258. utils.FileLog.Error(fmt.Sprintf("记录未设置记录资产权限的记录失败:%s;source:%d;sub_source:%d;分类ID列表:%v", authRecordErr.Error(), source, subSource, classifyIdList))
  259. }
  260. }()
  261. // 如果没有涉密的分类,那么就移除所有删除未授权记录
  262. if len(classifyIdList) <= 0 {
  263. authRecordErr = data_manage_permission.DeleteClassifyNoAuthRecordBySourceAndClassifyIdList(source, subSource)
  264. return
  265. }
  266. // 获取所有在用的用户
  267. cond := ` AND enabled = 1`
  268. pars := make([]interface{}, 0)
  269. adminList, authRecordErr := system.GetSysAdminList(cond, pars, []string{}, "")
  270. if authRecordErr != nil {
  271. return
  272. }
  273. noAuthUserIdList := make([]int, 0)
  274. for _, v := range adminList {
  275. noAuthUserIdList = append(noAuthUserIdList, v.AdminId)
  276. }
  277. content += "已关闭"
  278. // 添加未授权记录
  279. authRecordErr = data_manage_permission.AddClassifyNoAuthRecordBySourceAndClassifyIdList(source, subSource, classifyDataList, noAuthUserIdList, uniqueCode, content, opUserId)
  280. return
  281. }
  282. // SetEdbChartClassifyPermission
  283. // @Description: 给用户设置涉密分类的权限
  284. // @author: Roc
  285. // @datetime 2024-03-28 14:22:30
  286. // @param source int
  287. // @param subSource int
  288. // @param authUserList []int
  289. // @param classifyIdList []int
  290. // @param opUserId int 操作人id
  291. // @return err error
  292. // @return errMsg string
  293. func SetEdbChartClassifyPermission(source, subSource int, authUserList []int, classifyIdList []int, opUserId int) (err error, errMsg string) {
  294. uniqueCode := uuid.NewUUID().Hex32()
  295. content := `分类权限`
  296. secretClassifyInfoList := make([]data_manage_permission.ClassifyDataItem, 0)
  297. if len(classifyIdList) <= 0 {
  298. // 说明是取消权限管控
  299. }
  300. // 先获取所有的涉密分类,然后根据用户去判断那些分类给权限了
  301. switch source {
  302. case 3, 4: //ETA指标库、ETA预测指标
  303. //ETA指标库、ETA预测指标
  304. if source == 3 {
  305. content += `(ETA指标库)`
  306. } else {
  307. content += `(ETA预测指标)`
  308. }
  309. classifyType := 0
  310. if source == 4 {
  311. classifyType = 1
  312. }
  313. {
  314. // 获取已经设置加密的分类信息
  315. classifyInfoList, tmpErr := data_manage.GetEdbClassifyByClassifyTypeAndIsJoinPermission(classifyType, 1)
  316. if tmpErr != nil {
  317. err = tmpErr
  318. return
  319. }
  320. for _, v := range classifyInfoList {
  321. secretClassifyInfoList = append(secretClassifyInfoList, data_manage_permission.ClassifyDataItem{
  322. ClassifyId: v.ClassifyId,
  323. ClassifyName: v.ClassifyName,
  324. })
  325. }
  326. }
  327. // 重新设置权限
  328. err = data_manage_permission.SetPermissionByEdbClassifyIdList(classifyIdList, authUserList, classifyType)
  329. case 5:
  330. subSource = utils.CHART_SOURCE_DEFAULT
  331. //图库
  332. content += `(ETA图库)`
  333. {
  334. // 分类信息
  335. classifyInfoList, tmpErr := data_manage.GetChartClassifyBySourceAndIsJoinPermission(subSource, 1)
  336. if tmpErr != nil {
  337. err = tmpErr
  338. return
  339. }
  340. for _, v := range classifyInfoList {
  341. secretClassifyInfoList = append(secretClassifyInfoList, data_manage_permission.ClassifyDataItem{
  342. ClassifyId: v.ChartClassifyId,
  343. ClassifyName: v.ChartClassifyName,
  344. })
  345. }
  346. }
  347. // 重新设置权限
  348. err = data_manage_permission.SetPermissionByChartClassifyIdList(classifyIdList, authUserList, subSource)
  349. case 6:
  350. // ETA表格
  351. content += `(ETA表格)`
  352. {
  353. // 分类信息
  354. classifyInfoList, tmpErr := excel.GetExcelClassifyBySourceAndIsJoinPermission(subSource, 1)
  355. if tmpErr != nil {
  356. err = tmpErr
  357. return
  358. }
  359. for _, v := range classifyInfoList {
  360. secretClassifyInfoList = append(secretClassifyInfoList, data_manage_permission.ClassifyDataItem{
  361. ClassifyId: v.ExcelClassifyId,
  362. ClassifyName: v.ExcelClassifyName,
  363. })
  364. }
  365. }
  366. err = data_manage_permission.SetPermissionByExcelClassifyIdList(classifyIdList, authUserList, subSource)
  367. default:
  368. return
  369. }
  370. if err != nil {
  371. return
  372. }
  373. var authRecordErr error
  374. defer func() {
  375. if authRecordErr != nil {
  376. utils.FileLog.Error(fmt.Sprintf("记录未设置记录资产权限的记录失败:%s;source:%d;sub_source:%d;分类ID列表:%v", authRecordErr.Error(), source, subSource, classifyIdList))
  377. }
  378. }()
  379. content += "已关闭"
  380. authClassifyIdMap := make(map[int]int)
  381. for _, v := range classifyIdList {
  382. authClassifyIdMap[v] = v
  383. }
  384. noAuthClassifyMap := make(map[int]data_manage_permission.ClassifyDataItem)
  385. for _, classifyInfo := range secretClassifyInfoList {
  386. if _, ok := authClassifyIdMap[classifyInfo.ClassifyId]; !ok {
  387. noAuthClassifyMap[classifyInfo.ClassifyId] = classifyInfo
  388. }
  389. }
  390. // 添加未授权记录
  391. authRecordErr = data_manage_permission.AddClassifyNoAuthRecordBySourceAndUserIdList(source, subSource, noAuthClassifyMap, authUserList, uniqueCode, content, opUserId)
  392. return
  393. }
  394. // GetEdbChartClassifyIdListPermissionByUserId
  395. // @Description: 根据用户id获取已经配置的分类id列表
  396. // @author: Roc
  397. // @datetime 2024-03-29 16:26:10
  398. // @param source int
  399. // @param subSource int
  400. // @param userId int
  401. // @return idList []int
  402. // @return err error
  403. func GetEdbChartClassifyIdListPermissionByUserId(source, subSource, userId int) (idList []int, err error) {
  404. switch source {
  405. case 3, 4: //ETA指标库、ETA预测指标
  406. //tmpList, tmpErr := data_manage.GetEdbInfoListGroupByUserId(dataId)
  407. //if tmpErr != nil {
  408. // err = tmpErr
  409. // return
  410. //}
  411. //if len(tmpList) > 0 {
  412. //}
  413. // 重新设置权限
  414. classifyType := 0
  415. if source == 4 {
  416. classifyType = 1
  417. }
  418. idList, err = data_manage_permission.GetPermissionEdbClassifyIdListByUserId(userId, classifyType)
  419. case 5:
  420. //图库
  421. chartClassifySource := utils.CHART_SOURCE_DEFAULT
  422. idList, err = data_manage_permission.GetPermissionChartClassifyIdListByUserId(userId, chartClassifySource)
  423. case 6:
  424. // ETA表格
  425. idList, err = data_manage_permission.GetPermissionExcelClassifyIdListByUserId(userId, subSource)
  426. default:
  427. return
  428. }
  429. return
  430. }
  431. // GetUserIdListPermissionByDataId
  432. // @Description: 根据资产(指标、图表、表格)id获取已经配置的用户id
  433. // @author: Roc
  434. // @datetime 2024-03-29 16:26:10
  435. // @param source int
  436. // @param subSource int
  437. // @param dataId int
  438. // @return idList []int
  439. // @return err error
  440. func GetUserIdListPermissionByDataId(source, subSource, dataId int) (idList []int, err error) {
  441. switch source {
  442. case 3, 4:
  443. // ETA指标库、ETA预测指标
  444. edbInfoType := 0
  445. if source == 4 {
  446. edbInfoType = 1
  447. }
  448. idList, err = data_manage_permission.GetPermissionUserIdListByEdbId(dataId, edbInfoType)
  449. case 5:
  450. // 图库
  451. chartClassifySource := utils.CHART_SOURCE_DEFAULT
  452. idList, err = data_manage_permission.GetPermissionUserIdListByChartId(dataId, chartClassifySource)
  453. case 6:
  454. // ETA表格
  455. idList, err = data_manage_permission.GetPermissionUserIdListByExcelId(dataId, subSource)
  456. default:
  457. return
  458. }
  459. return
  460. }
  461. // GetUserIdListNoPermissionByDataId
  462. // @Description: 根据资产(指标、图表、表格)id获取没有该资产分类权限的用户id
  463. // @author: Roc
  464. // @datetime 2024-03-29 16:26:10
  465. // @param source int
  466. // @param subSource int
  467. // @param dataId int
  468. // @return idList []int
  469. // @return err error
  470. func GetUserIdListNoPermissionByDataId(source, subSource, dataId int) (idList []int, err error) {
  471. // 已经授权的用户map
  472. authIdList := make([]int, 0)
  473. switch source {
  474. case 3, 4:
  475. // ETA指标库、ETA预测指标
  476. edbInfoType := 0
  477. if source == 4 {
  478. edbInfoType = 1
  479. }
  480. // 获取指标
  481. edbInfoItem, tmpErr := data_manage.GetEdbInfoById(dataId)
  482. if tmpErr != nil {
  483. err = tmpErr
  484. return
  485. }
  486. // 获取分类
  487. classifyItem, tmpErr := data_manage.GetEdbClassifyById(edbInfoItem.ClassifyId)
  488. if tmpErr != nil {
  489. err = tmpErr
  490. return
  491. }
  492. // 判断分类是否涉密,不涉密就直接返回
  493. if classifyItem.IsJoinPermission == 0 {
  494. return
  495. }
  496. // 获取已经配置分类权限的用户ID列表
  497. authIdList, err = data_manage_permission.GetPermissionUserIdListByEdbClassifyId(dataId, edbInfoType)
  498. case 5:
  499. // 图库
  500. // 获取图表
  501. chartInfoItem, tmpErr := data_manage.GetChartInfoById(dataId)
  502. if tmpErr != nil {
  503. err = tmpErr
  504. return
  505. }
  506. // 获取分类
  507. classifyItem, tmpErr := data_manage.GetChartClassifyById(chartInfoItem.ChartClassifyId)
  508. if tmpErr != nil {
  509. err = tmpErr
  510. return
  511. }
  512. // 判断分类是否涉密,不涉密就直接返回
  513. if classifyItem.IsJoinPermission == 0 {
  514. return
  515. }
  516. chartClassifySource := utils.CHART_SOURCE_DEFAULT
  517. authIdList, err = data_manage_permission.GetPermissionUserIdListByChartClassifyId(dataId, chartClassifySource)
  518. case 6:
  519. // ETA表格
  520. // 获取图表
  521. excelInfoItem, tmpErr := excel.GetNoContentExcelInfoByExcelId(dataId)
  522. if tmpErr != nil {
  523. err = tmpErr
  524. return
  525. }
  526. // 获取分类
  527. classifyItem, tmpErr := excel.GetExcelClassifyById(excelInfoItem.ExcelClassifyId)
  528. if tmpErr != nil {
  529. err = tmpErr
  530. return
  531. }
  532. // 判断分类是否涉密,不涉密就直接返回
  533. if classifyItem.IsJoinPermission == 0 {
  534. return
  535. }
  536. authIdList, err = data_manage_permission.GetPermissionUserIdListByExcelClassifyId(dataId, subSource)
  537. default:
  538. return
  539. }
  540. // 已经授权的用户map
  541. authUserIdMap := make(map[int]int)
  542. for _, v := range authIdList {
  543. authUserIdMap[v] = v
  544. }
  545. // 获取所有在用的用户
  546. cond := ` AND enabled = 1`
  547. pars := make([]interface{}, 0)
  548. adminList, authRecordErr := system.GetSysAdminList(cond, pars, []string{}, "")
  549. if authRecordErr != nil {
  550. return
  551. }
  552. for _, v := range adminList {
  553. if _, ok := authUserIdMap[v.AdminId]; !ok {
  554. idList = append(idList, v.AdminId)
  555. }
  556. }
  557. return
  558. }
  559. // InheritParentClassify
  560. // @Description: 继承父级分类的涉密权限
  561. // @author: Roc
  562. // @datetime 2024-04-07 21:09:16
  563. // @param source int
  564. // @param subSource int
  565. // @param classifyId int
  566. // @param parentClassifyId int
  567. // @param classifyName string
  568. func InheritParentClassify(source, subSource, classifyId, parentClassifyId int, classifyName string) {
  569. var err error
  570. defer func() {
  571. if err != nil {
  572. fmt.Println(fmt.Sprintf("继承父级分类失败:%s;source:%d;sub_source:%d;分类ID列表:%v", err.Error(), source, subSource, classifyId))
  573. utils.FileLog.Error(fmt.Sprintf("继承父级分类失败:%s;source:%d;sub_source:%d;分类ID列表:%v", err.Error(), source, subSource, classifyId))
  574. }
  575. }()
  576. // 一级分类不用继承
  577. if parentClassifyId <= 0 {
  578. return
  579. }
  580. uniqueCode := uuid.NewUUID().Hex32()
  581. switch source {
  582. case 3, 4:
  583. //ETA指标库、ETA预测指标
  584. // 分类信息
  585. parentClassifyInfo, tmpErr := data_manage.GetEdbClassifyById(parentClassifyId)
  586. if tmpErr != nil {
  587. err = tmpErr
  588. return
  589. }
  590. // 没有标记涉密那么就忽略
  591. if parentClassifyInfo.IsJoinPermission == 0 {
  592. return
  593. }
  594. // 重新设置权限
  595. classifyType := 0
  596. if source == 4 {
  597. classifyType = 1
  598. }
  599. err = data_manage_permission.InheritParentClassifyByEdbClassifyId(source, classifyType, classifyId, parentClassifyId, classifyName, uniqueCode)
  600. case 5:
  601. //图库
  602. // 分类信息
  603. parentClassifyInfo, tmpErr := data_manage.GetChartClassifyById(parentClassifyId)
  604. if tmpErr != nil {
  605. err = tmpErr
  606. return
  607. }
  608. // 没有标记涉密那么就忽略
  609. if parentClassifyInfo.IsJoinPermission == 0 {
  610. return
  611. }
  612. // 重新设置权限
  613. chartClassifySource := utils.CHART_SOURCE_DEFAULT
  614. err = data_manage_permission.InheritParentClassifyByChartClassifyId(source, chartClassifySource, classifyId, parentClassifyId, classifyName, uniqueCode)
  615. case 6:
  616. // ETA表格
  617. // 分类信息
  618. parentClassifyInfo, tmpErr := excel.GetExcelClassifyById(parentClassifyId)
  619. if tmpErr != nil {
  620. err = tmpErr
  621. return
  622. }
  623. // 没有标记涉密那么就忽略
  624. if parentClassifyInfo.IsJoinPermission == 0 {
  625. return
  626. }
  627. // 重新设置权限
  628. err = data_manage_permission.InheritParentClassifyByExcelClassifyId(source, subSource, classifyId, parentClassifyId, classifyName, uniqueCode)
  629. default:
  630. return
  631. }
  632. }