|
|
|
|
package handler
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"server/modules/backend/app"
|
|
|
|
|
"server/modules/backend/bdb"
|
|
|
|
|
"server/modules/backend/values"
|
|
|
|
|
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
|
"github.com/liangdas/mqant/log"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func UserList(c *gin.Context) {
|
|
|
|
|
a := app.NewApp(c)
|
|
|
|
|
defer func() {
|
|
|
|
|
a.Response()
|
|
|
|
|
}()
|
|
|
|
|
resp := values.UserListResp{}
|
|
|
|
|
if err := bdb.BackDB.C().Find(&resp.List).Error; err != nil {
|
|
|
|
|
log.Error("err:%v", err)
|
|
|
|
|
a.Code = values.CodeRetry
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
a.Data = resp
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func AddUser(c *gin.Context) {
|
|
|
|
|
a := app.NewApp(c)
|
|
|
|
|
defer func() {
|
|
|
|
|
a.Response()
|
|
|
|
|
}()
|
|
|
|
|
req := new(values.AddUserReq)
|
|
|
|
|
if !a.S(req) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
log.Debug("adduser:%+v", req)
|
|
|
|
|
if req.Role == values.UserRoleAdmin {
|
|
|
|
|
a.Code = values.CodeParam
|
|
|
|
|
a.Msg = "不可添加超级管理员"
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
var roles []*values.Role
|
|
|
|
|
bdb.BackDB.C().Find(&roles)
|
|
|
|
|
var r *values.Role
|
|
|
|
|
for _, v := range roles {
|
|
|
|
|
if req.Role == v.Role {
|
|
|
|
|
r = v
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if r == nil {
|
|
|
|
|
log.Error("invalid role:%v", req.Role)
|
|
|
|
|
a.Code = values.CodeParam
|
|
|
|
|
a.Msg = "请求角色不存在"
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
one := &values.User{Name: req.Name, Account: req.Account, Password: req.Password, Role: req.Role, Power: r.Power, Phone: req.Phone, Channels: req.Channels}
|
|
|
|
|
if err := bdb.BackDB.Create(one); err != nil {
|
|
|
|
|
log.Error("err:%v", err)
|
|
|
|
|
a.Code = values.CodeParam
|
|
|
|
|
a.Msg = err.Error()
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
a.RecordEdit(values.PowerManageUser, fmt.Sprintf("新增用户:%v", req.Name))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func EditUserPower(c *gin.Context) {
|
|
|
|
|
a := app.NewApp(c)
|
|
|
|
|
defer func() {
|
|
|
|
|
a.Response()
|
|
|
|
|
}()
|
|
|
|
|
req := new(values.EditPowerReq)
|
|
|
|
|
if !a.S(req) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
log.Debug("edit power:%+v", req)
|
|
|
|
|
user := new(values.User)
|
|
|
|
|
user.ID = uint(req.ID)
|
|
|
|
|
if err := bdb.BackDB.Get(user); err != nil {
|
|
|
|
|
log.Error("err:%v", err)
|
|
|
|
|
a.Code = values.CodeParam
|
|
|
|
|
a.Msg = "账户不存在"
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
if user.Role == values.UserRoleAdmin {
|
|
|
|
|
a.Code = values.CodeParam
|
|
|
|
|
a.Msg = "不可修改超级管理员"
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
update := map[string]interface{}{}
|
|
|
|
|
if req.Power != nil {
|
|
|
|
|
// if user.Power == *req.Power {
|
|
|
|
|
// a.Code = values.CodeParam
|
|
|
|
|
// a.Msg = "无内容修改"
|
|
|
|
|
// return
|
|
|
|
|
// }
|
|
|
|
|
if !a.CheckPower(*req.Power) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
update["power"] = *req.Power
|
|
|
|
|
}
|
|
|
|
|
if req.Name != nil {
|
|
|
|
|
update["name"] = *req.Name
|
|
|
|
|
}
|
|
|
|
|
if req.Account != nil {
|
|
|
|
|
update["account"] = *req.Account
|
|
|
|
|
}
|
|
|
|
|
if req.Password != nil {
|
|
|
|
|
update["password"] = *req.Password
|
|
|
|
|
}
|
|
|
|
|
if req.Role != nil {
|
|
|
|
|
//if *req.Role == values.UserRoleAdmin {
|
|
|
|
|
// a.Code = values.CodeParam
|
|
|
|
|
// a.Msg = "不可修改为超级管理员"
|
|
|
|
|
// return
|
|
|
|
|
//}
|
|
|
|
|
update["role"] = *req.Role
|
|
|
|
|
}
|
|
|
|
|
if req.Phone != nil {
|
|
|
|
|
update["phone"] = *req.Phone
|
|
|
|
|
}
|
|
|
|
|
if req.Channels != nil {
|
|
|
|
|
update["channels"] = *req.Channels
|
|
|
|
|
}
|
|
|
|
|
if len(update) == 0 {
|
|
|
|
|
a.Code = values.CodeParam
|
|
|
|
|
a.Msg = "无内容修改"
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
if err := bdb.BackDB.Update(&values.User{ID: uint(req.ID)}, update); err != nil {
|
|
|
|
|
log.Error("err:%v", err)
|
|
|
|
|
a.Code = values.CodeRetry
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
a.RecordEdit(values.PowerManageUser, fmt.Sprintf("修改用户权限:%v", req.ID))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func DelUser(c *gin.Context) {
|
|
|
|
|
a := app.NewApp(c)
|
|
|
|
|
defer func() {
|
|
|
|
|
a.Response()
|
|
|
|
|
}()
|
|
|
|
|
req := new(values.DelUserReq)
|
|
|
|
|
if !a.S(req) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
user := new(values.User)
|
|
|
|
|
user.ID = uint(req.ID)
|
|
|
|
|
if err := bdb.BackDB.C().Delete(user).Where("id = ?", req.ID).Error; err != nil {
|
|
|
|
|
log.Error("err:%v", err)
|
|
|
|
|
a.Code = values.CodeRetry
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func RoleList(c *gin.Context) {
|
|
|
|
|
a := app.NewApp(c)
|
|
|
|
|
defer func() {
|
|
|
|
|
a.Response()
|
|
|
|
|
}()
|
|
|
|
|
resp := values.RoleListResp{}
|
|
|
|
|
if err := bdb.BackDB.C().Find(&resp.List).Error; err != nil {
|
|
|
|
|
log.Error("err:%v", err)
|
|
|
|
|
a.Code = values.CodeRetry
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
a.Data = resp
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func AddRole(c *gin.Context) {
|
|
|
|
|
a := app.NewApp(c)
|
|
|
|
|
defer func() {
|
|
|
|
|
a.Response()
|
|
|
|
|
}()
|
|
|
|
|
req := new(values.AddRoleReq)
|
|
|
|
|
if !a.S(req) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
if !a.CheckPower(req.Power) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
one := &values.Role{Role: req.Role, Name: req.Name, Power: req.Power}
|
|
|
|
|
if err := bdb.BackDB.Create(one); err != nil {
|
|
|
|
|
log.Error("err:%v", err)
|
|
|
|
|
a.Code = values.CodeRetry
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
a.RecordEdit(values.PowerManageRole, fmt.Sprintf("新增角色:%v", req.Name))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func EditRole(c *gin.Context) {
|
|
|
|
|
a := app.NewApp(c)
|
|
|
|
|
defer func() {
|
|
|
|
|
a.Response()
|
|
|
|
|
}()
|
|
|
|
|
req := new(values.EditRoleReq)
|
|
|
|
|
if !a.S(req) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
if !a.CheckPower(req.Power) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
one := &values.Role{Role: req.Role, Name: req.Name, Power: req.Power}
|
|
|
|
|
if err := bdb.BackDB.Update(&values.Role{ID: uint(req.ID)}, one); err != nil {
|
|
|
|
|
log.Error("err:%v", err)
|
|
|
|
|
a.Code = values.CodeRetry
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
err := bdb.BackDB.Update(&values.User{Role: req.Role}, map[string]interface{}{"power": req.Power})
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Error(err.Error())
|
|
|
|
|
}
|
|
|
|
|
a.RecordEdit(values.PowerManageRole, fmt.Sprintf("修改角色:%v", req.ID))
|
|
|
|
|
}
|