切换导航条
此项目
正在载入...
登录
mmm-go
/
partnermg
·
提交
转到一个项目
GitLab
转到群组
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
唐旭辉
5 years ago
提交
42aca3b192ed07ade0466d652325241de089e8da
1 个父辈
28006301
微调 以及 用户管理的部分功能
隐藏空白字符变更
内嵌
并排对比
正在显示
6 个修改的文件
包含
167 行增加
和
10 行删除
pkg/application/users/command/admin_user_login.go
pkg/application/users/query/user_list.go
pkg/application/users/service/service.go
pkg/domain/users.go
pkg/infrastructure/repository/pg_users_repository.go
pkg/port/beego/controllers/user_controller.go
pkg/application/users/command/admin_user_login.go
查看文件 @
42aca3b
...
...
@@ -3,11 +3,11 @@ package command
import
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/lib"
type
LoginBySecretKeyCommand
struct
{
Secret
string
`json:"secret
"`
Code
string
`json:"code
"`
}
func
(
login
LoginBySecretKeyCommand
)
ValidateCommand
()
error
{
if
len
(
login
.
Secret
)
==
0
{
if
len
(
login
.
Code
)
==
0
{
return
lib
.
ThrowError
(
lib
.
ARG_ERROR
,
"登录参数错误"
)
}
return
nil
...
...
pkg/application/users/query/user_list.go
0 → 100644
查看文件 @
42aca3b
package
query
type
UserListQuery
struct
{
//用户名称匹配
UserNameMatch
string
`json:"userNameMatch" `
// 查询偏离量
Offset
int
`json:"offset" `
// 查询限制
Limit
int
`json:"limit"`
}
...
...
pkg/application/users/service/service.go
查看文件 @
42aca3b
...
...
@@ -26,9 +26,9 @@ func (service UsersService) UserLoginBySecretKey(cmd command.LoginBySecretKeyCom
}
//向统一用户中心确认密钥信息并获取用户数据
ucenterService
:=
serviceGateway
.
NewMmmUserCenterServiceGateway
()
loginResp
,
err
:=
ucenterService
.
RequestUCenterLoginBySecret
(
cmd
.
Secret
)
loginResp
,
err
:=
ucenterService
.
RequestUCenterLoginBySecret
(
cmd
.
Code
)
if
err
!=
nil
{
e
:=
fmt
.
Sprintf
(
"通过密钥(
secret=%s)从统一用户中心获取数据失败:%s"
,
cmd
.
Secret
,
err
.
Error
())
e
:=
fmt
.
Sprintf
(
"通过密钥(
code=%s)从统一用户中心获取数据失败:%s"
,
cmd
.
Code
,
err
.
Error
())
return
nil
,
lib
.
ThrowError
(
lib
.
INTERNAL_SERVER_ERROR
,
e
)
}
var
(
...
...
@@ -215,3 +215,83 @@ func (service UsersService) ValidateAdminpPermission(queryOption query.ValidateP
ok
:=
usersData
.
HasPermissionByCode
(
queryOption
.
PermissionCode
)
return
ok
,
nil
}
//获取用户列表
func
(
service
UsersService
)
GetUserList
(
queryOption
query
.
UserListQuery
)
(
int
,
[]
map
[
string
]
interface
{},
error
)
{
var
(
transactionContext
,
_
=
factory
.
CreateTransactionContext
(
nil
)
err
error
)
if
err
=
transactionContext
.
StartTransaction
();
err
!=
nil
{
return
0
,
nil
,
lib
.
ThrowError
(
lib
.
TRANSACTION_ERROR
,
err
.
Error
())
}
defer
func
()
{
transactionContext
.
RollbackTransaction
()
}()
var
(
userRespository
domain
.
UsersRepository
usersData
[]
domain
.
Users
cnt
int
permissionRepository
domain
.
AdminPermissionRepository
permissionList
[]
domain
.
AdminPermission
)
if
userRespository
,
err
=
factory
.
CreateUsersRepository
(
map
[
string
]
interface
{}{
"transactionContext"
:
transactionContext
,
});
err
!=
nil
{
return
0
,
nil
,
lib
.
ThrowError
(
lib
.
INTERNAL_SERVER_ERROR
,
err
.
Error
())
}
if
permissionRepository
,
err
=
factory
.
CreateAdminPermissionRepository
(
map
[
string
]
interface
{}{
"transactionContext"
:
transactionContext
,
});
err
!=
nil
{
return
0
,
nil
,
lib
.
ThrowError
(
lib
.
INTERNAL_SERVER_ERROR
,
err
.
Error
())
}
cnt
,
usersData
,
err
=
userRespository
.
Find
(
domain
.
UsersFindQuery
{
UserNameMatch
:
queryOption
.
UserNameMatch
,
Offset
:
queryOption
.
Offset
,
Limit
:
queryOption
.
Limit
,
})
var
permissionQuery
domain
.
PermissionFindOption
permissionList
,
err
=
permissionRepository
.
Find
(
permissionQuery
)
if
err
!=
nil
{
return
0
,
nil
,
lib
.
ThrowError
(
lib
.
INTERNAL_SERVER_ERROR
,
err
.
Error
())
}
err
=
transactionContext
.
CommitTransaction
()
result
:=
service
.
buildGetUserList
(
usersData
,
permissionList
)
return
cnt
,
result
,
nil
}
//buildGetUserList 组装构建前端需要的用户列表数据
func
(
service
UsersService
)
buildGetUserList
(
usersData
[]
domain
.
Users
,
permissionData
[]
domain
.
AdminPermission
)
[]
map
[
string
]
interface
{}
{
result
:=
make
([]
map
[
string
]
interface
{},
len
(
usersData
))
permissionMap
:=
map
[
int64
]
domain
.
AdminPermission
{}
for
i
:=
range
permissionData
{
permissionMap
[
permissionData
[
i
]
.
Id
]
=
permissionData
[
i
]
}
for
i
:=
range
usersData
{
permissionTypes
:=
[]
string
{}
if
usersData
[
i
]
.
IsSuperAdmin
()
{
for
_
,
pp
:=
range
permissionData
{
permissionTypes
=
append
(
permissionTypes
,
pp
.
Name
)
}
}
else
{
for
_
,
vv
:=
range
usersData
[
i
]
.
Permission
{
if
pm
,
ok
:=
permissionMap
[
vv
.
Id
];
ok
{
permissionTypes
=
append
(
permissionTypes
,
pm
.
Name
)
}
}
}
m
:=
map
[
string
]
interface
{}{
"id"
:
usersData
[
i
]
.
Id
,
"account"
:
usersData
[
i
]
.
Phone
,
"name"
:
usersData
[
i
]
.
Name
,
"permission"
:
permissionTypes
,
"isAdmin"
:
0
,
"partnership"
:
len
(
usersData
[
i
]
.
AccessPartners
),
}
if
usersData
[
i
]
.
IsSuperAdmin
()
{
m
[
"isAdmin"
]
=
1
}
result
=
append
(
result
,
m
)
}
return
result
}
...
...
pkg/domain/users.go
查看文件 @
42aca3b
...
...
@@ -137,12 +137,13 @@ type UsersFindOneQuery struct {
}
type
UsersFindQuery
struct
{
AdminType
int8
ChargeStatus
int8
CompanyId
int64
Ids
[]
int64
Offset
int
Limit
int
AdminType
int8
ChargeStatus
int8
CompanyId
int64
Ids
[]
int64
Offset
int
Limit
int
UserNameMatch
string
}
type
UsersRepository
interface
{
Add
(
*
Users
)
error
...
...
pkg/infrastructure/repository/pg_users_repository.go
查看文件 @
42aca3b
...
...
@@ -151,6 +151,9 @@ func (reponsitory UsersRepository) Find(queryOption domain.UsersFindQuery) (int,
if
queryOption
.
AdminType
>
0
{
query
=
query
.
Where
(
"admin_type=?"
,
queryOption
.
AdminType
)
}
if
len
(
queryOption
.
UserNameMatch
)
>
0
{
query
=
query
.
Where
(
"name like ?"
,
"%"
+
queryOption
.
UserNameMatch
+
"%"
)
}
if
queryOption
.
Offset
>=
0
{
query
=
query
.
Offset
(
queryOption
.
Offset
)
}
...
...
pkg/port/beego/controllers/user_controller.go
0 → 100644
查看文件 @
42aca3b
package
controllers
import
(
"errors"
"github.com/astaxie/beego/logs"
userQuery
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/users/query"
userService
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/users/service"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
)
type
UserController
struct
{
BaseController
}
//Prepare 重写 BaseController 的Prepare方法
func
(
c
*
UserController
)
Prepare
()
{
c
.
BaseController
.
Prepare
()
if
ok
:=
c
.
ValidJWTToken
();
!
ok
{
return
}
if
ok
:=
c
.
ValidAdminPermission
(
domain
.
PERMINSSION_ADMIN_USER
);
!
ok
{
return
}
}
//ListUser 获取用户分页列表
func
(
c
*
AdminUserController
)
ListUser
()
{
//用与适配前端定义的数据结构
type
Paramter
struct
{
SearchText
string
`json:"searchText"`
PageSize
int
`json::"pageSize"`
PageNumber
int
`json:"pageNumber"`
}
var
(
param
Paramter
err
error
)
if
err
=
c
.
BindJsonData
(
&
param
);
err
!=
nil
{
logs
.
Error
(
err
)
c
.
ResponseError
(
errors
.
New
(
"json数据解析失败"
))
return
}
if
param
.
PageSize
==
0
{
param
.
PageSize
=
20
}
if
param
.
PageNumber
==
0
{
param
.
PageNumber
=
1
}
newUserService
:=
userService
.
NewUsersService
(
nil
)
queryOption
:=
userQuery
.
UserListQuery
{
UserNameMatch
:
param
.
SearchText
,
Limit
:
param
.
PageSize
,
Offset
:
param
.
PageSize
*
(
param
.
PageNumber
-
1
),
}
cnt
,
usersData
,
err
:=
newUserService
.
GetUserList
(
queryOption
)
if
err
!=
nil
{
c
.
ResponseError
(
err
)
return
}
c
.
ResponsePageList
(
usersData
,
cnt
,
param
.
PageNumber
)
return
}
...
...
请
注册
或
登录
后发表评论