configSvc.go 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. package config
  2. import (
  3. "errors"
  4. "github.com/gogf/gf/os/glog"
  5. "github.com/gogf/gf/util/gconv"
  6. "gmanager/app/constants"
  7. "gmanager/app/model/config"
  8. "gmanager/app/service/log"
  9. "gmanager/library"
  10. "gmanager/library/base"
  11. )
  12. // 请求参数
  13. type Request struct {
  14. config.Entity
  15. UserId int `form:"userId" json:"userId"`
  16. }
  17. // 通过id获取实体
  18. func GetById(id int64) (*config.Entity, error) {
  19. if id <= 0 {
  20. glog.Error(" get id error")
  21. return new(config.Entity), errors.New("参数不合法")
  22. }
  23. return config.Model.FindOne(" id = ?", id)
  24. }
  25. // 根据条件获取实体
  26. func GetOne(form *base.BaseForm) (*config.Entity, error) {
  27. where := " 1 = 1 "
  28. var params []interface{}
  29. if form.Params != nil && form.Params["id"] != "" {
  30. where += " and id = ? "
  31. params = append(params, gconv.Int(form.Params["id"]))
  32. }
  33. return config.Model.FindOne(where, params)
  34. }
  35. // 删除实体
  36. func Delete(id int64, userId int) (int64, error) {
  37. if id <= 0 {
  38. glog.Error("delete id error")
  39. return 0, errors.New("参数不合法")
  40. }
  41. // 获取删除对象
  42. entity, err := GetById(id)
  43. if err != nil {
  44. return 0, err
  45. }
  46. entity.UpdateId = userId
  47. entity.UpdateTime = library.GetNow()
  48. r, err1 := config.Model.Delete(" id = ?", id)
  49. if err1 != nil {
  50. return 0, err1
  51. }
  52. log.SaveLog(entity, constants.DELETE)
  53. return r.RowsAffected()
  54. }
  55. // 保存实体
  56. func Save(request *Request) (int64, error) {
  57. entity := (*config.Entity)(nil)
  58. err := gconv.Struct(request.Entity, &entity)
  59. if err != nil {
  60. return 0, errors.New("数据错误")
  61. }
  62. entity.UpdateId = request.UserId
  63. entity.UpdateTime = library.GetNow()
  64. // 判断新增还是修改
  65. if entity.Id <= 0 {
  66. entity.CreateId = request.UserId
  67. entity.CreateTime = library.GetNow()
  68. r, err := config.Model.Insert(entity)
  69. if err != nil {
  70. return 0, err
  71. }
  72. // 回写主键
  73. lastId, err := r.LastInsertId()
  74. if err != nil {
  75. return 0, err
  76. }
  77. entity.Id = gconv.Int(lastId)
  78. log.SaveLog(entity, constants.INSERT)
  79. return r.RowsAffected()
  80. } else {
  81. r, err := config.Model.OmitEmpty().Where(" id = ?", entity.Id).Update(entity)
  82. if err != nil {
  83. return 0, err
  84. }
  85. log.SaveLog(entity, constants.UPDATE)
  86. return r.RowsAffected()
  87. }
  88. }
  89. // 列表数据查询
  90. func List(form *base.BaseForm) ([]*config.Entity, error) {
  91. where := " 1 = 1 "
  92. var params []interface{}
  93. if form.Params != nil && form.Params["name"] != "" {
  94. where += " and name like ? "
  95. params = append(params, "%"+form.Params["name"]+"%")
  96. }
  97. if form.Params != nil && form.Params["parentId"] != "" {
  98. where += " and parent_id = ? "
  99. params = append(params, gconv.Int(form.Params["parentId"]))
  100. }
  101. return config.Model.Order(form.OrderBy).FindAll(where, params)
  102. }
  103. // 分页查询
  104. func Page(form *base.BaseForm) ([]config.Entity, error) {
  105. if form.Page <= 0 || form.Rows <= 0 {
  106. glog.Error("page param error", form.Page, form.Rows)
  107. return []config.Entity{}, nil
  108. }
  109. where := " 1 = 1 "
  110. var params []interface{}
  111. if form.Params != nil {
  112. if form.Params["name"] != "" {
  113. where += " and t.name like ? "
  114. params = append(params, "%"+form.Params["name"]+"%")
  115. }
  116. if form.Params["key"] != "" {
  117. where += " and t.key like ? "
  118. params = append(params, "%"+form.Params["key"]+"%")
  119. }
  120. if gconv.Int(form.Params["parentId"]) > 0 {
  121. where += " and t.parent_id = ? "
  122. params = append(params, gconv.Int(form.Params["parentId"]))
  123. }
  124. }
  125. num, err := config.Model.As("t").FindCount(where, params)
  126. form.TotalSize = num
  127. form.TotalPage = num / form.Rows
  128. if err != nil {
  129. glog.Error("page count error", err)
  130. return []config.Entity{}, err
  131. }
  132. // 没有数据直接返回
  133. if num == 0 {
  134. form.TotalPage = 0
  135. form.TotalSize = 0
  136. return []config.Entity{}, err
  137. }
  138. var resData []config.Entity
  139. dbModel := config.Model.As("t").Fields(config.Model.Columns() + ",su1.real_name as updateName,su2.real_name as createName")
  140. dbModel = dbModel.LeftJoin("sys_user su1", " t.update_id = su1.id ")
  141. dbModel = dbModel.LeftJoin("sys_user su2", " t.update_id = su2.id ")
  142. err = dbModel.Where(where, params).Order(form.OrderBy).Page(form.Page, form.Rows).M.Structs(&resData)
  143. if err != nil {
  144. glog.Error("page list error", err)
  145. return []config.Entity{}, err
  146. }
  147. return resData, nil
  148. }