Admin.go 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. package Account
  2. import (
  3. "ColdVerify_server/lib"
  4. "ColdVerify_server/logs"
  5. "github.com/beego/beego/v2/adapter/orm"
  6. orm2 "github.com/beego/beego/v2/client/orm"
  7. "time"
  8. )
  9. type Admin struct {
  10. Id int `orm:"column(ID);size(11);auto;pk"`
  11. T_uuid string `orm:"size(256);null"` //
  12. T_power int `orm:"size(2);;default(0)"` // 权限 0
  13. T_name string `orm:"size(256);null"` // 姓名
  14. T_user string `orm:"size(256);null"` // 用户名
  15. T_pass string `orm:"size(256);null"` // 密码
  16. T_wxname string `orm:"size(256);null"` // 微信name
  17. T_State int `orm:"size(200);default(1)"` // 0删除 1 正常
  18. CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` //auto_now 每次 model 保存时都会对时间自动更新
  19. UpdateTime time.Time `orm:"column(update_time);type(timestamp);null;auto_now"` //auto_now_add 第一次保存时才设置时间
  20. }
  21. type Admin_R struct {
  22. T_uuid string `orm:"column(t_uuid)"`
  23. T_power int `orm:"column(t_power)"` // 权限
  24. T_power_name string `orm:"column(t_power_name)"` // 权限
  25. T_name string `orm:"column(t_name)"` // 姓名
  26. T_user string `orm:"column(t_user)"` // 用户名
  27. T_wxname string `orm:"column(t_user)"` // 用户名
  28. }
  29. func (t *Admin) TableName() string {
  30. return "admin" // 数据库名称 // ************** 替换 FormulaList **************
  31. }
  32. func init() {
  33. //注册模型
  34. orm.RegisterModel(new(Admin))
  35. }
  36. func AdminToAdmin_R(T Admin, powerMap map[int]string) (T_r Admin_R) {
  37. T_r.T_uuid = T.T_uuid
  38. T_r.T_power = T.T_power
  39. T_r.T_name = T.T_name
  40. T_r.T_user = T.T_user
  41. T_r.T_wxname = T.T_wxname
  42. T_r.T_power_name = powerMap[T.T_power]
  43. return T_r
  44. }
  45. // 获取 ByT_user
  46. func Read_Admin_ByT_user(T_user string) (e error, r Admin) {
  47. o := orm.NewOrm()
  48. qs := o.QueryTable(new(Admin))
  49. e = qs.Filter("T_user", T_user).Filter("T_State", 1).One(&r)
  50. return e, r
  51. }
  52. // 获取 ByT_uuid
  53. func Read_Admin_ByT_uuid(T_uuid string) (e error, r Admin) {
  54. o := orm.NewOrm()
  55. qs := o.QueryTable(new(Admin))
  56. e = qs.Filter("T_uuid", T_uuid).Filter("T_State", 1).One(&r)
  57. return e, r
  58. }
  59. // 添加
  60. func Add_Admin(m Admin) (id int64, err error) {
  61. o := orm.NewOrm()
  62. id, err = o.Insert(&m)
  63. if err != nil {
  64. logs.Error(lib.FuncName(), err)
  65. }
  66. return id, err
  67. }
  68. func Read_Admin_verification(T_user string, T_pass string) (error, Admin) {
  69. o := orm.NewOrm()
  70. r := Admin{T_user: T_user, T_pass: T_pass, T_State: 1}
  71. err := o.Read(&r, "T_user", "T_pass", "T_State") // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名
  72. if err != nil {
  73. logs.Error(lib.FuncName(), err)
  74. }
  75. return err, r
  76. }
  77. // 获取列表
  78. func Read_Admin_List(T_name string, page int, page_z int, powerMap map[int]string) ([]Admin_R, int) {
  79. o := orm.NewOrm()
  80. var offset int
  81. if page <= 1 {
  82. offset = 0
  83. } else {
  84. offset = (page - 1) * page_z
  85. }
  86. qs := o.QueryTable(new(Admin))
  87. var r []Admin
  88. cond := orm.NewCondition()
  89. cond1 := cond.And("T_State", 1).AndCond(cond.Or("T_name__icontains", T_name).Or("T_user__icontains", T_name))
  90. qs.Limit(page_z, offset).SetCond((*orm2.Condition)(cond1)).OrderBy("-Id").All(&r)
  91. cnt, _ := qs.SetCond((*orm2.Condition)(cond1)).Count()
  92. // 转换
  93. var Admin_r []Admin_R
  94. for _, v := range r {
  95. Admin_r = append(Admin_r, AdminToAdmin_R(v, powerMap))
  96. }
  97. return Admin_r, int(cnt)
  98. }
  99. // 修改
  100. func Update_Admin(m Admin, cols ...string) bool {
  101. o := orm.NewOrm()
  102. if num, err := o.Update(&m, cols...); err == nil {
  103. logs.Println("Number of records updated in database:", num)
  104. return true
  105. }
  106. return false
  107. }
  108. // 删除
  109. func Delete_Admin(v Admin) bool {
  110. o := orm.NewOrm()
  111. if num, err := o.Delete(&v); err == nil {
  112. logs.Println("Number of records deleted in database:", num)
  113. } else {
  114. return false
  115. }
  116. return true
  117. }
  118. // 删除
  119. func Delete_Admin_(v Admin) bool {
  120. o := orm.NewOrm()
  121. v.T_State = 0
  122. if num, err := o.Update(&v, "T_State"); err == nil {
  123. logs.Println("Number of records updated in database:", num)
  124. } else {
  125. return false
  126. }
  127. return true
  128. }
  129. // 获取全部列表
  130. func Read_Admin_List_ALL() (maps []Admin) {
  131. o := orm.NewOrm()
  132. qs := o.QueryTable(new(Admin))
  133. qs.Filter("T_State", 1).OrderBy("Id").All(&maps)
  134. return maps
  135. }
  136. // 获取全部列表-包括软删除数据
  137. func Read_Admin_List_ALL_1() (maps []Admin) {
  138. o := orm.NewOrm()
  139. qs := o.QueryTable(new(Admin))
  140. qs.OrderBy("Id").All(&maps)
  141. return maps
  142. }
  143. // 获取全部列表
  144. func Read_Admin_List_ALL_Power(PowerMaps map[int]string) (maps []AdminPower_R) {
  145. o := orm.NewOrm()
  146. var r []Admin
  147. qs := o.QueryTable(new(Admin))
  148. qs.Filter("T_State", 1).OrderBy("Id").All(&r)
  149. // 转换
  150. var Admin_Power_r []AdminPower_R
  151. for _, v := range r {
  152. Admin_Power_r = append(Admin_Power_r, AdminToAdminPower_R(v, PowerMaps))
  153. }
  154. return Admin_Power_r
  155. }
  156. // {"uuid":"name"}
  157. func AdminListToMap(A []Admin) map[string]string {
  158. maps := make(map[string]string, len(A))
  159. for _, v := range A {
  160. maps[v.T_uuid] = v.T_name
  161. }
  162. return maps
  163. }
  164. func AdminWXListToMap(A []Admin) map[string]string {
  165. maps := make(map[string]string, len(A))
  166. for _, v := range A {
  167. maps[v.T_uuid] = v.T_wxname
  168. }
  169. return maps
  170. }
  171. type AdminPower_R struct {
  172. T_uuid string `orm:"column(t_uuid)"`
  173. T_name string `orm:"column(t_name)"` // 姓名
  174. T_power_name string `orm:"column(t_power_name)"` // 权限
  175. }
  176. // PowerMaps {1:'管理员'}
  177. func AdminToAdminPower_R(T Admin, PowerMaps map[int]string) (T_r AdminPower_R) {
  178. T_power_name, ok := PowerMaps[T.T_power]
  179. if !ok {
  180. T_power_name = ""
  181. }
  182. T_r.T_uuid = T.T_uuid
  183. T_r.T_name = T.T_name
  184. T_r.T_power_name = T_power_name
  185. return T_r
  186. }
  187. // 获取全部列表
  188. func Read_Admin_List_ALL_T_power(T_power int) []Admin {
  189. o := orm.NewOrm()
  190. var r []Admin
  191. qs := o.QueryTable(new(Admin))
  192. qs.Filter("T_power", T_power).Filter("T_State", 1).OrderBy("Id").All(&r)
  193. return r
  194. }