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