user.go 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package user
  2. import (
  3. "github.com/gogf/gf/errors/gerror"
  4. "github.com/gogf/gf/frame/g"
  5. "github.com/gogf/gf/os/gtime"
  6. "github.com/gogf/gf/util/gconv"
  7. "github.com/gogf/gf/util/gvalid"
  8. )
  9. //验证用户表单数据
  10. func checkUserData(params map[string]interface{}, t string) error {
  11. rules := []string{
  12. "id@integer|min:1#管理员id必须为整数|管理员Id必须大于0",
  13. "user_name@required|length:3,60#请填用户名|用户名应在:min到:max个字符之间",
  14. "mobile@telephone#手机号码格式不正确",
  15. "user_nickname@required|length:3,50#请填写姓名|姓名应在:min到:max个字符之间",
  16. "user_email@email#邮箱格式错误",
  17. }
  18. if t == "add" {
  19. rules = append(rules, "user_password@required|length:6,60#请填写密码|密码应在::min到:max个字符之间")
  20. } else {
  21. rules = append(rules, "user_password@length:6,60#密码应在::min到:max个字符之间")
  22. }
  23. e := gvalid.CheckMap(params, rules)
  24. if e != nil {
  25. return e
  26. }
  27. return nil
  28. }
  29. //添加管理员操作
  30. func Add(data map[string]interface{}) (InsertId int64, err error) {
  31. e := checkUserData(data, "add")
  32. if e != nil {
  33. err = gerror.New(e.(*gvalid.Error).FirstString())
  34. return
  35. }
  36. if i, _ := Model.Where("user_name=?", data["user_name"]).Count(); i != 0 {
  37. err = gerror.New("用户名已经存在")
  38. return
  39. }
  40. if i, _ := Model.Where("mobile=?", data["mobile"]).Count(); i != 0 {
  41. err = gerror.New("手机号已经存在")
  42. return
  43. }
  44. //保存管理员信息
  45. data["create_time"] = gtime.Timestamp()
  46. res, err := Model.Filter().Data(data).Save()
  47. if err != nil {
  48. return
  49. }
  50. InsertId, _ = res.LastInsertId()
  51. return
  52. }
  53. //修改用户信息
  54. func Edit(data map[string]interface{}) (err error) {
  55. e := checkUserData(data, "edit")
  56. if e != nil {
  57. err = gerror.New(e.(*gvalid.Error).FirstString())
  58. return
  59. }
  60. if i, _ := Model.Where("id!=? and user_name=?", data["id"], data["user_name"]).Count(); i != 0 {
  61. err = gerror.New("用户名已经存在")
  62. return
  63. }
  64. if i, _ := Model.Where("id!=? and mobile=?", data["mobile"]).Count(); i != 0 {
  65. err = gerror.New("手机号已经存在")
  66. return
  67. }
  68. //保存管理员信息
  69. _, err = Model.Filter().Data(data).Save()
  70. if err != nil {
  71. return
  72. }
  73. return
  74. }
  75. //获取管理员列表
  76. func GetAdminList(where g.Map, page, pageNum int) (total int, userList []*Entity, err error) {
  77. userModel := Model
  78. if v, ok := where["keyWords"]; ok {
  79. keyWords := gconv.String(v)
  80. if keyWords != "" {
  81. keyWords = "%" + keyWords + "%"
  82. userModel = userModel.Where("user_name like ? or mobile like ? or user_nickname like ?",
  83. keyWords, keyWords, keyWords)
  84. }
  85. }
  86. total, err = userModel.Count()
  87. userList, err = userModel.ForPage(page, pageNum).OrderBy("id asc").All()
  88. return
  89. }