sys_info_dao.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. package dao
  2. import (
  3. "github.com/druidcaesa/gotool"
  4. "reflect"
  5. "strings"
  6. "ulink-admin/frame"
  7. "ulink-admin/modules/system/models/model"
  8. "ulink-admin/modules/system/models/req"
  9. "ulink-admin/pkg/base"
  10. "ulink-admin/pkg/page"
  11. "ulink-admin/utils"
  12. "xorm.io/xorm"
  13. )
  14. type SysInfoDao struct {
  15. }
  16. func (d SysInfoDao) selectSql(session *xorm.Session) *xorm.Session {
  17. return session.Table([]string{"sys_info", "o"})
  18. }
  19. // SelectAll 查询所有系统设置数据,数据库操作
  20. func (d SysInfoDao) SelectAll() []*model.SysInfo {
  21. session := base.SqlDB.NewSession()
  22. sysInfo := make([]*model.SysInfo, 0)
  23. err := session.Find(&sysInfo)
  24. if err != nil {
  25. gotool.Logs.ErrorLog().Println(err)
  26. return nil
  27. }
  28. return sysInfo
  29. }
  30. // Find 查询系统设置分页数据
  31. func (d SysInfoDao) Find(query *req.SysInfoQuery) (*[]model.SysInfo, int64) {
  32. sysInfo := make([]model.SysInfo, 0)
  33. session := base.SqlDB.NewSession().Table(model.SysInfo{}.TableName())
  34. if query.Id > 0 {
  35. session.And("id = ?", query.Id)
  36. }
  37. if !gotool.StrUtils.HasEmpty(query.Label) {
  38. session.And("label = ?", query.Label)
  39. }
  40. if !gotool.StrUtils.HasEmpty(query.IsDel) {
  41. session.And("is_del = ?", query.IsDel)
  42. }
  43. if !gotool.StrUtils.HasEmpty(query.CreateBy) {
  44. session.And("create_by = ?", query.CreateBy)
  45. }
  46. if !gotool.StrUtils.HasEmpty(query.UpdateBy) {
  47. session.And("update_by = ?", query.UpdateBy)
  48. }
  49. if !gotool.StrUtils.HasEmpty(query.BeginTime) {
  50. session.And("date_format(u.create_time,'%y%m%d') >= date_format(?,'%y%m%d')", query.BeginTime)
  51. }
  52. if !gotool.StrUtils.HasEmpty(query.EndTime) {
  53. session.And("date_format(u.create_time,'%y%m%d') <= date_format(?,'%y%m%d')", query.EndTime)
  54. }
  55. total, err := session.Limit(query.PageSize, page.StartSize(query.PageNum, query.PageSize)).FindAndCount(&sysInfo)
  56. if err != nil {
  57. gotool.Logs.ErrorLog().Println(err)
  58. return nil, 0
  59. }
  60. return &sysInfo, total
  61. }
  62. // Insert 添加系统设置数据
  63. func (d SysInfoDao) Insert(sysInfo *model.SysInfo) int64 {
  64. session := base.SqlDB.NewSession()
  65. session.Begin()
  66. insert, err := session.Insert(sysInfo)
  67. if err != nil {
  68. session.Rollback()
  69. gotool.Logs.ErrorLog().Println(err)
  70. return 0
  71. }
  72. session.Commit()
  73. return insert
  74. }
  75. // GetSysInfoById 根据id查询系统设置数据
  76. func (d SysInfoDao) GetSysInfoById(sysInfo model.SysInfo) *model.SysInfo {
  77. _, err := base.SqlDB.NewSession().Where("id= ?", sysInfo.Id).Get(&sysInfo)
  78. if err != nil {
  79. gotool.Logs.ErrorLog().Println(err)
  80. return nil
  81. }
  82. return &sysInfo
  83. }
  84. // Delete 批量删除系统设置
  85. func (d SysInfoDao) Delete(sysInfo []int64) int64 {
  86. session := base.SqlDB.NewSession()
  87. session.Begin()
  88. i, err := session.In("id", sysInfo).Delete(&model.SysInfo{})
  89. if err != nil {
  90. session.Rollback()
  91. gotool.Logs.ErrorLog().Println(err)
  92. return 0
  93. }
  94. session.Commit()
  95. return i
  96. }
  97. // Update 修改系统设置数据
  98. func (d SysInfoDao) Update(sysInfo *model.SysInfo) {
  99. session := base.SqlDB.NewSession()
  100. session.Begin()
  101. _, err := session.Where("id= ?", sysInfo.Id).Update(sysInfo)
  102. if err != nil {
  103. session.Rollback()
  104. frame.Throw(frame.SQL_CODE, "更新数据错误:"+err.Error())
  105. }
  106. session.Commit()
  107. }
  108. // CheckUnique 唯一性检查
  109. func (d SysInfoDao) CheckUnique(sysInfo model.SysInfo, condition []string) int64 {
  110. session := base.SqlDB.Table(sysInfo.TableName())
  111. if sysInfo.Id > 0 {
  112. session.And("id != ?", sysInfo.Id)
  113. }
  114. for _, item := range condition {
  115. fieldValue := reflect.ValueOf(sysInfo).FieldByName(utils.Ucfirst(item))
  116. if strings.Contains(fieldValue.Type().String(), "int") {
  117. session.And(utils.Camel2Case(item)+" = ?", fieldValue.Int())
  118. } else if strings.Contains(fieldValue.Type().String(), "string") {
  119. session.And(utils.Camel2Case(item)+" = ?", fieldValue.String())
  120. } else {
  121. session.And(utils.Camel2Case(item)+" = ?", fieldValue.String())
  122. }
  123. }
  124. count, err := session.Count()
  125. if err != nil {
  126. gotool.Logs.ErrorLog().Println(err)
  127. }
  128. return count
  129. }