feat:完善项目
This commit is contained in:
@ -9,12 +9,18 @@ import (
|
|||||||
type Role struct{}
|
type Role struct{}
|
||||||
|
|
||||||
type roleForm struct {
|
type roleForm struct {
|
||||||
ParentID uint64 `json:"parent_id" form:"parent_id"`
|
ParentID string `json:"parent_id" form:"parent_id"`
|
||||||
Name string `json:"name" form:"name" binding:"required"`
|
Name string `json:"name" form:"name" binding:"required"`
|
||||||
Remark string `json:"remark" form:"remark" binding:"required"`
|
Remark string `json:"remark" form:"remark" binding:"required"`
|
||||||
Sort int `json:"sort" form:"sort"`
|
Sort int `json:"sort" form:"sort"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *roleForm) parentInfo() uint64 {
|
||||||
|
obj := new(IDStringForm)
|
||||||
|
obj.ID = this.ParentID
|
||||||
|
return obj.Convert()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @apiDefine Role 角色管理
|
* @apiDefine Role 角色管理
|
||||||
*/
|
*/
|
||||||
@ -66,7 +72,7 @@ func (a *Role) Add(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
err := role.NewInstance()(getSession()(c).(*service.Session)).Form(&role.InstanceParams{
|
err := role.NewInstance()(getSession()(c).(*service.Session)).Form(&role.InstanceParams{
|
||||||
ParentID: form.ParentID, Name: form.Name, Remark: form.Remark, Sort: form.Sort,
|
ParentID: form.parentInfo(), Name: form.Name, Remark: form.Remark, Sort: form.Sort,
|
||||||
})
|
})
|
||||||
APIResponse(err)(c)
|
APIResponse(err)(c)
|
||||||
}
|
}
|
||||||
@ -81,7 +87,7 @@ func (a *Role) Edit(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
err := role.NewInstance()(getSession()(c).(*service.Session)).Form(&role.InstanceParams{
|
err := role.NewInstance()(getSession()(c).(*service.Session)).Form(&role.InstanceParams{
|
||||||
ID: form.Convert(), ParentID: form.ParentID, Name: form.Name, Remark: form.Remark, Sort: form.Sort,
|
ID: form.Convert(), ParentID: form.parentInfo(), Name: form.Name, Remark: form.Remark, Sort: form.Sort,
|
||||||
})
|
})
|
||||||
APIResponse(err)(c)
|
APIResponse(err)(c)
|
||||||
}
|
}
|
||||||
|
@ -165,6 +165,7 @@ func (*User) List(c *gin.Context) {
|
|||||||
|
|
||||||
func (*User) Detail(c *gin.Context) {
|
func (*User) Detail(c *gin.Context) {
|
||||||
form := new(IDStringForm)
|
form := new(IDStringForm)
|
||||||
|
|
||||||
if err := bind(form)(c); err != nil {
|
if err := bind(form)(c); err != nil {
|
||||||
APIFailure(err.(error))(c)
|
APIFailure(err.(error))(c)
|
||||||
return
|
return
|
||||||
|
@ -28,7 +28,7 @@ type Model struct {
|
|||||||
|
|
||||||
// ModelTenant
|
// ModelTenant
|
||||||
type ModelTenant struct {
|
type ModelTenant struct {
|
||||||
TenantID uint64 `gorm:"column:tenant_id;index:idx_sys_tenant_id;type:int(11);default:0;comment:租户ID" json:"tenant_id"`
|
TenantID uint64 `gorm:"column:tenant_id;index:idx_sys_tenant_id;type:int(11);default:0;comment:租户ID" json:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// ModelDeleted
|
// ModelDeleted
|
||||||
@ -73,6 +73,13 @@ func (m *Model) GetEncodeID() string {
|
|||||||
return utils.HASHIDEncode(int(m.ID))
|
return utils.HASHIDEncode(int(m.ID))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *ModelTenant) GetEncodeTenantID() string {
|
||||||
|
if m.TenantID <= 0 {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return utils.HASHIDEncode(int(m.TenantID))
|
||||||
|
}
|
||||||
|
|
||||||
func (m *Model) SetDatabase(database string, key ...string) {
|
func (m *Model) SetDatabase(database string, key ...string) {
|
||||||
m.Database = database + "_" + strings.Join(key, "_")
|
m.Database = database + "_" + strings.Join(key, "_")
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ type SysUser struct {
|
|||||||
Model
|
Model
|
||||||
ModelTenant
|
ModelTenant
|
||||||
UUID uint64 `gorm:"column:uuid;uniqueIndex:idx_sys_user_uuid;type:int;default:0;comment:用户唯一UUID" json:"-"`
|
UUID uint64 `gorm:"column:uuid;uniqueIndex:idx_sys_user_uuid;type:int;default:0;comment:用户唯一UUID" json:"-"`
|
||||||
Account string `gorm:"column:account;type:varchar(50);default:null;comment:账户名" json:"account"`
|
Account string `gorm:"column:account;index:idx_sys_user_account;type:varchar(50);default:null;comment:登陆账号" json:"account"`
|
||||||
Avatar string `gorm:"column:avatar;type:varchar(255);default:null;comment:头像" json:"avatar"`
|
Avatar string `gorm:"column:avatar;type:varchar(255);default:null;comment:头像" json:"avatar"`
|
||||||
Name string `gorm:"column:name;type:varchar(20);default:null;comment:真实姓名" json:"name"`
|
Name string `gorm:"column:name;type:varchar(20);default:null;comment:真实姓名" json:"name"`
|
||||||
Mobile string `gorm:"column:mobile;index:idx_sys_user_mobile;type:varchar(15);default:null;comment:联系方式" json:"mobile"`
|
Mobile string `gorm:"column:mobile;index:idx_sys_user_mobile;type:varchar(15);default:null;comment:联系方式" json:"mobile"`
|
||||||
|
@ -7,7 +7,6 @@ import (
|
|||||||
"ArmedPolice/app/service"
|
"ArmedPolice/app/service"
|
||||||
"ArmedPolice/config"
|
"ArmedPolice/config"
|
||||||
"ArmedPolice/serve/orm"
|
"ArmedPolice/serve/orm"
|
||||||
"ArmedPolice/utils"
|
|
||||||
"errors"
|
"errors"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"time"
|
"time"
|
||||||
@ -33,12 +32,8 @@ type (
|
|||||||
InstanceDetailInfo struct {
|
InstanceDetailInfo struct {
|
||||||
ID string `json:"id"`
|
ID string `json:"id"`
|
||||||
*model2.SysUser
|
*model2.SysUser
|
||||||
Roles []*InstanceRoleInfo `json:"roles"`
|
TenantID string `json:"tenant_id"`
|
||||||
}
|
RoleIDs []string `json:"role_ids"`
|
||||||
// InstanceRoleInfo 角色信息
|
|
||||||
InstanceRoleInfo struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
*model.SysUserRoleInfo
|
|
||||||
}
|
}
|
||||||
// InstanceParams 参数信息
|
// InstanceParams 参数信息
|
||||||
InstanceParams struct {
|
InstanceParams struct {
|
||||||
@ -64,7 +59,6 @@ func (c *InstanceParams) roleHandle(tx *gorm.DB, uid uint64) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
roles := make([]*model2.SysUserRole, 0)
|
roles := make([]*model2.SysUserRole, 0)
|
||||||
obj := make([]string, 0)
|
|
||||||
|
|
||||||
mark := make(map[uint64]uint64, 0)
|
mark := make(map[uint64]uint64, 0)
|
||||||
|
|
||||||
@ -72,8 +66,6 @@ func (c *InstanceParams) roleHandle(tx *gorm.DB, uid uint64) error {
|
|||||||
if _, has := mark[v]; has {
|
if _, has := mark[v]; has {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
obj = append(obj, utils.UintToString(v))
|
|
||||||
|
|
||||||
roles = append(roles, &model2.SysUserRole{
|
roles = append(roles, &model2.SysUserRole{
|
||||||
UID: uid, RoleID: v,
|
UID: uid, RoleID: v,
|
||||||
})
|
})
|
||||||
@ -129,7 +121,7 @@ func (c *Instance) List(name, mobile string, tenantID uint64, page, pageSize int
|
|||||||
}
|
}
|
||||||
var count int64
|
var count int64
|
||||||
|
|
||||||
out, err := mSysUser.Users(page, pageSize, &count)
|
out, err := mSysUser.Users(page, pageSize, &count, where...)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -152,12 +144,14 @@ func (*Instance) Detail(id uint64) (*InstanceDetailInfo, error) {
|
|||||||
mSysUser := model.NewSysUser()
|
mSysUser := model.NewSysUser()
|
||||||
mSysUser.ID = id
|
mSysUser.ID = id
|
||||||
|
|
||||||
isExist, err := model2.FirstWhere(mSysUser.SysUser)
|
isExist, err := model2.FirstField(mSysUser.SysUser, []string{
|
||||||
|
"id", "tenant_id", "uuid", "account", "name", "avatar", "gender", "mobile",
|
||||||
|
"email", "remark", "status", "created_at",
|
||||||
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
} else if !isExist {
|
} else if !isExist {
|
||||||
return nil, err
|
return nil, errors.New("操作错误,用户信息不存在或已被删除")
|
||||||
}
|
}
|
||||||
mSysUserRole := model.NewSysUserRole()
|
mSysUserRole := model.NewSysUserRole()
|
||||||
|
|
||||||
@ -166,17 +160,18 @@ func (*Instance) Detail(id uint64) (*InstanceDetailInfo, error) {
|
|||||||
if roles, err = mSysUserRole.Roles(mSysUser.UUID); err != nil {
|
if roles, err = mSysUserRole.Roles(mSysUser.UUID); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
mModel := &model2.Image{Image: mSysUser.Avatar}
|
||||||
|
mSysUser.Avatar = mModel.Analysis(config.SystemConfig[config.Domain].(string))
|
||||||
|
|
||||||
out := &InstanceDetailInfo{
|
out := &InstanceDetailInfo{
|
||||||
ID: mSysUser.GetEncodeID(),
|
ID: mSysUser.GetEncodeID(),
|
||||||
SysUser: mSysUser.SysUser,
|
SysUser: mSysUser.SysUser,
|
||||||
Roles: make([]*InstanceRoleInfo, 0),
|
TenantID: mSysUser.GetEncodeTenantID(),
|
||||||
|
RoleIDs: make([]string, 0),
|
||||||
}
|
}
|
||||||
for _, v := range roles {
|
for _, v := range roles {
|
||||||
mSysUserRole.ID = v.ID
|
mSysUserRole.ID = v.ID
|
||||||
out.Roles = append(out.Roles, &InstanceRoleInfo{
|
out.RoleIDs = append(out.RoleIDs, mSysUserRole.GetEncodeID())
|
||||||
ID: mSysUserRole.GetEncodeID(),
|
|
||||||
SysUserRoleInfo: v,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
@ -188,7 +183,7 @@ func (c *Instance) Form(params *InstanceParams) error {
|
|||||||
if params.ID > 0 {
|
if params.ID > 0 {
|
||||||
mSysUser.ID = params.ID
|
mSysUser.ID = params.ID
|
||||||
|
|
||||||
isExist, err := model2.FirstField(mSysUser.SysUser, []string{"id", "name", "mobile"})
|
isExist, err := model2.FirstField(mSysUser.SysUser, []string{"id", "uuid", "name", "mobile"})
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -206,8 +201,8 @@ func (c *Instance) Form(params *InstanceParams) error {
|
|||||||
}
|
}
|
||||||
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
|
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
|
||||||
if err = model2.Updates(mSysUser.SysUser, map[string]interface{}{
|
if err = model2.Updates(mSysUser.SysUser, map[string]interface{}{
|
||||||
"tenant_id": params.TenantID, "name": params.Name, "mobile": params.Mobile, "avatar": params.Avatar, "gender": params.Gender,
|
"tenant_id": params.TenantID, "name": params.Name, "mobile": params.Mobile, "avatar": params.Avatar,
|
||||||
"status": params.Status, "remark": params.Remark, "updated_at": time.Now(),
|
"gender": params.Gender, "status": params.Status, "remark": params.Remark, "updated_at": time.Now(),
|
||||||
}, tx); err != nil {
|
}, tx); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user