import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.exception.JeecgBootException;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.stereotype.Service;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import javax.annotation.Resource;
/**
* @Author: zhaoYi
* @Date: 2024/5/10 18:06
* @Version 1.0.0
*/
@Slf4j
@Service
public class LogisticsService{
@Resource
private DataSourceTransactionManager dataSourceTransactionManager;
@Resource
private TransactionDefinition transactionDefinition;
public Result completeCardBooking() {
//开启编程式事务管理
TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
try {
//更新操作
this.update();
//查询操作
this.select();
//删除操作
this.delete();
// 手动提交事务
dataSourceTransactionManager.commit(transactionStatus);
} catch (Exception e) {
// 事务回滚
dataSourceTransactionManager.rollback(transactionStatus);
log.error("操作失败 事务已手动回滚: {}", e.getMessage(), e);
throw new JeecgBootException(e.getMessage(), e);
}
return Result.ok();
}
}
@Transactional(rollbackFor = Exception.class)
public TalentMeasureResp saveMeasure(TalentMeasureReq talentMeasureReq) {
Assert.notBlank(talentMeasureReq.getSerialNum(), "流水号不能为空!");
//更新操作
this.update();
//查询操作
this.select();
//删除操作
this.delete();
}