增加多维表格双向同步

增加多维表格字段映射管理
测试暂存
于相涌/mail
YXY 2 years ago
parent 6b7f6e951e
commit 1abe35e35c

@ -26,4 +26,13 @@ public enum TableDetailRelationTypeEnum {
public String getInfo() {
return info;
}
public static String getByCode(String code){
for (TableDetailRelationTypeEnum value : TableDetailRelationTypeEnum.values()) {
if (value.getCode().equals(code)){
return value.getCode();
}
}
return null;
}
}

@ -42,7 +42,7 @@ public class RequestVo {
private String approveName;
/**
* MultidimensionalTableSingleOperate
* MultidimensionalTableOperate
*/
private GetAppTableRecordResp respBody;
private JSONObject record;

@ -12,6 +12,7 @@ import com.ruoyi.flyingbook.service.ILarkCompanyRelationService;
import com.ruoyi.flyingbook.service.ILarkTableRelationService;
import com.ruoyi.flyingbook.strategy.operate.MultidimensionalTableDoubleOperate;
import com.ruoyi.flyingbook.strategy.operate.MultidimensionalTableMaintenanceRowOperate;
import com.ruoyi.flyingbook.strategy.operate.MultidimensionalTableOperate;
import com.ruoyi.flyingbook.strategy.operate.MultidimensionalTableSingleOperate;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@ -33,9 +34,9 @@ import java.util.stream.Collectors;
public class LarkOperateTableFactory {
@Resource
protected ILarkTableRelationService iLarkTableRelationService;
@Resource
@Autowired
private MultidimensionalTableSingleOperate singleOperate;
@Resource
@Autowired
private MultidimensionalTableDoubleOperate doubleOperate;
@Resource
private MultidimensionalTableMaintenanceRowOperate maintenanceRowOperate;
@ -79,6 +80,7 @@ public class LarkOperateTableFactory {
if (event == null) {
throw new RuntimeException("当前事件为空");
}
request.setEvent(event);
LarkCompanyRelation relation = larkCompanyRelationService.getByAppIdAndType(event.getAppId(), AppType.MULTIDIMENSIONAL_TABLE.getCode());
if (relation == null) {
String errorMessage = String.format("获取app值为空 appId:{} appType:{}", event.getAppId(), AppType.MULTIDIMENSIONAL_TABLE.getCode());

@ -4,7 +4,6 @@ import com.ruoyi.common.enums.TableDetailRelationTypeEnum;
import com.ruoyi.flyingbook.LarkHelper.LarkTableFieldHelper;
import com.ruoyi.flyingbook.LarkHelper.LarkTableHelper;
import com.ruoyi.flyingbook.domain.*;
import com.ruoyi.flyingbook.domain.lark.LarkTableRequest;
import com.ruoyi.flyingbook.service.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -21,7 +20,7 @@ import java.util.*;
*/
@Slf4j
@Component("MultidimensionalTableDoubleOperate")
public class MultidimensionalTableDoubleOperate extends MultidimensionalTableSingleOperate {
public class MultidimensionalTableDoubleOperate extends MultidimensionalTableOperate {
@Autowired
protected LarkTableHelper larkTokenHelper;

@ -165,17 +165,13 @@ public class MultidimensionalTableMaintenanceRowOperate extends LarkAbstract {
query.setTableRowId(recordId);
List<LarkTableRowRelation> larkTableRowRelations = iLarkTableRowRelationService.selectLarkTableRowRelationList(query);
if(CollectionUtils.isNotEmpty(larkTableRowRelations)){
LarkTableRowRelation rowRelation = buildRelation(larkTableRowRelations.get(0),fields);
LarkTableRowRelation rowRelation = buildRelation(larkTableRowRelations.get(0),fields,recordId);
request.setEventOperateType(EventOperateType.UPDATE);
rowRelation.setUpdateBy("System");
rowRelation.setUpdateTime(new Date());
rowRelation.setFlag(FlagStatus.OK.getCode());
iLarkTableRowRelationService.updateLarkTableRowRelation(rowRelation);
}else {
LarkTableRowRelation rowRelation = buildRelation(null,fields);
rowRelation.setCreateTime(new Date());
rowRelation.setCreateBy("System");
rowRelation.setFlag(FlagStatus.OK.getCode());
LarkTableRowRelation rowRelation = buildRelation(null,fields,recordId);
request.setEventOperateType(EventOperateType.CREATE);
iLarkTableRowRelationService.insertLarkTableRowRelation(rowRelation);
}
@ -185,25 +181,49 @@ public class MultidimensionalTableMaintenanceRowOperate extends LarkAbstract {
request.setOperateInfo(rowRelation.toString());
}
private LarkTableRowRelation buildRelation(LarkTableRowRelation rowRelation,Map<String, Object> tableValueMap){
private LarkTableRowRelation buildRelation(LarkTableRowRelation rowRelation,Map<String, Object> tableValueMap,String recordId){
if (rowRelation == null){
rowRelation = new LarkTableRowRelation();
}
Class<? extends LarkTableRowRelation> aClass = rowRelation.getClass();
for (Field field : aClass.getDeclaredFields()) {
try {
field.setAccessible(Boolean.TRUE);
Object o = tableValueMap.get(field.getName());
if (o != null){
field.set(rowRelation, o);
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
rowRelation.setFlag(FlagStatus.OK.getCode());
if (rowRelation.getId() != null){
rowRelation.setUpdateBy("System");
rowRelation.setUpdateTime(new Date());
}else {
rowRelation.setCreateTime(new Date());
rowRelation.setCreateBy("System");
rowRelation.setTableRowId(recordId);
rowRelation.setTableRelationId(getTableRelationId(tableValueMap));
String type = getTextFromObject(tableValueMap, "类型");
type = TableDetailRelationTypeEnum.getByCode(type);
rowRelation.setType(type != null ? type : TableDetailRelationTypeEnum.COL.getCode());
String subType = getTextFromObject(tableValueMap, "二级类型");
subType = TableDetailRelationTypeEnum.getByCode(subType);
rowRelation.setType(subType != null ? subType : TableDetailRelationTypeEnum.COL.getCode());
}
rowRelation.setFromId(getTextFromObject(tableValueMap,"主表列"));
rowRelation.setToId(getTextFromObject(tableValueMap,"副表列"));
rowRelation.setRemark(getTextFromObject(tableValueMap,"备注"));
return rowRelation;
}
private Long getTableRelationId(Map<String, Object> tableValueMap){
LarkTableRelation query = new LarkTableRelation();
String fromTableId = getTextFromObject(tableValueMap,"主表");
String toTableId = getTextFromObject(tableValueMap,"副表");
query.setFromTableId(fromTableId);
query.setToTableId(toTableId);
List<LarkTableRelation> larkTableRelations = iLarkTableRelationService.selectLarkTableRelationList(query);
if (CollectionUtils.isEmpty(larkTableRelations)){
throw new RuntimeException("无对应的主副表对应关系");
}
return larkTableRelations.get(0).getId();
}
private String getTextFromObject(Map<String, Object> tableValueMap,String paramName){
return "";
}
@Override
protected void endHandle(RequestVo request) {
Event event = request.getEvent();

@ -0,0 +1,232 @@
package com.ruoyi.flyingbook.strategy.operate;
import com.alibaba.fastjson.JSONObject;
import com.lark.oapi.service.bitable.v1.model.AppTableField;
import com.lark.oapi.service.bitable.v1.model.CreateAppTableRecordRespBody;
import com.lark.oapi.service.bitable.v1.model.GetAppTableRecordResp;
import com.ruoyi.common.constant.RedisConstants;
import com.ruoyi.common.enums.*;
import com.ruoyi.flyingbook.LarkHelper.LarkTableFieldHelper;
import com.ruoyi.flyingbook.LarkHelper.LarkTableHelper;
import com.ruoyi.flyingbook.domain.*;
import com.ruoyi.flyingbook.domain.lark.LarkTableFieldRequest;
import com.ruoyi.flyingbook.domain.lark.LarkTableRequest;
import com.ruoyi.flyingbook.service.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.*;
/**
* _
*
* @author yuxiangyong
* @create 2023-03-13 20:47
*/
@Slf4j
public class MultidimensionalTableOperate extends LarkAbstract {
@Autowired
protected LarkTableHelper larkTokenHelper;
@Autowired
protected LarkTableFieldHelper larkTableFieldHelper;
@Autowired
protected ILarkCompanyRelationService larkCompanyRelationService;
@Autowired
protected IEventService iEventService;
@Autowired
protected RedisTemplate redisTemplate;
@Autowired
protected ILarkTableRelationService iLarkTableRelationService;
@Autowired
protected ILarkTableRowRelationService iLarkTableRowRelationService;
@Autowired
protected IEventService eventService;
@Autowired
protected IEventLogService eventLogService;
/**
*
*/
protected static final String CREATE_OPERATE = "CREATE_OPERATE";
/**
*
*/
protected static final String UPDATE_OPERATE = "UPDATE_OPERATE";
/**
*
*/
protected static final String DELETE_OPERATE = "DELETE_OPERATE";
protected void fillTableRelation(RequestVo request) {
//主表与副表的列对应关系
List<Long> tableRelationIdList = new ArrayList<>();
Map<String, Long> tableRelationMap = new HashMap<>();
for (LarkTableRelation larkTableRelation : request.getLarkTableRelations()) {
String to = String.format("%s_%s", larkTableRelation.getToAppToken(), larkTableRelation.getToTableId());
tableRelationMap.put(to, larkTableRelation.getId());
tableRelationIdList.add(larkTableRelation.getId());
}
request.setTableRelationMap(tableRelationMap);
//主表与副表的行对应关系
List<LarkTableRowRelation> larkTableRowRelations = iLarkTableRowRelationService.queryListByTableRelationIdList(tableRelationIdList);
Map<Long, Map<String, String>> tableRowRelationMap = new HashMap<>();
Map<Long, Map<String, String>> tableColRelationMap = new HashMap<>();
for (LarkTableRowRelation larkTableRowRelation : larkTableRowRelations) {
if (TableDetailRelationTypeEnum.ROW.getCode().equals(larkTableRowRelation.getType())) {
Map<String, String> map = tableRowRelationMap.getOrDefault(larkTableRowRelation.getTableRelationId(),new HashMap<>());
map.put(larkTableRowRelation.getFromId(), larkTableRowRelation.getToId());
tableRowRelationMap.put(larkTableRowRelation.getTableRelationId(), map);
} else if (TableDetailRelationTypeEnum.COL.getCode().equals(larkTableRowRelation.getType())) {
Map<String, String> map = tableColRelationMap.getOrDefault(larkTableRowRelation.getTableRelationId(),new HashMap<>());
map.put(larkTableRowRelation.getFromId(), larkTableRowRelation.getToId());
tableColRelationMap.put(larkTableRowRelation.getTableRelationId(), map);
}
}
if (tableColRelationMap.isEmpty()) {
String errorMessage = String.format("tableId:{} 列关系未配置", request.getEvent().getTableId());
log.error("iLarkTableRowRelationService.queryListByTableRelationIdList:{}", errorMessage);
throw new RuntimeException(errorMessage);
}
request.setTableRowRelationMap(tableRowRelationMap);
request.setTableColRelationMap(tableColRelationMap);
}
@Override
protected void preOperate(RequestVo request) {
//关联关系表填充
this.fillTableRelation(request);
}
@Override
protected void businessProcessing(RequestVo request) {
Event event = request.getEvent();
String cacheKey = String.format("%s_%s_%s_%s", RedisConstants.MULTIPLE_TABLE_RECORD, event.getAppToken(), event.getTableId(), event.getRecordId());
redisTemplate.delete(cacheKey);
LarkTableRequest detailRequest = new LarkTableRequest(request.getAppId(), request.getAppSecret(), event.getAppToken(), event.getTableId(), event.getRecordId());
detailRequest.setSafeCode(Arrays.asList(1254043));
GetAppTableRecordResp recordDetail = larkTokenHelper.getTableRecordDetail(detailRequest);
request.setRespBody(recordDetail);
for (Map.Entry<String, Long> entry : request.getTableRelationMap().entrySet()) {
String[] arr = entry.getKey().split("_");
request.setToAppToken(arr[0]);
request.setToTableId(arr[1]);
request.setTableRelationId(entry.getValue());
send(request);
}
}
@Override
protected Map<String, Object> getBody(RequestVo request) {
Map<String, Object> result = new HashMap<>();
GetAppTableRecordResp respBody = request.getRespBody();
int responseCode = respBody.getCode();
Map<String, String> rowMap = request.getTableRowRelationMap().getOrDefault(request.getTableRelationId(), new HashMap<>());
if (1254043 == responseCode) {
request.setOperateType(DELETE_OPERATE);
} else if (0 == responseCode) {
result = parseMap(request);
if (rowMap.containsKey(request.getEvent().getRecordId())) {
request.setOperateType(UPDATE_OPERATE);
} else {
request.setOperateType(CREATE_OPERATE);
}
}
if (result.isEmpty() && DELETE_OPERATE != request.getOperateType()){
throw new RuntimeException("post 的body为空请检查映射参数");
}
return result;
}
/**
*
*/
private Map<String, Object> parseMap(RequestVo request) {
Map<String, Object> result = new HashMap<>();
LarkTableFieldRequest tableFieldRequest = new LarkTableFieldRequest(request.getAppId(),request.getAppSecret(),request.getEvent().getAppToken(),request.getEvent().getTableId());
Map<String, AppTableField> tableFieldDetail = larkTableFieldHelper.getTableFieldDetail(tableFieldRequest);
Map<String, String> colRelation = request.getTableColRelationMap().getOrDefault(request.getTableRelationId(), new HashMap<>());
Map<String, Object> midMap = request.getRespBody().getData().getRecord().getFields();
for (Map.Entry<String, Object> entry : midMap.entrySet()) {
String key = String.valueOf(entry.getKey());
if (!colRelation.containsKey(key)) {
continue;
}
AppTableField appTableField = tableFieldDetail.get(key);
if (appTableField != null && TableFieldTypeEnum.FORMULA.getCode().equals(appTableField.getType())){
List<JSONObject> objects = (List<JSONObject>) entry.getValue();
Map<String,Object> map = (Map)objects.get(0);
result.put(colRelation.get(key), map.get("text"));
}else {
result.put(colRelation.get(key), entry.getValue());
}
}
return result;
}
private void send(RequestVo request) {
Map<String, Object> body = getBody(request);
String type = request.getOperateType();
Event event = request.getEvent();
request.setOperateInfo(String.valueOf(body));
Map<String, String> rowRelationMap = request.getTableRowRelationMap().getOrDefault(request.getTableRelationId(), new HashMap<>());
if (CREATE_OPERATE.equals(type)) {
LarkTableRequest add = new LarkTableRequest(request.getAppId(), request.getAppSecret(), request.getToAppToken(), request.getToTableId(), body);
CreateAppTableRecordRespBody addResp = larkTokenHelper.addTableRecord(add);
if (addResp != null) {
String recordId = addResp.getRecord().getRecordId();
LarkTableRowRelation rowRelation = new LarkTableRowRelation(request.getCompanyRelationId(), event.getRecordId(), recordId, TableDetailRelationTypeEnum.ROW.getCode(), TableDetailRelationTypeEnum.ROW.getCode());
iLarkTableRowRelationService.insertLarkTableRowRelation(rowRelation);
}
request.setEventOperateType(EventOperateType.CREATE);
} else if (UPDATE_OPERATE.equals(type)) {
request.setEventOperateType(EventOperateType.UPDATE);
LarkTableRequest update = new LarkTableRequest(request.getAppId(), request.getAppSecret(), request.getToAppToken(), request.getToTableId(),rowRelationMap.get(request.getEvent().getRecordId()), body);
larkTokenHelper.updateTableRecord(update);
} else if (DELETE_OPERATE.equals(type)) {
request.setEventOperateType(EventOperateType.DELETE);
LarkTableRequest delete = new LarkTableRequest(request.getAppId(), request.getAppSecret(), request.getToAppToken(), request.getToTableId(),rowRelationMap.get(request.getEvent().getRecordId()));
larkTokenHelper.deleteTableRecord(delete);
}
}
@Override
protected void endHandle(RequestVo request) {
Event event = request.getEvent();
EventLog eventLog = null;
if (StringUtils.isBlank(request.getErrorMessage())) {
eventService.updateStatus(event.getId(), EventOperateStatus.SUCCESS.getCode(), event.getNumbers());
eventLog = new EventLog(event.getId(), request.getEventOperateType().getCode(), request.getMessage());
} else {
eventService.updateStatus(event.getId(), EventOperateStatus.PENDING.getCode(), event.getNumbers() + 1);
if (request.getEventOperateType() != null) {
eventLog = new EventLog(event.getId(), request.getEventOperateType().getCode(), request.getMessage(), request.getErrorCode(), request.getErrorMessage());
}
}
if (eventLog != null) {
eventLog.setOperateInfo(request.getOperateType());
eventLogService.insertEventLog(eventLog);
}
}
@Override
protected String buildResult(RequestVo request) {
return null;
}
@Override
protected String getName() {
return this.getClass().getSimpleName();
}
}

@ -1,22 +1,11 @@
package com.ruoyi.flyingbook.strategy.operate;
import com.alibaba.fastjson.JSONObject;
import com.lark.oapi.service.bitable.v1.model.AppTableField;
import com.lark.oapi.service.bitable.v1.model.CreateAppTableRecordRespBody;
import com.lark.oapi.service.bitable.v1.model.GetAppTableRecordResp;
import com.ruoyi.common.constant.RedisConstants;
import com.ruoyi.common.enums.*;
import com.ruoyi.flyingbook.LarkHelper.LarkTableFieldHelper;
import com.ruoyi.flyingbook.LarkHelper.LarkTableHelper;
import com.ruoyi.common.enums.TableDetailRelationTypeEnum;
import com.ruoyi.flyingbook.domain.*;
import com.ruoyi.flyingbook.domain.lark.LarkTableFieldRequest;
import com.ruoyi.flyingbook.domain.lark.LarkTableRequest;
import com.ruoyi.flyingbook.service.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import java.util.*;
@ -28,41 +17,14 @@ import java.util.*;
* @create 2023-03-13 20:47
*/
@Slf4j
@Component("MultidimensionalTableOperate")
public class MultidimensionalTableSingleOperate extends LarkAbstract {
@Service("MultidimensionalTableSingleOperate")
public class MultidimensionalTableSingleOperate extends MultidimensionalTableOperate {
@Autowired
protected LarkTableHelper larkTokenHelper;
@Autowired
protected LarkTableFieldHelper larkTableFieldHelper;
@Autowired
protected ILarkCompanyRelationService larkCompanyRelationService;
@Autowired
protected IEventService iEventService;
@Autowired
protected RedisTemplate redisTemplate;
@Autowired
protected ILarkTableRelationService iLarkTableRelationService;
@Autowired
protected ILarkTableRowRelationService iLarkTableRowRelationService;
@Autowired
protected IEventService eventService;
@Autowired
protected IEventLogService eventLogService;
/**
*
*/
protected static final String CREATE_OPERATE = "CREATE_OPERATE";
/**
*
*/
protected static final String UPDATE_OPERATE = "UPDATE_OPERATE";
/**
*
*/
protected static final String DELETE_OPERATE = "DELETE_OPERATE";
@Override
protected void fillTableRelation(RequestVo request) {
//主表与副表的列对应关系
List<Long> tableRelationIdList = new ArrayList<>();
@ -97,133 +59,6 @@ public class MultidimensionalTableSingleOperate extends LarkAbstract {
request.setTableColRelationMap(tableColRelationMap);
}
@Override
protected void preOperate(RequestVo request) {
//关联关系表填充
this.fillTableRelation(request);
}
@Override
protected void businessProcessing(RequestVo request) {
Event event = request.getEvent();
String cacheKey = String.format("%s_%s_%s_%s", RedisConstants.MULTIPLE_TABLE_RECORD, event.getAppToken(), event.getTableId(), event.getRecordId());
redisTemplate.delete(cacheKey);
LarkTableRequest detailRequest = new LarkTableRequest(request.getAppId(), request.getAppSecret(), event.getAppToken(), event.getTableId(), event.getRecordId());
detailRequest.setSafeCode(Arrays.asList(1254043));
GetAppTableRecordResp recordDetail = larkTokenHelper.getTableRecordDetail(detailRequest);
request.setRespBody(recordDetail);
for (Map.Entry<String, Long> entry : request.getTableRelationMap().entrySet()) {
String[] arr = entry.getKey().split("_");
request.setToAppToken(arr[0]);
request.setToTableId(arr[1]);
request.setTableRelationId(entry.getValue());
send(request);
}
}
@Override
protected Map<String, Object> getBody(RequestVo request) {
Map<String, Object> result = new HashMap<>();
GetAppTableRecordResp respBody = request.getRespBody();
int responseCode = respBody.getCode();
Map<String, String> rowMap = request.getTableRowRelationMap().getOrDefault(request.getTableRelationId(), new HashMap<>());
if (1254043 == responseCode) {
request.setOperateType(DELETE_OPERATE);
} else if (0 == responseCode) {
result = parseMap(request);
if (rowMap.containsKey(request.getEvent().getRecordId())) {
request.setOperateType(UPDATE_OPERATE);
} else {
request.setOperateType(CREATE_OPERATE);
}
}
if (result.isEmpty() && DELETE_OPERATE != request.getOperateType()){
throw new RuntimeException("post 的body为空请检查映射参数");
}
return result;
}
/**
*
*/
private Map<String, Object> parseMap(RequestVo request) {
Map<String, Object> result = new HashMap<>();
LarkTableFieldRequest tableFieldRequest = new LarkTableFieldRequest(request.getAppId(),request.getAppSecret(),request.getEvent().getAppToken(),request.getEvent().getTableId());
Map<String, AppTableField> tableFieldDetail = larkTableFieldHelper.getTableFieldDetail(tableFieldRequest);
Map<String, String> colRelation = request.getTableColRelationMap().getOrDefault(request.getTableRelationId(), new HashMap<>());
Map<String, Object> midMap = request.getRespBody().getData().getRecord().getFields();
for (Map.Entry<String, Object> entry : midMap.entrySet()) {
String key = String.valueOf(entry.getKey());
if (!colRelation.containsKey(key)) {
continue;
}
AppTableField appTableField = tableFieldDetail.get(key);
if (appTableField != null && TableFieldTypeEnum.FORMULA.getCode().equals(appTableField.getType())){
List<JSONObject> objects = (List<JSONObject>) entry.getValue();
Map<String,Object> map = (Map)objects.get(0);
result.put(colRelation.get(key), map.get("text"));
}else {
result.put(colRelation.get(key), entry.getValue());
}
}
return result;
}
private void send(RequestVo request) {
Map<String, Object> body = getBody(request);
String type = request.getOperateType();
Event event = request.getEvent();
request.setOperateInfo(String.valueOf(body));
Map<String, String> rowRelationMap = request.getTableRowRelationMap().getOrDefault(request.getTableRelationId(), new HashMap<>());
if (CREATE_OPERATE.equals(type)) {
LarkTableRequest add = new LarkTableRequest(request.getAppId(), request.getAppSecret(), request.getToAppToken(), request.getToTableId(), body);
CreateAppTableRecordRespBody addResp = larkTokenHelper.addTableRecord(add);
if (addResp != null) {
String recordId = addResp.getRecord().getRecordId();
LarkTableRowRelation rowRelation = new LarkTableRowRelation(request.getCompanyRelationId(), event.getRecordId(), recordId, TableDetailRelationTypeEnum.ROW.getCode(), TableDetailRelationTypeEnum.ROW.getCode());
iLarkTableRowRelationService.insertLarkTableRowRelation(rowRelation);
}
request.setEventOperateType(EventOperateType.CREATE);
} else if (UPDATE_OPERATE.equals(type)) {
request.setEventOperateType(EventOperateType.UPDATE);
LarkTableRequest update = new LarkTableRequest(request.getAppId(), request.getAppSecret(), request.getToAppToken(), request.getToTableId(),rowRelationMap.get(request.getEvent().getRecordId()), body);
larkTokenHelper.updateTableRecord(update);
} else if (DELETE_OPERATE.equals(type)) {
request.setEventOperateType(EventOperateType.DELETE);
LarkTableRequest delete = new LarkTableRequest(request.getAppId(), request.getAppSecret(), request.getToAppToken(), request.getToTableId(),rowRelationMap.get(request.getEvent().getRecordId()));
larkTokenHelper.deleteTableRecord(delete);
}
}
@Override
protected void endHandle(RequestVo request) {
Event event = request.getEvent();
EventLog eventLog = null;
if (StringUtils.isBlank(request.getErrorMessage())) {
eventService.updateStatus(event.getId(), EventOperateStatus.SUCCESS.getCode(), event.getNumbers());
eventLog = new EventLog(event.getId(), request.getEventOperateType().getCode(), request.getMessage());
} else {
eventService.updateStatus(event.getId(), EventOperateStatus.PENDING.getCode(), event.getNumbers() + 1);
if (request.getEventOperateType() != null) {
eventLog = new EventLog(event.getId(), request.getEventOperateType().getCode(), request.getMessage(), request.getErrorCode(), request.getErrorMessage());
}
}
if (eventLog != null) {
eventLog.setOperateInfo(request.getOperateType());
eventLogService.insertEventLog(eventLog);
}
}
@Override
protected String buildResult(RequestVo request) {
return null;
}
@Override
protected String getName() {

Loading…
Cancel
Save