解决询价发布回滚bug

This commit is contained in:
dxc
2021-06-02 17:05:24 +08:00
parent aa82a865b8
commit a9280998d6

View File

@ -23,7 +23,10 @@ import com.chinaunicom.mall.ebtp.project.projectrecord.entity.ProjectRecord;
import com.chinaunicom.mall.ebtp.project.projectrecord.service.IProjectRecordService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.stereotype.Service;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
@ -52,6 +55,11 @@ public class ProjectEntrustInquiryServiceImpl extends BaseServiceImpl<ProjectEnt
@Resource
private ISeataEntrustService seataEntrustInquiryService;
@Resource
DataSourceTransactionManager dataSourceTransactionManager;
@Resource
TransactionDefinition transactionDefinition;
@Override
@Transactional(rollbackFor = Exception.class)
public boolean initProjectEntrust(InquiryVO inquiryVO) {
@ -94,15 +102,23 @@ public class ProjectEntrustInquiryServiceImpl extends BaseServiceImpl<ProjectEnt
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean inquiryNotice(InquiryNoticeVO inquiryNoticeVO) {
boolean result = false;
ProjectExceptionEnum.FRAME_EXCEPTION_INQUIRY_NOTICE_STATUS_EMPTY.customValid(null == inquiryNoticeVO.getInquiryNoticeStatus());
if(ProjectCommonUtil.INQUIRY_NOTICE_STATUS_0 == inquiryNoticeVO.getInquiryNoticeStatus()){
TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
try{
result = initInquiryProject(inquiryNoticeVO);
dataSourceTransactionManager.commit(transactionStatus);
}catch (Exception e){
dataSourceTransactionManager.rollback(transactionStatus);
ProjectExceptionEnum.FRAME_EXCEPTION_ERROR.customValidName(e.getMessage(),true);
}
}
switch (inquiryNoticeVO.getInquiryNoticeStatus()){
case ProjectCommonUtil.INQUIRY_NOTICE_STATUS_0:result = initInquiryProject(inquiryNoticeVO);break;
case ProjectCommonUtil.INQUIRY_NOTICE_STATUS_1:result = exceptionService.saveInquiryException(inquiryNoticeVO);break;
case ProjectCommonUtil.INQUIRY_NOTICE_STATUS_2:result = seataEntrustInquiryService.putOffInquiry(inquiryNoticeVO);break;
default:ProjectExceptionEnum.FRAME_EXCEPTION_PROJECT_ENTRUST_NOT_UPDATE.throwException();
default:break;
}
return result;
}
@ -113,6 +129,7 @@ public class ProjectEntrustInquiryServiceImpl extends BaseServiceImpl<ProjectEnt
* @param inquiryNoticeVO 询价返回信息结果实体
* @return 返回结果
*/
private boolean initInquiryProject(InquiryNoticeVO inquiryNoticeVO){
boolean result = false;
ProjectEntrust projectEntrust = this.getOne(new QueryWrapper<ProjectEntrust>().eq("procurement_plan_id",inquiryNoticeVO.getInquiryId()).ne("status",ProjectCommonUtil.ENTRUS_STATUS_9));