Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
education
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
李丛阳
education
Commits
4bb6bf86
Commit
4bb6bf86
authored
Jun 19, 2020
by
luzhuang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 添加自动同步 用户和管理员(智学1.0)
parent
c830505b
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
162 additions
and
5 deletions
+162
-5
UserManageTask.java
src/main/java/org/rcisoft/core/task/UserManageTask.java
+34
-0
SysRoleRepository.java
...main/java/org/rcisoft/sys/role/dao/SysRoleRepository.java
+12
-0
SysUserController.java
...va/org/rcisoft/sys/user/controller/SysUserController.java
+1
-1
SysUserService.java
...ain/java/org/rcisoft/sys/user/service/SysUserService.java
+17
-0
SysUserServiceImpl.java
...org/rcisoft/sys/user/service/impl/SysUserServiceImpl.java
+98
-4
No files found.
src/main/java/org/rcisoft/core/task/UserManageTask.java
0 → 100644
View file @
4bb6bf86
package
org
.
rcisoft
.
core
.
task
;
import
lombok.extern.slf4j.Slf4j
;
import
org.rcisoft.sys.role.dao.SysRoleRepository
;
import
org.rcisoft.sys.user.service.SysUserService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* Created by lz on 20/6/19.
*/
@Component
@Slf4j
public
class
UserManageTask
{
@Autowired
private
SysUserService
sysUserService
;
@Autowired
private
SysRoleRepository
sysRoleRepository
;
@Scheduled
(
cron
=
"${eduJob.userManageJob:0 0 /2 * * ?}"
)
public
void
work
()
{
//获取 智学开通所有企业id
List
<
String
>
corpIds
=
sysRoleRepository
.
getCorpIds
();
//循环调用 同步接口
corpIds
.
forEach
(
c
->
sysUserService
.
synchronizedALL
(
c
));
}
}
src/main/java/org/rcisoft/sys/role/dao/SysRoleRepository.java
View file @
4bb6bf86
...
...
@@ -244,4 +244,16 @@ public interface SysRoleRepository extends BaseMapper<SysRole> {
@Update
(
"update tm_admin_role set type = #{type} , depart_ids = #{departIds} where r_id = #{businessId}"
)
int
updateRoleData
(
SysRole
sysRole
);
//删除当前管理员对应的用户
@Delete
(
"delete from s_r_user_role where role_id = #{roleId} "
)
int
deleteUserRole
(
String
roleId
);
//获取当前企业的 管理员角色id
@Select
(
"select * from tm_admin_role where corp_id = #{corpId} and r_type = #{rType} "
)
String
getRoleId
(
@Param
(
"corpId"
)
String
corpId
,
@Param
(
"rType"
)
String
rType
);
//获取 智学开通的企业 id
@Select
(
"select DISTINCT corp_id from tm_admin_role where r_type = 0"
)
List
<
String
>
getCorpIds
();
}
src/main/java/org/rcisoft/sys/user/controller/SysUserController.java
View file @
4bb6bf86
...
...
@@ -63,7 +63,7 @@ public class SysUserController extends PaginationController<SysUser> {
@GetMapping
(
"/gets"
)
@ApiOperation
(
value
=
"|personnels|同步人员"
,
notes
=
"同步人员信息"
)
public
Result
synchronizedUsers
(
@RequestParam
String
corpId
)
throws
ParseException
{
int
line
=
userServiceImpl
.
synchronized
Users
(
corpId
);
int
line
=
userServiceImpl
.
synchronized
ALL
(
corpId
);
return
Result
.
builder
(
new
PersistModel
(
1
),
MessageConstant
.
MESSAGE_ALERT_SUCCESS
,
MessageConstant
.
MESSAGE_ALERT_ERROR
,
...
...
src/main/java/org/rcisoft/sys/user/service/SysUserService.java
View file @
4bb6bf86
...
...
@@ -46,8 +46,25 @@ public interface SysUserService {
int
insertOrUpdateList
(
List
<
SysUser
>
sysUserList
);
/**
* 同步用户信息
* @param corpId
* @return
* @throws ParseException
*/
int
synchronizedUsers
(
String
corpId
)
throws
ParseException
;
/**
* 同步管理员信息
* @param corpId
* @return
*/
void
synchronizedManages
(
String
corpId
);
int
synchronizedALL
(
String
corpId
);
/**
* zhangqingle
* 我的智学也查询个人信息及课程、培训、考试数量
...
...
src/main/java/org/rcisoft/sys/user/service/impl/SysUserServiceImpl.java
View file @
4bb6bf86
...
...
@@ -8,10 +8,7 @@ import org.rcisoft.business.bexternallink.dto.MenuDTO;
import
org.rcisoft.business.synchronizationtime.entity.SynchronizationTime
;
import
org.rcisoft.business.synchronizationtime.service.SynchronizationTimeService
;
import
org.rcisoft.common.component.Global
;
import
org.rcisoft.common.util.feignDto.GetAllRspDTO
;
import
org.rcisoft.common.util.feignDto.MTGetUserByDeptIdsRspDTO
;
import
org.rcisoft.common.util.feignDto.MTUserGetsReqDTO
;
import
org.rcisoft.common.util.feignDto.MTUserInfoRspDTO
;
import
org.rcisoft.common.util.feignDto.*
;
import
org.rcisoft.common.util.outClient.MTCotactApiRequestClient
;
import
org.rcisoft.core.aop.PageUtil
;
import
org.rcisoft.core.exception.ServiceException
;
...
...
@@ -19,6 +16,8 @@ import org.rcisoft.core.result.ResultServiceEnums;
import
org.rcisoft.core.util.IdGen
;
import
org.rcisoft.core.util.UserUtil
;
import
org.rcisoft.sys.menu.dao.SysMenuRepository
;
import
org.rcisoft.sys.role.dao.SysRoleRepository
;
import
org.rcisoft.sys.role.dto.UserRoleDTO
;
import
org.rcisoft.sys.user.dto.QueryMenuResDTO
;
import
org.rcisoft.sys.menu.entity.SysMenu
;
import
org.rcisoft.sys.user.bean.CurUser
;
...
...
@@ -62,6 +61,12 @@ public class SysUserServiceImpl implements SysUserService {
@Autowired
MTCotactApiRequestClient
mtCotactApiRequestClient
;
@Autowired
MTCotactApiRequestClient
cotactApiRequestClient
;
@Autowired
private
SysRoleRepository
sysRoleRepository
;
@Autowired
private
Global
global
;
...
...
@@ -476,6 +481,38 @@ public class SysUserServiceImpl implements SysUserService {
return
line
;
}
@Override
@Transactional
(
propagation
=
Propagation
.
REQUIRED
,
isolation
=
Isolation
.
DEFAULT
,
rollbackFor
=
Exception
.
class
)
public
void
synchronizedManages
(
String
corpId
){
//获取当前企业 主管理员角色id
String
mRId
=
sysRoleRepository
.
getRoleId
(
corpId
,
"0"
);
//获取智信接口 所有主管理员
List
<
CorpGetManager
>
userMainList
=
cotactApiRequestClient
.
corpGetManager
(
corpId
,
"1"
);
if
(
userMainList
!=
null
&&
userMainList
.
size
()
>
0
){
userMainList
=
this
.
accountIdToBusinessId
(
userMainList
,
corpId
);
List
<
UserRoleDTO
>
userRoleDTOList
=
setUserRole
(
userMainList
,
mRId
);
//先删除掉 关系表中的数据
sysRoleRepository
.
deleteUserRole
(
mRId
);
//再插入s_r_user_role
sysRoleRepository
.
addUserRole
(
userRoleDTOList
);
}
//获取当前企业 子管理员角色id
String
sRId
=
sysRoleRepository
.
getRoleId
(
corpId
,
"1"
);
List
<
CorpGetManager
>
userSubMainList
=
cotactApiRequestClient
.
corpGetManager
(
corpId
,
"2"
);
if
(
userSubMainList
!=
null
&&
userSubMainList
.
size
()
>
0
){
userSubMainList
=
this
.
accountIdToBusinessId
(
userSubMainList
,
corpId
);
List
<
UserRoleDTO
>
userSubRoleDTOList
=
setUserRole
(
userSubMainList
,
sRId
);
//先删除掉 关系表中的数据
sysRoleRepository
.
deleteUserRole
(
sRId
);
//插入s_r_user_role表
sysRoleRepository
.
addUserRole
(
userSubRoleDTOList
);
}
}
@Override
public
MyInfoDTO
queryMyInfo
(
CurUser
curUser
)
{
MyInfoDTO
myInfoDTOCount
=
sysUserMapper
.
queryMyLessonCount
(
curUser
);
...
...
@@ -526,4 +563,61 @@ public class SysUserServiceImpl implements SysUserService {
public
MyInfoDTO
getNameById
(
String
id
)
{
return
sysUserMapper
.
getNameById
(
id
);
}
/**
* 根据AccountId查询用户user表中真实BusinessId
* @param MainList
* @return
*/
List
<
CorpGetManager
>
accountIdToBusinessId
(
List
<
CorpGetManager
>
MainList
,
String
corpId
){
StringBuffer
sb
=
new
StringBuffer
();
for
(
CorpGetManager
user
:
MainList
){
sb
.
append
(
user
.
getAccountId
()+
","
);
}
String
accountId
=
sb
.
toString
().
substring
(
0
,
sb
.
toString
().
length
()
-
1
);
List
<
SysUser
>
businessId
=
sysUserMapper
.
getBusinessIdByAccountId
(
accountId
,
corpId
);
if
(
businessId
!=
null
&&
businessId
.
size
()
>
0
){
for
(
SysUser
sysUser:
businessId
){
for
(
CorpGetManager
c
:
MainList
){
if
(
sysUser
.
getAccountId
().
equals
(
c
.
getAccountId
())){
c
.
setId
(
sysUser
.
getBusinessId
());
}
}
}
}
return
MainList
;
}
List
<
UserRoleDTO
>
setUserRole
(
List
<
CorpGetManager
>
userMainList
,
String
rId
){
List
<
UserRoleDTO
>
userRoleDTOList
=
new
ArrayList
<>();
userMainList
.
forEach
(
user
->{
UserRoleDTO
userRoleDTO
=
new
UserRoleDTO
();
userRoleDTO
.
setBusinessId
(
IdGen
.
uuid
());
userRoleDTO
.
setRoleId
(
rId
);
userRoleDTO
.
setUserId
(
user
.
getId
());
userRoleDTOList
.
add
(
userRoleDTO
);
});
return
userRoleDTOList
;
}
/**
* 同步 智信用户和管理员
* @param corpId
* @return
*/
@Override
public
int
synchronizedALL
(
String
corpId
){
synchronizedManages
(
corpId
);
int
line
=
0
;
try
{
line
=
synchronizedUsers
(
corpId
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
line
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment