Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
dd_school
Overview
Overview
Details
Activity
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangqi
dd_school
Commits
819d199c
Commit
819d199c
authored
Oct 23, 2023
by
xuwenhao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
拉取钉钉用户、部门、级部成员信息
parent
a9f5d1ff
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
3185 additions
and
79 deletions
+3185
-79
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
+3
-3
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
+2
-0
smart-campus/src/main/java/yangtz/cs/liu/dingding/controller/DdLoginController.java
+32
-30
smart-campus/src/main/java/yangtz/cs/liu/dingding/controller/dingDept/DdDeptController.java
+43
-0
smart-campus/src/main/java/yangtz/cs/liu/dingding/controller/dingEvent/DingEventController.java
+26
-17
smart-campus/src/main/java/yangtz/cs/liu/dingding/controller/dingUser/DingUserController.java
+23
-29
smart-campus/src/main/java/yangtz/cs/liu/dingding/domain/dingDept/SysDdDept.java
+217
-0
smart-campus/src/main/java/yangtz/cs/liu/dingding/domain/dingGrade/SchoolGradeMentorCopy.java
+37
-0
smart-campus/src/main/java/yangtz/cs/liu/dingding/domain/dingUser/SysDdUser.java
+459
-0
smart-campus/src/main/java/yangtz/cs/liu/dingding/domain/dingUser/SysDdUserDept.java
+11
-0
smart-campus/src/main/java/yangtz/cs/liu/dingding/domain/schoolTeacher/SysDdTeacher.java
+150
-0
smart-campus/src/main/java/yangtz/cs/liu/dingding/mapper/dingDept/DdDeptMapper.java
+58
-0
smart-campus/src/main/java/yangtz/cs/liu/dingding/mapper/dingUser/DdUserMapper.java
+77
-0
smart-campus/src/main/java/yangtz/cs/liu/dingding/mapper/schoolTeacher/DdTeacherMapper.java
+25
-0
smart-campus/src/main/java/yangtz/cs/liu/dingding/service/dingDept/IDdDeptService.java
+42
-0
smart-campus/src/main/java/yangtz/cs/liu/dingding/service/dingUser/IDdUserService.java
+45
-0
smart-campus/src/main/java/yangtz/cs/liu/dingding/service/impl/dingDept/DdDeptServcieImpl.java
+381
-0
smart-campus/src/main/java/yangtz/cs/liu/dingding/service/impl/dingUser/DdUserServiceImpl.java
+913
-0
smart-campus/src/main/resources/mapper/ddDept/DdDeptMapper.xml
+143
-0
smart-campus/src/main/resources/mapper/ddTeacher/DdTeacherMapper.xml
+153
-0
smart-campus/src/main/resources/mapper/ddUser/DdUserMapper.xml
+345
-0
No files found.
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
View file @
819d199c
...
...
@@ -32,7 +32,7 @@ public class SysDept extends BaseEntity
private
String
deptName
;
/** 显示顺序 */
private
Integer
orderNum
;
private
Long
orderNum
;
/** 负责人 */
private
String
leader
;
...
...
@@ -98,12 +98,12 @@ public class SysDept extends BaseEntity
}
@NotNull
(
message
=
"显示顺序不能为空"
)
public
Integer
getOrderNum
()
public
Long
getOrderNum
()
{
return
orderNum
;
}
public
void
setOrderNum
(
Integer
orderNum
)
public
void
setOrderNum
(
Long
orderNum
)
{
this
.
orderNum
=
orderNum
;
}
...
...
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
View file @
819d199c
...
...
@@ -116,6 +116,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
.
antMatchers
(
"/dd/user/login"
).
permitAll
()
.
antMatchers
(
"/common/**"
).
permitAll
()
.
antMatchers
(
"/dd/school/**"
).
permitAll
()
//打印下载接口放行
.
antMatchers
(
"/school/student/queryOne/**"
,
"/school/studentStatus/proofStatus/**"
).
permitAll
()
//网页注册登录接口放行
.
antMatchers
(
"/web/artStudent/register"
,
"/web/artStudent/login"
).
permitAll
()
// 静态资源,可匿名访问
...
...
smart-campus/src/main/java/yangtz/cs/liu/dingding/controller/DdLoginController.java
View file @
819d199c
...
...
@@ -6,8 +6,10 @@ import com.dingtalk.api.DefaultDingTalkClient;
import
com.dingtalk.api.DingTalkClient
;
import
com.dingtalk.api.request.OapiUserGetuserinfoRequest
;
import
com.dingtalk.api.request.OapiV2UserGetRequest
;
import
com.dingtalk.api.request.OapiV2UserGetuserinfoRequest
;
import
com.dingtalk.api.response.OapiUserGetuserinfoResponse
;
import
com.dingtalk.api.response.OapiV2UserGetResponse
;
import
com.dingtalk.api.response.OapiV2UserGetuserinfoResponse
;
import
com.ruoyi.common.constant.Constants
;
import
com.ruoyi.common.core.domain.AjaxResult
;
import
com.ruoyi.common.core.domain.entity.SchoolTeacher
;
...
...
@@ -55,40 +57,40 @@ public class DdLoginController {
@RequestMapping
(
value
=
"/login"
,
method
=
RequestMethod
.
GET
)
public
AjaxResult
login
(
@RequestParam
(
"code"
)
String
code
)
{
AjaxResult
ajaxResult
=
new
AjaxResult
();
//
// 获取access_token,注意正式代码要有异常流处理
//
String access_token= accessTokenUtils.getToken();
//
// 获取用户信息
//
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/getuserinfo");
//
OapiUserGetuserinfoRequest request = new OapiUserGetuserinfoRequest();
//
request.setCode(code);
//
request.setHttpMethod("GET");
//
OapiUserGetuserinfoResponse response;
//
try {
//
response = client.execute(request, access_token);
//
} catch (ApiException e) {
//
// TODO Auto-generated catch block
//
e.printStackTrace();
//
return null;
//
}
//
// 查询得到当前用户的userId
//
// 获得到userId之后应用应该处理应用自身的登录会话管理(session),避免后续的业务交互(前端到应用服务端)每次都要重新获取用户身份,提升用户体验
//
String userId = response.getUserid();
//
if (StringUtils.isEmpty(userId)){
//
throw new ServiceException("免登码已失效,请重新获取");
//
}
//
//获取用户详细信息
//
Map<String, Object> userInfo = getUserInfo(userId, access_token);
//
String phone = (String) userInfo.get("phone");
//
String unionId = (String) userInfo.get("unionId");
SchoolTeacher
schoolTeacher
=
schoolTeacherService
.
selectTeacherByPhone
(
"15888888888"
);
// 获取access_token,注意正式代码要有异常流处理
String
access_token
=
accessTokenUtils
.
getToken
();
// 获取用户信息
DingTalkClient
client
=
new
DefaultDingTalkClient
(
"https://oapi.dingtalk.com/user/getuserinfo"
);
OapiUserGetuserinfoRequest
request
=
new
OapiUserGetuserinfoRequest
();
request
.
setCode
(
code
);
request
.
setHttpMethod
(
"GET"
);
OapiUserGetuserinfoResponse
response
;
try
{
response
=
client
.
execute
(
request
,
access_token
);
}
catch
(
ApiException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
return
null
;
}
// 查询得到当前用户的userId
// 获得到userId之后应用应该处理应用自身的登录会话管理(session),避免后续的业务交互(前端到应用服务端)每次都要重新获取用户身份,提升用户体验
String
userId
=
response
.
getUserid
();
if
(
StringUtils
.
isEmpty
(
userId
)){
throw
new
ServiceException
(
"免登码已失效,请重新获取"
);
}
//获取用户详细信息
Map
<
String
,
Object
>
userInfo
=
getUserInfo
(
userId
,
access_token
);
String
phone
=
(
String
)
userInfo
.
get
(
"phone"
);
String
unionId
=
(
String
)
userInfo
.
get
(
"unionId"
);
SchoolTeacher
schoolTeacher
=
schoolTeacherService
.
selectTeacherByPhone
(
phone
);
if
(
StringUtils
.
isNull
(
schoolTeacher
)){
throw
new
ServiceException
(
"未查询到该用户信息"
);
}
Long
userId
=
schoolTeacher
.
getId
();
SysUser
sysUser
=
sysUserService
.
selectUserById
(
userId
);
Long
userId
1
=
schoolTeacher
.
getId
();
SysUser
sysUser
=
sysUserService
.
selectUserById
(
userId
1
);
//更新钉钉用户iid和unionId
//
sysUser.setUnionId(unionId);
//
schoolTeacherService.updateDdUserId(sysUser, userId);
sysUser
.
setUnionId
(
unionId
);
schoolTeacherService
.
updateDdUserId
(
sysUser
,
userId
);
String
token
=
loginService
.
loginNew
(
sysUser
);
ajaxResult
.
put
(
Constants
.
TOKEN
,
token
);
return
ajaxResult
;
...
...
smart-campus/src/main/java/yangtz/cs/liu/dingding/controller/dingDept/DdDeptController.java
0 → 100644
View file @
819d199c
package
yangtz
.
cs
.
liu
.
dingding
.
controller
.
dingDept
;
import
com.ruoyi.common.core.controller.BaseController
;
import
com.ruoyi.common.core.domain.AjaxResult
;
import
com.ruoyi.common.core.page.TableDataInfo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
yangtz.cs.liu.dingding.service.impl.dingDept.DdDeptServcieImpl
;
@RestController
@RequestMapping
(
"/dd/school/dept"
)
public
class
DdDeptController
extends
BaseController
{
@Autowired
private
DdDeptServcieImpl
ddDeptServcie
;
/**
* 获取钉钉全部部门列表
*/
@GetMapping
(
"/getDeptList"
)
public
TableDataInfo
getDeptList
(){
return
getDataTable
(
ddDeptServcie
.
getDeptList
());
}
/**
* 下拉钉钉部门列表到系统
*/
@PostMapping
(
"/addDdDept"
)
public
AjaxResult
addDdDept
(){
return
toAjax
(
ddDeptServcie
.
addDdDept
());
}
/**
* 同步钉钉部门列表
*/
@GetMapping
(
"/syncDdDept"
)
public
AjaxResult
syncDdDept
(){
return
AjaxResult
.
success
(
ddDeptServcie
.
syncDdDept
());
}
}
smart-campus/src/main/java/yangtz/cs/liu/dingding/controller/dingEvent/DingEventController.java
View file @
819d199c
...
...
@@ -4,9 +4,11 @@ import com.alibaba.fastjson.JSON;
import
com.alibaba.fastjson.JSONObject
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
yangtz.cs.liu.dingding.config.Constant
;
import
yangtz.cs.liu.dingding.utils.AccessTokenUtils
;
import
yangtz.cs.liu.dingding.service.impl.dingDept.DdDeptServcieImpl
;
import
yangtz.cs.liu.dingding.service.impl.dingUser.DdUserServiceImpl
;
import
yangtz.cs.liu.dingding.utils.DingCallbackCrypto
;
import
java.util.Map
;
...
...
@@ -20,6 +22,11 @@ public class DingEventController {
private
static
Logger
log
=
LoggerFactory
.
getLogger
(
DingEventController
.
class
);
@Autowired
private
DdDeptServcieImpl
ddDeptServcie
;
@Autowired
private
DdUserServiceImpl
ddUserService
;
@PostMapping
(
"/callBack"
)
public
Map
<
String
,
String
>
callBack
(
@RequestParam
(
value
=
"msg_signature"
,
required
=
false
)
String
msg_signature
,
...
...
@@ -47,12 +54,26 @@ public class DingEventController {
// 测试回调url的正确性
log
.
info
(
"测试回调url的正确性"
);
}
else
if
(
"user_add_org"
.
equals
(
eventType
))
{
// 处理通讯录用户增加事件
log
.
info
(
"发生了:"
+
eventType
+
"事件"
);
// 处理通讯录用户增加
ddUserService
.
addUser
(
eventJson
);
}
else
if
(
"user_modify_org"
.
equals
(
eventType
))
{
// 处理通讯录用户修改
ddUserService
.
updateUser
(
eventJson
);
}
else
if
(
"user_leave_org"
.
equals
(
eventType
))
{
// 处理通讯录用户离职
ddUserService
.
leaveUser
(
eventJson
);
}
else
if
(
"org_dept_create"
.
equals
(
eventType
)){
// 处理通讯录企业部门创建
ddDeptServcie
.
ddDeptCreate
(
eventJson
);
}
else
if
(
"org_dept_modify"
.
equals
(
eventType
)){
// 处理通讯录企业部门修改
ddDeptServcie
.
ddDeptUpdate
(
eventJson
);
}
else
if
(
"org_dept_remove"
.
equals
(
eventType
)){
// 处理通讯录企业部门删除
ddDeptServcie
.
ddDeptDelete
(
eventJson
);
}
else
if
(
"bpms_instance_change"
.
equals
(
eventType
)){
// 处理审批实例事件
processInstance
(
eventJson
);
log
.
info
(
"发生了:"
+
eventType
+
"事件"
);
}
else
if
(
"bpms_task_change"
.
equals
(
eventType
)){
// 处理审批任务事件
eventJson
.
get
(
""
);
...
...
@@ -70,16 +91,4 @@ public class DingEventController {
}
return
null
;
}
/**
* 处理审批实例事件
*/
public
void
processInstance
(
JSONObject
eventJson
){
//获取审批类型
String
type
=
eventJson
.
getString
(
"type"
);
//判断审批实例是否正常结束
if
(
"finish"
.
equals
(
type
)){
}
}
}
smart-campus/src/main/java/yangtz/cs/liu/dingding/controller/dingUser/DingUserController.java
View file @
819d199c
...
...
@@ -4,10 +4,8 @@ import com.ruoyi.common.core.controller.BaseController;
import
com.ruoyi.common.core.domain.AjaxResult
;
import
com.ruoyi.common.core.page.TableDataInfo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
yangtz.cs.liu.dingding.service.impl.dingUser.DdUserServiceImpl
;
import
yangtz.cs.liu.dingding.utils.DingUserUtils
;
/**
...
...
@@ -18,42 +16,38 @@ import yangtz.cs.liu.dingding.utils.DingUserUtils;
public
class
DingUserController
extends
BaseController
{
@Autowired
private
D
ingUserUtils
dingUserUtils
;
private
D
dUserServiceImpl
ddUserService
;
/**
* 获取
部门用户基础信息
* 获取
钉钉所有用户id
*/
@GetMapping
(
"/getUserByDeptId"
)
public
TableDataInfo
getUserByDeptId
(
@RequestParam
(
"deptId"
)
Long
deptId
,
@RequestParam
(
"cursor"
)
Long
cursor
,
@RequestParam
(
"size"
)
Long
size
,
@RequestParam
(
"orderField"
)
String
orderField
,
@RequestParam
(
"containAccessLimit"
)
String
containAccessLimit
,
@RequestParam
(
"language"
)
String
language
)
{
return
getDataTable
(
dingUserUtils
.
getUserByDeptId
(
deptId
,
cursor
,
size
,
orderField
,
containAccessLimit
,
language
));
@GetMapping
(
"/getDdUserListAll"
)
public
TableDataInfo
getDdUserListAll
(){
return
getDataTable
(
ddUserService
.
getDdUserListAll
());
}
/**
*
获取部门用户完整信息
*
下拉钉钉用户到系统
*/
@GetMapping
(
"/getUserInfoByDeptId"
)
public
TableDataInfo
getUserInfoByDeptId
(
@RequestParam
(
"deptId"
)
Long
deptId
,
@RequestParam
(
"cursor"
)
Long
cursor
,
@RequestParam
(
"size"
)
Long
size
,
@RequestParam
(
"orderField"
)
String
orderField
,
@RequestParam
(
"containAccessLimit"
)
String
containAccessLimit
,
@RequestParam
(
"language"
)
String
language
)
{
return
getDataTable
(
dingUserUtils
.
getUserInfoByDeptId
(
deptId
,
cursor
,
size
,
orderField
,
containAccessLimit
,
language
));
@PostMapping
(
"/addDdUser"
)
public
AjaxResult
addDdUser
(){
return
toAjax
(
ddUserService
.
addDdUser
());
}
/**
* 获取用户详情
* 用户表数据同步到教师表
* @return
*/
@
GetMapping
(
"/getUs
er"
)
public
AjaxResult
getUser
(
@RequestParam
(
"userId"
)
String
userId
){
return
AjaxResult
.
success
(
dingUserUtils
.
getUser
(
userId
));
@
PostMapping
(
"/addDdTeach
er"
)
public
AjaxResult
addDdTeacher
(
){
return
toAjax
(
ddUserService
.
addDdTeacher
(
));
}
/**
* 同步钉钉用户列表
*/
@GetMapping
(
"/syncDdUser"
)
public
AjaxResult
syncDdUser
(){
return
AjaxResult
.
success
(
ddUserService
.
syncDdUser
());
}
}
smart-campus/src/main/java/yangtz/cs/liu/dingding/domain/dingDept/SysDdDept.java
0 → 100644
View file @
819d199c
package
yangtz
.
cs
.
liu
.
dingding
.
domain
.
dingDept
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
org.apache.commons.lang3.builder.ToStringBuilder
;
import
org.apache.commons.lang3.builder.ToStringStyle
;
import
javax.validation.constraints.Email
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Size
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
SysDdDept
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/** 部门ID */
private
Long
deptId
;
/** 父部门ID */
private
Long
parentId
;
/** 祖级列表 */
private
String
ancestors
;
/** 部门名称 */
private
String
deptName
;
/** 显示顺序 */
private
Long
orderNum
;
/** 负责人 */
private
String
leader
;
/** 联系电话 */
private
String
phone
;
/** 邮箱 */
private
String
email
;
/** 部门状态:0正常,1停用 */
private
String
status
;
/** 钉钉部门id */
private
Long
ddDeptId
;
/** 钉钉父部门id */
private
Long
ddParentId
;
/** 删除标志(0代表存在 2代表删除) */
private
String
delFlag
;
/** 父部门名称 */
private
String
parentName
;
/** 子部门 */
private
List
<
SysDdDept
>
children
=
new
ArrayList
<
SysDdDept
>();
public
Long
getDdDeptId
()
{
return
ddDeptId
;
}
public
void
setDdDeptId
(
Long
ddDeptId
)
{
this
.
ddDeptId
=
ddDeptId
;
}
public
Long
getDdParentId
()
{
return
ddParentId
;
}
public
void
setDdParentId
(
Long
ddParentId
)
{
this
.
ddParentId
=
ddParentId
;
}
public
Long
getDeptId
()
{
return
deptId
;
}
public
void
setDeptId
(
Long
deptId
)
{
this
.
deptId
=
deptId
;
}
public
Long
getParentId
()
{
return
parentId
;
}
public
void
setParentId
(
Long
parentId
)
{
this
.
parentId
=
parentId
;
}
public
String
getAncestors
()
{
return
ancestors
;
}
public
void
setAncestors
(
String
ancestors
)
{
this
.
ancestors
=
ancestors
;
}
@NotBlank
(
message
=
"部门名称不能为空"
)
@Size
(
min
=
0
,
max
=
30
,
message
=
"部门名称长度不能超过30个字符"
)
public
String
getDeptName
()
{
return
deptName
;
}
public
void
setDeptName
(
String
deptName
)
{
this
.
deptName
=
deptName
;
}
@NotNull
(
message
=
"显示顺序不能为空"
)
public
Long
getOrderNum
()
{
return
orderNum
;
}
public
void
setOrderNum
(
Long
orderNum
)
{
this
.
orderNum
=
orderNum
;
}
public
String
getLeader
()
{
return
leader
;
}
public
void
setLeader
(
String
leader
)
{
this
.
leader
=
leader
;
}
@Size
(
min
=
0
,
max
=
11
,
message
=
"联系电话长度不能超过11个字符"
)
public
String
getPhone
()
{
return
phone
;
}
public
void
setPhone
(
String
phone
)
{
this
.
phone
=
phone
;
}
@Email
(
message
=
"邮箱格式不正确"
)
@Size
(
min
=
0
,
max
=
50
,
message
=
"邮箱长度不能超过50个字符"
)
public
String
getEmail
()
{
return
email
;
}
public
void
setEmail
(
String
email
)
{
this
.
email
=
email
;
}
public
String
getStatus
()
{
return
status
;
}
public
void
setStatus
(
String
status
)
{
this
.
status
=
status
;
}
public
String
getDelFlag
()
{
return
delFlag
;
}
public
void
setDelFlag
(
String
delFlag
)
{
this
.
delFlag
=
delFlag
;
}
public
String
getParentName
()
{
return
parentName
;
}
public
void
setParentName
(
String
parentName
)
{
this
.
parentName
=
parentName
;
}
public
List
<
SysDdDept
>
getChildren
()
{
return
children
;
}
public
void
setChildren
(
List
<
SysDdDept
>
children
)
{
this
.
children
=
children
;
}
@Override
public
String
toString
()
{
return
new
ToStringBuilder
(
this
,
ToStringStyle
.
MULTI_LINE_STYLE
)
.
append
(
"deptId"
,
getDeptId
())
.
append
(
"parentId"
,
getParentId
())
.
append
(
"ancestors"
,
getAncestors
())
.
append
(
"deptName"
,
getDeptName
())
.
append
(
"orderNum"
,
getOrderNum
())
.
append
(
"leader"
,
getLeader
())
.
append
(
"phone"
,
getPhone
())
.
append
(
"email"
,
getEmail
())
.
append
(
"status"
,
getStatus
())
.
append
(
"delFlag"
,
getDelFlag
())
.
append
(
"createBy"
,
getCreateBy
())
.
append
(
"createTime"
,
getCreateTime
())
.
append
(
"updateBy"
,
getUpdateBy
())
.
append
(
"updateTime"
,
getUpdateTime
())
.
toString
();
}
}
smart-campus/src/main/java/yangtz/cs/liu/dingding/domain/dingGrade/SchoolGradeMentorCopy.java
0 → 100644
View file @
819d199c
package
yangtz
.
cs
.
liu
.
dingding
.
domain
.
dingGrade
;
import
com.core.domain.OurBaseEntity
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
@Data
public
class
SchoolGradeMentorCopy
extends
OurBaseEntity
{
/** 老师主键 */
@NotNull
(
message
=
"级部教师不能为空"
)
private
Long
teacherId
;
/** 年级级部主键 */
private
Long
gradeId
;
/** 教师任职开始时间 */
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
startTime
;
/** 教师任职结束时间 */
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
endTime
;
/** 类型(1年级部,2学科组长) */
private
String
type
;
/** 职务 */
private
String
teacherPost
;
/** 学科组(1物理学科组,2化学学科组,3生物学科组) */
private
String
subGroup
;
}
smart-campus/src/main/java/yangtz/cs/liu/dingding/domain/dingUser/SysDdUser.java
0 → 100644
View file @
819d199c
package
yangtz
.
cs
.
liu
.
dingding
.
domain
.
dingUser
;
import
com.ruoyi.common.annotation.Excel
;
import
com.ruoyi.common.annotation.Excels
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
com.ruoyi.common.core.domain.entity.SysDept
;
import
com.ruoyi.common.core.domain.entity.SysRole
;
import
com.ruoyi.common.xss.Xss
;
import
org.apache.commons.lang3.builder.ToStringBuilder
;
import
org.apache.commons.lang3.builder.ToStringStyle
;
import
javax.validation.constraints.Email
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.Size
;
import
java.util.Date
;
import
java.util.List
;
public
class
SysDdUser
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/** 用户ID */
@Excel
(
name
=
"用户序号"
,
cellType
=
Excel
.
ColumnType
.
NUMERIC
,
prompt
=
"用户编号"
)
private
Long
userId
;
/** 部门ID */
@Excel
(
name
=
"部门编号"
,
type
=
Excel
.
Type
.
IMPORT
)
private
Long
deptId
;
/** 用户账号 */
@Excel
(
name
=
"登录名称"
)
private
String
userName
;
// /** 用户昵称 */
// @Excel(name = "用户名称")
// private String nickName;
/** 登录名称 */
@Excel
(
name
=
"登录名称"
)
private
String
loginName
;
/** 用户类型 */
private
String
userType
;
/** 用户类型 */
private
String
userLoginType
;
/** 用户邮箱 */
@Excel
(
name
=
"用户邮箱"
)
private
String
email
;
/** 手机号码 */
@Excel
(
name
=
"手机号码"
)
private
String
phonenumber
;
/** 用户性别 */
@Excel
(
name
=
"用户性别"
,
readConverterExp
=
"0=男,1=女,2=未知"
)
private
String
sex
;
/** 用户头像 */
private
String
avatar
;
/** 密码 */
private
String
password
;
/** 盐加密 */
private
String
salt
;
/** 帐号状态(0正常 1停用) */
@Excel
(
name
=
"帐号状态"
,
readConverterExp
=
"0=正常,1=停用"
)
private
String
status
;
/** 删除标志(0代表存在 2代表删除) */
private
String
delFlag
;
/** 最后登录IP */
@Excel
(
name
=
"最后登录IP"
,
type
=
Excel
.
Type
.
EXPORT
)
private
String
loginIp
;
/** 最后登录时间 */
@Excel
(
name
=
"最后登录时间"
,
width
=
30
,
dateFormat
=
"yyyy-MM-dd HH:mm:ss"
,
type
=
Excel
.
Type
.
EXPORT
)
private
Date
loginDate
;
/** 密码最后更新时间 */
private
Date
pwdUpdateDate
;
/** 微信openId */
private
String
openId
;
/** 钉钉用户unionId */
private
String
unionId
;
/** 钉钉用户id */
private
String
ddUserId
;
/** 部门对象 */
@Excels
({
@Excel
(
name
=
"部门名称"
,
targetAttr
=
"deptName"
,
type
=
Excel
.
Type
.
EXPORT
),
@Excel
(
name
=
"部门负责人"
,
targetAttr
=
"leader"
,
type
=
Excel
.
Type
.
EXPORT
)
})
private
SysDept
dept
;
/** 用户所在部门列表 */
private
List
<
Long
>
ddUserDepts
;
/** 角色对象 */
private
List
<
SysRole
>
roles
;
/** 角色组 */
private
Long
[]
roleIds
;
/** 岗位组 */
private
Long
[]
postIds
;
/** 岗位组名称 */
private
String
postName
;
/** 角色ID */
private
Long
roleId
;
/** 职工类型(0带班,1不带班) */
private
String
employeeType
;
/** 学生id */
private
Long
studentId
;
/** 签名路径 */
private
String
sign
;
public
SysDdUser
()
{
}
public
List
<
Long
>
getDdUserDepts
()
{
return
ddUserDepts
;
}
public
void
setDdUserDepts
(
List
<
Long
>
ddUserDepts
)
{
this
.
ddUserDepts
=
ddUserDepts
;
}
public
String
getUnionId
()
{
return
unionId
;
}
public
void
setUnionId
(
String
unionId
)
{
this
.
unionId
=
unionId
;
}
public
String
getDdUserId
()
{
return
ddUserId
;
}
public
void
setDdUserId
(
String
ddUserId
)
{
this
.
ddUserId
=
ddUserId
;
}
public
SysDdUser
(
Long
userId
)
{
this
.
userId
=
userId
;
}
public
Long
getUserId
()
{
return
userId
;
}
public
void
setUserId
(
Long
userId
)
{
this
.
userId
=
userId
;
}
public
boolean
isAdmin
()
{
return
isAdmin
(
this
.
userId
);
}
public
static
boolean
isAdmin
(
Long
userId
)
{
return
userId
!=
null
&&
1L
==
userId
;
}
public
Long
getDeptId
()
{
return
deptId
;
}
public
void
setDeptId
(
Long
deptId
)
{
this
.
deptId
=
deptId
;
}
@Xss
(
message
=
"用户账号不能包含脚本字符"
)
@NotBlank
(
message
=
"用户账号不能为空"
)
@Size
(
min
=
0
,
max
=
30
,
message
=
"用户账号长度不能超过30个字符"
)
public
String
getUserName
()
{
return
userName
;
}
public
void
setUserName
(
String
userName
)
{
this
.
userName
=
userName
;
}
@Email
(
message
=
"邮箱格式不正确"
)
@Size
(
min
=
0
,
max
=
50
,
message
=
"邮箱长度不能超过50个字符"
)
public
String
getEmail
()
{
return
email
;
}
public
void
setEmail
(
String
email
)
{
this
.
email
=
email
;
}
@Size
(
min
=
0
,
max
=
11
,
message
=
"手机号码长度不能超过11个字符"
)
public
String
getPhonenumber
()
{
return
phonenumber
;
}
public
void
setPhonenumber
(
String
phonenumber
)
{
this
.
phonenumber
=
phonenumber
;
}
public
String
getSex
()
{
return
sex
;
}
public
void
setSex
(
String
sex
)
{
this
.
sex
=
sex
;
}
public
String
getAvatar
()
{
return
avatar
;
}
public
void
setAvatar
(
String
avatar
)
{
this
.
avatar
=
avatar
;
}
public
String
getPassword
()
{
return
password
;
}
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
}
public
String
getStatus
()
{
return
status
;
}
public
void
setStatus
(
String
status
)
{
this
.
status
=
status
;
}
public
String
getDelFlag
()
{
return
delFlag
;
}
public
void
setDelFlag
(
String
delFlag
)
{
this
.
delFlag
=
delFlag
;
}
public
String
getLoginIp
()
{
return
loginIp
;
}
public
void
setLoginIp
(
String
loginIp
)
{
this
.
loginIp
=
loginIp
;
}
public
Date
getLoginDate
()
{
return
loginDate
;
}
public
void
setLoginDate
(
Date
loginDate
)
{
this
.
loginDate
=
loginDate
;
}
public
SysDept
getDept
()
{
return
dept
;
}
public
void
setDept
(
SysDept
dept
)
{
this
.
dept
=
dept
;
}
public
List
<
SysRole
>
getRoles
()
{
return
roles
;
}
public
void
setRoles
(
List
<
SysRole
>
roles
)
{
this
.
roles
=
roles
;
}
public
Long
[]
getRoleIds
()
{
return
roleIds
;
}
public
void
setRoleIds
(
Long
[]
roleIds
)
{
this
.
roleIds
=
roleIds
;
}
public
Long
[]
getPostIds
()
{
return
postIds
;
}
public
void
setPostIds
(
Long
[]
postIds
)
{
this
.
postIds
=
postIds
;
}
public
Long
getRoleId
()
{
return
roleId
;
}
public
void
setRoleId
(
Long
roleId
)
{
this
.
roleId
=
roleId
;
}
public
String
getLoginName
()
{
return
loginName
;
}
public
void
setLoginName
(
String
loginName
)
{
this
.
loginName
=
loginName
;
}
public
String
getUserType
()
{
return
userType
;
}
public
void
setUserType
(
String
userType
)
{
this
.
userType
=
userType
;
}
public
Date
getPwdUpdateDate
()
{
return
pwdUpdateDate
;
}
public
void
setPwdUpdateDate
(
Date
pwdUpdateDate
)
{
this
.
pwdUpdateDate
=
pwdUpdateDate
;
}
public
String
getSalt
()
{
return
salt
;
}
public
void
setSalt
(
String
salt
)
{
this
.
salt
=
salt
;
}
@Override
public
String
toString
()
{
return
new
ToStringBuilder
(
this
,
ToStringStyle
.
MULTI_LINE_STYLE
)
.
append
(
"userId"
,
getUserId
())
.
append
(
"deptId"
,
getDeptId
())
.
append
(
"loginName"
,
getLoginName
())
.
append
(
"userName"
,
getUserName
())
.
append
(
"userType"
,
getUserType
())
.
append
(
"email"
,
getEmail
())
.
append
(
"phonenumber"
,
getPhonenumber
())
.
append
(
"sex"
,
getSex
())
.
append
(
"avatar"
,
getAvatar
())
.
append
(
"password"
,
getPassword
())
.
append
(
"salt"
,
getSalt
())
.
append
(
"status"
,
getStatus
())
.
append
(
"delFlag"
,
getDelFlag
())
.
append
(
"loginIp"
,
getLoginIp
())
.
append
(
"loginDate"
,
getLoginDate
())
.
append
(
"createBy"
,
getCreateBy
())
.
append
(
"createTime"
,
getCreateTime
())
.
append
(
"updateBy"
,
getUpdateBy
())
.
append
(
"updateTime"
,
getUpdateTime
())
.
append
(
"remark"
,
getRemark
())
.
append
(
"dept"
,
getDept
())
.
append
(
"roles"
,
getRoles
())
.
toString
();
}
public
String
getOpenId
()
{
return
openId
;
}
public
void
setOpenId
(
String
openId
)
{
this
.
openId
=
openId
;
}
public
String
getUserLoginType
()
{
return
userLoginType
;
}
public
void
setUserLoginType
(
String
userLoginType
)
{
this
.
userLoginType
=
userLoginType
;
}
public
String
getEmployeeType
()
{
return
employeeType
;
}
public
void
setEmployeeType
(
String
employeeType
)
{
this
.
employeeType
=
employeeType
;
}
public
Long
getStudentId
()
{
return
studentId
;
}
public
void
setStudentId
(
Long
studentId
)
{
this
.
studentId
=
studentId
;
}
public
String
getSign
()
{
return
sign
;
}
public
void
setSign
(
String
sign
)
{
this
.
sign
=
sign
;
}
public
String
getPostName
()
{
return
postName
;
}
public
void
setPostName
(
String
postName
)
{
this
.
postName
=
postName
;
}
}
smart-campus/src/main/java/yangtz/cs/liu/dingding/domain/dingUser/SysDdUserDept.java
0 → 100644
View file @
819d199c
package
yangtz
.
cs
.
liu
.
dingding
.
domain
.
dingUser
;
import
lombok.Data
;
@Data
public
class
SysDdUserDept
{
private
Long
userId
;
private
Long
deptId
;
}
smart-campus/src/main/java/yangtz/cs/liu/dingding/domain/schoolTeacher/SysDdTeacher.java
0 → 100644
View file @
819d199c
package
yangtz
.
cs
.
liu
.
dingding
.
domain
.
schoolTeacher
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.ruoyi.common.annotation.Excel
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
java.util.Date
;
@Data
public
class
SysDdTeacher
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
private
Long
id
;
/**
* 照片路径
*/
@Excel
(
name
=
"照片"
,
cellType
=
Excel
.
ColumnType
.
IMAGE
,
height
=
55
,
type
=
Excel
.
Type
.
EXPORT
)
private
String
picUrl
;
/**
* 老师名称
*/
@Excel
(
name
=
"老师名称"
)
@NotBlank
(
message
=
"老师名字不能为空"
)
private
String
teacherName
;
/**
* 性别
*/
@Excel
(
name
=
"性别"
,
readConverterExp
=
"0=男,1=女"
)
@NotBlank
(
message
=
"性别不能为空"
)
private
String
sex
;
/**
* 民族
*/
@Excel
(
name
=
"民族"
)
private
String
nation
;
/**
* 工作编号
*/
@Excel
(
name
=
"工作编号"
)
private
String
teacherCode
;
/*
* 系统表 用户id
* */
@TableField
(
exist
=
false
)
private
Long
userId
;
/**
* 生日
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
@Excel
(
name
=
"生日"
,
width
=
25
,
dateFormat
=
"yyyy-MM-dd"
)
private
Date
birthday
;
/**
* 学历
*/
@Excel
(
name
=
"学历"
,
readConverterExp
=
"0=高中,1=专科,2=本科,3=研究生,4=硕士,5=博士"
,
combo
=
{
"高中"
,
"专科"
,
"本科"
,
"研究生"
,
"硕士"
,
"博士"
})
private
String
education
;
/**
* 老师电话
*/
@Excel
(
name
=
"老师电话"
)
@NotBlank
(
message
=
"老师电话不能为空"
)
private
String
teacherTel
;
/**
* 身份证号
*/
@Excel
(
name
=
"身份证号"
,
width
=
30
)
@NotBlank
(
message
=
"身份证号不能为空"
)
private
String
idCard
;
/**
* 家庭住址
*/
@Excel
(
name
=
"家庭住址"
,
width
=
35
)
private
String
homeAddress
;
/*
* 微信openid
* */
private
String
openId
;
/*
* 钉钉用户unionId
* */
private
String
unionId
;
/*
* 钉钉用户id
* */
private
String
ddUserId
;
//设备工号
private
String
deviceNum
;
/**部门id**/
@TableField
(
exist
=
false
)
private
Long
deptId
;
/**部门名称**/
@TableField
(
exist
=
false
)
private
String
deptName
;
/** 密码 */
@TableField
(
exist
=
false
)
private
String
password
;
/** 帐号状态(0正常 1停用) */
//@Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
@TableField
(
exist
=
false
)
private
String
status
;
/**签名路径*/
@TableField
(
exist
=
false
)
private
String
sign
;
/**头像**/
@TableField
(
exist
=
false
)
private
String
avatar
;
/*职工类型**/
@TableField
(
exist
=
false
)
private
String
employeeType
;
@TableField
(
exist
=
false
)
private
String
email
;
/** 父部门ID */
@TableField
(
exist
=
false
)
private
Long
parentId
;
/** 父部门名称 */
@TableField
(
exist
=
false
)
private
String
parentName
;
}
smart-campus/src/main/java/yangtz/cs/liu/dingding/mapper/dingDept/DdDeptMapper.java
0 → 100644
View file @
819d199c
package
yangtz
.
cs
.
liu
.
dingding
.
mapper
.
dingDept
;
import
yangtz.cs.liu.dingding.domain.dingDept.SysDdDept
;
import
java.util.List
;
import
java.util.Map
;
public
interface
DdDeptMapper
{
/**
* 查询系统部门列表
* @param sysDdDept
* @return
*/
List
<
SysDdDept
>
selectDdDeptList
(
SysDdDept
sysDdDept
);
/**
* 根据钉钉部门id查询系统部门信息
*/
SysDdDept
selectDeptByDdDeptId
(
Long
ddDeptId
);
/**
* 根据部门id查询系统部门信息
*/
SysDdDept
selectDeptByDeptId
(
Long
deptId
);
/**
* 查询级部信息
*/
List
<
Map
<
String
,
Object
>>
selectGradeList
();
/**
* 新增钉钉部门
* @return
*/
int
insertDdDept
(
SysDdDept
sysDdDept
);
/**
* 更新钉钉部门
* @param sysDdDept
* @return
*/
int
updateDdDeptByDdDeptId
(
SysDdDept
sysDdDept
);
/**
* 删除部门
* @param deptId
* @return
*/
int
deleteDdDeptById
(
Long
deptId
);
/**
* 根据钉钉部门id删除部门
* @param ddDeptId
* @return
*/
int
deleteDdDeptByDdDeptId
(
Long
ddDeptId
);
}
smart-campus/src/main/java/yangtz/cs/liu/dingding/mapper/dingUser/DdUserMapper.java
0 → 100644
View file @
819d199c
package
yangtz
.
cs
.
liu
.
dingding
.
mapper
.
dingUser
;
import
org.apache.ibatis.annotations.Param
;
import
yangtz.cs.liu.dingding.domain.dingGrade.SchoolGradeMentorCopy
;
import
yangtz.cs.liu.dingding.domain.dingUser.SysDdUser
;
import
yangtz.cs.liu.dingding.domain.dingUser.SysDdUserDept
;
import
java.util.List
;
public
interface
DdUserMapper
{
/**
* 批量新增钉钉用户
*/
int
batchInsertDdUser
(
@Param
(
"list"
)
List
<
SysDdUser
>
list
);
/**
* 新增用户
*/
int
insertDdUser
(
SysDdUser
sysDdUser
);
/**
* 更新用户
*/
int
updateDdUser
(
SysDdUser
sysDdUser
);
/**
* 查询全部用户
*/
List
<
SysDdUser
>
selectDdUserList
(
SysDdUser
sysDdUser
);
/**
* 新增用户部门关系
*/
int
insertDdUserDept
(
SysDdUserDept
sysDdUserDept
);
/**
* 删除用户
*/
int
deleteDdUser
(
Long
userId
);
/**
* 删除用户和部门关系
*/
int
deleteDdUserDept
(
Long
userId
);
/**
* 删除教师
*/
int
deleteDdTeacher
(
Long
userId
);
/**
* 根据用户id查询用户部门id列表
*/
List
<
Long
>
selectDeptIdByUserId
(
Long
userId
);
/**
* 根据钉钉用户id查询用户信息
* @param ddUserId
* @return
*/
SysDdUser
selectDdUserByDdUserId
(
String
ddUserId
);
/**
* 新增级部成员
* @param schoolGradeMentorCopy
* @return
*/
int
insertGradeMentor
(
SchoolGradeMentorCopy
schoolGradeMentorCopy
);
/**
* 删除级部成员
* @param userId
* @return
*/
int
deleteGradeMentor
(
Long
userId
);
}
smart-campus/src/main/java/yangtz/cs/liu/dingding/mapper/schoolTeacher/DdTeacherMapper.java
0 → 100644
View file @
819d199c
package
yangtz
.
cs
.
liu
.
dingding
.
mapper
.
schoolTeacher
;
import
org.apache.ibatis.annotations.Param
;
import
yangtz.cs.liu.dingding.domain.schoolTeacher.SysDdTeacher
;
import
java.util.List
;
public
interface
DdTeacherMapper
{
/**
* 批量新增教师
*/
int
batchInsertTeacher
(
@Param
(
"list"
)
List
<
SysDdTeacher
>
list
);
/**
* 新增教师
*/
int
addTeacherList
(
SysDdTeacher
sysDdTeacher
);
/**
* 更新教师信息
*/
int
updateDdTeacher
(
SysDdTeacher
sysDdTeacher
);
}
smart-campus/src/main/java/yangtz/cs/liu/dingding/service/dingDept/IDdDeptService.java
0 → 100644
View file @
819d199c
package
yangtz
.
cs
.
liu
.
dingding
.
service
.
dingDept
;
import
com.alibaba.fastjson.JSONObject
;
import
com.dingtalk.api.response.OapiV2DepartmentListsubResponse
;
import
java.util.List
;
public
interface
IDdDeptService
{
/**
* 获取钉钉全部部门列表
* @return
*/
List
<
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
>
getDeptList
();
/**
* 下拉钉钉部门列表到系统
* @return
*/
int
addDdDept
();
/**
* 同步钉钉部门列表
* @return
*/
String
syncDdDept
();
/**
* 钉钉部门创建
*/
int
ddDeptCreate
(
JSONObject
eventJson
);
/**
* 钉钉部门修改
*/
int
ddDeptUpdate
(
JSONObject
eventJson
);
/**
* 钉钉部门删除
*/
int
ddDeptDelete
(
JSONObject
eventJson
);
}
smart-campus/src/main/java/yangtz/cs/liu/dingding/service/dingUser/IDdUserService.java
0 → 100644
View file @
819d199c
package
yangtz
.
cs
.
liu
.
dingding
.
service
.
dingUser
;
import
com.alibaba.fastjson.JSONObject
;
import
java.util.List
;
public
interface
IDdUserService
{
/**
* 获取钉钉全部用户id
*/
List
<
String
>
getDdUserListAll
();
/**
* 下拉钉钉用户到系统
*/
int
addDdUser
();
/**
* 用户表数据同步到教师表
* @return
*/
int
addDdTeacher
();
/**
* 同步钉钉用户
*/
String
syncDdUser
();
/**
* 处理通讯录用户增加
*/
int
addUser
(
JSONObject
eventJson
);
/**
* 处理通讯录用户修改
*/
int
updateUser
(
JSONObject
eventJson
);
/**
* 处理通讯录用户离职
*/
int
leaveUser
(
JSONObject
eventJson
);
}
smart-campus/src/main/java/yangtz/cs/liu/dingding/service/impl/dingDept/DdDeptServcieImpl.java
0 → 100644
View file @
819d199c
package
yangtz
.
cs
.
liu
.
dingding
.
service
.
impl
.
dingDept
;
import
com.alibaba.fastjson.JSONObject
;
import
com.dingtalk.api.response.OapiV2DepartmentGetResponse
;
import
com.dingtalk.api.response.OapiV2DepartmentListsubResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
yangtz.cs.liu.dingding.domain.dingDept.SysDdDept
;
import
yangtz.cs.liu.dingding.mapper.dingDept.DdDeptMapper
;
import
yangtz.cs.liu.dingding.service.dingDept.IDdDeptService
;
import
yangtz.cs.liu.dingding.utils.DingDeptUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
@Service
public
class
DdDeptServcieImpl
implements
IDdDeptService
{
@Autowired
private
DingDeptUtils
dingDeptUtils
;
@Autowired
private
DdDeptMapper
ddDeptMapper
;
/**
* 获取钉钉全部部门列表
* @return
*/
@Override
public
List
<
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
>
getDeptList
()
{
Long
deptId
=
1L
;
List
<
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
>
deptListAll
=
new
ArrayList
<>();
//一级
List
<
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
>
deptList
=
dingDeptUtils
.
getDeptList
(
deptId
,
""
);
for
(
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
response
:
deptList
)
{
if
(
response
.
getDeptId
()
!=
-
7
){
deptListAll
.
add
(
response
);
//二级
List
<
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
>
deptList1
=
dingDeptUtils
.
getDeptList
(
response
.
getDeptId
(),
""
);
if
(
deptList1
.
size
()
>
0
)
{
for
(
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
response1
:
deptList1
)
{
deptListAll
.
add
(
response1
);
//三级
List
<
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
>
deptList2
=
dingDeptUtils
.
getDeptList
(
response1
.
getDeptId
(),
""
);
if
(
deptList2
.
size
()
>
0
){
for
(
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
response2
:
deptList2
)
{
deptListAll
.
add
(
response2
);
//四级
List
<
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
>
deptList3
=
dingDeptUtils
.
getDeptList
(
response2
.
getDeptId
(),
""
);
if
(
deptList3
.
size
()
>
0
){
deptListAll
.
addAll
(
deptList3
);
for
(
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
response3
:
deptList3
)
{
//五级
List
<
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
>
deptList4
=
dingDeptUtils
.
getDeptList
(
response3
.
getDeptId
(),
""
);
if
(
deptList4
.
size
()
>
0
){
deptListAll
.
addAll
(
deptList4
);
}
}
}
}
}
}
}
}
}
return
deptListAll
;
}
/**
* 下拉钉钉部门列表到系统
* @return
*/
@Override
@Transactional
public
int
addDdDept
()
{
Long
deptId
=
1L
;
//获取部门详情
OapiV2DepartmentGetResponse
.
DeptGetResponse
dept
=
dingDeptUtils
.
getDept
(
deptId
,
""
);
//新增顶级目录
SysDdDept
sysDdDept
=
new
SysDdDept
();
sysDdDept
.
setDeptId
(
100L
);
sysDdDept
.
setParentId
(
0L
);
sysDdDept
.
setAncestors
(
"0"
);
sysDdDept
.
setDeptName
(
dept
.
getName
());
sysDdDept
.
setOrderNum
(
0L
);
sysDdDept
.
setDdDeptId
(
dept
.
getDeptId
());
sysDdDept
.
setDdParentId
(
0L
);
sysDdDept
.
setCreateBy
(
"钉钉管理员"
);
ddDeptMapper
.
insertDdDept
(
sysDdDept
);
//全部部门列表
List
<
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
>
deptListAll
=
new
ArrayList
<>();
//一级
List
<
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
>
deptList
=
dingDeptUtils
.
getDeptList
(
deptId
,
""
);
for
(
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
response
:
deptList
)
{
if
(
response
.
getDeptId
()
!=
-
7
){
//获取部门详情
OapiV2DepartmentGetResponse
.
DeptGetResponse
dept1
=
dingDeptUtils
.
getDept
(
response
.
getDeptId
(),
""
);
//新增一级目录
SysDdDept
sysDdDept1
=
new
SysDdDept
();
sysDdDept1
.
setParentId
(
sysDdDept
.
getDeptId
());
sysDdDept1
.
setAncestors
(
"0,"
+
sysDdDept
.
getDeptId
());
sysDdDept1
.
setDeptName
(
response
.
getName
());
sysDdDept1
.
setOrderNum
(
dept1
.
getOrder
());
sysDdDept1
.
setDdDeptId
(
response
.
getDeptId
());
sysDdDept1
.
setDdParentId
(
response
.
getParentId
());
sysDdDept1
.
setCreateBy
(
"钉钉管理员"
);
ddDeptMapper
.
insertDdDept
(
sysDdDept1
);
deptListAll
.
add
(
response
);
//二级
List
<
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
>
deptList1
=
dingDeptUtils
.
getDeptList
(
response
.
getDeptId
(),
""
);
if
(
deptList1
.
size
()
>
0
)
{
for
(
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
response1
:
deptList1
)
{
//获取部门详情
OapiV2DepartmentGetResponse
.
DeptGetResponse
dept2
=
dingDeptUtils
.
getDept
(
response1
.
getDeptId
(),
""
);
//新增二级目录
SysDdDept
sysDdDept2
=
new
SysDdDept
();
sysDdDept2
.
setParentId
(
sysDdDept1
.
getDeptId
());
sysDdDept2
.
setAncestors
(
sysDdDept1
.
getAncestors
()
+
","
+
sysDdDept1
.
getDeptId
());
sysDdDept2
.
setDeptName
(
response1
.
getName
());
sysDdDept2
.
setOrderNum
(
dept2
.
getOrder
());
sysDdDept2
.
setDdDeptId
(
response1
.
getDeptId
());
sysDdDept2
.
setDdParentId
(
response1
.
getParentId
());
sysDdDept2
.
setCreateBy
(
"钉钉管理员"
);
ddDeptMapper
.
insertDdDept
(
sysDdDept2
);
deptListAll
.
add
(
response1
);
//三级
List
<
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
>
deptList2
=
dingDeptUtils
.
getDeptList
(
response1
.
getDeptId
(),
""
);
if
(
deptList2
.
size
()
>
0
){
for
(
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
response2
:
deptList2
)
{
//获取部门详情
OapiV2DepartmentGetResponse
.
DeptGetResponse
dept3
=
dingDeptUtils
.
getDept
(
response2
.
getDeptId
(),
""
);
//新增三级目录
SysDdDept
sysDdDept3
=
new
SysDdDept
();
sysDdDept3
.
setParentId
(
sysDdDept2
.
getDeptId
());
sysDdDept3
.
setAncestors
(
sysDdDept2
.
getAncestors
()
+
","
+
sysDdDept2
.
getDeptId
());
sysDdDept3
.
setDeptName
(
response2
.
getName
());
sysDdDept3
.
setOrderNum
(
dept3
.
getOrder
());
sysDdDept3
.
setDdDeptId
(
response2
.
getDeptId
());
sysDdDept3
.
setDdParentId
(
response2
.
getParentId
());
sysDdDept3
.
setCreateBy
(
"钉钉管理员"
);
ddDeptMapper
.
insertDdDept
(
sysDdDept3
);
deptListAll
.
add
(
response2
);
//四级
List
<
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
>
deptList3
=
dingDeptUtils
.
getDeptList
(
response2
.
getDeptId
(),
""
);
if
(
deptList3
.
size
()
>
0
){
deptListAll
.
addAll
(
deptList3
);
for
(
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
response3
:
deptList3
)
{
//获取部门详情
OapiV2DepartmentGetResponse
.
DeptGetResponse
dept4
=
dingDeptUtils
.
getDept
(
response3
.
getDeptId
(),
""
);
//新增四级目录
SysDdDept
sysDdDept4
=
new
SysDdDept
();
sysDdDept4
.
setParentId
(
sysDdDept3
.
getDeptId
());
sysDdDept4
.
setAncestors
(
sysDdDept3
.
getAncestors
()
+
","
+
sysDdDept3
.
getDeptId
());
sysDdDept4
.
setDeptName
(
response3
.
getName
());
sysDdDept4
.
setOrderNum
(
dept4
.
getOrder
());
sysDdDept4
.
setDdDeptId
(
response3
.
getDeptId
());
sysDdDept4
.
setDdParentId
(
response3
.
getParentId
());
sysDdDept4
.
setCreateBy
(
"钉钉管理员"
);
ddDeptMapper
.
insertDdDept
(
sysDdDept4
);
//五级
List
<
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
>
deptList4
=
dingDeptUtils
.
getDeptList
(
response3
.
getDeptId
(),
""
);
if
(
deptList4
.
size
()
>
0
){
deptListAll
.
addAll
(
deptList4
);
for
(
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
response4
:
deptList4
)
{
//获取部门详情
OapiV2DepartmentGetResponse
.
DeptGetResponse
dept5
=
dingDeptUtils
.
getDept
(
response4
.
getDeptId
(),
""
);
//新增五级目录
SysDdDept
sysDdDept5
=
new
SysDdDept
();
sysDdDept5
.
setParentId
(
sysDdDept4
.
getDeptId
());
sysDdDept5
.
setAncestors
(
sysDdDept4
.
getAncestors
()
+
","
+
sysDdDept4
.
getDeptId
());
sysDdDept5
.
setDeptName
(
response4
.
getName
());
sysDdDept5
.
setOrderNum
(
dept5
.
getOrder
());
sysDdDept5
.
setDdDeptId
(
response4
.
getDeptId
());
sysDdDept5
.
setDdParentId
(
response4
.
getParentId
());
sysDdDept5
.
setCreateBy
(
"钉钉管理员"
);
ddDeptMapper
.
insertDdDept
(
sysDdDept5
);
}
}
}
}
}
}
}
}
}
}
return
1
;
}
/**
* 同步钉钉部门列表
* @return
*/
@Override
@Transactional
public
String
syncDdDept
()
{
//获取钉钉所有部门列表
List
<
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
>
ddDeptList
=
getDeptList
();
//存放钉钉部门不存在系统库集合
List
<
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
>
ddDeptList1
=
new
ArrayList
<>();
ddDeptList1
.
addAll
(
ddDeptList
);
//获取系统所有部门列表
List
<
SysDdDept
>
deptList
=
ddDeptMapper
.
selectDdDeptList
(
new
SysDdDept
());
//存放钉钉删除了的部门集合
List
<
SysDdDept
>
deptList1
=
new
ArrayList
<>();
deptList1
.
addAll
(
deptList
);
//判断钉钉部门列表是否都在系统部门列表中
for
(
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
ddDept
:
ddDeptList
)
{
for
(
SysDdDept
dept
:
deptList
)
{
if
(
ddDept
.
getDeptId
().
equals
(
dept
.
getDdDeptId
())){
//存在,从集合中去除
ddDeptList1
.
remove
(
ddDept
);
}
}
}
//新增不存在系统库的部门
if
(
ddDeptList1
.
size
()
>
0
){
for
(
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
ddDept
:
ddDeptList1
)
{
//钉钉父部门id
Long
ddParentId
=
ddDept
.
getParentId
();
//查询父部门信息
SysDdDept
ddDept1
=
ddDeptMapper
.
selectDeptByDdDeptId
(
ddParentId
);
//新增
SysDdDept
sysDdDept
=
new
SysDdDept
();
sysDdDept
.
setParentId
(
ddDept1
.
getDeptId
());
sysDdDept
.
setAncestors
(
ddDept1
.
getAncestors
()
+
ddDept1
.
getDeptId
());
sysDdDept
.
setDeptName
(
ddDept
.
getName
());
sysDdDept
.
setOrderNum
(
ddDept
.
getDeptId
());
sysDdDept
.
setDdDeptId
(
ddDept
.
getDeptId
());
sysDdDept
.
setDdParentId
(
ddParentId
);
sysDdDept
.
setCreateBy
(
"钉钉管理员"
);
ddDeptMapper
.
insertDdDept
(
sysDdDept
);
}
}
//判断钉钉中删除的部门是否还存在系统部门中
for
(
SysDdDept
dept
:
deptList
)
{
for
(
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
ddDept
:
ddDeptList
)
{
if
(
dept
.
getDdDeptId
().
equals
(
ddDept
.
getDeptId
())){
deptList1
.
remove
(
dept
);
}
}
}
//删除系统部门中存在的钉钉已删除的部门
if
(
deptList1
.
size
()
>
0
){
for
(
SysDdDept
dept
:
deptList1
)
{
if
(
dept
.
getDeptId
()
!=
100
){
ddDeptMapper
.
deleteDdDeptById
(
dept
.
getDeptId
());
}
}
}
//更新系统部门信息
//获取部门详情
OapiV2DepartmentGetResponse
.
DeptGetResponse
djDept
=
dingDeptUtils
.
getDept
(
1L
,
""
);
//修改顶级目录
SysDdDept
dept
=
new
SysDdDept
();
dept
.
setDdDeptId
(
djDept
.
getDeptId
());
dept
.
setDeptName
(
djDept
.
getName
());
dept
.
setUpdateBy
(
"钉钉管理员"
);
ddDeptMapper
.
updateDdDeptByDdDeptId
(
dept
);
for
(
OapiV2DepartmentListsubResponse
.
DeptBaseResponse
ddDept
:
ddDeptList
)
{
for
(
SysDdDept
sysDdDept
:
deptList
)
{
if
(
ddDept
.
getDeptId
().
equals
(
sysDdDept
.
getDdDeptId
())){
//判断父部门是否发生改变
if
(!(
ddDept
.
getParentId
().
equals
(
sysDdDept
.
getDdParentId
()))){
//钉钉父部门id
Long
ddParentId
=
ddDept
.
getParentId
();
//查询父部门信息
SysDdDept
ddParentDept
=
ddDeptMapper
.
selectDeptByDdDeptId
(
ddParentId
);
sysDdDept
.
setParentId
(
ddParentDept
.
getDeptId
());
sysDdDept
.
setAncestors
(
ddParentDept
.
getAncestors
()
+
","
+
ddParentDept
.
getDeptId
());
sysDdDept
.
setDdParentId
(
ddDept
.
getParentId
());
sysDdDept
.
setUpdateBy
(
"钉钉管理员"
);
ddDeptMapper
.
updateDdDeptByDdDeptId
(
sysDdDept
);
}
//判断部门基本信息是否发生改变
if
(!(
ddDept
.
getName
().
equals
(
sysDdDept
.
getDeptName
()))){
sysDdDept
.
setDeptName
(
ddDept
.
getName
());
sysDdDept
.
setUpdateBy
(
"钉钉管理员"
);
ddDeptMapper
.
updateDdDeptByDdDeptId
(
sysDdDept
);
}
}
}
}
return
"同步成功"
;
}
/**
* 钉钉部门创建
* @param eventJson
* @return
*/
@Override
@Transactional
public
int
ddDeptCreate
(
JSONObject
eventJson
)
{
int
i
=
0
;
String
ddDeptId
=
eventJson
.
getString
(
"DeptId"
);
String
replace
=
ddDeptId
.
replace
(
"["
,
""
);
String
deptIds
=
replace
.
replace
(
"]"
,
""
);
String
[]
split
=
deptIds
.
split
(
","
);
for
(
String
deptId
:
split
)
{
//获取部门详情
OapiV2DepartmentGetResponse
.
DeptGetResponse
dept
=
dingDeptUtils
.
getDept
(
Long
.
valueOf
(
deptId
),
""
);
//获取父部门信息
Long
ddParentId
=
dept
.
getParentId
();
SysDdDept
sysDdDept
=
ddDeptMapper
.
selectDeptByDdDeptId
(
ddParentId
);
//新增部门
SysDdDept
ddDept
=
new
SysDdDept
();
ddDept
.
setParentId
(
sysDdDept
.
getDeptId
());
ddDept
.
setAncestors
(
sysDdDept
.
getAncestors
()
+
","
+
sysDdDept
.
getDeptId
());
ddDept
.
setDeptName
(
dept
.
getName
());
ddDept
.
setOrderNum
(
dept
.
getOrder
());
ddDept
.
setDdDeptId
(
dept
.
getDeptId
());
ddDept
.
setDdParentId
(
dept
.
getParentId
());
ddDept
.
setCreateBy
(
"钉钉管理员"
);
i
+=
ddDeptMapper
.
insertDdDept
(
ddDept
);
}
return
i
;
}
/**
* 钉钉部门修改
* @param eventJson
* @return
*/
@Override
public
int
ddDeptUpdate
(
JSONObject
eventJson
)
{
int
i
=
0
;
String
ddDeptId
=
eventJson
.
getString
(
"DeptId"
);
String
replace
=
ddDeptId
.
replace
(
"["
,
""
);
String
deptIds
=
replace
.
replace
(
"]"
,
""
);
String
[]
split
=
deptIds
.
split
(
","
);
for
(
String
deptId
:
split
)
{
//获取部门详情
OapiV2DepartmentGetResponse
.
DeptGetResponse
dept
=
dingDeptUtils
.
getDept
(
Long
.
valueOf
(
deptId
),
""
);
//获取父部门信息
Long
ddParentId
=
dept
.
getParentId
();
SysDdDept
sysDdDept
=
ddDeptMapper
.
selectDeptByDdDeptId
(
ddParentId
);
//修改部门
SysDdDept
ddDept
=
new
SysDdDept
();
ddDept
.
setParentId
(
sysDdDept
.
getDeptId
());
ddDept
.
setAncestors
(
sysDdDept
.
getAncestors
()
+
","
+
sysDdDept
.
getDeptId
());
ddDept
.
setDeptName
(
dept
.
getName
());
ddDept
.
setOrderNum
(
dept
.
getOrder
());
ddDept
.
setDdDeptId
(
dept
.
getDeptId
());
ddDept
.
setDdParentId
(
dept
.
getParentId
());
ddDept
.
setCreateBy
(
"钉钉管理员"
);
i
+=
ddDeptMapper
.
updateDdDeptByDdDeptId
(
ddDept
);
}
return
i
;
}
/**
* 钉钉部门删除
* @param eventJson
* @return
*/
@Override
public
int
ddDeptDelete
(
JSONObject
eventJson
)
{
int
i
=
0
;
String
ddDeptId
=
eventJson
.
getString
(
"DeptId"
);
String
replace
=
ddDeptId
.
replace
(
"["
,
""
);
String
deptIds
=
replace
.
replace
(
"]"
,
""
);
String
[]
split
=
deptIds
.
split
(
","
);
for
(
String
deptId
:
split
)
{
//删除钉钉部门
i
+=
ddDeptMapper
.
deleteDdDeptByDdDeptId
(
Long
.
valueOf
(
deptId
));
}
return
i
;
}
}
smart-campus/src/main/java/yangtz/cs/liu/dingding/service/impl/dingUser/DdUserServiceImpl.java
0 → 100644
View file @
819d199c
package
yangtz
.
cs
.
liu
.
dingding
.
service
.
impl
.
dingUser
;
import
com.alibaba.fastjson.JSONObject
;
import
com.dingtalk.api.response.OapiUserListidResponse
;
import
com.dingtalk.api.response.OapiV2UserGetResponse
;
import
com.ruoyi.common.utils.DateUtils
;
import
com.ruoyi.common.utils.SecurityUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
yangtz.cs.liu.dingding.domain.dingDept.SysDdDept
;
import
yangtz.cs.liu.dingding.domain.dingGrade.SchoolGradeMentorCopy
;
import
yangtz.cs.liu.dingding.domain.dingUser.SysDdUser
;
import
yangtz.cs.liu.dingding.domain.dingUser.SysDdUserDept
;
import
yangtz.cs.liu.dingding.domain.schoolTeacher.SysDdTeacher
;
import
yangtz.cs.liu.dingding.mapper.dingDept.DdDeptMapper
;
import
yangtz.cs.liu.dingding.mapper.dingUser.DdUserMapper
;
import
yangtz.cs.liu.dingding.mapper.schoolTeacher.DdTeacherMapper
;
import
yangtz.cs.liu.dingding.service.dingUser.IDdUserService
;
import
yangtz.cs.liu.dingding.utils.DingUserUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
@Service
public
class
DdUserServiceImpl
implements
IDdUserService
{
@Autowired
private
DingUserUtils
dingUserUtils
;
@Autowired
private
DdDeptMapper
ddDeptMapper
;
@Autowired
private
DdUserMapper
ddUserMapper
;
@Autowired
private
DdTeacherMapper
ddTeacherMapper
;
/**
* 获取钉钉全部用户id
* @return
*/
@Override
public
List
<
String
>
getDdUserListAll
()
{
//存放钉钉用户id的集合
List
<
String
>
ddUserIds
=
new
ArrayList
<>();
//获取系统所有部门列表
List
<
SysDdDept
>
ddDeptListAll
=
ddDeptMapper
.
selectDdDeptList
(
new
SysDdDept
());
for
(
SysDdDept
ddDept
:
ddDeptListAll
)
{
//循环查找每个部门的用户id列表
OapiUserListidResponse
.
ListUserByDeptResponse
ddUserIdList
=
dingUserUtils
.
getuserIdByDept
(
ddDept
.
getDdDeptId
());
List
<
String
>
useridList
=
ddUserIdList
.
getUseridList
();
if
(
useridList
.
size
()
>
0
)
{
for
(
String
ddUserId
:
useridList
)
{
if
(!
ddUserIds
.
contains
(
ddUserId
)){
ddUserIds
.
add
(
ddUserId
);
}
}
}
}
return
ddUserIds
;
}
/**
* 下拉钉钉用户到系统
* @return
*/
@Override
@Transactional
public
int
addDdUser
()
{
int
i
=
1
;
//查询所有级部
List
<
Map
<
String
,
Object
>>
gradeList
=
ddDeptMapper
.
selectGradeList
();
//新增的用户的集合
//用户表
List
<
SysDdUser
>
userList
=
new
ArrayList
<>();
//教师表
List
<
SysDdTeacher
>
teacherList
=
new
ArrayList
<>();
//获取钉钉全部用户id
List
<
String
>
ddUserIdList
=
getDdUserListAll
();
for
(
String
ddUserId
:
ddUserIdList
)
{
//循环获取钉钉用户详情
OapiV2UserGetResponse
.
UserGetResponse
ddUser
=
dingUserUtils
.
getUser
(
ddUserId
);
//多部门任职信息
List
<
OapiV2UserGetResponse
.
DeptPosition
>
deptPositionList
=
ddUser
.
getDeptPositionList
();
//拿取钉钉用户部门id列表的第一个存在的部门id存到用户表中
//部门列表
List
<
Long
>
deptIdList
=
ddUser
.
getDeptIdList
();
//用户部门列表
List
<
Long
>
ddUserDepts
=
new
ArrayList
<>();
for
(
Long
ddUserDeptId
:
deptIdList
)
{
SysDdDept
dept1
=
ddDeptMapper
.
selectDeptByDdDeptId
(
ddUserDeptId
);
if
(
StringUtils
.
isNotNull
(
dept1
)){
ddUserDepts
.
add
(
dept1
.
getDeptId
());
}
}
//用户表数据
SysDdUser
sysDdUser
=
new
SysDdUser
();
sysDdUser
.
setDdUserDepts
(
ddUserDepts
);
//根据钉钉部门id查询部门信息
for
(
Long
ddDeptId
:
deptIdList
)
{
SysDdDept
dept
=
ddDeptMapper
.
selectDeptByDdDeptId
(
ddDeptId
);
if
(
StringUtils
.
isNotNull
(
dept
)){
sysDdUser
.
setDeptId
(
dept
.
getDeptId
());
break
;
}
}
sysDdUser
.
setLoginName
(
ddUser
.
getName
());
sysDdUser
.
setPassword
(
SecurityUtils
.
encryptPassword
(
"Ez2023@345"
));
sysDdUser
.
setUserName
(
ddUser
.
getName
());
sysDdUser
.
setUserType
(
"00"
);
sysDdUser
.
setUserLoginType
(
"0"
);
sysDdUser
.
setPhonenumber
(
ddUser
.
getMobile
());
sysDdUser
.
setCreateBy
(
"钉钉管理员"
);
sysDdUser
.
setUnionId
(
ddUser
.
getUnionid
());
sysDdUser
.
setDdUserId
(
ddUser
.
getUserid
());
if
(
StringUtils
.
isNotEmpty
(
ddUser
.
getEmail
())){
sysDdUser
.
setEmail
(
ddUser
.
getEmail
());
}
if
(
StringUtils
.
isNotEmpty
(
ddUser
.
getAvatar
())){
sysDdUser
.
setAvatar
(
ddUser
.
getAvatar
());
}
if
(
StringUtils
.
isNotEmpty
(
ddUser
.
getRemark
())){
sysDdUser
.
setRemark
(
ddUser
.
getRemark
());
}
ddUserMapper
.
insertDdUser
(
sysDdUser
);
userList
.
add
(
sysDdUser
);
//新增教师数据
SysDdTeacher
sysDdTeacher
=
new
SysDdTeacher
();
sysDdTeacher
.
setId
(
sysDdUser
.
getUserId
());
sysDdTeacher
.
setTeacherName
(
sysDdUser
.
getUserName
());
sysDdTeacher
.
setTeacherTel
(
sysDdUser
.
getPhonenumber
());
if
(
StringUtils
.
isNotEmpty
(
sysDdUser
.
getAvatar
())){
sysDdTeacher
.
setPicUrl
(
sysDdUser
.
getAvatar
());
}
sysDdTeacher
.
setUnionId
(
sysDdUser
.
getUnionId
());
sysDdTeacher
.
setDdUserId
(
sysDdUser
.
getDdUserId
());
sysDdTeacher
.
setCreateBy
(
"钉钉管理员"
);
sysDdTeacher
.
setCreateTime
(
DateUtils
.
getNowDate
());
ddTeacherMapper
.
addTeacherList
(
sysDdTeacher
);
//判断用户是否为级部成员
for
(
Long
deptId
:
ddUserDepts
)
{
//根据部门id获取部门信息
SysDdDept
sysDdDept
=
ddDeptMapper
.
selectDeptByDeptId
(
deptId
);
//判断是否是年级部成员
if
(
"年级部"
.
equals
(
sysDdDept
.
getDeptName
())){
//是,查看父部门属于那个级部
SysDdDept
parentDept
=
ddDeptMapper
.
selectDeptByDeptId
(
sysDdDept
.
getParentId
());
for
(
Map
<
String
,
Object
>
grade
:
gradeList
)
{
//级部id
Long
gradeId
=
Long
.
parseLong
(
grade
.
get
(
"gradeId"
).
toString
());
//级部值
String
gradeYear
=
grade
.
get
(
"gradeYear"
).
toString
();
//判断父部门名称是否包含级部值
if
(
parentDept
.
getDeptName
().
contains
(
gradeYear
)){
//包含,新增用户到该级部成员
SchoolGradeMentorCopy
schoolGradeMentor
=
new
SchoolGradeMentorCopy
();
//设置职位
if
(
StringUtils
.
isNotNull
(
deptPositionList
)
&&
deptPositionList
.
size
()
>
0
){
for
(
OapiV2UserGetResponse
.
DeptPosition
deptPosition
:
deptPositionList
)
{
if
(
deptPosition
.
getDeptId
().
equals
(
sysDdDept
.
getDdDeptId
())){
schoolGradeMentor
.
setTeacherPost
(
deptPosition
.
getTitle
());
}
}
}
schoolGradeMentor
.
setTeacherId
(
sysDdUser
.
getUserId
());
schoolGradeMentor
.
setGradeId
(
gradeId
);
schoolGradeMentor
.
setCreateBy
(
"钉钉管理员"
);
schoolGradeMentor
.
setCreateTime
(
DateUtils
.
getNowDate
());
schoolGradeMentor
.
setType
(
"1"
);
ddUserMapper
.
insertGradeMentor
(
schoolGradeMentor
);
}
}
}
//判断是否是学科组长成员
if
(
"学科组长"
.
equals
(
sysDdDept
.
getDeptName
())){
//是,查看父部门属于那个级部
SysDdDept
parentDept
=
ddDeptMapper
.
selectDeptByDeptId
(
sysDdDept
.
getParentId
());
for
(
Map
<
String
,
Object
>
grade
:
gradeList
)
{
//级部id
Long
gradeId
=
Long
.
parseLong
(
grade
.
get
(
"gradeId"
).
toString
());
//级部值
String
gradeYear
=
grade
.
get
(
"gradeYear"
).
toString
();
//判断父部门名称是否包含级部值
if
(
parentDept
.
getDeptName
().
contains
(
gradeYear
)){
//包含,新增用户到该级部成员
SchoolGradeMentorCopy
schoolGradeMentor
=
new
SchoolGradeMentorCopy
();
//设置职位
if
(
StringUtils
.
isNotNull
(
deptPositionList
)
&&
deptPositionList
.
size
()
>
0
){
for
(
OapiV2UserGetResponse
.
DeptPosition
deptPosition
:
deptPositionList
)
{
if
(
deptPosition
.
getDeptId
().
equals
(
sysDdDept
.
getDdDeptId
())){
schoolGradeMentor
.
setTeacherPost
(
deptPosition
.
getTitle
());
}
}
}
schoolGradeMentor
.
setTeacherId
(
sysDdUser
.
getUserId
());
schoolGradeMentor
.
setGradeId
(
gradeId
);
schoolGradeMentor
.
setCreateBy
(
"钉钉管理员"
);
schoolGradeMentor
.
setCreateTime
(
DateUtils
.
getNowDate
());
schoolGradeMentor
.
setType
(
"2"
);
ddUserMapper
.
insertGradeMentor
(
schoolGradeMentor
);
}
}
}
}
}
//新增用户和部门关系
for
(
SysDdUser
ddUser
:
userList
)
{
SysDdUserDept
sysDdUserDept
=
new
SysDdUserDept
();
sysDdUserDept
.
setUserId
(
ddUser
.
getUserId
());
for
(
Long
ddUserDept
:
ddUser
.
getDdUserDepts
())
{
sysDdUserDept
.
setDeptId
(
ddUserDept
);
ddUserMapper
.
insertDdUserDept
(
sysDdUserDept
);
}
}
return
i
;
}
/**
* 用户表数据新增到教师表
*/
@Override
public
int
addDdTeacher
()
{
//查询所有用户
List
<
SysDdUser
>
userList
=
ddUserMapper
.
selectDdUserList
(
new
SysDdUser
());
for
(
SysDdUser
ddUser
:
userList
)
{
}
return
1
;
}
/**
* 同步钉钉用户列表
* @return
*/
@Override
@Transactional
public
String
syncDdUser
()
{
//查询所有级部
List
<
Map
<
String
,
Object
>>
gradeList
=
ddDeptMapper
.
selectGradeList
();
//获取钉钉全部用户id
List
<
String
>
ddUserIdList
=
getDdUserListAll
();
//获取钉钉全部用户详情
List
<
OapiV2UserGetResponse
.
UserGetResponse
>
ddUserAll
=
new
ArrayList
<>();
//存放钉钉用户不存在系统库的用户id
List
<
String
>
ddUserIdList1
=
new
ArrayList
<>();
ddUserIdList1
.
addAll
(
ddUserIdList
);
//循环获取所有用户详情
for
(
String
ddUserId
:
ddUserIdList
)
{
OapiV2UserGetResponse
.
UserGetResponse
ddUser
=
dingUserUtils
.
getUser
(
ddUserId
);
ddUserAll
.
add
(
ddUser
);
}
//获取系统全部用户
List
<
SysDdUser
>
userList
=
ddUserMapper
.
selectDdUserList
(
new
SysDdUser
());
//存放钉钉已删除的用户集合
List
<
SysDdUser
>
userList1
=
new
ArrayList
<>();
userList1
.
addAll
(
userList
);
//获取所有部门
List
<
SysDdDept
>
deptList
=
ddDeptMapper
.
selectDdDeptList
(
new
SysDdDept
());
//判断系统用户列表是否存在钉钉用户id
for
(
String
ddUserId
:
ddUserIdList
)
{
for
(
SysDdUser
ddUser
:
userList
)
{
if
(
ddUserId
.
equals
(
ddUser
.
getDdUserId
())){
//存在,从集合中剔除
ddUserIdList1
.
remove
(
ddUserId
);
}
}
}
//新增系统不存在的钉钉用户
if
(
ddUserIdList1
.
size
()
>
0
){
for
(
String
ddUserId
:
ddUserIdList1
)
{
for
(
OapiV2UserGetResponse
.
UserGetResponse
ddUser
:
ddUserAll
)
{
if
(
ddUserId
.
equals
(
ddUser
.
getUserid
())){
//拿取钉钉用户部门id列表的第一个存在的部门id存到用户表中
//部门列表
List
<
Long
>
deptIdList
=
ddUser
.
getDeptIdList
();
//用户部门列表
List
<
Long
>
ddUserDepts
=
new
ArrayList
<>();
for
(
Long
ddUserDeptId
:
deptIdList
)
{
SysDdDept
dept1
=
ddDeptMapper
.
selectDeptByDdDeptId
(
ddUserDeptId
);
if
(
StringUtils
.
isNotNull
(
dept1
)){
ddUserDepts
.
add
(
dept1
.
getDeptId
());
}
}
//根据钉钉部门id查询部门信息
//新增用户到用户表
SysDdUser
sysDdUser
=
new
SysDdUser
();
sysDdUser
.
setDdUserDepts
(
ddUserDepts
);
//根据钉钉部门id查询部门信息
for
(
Long
ddDeptId
:
deptIdList
)
{
SysDdDept
dept
=
ddDeptMapper
.
selectDeptByDdDeptId
(
ddDeptId
);
if
(
StringUtils
.
isNotNull
(
dept
)){
sysDdUser
.
setDeptId
(
dept
.
getDeptId
());
break
;
}
}
sysDdUser
.
setLoginName
(
ddUser
.
getName
());
sysDdUser
.
setPassword
(
SecurityUtils
.
encryptPassword
(
"Ez2023@345"
));
sysDdUser
.
setUserName
(
ddUser
.
getName
());
sysDdUser
.
setUserType
(
"00"
);
sysDdUser
.
setUserLoginType
(
"0"
);
sysDdUser
.
setPhonenumber
(
ddUser
.
getMobile
());
sysDdUser
.
setCreateBy
(
"钉钉管理员"
);
sysDdUser
.
setUnionId
(
ddUser
.
getUnionid
());
sysDdUser
.
setDdUserId
(
ddUser
.
getUserid
());
if
(
StringUtils
.
isNotEmpty
(
ddUser
.
getEmail
())){
sysDdUser
.
setEmail
(
ddUser
.
getEmail
());
}
if
(
StringUtils
.
isNotEmpty
(
ddUser
.
getAvatar
())){
sysDdUser
.
setAvatar
(
ddUser
.
getAvatar
());
}
if
(
StringUtils
.
isNotEmpty
(
ddUser
.
getRemark
())){
sysDdUser
.
setRemark
(
ddUser
.
getRemark
());
}
ddUserMapper
.
insertDdUser
(
sysDdUser
);
//新增用户和部门关系
SysDdUserDept
sysDdUserDept
=
new
SysDdUserDept
();
sysDdUserDept
.
setUserId
(
sysDdUser
.
getUserId
());
for
(
Long
ddUserDept
:
sysDdUser
.
getDdUserDepts
())
{
sysDdUserDept
.
setDeptId
(
ddUserDept
);
ddUserMapper
.
insertDdUserDept
(
sysDdUserDept
);
}
//新增用户到教师表
SysDdTeacher
sysDdTeacher
=
new
SysDdTeacher
();
sysDdTeacher
.
setId
(
sysDdUser
.
getUserId
());
sysDdTeacher
.
setTeacherName
(
sysDdUser
.
getUserName
());
sysDdTeacher
.
setTeacherTel
(
sysDdUser
.
getPhonenumber
());
if
(
StringUtils
.
isNotEmpty
(
sysDdUser
.
getAvatar
())){
sysDdTeacher
.
setPicUrl
(
sysDdUser
.
getAvatar
());
}
sysDdTeacher
.
setUnionId
(
sysDdUser
.
getUnionId
());
sysDdTeacher
.
setDdUserId
(
sysDdUser
.
getDdUserId
());
sysDdTeacher
.
setCreateBy
(
"钉钉管理员"
);
sysDdTeacher
.
setCreateTime
(
DateUtils
.
getNowDate
());
ddTeacherMapper
.
addTeacherList
(
sysDdTeacher
);
//多部门任职信息
List
<
OapiV2UserGetResponse
.
DeptPosition
>
deptPositionList
=
ddUser
.
getDeptPositionList
();
//判断用户是否是级部成员,如果是,新增到级部成员
for
(
Long
deptId
:
ddUserDepts
)
{
//根据部门id获取部门信息
SysDdDept
sysDdDept
=
ddDeptMapper
.
selectDeptByDeptId
(
deptId
);
//判断是否是年级部成员
if
(
"年级部"
.
equals
(
sysDdDept
.
getDeptName
())){
//是,查看父部门属于那个级部
SysDdDept
parentDept
=
ddDeptMapper
.
selectDeptByDeptId
(
sysDdDept
.
getParentId
());
for
(
Map
<
String
,
Object
>
grade
:
gradeList
)
{
//级部id
Long
gradeId
=
Long
.
parseLong
(
grade
.
get
(
"gradeId"
).
toString
());
//级部值
String
gradeYear
=
grade
.
get
(
"gradeYear"
).
toString
();
//判断父部门名称是否包含级部值
if
(
parentDept
.
getDeptName
().
contains
(
gradeYear
)){
//包含,新增用户到该级部成员
SchoolGradeMentorCopy
schoolGradeMentor
=
new
SchoolGradeMentorCopy
();
//设置职位
if
(
StringUtils
.
isNotNull
(
deptPositionList
)
&&
deptPositionList
.
size
()
>
0
){
for
(
OapiV2UserGetResponse
.
DeptPosition
deptPosition
:
deptPositionList
)
{
if
(
deptPosition
.
getDeptId
().
equals
(
sysDdDept
.
getDdDeptId
())){
schoolGradeMentor
.
setTeacherPost
(
deptPosition
.
getTitle
());
}
}
}
schoolGradeMentor
.
setTeacherId
(
sysDdUser
.
getUserId
());
schoolGradeMentor
.
setGradeId
(
gradeId
);
schoolGradeMentor
.
setCreateBy
(
"钉钉管理员"
);
schoolGradeMentor
.
setCreateTime
(
DateUtils
.
getNowDate
());
schoolGradeMentor
.
setType
(
"1"
);
ddUserMapper
.
insertGradeMentor
(
schoolGradeMentor
);
}
}
}
//判断是否是学科组长成员
if
(
"学科组长"
.
equals
(
sysDdDept
.
getDeptName
())){
//是,查看父部门属于那个级部
SysDdDept
parentDept
=
ddDeptMapper
.
selectDeptByDeptId
(
sysDdDept
.
getParentId
());
for
(
Map
<
String
,
Object
>
grade
:
gradeList
)
{
//级部id
Long
gradeId
=
Long
.
parseLong
(
grade
.
get
(
"gradeId"
).
toString
());
//级部值
String
gradeYear
=
grade
.
get
(
"gradeYear"
).
toString
();
//判断父部门名称是否包含级部值
if
(
parentDept
.
getDeptName
().
contains
(
gradeYear
)){
//包含,新增用户到该级部成员
SchoolGradeMentorCopy
schoolGradeMentor
=
new
SchoolGradeMentorCopy
();
//设置职位
if
(
StringUtils
.
isNotNull
(
deptPositionList
)
&&
deptPositionList
.
size
()
>
0
){
for
(
OapiV2UserGetResponse
.
DeptPosition
deptPosition
:
deptPositionList
)
{
if
(
deptPosition
.
getDeptId
().
equals
(
sysDdDept
.
getDdDeptId
())){
schoolGradeMentor
.
setTeacherPost
(
deptPosition
.
getTitle
());
}
}
}
schoolGradeMentor
.
setTeacherId
(
sysDdUser
.
getUserId
());
schoolGradeMentor
.
setGradeId
(
gradeId
);
schoolGradeMentor
.
setCreateBy
(
"钉钉管理员"
);
schoolGradeMentor
.
setCreateTime
(
DateUtils
.
getNowDate
());
schoolGradeMentor
.
setType
(
"2"
);
ddUserMapper
.
insertGradeMentor
(
schoolGradeMentor
);
}
}
}
}
}
}
}
}
//判断钉钉已删除的用户
for
(
SysDdUser
ddUser
:
userList
)
{
for
(
String
ddUserId
:
ddUserIdList
)
{
if
(
ddUser
.
getDdUserId
().
equals
(
ddUserId
)){
//存在从集合中剔除
userList1
.
remove
(
ddUser
);
}
}
}
//删除钉钉中已删除的用户
if
(
userList1
.
size
()
>
0
){
for
(
SysDdUser
ddUser
:
userList1
)
{
//删除用户
ddUserMapper
.
deleteDdUser
(
ddUser
.
getUserId
());
//删除用户和部门关系
ddUserMapper
.
deleteDdUserDept
(
ddUser
.
getUserId
());
//删除教师
ddUserMapper
.
deleteDdTeacher
(
ddUser
.
getUserId
());
//删除级部成员信息
ddUserMapper
.
deleteGradeMentor
(
ddUser
.
getUserId
());
}
}
//更新系统用户信息
for
(
OapiV2UserGetResponse
.
UserGetResponse
ddUser
:
ddUserAll
)
{
for
(
SysDdUser
sysDdUser
:
userList
)
{
if
(
ddUser
.
getUserid
().
equals
(
sysDdUser
.
getDdUserId
())){
//多部门任职信息
List
<
OapiV2UserGetResponse
.
DeptPosition
>
deptPositionList
=
ddUser
.
getDeptPositionList
();
//系统用户部门列表
List
<
Long
>
ddUserDepts
=
ddUserMapper
.
selectDeptIdByUserId
(
sysDdUser
.
getUserId
());
//存放钉钉部门id列表
List
<
Long
>
ddDeptIds
=
new
ArrayList
<>();
for
(
Long
ddUserDept
:
ddUserDepts
)
{
for
(
SysDdDept
dept
:
deptList
)
{
if
(
ddUserDept
.
equals
(
dept
.
getDeptId
())){
ddDeptIds
.
add
(
dept
.
getDdDeptId
());
}
}
}
//钉钉用户部门id列表
List
<
Long
>
deptIdList
=
ddUser
.
getDeptIdList
();
//钉钉用户部门id列表(不包含钉钉已删除的部门)
List
<
Long
>
deptIdList1
=
new
ArrayList
<>();
deptIdList1
.
addAll
(
deptIdList
);
//去除掉钉钉已删除的部门id
for
(
Long
ddUserDeptId
:
deptIdList
)
{
SysDdDept
dept1
=
ddDeptMapper
.
selectDeptByDdDeptId
(
ddUserDeptId
);
if
(
StringUtils
.
isNull
(
dept1
)){
deptIdList1
.
remove
(
ddUserDeptId
);
}
}
//更新的部门id列表
List
<
Long
>
deptIds
=
new
ArrayList
<>();
//判断系统用户和钉钉用户部门是否发生改变
boolean
isEqual
=
ddDeptIds
.
containsAll
(
deptIdList1
)
&&
deptIdList1
.
containsAll
(
ddDeptIds
);
if
(!
isEqual
)
{
//发生改变更新用户信息
for
(
Long
ddUserDeptId
:
deptIdList1
)
{
SysDdDept
dept1
=
ddDeptMapper
.
selectDeptByDdDeptId
(
ddUserDeptId
);
if
(
StringUtils
.
isNotNull
(
dept1
)){
deptIds
.
add
(
dept1
.
getDeptId
());
}
}
//删除原用户与部门关系
ddUserMapper
.
deleteDdUserDept
(
sysDdUser
.
getUserId
());
//删除级部成员信息
ddUserMapper
.
deleteGradeMentor
(
sysDdUser
.
getUserId
());
//新增用户和部门关系
sysDdUser
.
setDeptId
(
deptIds
.
get
(
0
));
SysDdUserDept
sysDdUserDept
=
new
SysDdUserDept
();
sysDdUserDept
.
setUserId
(
sysDdUser
.
getUserId
());
for
(
Long
ddUserDept
:
deptIds
)
{
sysDdUserDept
.
setDeptId
(
ddUserDept
);
ddUserMapper
.
insertDdUserDept
(
sysDdUserDept
);
//根据部门id获取部门信息
SysDdDept
sysDdDept
=
ddDeptMapper
.
selectDeptByDeptId
(
ddUserDept
);
//判断是否是年级部成员
if
(
"年级部"
.
equals
(
sysDdDept
.
getDeptName
())){
//是,查看父部门属于那个级部
SysDdDept
parentDept
=
ddDeptMapper
.
selectDeptByDeptId
(
sysDdDept
.
getParentId
());
for
(
Map
<
String
,
Object
>
grade
:
gradeList
)
{
//级部id
Long
gradeId
=
Long
.
parseLong
(
grade
.
get
(
"gradeId"
).
toString
());
//级部值
String
gradeYear
=
grade
.
get
(
"gradeYear"
).
toString
();
//判断父部门名称是否包含级部值
if
(
parentDept
.
getDeptName
().
contains
(
gradeYear
)){
//包含,新增用户到该级部成员
SchoolGradeMentorCopy
schoolGradeMentor
=
new
SchoolGradeMentorCopy
();
//设置职位
if
(
StringUtils
.
isNotNull
(
deptPositionList
)
&&
deptPositionList
.
size
()
>
0
){
for
(
OapiV2UserGetResponse
.
DeptPosition
deptPosition
:
deptPositionList
)
{
if
(
deptPosition
.
getDeptId
().
equals
(
sysDdDept
.
getDdDeptId
())){
schoolGradeMentor
.
setTeacherPost
(
deptPosition
.
getTitle
());
}
}
}
schoolGradeMentor
.
setTeacherId
(
sysDdUser
.
getUserId
());
schoolGradeMentor
.
setGradeId
(
gradeId
);
schoolGradeMentor
.
setCreateBy
(
"钉钉管理员"
);
schoolGradeMentor
.
setCreateTime
(
DateUtils
.
getNowDate
());
schoolGradeMentor
.
setType
(
"1"
);
ddUserMapper
.
insertGradeMentor
(
schoolGradeMentor
);
}
}
}
//判断是否是学科组长成员
if
(
"学科组长"
.
equals
(
sysDdDept
.
getDeptName
())){
//是,查看父部门属于那个级部
SysDdDept
parentDept
=
ddDeptMapper
.
selectDeptByDeptId
(
sysDdDept
.
getParentId
());
for
(
Map
<
String
,
Object
>
grade
:
gradeList
)
{
//级部id
Long
gradeId
=
Long
.
parseLong
(
grade
.
get
(
"gradeId"
).
toString
());
//级部值
String
gradeYear
=
grade
.
get
(
"gradeYear"
).
toString
();
//判断父部门名称是否包含级部值
if
(
parentDept
.
getDeptName
().
contains
(
gradeYear
)){
//包含,新增用户到该级部成员
SchoolGradeMentorCopy
schoolGradeMentor
=
new
SchoolGradeMentorCopy
();
//设置职位
if
(
StringUtils
.
isNotNull
(
deptPositionList
)
&&
deptPositionList
.
size
()
>
0
){
for
(
OapiV2UserGetResponse
.
DeptPosition
deptPosition
:
deptPositionList
)
{
if
(
deptPosition
.
getDeptId
().
equals
(
sysDdDept
.
getDdDeptId
())){
schoolGradeMentor
.
setTeacherPost
(
deptPosition
.
getTitle
());
}
}
}
schoolGradeMentor
.
setTeacherId
(
sysDdUser
.
getUserId
());
schoolGradeMentor
.
setGradeId
(
gradeId
);
schoolGradeMentor
.
setCreateBy
(
"钉钉管理员"
);
schoolGradeMentor
.
setCreateTime
(
DateUtils
.
getNowDate
());
schoolGradeMentor
.
setType
(
"2"
);
ddUserMapper
.
insertGradeMentor
(
schoolGradeMentor
);
}
}
}
}
sysDdUser
.
setUpdateBy
(
"钉钉管理员"
);
ddUserMapper
.
updateDdUser
(
sysDdUser
);
}
//更新系统用户信息
sysDdUser
.
setUserName
(
ddUser
.
getName
());
sysDdUser
.
setLoginName
(
ddUser
.
getName
());
sysDdUser
.
setPhonenumber
(
ddUser
.
getMobile
());
if
(
StringUtils
.
isNotEmpty
(
ddUser
.
getEmail
())){
sysDdUser
.
setEmail
(
ddUser
.
getEmail
());
}
if
(
StringUtils
.
isNotEmpty
(
ddUser
.
getAvatar
())){
sysDdUser
.
setAvatar
(
ddUser
.
getAvatar
());
}
if
(
StringUtils
.
isNotEmpty
(
ddUser
.
getRemark
())){
sysDdUser
.
setRemark
(
ddUser
.
getRemark
());
}
sysDdUser
.
setUpdateBy
(
"钉钉管理员"
);
ddUserMapper
.
updateDdUser
(
sysDdUser
);
//更新系统教师信息
SysDdTeacher
sysDdTeacher
=
new
SysDdTeacher
();
sysDdTeacher
.
setId
(
sysDdUser
.
getUserId
());
sysDdTeacher
.
setTeacherName
(
sysDdUser
.
getUserName
());
sysDdTeacher
.
setTeacherTel
(
sysDdUser
.
getPhonenumber
());
if
(
StringUtils
.
isNotEmpty
(
sysDdUser
.
getAvatar
())){
sysDdTeacher
.
setPicUrl
(
sysDdUser
.
getAvatar
());
}
sysDdTeacher
.
setUpdateBy
(
"钉钉管理员"
);
sysDdTeacher
.
setUpdateTime
(
DateUtils
.
getNowDate
());
ddTeacherMapper
.
updateDdTeacher
(
sysDdTeacher
);
}
}
}
return
"同步成功"
;
}
/**
* 处理通讯录用户增加
* @param eventJson
* @return
*/
@Override
@Transactional
public
int
addUser
(
JSONObject
eventJson
)
{
int
i
=
0
;
String
ddUserId
=
eventJson
.
getString
(
"UserId"
);
String
replace
=
ddUserId
.
replace
(
"[\""
,
""
);
String
userIds
=
replace
.
replace
(
"\"]"
,
""
);
String
[]
split
=
userIds
.
split
(
","
);
//查询所有级部
List
<
Map
<
String
,
Object
>>
gradeList
=
ddDeptMapper
.
selectGradeList
();
for
(
String
userId
:
split
)
{
//查询钉钉用户详情
OapiV2UserGetResponse
.
UserGetResponse
ddUser
=
dingUserUtils
.
getUser
(
userId
);
//多部门任职信息
List
<
OapiV2UserGetResponse
.
DeptPosition
>
deptPositionList
=
ddUser
.
getDeptPositionList
();
//钉钉用户的钉钉部门id列表
List
<
Long
>
deptIdList
=
ddUser
.
getDeptIdList
();
//用户系统部门id列表
List
<
Long
>
ddUserDepts
=
new
ArrayList
<>();
for
(
Long
ddUserDeptId
:
deptIdList
)
{
SysDdDept
dept1
=
ddDeptMapper
.
selectDeptByDdDeptId
(
ddUserDeptId
);
if
(
StringUtils
.
isNotNull
(
dept1
)){
ddUserDepts
.
add
(
dept1
.
getDeptId
());
}
}
//用户表数据
SysDdUser
sysDdUser
=
new
SysDdUser
();
sysDdUser
.
setDdUserDepts
(
ddUserDepts
);
//根据钉钉部门id查询部门信息
for
(
Long
ddDeptId
:
deptIdList
)
{
SysDdDept
dept
=
ddDeptMapper
.
selectDeptByDdDeptId
(
ddDeptId
);
if
(
StringUtils
.
isNotNull
(
dept
)){
sysDdUser
.
setDeptId
(
dept
.
getDeptId
());
break
;
}
}
sysDdUser
.
setLoginName
(
ddUser
.
getName
());
sysDdUser
.
setPassword
(
SecurityUtils
.
encryptPassword
(
"Ez2023@345"
));
sysDdUser
.
setUserName
(
ddUser
.
getName
());
sysDdUser
.
setUserType
(
"00"
);
sysDdUser
.
setUserLoginType
(
"0"
);
sysDdUser
.
setPhonenumber
(
ddUser
.
getMobile
());
sysDdUser
.
setCreateBy
(
"钉钉管理员"
);
sysDdUser
.
setUnionId
(
ddUser
.
getUnionid
());
sysDdUser
.
setDdUserId
(
ddUser
.
getUserid
());
if
(
StringUtils
.
isNotEmpty
(
ddUser
.
getEmail
())){
sysDdUser
.
setEmail
(
ddUser
.
getEmail
());
}
if
(
StringUtils
.
isNotEmpty
(
ddUser
.
getAvatar
())){
sysDdUser
.
setAvatar
(
ddUser
.
getAvatar
());
}
if
(
StringUtils
.
isNotEmpty
(
ddUser
.
getRemark
())){
sysDdUser
.
setRemark
(
ddUser
.
getRemark
());
}
i
+=
ddUserMapper
.
insertDdUser
(
sysDdUser
);
//新增用户和部门关系
SysDdUserDept
sysDdUserDept
=
new
SysDdUserDept
();
sysDdUserDept
.
setUserId
(
sysDdUser
.
getUserId
());
for
(
Long
ddUserDept
:
sysDdUser
.
getDdUserDepts
())
{
sysDdUserDept
.
setDeptId
(
ddUserDept
);
ddUserMapper
.
insertDdUserDept
(
sysDdUserDept
);
}
//新增教师表信息
SysDdTeacher
sysDdTeacher
=
new
SysDdTeacher
();
sysDdTeacher
.
setId
(
sysDdUser
.
getUserId
());
sysDdTeacher
.
setTeacherName
(
sysDdUser
.
getUserName
());
sysDdTeacher
.
setTeacherTel
(
sysDdUser
.
getPhonenumber
());
if
(
StringUtils
.
isNotEmpty
(
sysDdUser
.
getAvatar
())){
sysDdTeacher
.
setPicUrl
(
sysDdUser
.
getAvatar
());
}
sysDdTeacher
.
setUnionId
(
sysDdUser
.
getUnionId
());
sysDdTeacher
.
setDdUserId
(
sysDdUser
.
getDdUserId
());
sysDdTeacher
.
setCreateBy
(
"钉钉管理员"
);
sysDdTeacher
.
setCreateTime
(
DateUtils
.
getNowDate
());
ddTeacherMapper
.
addTeacherList
(
sysDdTeacher
);
//判断用户是否是级部成员,如果是,新增到级部成员
for
(
Long
deptId
:
ddUserDepts
)
{
//根据部门id获取部门信息
SysDdDept
sysDdDept
=
ddDeptMapper
.
selectDeptByDeptId
(
deptId
);
//判断是否是年级部成员
if
(
"年级部"
.
equals
(
sysDdDept
.
getDeptName
())){
//是,查看父部门属于那个级部
SysDdDept
parentDept
=
ddDeptMapper
.
selectDeptByDeptId
(
sysDdDept
.
getParentId
());
for
(
Map
<
String
,
Object
>
grade
:
gradeList
)
{
//级部id
Long
gradeId
=
Long
.
parseLong
(
grade
.
get
(
"gradeId"
).
toString
());
//级部值
String
gradeYear
=
grade
.
get
(
"gradeYear"
).
toString
();
//判断父部门名称是否包含级部值
if
(
parentDept
.
getDeptName
().
contains
(
gradeYear
)){
//包含,新增用户到该级部成员
SchoolGradeMentorCopy
schoolGradeMentor
=
new
SchoolGradeMentorCopy
();
//设置职位
if
(
StringUtils
.
isNotNull
(
deptPositionList
)
&&
deptPositionList
.
size
()
>
0
){
for
(
OapiV2UserGetResponse
.
DeptPosition
deptPosition
:
deptPositionList
)
{
if
(
deptPosition
.
getDeptId
().
equals
(
sysDdDept
.
getDdDeptId
())){
schoolGradeMentor
.
setTeacherPost
(
deptPosition
.
getTitle
());
}
}
}
schoolGradeMentor
.
setTeacherId
(
sysDdUser
.
getUserId
());
schoolGradeMentor
.
setGradeId
(
gradeId
);
schoolGradeMentor
.
setCreateBy
(
"钉钉管理员"
);
schoolGradeMentor
.
setCreateTime
(
DateUtils
.
getNowDate
());
schoolGradeMentor
.
setType
(
"1"
);
ddUserMapper
.
insertGradeMentor
(
schoolGradeMentor
);
}
}
}
//判断是否是学科组长成员
if
(
"学科组长"
.
equals
(
sysDdDept
.
getDeptName
())){
//是,查看父部门属于那个级部
SysDdDept
parentDept
=
ddDeptMapper
.
selectDeptByDeptId
(
sysDdDept
.
getParentId
());
for
(
Map
<
String
,
Object
>
grade
:
gradeList
)
{
//级部id
Long
gradeId
=
Long
.
parseLong
(
grade
.
get
(
"gradeId"
).
toString
());
//级部值
String
gradeYear
=
grade
.
get
(
"gradeYear"
).
toString
();
//判断父部门名称是否包含级部值
if
(
parentDept
.
getDeptName
().
contains
(
gradeYear
)){
//包含,新增用户到该级部成员
SchoolGradeMentorCopy
schoolGradeMentor
=
new
SchoolGradeMentorCopy
();
//设置职位
if
(
StringUtils
.
isNotNull
(
deptPositionList
)
&&
deptPositionList
.
size
()
>
0
){
for
(
OapiV2UserGetResponse
.
DeptPosition
deptPosition
:
deptPositionList
)
{
if
(
deptPosition
.
getDeptId
().
equals
(
sysDdDept
.
getDdDeptId
())){
schoolGradeMentor
.
setTeacherPost
(
deptPosition
.
getTitle
());
}
}
}
schoolGradeMentor
.
setTeacherId
(
sysDdUser
.
getUserId
());
schoolGradeMentor
.
setGradeId
(
gradeId
);
schoolGradeMentor
.
setCreateBy
(
"钉钉管理员"
);
schoolGradeMentor
.
setCreateTime
(
DateUtils
.
getNowDate
());
schoolGradeMentor
.
setType
(
"2"
);
ddUserMapper
.
insertGradeMentor
(
schoolGradeMentor
);
}
}
}
}
}
return
i
;
}
/**
* 处理通讯录用户修改
* @param eventJson
* @return
*/
@Override
public
int
updateUser
(
JSONObject
eventJson
)
{
int
i
=
0
;
String
ddUserId
=
eventJson
.
getString
(
"UserId"
);
String
replace
=
ddUserId
.
replace
(
"[\""
,
""
);
String
userIds
=
replace
.
replace
(
"\"]"
,
""
);
String
[]
split
=
userIds
.
split
(
","
);
//查询所有级部
List
<
Map
<
String
,
Object
>>
gradeList
=
ddDeptMapper
.
selectGradeList
();
for
(
String
userId
:
split
)
{
//查询钉钉用户详情
OapiV2UserGetResponse
.
UserGetResponse
ddUser
=
dingUserUtils
.
getUser
(
userId
);
//查询系统用户详情
SysDdUser
sysDdUser
=
ddUserMapper
.
selectDdUserByDdUserId
(
userId
);
//钉钉用户的钉钉部门id列表
List
<
Long
>
deptIdList
=
ddUser
.
getDeptIdList
();
//多部门任职信息
List
<
OapiV2UserGetResponse
.
DeptPosition
>
deptPositionList
=
ddUser
.
getDeptPositionList
();
//用户系统部门id列表
List
<
Long
>
ddUserDepts
=
new
ArrayList
<>();
for
(
Long
ddUserDeptId
:
deptIdList
)
{
SysDdDept
dept1
=
ddDeptMapper
.
selectDeptByDdDeptId
(
ddUserDeptId
);
if
(
StringUtils
.
isNotNull
(
dept1
)){
ddUserDepts
.
add
(
dept1
.
getDeptId
());
}
}
//删除原用户与部门关系
ddUserMapper
.
deleteDdUserDept
(
sysDdUser
.
getUserId
());
//删除级部成员信息
ddUserMapper
.
deleteGradeMentor
(
sysDdUser
.
getUserId
());
//新增新用户与部门关系
SysDdUserDept
sysDdUserDept
=
new
SysDdUserDept
();
sysDdUserDept
.
setUserId
(
sysDdUser
.
getUserId
());
for
(
Long
ddUserDept
:
ddUserDepts
)
{
sysDdUserDept
.
setDeptId
(
ddUserDept
);
ddUserMapper
.
insertDdUserDept
(
sysDdUserDept
);
//根据部门id获取部门信息
SysDdDept
sysDdDept
=
ddDeptMapper
.
selectDeptByDeptId
(
ddUserDept
);
//判断是否是年级部成员
if
(
"年级部"
.
equals
(
sysDdDept
.
getDeptName
())){
//是,查看父部门属于那个级部
SysDdDept
parentDept
=
ddDeptMapper
.
selectDeptByDeptId
(
sysDdDept
.
getParentId
());
for
(
Map
<
String
,
Object
>
grade
:
gradeList
)
{
//级部id
Long
gradeId
=
Long
.
parseLong
(
grade
.
get
(
"gradeId"
).
toString
());
//级部值
String
gradeYear
=
grade
.
get
(
"gradeYear"
).
toString
();
//判断父部门名称是否包含级部值
if
(
parentDept
.
getDeptName
().
contains
(
gradeYear
)){
//包含,新增用户到该级部成员
SchoolGradeMentorCopy
schoolGradeMentor
=
new
SchoolGradeMentorCopy
();
//设置职位
if
(
StringUtils
.
isNotNull
(
deptPositionList
)
&&
deptPositionList
.
size
()
>
0
){
for
(
OapiV2UserGetResponse
.
DeptPosition
deptPosition
:
deptPositionList
)
{
if
(
deptPosition
.
getDeptId
().
equals
(
sysDdDept
.
getDdDeptId
())){
schoolGradeMentor
.
setTeacherPost
(
deptPosition
.
getTitle
());
}
}
}
schoolGradeMentor
.
setTeacherId
(
sysDdUser
.
getUserId
());
schoolGradeMentor
.
setGradeId
(
gradeId
);
schoolGradeMentor
.
setCreateBy
(
"钉钉管理员"
);
schoolGradeMentor
.
setCreateTime
(
DateUtils
.
getNowDate
());
schoolGradeMentor
.
setType
(
"1"
);
ddUserMapper
.
insertGradeMentor
(
schoolGradeMentor
);
}
}
}
//判断是否是学科组长成员
if
(
"学科组长"
.
equals
(
sysDdDept
.
getDeptName
())){
//是,查看父部门属于那个级部
SysDdDept
parentDept
=
ddDeptMapper
.
selectDeptByDeptId
(
sysDdDept
.
getParentId
());
for
(
Map
<
String
,
Object
>
grade
:
gradeList
)
{
//级部id
Long
gradeId
=
Long
.
parseLong
(
grade
.
get
(
"gradeId"
).
toString
());
//级部值
String
gradeYear
=
grade
.
get
(
"gradeYear"
).
toString
();
//判断父部门名称是否包含级部值
if
(
parentDept
.
getDeptName
().
contains
(
gradeYear
)){
//包含,新增用户到该级部成员
SchoolGradeMentorCopy
schoolGradeMentor
=
new
SchoolGradeMentorCopy
();
//设置职位
if
(
StringUtils
.
isNotNull
(
deptPositionList
)
&&
deptPositionList
.
size
()
>
0
){
for
(
OapiV2UserGetResponse
.
DeptPosition
deptPosition
:
deptPositionList
)
{
if
(
deptPosition
.
getDeptId
().
equals
(
sysDdDept
.
getDdDeptId
())){
schoolGradeMentor
.
setTeacherPost
(
deptPosition
.
getTitle
());
}
}
}
schoolGradeMentor
.
setTeacherId
(
sysDdUser
.
getUserId
());
schoolGradeMentor
.
setGradeId
(
gradeId
);
schoolGradeMentor
.
setCreateBy
(
"钉钉管理员"
);
schoolGradeMentor
.
setCreateTime
(
DateUtils
.
getNowDate
());
schoolGradeMentor
.
setType
(
"2"
);
ddUserMapper
.
insertGradeMentor
(
schoolGradeMentor
);
}
}
}
}
//更新系统用户信息
sysDdUser
.
setDeptId
(
ddUserDepts
.
get
(
0
));
sysDdUser
.
setUserName
(
ddUser
.
getName
());
sysDdUser
.
setLoginName
(
ddUser
.
getName
());
sysDdUser
.
setPhonenumber
(
ddUser
.
getMobile
());
sysDdUser
.
setUpdateBy
(
"钉钉管理员"
);
if
(
StringUtils
.
isNotEmpty
(
ddUser
.
getEmail
())){
sysDdUser
.
setEmail
(
ddUser
.
getEmail
());
}
if
(
StringUtils
.
isNotEmpty
(
ddUser
.
getAvatar
())){
sysDdUser
.
setAvatar
(
ddUser
.
getAvatar
());
}
if
(
StringUtils
.
isNotEmpty
(
ddUser
.
getRemark
())){
sysDdUser
.
setRemark
(
ddUser
.
getRemark
());
}
i
+=
ddUserMapper
.
updateDdUser
(
sysDdUser
);
//更新系统教师信息
SysDdTeacher
sysDdTeacher
=
new
SysDdTeacher
();
sysDdTeacher
.
setId
(
sysDdUser
.
getUserId
());
sysDdTeacher
.
setTeacherName
(
sysDdUser
.
getUserName
());
sysDdTeacher
.
setTeacherTel
(
sysDdUser
.
getPhonenumber
());
if
(
StringUtils
.
isNotEmpty
(
sysDdUser
.
getAvatar
())){
sysDdTeacher
.
setPicUrl
(
sysDdUser
.
getAvatar
());
}
sysDdTeacher
.
setUpdateBy
(
"钉钉管理员"
);
sysDdTeacher
.
setUpdateTime
(
DateUtils
.
getNowDate
());
ddTeacherMapper
.
updateDdTeacher
(
sysDdTeacher
);
}
return
i
;
}
/**
* 处理通讯录用户离职
* @param eventJson
* @return
*/
@Override
public
int
leaveUser
(
JSONObject
eventJson
)
{
int
i
=
0
;
String
ddUserId
=
eventJson
.
getString
(
"UserId"
);
String
replace
=
ddUserId
.
replace
(
"[\""
,
""
);
String
userIds
=
replace
.
replace
(
"\"]"
,
""
);
String
[]
split
=
userIds
.
split
(
","
);
for
(
String
userId
:
split
)
{
//查询系统用户详情
SysDdUser
sysDdUser
=
ddUserMapper
.
selectDdUserByDdUserId
(
userId
);
//在用户表中删除用户
i
+=
ddUserMapper
.
deleteDdUser
(
sysDdUser
.
getUserId
());
//删除用户和部门关系
i
+=
ddUserMapper
.
deleteDdUserDept
(
sysDdUser
.
getUserId
());
//在教师表中删除用户
i
+=
ddUserMapper
.
deleteDdTeacher
(
sysDdUser
.
getUserId
());
//在级部成员表中删除用户
i
+=
ddUserMapper
.
deleteGradeMentor
(
sysDdUser
.
getUserId
());
}
return
i
;
}
}
smart-campus/src/main/resources/mapper/ddDept/DdDeptMapper.xml
0 → 100644
View file @
819d199c
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"yangtz.cs.liu.dingding.mapper.dingDept.DdDeptMapper"
>
<resultMap
type=
"SysDdDept"
id=
"SysDdDeptResult"
>
<id
property=
"deptId"
column=
"dept_id"
/>
<result
property=
"parentId"
column=
"parent_id"
/>
<result
property=
"ancestors"
column=
"ancestors"
/>
<result
property=
"deptName"
column=
"dept_name"
/>
<result
property=
"orderNum"
column=
"order_num"
/>
<result
property=
"leader"
column=
"leader"
/>
<result
property=
"phone"
column=
"phone"
/>
<result
property=
"email"
column=
"email"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"ddDeptId"
column=
"dd_dept_id"
/>
<result
property=
"ddParentId"
column=
"dd_parent_id"
/>
<result
property=
"delFlag"
column=
"del_flag"
/>
<result
property=
"parentName"
column=
"parent_name"
/>
<result
property=
"createBy"
column=
"create_by"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateBy"
column=
"update_by"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
</resultMap>
<sql
id=
"selectDdDeptVo"
>
select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.dd_dept_id, d.dd_parent_id, d.del_flag, d.create_by, d.create_time
from sys_dd_dept d
</sql>
<select
id=
"selectDdDeptList"
parameterType=
"SysDdDept"
resultMap=
"SysDdDeptResult"
>
<include
refid=
"selectDdDeptVo"
/>
where d.del_flag = '0'
<if
test=
"deptId != null and deptId != 0"
>
AND dept_id = #{deptId}
</if>
<if
test=
"parentId != null and parentId != 0"
>
AND parent_id = #{parentId}
</if>
<if
test=
"deptName != null and deptName != ''"
>
AND dept_name like concat('%', #{deptName}, '%')
</if>
<if
test=
"status != null and status != ''"
>
AND status = #{status}
</if>
order by d.parent_id, d.order_num
</select>
<select
id=
"selectDeptByDdDeptId"
parameterType=
"Long"
resultMap=
"SysDdDeptResult"
>
select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.dd_dept_id, d.dd_parent_id, d.del_flag, d.create_by, d.create_time
from sys_dd_dept d
where d.dd_dept_id = #{ddDeptId}
</select>
<select
id=
"selectDeptByDeptId"
parameterType=
"Long"
resultMap=
"SysDdDeptResult"
>
select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.dd_dept_id, d.dd_parent_id, d.del_flag, d.create_by, d.create_time
from sys_dd_dept d
where d.dept_id = #{deptId}
</select>
<select
id=
"selectGradeList"
resultType=
"Map"
>
select id as gradeId, grade_year as gradeYear from school_grade_copy where del_flag = "0" order by grade_value ASC
</select>
<insert
id=
"insertDdDept"
parameterType=
"SysDdDept"
useGeneratedKeys=
"true"
keyProperty=
"deptId"
>
insert into sys_dd_dept(
<if
test=
"deptId != null and deptId != 0"
>
dept_id,
</if>
<if
test=
"parentId != null "
>
parent_id,
</if>
<if
test=
"deptName != null and deptName != ''"
>
dept_name,
</if>
<if
test=
"ancestors != null and ancestors != ''"
>
ancestors,
</if>
<if
test=
"orderNum != null"
>
order_num,
</if>
<if
test=
"leader != null and leader != ''"
>
leader,
</if>
<if
test=
"phone != null and phone != ''"
>
phone,
</if>
<if
test=
"email != null and email != ''"
>
email,
</if>
<if
test=
"status != null"
>
status,
</if>
<if
test=
"ddDeptId != null"
>
dd_dept_id,
</if>
<if
test=
"ddParentId != null"
>
dd_parent_id,
</if>
<if
test=
"createBy != null and createBy != ''"
>
create_by,
</if>
create_time
)values(
<if
test=
"deptId != null and deptId != 0"
>
#{deptId},
</if>
<if
test=
"parentId != null"
>
#{parentId},
</if>
<if
test=
"deptName != null and deptName != ''"
>
#{deptName},
</if>
<if
test=
"ancestors != null and ancestors != ''"
>
#{ancestors},
</if>
<if
test=
"orderNum != null"
>
#{orderNum},
</if>
<if
test=
"leader != null and leader != ''"
>
#{leader},
</if>
<if
test=
"phone != null and phone != ''"
>
#{phone},
</if>
<if
test=
"email != null and email != ''"
>
#{email},
</if>
<if
test=
"status != null"
>
#{status},
</if>
<if
test=
"ddDeptId != null"
>
#{ddDeptId},
</if>
<if
test=
"ddParentId != null"
>
#{ddParentId},
</if>
<if
test=
"createBy != null and createBy != ''"
>
#{createBy},
</if>
sysdate()
)
</insert>
<update
id=
"updateDdDept"
parameterType=
"SysDdDept"
>
update sys_dd_dept
<set>
<if
test=
"parentId != null and parentId != 0"
>
parent_id = #{parentId},
</if>
<if
test=
"deptName != null and deptName != ''"
>
dept_name = #{deptName},
</if>
<if
test=
"ancestors != null and ancestors != ''"
>
ancestors = #{ancestors},
</if>
<if
test=
"orderNum != null"
>
order_num = #{orderNum},
</if>
<if
test=
"leader != null"
>
leader = #{leader},
</if>
<if
test=
"phone != null"
>
phone = #{phone},
</if>
<if
test=
"email != null"
>
email = #{email},
</if>
<if
test=
"status != null and status != ''"
>
status = #{status},
</if>
<if
test=
"ddDeptId != null "
>
dd_dept_id = #{ddDeptId},
</if>
<if
test=
"ddParentId != null"
>
dd_parent_id = #{ddParentId},
</if>
<if
test=
"updateBy != null and updateBy != ''"
>
update_by = #{updateBy},
</if>
update_time = sysdate()
</set>
where dept_id = #{deptId}
</update>
<update
id=
"updateDdDeptByDdDeptId"
parameterType=
"SysDdDept"
>
update sys_dd_dept
<set>
<if
test=
"parentId != null and parentId != 0"
>
parent_id = #{parentId},
</if>
<if
test=
"deptName != null and deptName != ''"
>
dept_name = #{deptName},
</if>
<if
test=
"ancestors != null and ancestors != ''"
>
ancestors = #{ancestors},
</if>
<if
test=
"orderNum != null"
>
order_num = #{orderNum},
</if>
<if
test=
"leader != null"
>
leader = #{leader},
</if>
<if
test=
"phone != null"
>
phone = #{phone},
</if>
<if
test=
"email != null"
>
email = #{email},
</if>
<if
test=
"status != null and status != ''"
>
status = #{status},
</if>
<if
test=
"ddParentId != null"
>
dd_parent_id = #{ddParentId},
</if>
<if
test=
"updateBy != null and updateBy != ''"
>
update_by = #{updateBy},
</if>
update_time = sysdate()
</set>
where dd_dept_id = #{ddDeptId}
</update>
<delete
id=
"deleteDdDeptById"
parameterType=
"Long"
>
update sys_dd_dept set del_flag = '2' where dept_id = #{deptId} and dept_id != 100
</delete>
<delete
id=
"deleteDdDeptByDdDeptId"
parameterType=
"Long"
>
update sys_dd_dept set del_flag = '2' where dd_dept_id = #{ddDeptId}
</delete>
</mapper>
smart-campus/src/main/resources/mapper/ddTeacher/DdTeacherMapper.xml
0 → 100644
View file @
819d199c
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"yangtz.cs.liu.dingding.mapper.schoolTeacher.DdTeacherMapper"
>
<resultMap
type=
"SysDdTeacher"
id=
"SysDdTeacherResult"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"teacherName"
column=
"teacher_name"
/>
<result
property=
"teacherTel"
column=
"teacher_tel"
/>
<result
property=
"teacherCode"
column=
"teacher_code"
/>
<result
property=
"idCard"
column=
"id_card"
/>
<result
property=
"deviceNum"
column=
"device_num"
/>
<result
property=
"homeAddress"
column=
"home_address"
/>
<result
property=
"nation"
column=
"nation"
/>
<result
property=
"picUrl"
column=
"pic_url"
/>
<result
property=
"birthday"
column=
"birthday"
/>
<result
property=
"education"
column=
"education"
/>
<result
property=
"sex"
column=
"sex"
/>
<result
property=
"createBy"
column=
"create_by"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateBy"
column=
"update_by"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"openId"
column=
"open_id"
/>
<result
property=
"ddUserId"
column=
"dd_user_id"
/>
<result
property=
"unionId"
column=
"union_id"
/>
<result
property=
"delFlag"
column=
"del_flag"
/>
</resultMap>
<insert
id=
"addTeacherList"
parameterType=
"SysDdTeacher"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into sys_dd_teacher
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"id != null"
>
id,
</if>
<if
test=
"teacherName != null"
>
teacher_name,
</if>
<if
test=
"teacherTel != null"
>
teacher_tel,
</if>
<if
test=
"teacherCode != null"
>
teacher_code,
</if>
<if
test=
"idCard != null"
>
id_card,
</if>
<if
test=
"homeAddress != null"
>
home_address,
</if>
<if
test=
"nation != null"
>
nation,
</if>
<if
test=
"picUrl != null"
>
pic_url,
</if>
<if
test=
"birthday != null"
>
birthday,
</if>
<if
test=
"education != null"
>
education,
</if>
<if
test=
"sex != null"
>
sex,
</if>
<if
test=
"createBy != null"
>
create_by,
</if>
<if
test=
"createTime != null"
>
create_time,
</if>
<if
test=
"updateBy != null"
>
update_by,
</if>
<if
test=
"updateTime != null"
>
update_time,
</if>
<if
test=
"openId != null"
>
open_id,
</if>
<if
test=
"ddUserId != null"
>
dd_user_id,
</if>
<if
test=
"unionId != null"
>
union_id,
</if>
<if
test=
"delFlag != null and delFlag != ''"
>
del_flag,
</if>
<if
test=
"deviceNum != null"
>
device_num,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"id != null"
>
#{id},
</if>
<if
test=
"teacherName != null"
>
#{teacherName},
</if>
<if
test=
"teacherTel != null"
>
#{teacherTel},
</if>
<if
test=
"teacherCode != null"
>
#{teacherCode},
</if>
<if
test=
"idCard != null"
>
#{idCard},
</if>
<if
test=
"homeAddress != null"
>
#{homeAddress},
</if>
<if
test=
"nation != null"
>
#{nation},
</if>
<if
test=
"picUrl != null"
>
#{picUrl},
</if>
<if
test=
"birthday != null"
>
#{birthday},
</if>
<if
test=
"education != null"
>
#{education},
</if>
<if
test=
"sex != null"
>
#{sex},
</if>
<if
test=
"createBy != null"
>
#{createBy},
</if>
<if
test=
"createTime != null"
>
#{createTime},
</if>
<if
test=
"updateBy != null"
>
#{updateBy},
</if>
<if
test=
"updateTime != null"
>
#{updateTime},
</if>
<if
test=
"openId != null"
>
#{openId},
</if>
<if
test=
"ddUserId != null"
>
#{ddUserId},
</if>
<if
test=
"unionId != null"
>
#{unionId},
</if>
<if
test=
"delFlag != null and delFlag != ''"
>
#{delFlag},
</if>
<if
test=
"deviceNum != null"
>
#{deviceNum},
</if>
</trim>
</insert>
<update
id=
"updateDdTeacher"
parameterType=
"SysDdTeacher"
>
update sys_dd_teacher
<trim
prefix=
"SET"
suffixOverrides=
","
>
<if
test=
"teacherName != null"
>
teacher_name = #{teacherName},
</if>
<if
test=
"teacherTel != null"
>
teacher_tel = #{teacherTel},
</if>
<if
test=
"teacherCode != null"
>
teacher_code = #{teacherCode},
</if>
<if
test=
"idCard != null"
>
id_card = #{idCard},
</if>
<if
test=
"homeAddress != null"
>
home_address = #{homeAddress},
</if>
<if
test=
"nation != null"
>
nation = #{nation},
</if>
<if
test=
"picUrl != null"
>
pic_url = #{picUrl},
</if>
<if
test=
"birthday != null"
>
birthday = #{birthday},
</if>
<if
test=
"education != null"
>
education = #{education},
</if>
<if
test=
"sex != null"
>
sex = #{sex},
</if>
<if
test=
"createBy != null"
>
create_by = #{createBy},
</if>
<if
test=
"createTime != null"
>
create_time = #{createTime},
</if>
<if
test=
"updateBy != null"
>
update_by = #{updateBy},
</if>
<if
test=
"updateTime != null"
>
update_time = #{updateTime},
</if>
<if
test=
"openId != null"
>
open_id = #{openId}
</if>
<if
test=
"ddUserId != null"
>
dd_user_id = #{ddUserId}
</if>
<if
test=
"unionId != null"
>
union_id = #{unionId}
</if>
</trim>
where id = #{id}
</update>
<!--批量新增教师-->
<insert
id=
"batchInsertTeacher"
parameterType=
"SysDdTeacher"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
<foreach
collection=
"list"
item=
"data"
separator=
";"
>
insert into sys_dd_teacher
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"data.id != null"
>
id,
</if>
<if
test=
"data.teacherName != null"
>
teacher_name,
</if>
<if
test=
"data.teacherTel != null"
>
teacher_tel,
</if>
<if
test=
"data.teacherCode != null"
>
teacher_code,
</if>
<if
test=
"data.idCard != null"
>
id_card,
</if>
<if
test=
"data.homeAddress != null"
>
home_address,
</if>
<if
test=
"data.nation != null"
>
nation,
</if>
<if
test=
"data.picUrl != null"
>
pic_url,
</if>
<if
test=
"data.birthday != null"
>
birthday,
</if>
<if
test=
"data.education != null"
>
education,
</if>
<if
test=
"data.sex != null"
>
sex,
</if>
<if
test=
"data.createBy != null"
>
create_by,
</if>
<if
test=
"data.createTime != null"
>
create_time,
</if>
<if
test=
"data.updateBy != null"
>
update_by,
</if>
<if
test=
"data.updateTime != null"
>
update_time,
</if>
<if
test=
"data.openId != null"
>
open_id,
</if>
<if
test=
"data.ddUserId != null"
>
dd_user_id,
</if>
<if
test=
"data.unionId != null"
>
union_id,
</if>
<if
test=
"data.delFlag != null and data.delFlag != ''"
>
del_flag,
</if>
<if
test=
"data.deviceNum != null"
>
device_num,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"data.id != null"
>
#{data.id},
</if>
<if
test=
"data.teacherName != null"
>
#{data.teacherName},
</if>
<if
test=
"data.teacherTel != null"
>
#{data.teacherTel},
</if>
<if
test=
"data.teacherCode != null"
>
#{data.teacherCode},
</if>
<if
test=
"data.idCard != null"
>
#{data.idCard},
</if>
<if
test=
"data.homeAddress != null"
>
#{data.homeAddress},
</if>
<if
test=
"data.nation != null"
>
#{data.nation},
</if>
<if
test=
"data.picUrl != null"
>
#{data.picUrl},
</if>
<if
test=
"data.birthday != null"
>
#{data.birthday},
</if>
<if
test=
"data.education != null"
>
#{data.education},
</if>
<if
test=
"data.sex != null"
>
#{data.sex},
</if>
<if
test=
"data.createBy != null"
>
#{data.createBy},
</if>
<if
test=
"data.createTime != null"
>
#{data.createTime},
</if>
<if
test=
"data.updateBy != null"
>
#{data.updateBy},
</if>
<if
test=
"data.updateTime != null"
>
#{data.updateTime},
</if>
<if
test=
"data.openId != null"
>
#{data.openId},
</if>
<if
test=
"data.ddUserId != null"
>
#{data.ddUserId},
</if>
<if
test=
"data.unionId != null"
>
#{data.unionId},
</if>
<if
test=
"data.delFlag != null and data.delFlag != ''"
>
#{data.delFlag},
</if>
<if
test=
"data.deviceNum != null"
>
#{data.deviceNum},
</if>
</trim>
</foreach>
</insert>
</mapper>
smart-campus/src/main/resources/mapper/ddUser/DdUserMapper.xml
0 → 100644
View file @
819d199c
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"yangtz.cs.liu.dingding.mapper.dingUser.DdUserMapper"
>
<resultMap
type=
"SysDdUser"
id=
"SysDdUserResult"
>
<id
property=
"userId"
column=
"user_id"
/>
<result
property=
"deptId"
column=
"dept_id"
/>
<result
property=
"userName"
column=
"user_name"
/>
<result
property=
"loginName"
column=
"login_name"
/>
<result
property=
"userLoginType"
column=
"user_login_type"
/>
<result
property=
"email"
column=
"email"
/>
<result
property=
"phonenumber"
column=
"phonenumber"
/>
<result
property=
"sex"
column=
"sex"
/>
<result
property=
"avatar"
column=
"avatar"
/>
<result
property=
"password"
column=
"password"
/>
<result
property=
"salt"
column=
"salt"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"delFlag"
column=
"del_flag"
/>
<result
property=
"loginIp"
column=
"login_ip"
/>
<result
property=
"loginDate"
column=
"login_date"
/>
<result
property=
"pwdUpdateDate"
column=
"pwd_update_date"
/>
<result
property=
"openId"
column=
"open_id"
/>
<result
property=
"unionId"
column=
"union_id"
/>
<result
property=
"ddUserId"
column=
"dd_user_id"
/>
<result
property=
"createBy"
column=
"create_by"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateBy"
column=
"update_by"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"employeeType"
column=
"employee_type"
/>
<result
property=
"studentId"
column=
"student_id"
/>
<result
property=
"sign"
column=
"sign"
/>
</resultMap>
<sql
id=
"selectDdUserVo"
>
select u.user_id, u.dept_id, u.user_name, u.login_name,u.user_type, u.user_login_type,u.email, u.avatar, u.phonenumber, u.password, u.salt,u.sex, u.status, u.del_flag, u.login_ip, u.login_date,u.pwd_update_date, u.create_by, u.create_time, u.remark,u.sign,u.employee_type,u.student_id,
from sys_dd_user u
</sql>
<select
id=
"selectDdUserList"
parameterType=
"SysDdUser"
resultMap=
"SysDdUserResult"
>
select u.user_id, u.dept_id, u.login_name, u.user_name,u.user_type, u.user_login_type, u.email, u.avatar, u.phonenumber, u.sex,u.salt, u.status, u.del_flag, u.login_ip, u.login_date, u.union_id, u.dd_user_id, u.create_by, u.create_time, u.remark from sys_dd_user u
where u.del_flag = '0' and user_login_type = '0'
<if
test=
"userId != null and userId != 0"
>
AND u.user_id = #{userId}
</if>
<if
test=
"userName != null and userName != ''"
>
AND u.user_name like concat('%', #{userName}, '%')
</if>
<if
test=
"status != null and status != ''"
>
AND u.status = #{status}
</if>
<if
test=
"phonenumber != null and phonenumber != ''"
>
AND u.phonenumber like concat('%', #{phonenumber}, '%')
</if>
<if
test=
"params.beginTime != null and params.beginTime != ''"
>
<!-- 开始时间检索 -->
AND date_format(u.create_time,'%y%m%d')
>
= date_format(#{params.beginTime},'%y%m%d')
</if>
<if
test=
"params.endTime != null and params.endTime != ''"
>
<!-- 结束时间检索 -->
AND date_format(u.create_time,'%y%m%d')
<
= date_format(#{params.endTime},'%y%m%d')
</if>
<if
test=
"deptId != null and deptId != 0"
>
AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) ))
</if>
<!-- 数据范围过滤 -->
${params.dataScope}
</select>
<select
id=
"selectDdUserByDdUserId"
parameterType=
"String"
resultMap=
"SysDdUserResult"
>
select u.user_id, u.dept_id, u.login_name, u.user_name,u.user_type, u.user_login_type, u.email, u.avatar, u.phonenumber, u.sex,u.salt, u.status, u.del_flag, u.login_ip, u.login_date, u.union_id, u.dd_user_id, u.create_by, u.create_time, u.remark from sys_dd_user u
where u.del_flag = '0' and user_login_type = '0' and dd_user_id = #{ddUserId}
</select>
<insert
id=
"insertDdUser"
parameterType=
"SysDdUser"
useGeneratedKeys=
"true"
keyProperty=
"userId"
>
insert into sys_dd_user(
<if
test=
"userId != null and userId != 0"
>
user_id,
</if>
<if
test=
"deptId != null and deptId != 0"
>
dept_id,
</if>
<if
test=
"userName != null and userName != ''"
>
user_name,
</if>
<if
test=
"loginName != null and loginName != ''"
>
login_name,
</if>
<if
test=
"userType != null and userType != ''"
>
user_type,
</if>
<if
test=
"userLoginType != null and userLoginType != ''"
>
user_login_type,
</if>
<if
test=
"email != null and email != ''"
>
email,
</if>
<if
test=
"avatar != null and avatar != ''"
>
avatar,
</if>
<if
test=
"phonenumber != null and phonenumber != ''"
>
phonenumber,
</if>
<if
test=
"sex != null and sex != ''"
>
sex,
</if>
<if
test=
"password != null and password != ''"
>
password,
</if>
<if
test=
"salt != null and salt != ''"
>
salt,
</if>
<if
test=
"status != null and status != ''"
>
status,
</if>
<if
test=
"pwdUpdateDate != null"
>
pwd_update_date,
</if>
<if
test=
"unionId != null"
>
union_id,
</if>
<if
test=
"ddUserId != null"
>
dd_user_id,
</if>
<if
test=
"createBy != null and createBy != ''"
>
create_by,
</if>
<if
test=
"remark != null and remark != ''"
>
remark,
</if>
<if
test=
"sign != null and sign != ''"
>
sign,
</if>
<if
test=
"studentId != null and studentId != 0"
>
student_id,
</if>
<if
test=
"employeeType != null and employeeType != ''"
>
employee_type,
</if>
create_time
)values(
<if
test=
"userId != null and userId != ''"
>
#{userId},
</if>
<if
test=
"deptId != null and deptId != ''"
>
#{deptId},
</if>
<if
test=
"userName != null and userName != ''"
>
#{userName},
</if>
<if
test=
"loginName != null and loginName != ''"
>
#{loginName},
</if>
<if
test=
"userType != null and userType != ''"
>
#{userType},
</if>
<if
test=
"userLoginType != null and userLoginType != ''"
>
#{userLoginType},
</if>
<if
test=
"email != null and email != ''"
>
#{email},
</if>
<if
test=
"avatar != null and avatar != ''"
>
#{avatar},
</if>
<if
test=
"phonenumber != null and phonenumber != ''"
>
#{phonenumber},
</if>
<if
test=
"sex != null and sex != ''"
>
#{sex},
</if>
<if
test=
"password != null and password != ''"
>
#{password},
</if>
<if
test=
"salt != null and salt != ''"
>
#{salt},
</if>
<if
test=
"status != null and status != ''"
>
#{status},
</if>
<if
test=
"pwdUpdateDate != null"
>
#{pwdUpdateDate},
</if>
<if
test=
"unionId != null"
>
#{unionId},
</if>
<if
test=
"ddUserId != null"
>
#{ddUserId},
</if>
<if
test=
"createBy != null and createBy != ''"
>
#{createBy},
</if>
<if
test=
"remark != null and remark != ''"
>
#{remark},
</if>
<if
test=
"sign != null and sign != ''"
>
#{sign},
</if>
<if
test=
"studentId != null and studentId != ''"
>
#{studentId},
</if>
<if
test=
"employeeType != null and employeeType != ''"
>
#{employeeType},
</if>
sysdate()
)
</insert>
<update
id=
"updateDdUser"
parameterType=
"SysDdUser"
>
update sys_dd_user
<set>
<if
test=
"deptId != null and deptId != 0"
>
dept_id = #{deptId},
</if>
<if
test=
"userName != null and userName != ''"
>
user_name = #{userName},
</if>
<if
test=
"loginName != null and loginName != ''"
>
login_name = #{loginName},
</if>
<if
test=
"userType != null and userType != ''"
>
user_type = #{userType},
</if>
<if
test=
"email != null "
>
email = #{email},
</if>
<if
test=
"phonenumber != null "
>
phonenumber = #{phonenumber},
</if>
<if
test=
"sex != null and sex != ''"
>
sex = #{sex},
</if>
<if
test=
"avatar != null and avatar != ''"
>
avatar = #{avatar},
</if>
<if
test=
"password != null and password != ''"
>
password = #{password},
</if>
<if
test=
"salt != null and salt != ''"
>
salt = #{salt},
</if>
<if
test=
"status != null and status != ''"
>
status = #{status},
</if>
<if
test=
"loginIp != null and loginIp != ''"
>
login_ip = #{loginIp},
</if>
<if
test=
"loginDate != null"
>
login_date = #{loginDate},
</if>
<if
test=
"pwdUpdateDate != null"
>
pwd_update_date = #{pwdUpdateDate},
</if>
<if
test=
"updateBy != null and updateBy != ''"
>
update_by = #{updateBy},
</if>
<if
test=
"remark != null"
>
remark = #{remark},
</if>
<if
test=
"employeeType != null and employeeType != ''"
>
employee_type = #{employeeType},
</if>
<if
test=
"studentId != null and studentId != 0"
>
student_id = #{studentId},
</if>
<if
test=
"sign != null and sign != ''"
>
sign = #{sign},
</if>
<if
test=
"openId != null and openId != ''"
>
open_id = #{openId},
</if>
<if
test=
"ddUserId != null and ddUserId != ''"
>
dd_user_id = #{ddUserId},
</if>
<if
test=
"unionId != null and unionId != ''"
>
union_id = #{unionId},
</if>
update_time = sysdate()
</set>
where user_id = #{userId}
</update>
<update
id=
"updateUserList"
parameterType=
"SysDdUser"
>
<foreach
collection=
"list"
item=
"data"
separator=
";"
>
update sys_dd_user
<trim
prefix=
"SET"
suffixOverrides=
","
>
<if
test=
"data.userName != null and data.userName != ''"
>
user_name = #{data.userName},
</if>
</trim>
where user_id = #{data.userId}
</foreach>
</update>
<insert
id=
"addUserList"
useGeneratedKeys=
"true"
keyColumn=
"id"
keyProperty=
"id"
>
<foreach
collection=
"list"
item=
"data"
separator=
";"
>
insert into sys_dd_user
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"data.userLoginType != null and data.userLoginType != ''"
>
user_login_type,
</if>
<if
test=
"data.userName != null and data.userName != ''"
>
user_name,
</if>
<if
test=
"data.phonenumber != null and data.phonenumber != ''"
>
phonenumber,
</if>
<if
test=
"data.studentId != null"
>
student_id,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"data.userLoginType != null and data.userLoginType != ''"
>
#{data.userLoginType},
</if>
<if
test=
"data.userName != null and data.userName != ''"
>
#{data.userName},
</if>
<if
test=
"data.phonenumber != null and data.phonenumber != ''"
>
#{data.phonenumber},
</if>
<if
test=
"data.studentId != null"
>
#{data.studentId},
</if>
</trim>
</foreach>
</insert>
<insert
id=
"addDdUserList"
parameterType=
"SysDdUser"
useGeneratedKeys=
"true"
keyProperty=
"userId"
>
insert into sys_dd_user(
<if
test=
"userId != null and userId != 0"
>
user_id,
</if>
<if
test=
"deptId != null and deptId != 0"
>
dept_id,
</if>
<if
test=
"userName != null and userName != ''"
>
user_name,
</if>
<if
test=
"loginName != null and loginName != ''"
>
login_name,
</if>
<if
test=
"userType != null and userType != ''"
>
user_type,
</if>
<if
test=
"userLoginType != null and userLoginType != ''"
>
user_login_type,
</if>
<if
test=
"email != null and email != ''"
>
email,
</if>
<if
test=
"avatar != null and avatar != ''"
>
avatar,
</if>
<if
test=
"phonenumber != null and phonenumber != ''"
>
phonenumber,
</if>
<if
test=
"sex != null and sex != ''"
>
sex,
</if>
<if
test=
"password != null and password != ''"
>
password,
</if>
<if
test=
"salt != null and salt != ''"
>
salt,
</if>
<if
test=
"status != null and status != ''"
>
status,
</if>
<if
test=
"pwdUpdateDate != null"
>
pwd_update_date,
</if>
<if
test=
"createBy != null and createBy != ''"
>
create_by,
</if>
<if
test=
"remark != null and remark != ''"
>
remark,
</if>
<if
test=
"sign != null and sign != ''"
>
sign,
</if>
<if
test=
"studentId != null and studentId != 0"
>
student_id,
</if>
<if
test=
"employeeType != null and employeeType != ''"
>
employee_type,
</if>
create_time
)values(
<if
test=
"userId != null and userId != ''"
>
#{userId},
</if>
<if
test=
"deptId != null and deptId != ''"
>
#{deptId},
</if>
<if
test=
"userName != null and userName != ''"
>
#{userName},
</if>
<if
test=
"loginName != null and loginName != ''"
>
#{loginName},
</if>
<if
test=
"userType != null and userType != ''"
>
#{userType},
</if>
<if
test=
"userLoginType != null and userLoginType != ''"
>
#{userLoginType},
</if>
<if
test=
"email != null and email != ''"
>
#{email},
</if>
<if
test=
"avatar != null and avatar != ''"
>
#{avatar},
</if>
<if
test=
"phonenumber != null and phonenumber != ''"
>
#{phonenumber},
</if>
<if
test=
"sex != null and sex != ''"
>
#{sex},
</if>
<if
test=
"password != null and password != ''"
>
#{password},
</if>
<if
test=
"salt != null and salt != ''"
>
#{salt},
</if>
<if
test=
"status != null and status != ''"
>
#{status},
</if>
<if
test=
"pwdUpdateDate != null"
>
#{pwdUpdateDate},
</if>
<if
test=
"createBy != null and createBy != ''"
>
#{createBy},
</if>
<if
test=
"remark != null and remark != ''"
>
#{remark},
</if>
<if
test=
"sign != null and sign != ''"
>
#{sign},
</if>
<if
test=
"studentId != null and studentId != ''"
>
#{studentId},
</if>
<if
test=
"employeeType != null and employeeType != ''"
>
#{employeeType},
</if>
sysdate()
)
</insert>
<!--批量新增钉钉用户-->
<insert
id=
"batchInsertDdUser"
parameterType=
"SysDdUser"
useGeneratedKeys=
"true"
keyProperty=
"userId"
>
<foreach
collection=
"list"
item=
"data"
separator=
";"
>
insert into sys_dd_user(
<if
test=
"data.userId != null and data.userId != 0"
>
user_id,
</if>
<if
test=
"data.deptId != null and data.deptId != 0"
>
dept_id,
</if>
<if
test=
"data.userName != null and data.userName != ''"
>
user_name,
</if>
<if
test=
"data.loginName != null and data.loginName != ''"
>
login_name,
</if>
<if
test=
"data.userType != null and data.userType != ''"
>
user_type,
</if>
<if
test=
"data.userLoginType != null and data.userLoginType != ''"
>
user_login_type,
</if>
<if
test=
"data.email != null and data.email != ''"
>
email,
</if>
<if
test=
"data.avatar != null and data.avatar != ''"
>
avatar,
</if>
<if
test=
"data.phonenumber != null and data.phonenumber != ''"
>
phonenumber,
</if>
<if
test=
"data.sex != null and data.sex != ''"
>
sex,
</if>
<if
test=
"data.password != null and data.password != ''"
>
password,
</if>
<if
test=
"data.salt != null and data.salt != ''"
>
salt,
</if>
<if
test=
"data.status != null and data.status != ''"
>
status,
</if>
<if
test=
"data.pwdUpdateDate != null"
>
pwd_update_date,
</if>
<if
test=
"data.unionId != null"
>
union_id,
</if>
<if
test=
"data.ddUserId != null"
>
dd_user_id,
</if>
<if
test=
"data.createBy != null and data.createBy != ''"
>
create_by,
</if>
<if
test=
"data.remark != null and data.remark != ''"
>
remark,
</if>
<if
test=
"data.sign != null and data.sign != ''"
>
sign,
</if>
<if
test=
"data.studentId != null and data.studentId != 0"
>
student_id,
</if>
<if
test=
"data.employeeType != null and data.employeeType != ''"
>
employee_type,
</if>
create_time
)values(
<if
test=
"data.userId != null and data.userId != ''"
>
#{data.userId},
</if>
<if
test=
"data.deptId != null and data.deptId != ''"
>
#{data.deptId},
</if>
<if
test=
"data.userName != null and data.userName != ''"
>
#{data.userName},
</if>
<if
test=
"data.loginName != null and data.loginName != ''"
>
#{data.loginName},
</if>
<if
test=
"data.userType != null and data.userType != ''"
>
#{data.userType},
</if>
<if
test=
"data.userLoginType != null and data.userLoginType != ''"
>
#{data.userLoginType},
</if>
<if
test=
"data.email != null and data.email != ''"
>
#{data.email},
</if>
<if
test=
"data.avatar != null and data.avatar != ''"
>
#{data.avatar},
</if>
<if
test=
"data.phonenumber != null and data.phonenumber != ''"
>
#{data.phonenumber},
</if>
<if
test=
"data.sex != null and data.sex != ''"
>
#{data.sex},
</if>
<if
test=
"data.password != null and data.password != ''"
>
#{data.password},
</if>
<if
test=
"data.salt != null and data.salt != ''"
>
#{data.salt},
</if>
<if
test=
"data.status != null and data.status != ''"
>
#{data.status},
</if>
<if
test=
"data.pwdUpdateDate != null"
>
#{data.pwdUpdateDate},
</if>
<if
test=
"data.unionId != null"
>
#{data.unionId},
</if>
<if
test=
"data.ddUserId != null"
>
#{data.ddUserId},
</if>
<if
test=
"data.createBy != null and data.createBy != ''"
>
#{data.createBy},
</if>
<if
test=
"data.remark != null and data.remark != ''"
>
#{data.remark},
</if>
<if
test=
"data.sign != null and data.sign != ''"
>
#{data.sign},
</if>
<if
test=
"data.studentId != null and data.studentId != ''"
>
#{data.studentId},
</if>
<if
test=
"data.employeeType != null and data.employeeType != ''"
>
#{data.employeeType},
</if>
sysdate()
)
</foreach>
</insert>
<insert
id=
"insertDdUserDept"
parameterType=
"SysDdUserDept"
>
insert into sys_dd_user_dept(user_id, dept_id) values (#{userId},#{deptId})
</insert>
<update
id=
"deleteDdUser"
parameterType=
"Long"
>
update sys_dd_user set del_flag = "2" where user_id = #{userId}
</update>
<delete
id=
"deleteDdUserDept"
>
delete from sys_dd_user_dept where user_id = #{userId}
</delete>
<update
id=
"deleteDdTeacher"
parameterType=
"Long"
>
update sys_dd_teacher set del_flag = "2" where id = #{userId}
</update>
<select
id=
"selectDeptIdByUserId"
parameterType=
"Long"
resultType=
"Long"
>
select dept_id from sys_dd_user_dept where user_id = #{userId}
</select>
<!--新增级部成员-->
<insert
id=
"insertGradeMentor"
parameterType=
"SchoolGradeMentorCopy"
>
insert into school_grade_mentor_copy
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"teacherId != null"
>
teacher_id,
</if>
<if
test=
"gradeId != null"
>
grade_id,
</if>
<if
test=
"createBy != null and createBy != ''"
>
create_by,
</if>
<if
test=
"createTime != null"
>
create_time,
</if>
<if
test=
"type != null and type != ''"
>
type,
</if>
<if
test=
"teacherPost != null and teacherPost != ''"
>
teacher_post,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"teacherId != null"
>
#{teacherId},
</if>
<if
test=
"gradeId != null"
>
#{gradeId},
</if>
<if
test=
"createBy != null and createBy != ''"
>
#{createBy},
</if>
<if
test=
"createTime != null"
>
#{createTime},
</if>
<if
test=
"type != null and type != ''"
>
#{type},
</if>
<if
test=
"teacherPost != null and teacherPost != ''"
>
#{teacherPost},
</if>
</trim>
</insert>
<!--删除级部成员-->
<update
id=
"deleteGradeMentor"
parameterType=
"Long"
>
update school_grade_mentor_copy set del_flag = "1" where teacher_id = #{userId}
</update>
</mapper>
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