@Setter | @Setter | ||||
@Accessors(chain = true) | @Accessors(chain = true) | ||||
public class YgzCardBlackUploadResponse extends YgzCommonResponse { | public class YgzCardBlackUploadResponse extends YgzCommonResponse { | ||||
// 1、上传成功 2、无需上传 -1 、再尝试 0、需手工反白 | |||||
private Integer uploadStatus; | private Integer uploadStatus; | ||||
} | } |
@Setter | @Setter | ||||
@Accessors(chain = true) | @Accessors(chain = true) | ||||
public class YgzObuBlackUploadResponse extends YgzCommonResponse { | public class YgzObuBlackUploadResponse extends YgzCommonResponse { | ||||
// 1、上传成功 2、无需上传 -1 、再尝试 0、需手工反白 | |||||
private Integer uploadStatus; | private Integer uploadStatus; | ||||
} | } |
import cn.com.taiji.core.entity.basic.QtkVehicleInfo; | import cn.com.taiji.core.entity.basic.QtkVehicleInfo; | ||||
import org.springframework.data.jpa.repository.Query; | import org.springframework.data.jpa.repository.Query; | ||||
import java.time.LocalDateTime; | |||||
import java.util.List; | import java.util.List; | ||||
import java.util.Map; | import java.util.Map; | ||||
@Override | @Override | ||||
public BlackCardInResponseDTO cardIn(BlackCardInRequestDTO req) throws ManagerException { | public BlackCardInResponseDTO cardIn(BlackCardInRequestDTO req) throws ManagerException { | ||||
CardInRequest cardInRequest = copyProperties(req, new CardInRequest()); | CardInRequest cardInRequest = copyProperties(req, new CardInRequest()); | ||||
cardInRequest.setSourceIn(req.getLoginSource()); | |||||
cardInRequest.setOrgCode(findAgencyIdByToken(req.getAccessToken())); | |||||
cardInRequest.setSourceIn(req.getOrderSource().name()); | |||||
AbstractBlsResponse blsResponse = null; | AbstractBlsResponse blsResponse = null; | ||||
try { | try { | ||||
blsResponse = jsonPostRepeat(cardInRequest); | blsResponse = jsonPostRepeat(cardInRequest); | ||||
@Override | @Override | ||||
public BlackCardOutResponseDTO cardOut(BlackCardOutRequestDTO req) throws ManagerException { | public BlackCardOutResponseDTO cardOut(BlackCardOutRequestDTO req) throws ManagerException { | ||||
CardOutRequest cardOutRequest = copyProperties(req, new CardOutRequest()); | CardOutRequest cardOutRequest = copyProperties(req, new CardOutRequest()); | ||||
cardOutRequest.setSourceIn(req.getLoginSource()); | |||||
cardOutRequest.setOrgCode(findAgencyIdByToken(req.getAccessToken())); | |||||
cardOutRequest.setSourceIn(req.getOrderSource().name()); | |||||
AbstractBlsResponse blsResponse = null; | AbstractBlsResponse blsResponse = null; | ||||
try { | try { | ||||
blsResponse = jsonPostRepeat(cardOutRequest); | blsResponse = jsonPostRepeat(cardOutRequest); | ||||
if (errorMsg.length() == 0){ | if (errorMsg.length() == 0){ | ||||
if (blackCardImportModel.getStatus() == 1){ | if (blackCardImportModel.getStatus() == 1){ | ||||
CardInRequest cardInRequest = copyProperties(blackCardImportModel, new CardInRequest()); | CardInRequest cardInRequest = copyProperties(blackCardImportModel, new CardInRequest()); | ||||
cardInRequest.setSourceIn(req.getLoginSource()); | |||||
cardInRequest.setOrgCode(findAgencyIdByToken(req.getAccessToken())); | |||||
cardInRequest.setSourceIn(req.getOrderSource().name()); | |||||
cardInRequest.setStaffId(req.getStaffId()); | cardInRequest.setStaffId(req.getStaffId()); | ||||
try { | try { | ||||
jsonPostRepeat(cardInRequest); | jsonPostRepeat(cardInRequest); | ||||
} | } | ||||
}else{ | }else{ | ||||
CardOutRequest cardOutRequest = copyProperties(blackCardImportModel, new CardOutRequest()); | CardOutRequest cardOutRequest = copyProperties(blackCardImportModel, new CardOutRequest()); | ||||
cardOutRequest.setSourceIn(req.getLoginSource()); | |||||
cardOutRequest.setOrgCode(findAgencyIdByToken(req.getAccessToken())); | |||||
cardOutRequest.setSourceIn(req.getOrderSource().name()); | |||||
cardOutRequest.setStaffId(req.getStaffId()); | cardOutRequest.setStaffId(req.getStaffId()); | ||||
try { | try { | ||||
jsonPostRepeat(cardOutRequest); | jsonPostRepeat(cardOutRequest); |
@Override | @Override | ||||
public BlackObuInResponseDTO obuIn(BlackObuInRequestDTO req) throws ManagerException { | public BlackObuInResponseDTO obuIn(BlackObuInRequestDTO req) throws ManagerException { | ||||
ObuInRequest obuInRequest = copyProperties(req, new ObuInRequest()); | ObuInRequest obuInRequest = copyProperties(req, new ObuInRequest()); | ||||
obuInRequest.setSourceIn(req.getLoginSource()); | |||||
obuInRequest.setOrgCode(findAgencyIdByToken(req.getAccessToken())); | |||||
obuInRequest.setSourceIn(req.getOrderSource().name()); | |||||
AbstractBlsResponse blsResponse = null; | AbstractBlsResponse blsResponse = null; | ||||
try { | try { | ||||
blsResponse = jsonPostRepeat(obuInRequest); | blsResponse = jsonPostRepeat(obuInRequest); | ||||
@Override | @Override | ||||
public BlackObuOutResponseDTO obuOut(BlackObuOutRequestDTO req) throws ManagerException { | public BlackObuOutResponseDTO obuOut(BlackObuOutRequestDTO req) throws ManagerException { | ||||
ObuOutRequest obuOutRequest = copyProperties(req, new ObuOutRequest()); | ObuOutRequest obuOutRequest = copyProperties(req, new ObuOutRequest()); | ||||
obuOutRequest.setSourceIn(req.getLoginSource()); | |||||
obuOutRequest.setOrgCode(findAgencyIdByToken(req.getAccessToken())); | |||||
obuOutRequest.setSourceIn(req.getOrderSource().name()); | |||||
AbstractBlsResponse blsResponse = null; | AbstractBlsResponse blsResponse = null; | ||||
try { | try { | ||||
blsResponse = jsonPostRepeat(obuOutRequest); | blsResponse = jsonPostRepeat(obuOutRequest); | ||||
if (errorMsg.length() == 0){ | if (errorMsg.length() == 0){ | ||||
if (blackObuImportModel.getStatus() == 1){ | if (blackObuImportModel.getStatus() == 1){ | ||||
ObuInRequest obuInRequest = copyProperties(blackObuImportModel, new ObuInRequest()); | ObuInRequest obuInRequest = copyProperties(blackObuImportModel, new ObuInRequest()); | ||||
obuInRequest.setSourceIn(req.getLoginSource()); | |||||
obuInRequest.setOrgCode(findAgencyIdByToken(req.getAccessToken())); | |||||
obuInRequest.setSourceIn(req.getOrderSource().name()); | |||||
obuInRequest.setStaffId(req.getStaffId()); | obuInRequest.setStaffId(req.getStaffId()); | ||||
try { | try { | ||||
jsonPostRepeat(obuInRequest); | jsonPostRepeat(obuInRequest); | ||||
} | } | ||||
}else{ | }else{ | ||||
ObuOutRequest obuOutRequest = copyProperties(blackObuImportModel, new ObuOutRequest()); | ObuOutRequest obuOutRequest = copyProperties(blackObuImportModel, new ObuOutRequest()); | ||||
obuOutRequest.setSourceIn(req.getLoginSource()); | |||||
obuOutRequest.setOrgCode(findAgencyIdByToken(req.getAccessToken())); | |||||
obuOutRequest.setSourceIn(req.getOrderSource().name()); | |||||
obuOutRequest.setStaffId(req.getStaffId()); | obuOutRequest.setStaffId(req.getStaffId()); | ||||
try { | try { | ||||
jsonPostRepeat(obuOutRequest); | jsonPostRepeat(obuOutRequest); |
implementation "${groupname}:entity-core:1.0.0-SNAPSHOT" | implementation "${groupname}:entity-core:1.0.0-SNAPSHOT" | ||||
implementation "${groupname}:comm-core:1.0.0-SNAPSHOT" | implementation "${groupname}:comm-core:1.0.0-SNAPSHOT" | ||||
implementation "${groupname}:bls-protocol:1.0.0-SNAPSHOT" | implementation "${groupname}:bls-protocol:1.0.0-SNAPSHOT" | ||||
implementation "${groupname}:ias-protocol:1.0.0-SNAPSHOT" | |||||
implementation "${groupname}:smp-protocol:1.0.0-SNAPSHOT" | implementation "${groupname}:smp-protocol:1.0.0-SNAPSHOT" | ||||
implementation "com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery" | implementation "com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery" | ||||
implementation "com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config" | implementation "com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config" |
package cn.com.taiji.bls.manager.blk; | package cn.com.taiji.bls.manager.blk; | ||||
import cn.com.taiji.common.manager.AbstractManager; | |||||
import cn.com.taiji.bls.manager.AbstractCommManager; | |||||
import cn.com.taiji.common.manager.ManagerException; | |||||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | import cn.com.taiji.common.manager.net.http.ServiceHandleException; | ||||
import cn.com.taiji.common.pub.CollectionTools; | |||||
import cn.com.taiji.core.entity.basic.QtkBlackCard; | import cn.com.taiji.core.entity.basic.QtkBlackCard; | ||||
import cn.com.taiji.core.entity.dict.basic.CardBlackType; | import cn.com.taiji.core.entity.dict.basic.CardBlackType; | ||||
import cn.com.taiji.core.entity.dict.basic.SourceType; | import cn.com.taiji.core.entity.dict.basic.SourceType; | ||||
import cn.com.taiji.core.entity.dict.ygz.DataSourceEnum; | |||||
import cn.com.taiji.core.entity.log.BlsInterfaceLog; | import cn.com.taiji.core.entity.log.BlsInterfaceLog; | ||||
import cn.com.taiji.core.manager.comm.LogManager; | import cn.com.taiji.core.manager.comm.LogManager; | ||||
import cn.com.taiji.core.model.comm.protocol.bls.*; | import cn.com.taiji.core.model.comm.protocol.bls.*; | ||||
import cn.com.taiji.core.model.comm.protocol.ias.ygz.YgzCardBlackUploadRequest; | |||||
import cn.com.taiji.core.model.comm.protocol.ias.ygz.YgzCardBlackUploadResponse; | |||||
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError; | import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError; | ||||
import cn.com.taiji.core.repo.jpa.basic.*; | import cn.com.taiji.core.repo.jpa.basic.*; | ||||
import cn.com.taiji.core.repo.jpa.log.BlsInterfaceLogRepo; | import cn.com.taiji.core.repo.jpa.log.BlsInterfaceLogRepo; | ||||
import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||
import java.util.List; | |||||
@Service | @Service | ||||
public class BlackCardInManager extends AbstractManager implements LogManager<CardInRequest, AbstractBlsResponse, BlsInterfaceLog> { | |||||
public class BlackCardInManager extends AbstractCommManager implements LogManager<CardInRequest, AbstractBlsResponse, BlsInterfaceLog> { | |||||
@Autowired | @Autowired | ||||
private QtkBlackCardRepo blackCardRepo; | private QtkBlackCardRepo blackCardRepo; | ||||
if (StringUtils.isEmpty(request.getOrgCode())){ | if (StringUtils.isEmpty(request.getOrgCode())){ | ||||
throw GlyServiceError.NO_DATA_ERR.toHandleException("请求参数orgCode必填!"); | throw GlyServiceError.NO_DATA_ERR.toHandleException("请求参数orgCode必填!"); | ||||
} | } | ||||
//发送 todo 这里调部中心接口处先不处理 | |||||
// CardBlackUploadRequest request = new CardBlackUploadRequest(); | |||||
// request.setStatus(1);//1-下黑 | |||||
// request.setCreationTime(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(new Date())); | |||||
// request.setCardId(req.getCardId()); | |||||
// request.setType(req.getType()); | |||||
// CardBlackUploadResponse cardBlackUploadResponse = blackUpload(request, 1);//1-下黑 | |||||
//发送,调部中心接口 | |||||
YgzCardBlackUploadResponse uploadResponse = cardBlackUpload(request.getCardId(), 1, request.getType()); | |||||
//下黑 | //下黑 | ||||
//todo 根据调接口返回的内容进行判断并做持久化操作 这里先处理正常返回的情况做持久化操作 | |||||
// if(cardBlackUploadResponse...){ } | |||||
QtkBlackCard blackCard = copyProperties(request, new QtkBlackCard()); | |||||
LocalDateTime now = LocalDateTime.now(); | |||||
blackCard.setIssuerId("520101");//固定的 | |||||
blackCard.setStatus(1); | |||||
blackCard.setCreateTime(now); | |||||
blackCard.setCreationTime(now); | |||||
blackCard.setType(CardBlackType.fromCode(request.getType())); | |||||
blackCard.setSourceIn(SourceType.findByCode(request.getSourceIn())); | |||||
blackCard.setAgencyId(request.getOrgCode());//AbstractSignTypeRequest类里加了个orgCode,中台接口转发到接口系统会自动带上值,值实际为agentId | |||||
blackCardRepo.save(blackCard); | |||||
//返回 | |||||
//todo 判断后返回 成功-失败 | |||||
if (uploadResponse.getUploadStatus() == 1 || uploadResponse.getUploadStatus() == 2 ){//这里msg的内容一定是:已在部黑名单中,无需再次上传! | |||||
List<QtkBlackCard> blackCardList = blackCardRepo.queryByCardIdAndType(request.getCardId(), CardBlackType.fromCode(request.getType())); | |||||
//可能已在部黑名单中,但本地无数据,本地无数据则新增一条 | |||||
if (CollectionTools.isEmpty(blackCardList)){ | |||||
addBlackCard(request); | |||||
} | |||||
}else { | |||||
throw GlyServiceError.NO_DATA_ERR.toHandleException(uploadResponse.getErrorMsg()); | |||||
} | |||||
AbstractBlsResponse blsResponse = new AbstractBlsResponse(); | AbstractBlsResponse blsResponse = new AbstractBlsResponse(); | ||||
blsResponse.setUploadStatus(1); | blsResponse.setUploadStatus(1); | ||||
return onSuccess(request, blsResponse, BlsInterfaceLog.class, System.currentTimeMillis() - begin); | return onSuccess(request, blsResponse, BlsInterfaceLog.class, System.currentTimeMillis() - begin); | ||||
} | } | ||||
} | } | ||||
private void addBlackCard(CardInRequest request) { | |||||
QtkBlackCard blackCard = copyProperties(request, new QtkBlackCard()); | |||||
LocalDateTime now = LocalDateTime.now(); | |||||
blackCard.setIssuerId("520101");//固定的 | |||||
blackCard.setStatus(1); | |||||
blackCard.setCreateTime(now); | |||||
blackCard.setCreationTime(now); | |||||
blackCard.setType(CardBlackType.fromCode(request.getType())); | |||||
blackCard.setSourceIn(SourceType.findByName(request.getSourceIn())); | |||||
blackCard.setAgencyId(request.getOrgCode());//AbstractSignTypeRequest类里加了个orgCode,中台接口转发到接口系统会自动带上值,值实际为agentId | |||||
blackCardRepo.save(blackCard); | |||||
} | |||||
/** | |||||
* 下黑、反白都调这个犯法进行请求部中心接口 | |||||
* | |||||
* */ | |||||
public YgzCardBlackUploadResponse cardBlackUpload(String cardId, Integer status, Integer blackType) throws ServiceHandleException { | |||||
YgzCardBlackUploadRequest protocolRequest = new YgzCardBlackUploadRequest(); | |||||
protocolRequest.setStatus(status);//1-下黑,2-反白 | |||||
protocolRequest.setCardId(cardId); | |||||
protocolRequest.setBlackType(blackType); | |||||
protocolRequest.setCreationTime(LocalDateTime.now()); | |||||
protocolRequest.setDataSource(DataSourceEnum.DSI_INTERFACE); | |||||
YgzCardBlackUploadResponse response = null; | |||||
try { | |||||
response = jsonPostRepeat(protocolRequest); | |||||
} catch (ManagerException e) { | |||||
logger.error("异常",e); | |||||
throw GlyServiceError.RESPONSE_ERROR.toHandleException("卡下黑/反白请求部中心异常!"); | |||||
} | |||||
if (response == null) { | |||||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("省中心接口无响应!"); | |||||
} else { | |||||
if (!"200".equals(response.getStatusCode())) { | |||||
String json = response.getResponseJson(); | |||||
if (hasText(json)) { | |||||
int indexOf1 = json.indexOf("对应黑名单重复上传"); | |||||
int indexOf2 = json.indexOf("10秒内不允许上传相同的文件"); | |||||
int indexOf3 = json.indexOf("对应解除的黑名单不存在"); | |||||
int indexOf4 = json.indexOf("返白黑名单重复上传"); | |||||
int indexOf5 = json.indexOf("白名单生效时间比黑名单生效时间早"); | |||||
int indexOf6 = json.indexOf("贵州已上传超过5000条"); | |||||
int indexOf7 = json.indexOf("对应解除的黑名单正在生成, 请5分钟后再返白它"); | |||||
int indexOf8 = json.indexOf("该类型的黑名单正在返白 ,请5分钟后再拉黑它"); | |||||
if (indexOf1 > -1) { | |||||
String message = "已在部黑名单中,无需再次上传!"; | |||||
response.setErrorMsg(message); | |||||
response.setUploadStatus(2); | |||||
} else if (indexOf2 > -1) { | |||||
String message = "下黑失败,请5分钟后重试!"; | |||||
response.setErrorMsg(message); | |||||
response.setUploadStatus(-1); | |||||
} else if (indexOf3 > -1) { | |||||
String message = "此卡不在黑名单中!"; | |||||
response.setErrorMsg(message); | |||||
response.setUploadStatus(2); | |||||
} else if (indexOf4 > -1) { | |||||
String message = "该黑名单已反白,无需再次上传!"; | |||||
response.setErrorMsg(message); | |||||
response.setUploadStatus(2); | |||||
}else if (indexOf5> -1) { | |||||
String message = "反白失败,需手工反白,请将需反白卡号反馈给管理员!"; | |||||
response.setErrorMsg(message); | |||||
response.setUploadStatus(0); | |||||
}else if (indexOf6> -1) { | |||||
String message = "当前版本贵州已上传超过5000条,请5分钟后再上传!"; | |||||
response.setErrorMsg(message); | |||||
response.setUploadStatus(-1); | |||||
}else if(indexOf7>-1) { | |||||
response.setErrorMsg("请5分钟后再尝试解除挂失操作!"); | |||||
response.setUploadStatus(-1); | |||||
}else if(indexOf8>-1) { | |||||
response.setErrorMsg("该类型的黑名单正在返白, 请5分钟后再返白它!"); | |||||
response.setUploadStatus(-1); | |||||
}else { | |||||
if (!StringUtils.isEmpty(response.getErrorMsg())){ | |||||
response.setErrorMsg(response.getErrorMsg()); | |||||
}else{ | |||||
response.setErrorMsg("部中心黑名单上传返回为空值,无法判断,请重试!"); | |||||
} | |||||
response.setUploadStatus(-1); | |||||
} | |||||
} | |||||
}else { | |||||
response.setUploadStatus(1); | |||||
} | |||||
} | |||||
return response; | |||||
} | |||||
@Override | @Override | ||||
public void doSaveLog(CardInRequest request, AbstractBlsResponse response, BlsInterfaceLog log) { | public void doSaveLog(CardInRequest request, AbstractBlsResponse response, BlsInterfaceLog log) { |
import cn.com.taiji.core.entity.log.BlsInterfaceLog; | import cn.com.taiji.core.entity.log.BlsInterfaceLog; | ||||
import cn.com.taiji.core.manager.comm.LogManager; | import cn.com.taiji.core.manager.comm.LogManager; | ||||
import cn.com.taiji.core.model.comm.protocol.bls.*; | import cn.com.taiji.core.model.comm.protocol.bls.*; | ||||
import cn.com.taiji.core.model.comm.protocol.ias.ygz.YgzCardBlackUploadResponse; | |||||
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError; | import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError; | ||||
import cn.com.taiji.core.repo.jpa.basic.QtkBlackCardHisRepo; | import cn.com.taiji.core.repo.jpa.basic.QtkBlackCardHisRepo; | ||||
import cn.com.taiji.core.repo.jpa.basic.QtkBlackCardRepo; | import cn.com.taiji.core.repo.jpa.basic.QtkBlackCardRepo; | ||||
private QtkBlackCardHisRepo blackCardHisRepo; | private QtkBlackCardHisRepo blackCardHisRepo; | ||||
@Autowired | @Autowired | ||||
private BlsInterfaceLogRepo logRepo; | private BlsInterfaceLogRepo logRepo; | ||||
@Autowired | |||||
private BlackCardInManager blackCardInManager; | |||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
public AbstractBlsResponse serviceHandle(CardOutRequest req) throws ServiceHandleException { | public AbstractBlsResponse serviceHandle(CardOutRequest req) throws ServiceHandleException { | ||||
if (CollectionTools.isEmpty(blackCardList)){ | if (CollectionTools.isEmpty(blackCardList)){ | ||||
throw GlyServiceError.NO_DATA_ERR.toHandleException("未查询到该类型卡号黑名单!"); | throw GlyServiceError.NO_DATA_ERR.toHandleException("未查询到该类型卡号黑名单!"); | ||||
} | } | ||||
//发送 todo 这里调部中心接口处先不处理 | |||||
//todo 根据调接口返回的内容进行判断并做持久化操作 这里先处理正常返回的情况做持久化操作 | |||||
QtkBlackCard blackCard = blackCardList.get(0); | |||||
LocalDateTime now = LocalDateTime.now(); | |||||
QtkBlackCardHis blackCardHis = copyProperties(blackCard, new QtkBlackCardHis(), "id","createTime"); | |||||
blackCardHis.setStatus(2);//2-反白 | |||||
blackCardHis.setCreateTime(now); | |||||
blackCardHis.setReleaseTime(now); | |||||
blackCardHis.setReasonIn(blackCard.getReason()); | |||||
blackCardHis.setReasonOut(req.getReason()); | |||||
blackCardHis.setStaffIdIn(blackCard.getStaffId()); | |||||
blackCardHis.setStaffIdOut(req.getStaffId()); | |||||
blackCardHis.setReasonOut(req.getReason()); | |||||
blackCardHis.setSourceIn(blackCard.getSourceIn()); | |||||
blackCardHis.setSourceOut(SourceType.findByCode(req.getSourceIn())); | |||||
blackCardHisRepo.save(blackCardHis); | |||||
//删除下黑数据 | |||||
blackCardRepo.deleteAll(blackCardList); | |||||
//发送,调部中心接口 | |||||
YgzCardBlackUploadResponse uploadResponse = blackCardInManager.cardBlackUpload(req.getCardId(), 2, req.getType()); | |||||
if (uploadResponse.getUploadStatus() == 1 || uploadResponse.getUploadStatus() == 2){ | |||||
QtkBlackCard blackCard = blackCardList.get(0); | |||||
LocalDateTime now = LocalDateTime.now(); | |||||
QtkBlackCardHis blackCardHis = copyProperties(blackCard, new QtkBlackCardHis(), "id","createTime"); | |||||
blackCardHis.setStatus(2);//2-反白 | |||||
blackCardHis.setCreateTime(now); | |||||
blackCardHis.setReleaseTime(now); | |||||
blackCardHis.setReasonIn(blackCard.getReason()); | |||||
blackCardHis.setReasonOut(req.getReason()); | |||||
blackCardHis.setStaffIdIn(blackCard.getStaffId()); | |||||
blackCardHis.setStaffIdOut(req.getStaffId()); | |||||
blackCardHis.setReasonOut(req.getReason()); | |||||
blackCardHis.setSourceIn(blackCard.getSourceIn()); | |||||
blackCardHis.setSourceOut(SourceType.findByCode(req.getSourceIn())); | |||||
blackCardHisRepo.save(blackCardHis); | |||||
//删除下黑数据 | |||||
blackCardRepo.deleteAll(blackCardList); | |||||
}else { | |||||
throw GlyServiceError.NO_DATA_ERR.toHandleException(uploadResponse.getErrorMsg()); | |||||
} | |||||
AbstractBlsResponse blsResponse = new AbstractBlsResponse(); | AbstractBlsResponse blsResponse = new AbstractBlsResponse(); | ||||
blsResponse.setUploadStatus(1); | blsResponse.setUploadStatus(1); | ||||
return onSuccess(req, blsResponse, BlsInterfaceLog.class, System.currentTimeMillis() - begin); | return onSuccess(req, blsResponse, BlsInterfaceLog.class, System.currentTimeMillis() - begin); | ||||
} | } | ||||
} | } | ||||
@Override | @Override | ||||
public void doSaveLog(CardOutRequest request, AbstractBlsResponse response, BlsInterfaceLog log) { | public void doSaveLog(CardOutRequest request, AbstractBlsResponse response, BlsInterfaceLog log) { | ||||
logger.info("enter do save log"); | logger.info("enter do save log"); |
package cn.com.taiji.bls.manager.blk; | package cn.com.taiji.bls.manager.blk; | ||||
import cn.com.taiji.common.manager.AbstractManager; | |||||
import cn.com.taiji.bls.manager.AbstractCommManager; | |||||
import cn.com.taiji.common.manager.ManagerException; | |||||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | import cn.com.taiji.common.manager.net.http.ServiceHandleException; | ||||
import cn.com.taiji.common.pub.CollectionTools; | |||||
import cn.com.taiji.core.entity.basic.QtkBlackObu; | import cn.com.taiji.core.entity.basic.QtkBlackObu; | ||||
import cn.com.taiji.core.entity.dict.basic.ObuBlackType; | import cn.com.taiji.core.entity.dict.basic.ObuBlackType; | ||||
import cn.com.taiji.core.entity.dict.basic.SourceType; | import cn.com.taiji.core.entity.dict.basic.SourceType; | ||||
import cn.com.taiji.core.entity.dict.ygz.DataSourceEnum; | |||||
import cn.com.taiji.core.entity.log.BlsInterfaceLog; | import cn.com.taiji.core.entity.log.BlsInterfaceLog; | ||||
import cn.com.taiji.core.manager.comm.LogManager; | import cn.com.taiji.core.manager.comm.LogManager; | ||||
import cn.com.taiji.core.model.comm.protocol.bls.*; | import cn.com.taiji.core.model.comm.protocol.bls.*; | ||||
import cn.com.taiji.core.model.comm.protocol.ias.ygz.YgzObuBlackUploadRequest; | |||||
import cn.com.taiji.core.model.comm.protocol.ias.ygz.YgzObuBlackUploadResponse; | |||||
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError; | import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError; | ||||
import cn.com.taiji.core.repo.jpa.basic.*; | import cn.com.taiji.core.repo.jpa.basic.*; | ||||
import cn.com.taiji.core.repo.jpa.log.BlsInterfaceLogRepo; | import cn.com.taiji.core.repo.jpa.log.BlsInterfaceLogRepo; | ||||
import org.springframework.util.StringUtils; | import org.springframework.util.StringUtils; | ||||
import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||
import java.util.List; | |||||
@Service("blackObuInManager") | @Service("blackObuInManager") | ||||
public class BlackObuInManager extends AbstractManager implements LogManager<ObuInRequest, AbstractBlsResponse, BlsInterfaceLog> { | |||||
public class BlackObuInManager extends AbstractCommManager implements LogManager<ObuInRequest, AbstractBlsResponse, BlsInterfaceLog> { | |||||
@Autowired | @Autowired | ||||
private QtkBlackObuRepo blackObuRepo; | private QtkBlackObuRepo blackObuRepo; | ||||
public AbstractBlsResponse serviceHandle(ObuInRequest req) throws ServiceHandleException { | public AbstractBlsResponse serviceHandle(ObuInRequest req) throws ServiceHandleException { | ||||
try { | try { | ||||
long begin = System.currentTimeMillis(); | long begin = System.currentTimeMillis(); | ||||
if (StringUtils.isEmpty(req.getOrgCode())){ | |||||
if (StringUtils.isEmpty(req.getOrgCode())) { | |||||
throw GlyServiceError.NO_DATA_ERR.toHandleException("请求参数orgCode必填!"); | throw GlyServiceError.NO_DATA_ERR.toHandleException("请求参数orgCode必填!"); | ||||
} | } | ||||
//发送 todo 这里调部中心接口处先不处理 | |||||
//下黑 | |||||
//todo 根据调接口返回的内容进行判断并做持久化操作 这里先处理正常返回的情况做持久化操作 | |||||
QtkBlackObu blackObu = copyProperties(req, new QtkBlackObu()); | |||||
LocalDateTime now = LocalDateTime.now(); | |||||
blackObu.setIssuerId("520101");//固定的 | |||||
blackObu.setType(ObuBlackType.fromCode(req.getType())); | |||||
blackObu.setStatus(1); | |||||
blackObu.setCreateTime(now); | |||||
blackObu.setCreationTime(now); | |||||
blackObu.setType(ObuBlackType.fromCode(req.getType())); | |||||
blackObu.setSourceIn(SourceType.findByCode(req.getSourceIn())); | |||||
blackObu.setAgencyId(req.getOrgCode());//AbstractSignTypeRequest类里加了个orgCode,中台接口转发到接口系统会自动带上值,值实际为agentId | |||||
blackObuRepo.save(blackObu); | |||||
//发送,调部中心接口 | |||||
YgzObuBlackUploadResponse uploadResponse = obuBlackUpload(req.getObuId(), 1, req.getType()); | |||||
if (uploadResponse.getUploadStatus() == 1 || uploadResponse.getUploadStatus() == 2 ) {//这里msg的内容一定是:已在部黑名单中,无需再次上传! | |||||
List<QtkBlackObu> blackObuList = blackObuRepo.queryByObuIdAndType(req.getObuId(), ObuBlackType.fromCode(req.getType())); | |||||
//可能已在部黑名单中,但本地无数据,本地无数据则新增一条 | |||||
if (CollectionTools.isEmpty(blackObuList)){ | |||||
addBlackObu(req); | |||||
} | |||||
}else { | |||||
throw GlyServiceError.NO_DATA_ERR.toHandleException(uploadResponse.getErrorMsg()); | |||||
} | |||||
//返回 | //返回 | ||||
//todo 判断后返回 成功-失败 | |||||
AbstractBlsResponse blsResponse = new AbstractBlsResponse(); | AbstractBlsResponse blsResponse = new AbstractBlsResponse(); | ||||
blsResponse.setUploadStatus(1); | blsResponse.setUploadStatus(1); | ||||
return onSuccess(req, blsResponse, BlsInterfaceLog.class, System.currentTimeMillis() - begin); | return onSuccess(req, blsResponse, BlsInterfaceLog.class, System.currentTimeMillis() - begin); | ||||
} catch (Exception e) { | } catch (Exception e) { | ||||
logger.error("异常",e); | |||||
logger.error("异常", e); | |||||
throw exception(req, BlsInterfaceLog.class, e.getMessage()); | throw exception(req, BlsInterfaceLog.class, e.getMessage()); | ||||
} | } | ||||
} | } | ||||
private void addBlackObu(ObuInRequest req) { | |||||
QtkBlackObu blackObu = copyProperties(req, new QtkBlackObu()); | |||||
LocalDateTime now = LocalDateTime.now(); | |||||
blackObu.setIssuerId("520101");//固定的 | |||||
blackObu.setType(ObuBlackType.fromCode(req.getType())); | |||||
blackObu.setStatus(1); | |||||
blackObu.setCreateTime(now); | |||||
blackObu.setCreationTime(now); | |||||
blackObu.setType(ObuBlackType.fromCode(req.getType())); | |||||
blackObu.setSourceIn(SourceType.findByName(req.getSourceIn())); | |||||
blackObu.setAgencyId(req.getOrgCode());//AbstractSignTypeRequest类里加了个orgCode,中台接口转发到接口系统会自动带上值,值实际为agentId | |||||
blackObuRepo.save(blackObu); | |||||
} | |||||
public YgzObuBlackUploadResponse obuBlackUpload(String obuId, int status, Integer type) throws ServiceHandleException { | |||||
YgzObuBlackUploadRequest uploadRequest = new YgzObuBlackUploadRequest(); | |||||
uploadRequest.setStatus(status); | |||||
uploadRequest.setObuId(obuId); | |||||
uploadRequest.setBlackType(type); | |||||
uploadRequest.setCreationTime(LocalDateTime.now()); | |||||
uploadRequest.setDataSource(DataSourceEnum.DSI_INTERFACE); | |||||
YgzObuBlackUploadResponse response = null; | |||||
try { | |||||
response = jsonPostRepeat(uploadRequest); | |||||
} catch (ManagerException e) { | |||||
logger.error("异常", e); | |||||
throw GlyServiceError.RESPONSE_ERROR.toHandleException("卡下黑/反白请求部中心异常!"); | |||||
} | |||||
if (response == null) { | |||||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("省中心接口无响应!"); | |||||
} else { | |||||
if (!"200".equals(response.getStatusCode())) { | |||||
String json = response.getResponseJson(); | |||||
if (hasText(json)) { | |||||
int indexOf1 = json.indexOf("对应黑名单重复上传");//卡 | |||||
int indexOf2 = json.indexOf("10秒内不允许上传相同的文件"); | |||||
int indexOf3 = json.indexOf("对应解除的黑名单不存在"); | |||||
int indexOf4 = json.indexOf("返白黑名单重复上传"); | |||||
int indexOf5 = json.indexOf("白名单生效时间比黑名单生效时间早"); | |||||
int indexOf6 = json.indexOf("贵州已上传超过5000条"); | |||||
int indexOf7 = json.indexOf("解除黑名单类型不存在"); | |||||
if (indexOf1 > -1) { | |||||
String message = "已在部黑名单中,无需再次上传!"; | |||||
response.setErrorMsg(message); | |||||
response.setUploadStatus(2); | |||||
return response; | |||||
} else if (indexOf2 > -1) { | |||||
String message = "下黑失败,请5分钟后重试!"; | |||||
response.setErrorMsg(message); | |||||
response.setUploadStatus(-1); | |||||
return response; | |||||
} else if (indexOf3 > -1) { | |||||
String message = "此OBU不在黑名单中!"; | |||||
response.setErrorMsg(message); | |||||
response.setUploadStatus(2); | |||||
return response; | |||||
} else if (indexOf4 > -1) { | |||||
String message = "该黑名单已反白,无需再次上传!"; | |||||
response.setErrorMsg(message); | |||||
response.setUploadStatus(2); | |||||
return response; | |||||
} else if (indexOf5 > -1) { | |||||
String message = "反白失败,需手工反白,请将需反白卡号反馈给管理员!"; | |||||
response.setErrorMsg(message); | |||||
response.setUploadStatus(0); | |||||
return response; | |||||
} else if (indexOf6 > -1) { | |||||
String message = "当前版本贵州已上传超过5000条,请5分钟后再上传!"; | |||||
response.setErrorMsg(message); | |||||
response.setUploadStatus(0); | |||||
return response; | |||||
} else if (indexOf7 > -1) { | |||||
String message = "此OBU不在黑名单中!"; | |||||
response.setErrorMsg(message); | |||||
response.setUploadStatus(2); | |||||
return response; | |||||
} else { | |||||
if (!StringUtils.isEmpty(response.getErrorMsg())) { | |||||
response.setErrorMsg(response.getErrorMsg()); | |||||
} else { | |||||
response.setErrorMsg("部中心黑名单上传返回为空值,无法判断,请重试!"); | |||||
} | |||||
response.setUploadStatus(0); | |||||
} | |||||
} | |||||
} else { | |||||
response.setUploadStatus(1); | |||||
} | |||||
} | |||||
return response; | |||||
} | |||||
@Override | @Override | ||||
public void doSaveLog(ObuInRequest request, AbstractBlsResponse response, BlsInterfaceLog log) { | public void doSaveLog(ObuInRequest request, AbstractBlsResponse response, BlsInterfaceLog log) { | ||||
logger.info("enter do save log"); | logger.info("enter do save log"); |
import cn.com.taiji.core.entity.log.BlsInterfaceLog; | import cn.com.taiji.core.entity.log.BlsInterfaceLog; | ||||
import cn.com.taiji.core.manager.comm.LogManager; | import cn.com.taiji.core.manager.comm.LogManager; | ||||
import cn.com.taiji.core.model.comm.protocol.bls.*; | import cn.com.taiji.core.model.comm.protocol.bls.*; | ||||
import cn.com.taiji.core.model.comm.protocol.ias.ygz.YgzObuBlackUploadResponse; | |||||
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError; | import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError; | ||||
import cn.com.taiji.core.repo.jpa.basic.QtkBlackObuHisRepo; | import cn.com.taiji.core.repo.jpa.basic.QtkBlackObuHisRepo; | ||||
import cn.com.taiji.core.repo.jpa.basic.QtkBlackObuRepo; | import cn.com.taiji.core.repo.jpa.basic.QtkBlackObuRepo; | ||||
private QtkBlackObuHisRepo blackObuHisRepo; | private QtkBlackObuHisRepo blackObuHisRepo; | ||||
@Autowired | @Autowired | ||||
private BlsInterfaceLogRepo logRepo; | private BlsInterfaceLogRepo logRepo; | ||||
@Autowired | |||||
private BlackObuInManager blackObuInManager; | |||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
public AbstractBlsResponse serviceHandle(ObuOutRequest req) throws ServiceHandleException { | public AbstractBlsResponse serviceHandle(ObuOutRequest req) throws ServiceHandleException { | ||||
if (CollectionTools.isEmpty(blackObuList)){ | if (CollectionTools.isEmpty(blackObuList)){ | ||||
throw GlyServiceError.NO_DATA_ERR.toHandleException("未查询到该类型签号黑名单!"); | throw GlyServiceError.NO_DATA_ERR.toHandleException("未查询到该类型签号黑名单!"); | ||||
} | } | ||||
//发送 todo 这里调部中心接口处先不处理 | |||||
//todo 根据调接口返回的内容进行判断并做持久化操作 这里先处理正常返回的情况做持久化操作 | |||||
QtkBlackObu blackObu = blackObuList.get(0); | |||||
LocalDateTime now = LocalDateTime.now(); | |||||
QtkBlackObuHis blackObuHis = copyProperties(blackObu, new QtkBlackObuHis(), "id","createTime"); | |||||
blackObuHis.setStatus(2);//2-反白 | |||||
blackObuHis.setCreateTime(now); | |||||
blackObuHis.setReleaseTime(now); | |||||
blackObuHis.setReasonIn(blackObu.getReason()); | |||||
blackObuHis.setReasonOut(req.getReason()); | |||||
blackObuHis.setStaffIdIn(blackObu.getStaffId()); | |||||
blackObuHis.setStaffIdOut(req.getStaffId()); | |||||
blackObuHis.setReasonOut(req.getReason()); | |||||
blackObuHis.setSourceIn(blackObu.getSourceIn()); | |||||
blackObuHis.setSourceOut(SourceType.findByCode(req.getSourceIn())); | |||||
blackObuHisRepo.save(blackObuHis); | |||||
//删除下黑数据 | |||||
blackObuRepo.deleteAll(blackObuList); | |||||
//发送,调部中心接口 | |||||
YgzObuBlackUploadResponse uploadResponse = blackObuInManager.obuBlackUpload(req.getObuId(), 2, req.getType()); | |||||
if (uploadResponse.getUploadStatus() == 1 || uploadResponse.getUploadStatus() == 2){ | |||||
QtkBlackObu blackObu = blackObuList.get(0); | |||||
LocalDateTime now = LocalDateTime.now(); | |||||
QtkBlackObuHis blackObuHis = copyProperties(blackObu, new QtkBlackObuHis(), "id","createTime"); | |||||
blackObuHis.setStatus(2);//2-反白 | |||||
blackObuHis.setCreateTime(now); | |||||
blackObuHis.setReleaseTime(now); | |||||
blackObuHis.setReasonIn(blackObu.getReason()); | |||||
blackObuHis.setReasonOut(req.getReason()); | |||||
blackObuHis.setStaffIdIn(blackObu.getStaffId()); | |||||
blackObuHis.setStaffIdOut(req.getStaffId()); | |||||
blackObuHis.setReasonOut(req.getReason()); | |||||
blackObuHis.setSourceIn(blackObu.getSourceIn()); | |||||
blackObuHis.setSourceOut(SourceType.findByCode(req.getSourceIn())); | |||||
blackObuHisRepo.save(blackObuHis); | |||||
//删除下黑数据 | |||||
blackObuRepo.deleteAll(blackObuList); | |||||
}else { | |||||
throw GlyServiceError.NO_DATA_ERR.toHandleException(uploadResponse.getErrorMsg()); | |||||
} | |||||
AbstractBlsResponse blsResponse = new AbstractBlsResponse(); | AbstractBlsResponse blsResponse = new AbstractBlsResponse(); | ||||
blsResponse.setUploadStatus(1); | blsResponse.setUploadStatus(1); | ||||
return onSuccess(req, blsResponse, BlsInterfaceLog.class, System.currentTimeMillis() - begin); | return onSuccess(req, blsResponse, BlsInterfaceLog.class, System.currentTimeMillis() - begin); | ||||
} | } | ||||
@Override | @Override | ||||
public void doSaveLog(ObuOutRequest request, AbstractBlsResponse response, BlsInterfaceLog log) { | public void doSaveLog(ObuOutRequest request, AbstractBlsResponse response, BlsInterfaceLog log) { | ||||
logger.info("enter do save log"); | logger.info("enter do save log"); |