base_from_kpler_classify.go 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. package data_manage
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "time"
  6. )
  7. // BaseFromKplerClassify Kpler原始数据分类表
  8. type BaseFromKplerClassify struct {
  9. ClassifyId int `orm:"column(classify_id);pk" gorm:"primaryKey"`
  10. ClassifyName string `description:"分类名称"`
  11. ParentId int `description:"父级id"`
  12. SysUserId int `description:"创建人id"`
  13. SysUserRealName string `description:"创建人姓名"`
  14. Level int `description:"层级"`
  15. Sort int `description:"排序字段,越小越靠前,默认值:10"`
  16. ModifyTime time.Time `description:"修改时间"`
  17. CreateTime time.Time `description:"创建时间"`
  18. ClassifyNameEn string `description:"英文分类名称"`
  19. ProductId int `description:"产品ID"`
  20. ProductName string `description:"产品名称"`
  21. LevelPath string `description:"层级路径"`
  22. }
  23. // AddBaseFromKplerClassify 添加Kpler原始数据分类
  24. func AddBaseFromKplerClassify(item *BaseFromKplerClassify) (lastId int64, err error) {
  25. o := global.DbMap[utils.DbNameIndex]
  26. err = o.Create(item).Error
  27. return
  28. }
  29. // GetBaseFromKplerClassifyCount 获取分类名称的个数
  30. func GetBaseFromKplerClassifyCount(classifyName string, parentId int) (count int, err error) {
  31. o := global.DbMap[utils.DbNameIndex]
  32. sql := `SELECT COUNT(1) AS count FROM base_from_kpler_classify WHERE classify_name=? AND parent_id=? `
  33. err = o.Raw(sql, classifyName, parentId).Scan(&count).Error
  34. return
  35. }
  36. // GetBaseFromKplerClassifyById 通过分类id的获取分类信息
  37. func GetBaseFromKplerClassifyById(classifyId int) (item *BaseFromKplerClassify, err error) {
  38. o := global.DbMap[utils.DbNameIndex]
  39. sql := `SELECT * FROM base_from_kpler_classify WHERE classify_id=? `
  40. err = o.Raw(sql, classifyId).First(&item).Error
  41. return
  42. }
  43. // GetBaseFromKplerClassifyByIds 通过分类id的获取分类信息
  44. func GetBaseFromKplerClassifyByIds(classifyIds []int) (items []*BaseFromKplerClassify, err error) {
  45. if len(classifyIds) == 0 {
  46. return
  47. }
  48. o := global.DbMap[utils.DbNameIndex]
  49. sql := `SELECT * FROM base_from_kpler_classify WHERE classify_id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `) order by level asc, sort asc, classify_id asc`
  50. err = o.Raw(sql, classifyIds).Find(&items).Error
  51. return
  52. }
  53. // GetBaseFromKplerClassifyItemsByIds 通过分类id的获取分类信息
  54. func GetBaseFromKplerClassifyItemsByIds(classifyIds []int) (items []*BaseFromKplerClassifyItems, err error) {
  55. if len(classifyIds) == 0 {
  56. return
  57. }
  58. o := global.DbMap[utils.DbNameIndex]
  59. sql := `SELECT * FROM base_from_kpler_classify WHERE classify_id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `) `
  60. err = o.Raw(sql, classifyIds).Find(&items).Error
  61. return
  62. }
  63. // EditBaseFromKplerClassify 修改Kpler原始数据分类
  64. func EditBaseFromKplerClassify(classifyId int, classifyName string) (err error) {
  65. o := global.DbMap[utils.DbNameIndex]
  66. sql := `UPDATE base_from_kpler_classify SET classify_name=?,modify_time=NOW() WHERE classify_id=? `
  67. err = o.Exec(sql, classifyName, classifyId).Error
  68. return
  69. }
  70. // UpdateBaseFromKplerClassifySort 修改Kpler原始数据分类的排序
  71. func UpdateBaseFromKplerClassifySort(classifyId int) (err error) {
  72. o := global.DbMap[utils.DbNameIndex]
  73. sql := `UPDATE base_from_kpler_classify SET sort=classify_id, modify_time=NOW() WHERE classify_id=? `
  74. err = o.Exec(sql, classifyId).Error
  75. return
  76. }
  77. type BaseFromKplerClassifyItems struct {
  78. ClassifyId int `description:"分类ID"`
  79. BaseFromKplerIndexId int `description:"指标类型ID"`
  80. IndexCode string `description:"指标唯一编码"`
  81. ClassifyName string `description:"分类名称"`
  82. ClassifyNameEn string `description:"英文分类名称"`
  83. UniqueCode string `description:"分类唯一编码"`
  84. ParentId int `description:"父级id"`
  85. Level int `description:"层级"`
  86. Sort int `description:"排序字段,越小越靠前,默认值:10"`
  87. ProductId int `description:"产品ID"`
  88. ProductName string `description:"产品名称"`
  89. Children []*BaseFromKplerClassifyItems `description:"子级" gorm:"-"`
  90. LevelPath string `description:"层级路径"`
  91. }
  92. type BaseFromKplerClassifyNameItems struct {
  93. ClassifyId int `description:"分类ID"`
  94. ClassifyName string `description:"分类名称"`
  95. ParentId int `description:"父级id"`
  96. }
  97. type BaseFromKplerClassifyResp struct {
  98. List []*BaseFromKplerClassifyItems
  99. }
  100. type BaseFromKplerClassifyNameResp struct {
  101. List []*BaseFromKplerClassifyNameItems
  102. }
  103. type BaseFromKplerClassifyItemsButton struct {
  104. AddButton bool `description:"是否可添加"`
  105. OpButton bool `description:"是否可编辑"`
  106. DeleteButton bool `description:"是否可删除"`
  107. MoveButton bool `description:"是否可移动"`
  108. }
  109. // GetBaseFromKplerClassifyByParentId 根据上级id获取当下的分类列表数据
  110. func GetBaseFromKplerClassifyByParentId(parentId int) (items []*BaseFromKplerClassifyItems, err error) {
  111. o := global.DbMap[utils.DbNameIndex]
  112. sql := ` SELECT * FROM base_from_kpler_classify WHERE parent_id=? order by sort asc,classify_id asc`
  113. err = o.Raw(sql, parentId).Find(&items).Error
  114. return
  115. }
  116. // GetAllBaseFromKplerClassify 获取所有的分类列表数据
  117. func GetAllBaseFromKplerClassify() (items []*BaseFromKplerClassifyItems, err error) {
  118. o := global.DbMap[utils.DbNameIndex]
  119. sql := ` SELECT * FROM base_from_kpler_classify order by parent_id asc, sort asc, classify_id asc`
  120. err = o.Raw(sql).Find(&items).Error
  121. return
  122. }
  123. // GetBaseFromKplerClassifyByKeyword 根据关键词获取分类列表数据
  124. func GetBaseFromKplerClassifyByKeyword(keyword string) (items []*BaseFromKplerClassifyItems, err error) {
  125. o := global.DbMap[utils.DbNameIndex]
  126. sql := ` SELECT * FROM base_from_kpler_classify WHERE classify_name LIKE ? order by parent_id asc, sort asc, classify_id asc`
  127. err = o.Raw(sql, "%"+keyword+"%").Find(&items).Error
  128. return
  129. }
  130. type BaseFromKplerClassifyListResp struct {
  131. AllNodes []*BaseFromKplerClassifyItems
  132. CanOpClassify bool `description:"是否允许操作分类"`
  133. }
  134. type BaseFromKplerClassifySimplify struct {
  135. ClassifyId int `description:"分类id"`
  136. ClassifyName string `description:"分类名称"`
  137. ParentId int
  138. }
  139. // GetFirstBaseFromKplerClassify 获取当前分类下,且排序数相同 的排序第一条的数据
  140. func GetFirstBaseFromKplerClassify() (item *BaseFromKplerClassify, err error) {
  141. o := global.DbMap[utils.DbNameIndex]
  142. sql := ` SELECT * FROM base_from_kpler_classify order by sort asc,classify_id asc limit 1`
  143. err = o.Raw(sql).First(&item).Error
  144. return
  145. }
  146. // GetKplerIndexClassifyMinSort 获取最小不等于0的排序
  147. func GetKplerIndexClassifyMinSort(parentId int) (sort int, err error) {
  148. o := global.DbMap[utils.DbNameIndex]
  149. sql := `select min(sort) from base_from_kpler_classify where parent_id=? and sort <> 0 `
  150. err = o.Raw(sql, parentId).Scan(&sort).Error
  151. return
  152. }
  153. // Update 更新分类基础信息
  154. func (BaseFromKplerClassify *BaseFromKplerClassify) Update(cols []string) (err error) {
  155. o := global.DbMap[utils.DbNameIndex]
  156. err = o.Model(BaseFromKplerClassify).Select(cols).Updates(BaseFromKplerClassify).Error
  157. return
  158. }
  159. type AddKplerClassifyResp struct {
  160. ClassifyId int
  161. }
  162. // AddKplerClassifyMulti 批量新增Kpler类别
  163. func AddKplerClassifyMulti(list []*BaseFromKplerClassify) (err error) {
  164. o := global.DbMap[utils.DbNameIndex]
  165. err = o.CreateInBatches(list, utils.MultiAddNum).Error
  166. return
  167. }
  168. func GetBaseFromKplerClassifyByLevelPath(levelPath string) (items []*BaseFromKplerClassify, err error) {
  169. sql := `SELECT * FROM base_from_kpler_classify where level_path like '` + levelPath + `%'`
  170. err = global.DbMap[utils.DbNameIndex].Raw(sql).Find(&items).Error
  171. return
  172. }
  173. func GetKplerClassifyAndIndex(parentId int) (items []*BaseFromKplerClassifyItems, err error) {
  174. o := global.DbMap[utils.DbNameIndex]
  175. sql := `SELECT
  176. 0 AS base_from_kpler_index_id,
  177. c.classify_id,
  178. c.classify_name,
  179. c.parent_id,
  180. c.sort,
  181. "" AS index_code
  182. FROM
  183. base_from_kpler_classify c
  184. WHERE
  185. c.parent_id = ?
  186. UNION ALL
  187. SELECT
  188. i.base_from_kpler_index_id,
  189. i.classify_id,
  190. i.index_name AS classify_name,
  191. 0 AS parent_id,
  192. i.sort,
  193. i.index_code
  194. FROM
  195. base_from_kpler_index i
  196. WHERE
  197. i.classify_id = ?
  198. ORDER BY
  199. sort ASC
  200. `
  201. err = o.Raw(sql, parentId, parentId).Find(&items).Error
  202. return
  203. }
  204. func GetKplerClassifyByProductId(productIds []int) (items []*BaseFromKplerClassifyItems, err error) {
  205. o := global.DbMap[utils.DbNameIndex]
  206. sql := `SELECT * FROM base_from_kpler_classify WHERE product_id IN (?)`
  207. err = o.Raw(sql, productIds).Find(&items).Error
  208. return
  209. }
  210. func GetBaseFromKplerClassifyByProductName(productName string) (item *BaseFromKplerClassify, err error) {
  211. o := global.DbMap[utils.DbNameIndex]
  212. sql := `SELECT * FROM base_from_kpler_classify WHERE product_name=?`
  213. err = o.Raw(sql, productName).First(&item).Error
  214. return
  215. }