base_from_mysteel_chemical_classify.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package models
  2. import (
  3. sql2 "database/sql"
  4. "eta/eta_index_lib/global"
  5. "eta/eta_index_lib/utils"
  6. "strconv"
  7. "time"
  8. )
  9. type BaseFromMysteelChemicalClassify struct {
  10. BaseFromMysteelChemicalClassifyId int `gorm:"column:base_from_mysteel_chemical_classify_id;primaryKey"`
  11. //BaseFromMysteelChemicalClassifyId int `orm:"column(base_from_mysteel_chemical_classify_id);pk"`
  12. ClassifyName string `description:"分类名称"`
  13. ParentId int `description:"父级id"`
  14. SysUserId int `description:"创建人id"`
  15. SysUserRealName string `description:"创建人姓名"`
  16. Level int `description:"层级"`
  17. Sort int `description:"排序字段,越小越靠前,默认值:10"`
  18. ModifyTime time.Time `description:"修改时间"`
  19. CreateTime time.Time `description:"创建时间"`
  20. }
  21. // 判断分类名称是否存在
  22. func GetMysteelClassify(classifyName string, parentId int) (item *BaseFromMysteelChemicalClassify, err error) {
  23. //o := orm.NewOrm()
  24. sql := `SELECT * FROM base_from_mysteel_chemical_classify WHERE parent_id=? AND classify_name=? `
  25. //err = o.Raw(sql, parentId, classifyName).QueryRow(&item)
  26. err = global.DEFAULT_DB.Raw(sql, parentId, classifyName).First(&item).Error
  27. return
  28. }
  29. // GetEdbClassifyMaxSort 获取分类下最大的排序数
  30. func GetMysteelClassifyMaxSort(parentId int) (sort int, err error) {
  31. //o := orm.NewOrm()
  32. sql := `SELECT Max(sort) AS sort FROM base_from_mysteel_chemical_classify WHERE parent_id=? `
  33. //err = o.Raw(sql, parentId).QueryRow(&sort)
  34. var intNull sql2.NullInt64
  35. err = global.DEFAULT_DB.Raw(sql, parentId).Scan(&intNull).Error
  36. if err == nil && intNull.Valid {
  37. sort = int(intNull.Int64)
  38. }
  39. return
  40. }
  41. func AddMysteelClassify(item *BaseFromMysteelChemicalClassify) (lastId int64, err error) {
  42. //o := orm.NewOrm()
  43. //lastId, err = o.Insert(item)
  44. err = global.DEFAULT_DB.Create(&item).Error
  45. if err != nil {
  46. return
  47. }
  48. lastId = int64(item.BaseFromMysteelChemicalClassifyId)
  49. return
  50. }
  51. type AddMysteelClassifyReq struct {
  52. ClassifyName string `description:"分类名称"`
  53. ParentId int `description:"父级id,第一级传0"`
  54. Level int `description:"层级,第一级传0,其余传上一级的层级"`
  55. SysUserId int `description:"操作人id"`
  56. SysUserRealName string `description:"操作人真实名称"`
  57. }
  58. // AddEdbClassify 添加指标分类
  59. func SaveMysteelClassify(classifyName string, parentId, level int, sysUserId, sysUserName string) (classifyInfo *BaseFromMysteelChemicalClassify, err error, errMsg string) {
  60. edbClassify, err := GetMysteelClassify(classifyName, parentId)
  61. var isAdd bool
  62. if err != nil {
  63. if err.Error() == utils.ErrNoRow() {
  64. isAdd = true
  65. } else {
  66. errMsg = `判断名称是否已存在失败`
  67. return
  68. }
  69. }
  70. if edbClassify != nil && edbClassify.BaseFromMysteelChemicalClassifyId > 0 {
  71. classifyInfo = edbClassify
  72. return edbClassify, nil, ""
  73. } else {
  74. isAdd = true
  75. }
  76. if isAdd {
  77. sysUserIdInt, _ := strconv.Atoi(sysUserId)
  78. //获取该层级下最大的排序数
  79. maxSort, err := GetMysteelClassifyMaxSort(parentId)
  80. classifyInfo = &BaseFromMysteelChemicalClassify{
  81. ClassifyName: classifyName,
  82. ParentId: parentId,
  83. CreateTime: time.Now(),
  84. ModifyTime: time.Now(),
  85. SysUserId: sysUserIdInt,
  86. SysUserRealName: sysUserName,
  87. Level: level + 1,
  88. Sort: maxSort,
  89. }
  90. classifyId, err := AddMysteelClassify(classifyInfo)
  91. if err != nil {
  92. errMsg = "保存分类失败"
  93. }
  94. classifyInfo.BaseFromMysteelChemicalClassifyId = int(classifyId)
  95. }
  96. return
  97. }