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.
31 lines
1.6 KiB
Java
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());
|
|
}
|
|
}
|