sysusermodel.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. package model
  2. import (
  3. "database/sql"
  4. "fmt"
  5. "strings"
  6. "time"
  7. "git.i2edu.net/i2/go-zero/core/stores/cache"
  8. "git.i2edu.net/i2/go-zero/core/stores/sqlc"
  9. "git.i2edu.net/i2/go-zero/core/stores/sqlx"
  10. "git.i2edu.net/i2/go-zero/core/stringx"
  11. "git.i2edu.net/i2/go-zero/tools/goctl/model/sql/builderx"
  12. )
  13. var (
  14. sysUserFieldNames = builderx.RawFieldNames(&SysUser{})
  15. sysUserRows = strings.Join(sysUserFieldNames, ",")
  16. sysUserRowsExpectAutoSet = strings.Join(stringx.Remove(sysUserFieldNames, "`create_time`", "`update_time`"), ",")
  17. sysUserRowsWithPlaceHolder = strings.Join(stringx.Remove(sysUserFieldNames, "`id`", "`create_time`", "`update_time`"), "=?,") + "=?"
  18. cacheSysUserIdPrefix = "cache:sysUser:id:"
  19. )
  20. type (
  21. SysUserModel interface {
  22. Insert(data SysUser) (sql.Result, error)
  23. FindOne(id string) (*SysUser, error)
  24. Update(data SysUser) error
  25. Delete(id string) error
  26. }
  27. defaultSysUserModel struct {
  28. sqlc.CachedConn
  29. table string
  30. }
  31. SysUser struct {
  32. Status sql.NullInt64 `db:"status"`
  33. Avatar sql.NullString `db:"avatar"`
  34. LastUpdateTime int64 `db:"last_update_time"`
  35. Address sql.NullString `db:"address"`
  36. Password string `db:"password"`
  37. OrgId sql.NullString `db:"org_id"`
  38. CreateBy string `db:"create_by"`
  39. LastUpdateBy string `db:"last_update_by"`
  40. LoginId string `db:"login_id"`
  41. Name string `db:"name"`
  42. CreateTime time.Time `db:"create_time"`
  43. DelFlag int64 `db:"del_flag"`
  44. TempId sql.NullString `db:"temp_id"`
  45. Id string `db:"id"`
  46. FullName string `db:"full_name"`
  47. Mobile string `db:"mobile"`
  48. Email string `db:"email"`
  49. Gender int64 `db:"gender"`
  50. Type sql.NullInt64 `db:"type"`
  51. Domain string `db:"domain"`
  52. TempValue string `db:"temp_value"`
  53. }
  54. )
  55. func NewSysUserModel(conn sqlx.SqlConn, c cache.CacheConf) SysUserModel {
  56. return &defaultSysUserModel{
  57. CachedConn: sqlc.NewConn(conn, c),
  58. table: "`sys_user`",
  59. }
  60. }
  61. func (m *defaultSysUserModel) Insert(data SysUser) (sql.Result, error) {
  62. query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, sysUserRowsExpectAutoSet)
  63. ret, err := m.ExecNoCache(query, data.Status, data.Avatar, data.LastUpdateTime, data.Address, data.Password, data.OrgId, data.CreateBy, data.LastUpdateBy, data.LoginId, data.Name, data.DelFlag, data.TempId, data.Id, data.FullName, data.Mobile, data.Email, data.Gender, data.Type, data.Domain, data.TempValue)
  64. return ret, err
  65. }
  66. func (m *defaultSysUserModel) FindOne(id string) (*SysUser, error) {
  67. sysUserIdKey := fmt.Sprintf("%s%v", cacheSysUserIdPrefix, id)
  68. var resp SysUser
  69. err := m.QueryRow(&resp, sysUserIdKey, func(conn sqlx.SqlConn, v interface{}) error {
  70. query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", sysUserRows, m.table)
  71. return conn.QueryRow(v, query, id)
  72. })
  73. switch err {
  74. case nil:
  75. return &resp, nil
  76. case sqlc.ErrNotFound:
  77. return nil, ErrNotFound
  78. default:
  79. return nil, err
  80. }
  81. }
  82. func (m *defaultSysUserModel) Update(data SysUser) error {
  83. sysUserIdKey := fmt.Sprintf("%s%v", cacheSysUserIdPrefix, data.Id)
  84. _, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
  85. query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, sysUserRowsWithPlaceHolder)
  86. return conn.Exec(query, data.Status, data.Avatar, data.LastUpdateTime, data.Address, data.Password, data.OrgId, data.CreateBy, data.LastUpdateBy, data.LoginId, data.Name, data.DelFlag, data.TempId, data.FullName, data.Mobile, data.Email, data.Gender, data.Type, data.Domain, data.TempValue, data.Id)
  87. }, sysUserIdKey)
  88. return err
  89. }
  90. func (m *defaultSysUserModel) Delete(id string) error {
  91. sysUserIdKey := fmt.Sprintf("%s%v", cacheSysUserIdPrefix, id)
  92. _, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
  93. query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
  94. return conn.Exec(query, id)
  95. }, sysUserIdKey)
  96. return err
  97. }
  98. func (m *defaultSysUserModel) formatPrimary(primary interface{}) string {
  99. return fmt.Sprintf("%s%v", cacheSysUserIdPrefix, primary)
  100. }
  101. func (m *defaultSysUserModel) queryPrimary(conn sqlx.SqlConn, v, primary interface{}) error {
  102. query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", sysUserRows, m.table)
  103. return conn.QueryRow(v, query, primary)
  104. }