permission.go 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. package models
  2. import (
  3. "eta_gn/eta_api/global"
  4. "eta_gn/eta_api/utils"
  5. )
  6. // ChartPermissionSearchKeyWordMapping 权限相关
  7. type ChartPermissionSearchKeyWordMapping struct {
  8. Id int `gorm:"column:id" json:"id"` //`description:"id" json:"-"`
  9. ChartPermissionId int `gorm:"column:chart_permission_id" json:"chart_permission_id"` //`description:"权限id"`
  10. KeyWord string `gorm:"column:key_word" json:"key_word"` //`description:"二级分类名称"`
  11. From string `gorm:"column:from" json:"-"` //`description:"类型标识" json:"-"`
  12. TacticType string `gorm:"column:tactic_type" json:"-"` //`description:"策略表type字段值" json:"-"`
  13. TeleconferenceSort int `gorm:"column:teleconference_sort" json:"-"` //`description:"电话会类型排序" json:"-"`
  14. ClassifyId int `gorm:"column:classify_id" json:"classify_id"` //`description:"分类ID"`
  15. }
  16. func GetPermission(classifyId int) (items []*ChartPermissionSearchKeyWordMapping, err error) {
  17. //o := orm.NewOrmUsingDB("rddp")
  18. sql := `SELECT * FROM chart_permission_search_key_word_mapping AS a WHERE a.from='rddp' AND a.classify_id = ? `
  19. //_, err = o.Raw(sql, classifyId).QueryRows(&items)
  20. err = global.DmSQL["rddp"].Raw(sql, classifyId).Find(&items).Error
  21. return
  22. }
  23. func GetAllPermissionMapping() (items []*ChartPermissionSearchKeyWordMapping, err error) {
  24. //o := orm.NewOrmUsingDB("rddp")
  25. sql := `SELECT * FROM chart_permission_search_key_word_mapping AS a WHERE a.from='rddp'`
  26. //_, err = o.Raw(sql).QueryRows(&items)
  27. err = global.DmSQL["rddp"].Raw(sql).Find(&items).Error
  28. return
  29. }
  30. // EditChartPermissionSearchKeyWordMappingMulti 修改报告报告权限(先删除原有的权限,再添加新的权限)
  31. func EditChartPermissionSearchKeyWordMappingMulti(keyword string, permissionIdList []int, classifyId int) (err error) {
  32. //o := orm.NewOrmUsingDB("rddp")
  33. //to, err := o.Begin()
  34. to := global.DmSQL["rddp"].Begin()
  35. if err != nil {
  36. return
  37. }
  38. defer func() {
  39. if err != nil {
  40. _ = to.Rollback()
  41. } else {
  42. _ = to.Commit()
  43. }
  44. }()
  45. sql := "DELETE FROM chart_permission_search_key_word_mapping WHERE `from` = 'rddp' AND classify_id = ?"
  46. //_, err = to.Raw(sql, classifyId).Exec()
  47. err = to.Exec(sql, classifyId).Error
  48. if err != nil {
  49. return
  50. }
  51. if len(permissionIdList) > 0 {
  52. chartPermissionSearchKeyWordMappingList := make([]*ChartPermissionSearchKeyWordMapping, 0)
  53. for _, permissionId := range permissionIdList {
  54. tmpChartPermissionSearchKeyWordMapping := &ChartPermissionSearchKeyWordMapping{
  55. ChartPermissionId: permissionId,
  56. KeyWord: keyword,
  57. From: "rddp",
  58. TacticType: "",
  59. TeleconferenceSort: 0,
  60. ClassifyId: classifyId,
  61. }
  62. chartPermissionSearchKeyWordMappingList = append(chartPermissionSearchKeyWordMappingList, tmpChartPermissionSearchKeyWordMapping)
  63. }
  64. //_, err = to.InsertMulti(len(chartPermissionSearchKeyWordMappingList), chartPermissionSearchKeyWordMappingList)
  65. err = to.CreateInBatches(chartPermissionSearchKeyWordMappingList, utils.MultiAddNum).Error
  66. }
  67. return
  68. }
  69. func AddChartPermissionChapterMapping(chartPermissionId int, reportId int64) (err error) {
  70. sql := `INSERT INTO chart_permission_chapter_mapping (chart_permission_id, report_chapter_type_id,research_type)
  71. VALUES(?,?,?)`
  72. //o := orm.NewOrmUsingDB("rddp")
  73. //_, err = o.Raw(sql, chartPermissionId, reportId, "rddp").Exec()
  74. err = global.DmSQL["rddp"].Exec(sql, chartPermissionId, reportId, "rddp").Error
  75. return
  76. }
  77. func RemoveChartPermissionChapterMapping(reportId int64) (err error) {
  78. sql := ` DELETE FROM chart_permission_chapter_mapping WHERE research_type=? AND report_chapter_type_id=? `
  79. //o := orm.NewOrmUsingDB("rddp")
  80. //_, err = o.Raw(sql, "rddp", reportId).Exec()
  81. err = global.DmSQL["rddp"].Exec(sql, "rddp", reportId).Error
  82. return
  83. }
  84. type ChartPermissionMappingIdName struct {
  85. PermissionId int `gorm:"column:permission_id" json:"permission_id"`
  86. PermissionName string `gorm:"column:permission_name" json:"permission_name"`
  87. }
  88. func GetChartPermissionNameFromMappingByKeyword(source string, classifyId int) (list []*ChartPermissionMappingIdName, err error) {
  89. //o := orm.NewOrmUsingDB("rddp")
  90. sql := " SELECT b.chart_permission_id AS permission_id,b.permission_name FROM chart_permission_search_key_word_mapping AS a INNER JOIN chart_permission AS b ON a.chart_permission_id = b.chart_permission_id WHERE a.`from` = ? AND a.classify_id = ? "
  91. //_, err = o.Raw(sql, source, classifyId).QueryRows(&list)
  92. err = global.DmSQL["rddp"].Raw(sql, source, classifyId).Find(&list).Error
  93. return
  94. }
  95. // UpdateChartPermissionNameFromMappingByKeyword 根据关键词及来源更新新关键词
  96. func UpdateChartPermissionNameFromMappingByKeyword(newKeyword string, classifyId int, source string) (err error) {
  97. //o := orm.NewOrmUsingDB("rddp")
  98. sql := " UPDATE chart_permission_search_key_word_mapping SET key_word = ? WHERE classify_id = ? AND `from` = ? "
  99. //_, err = o.Raw(sql, newKeyword, classifyId, source).Exec()
  100. err = global.DmSQL["rddp"].Exec(sql, newKeyword, classifyId, source).Error
  101. return
  102. }
  103. // ChartPermissionSearchKeyWordMappingAndPermissionName
  104. // @Description: 分类关联品种
  105. type ChartPermissionSearchKeyWordMappingAndPermissionName struct {
  106. ChartPermissionId int `gorm:"column:chart_permission_id" json:"chart_permission_id"` //`description:"权限id"`
  107. ChartPermissionName string `gorm:"column:chart_permission_name" json:"chart_permission_name"` //`description:"权限名称"`
  108. PermissionName string `gorm:"column:permission_name" json:"permission_name"` //`description:"权限名称"`
  109. KeyWord string `gorm:"column:key_word"` //`description:"二级分类名称"`
  110. ClassifyId int `gorm:"column:classify_id"` // `description:"分类ID"`
  111. }
  112. // GetPermissionByClassifyId
  113. // @Description: 根据分类id获取关联的报告权限
  114. // @author: Roc
  115. // @datetime 2024-06-19 14:56:44
  116. // @param classifyId int
  117. // @return items []*ChartPermissionSearchKeyWordMappingAndPermissionName
  118. // @return err error
  119. func GetPermissionByClassifyId(classifyId int) (items []*ChartPermissionSearchKeyWordMappingAndPermissionName, err error) {
  120. //o := orm.NewOrmUsingDB("rddp")
  121. sql := `SELECT a.chart_permission_name,a.permission_name,b.chart_permission_id,b.key_word,b.classify_id FROM chart_permission AS a
  122. join chart_permission_search_key_word_mapping AS b ON a.chart_permission_id=b.chart_permission_id WHERE b.from='rddp' AND b.classify_id = ? `
  123. //_, err = o.Raw(sql, classifyId).QueryRows(&items)
  124. err = global.DmSQL["rddp"].Raw(sql, classifyId).Find(&items).Error
  125. return
  126. }