feat:优化项目信息
This commit is contained in:
@ -4,7 +4,9 @@ import (
|
||||
"SciencesServer/app/api/admin/model"
|
||||
model2 "SciencesServer/app/common/model"
|
||||
"SciencesServer/app/session"
|
||||
"SciencesServer/serve/orm"
|
||||
"errors"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// Member 人员信息
|
||||
@ -17,10 +19,8 @@ type MemberHandle func(session *session.Admin) *Member
|
||||
type (
|
||||
// MemberInfo 人员信息
|
||||
MemberInfo struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Account string `json:"account"`
|
||||
Mobile string `json:"mobile"`
|
||||
ID string `json:"id"`
|
||||
*model.SysUserTenantBasic
|
||||
}
|
||||
// MemberParams 人员参数信息
|
||||
MemberParams struct {
|
||||
@ -30,50 +30,74 @@ type (
|
||||
|
||||
// Instance 人员信息
|
||||
func (c *Member) Instance(tenantID uint64) (*MemberInfo, error) {
|
||||
mSysUser := model.NewSysUser()
|
||||
mSysUserTenant := model.NewSysUserTenant()
|
||||
|
||||
isExist, err := model2.FirstField(mSysUser.SysUser, []string{"id", "name", "account", "mobile"},
|
||||
model2.NewWhere("tenant_id", tenantID),
|
||||
model2.NewWhere("is_admin", model2.SysUserAdministratorForAdmin))
|
||||
out, err := mSysUserTenant.User(model2.NewWhere("u_t.tenant_id", tenantID),
|
||||
model2.NewWhere("u_t.identity", model2.SysUserTenantIdentityForSystemUser))
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
out := new(MemberInfo)
|
||||
res := new(MemberInfo)
|
||||
|
||||
if !isExist {
|
||||
if out == nil && out.ID <= 0 {
|
||||
goto RETURNS
|
||||
}
|
||||
out.ID = mSysUser.GetEncodeID()
|
||||
out.Name = mSysUser.Name
|
||||
out.Account = mSysUser.Account
|
||||
out.Mobile = mSysUser.Mobile
|
||||
res.ID = out.GetEncodeID()
|
||||
res.SysUserTenantBasic = out
|
||||
RETURNS:
|
||||
return out, nil
|
||||
return res, nil
|
||||
}
|
||||
|
||||
// Form 数据操作
|
||||
func (c *Member) Form(tenantID uint64, params *MemberParams) error {
|
||||
mSysUser := model.NewSysUser()
|
||||
mSysUserTenant := model.NewSysUserTenant()
|
||||
|
||||
isExist, err := model2.FirstField(mSysUser.SysUser, []string{"id", "name", "account", "mobile"},
|
||||
model2.NewWhere("tenant_id", tenantID),
|
||||
model2.NewWhere("is_admin", model2.SysUserAdministratorForAdmin))
|
||||
var count int64
|
||||
|
||||
err := model2.Count(mSysUserTenant.SysUserTenant, &count, model2.NewWhere("tenant_id", tenantID),
|
||||
model2.NewWhere("identity", model2.SysUserTenantIdentityForSystemAdmin))
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
} else if isExist {
|
||||
} else if count > 0 {
|
||||
return errors.New("操作错误,当前平台已存在管理员")
|
||||
}
|
||||
mSysUser.TenantID = tenantID
|
||||
mSysUser.Account = params.Mobile
|
||||
mSysUser.Name = params.Mobile
|
||||
mSysUser.Mobile = params.Mobile
|
||||
mSysUser.Password = params.Password
|
||||
mSysUser.IsAdmin = model2.SysUserAdministratorForAdmin
|
||||
mSysUser.Remark = "子平台管理员"
|
||||
// 用户信息
|
||||
mSysUser := model.NewSysUser()
|
||||
|
||||
return model2.Create(mSysUser.SysUser)
|
||||
// 查询手机号码是否存在
|
||||
isExist := false
|
||||
|
||||
if isExist, err = model2.FirstField(mSysUser.SysUser, []string{"id", "uuid", "name", "account", "mobile"},
|
||||
model2.NewWhere("mobile", params.Mobile)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if isExist {
|
||||
mSysUserTenant.TenantID = tenantID
|
||||
mSysUserTenant.UID = mSysUser.UUID
|
||||
mSysUserTenant.Identity = model2.SysUserTenantIdentityForSystemUser
|
||||
return model2.Create(mSysUserTenant.SysUserTenant)
|
||||
}
|
||||
if params.Password == "" {
|
||||
return errors.New("操作错误,密码不能为空")
|
||||
}
|
||||
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
|
||||
mSysUser.Account = params.Mobile
|
||||
mSysUser.Name = params.Mobile
|
||||
mSysUser.Mobile = params.Mobile
|
||||
mSysUser.Password = params.Password
|
||||
mSysUser.Remark = "子平台管理员"
|
||||
|
||||
if err = model2.Create(mSysUser.SysUser, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
mSysUserTenant.TenantID = tenantID
|
||||
mSysUserTenant.UID = mSysUser.UUID
|
||||
mSysUserTenant.Identity = model2.SysUserTenantIdentityForSystemUser
|
||||
return model2.Create(mSysUserTenant.SysUserTenant, tx)
|
||||
})
|
||||
}
|
||||
|
||||
func NewMember() MemberHandle {
|
||||
|
Reference in New Issue
Block a user