feat:完善项目
This commit is contained in:
@ -5,7 +5,11 @@ import (
|
||||
"ArmedPolice/app/controller/basic"
|
||||
"ArmedPolice/app/model"
|
||||
"ArmedPolice/app/service"
|
||||
"ArmedPolice/config"
|
||||
"ArmedPolice/serve/orm"
|
||||
"ArmedPolice/utils"
|
||||
"errors"
|
||||
"gorm.io/gorm"
|
||||
"time"
|
||||
)
|
||||
|
||||
@ -25,11 +29,23 @@ type (
|
||||
ID string `json:"id"`
|
||||
*model.SysUserInfo
|
||||
}
|
||||
// InstanceDetailInfo 详细信息
|
||||
InstanceDetailInfo struct {
|
||||
ID string `json:"id"`
|
||||
*model2.SysUser
|
||||
Roles []*InstanceRoleInfo `json:"roles"`
|
||||
}
|
||||
// InstanceRoleInfo 角色信息
|
||||
InstanceRoleInfo struct {
|
||||
ID string `json:"id"`
|
||||
*model.SysUserRoleInfo
|
||||
}
|
||||
// InstanceParams 参数信息
|
||||
InstanceParams struct {
|
||||
ID uint64
|
||||
ID, TenantID uint64
|
||||
Account, Name, Avatar, Mobile, Password, Remark string
|
||||
Gender int
|
||||
Gender, Status int
|
||||
RoleIDs []uint64
|
||||
}
|
||||
// InstanceBasicInfo 基本信息
|
||||
InstanceBasicInfo struct {
|
||||
@ -38,6 +54,37 @@ type (
|
||||
}
|
||||
)
|
||||
|
||||
// roleHandle 角色处理
|
||||
func (c *InstanceParams) roleHandle(tx *gorm.DB, uid uint64) error {
|
||||
mSysUserRole := model.NewSysUserRole()
|
||||
|
||||
err := model2.DeleteWhere(mSysUserRole.SysUserRole,
|
||||
[]*model2.ModelWhere{model2.NewWhere("uid", uid)}, tx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
roles := make([]*model2.SysUserRole, 0)
|
||||
obj := make([]string, 0)
|
||||
|
||||
mark := make(map[uint64]uint64, 0)
|
||||
|
||||
for _, v := range c.RoleIDs {
|
||||
if _, has := mark[v]; has {
|
||||
continue
|
||||
}
|
||||
obj = append(obj, utils.UintToString(v))
|
||||
|
||||
roles = append(roles, &model2.SysUserRole{
|
||||
UID: uid, RoleID: v,
|
||||
})
|
||||
mark[v] = v
|
||||
}
|
||||
if err = model2.Creates(mSysUserRole.SysUserRole, roles, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Info 基本信息
|
||||
func (c *Instance) Info() *InstanceBasic {
|
||||
out := &InstanceBasic{Name: c.Name, Avatar: c.Avatar}
|
||||
@ -88,12 +135,50 @@ func (c *Instance) List(name, mobile string, tenantID uint64, page, pageSize int
|
||||
|
||||
list := make([]*InstanceInfo, 0)
|
||||
|
||||
mImage := new(model2.Image)
|
||||
|
||||
for _, v := range out {
|
||||
mImage.Image = v.Avatar
|
||||
v.Avatar = mImage.Analysis(config.SystemConfig[config.Domain].(string))
|
||||
list = append(list, &InstanceInfo{ID: v.GetEncodeID(), SysUserInfo: v})
|
||||
}
|
||||
return &basic.PageDataResponse{Data: list, Count: count}, nil
|
||||
}
|
||||
|
||||
// Detail 详细信息
|
||||
func (*Instance) Detail(id uint64) (*InstanceDetailInfo, error) {
|
||||
mSysUser := model.NewSysUser()
|
||||
mSysUser.ID = id
|
||||
|
||||
isExist, err := model2.FirstWhere(mSysUser.SysUser)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else if !isExist {
|
||||
return nil, err
|
||||
}
|
||||
mSysUserRole := model.NewSysUserRole()
|
||||
|
||||
roles := make([]*model.SysUserRoleInfo, 0)
|
||||
|
||||
if roles, err = mSysUserRole.Roles(mSysUser.UUID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
out := &InstanceDetailInfo{
|
||||
ID: mSysUser.GetEncodeID(),
|
||||
SysUser: mSysUser.SysUser,
|
||||
Roles: make([]*InstanceRoleInfo, 0),
|
||||
}
|
||||
for _, v := range roles {
|
||||
mSysUserRole.ID = v.ID
|
||||
out.Roles = append(out.Roles, &InstanceRoleInfo{
|
||||
ID: mSysUserRole.GetEncodeID(),
|
||||
SysUserRoleInfo: v,
|
||||
})
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// Form 数据操作
|
||||
func (c *Instance) Form(params *InstanceParams) error {
|
||||
mSysUser := model.NewSysUser()
|
||||
@ -117,9 +202,17 @@ func (c *Instance) Form(params *InstanceParams) error {
|
||||
return errors.New("操作错误,该手机号已被注册")
|
||||
}
|
||||
}
|
||||
return model2.Updates(mSysUser.SysUser, map[string]interface{}{
|
||||
"name": params.Name, "mobile": params.Mobile, "avatar": params.Avatar, "gender": params.Gender,
|
||||
"remark": params.Remark, "updated_at": time.Now(),
|
||||
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(),
|
||||
}, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
if err = params.roleHandle(tx, mSysUser.UUID); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
if params.Password == "" {
|
||||
@ -139,15 +232,25 @@ func (c *Instance) Form(params *InstanceParams) error {
|
||||
} else if count > 0 {
|
||||
return errors.New("操作错误,该手机号已被注册")
|
||||
}
|
||||
mSysUser.TenantID = params.TenantID
|
||||
mSysUser.Account = params.Account
|
||||
mSysUser.Name = params.Name
|
||||
mSysUser.Mobile = params.Mobile
|
||||
mSysUser.Avatar = params.Avatar
|
||||
mSysUser.Password = params.Password
|
||||
mSysUser.Gender.Gender = model2.GenderKind(params.Gender)
|
||||
mSysUser.Status = model2.SysUserStatus(params.Status)
|
||||
mSysUser.Remark = params.Remark
|
||||
|
||||
return model2.Create(mSysUser.SysUser)
|
||||
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
|
||||
if err = model2.Create(mSysUser.SysUser, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
if err = params.roleHandle(tx, mSysUser.UUID); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
// Delete 删除信息
|
||||
|
Reference in New Issue
Block a user