智慧食堂
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

163 行
4.4 KiB

  1. package db
  2. import (
  3. "applet/app/db/model"
  4. "applet/app/utils/logx"
  5. "reflect"
  6. "xorm.io/xorm"
  7. )
  8. type UserIdentityDb struct {
  9. Db *xorm.Engine `json:"db"`
  10. Uid int `json:"uid"`
  11. }
  12. func (userIdentityDb *UserIdentityDb) Set(uid int) { // set方法
  13. userIdentityDb.Db = Db
  14. userIdentityDb.Uid = uid
  15. }
  16. func (userIdentityDb *UserIdentityDb) GetUserIdentity(id int) (m *model.UserIdentity, err error) {
  17. m = new(model.UserIdentity)
  18. has, err := userIdentityDb.Db.Where("id =?", id).Get(m)
  19. if err != nil {
  20. return nil, logx.Error(err)
  21. }
  22. if has == false {
  23. return nil, nil
  24. }
  25. return m, nil
  26. }
  27. func (userIdentityDb *UserIdentityDb) UserIdentityExist(enterpriseId int, idNo string) (m *model.UserIdentity, err error) {
  28. m = new(model.UserIdentity)
  29. has, err := userIdentityDb.Db.Where("enterprise_id =?", enterpriseId).And("id_no =?", idNo).Get(m)
  30. if err != nil {
  31. return nil, logx.Error(err)
  32. }
  33. if has == false {
  34. return nil, nil
  35. }
  36. return m, nil
  37. }
  38. func (userIdentityDb *UserIdentityDb) FindUserIdentity() (*[]UserIdentityWithEnterprise, error) {
  39. var m []UserIdentityWithEnterprise
  40. if err := userIdentityDb.Db.
  41. Join("LEFT", "enterprise", "user_identity.enterprise_id = enterprise.id").
  42. Where("user_identity.uid =?", userIdentityDb.Uid).Desc("user_identity.id").Find(&m); err != nil {
  43. return nil, logx.Error(err)
  44. }
  45. return &m, nil
  46. }
  47. func (userIdentityDb *UserIdentityDb) UserIdentityInsert(m *model.UserIdentity) (int, error) {
  48. _, err := userIdentityDb.Db.InsertOne(m)
  49. if err != nil {
  50. return 0, err
  51. }
  52. return m.Id, nil
  53. }
  54. func (userIdentityDb *UserIdentityDb) UserIdentityInsertBySession(session *xorm.Session, m *model.UserIdentity) (int, error) {
  55. _, err := session.InsertOne(m)
  56. if err != nil {
  57. return 0, err
  58. }
  59. return m.Id, nil
  60. }
  61. func (userIdentityDb *UserIdentityDb) BatchAddUserIdentities(mm []*model.UserIdentity) (int64, error) {
  62. affected, err := userIdentityDb.Db.Insert(mm)
  63. if err != nil {
  64. return 0, err
  65. }
  66. return affected, nil
  67. }
  68. func (userIdentityDb *UserIdentityDb) UserIdentityDelete(id interface{}) (int64, error) {
  69. if reflect.TypeOf(id).Kind() == reflect.Slice {
  70. return Db.In("id", id).Delete(model.UserIdentity{})
  71. } else {
  72. return Db.Where("id = ?", id).Delete(model.UserIdentity{})
  73. }
  74. }
  75. func (userIdentityDb *UserIdentityDb) UserIdentityUpdate(id interface{}, m *model.UserIdentity, forceColums ...string) (int64, error) {
  76. var (
  77. affected int64
  78. err error
  79. )
  80. if forceColums != nil {
  81. affected, err = userIdentityDb.Db.Where("id=?", id).Cols(forceColums...).Update(m)
  82. } else {
  83. affected, err = userIdentityDb.Db.Where("id=?", id).Update(m)
  84. }
  85. if err != nil {
  86. return 0, err
  87. }
  88. return affected, nil
  89. }
  90. func (userIdentityDb *UserIdentityDb) UserIdentityUpdateBySession(session *xorm.Session, id interface{}, m *model.UserIdentity, forceColums ...string) (int64, error) {
  91. var (
  92. affected int64
  93. err error
  94. )
  95. if forceColums != nil {
  96. affected, err = session.Where("id=?", id).Cols(forceColums...).Update(m)
  97. } else {
  98. affected, err = session.Where("id=?", id).Update(m)
  99. }
  100. if err != nil {
  101. return 0, err
  102. }
  103. return affected, nil
  104. }
  105. func (userIdentityDb *UserIdentityDb) CountUserIdentityForEnterprise(enterpriseId, identity int) (total int64, err error) {
  106. var m model.UserIdentity
  107. total, err = userIdentityDb.Db.Where("enterprise_id =? AND identity =?", enterpriseId, identity).Count(&m)
  108. if err != nil {
  109. return
  110. }
  111. return
  112. }
  113. func (userIdentityDb *UserIdentityDb) FindUserIdentityForEnterpriseByIdentity(enterpriseId, identity int) (*[]model.UserIdentity, error) {
  114. var m []model.UserIdentity
  115. err := userIdentityDb.Db.Where("enterprise_id =? AND identity =?", enterpriseId, identity).Find(&m)
  116. if err != nil {
  117. return nil, err
  118. }
  119. return &m, nil
  120. }
  121. func (userIdentityDb *UserIdentityDb) FindUserIdentityForEnterprise(enterpriseId int) (*[]model.UserIdentity, error) {
  122. var m []model.UserIdentity
  123. err := userIdentityDb.Db.Where("enterprise_id =?", enterpriseId).Find(&m)
  124. if err != nil {
  125. return nil, err
  126. }
  127. return &m, nil
  128. }
  129. type UserIdentityWithUser struct {
  130. model.UserIdentity `xorm:"extends"`
  131. model.User `xorm:"extends"`
  132. model.ClassWithUser `xorm:"extends"`
  133. model.Class `xorm:"extends"`
  134. model.Grade `xorm:"extends"`
  135. }
  136. func (UserIdentityWithUser) TableName() string {
  137. return "user_identity"
  138. }
  139. type UserIdentityWithEnterprise struct {
  140. model.UserIdentity `xorm:"extends"`
  141. model.Enterprise `xorm:"extends"`
  142. }
  143. func (UserIdentityWithEnterprise) TableName() string {
  144. return "user_identity"
  145. }