mirror of
https://github.com/tiger1103/gfast.git
synced 2026-09-27 03:57:25 +00:00
95 lines
2.7 KiB
Go
95 lines
2.7 KiB
Go
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
|
|
}
|