--添加操作生命周期接口
This commit is contained in:
@ -6,6 +6,8 @@ import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.pictc.datalog.DataOperationContent;
|
||||
import com.pictc.datalog.DataOperationListener;
|
||||
import com.xjrsoft.common.constant.GlobalConstant;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
||||
import com.xjrsoft.common.page.ConventPage;
|
||||
@ -29,8 +31,9 @@ import com.xjrsoft.module.dev.dto.Testfrom3PageDto;
|
||||
import com.xjrsoft.module.dev.entity.Testfrom3;
|
||||
import com.xjrsoft.module.dev.service.ITestfrom3Service;
|
||||
import com.xjrsoft.module.dev.vo.Testfrom3PageVo;
|
||||
|
||||
import com.xjrsoft.module.common.db.utils.CommonCallUtils;
|
||||
import com.xjrsoft.module.datalog.service.DatalogService;
|
||||
import com.xjrsoft.module.datalog.vo.OperationType;
|
||||
import com.xjrsoft.module.dev.vo.Testfrom3Vo;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@ -135,7 +138,39 @@ public class Testfrom3Controller {
|
||||
@ApiOperation(value = "修改Testfrom3")
|
||||
@SaCheckPermission("testfrom3:edit")
|
||||
public R update(@Valid @RequestBody UpdateTestfrom3Dto dto){
|
||||
return R.ok(dataService.updateById(dto));
|
||||
return R.ok(dataService.updateById(dto,new DataOperationListener<UpdateTestfrom3Dto>() {
|
||||
|
||||
@Override
|
||||
public UpdateTestfrom3Dto before(DataOperationContent<UpdateTestfrom3Dto> content) {
|
||||
if(content.getType()==OperationType.DELETE) {
|
||||
CommonCallUtils.deleteBefore(content.getTableName(),content.getIdValue());
|
||||
}else if(content.getType()==OperationType.DISABLE){
|
||||
CommonCallUtils.disableBefore(content.getTableName(),content.getIdValue());
|
||||
}else if(content.getType()==OperationType.ENABLE){
|
||||
CommonCallUtils.enableBefore(content.getTableName(),content.getIdValue());
|
||||
}
|
||||
return content.getObj();
|
||||
}
|
||||
|
||||
@Override
|
||||
public UpdateTestfrom3Dto after(DataOperationContent<UpdateTestfrom3Dto> content) {
|
||||
if(content.getType()==OperationType.INSERT || content.getType()==OperationType.UPDATE) {
|
||||
CommonCallUtils.saveAfter(content.getTableName(),content.getIdValue());
|
||||
}
|
||||
return content.getObj();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(DataOperationContent<UpdateTestfrom3Dto> content) {
|
||||
// TODO Auto-generated method stub
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFinally(DataOperationContent<UpdateTestfrom3Dto> content) {
|
||||
// TODO Auto-generated method stub
|
||||
}
|
||||
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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) {}
|
||||
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
}
|
||||
|
||||
@ -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
|
||||
@ -42,6 +61,14 @@ public class DatalogServiceImpl implements DatalogService{
|
||||
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全局事务注解
|
||||
@Override
|
||||
@ -49,6 +76,7 @@ public class DatalogServiceImpl implements DatalogService{
|
||||
return DataLogTools.delete(entity);
|
||||
}
|
||||
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@GlobalTransactional(rollbackFor = Exception.class) // Seata全局事务注解
|
||||
@Override
|
||||
@ -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,6 +113,7 @@ public class DatalogServiceImpl implements DatalogService{
|
||||
return DataLogTools.findLogsByEntityId(klazz, dataId);
|
||||
}
|
||||
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@GlobalTransactional(rollbackFor = Exception.class) // Seata全局事务注解
|
||||
@Override
|
||||
@ -77,6 +121,13 @@ public class DatalogServiceImpl implements DatalogService{
|
||||
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全局事务注解
|
||||
@Override
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user