feat:完善项目
This commit is contained in:
@ -9,12 +9,18 @@ import (
|
||||
type Role 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"`
|
||||
Remark string `json:"remark" form:"remark" binding:"required"`
|
||||
Sort int `json:"sort" form:"sort"`
|
||||
}
|
||||
|
||||
func (this *roleForm) parentInfo() uint64 {
|
||||
obj := new(IDStringForm)
|
||||
obj.ID = this.ParentID
|
||||
return obj.Convert()
|
||||
}
|
||||
|
||||
/**
|
||||
* @apiDefine Role 角色管理
|
||||
*/
|
||||
@ -66,7 +72,7 @@ func (a *Role) Add(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
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)
|
||||
}
|
||||
@ -81,7 +87,7 @@ func (a *Role) Edit(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
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)
|
||||
}
|
||||
|
@ -165,6 +165,7 @@ func (*User) List(c *gin.Context) {
|
||||
|
||||
func (*User) Detail(c *gin.Context) {
|
||||
form := new(IDStringForm)
|
||||
|
||||
if err := bind(form)(c); err != nil {
|
||||
APIFailure(err.(error))(c)
|
||||
return
|
||||
|
@ -28,7 +28,7 @@ type Model struct {
|
||||
|
||||
// ModelTenant
|
||||
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
|
||||
@ -73,6 +73,13 @@ func (m *Model) GetEncodeID() string {
|
||||
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) {
|
||||
m.Database = database + "_" + strings.Join(key, "_")
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ type SysUser struct {
|
||||
Model
|
||||
ModelTenant
|
||||
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"`
|
||||
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"`
|
||||
|
@ -7,7 +7,6 @@ import (
|
||||
"ArmedPolice/app/service"
|
||||
"ArmedPolice/config"
|
||||
"ArmedPolice/serve/orm"
|
||||
"ArmedPolice/utils"
|
||||
"errors"
|
||||
"gorm.io/gorm"
|
||||
"time"
|
||||
@ -33,12 +32,8 @@ type (
|
||||
InstanceDetailInfo struct {
|
||||
ID string `json:"id"`
|
||||
*model2.SysUser
|
||||
Roles []*InstanceRoleInfo `json:"roles"`
|
||||
}
|
||||
// InstanceRoleInfo 角色信息
|
||||
InstanceRoleInfo struct {
|
||||
ID string `json:"id"`
|
||||
*model.SysUserRoleInfo
|
||||
TenantID string `json:"tenant_id"`
|
||||
RoleIDs []string `json:"role_ids"`
|
||||
}
|
||||
// InstanceParams 参数信息
|
||||
InstanceParams struct {
|
||||
@ -64,7 +59,6 @@ func (c *InstanceParams) roleHandle(tx *gorm.DB, uid uint64) error {
|
||||
return err
|
||||
}
|
||||
roles := make([]*model2.SysUserRole, 0)
|
||||
obj := make([]string, 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 {
|
||||
continue
|
||||
}
|
||||
obj = append(obj, utils.UintToString(v))
|
||||
|
||||
roles = append(roles, &model2.SysUserRole{
|
||||
UID: uid, RoleID: v,
|
||||
})
|
||||
@ -129,7 +121,7 @@ func (c *Instance) List(name, mobile string, tenantID uint64, page, pageSize int
|
||||
}
|
||||
var count int64
|
||||
|
||||
out, err := mSysUser.Users(page, pageSize, &count)
|
||||
out, err := mSysUser.Users(page, pageSize, &count, where...)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -152,12 +144,14 @@ func (*Instance) Detail(id uint64) (*InstanceDetailInfo, error) {
|
||||
mSysUser := model.NewSysUser()
|
||||
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 {
|
||||
return nil, err
|
||||
} else if !isExist {
|
||||
return nil, err
|
||||
return nil, errors.New("操作错误,用户信息不存在或已被删除")
|
||||
}
|
||||
mSysUserRole := model.NewSysUserRole()
|
||||
|
||||
@ -166,17 +160,18 @@ func (*Instance) Detail(id uint64) (*InstanceDetailInfo, error) {
|
||||
if roles, err = mSysUserRole.Roles(mSysUser.UUID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
mModel := &model2.Image{Image: mSysUser.Avatar}
|
||||
mSysUser.Avatar = mModel.Analysis(config.SystemConfig[config.Domain].(string))
|
||||
|
||||
out := &InstanceDetailInfo{
|
||||
ID: mSysUser.GetEncodeID(),
|
||||
SysUser: mSysUser.SysUser,
|
||||
Roles: make([]*InstanceRoleInfo, 0),
|
||||
ID: mSysUser.GetEncodeID(),
|
||||
SysUser: mSysUser.SysUser,
|
||||
TenantID: mSysUser.GetEncodeTenantID(),
|
||||
RoleIDs: make([]string, 0),
|
||||
}
|
||||
for _, v := range roles {
|
||||
mSysUserRole.ID = v.ID
|
||||
out.Roles = append(out.Roles, &InstanceRoleInfo{
|
||||
ID: mSysUserRole.GetEncodeID(),
|
||||
SysUserRoleInfo: v,
|
||||
})
|
||||
out.RoleIDs = append(out.RoleIDs, mSysUserRole.GetEncodeID())
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
@ -188,7 +183,7 @@ func (c *Instance) Form(params *InstanceParams) error {
|
||||
if params.ID > 0 {
|
||||
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 {
|
||||
return err
|
||||
@ -206,8 +201,8 @@ func (c *Instance) Form(params *InstanceParams) error {
|
||||
}
|
||||
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
|
||||
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,
|
||||
"status": params.Status, "remark": params.Remark, "updated_at": time.Now(),
|
||||
"tenant_id": params.TenantID, "name": params.Name, "mobile": params.Mobile, "avatar": params.Avatar,
|
||||
"gender": params.Gender, "status": params.Status, "remark": params.Remark, "updated_at": time.Now(),
|
||||
}, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
Reference in New Issue
Block a user