| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package user
- import (
- "github.com/gogf/gf/errors/gerror"
- "github.com/gogf/gf/frame/g"
- "github.com/gogf/gf/os/gtime"
- "github.com/gogf/gf/util/gconv"
- "github.com/gogf/gf/util/gvalid"
- )
- //验证用户表单数据
- func checkUserData(params map[string]interface{}, t string) error {
- rules := []string{
- "id@integer|min:1#管理员id必须为整数|管理员Id必须大于0",
- "user_name@required|length:3,60#请填用户名|用户名应在:min到:max个字符之间",
- "mobile@telephone#手机号码格式不正确",
- "user_nickname@required|length:3,50#请填写姓名|姓名应在:min到:max个字符之间",
- "user_email@email#邮箱格式错误",
- }
- if t == "add" {
- rules = append(rules, "user_password@required|length:6,60#请填写密码|密码应在::min到:max个字符之间")
- } else {
- rules = append(rules, "user_password@length:6,60#密码应在::min到:max个字符之间")
- }
- e := gvalid.CheckMap(params, rules)
- if e != nil {
- return e
- }
- return nil
- }
- //添加管理员操作
- func Add(data map[string]interface{}) (InsertId int64, err error) {
- e := checkUserData(data, "add")
- if e != nil {
- err = gerror.New(e.(*gvalid.Error).FirstString())
- return
- }
- if i, _ := Model.Where("user_name=?", data["user_name"]).Count(); i != 0 {
- err = gerror.New("用户名已经存在")
- return
- }
- if i, _ := Model.Where("mobile=?", data["mobile"]).Count(); i != 0 {
- err = gerror.New("手机号已经存在")
- return
- }
- //保存管理员信息
- data["create_time"] = gtime.Timestamp()
- res, err := Model.Filter().Data(data).Save()
- if err != nil {
- return
- }
- InsertId, _ = res.LastInsertId()
- return
- }
- //修改用户信息
- func Edit(data map[string]interface{}) (err error) {
- e := checkUserData(data, "edit")
- if e != nil {
- err = gerror.New(e.(*gvalid.Error).FirstString())
- return
- }
- if i, _ := Model.Where("id!=? and user_name=?", data["id"], data["user_name"]).Count(); i != 0 {
- err = gerror.New("用户名已经存在")
- return
- }
- if i, _ := Model.Where("id!=? and mobile=?", data["mobile"]).Count(); i != 0 {
- err = gerror.New("手机号已经存在")
- return
- }
- //保存管理员信息
- _, err = Model.Filter().Data(data).Save()
- if err != nil {
- return
- }
- return
- }
- //获取管理员列表
- func GetAdminList(where g.Map, page, pageNum int) (total int, userList []*Entity, err error) {
- userModel := Model
- if v, ok := where["keyWords"]; ok {
- keyWords := gconv.String(v)
- if keyWords != "" {
- keyWords = "%" + keyWords + "%"
- userModel = userModel.Where("user_name like ? or mobile like ? or user_nickname like ?",
- keyWords, keyWords, keyWords)
- }
- }
- total, err = userModel.Count()
- userList, err = userModel.ForPage(page, pageNum).OrderBy("id asc").All()
- return
- }
|