--添加操作生命周期接口

This commit is contained in:
2025-11-03 14:22:28 +08:00
parent ebde33b225
commit 82fbaa4f25
4 changed files with 118 additions and 7 deletions

View File

@ -23,13 +23,18 @@ public interface DataOperationListener<T> {
/**
* @Description: TODO(这里用一句话描述这个方法的作用)
* @Description: 有异常时
* @param e
* @return void 返回类型
*/
void onError(DataOperationContent<T> content);
default void onError(DataOperationContent<T> content) {}
void onFinally(DataOperationContent<T> content);
/**
* @Description: 所有操作结束
* @param content
* @return void 返回类型
*/
default void onFinally(DataOperationContent<T> content) {}
}

View File

@ -4,26 +4,41 @@ import java.util.List;
import javax.validation.Valid;
import com.pictc.datalog.DataOperationListener;
import com.xjrsoft.module.datalog.vo.DataChangeLogVo;
public interface DatalogService {
public <T>T insert(T entity);
public <T>T insert(T entity,DataOperationListener<T> listener);
public <T>List<T> insertBatch(List<T> entity);
public <T>List<T> insertBatch(List<T> entity,DataOperationListener<T> listener);
public <T>boolean updateById(T entity);
public <T>boolean updateById(T entity,DataOperationListener<T> listener);
public <T>T delete(T entity);
public <T>T deleteById(Class<T> klazz,long id);
public <T>T deleteById(Class<T> klazz,long id,DataOperationListener<T> listener);
public <T>List<DataChangeLogVo> findLogsByEntityId(Class<T> klazz,long id);
public <T>boolean deleteByIds(Class<T> class1, @Valid List<Long> ids);
public <T>boolean deleteByIds(Class<T> class1, @Valid List<Long> ids,DataOperationListener<T> listener);
public <T>boolean enable(Class<T> class1, @Valid List<Long> ids);
public <T>boolean enable(Class<T> class1, @Valid List<Long> ids,DataOperationListener<T> listener);
public <T>boolean disable(Class<T> class1, @Valid List<Long> ids);
public <T>boolean disable(Class<T> class1, @Valid List<Long> ids,DataOperationListener<T> listener);
}

View File

@ -7,12 +7,13 @@ import javax.validation.Valid;
import org.apache.seata.spring.annotation.GlobalTransactional;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.google.api.client.util.Lists;
import com.pictc.datalog.DataOperationListener;
import com.pictc.utils.DataLogTools;
import com.xjrsoft.module.datalog.service.DatalogService;
import com.xjrsoft.module.datalog.vo.DataChangeLogVo;
@Service
public class DatalogServiceImpl implements DatalogService{
@ -23,6 +24,13 @@ public class DatalogServiceImpl implements DatalogService{
return DataLogTools.insert(entity);
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class) // Seata全局事务注解
@Override
public <T> T insert(T entity, DataOperationListener<T> listener) {
return DataLogTools.insert(entity,listener);
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class) // Seata全局事务注解
@Override
@ -34,6 +42,17 @@ public class DatalogServiceImpl implements DatalogService{
return res;
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class) // Seata全局事务注解
@Override
public <T> List<T> insertBatch(List<T> entitys, DataOperationListener<T> listener) {
List<T> res = Lists.newArrayList();
for (T entity : entitys) {
res.add(DataLogTools.insert(entity,listener));
}
return res;
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class) // Seata全局事务注解
@Override
@ -41,6 +60,14 @@ public class DatalogServiceImpl implements DatalogService{
DataLogTools.update(entity);
return true;
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class) // Seata全局事务注解
@Override
public <T> boolean updateById(T entity, DataOperationListener<T> listener) {
DataLogTools.update(entity,listener);
return true;
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class) // Seata全局事务注解
@ -48,6 +75,7 @@ public class DatalogServiceImpl implements DatalogService{
public <T> T delete(T entity) {
return DataLogTools.delete(entity);
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class) // Seata全局事务注解
@ -56,6 +84,14 @@ public class DatalogServiceImpl implements DatalogService{
return DataLogTools.deleteById(klazz, id);
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class) // Seata全局事务注解
@Override
public <T> T deleteById(Class<T> klazz, long id, DataOperationListener<T> listener) {
return DataLogTools.deleteById(klazz,id,listener);
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class) // Seata全局事务注解
@Override
@ -63,6 +99,13 @@ public class DatalogServiceImpl implements DatalogService{
return DataLogTools.deleteByIds(klazz, ids);
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class) // Seata全局事务注解
@Override
public <T> boolean deleteByIds(Class<T> klazz, @Valid List<Long> ids, DataOperationListener<T> listener) {
return DataLogTools.deleteByIds(klazz,ids,listener);
}
@Transactional(readOnly = true)
@GlobalTransactional(rollbackFor = Exception.class) // Seata全局事务注解
@Override
@ -70,12 +113,20 @@ public class DatalogServiceImpl implements DatalogService{
return DataLogTools.findLogsByEntityId(klazz, dataId);
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class) // Seata全局事务注解
@Override
public <T> boolean enable(Class<T> klazz, @Valid List<Long> ids) {
return DataLogTools.enable(klazz, ids);
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class) // Seata全局事务注解
@Override
public <T> boolean enable(Class<T> klazz, @Valid List<Long> ids, DataOperationListener<T> listener) {
return DataLogTools.enable(klazz,ids,listener);
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class) // Seata全局事务注解
@ -84,7 +135,12 @@ public class DatalogServiceImpl implements DatalogService{
return DataLogTools.disable(klazz, ids);
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class) // Seata全局事务注解
@Override
public <T> boolean disable(Class<T> klazz, @Valid List<Long> ids, DataOperationListener<T> listener) {
return DataLogTools.disable(klazz,ids,listener);
}