增加监听器
This commit is contained in:
parent
6a940a0bb0
commit
0d723be4ba
|
@ -81,6 +81,12 @@
|
||||||
<version>4.3.1</version>
|
<version>4.3.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.snow</groupId>
|
||||||
|
<artifactId>snow-dingtalk</artifactId>
|
||||||
|
<version>4.3.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
package com.snow.common.enums;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author qimingjin
|
||||||
|
* @Title:
|
||||||
|
* @Description:
|
||||||
|
* @date 2020/9/18 10:18
|
||||||
|
*/
|
||||||
|
public enum DingTalkListenerType {
|
||||||
|
DEPARTMENT_CREATE(1, "部门创建"),
|
||||||
|
DEPARTMENT_UPDATE(2, "部门更新"),
|
||||||
|
DEPARTMENT_DELETED(3, "部门删除");
|
||||||
|
|
||||||
|
private final Integer code;
|
||||||
|
private final String info;
|
||||||
|
|
||||||
|
DingTalkListenerType(Integer code, String info)
|
||||||
|
{
|
||||||
|
this.code = code;
|
||||||
|
this.info = info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getCode()
|
||||||
|
{
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getInfo()
|
||||||
|
{
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,6 +7,7 @@ import com.dingtalk.api.request.OapiGettokenRequest;
|
||||||
import com.dingtalk.api.response.OapiGettokenResponse;
|
import com.dingtalk.api.response.OapiGettokenResponse;
|
||||||
import com.snow.common.constant.Constants;
|
import com.snow.common.constant.Constants;
|
||||||
import com.snow.common.enums.BusinessType;
|
import com.snow.common.enums.BusinessType;
|
||||||
|
import com.snow.common.json.JSON;
|
||||||
import com.snow.common.utils.StringUtils;
|
import com.snow.common.utils.StringUtils;
|
||||||
import com.snow.system.domain.SysOperLog;
|
import com.snow.system.domain.SysOperLog;
|
||||||
import com.snow.system.service.ISysConfigService;
|
import com.snow.system.service.ISysConfigService;
|
||||||
|
@ -47,15 +48,16 @@ public class BaseService {
|
||||||
try {
|
try {
|
||||||
OapiGettokenResponse response = client.execute(request);
|
OapiGettokenResponse response = client.execute(request);
|
||||||
if(response.getErrcode()==0){
|
if(response.getErrcode()==0){
|
||||||
timedCache.put( TOKEN,response.getAccessToken());
|
timedCache.put(TOKEN,response.getAccessToken());
|
||||||
|
syncDingTalkErrorOperLog(BaseConstantUrl.GET_TOKEN_URL,response.getMessage(),"getDingTalkToken()", com.alibaba.fastjson.JSON.toJSONString(request));
|
||||||
return response.getAccessToken();
|
return response.getAccessToken();
|
||||||
}else {
|
}else {
|
||||||
//记录获取token失败日志
|
//记录获取token失败日志
|
||||||
syncDingTalkErrorOperLog(BaseConstantUrl.GET_TOKEN_URL,response.getErrmsg(),"getDingTalkToken()");
|
syncDingTalkErrorOperLog(BaseConstantUrl.GET_TOKEN_URL,response.getErrmsg(),"getDingTalkToken()", com.alibaba.fastjson.JSON.toJSONString(request));
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
} catch (ApiException e) {
|
} catch (ApiException e) {
|
||||||
syncDingTalkErrorOperLog(BaseConstantUrl.GET_TOKEN_URL,e.getMessage(),"getDingTalkToken()");
|
syncDingTalkErrorOperLog(BaseConstantUrl.GET_TOKEN_URL,e.getMessage(),"getDingTalkToken()",com.alibaba.fastjson.JSON.toJSONString(request));
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
@ -71,7 +73,7 @@ public class BaseService {
|
||||||
* @param errorMessage
|
* @param errorMessage
|
||||||
* @param method
|
* @param method
|
||||||
*/
|
*/
|
||||||
public void syncDingTalkErrorOperLog(String url,String errorMessage,String method){
|
public void syncDingTalkErrorOperLog(String url,String errorMessage,String method,String operParam){
|
||||||
SysOperLog sysOperLog=new SysOperLog();
|
SysOperLog sysOperLog=new SysOperLog();
|
||||||
sysOperLog.setOperTime(new Date());
|
sysOperLog.setOperTime(new Date());
|
||||||
sysOperLog.setErrorMsg(errorMessage);
|
sysOperLog.setErrorMsg(errorMessage);
|
||||||
|
@ -79,7 +81,30 @@ public class BaseService {
|
||||||
sysOperLog.setOperName("系统自动记录");
|
sysOperLog.setOperName("系统自动记录");
|
||||||
sysOperLog.setOperUrl(url);
|
sysOperLog.setOperUrl(url);
|
||||||
sysOperLog.setMethod(method);
|
sysOperLog.setMethod(method);
|
||||||
|
sysOperLog.setOperParam(operParam);
|
||||||
sysOperLog.setTitle("系统调用钉钉异常");
|
sysOperLog.setTitle("系统调用钉钉异常");
|
||||||
|
sysOperLog.setStatus(1);
|
||||||
|
iSysOperLogService.insertOperlog(sysOperLog);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 成功
|
||||||
|
* @param url
|
||||||
|
* @param successMessage
|
||||||
|
* @param method
|
||||||
|
* @param operParam
|
||||||
|
*/
|
||||||
|
public void syncDingTalkSuccessOperLog(String url,String successMessage,String method,String operParam){
|
||||||
|
SysOperLog sysOperLog=new SysOperLog();
|
||||||
|
sysOperLog.setOperTime(new Date());
|
||||||
|
sysOperLog.setBusinessType(BusinessType.SYNCHRONIZATION.ordinal());
|
||||||
|
sysOperLog.setJsonResult(successMessage);
|
||||||
|
sysOperLog.setOperName("系统自动记录");
|
||||||
|
sysOperLog.setOperUrl(url);
|
||||||
|
sysOperLog.setMethod(method);
|
||||||
|
sysOperLog.setOperParam(operParam);
|
||||||
|
sysOperLog.setTitle("调用钉钉成功");
|
||||||
|
sysOperLog.setStatus(0);
|
||||||
iSysOperLogService.insertOperlog(sysOperLog);
|
iSysOperLogService.insertOperlog(sysOperLog);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,32 +1,40 @@
|
||||||
package com.snow.dingtalk;
|
package com.snow.dingtalk.listener;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.snow.common.enums.DingTalkListenerType;
|
||||||
import com.snow.dingtalk.model.DepartmentDTO;
|
import com.snow.dingtalk.model.DepartmentDTO;
|
||||||
import com.snow.dingtalk.service.DepartmentService;
|
import com.snow.dingtalk.service.DepartmentService;
|
||||||
import com.snow.system.domain.SysDept;
|
import com.snow.system.domain.SysDept;
|
||||||
import com.snow.system.event.SyncEvent;
|
import com.snow.system.event.SyncEvent;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.ApplicationListener;
|
import org.springframework.context.ApplicationListener;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author qimingjin
|
* @author qimingjin
|
||||||
* @Title:
|
* @Title: 同步事件监听器
|
||||||
* @Description:
|
* @Description:
|
||||||
* @date 2020/9/17 17:40
|
* @date 2020/9/17 17:40
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
|
@Slf4j
|
||||||
public class SyncEventListener implements ApplicationListener<SyncEvent> {
|
public class SyncEventListener implements ApplicationListener<SyncEvent> {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private DepartmentService departmentService;
|
private DepartmentService departmentService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onApplicationEvent(SyncEvent syncEvent) {
|
public void onApplicationEvent(SyncEvent syncEvent) {
|
||||||
|
log.info("进入监听器.....");
|
||||||
Integer eventType = syncEvent.getEventType();
|
Integer eventType = syncEvent.getEventType();
|
||||||
SysDept sysDept=(SysDept)syncEvent.getT();
|
if(eventType==DingTalkListenerType.DEPARTMENT_CREATE.getCode()){
|
||||||
DepartmentDTO departmentDTO = DepartmentDTO.builder().name(sysDept.getDeptName()).order(sysDept.getOrderNum())
|
SysDept sysDept=(SysDept)syncEvent.getT();
|
||||||
.parentid(sysDept.getParentName()).build();
|
DepartmentDTO departmentDTO = DepartmentDTO.builder().name(sysDept.getDeptName()).order(sysDept.getOrderNum())
|
||||||
departmentService.createDepartment(departmentDTO);
|
.parentid(sysDept.getParentName()).build();
|
||||||
System.out.println("监听到的事件类型:"+eventType+JSON.toJSONString(syncEvent));
|
departmentService.createDepartment(departmentDTO);
|
||||||
|
}
|
||||||
|
|
||||||
|
log.info("监听到的事件类型:"+eventType+JSON.toJSONString(syncEvent));
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
package com.snow.dingtalk.service;
|
package com.snow.dingtalk.service;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.dingtalk.api.DefaultDingTalkClient;
|
import com.dingtalk.api.DefaultDingTalkClient;
|
||||||
import com.dingtalk.api.DingTalkClient;
|
import com.dingtalk.api.DingTalkClient;
|
||||||
import com.dingtalk.api.request.OapiDepartmentCreateRequest;
|
import com.dingtalk.api.request.OapiDepartmentCreateRequest;
|
||||||
|
@ -37,12 +38,13 @@ public class DepartmentService extends BaseService {
|
||||||
try {
|
try {
|
||||||
OapiDepartmentCreateResponse response = client.execute(request,getDingTalkToken());
|
OapiDepartmentCreateResponse response = client.execute(request,getDingTalkToken());
|
||||||
if(response.getErrcode()==0){
|
if(response.getErrcode()==0){
|
||||||
|
syncDingTalkErrorOperLog(BaseConstantUrl.DEPARTMENT_CREATE,response.getMessage(),"createDepartment",JSON.toJSONString(request));
|
||||||
return response.getId();
|
return response.getId();
|
||||||
}else {
|
}else {
|
||||||
syncDingTalkErrorOperLog(BaseConstantUrl.DEPARTMENT_CREATE,response.getErrmsg(),"createDepartment");
|
syncDingTalkErrorOperLog(BaseConstantUrl.DEPARTMENT_CREATE,response.getErrmsg(),"createDepartment",JSON.toJSONString(request));
|
||||||
}
|
}
|
||||||
} catch (ApiException e) {
|
} catch (ApiException e) {
|
||||||
syncDingTalkErrorOperLog(BaseConstantUrl.DEPARTMENT_CREATE,e.getMessage(),"createDepartment");
|
syncDingTalkErrorOperLog(BaseConstantUrl.DEPARTMENT_CREATE,e.getMessage(),"createDepartment",JSON.toJSONString(request));
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
Loading…
Reference in New Issue