material_classify.go 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. package material
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "fmt"
  6. "time"
  7. )
  8. type MaterialClassify struct {
  9. ClassifyId int `orm:"column(classify_id);pk" gorm:"primaryKey"`
  10. ClassifyName string `description:"分类名称"`
  11. ClassifyNameEn string `description:"英文分类名称"`
  12. ParentId int `description:"父级id"`
  13. CreateTime time.Time `description:"创建时间"`
  14. ModifyTime time.Time `description:"修改时间"`
  15. SysUserId int `description:"创建人id"`
  16. SysUserRealName string `description:"创建人姓名"`
  17. Level int `description:"层级"`
  18. Sort int `description:"排序字段,越小越靠前,默认值:10"`
  19. LevelPath string `description:"层级路径"`
  20. }
  21. func AddMaterialClassify(item *MaterialClassify) (lastId int64, err error) {
  22. o := global.DbMap[utils.DbNameReport]
  23. err = o.Create(item).Error
  24. if err != nil {
  25. return
  26. }
  27. lastId = int64(item.ClassifyId)
  28. return
  29. }
  30. // GetMaterialClassifyByParentId
  31. func GetMaterialClassifyByParentId(parentId int) (items []*MaterialClassifyItems, err error) {
  32. o := global.DbMap[utils.DbNameReport]
  33. sql := ` SELECT * FROM material_classify WHERE parent_id=? order by sort asc,classify_id asc`
  34. err = o.Raw(sql, parentId).Find(&items).Error
  35. return
  36. }
  37. // GetMaterialClassifyAll
  38. func GetMaterialClassifyAll() (items []*MaterialClassifyItems, err error) {
  39. o := global.DbMap[utils.DbNameReport]
  40. sql := ` SELECT * FROM material_classify WHERE parent_id<>0 order by sort asc,classify_id asc`
  41. err = o.Raw(sql).Find(&items).Error
  42. return
  43. }
  44. type MaterialClassifyItems struct {
  45. ClassifyId int `orm:"column(classify_id);pk" gorm:"primaryKey"`
  46. ClassifyName string `description:"分类名称"`
  47. ClassifyNameEn string `description:"英文分类名称"`
  48. ParentId int `description:"父级id"`
  49. CreateTime time.Time `description:"创建时间"`
  50. ModifyTime time.Time `description:"修改时间"`
  51. SysUserId int `description:"创建人id"`
  52. SysUserName string `description:"创建人姓名"`
  53. Level int `description:"层级"`
  54. Sort int `description:"排序字段,越小越靠前,默认值:10"`
  55. Children []*MaterialClassifyItems `gorm:"-"`
  56. }
  57. type MaterialClassifyListResp struct {
  58. AllNodes []*MaterialClassifyItems
  59. }
  60. type AddMaterialClassifyReq struct {
  61. ClassifyName string `description:"分类名称"`
  62. ParentId int `description:"父级id,第一级传0"`
  63. //Level int `description:"层级,第一级传0,其余传上一级的层级"`
  64. }
  65. func GetMaterialClassifyNameCount(classifyName string, parentId int) (count int, err error) {
  66. o := global.DbMap[utils.DbNameReport]
  67. sql := `SELECT COUNT(1) AS count FROM material_classify WHERE parent_id=? AND classify_name=? `
  68. err = o.Raw(sql, parentId, classifyName).Scan(&count).Error
  69. return
  70. }
  71. func GetMaterialClassifyNameEnCount(classifyName string, parentId int) (count int, err error) {
  72. o := global.DbMap[utils.DbNameReport]
  73. sql := `SELECT COUNT(1) AS count FROM material_classify WHERE parent_id=? AND classify_name_en=? `
  74. err = o.Raw(sql, parentId, classifyName).Scan(&count).Error
  75. return
  76. }
  77. func GetMaterialClassifyNameNotSelfCount(id int, classifyName string, parentId int) (count int, err error) {
  78. o := global.DbMap[utils.DbNameReport]
  79. sql := `SELECT COUNT(1) AS count FROM material_classify WHERE classify_id !=? AND parent_id=? AND classify_name=? `
  80. err = o.Raw(sql, id, parentId, classifyName).Scan(&count).Error
  81. return
  82. }
  83. func GetMaterialClassifyNameEnNotSelfCount(id int, classifyName string, parentId int) (count int, err error) {
  84. o := global.DbMap[utils.DbNameReport]
  85. sql := `SELECT COUNT(1) AS count FROM material_classify WHERE classify_id !=? AND parent_id=? AND classify_name_en=? `
  86. err = o.Raw(sql, id, parentId, classifyName).Scan(&count).Error
  87. return
  88. }
  89. // GetMaterialClassifyMaxSort 获取沙盘分类下最大的排序数
  90. func GetMaterialClassifyMaxSort(parentId int) (sort int, err error) {
  91. o := global.DbMap[utils.DbNameReport]
  92. sql := `SELECT COALESCE(MAX(sort), 0) AS sort FROM material_classify WHERE parent_id=? `
  93. err = o.Raw(sql, parentId).Scan(&sort).Error
  94. return
  95. }
  96. type EditMaterialClassifyReq struct {
  97. ClassifyName string `description:"分类名称"`
  98. ClassifyId int `description:"分类id"`
  99. }
  100. func GetMaterialClassifyById(classifyId int) (item *MaterialClassify, err error) {
  101. o := global.DbMap[utils.DbNameReport]
  102. sql := `SELECT * FROM material_classify WHERE classify_id=? `
  103. err = o.Raw(sql, classifyId).First(&item).Error
  104. return
  105. }
  106. type MaterialClassifyDeleteCheckReq struct {
  107. ClassifyId int `description:"分类id"`
  108. }
  109. type MaterialClassifyDeleteCheckResp struct {
  110. DeleteStatus int `description:"检测状态:0:默认值,如果为0,继续走其他校验,1:该分类下关联图表不可删除,2:确认删除当前目录及包含的子目录吗"`
  111. TipsMsg string `description:"提示信息"`
  112. }
  113. type DeleteMaterialClassifyReq struct {
  114. ClassifyId int `description:"分类id"`
  115. // MaterialId int `description:"素材id"`
  116. }
  117. func DeleteMaterialClassify(classifyIds []int) (err error) {
  118. o := global.DbMap[utils.DbNameReport]
  119. sql := ` DELETE FROM material_classify WHERE classify_id IN(` + utils.GetOrmInReplace(len(classifyIds)) + `) `
  120. err = o.Exec(sql, classifyIds).Error
  121. return
  122. }
  123. // MoveMaterialClassifyReq 移动沙盘分类请求参数
  124. type MoveMaterialClassifyReq struct {
  125. ClassifyId int `description:"分类id"`
  126. //MaterialId int `description:"沙盘ID"`
  127. ParentClassifyId int `description:"目标父级分类id"`
  128. PrevClassifyId int `description:"上一个兄弟节点分类id"`
  129. NextClassifyId int `description:"下一个兄弟节点分类id"`
  130. //PrevType int `description:"上一个兄弟节点类型 1分类 2沙盘 "`
  131. //NextType int `description:"上一个兄弟节点类型 1分类 2沙盘 "`
  132. }
  133. // UpdateMaterialClassifySortByParentId 根据沙盘父类id更新排序
  134. func UpdateMaterialClassifySortByParentId(parentId, classifyId, nowSort int, updateSort string) (err error) {
  135. o := global.DbMap[utils.DbNameReport]
  136. sql := ` update material_classify set sort = ` + updateSort + ` WHERE parent_id=? and sort > ? `
  137. if classifyId > 0 {
  138. sql += ` or ( classify_id > ` + fmt.Sprint(classifyId) + ` and sort= ` + fmt.Sprint(nowSort) + `)`
  139. }
  140. err = o.Exec(sql, parentId, nowSort).Error
  141. return
  142. }
  143. // GetFirstMaterialClassifyByParentId 获取当前父级沙盘分类下的排序第一条的数据
  144. func GetFirstMaterialClassifyByParentId(parentId int) (item *MaterialClassify, err error) {
  145. o := global.DbMap[utils.DbNameReport]
  146. sql := ` SELECT * FROM material_classify WHERE parent_id=? order by sort asc,classify_id asc limit 1`
  147. err = o.Raw(sql, parentId).First(&item).Error
  148. return
  149. }
  150. // Update 更新沙盘分类基础信息
  151. func (m *MaterialClassify) Update(cols []string) (err error) {
  152. o := global.DbMap[utils.DbNameReport]
  153. err = o.Select(cols).Updates(m).Error
  154. return
  155. }
  156. // GetMaterialClassifyAndInfoByParentId
  157. func GetMaterialClassifyAndInfoByParentId(parentId int) (items []*MaterialClassifyItems, err error) {
  158. o := global.DbMap[utils.DbNameReport]
  159. sql := ` SELECT *
  160. FROM
  161. material_classify
  162. WHERE
  163. parent_id = ?
  164. ORDER BY
  165. sort ASC,
  166. classify_id ASC`
  167. err = o.Raw(sql, parentId).Find(&items).Error
  168. return
  169. }
  170. type SandboxLinkCheckReq struct {
  171. EdbInfoIdList []int `description:"指标id列表"`
  172. ChartInfoIdList []int `description:"图库id列表"`
  173. ReportIdList []int `description:"报告id列表"`
  174. }
  175. type SandboxLinkCheckItem struct {
  176. Id int `description:"id"`
  177. Name string `description:"名称"`
  178. UniqueCode string `description:"唯一编码"`
  179. ClassifyId int `description:"分类id"`
  180. }
  181. type SandboxLinkCheckResp struct {
  182. EdbInfoIdList []*SandboxLinkCheckItem `description:"指标id列表"`
  183. ChartInfoIdList []*SandboxLinkCheckItem `description:"图库id列表"`
  184. ReportIdList []*SandboxLinkCheckItem `description:"报告id列表"`
  185. }
  186. func GetMaterialClassifyByLevelPath(levelPath string) (items []*MaterialClassify, err error) {
  187. o := global.DbMap[utils.DbNameReport]
  188. sql := `SELECT * FROM material_classify where level_path like '` + levelPath + `%'`
  189. err = o.Raw(sql).Find(&items).Error
  190. return
  191. }