generated from root/miduo_server
253 lines
5.4 KiB
Go
253 lines
5.4 KiB
Go
package user
|
|
|
|
import (
|
|
"github.com/gogf/gf/crypto/gmd5"
|
|
"github.com/gogf/gf/database/gdb"
|
|
"github.com/gogf/gf/frame/g"
|
|
"github.com/gogf/gf/net/ghttp"
|
|
"github.com/gogf/gf/os/glog"
|
|
"github.com/gogf/gf/os/gtime"
|
|
"github.com/gogf/gf/text/gstr"
|
|
"github.com/gogf/gf/util/gconv"
|
|
"gmanager/app/service/menu"
|
|
"gmanager/app/service/role"
|
|
"gmanager/app/service/user"
|
|
"gmanager/library"
|
|
"gmanager/library/base"
|
|
)
|
|
|
|
type Action struct {
|
|
base.BaseRouter
|
|
}
|
|
|
|
// path: /index
|
|
func (action *Action) Index(r *ghttp.Request) {
|
|
tplFile := "pages/system/user_index.html"
|
|
err := r.Response.WriteTpl(tplFile, g.Map{
|
|
"now": gtime.Datetime(),
|
|
})
|
|
|
|
if err != nil {
|
|
glog.Error(err)
|
|
}
|
|
}
|
|
|
|
// path: /get/{id}
|
|
func (action *Action) Get(r *ghttp.Request) {
|
|
id := r.GetInt64("id")
|
|
model, err := user.GetById(id)
|
|
if err != nil {
|
|
base.Fail(r, err.Error())
|
|
}
|
|
|
|
base.Succ(r, model)
|
|
}
|
|
|
|
// path: /delete/{id}
|
|
func (action *Action) Delete(r *ghttp.Request) {
|
|
id := r.GetInt64("id")
|
|
_, err := user.Delete(id, base.GetUser(r).Id)
|
|
if err != nil {
|
|
base.Fail(r, err.Error())
|
|
}
|
|
|
|
base.Succ(r, "")
|
|
}
|
|
|
|
// path: /save
|
|
func (action *Action) Save(r *ghttp.Request) {
|
|
request := new(user.Request)
|
|
err := gconv.Struct(r.GetMap(), request)
|
|
if err != nil {
|
|
glog.Error("save struct error", err)
|
|
base.Error(r, "save error")
|
|
}
|
|
|
|
request.UserId = base.GetUser(r).Id
|
|
_, err = user.Save(request)
|
|
if err != nil {
|
|
base.Fail(r, "保存失败")
|
|
}
|
|
|
|
base.Succ(r, "")
|
|
}
|
|
|
|
// path: /list
|
|
func (action *Action) List(r *ghttp.Request) {
|
|
form := base.NewForm(r.GetMap())
|
|
|
|
list, err := user.List(&form)
|
|
if err != nil {
|
|
glog.Error("page error", err)
|
|
base.Error(r, err.Error())
|
|
}
|
|
|
|
base.Succ(r, list)
|
|
}
|
|
|
|
// path: /page
|
|
func (action *Action) Page(r *ghttp.Request) {
|
|
form := base.NewForm(r.GetMap())
|
|
page, err := user.Page(&form)
|
|
if err != nil {
|
|
glog.Error("page error", err)
|
|
base.Error(r, err.Error())
|
|
}
|
|
|
|
base.Succ(r,
|
|
g.Map{
|
|
"page": form.Page,
|
|
"rows": page,
|
|
"total": form.TotalPage,
|
|
"records": form.TotalSize,
|
|
})
|
|
}
|
|
|
|
// path: /jqgrid
|
|
func (action *Action) Jqgrid(r *ghttp.Request) {
|
|
form := base.NewForm(r.GetMap())
|
|
page, err := user.Page(&form)
|
|
if err != nil {
|
|
glog.Error("jqgrid error", err)
|
|
base.Error(r, err.Error())
|
|
}
|
|
|
|
r.Response.WriteJson(g.Map{
|
|
"page": form.Page,
|
|
"rows": page,
|
|
"total": form.TotalPage,
|
|
"records": form.TotalSize,
|
|
})
|
|
}
|
|
|
|
// 获取用户角色信息
|
|
func (action *Action) RoleInfo(r *ghttp.Request) {
|
|
userId := r.GetInt("userId")
|
|
if userId == 0 {
|
|
base.Fail(r, "参数错误")
|
|
}
|
|
form := base.NewForm(r.GetMap())
|
|
form.SetParam("userId", gconv.String(userId))
|
|
|
|
// 角色列表
|
|
roleList, err := role.List(&form)
|
|
if err != nil {
|
|
glog.Error("RoleInfo error", err)
|
|
base.Error(r, err.Error())
|
|
}
|
|
|
|
// 选择的列表
|
|
userRoleList, err := user.ListUserRole(&form)
|
|
if err != nil {
|
|
glog.Error("RoleInfo error", err)
|
|
base.Error(r, err.Error())
|
|
}
|
|
|
|
roleSlice := g.SliceStr{}
|
|
for _, userRole := range userRoleList {
|
|
roleSlice = append(roleSlice, gconv.String(userRole.RoleId))
|
|
}
|
|
roleIds := gstr.Join(roleSlice, ",")
|
|
|
|
base.Succ(r, g.Map{
|
|
"userId": userId,
|
|
"roleIds": roleIds,
|
|
"list": roleList,
|
|
})
|
|
}
|
|
|
|
// 用户绑定角色
|
|
func (action *Action) RoleSave(r *ghttp.Request) {
|
|
userId := r.GetInt("userid")
|
|
roleIds := r.GetString("roleids")
|
|
if userId == 0 {
|
|
base.Fail(r, "参数错误")
|
|
}
|
|
|
|
// 保存角色信息
|
|
user.SaveUserRole(userId, roleIds)
|
|
|
|
base.Succ(r, "")
|
|
}
|
|
|
|
// 修改当前用户密码
|
|
func (action *Action) Password(r *ghttp.Request) {
|
|
userId := base.GetUser(r).Id
|
|
model, err := user.GetById(gconv.Int64(userId))
|
|
if err != nil {
|
|
glog.Error(" Menu error", err)
|
|
base.Error(r, "登录信息获取异常")
|
|
} else if model.Id <= 0 {
|
|
base.Fail(r, "登录异常")
|
|
}
|
|
|
|
password := r.GetString("password")
|
|
newPassword := r.GetString("newPassword")
|
|
if password == "" || newPassword == "" {
|
|
base.Fail(r, "参数错误")
|
|
}
|
|
|
|
reqPassword, err := gmd5.Encrypt(password + model.Salt)
|
|
if err != nil {
|
|
glog.Error(" Password error", err)
|
|
base.Error(r, "密码错误.")
|
|
}
|
|
|
|
if reqPassword != model.Password {
|
|
base.Fail(r, "原密码错误")
|
|
}
|
|
|
|
model.UpdateId = userId
|
|
model.UpdateTime = library.GetNow()
|
|
model.Password, err = gmd5.Encrypt(newPassword + model.Salt)
|
|
if err != nil {
|
|
glog.Error(" Password error", err)
|
|
base.Error(r, "密码错误!")
|
|
}
|
|
|
|
//_, err = model.Update()
|
|
_, err = g.DB("default").Update("sys_user", gdb.Map{"password": model.Password, "update_time": model.UpdateTime, "update_id": model.UpdateId}, "id=?", model.Id)
|
|
if err != nil {
|
|
glog.Error(" Password error", err)
|
|
base.Error(r, "密码错误.")
|
|
}
|
|
|
|
base.Succ(r, "")
|
|
}
|
|
|
|
// 获取当前用户信息
|
|
func (action *Action) Info(r *ghttp.Request) {
|
|
userId := base.GetUser(r).Id
|
|
model, err := user.GetById(gconv.Int64(userId))
|
|
if err != nil {
|
|
glog.Error(" Menu error", err)
|
|
base.Error(r, "登录信息获取异常")
|
|
} else if model.Id <= 0 {
|
|
base.Fail(r, "登录异常")
|
|
}
|
|
|
|
model.Password = ""
|
|
model.Salt = ""
|
|
base.Succ(r, model)
|
|
}
|
|
|
|
// 获取当前用户信息
|
|
func (action *Action) Menu(r *ghttp.Request) {
|
|
userId := base.GetUser(r).Id
|
|
model, err := user.GetById(gconv.Int64(userId))
|
|
if err != nil {
|
|
glog.Error(" Menu error", err)
|
|
base.Error(r, "登录信息获取异常")
|
|
} else if model.Id <= 0 {
|
|
base.Fail(r, "登录异常")
|
|
}
|
|
|
|
list, err := menu.ListUser(model.Id, model.UserType)
|
|
if err != nil {
|
|
glog.Error(" Menu error", err)
|
|
base.Error(r, "数据获取异常")
|
|
}
|
|
|
|
base.Succ(r, list)
|
|
}
|