You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
digital-rmb-backend/src/main/java/com/yau/digitalrmb/institutionidentity/application/IssuedInstitutionIdentifier...

31 lines
1.6 KiB
Java

package com.yau.digitalrmb.institutionidentity.application;
import com.yau.digitalrmb.institutionidentity.domain.InstitutionIdentifierApplication;
import com.yau.digitalrmb.institutionidentity.domain.InstitutionIdentifierRepository;
import com.yau.digitalrmb.shared.api.ErrorCode;
import com.yau.digitalrmb.shared.exception.BusinessException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
@Service
public class IssuedInstitutionIdentifierQueryService {
@Resource
private InstitutionIdentifierRepository repository;
@Transactional(readOnly = true)
public IssuedInstitutionIdentifierResult requireIssued(long applicationId, InstitutionKeySubject subject) {
InstitutionIdentifierApplication application = repository.findByIdAndSubject(applicationId,
subject.getUserId(), subject.getSchoolId(), subject.getClassId()).orElseThrow(() ->
new BusinessException(ErrorCode.RESOURCE_NOT_FOUND, "当前实训主体下的机构标识申请不存在"));
if (application.getStatus() != InstitutionIdentifierApplication.Status.FEEDBACKED) {
throw new BusinessException(ErrorCode.VALIDATION_ERROR,
"机构标识尚未反馈到商业银行端,不能发起货币生成请求,当前状态:"
+ application.getStatus().name());
}
return new IssuedInstitutionIdentifierResult(applicationId, application.getInstitutionIdentifier(),
application.getDigest());
}
}