智慧食堂-队列消费项目
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

2 місяці тому
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package db
  2. import (
  3. "applet/app/utils"
  4. "applet/app/utils/logx"
  5. "applet/supply/db/model"
  6. "errors"
  7. "fmt"
  8. "reflect"
  9. "time"
  10. "xorm.io/xorm"
  11. )
  12. // 获取所有类目原始数据
  13. func GetAllCategory(Db *xorm.Engine) (GoodsCategoryList *[]model.GoodsCategory, err error) {
  14. var categoryList []model.GoodsCategory
  15. err = Db.Find(&categoryList)
  16. GoodsCategoryList = &categoryList
  17. return
  18. }
  19. func GetCategoryListByMcId(Db *xorm.Engine, mcId string, level string) (GoodsCategoryList *[]model.GoodsCategory, err error) {
  20. var categoryList []model.GoodsCategory
  21. if mcId == "0" {
  22. if level == "" {
  23. err = Db.Find(&categoryList)
  24. } else {
  25. err = Db.Where("level = ?", level).Find(&categoryList)
  26. }
  27. } else {
  28. if level == "" {
  29. err = Db.Where("mc_id = ?", mcId).Find(&categoryList)
  30. } else {
  31. err = Db.Where("mc_id = ?", mcId).And("level = ?", level).Find(&categoryList)
  32. }
  33. }
  34. GoodsCategoryList = &categoryList
  35. return
  36. }
  37. // CategoryListFindByParams 通过传入的参数查询数据(多条)
  38. func CategoryListFindByParams(Db *xorm.Engine, params map[string]interface{}) (*[]model.GoodsCategory, error) {
  39. var m []model.GoodsCategory
  40. if params["value"] == nil {
  41. return nil, errors.New("参数有误")
  42. }
  43. if params["key"] == nil {
  44. //查询全部数据
  45. err := Db.Find(&m)
  46. if err != nil {
  47. return nil, logx.Error(err)
  48. }
  49. return &m, nil
  50. } else {
  51. if reflect.TypeOf(params["value"]).Kind() == reflect.Slice {
  52. //指定In查询
  53. if err := Db.In(utils.AnyToString(params["key"]), params["value"]).Find(&m); err != nil {
  54. return nil, logx.Warn(err)
  55. }
  56. return &m, nil
  57. } else {
  58. var query = fmt.Sprintf("%s =?", params["key"])
  59. err := Db.Where(query, params["value"]).Find(&m)
  60. if err != nil {
  61. return nil, logx.Error(err)
  62. }
  63. return &m, nil
  64. }
  65. }
  66. }
  67. func GetCategoryById(Db *xorm.Engine, pid string) (GoodsCategoryList *model.GoodsCategory, err error) {
  68. var m model.GoodsCategory
  69. has, err := Db.Where("id=?", pid).Get(&m)
  70. if has == false || err != nil {
  71. return nil, err
  72. }
  73. return &m, nil
  74. }
  75. func UpdateCategoryById(eg *xorm.Engine, m *model.GoodsCategory, columns ...string) error {
  76. var (
  77. affected int64
  78. err error
  79. )
  80. if columns == nil || len(columns) == 0 {
  81. affected, err = eg.Where("id = ?", m.Id).AllCols().Update(m)
  82. } else {
  83. affected, err = eg.Where("id = ?", m.Id).Cols(columns...).Update(m)
  84. }
  85. if err != nil {
  86. return err
  87. }
  88. if affected == 0 {
  89. return errors.New("更新类目数据失败,稍后再试")
  90. }
  91. return nil
  92. }
  93. func CategoryInsert(Db *xorm.Engine, m *model.GoodsCategory) (int, error) {
  94. _, err := Db.InsertOne(m)
  95. if err != nil {
  96. return 0, err
  97. }
  98. return m.Id, nil
  99. }
  100. func UpdateOrInsert(Db *xorm.Engine, m *model.GoodsCategory) error {
  101. if m.Id != 0 {
  102. err := UpdateCategoryById(Db, m)
  103. if err != nil {
  104. return err
  105. }
  106. } else {
  107. m.CreateAt = time.Now()
  108. _, err := CategoryInsert(Db, m)
  109. if err != nil {
  110. return err
  111. }
  112. }
  113. return nil
  114. }