@@ -8,5 +8,6 @@ import lombok.experimental.Accessors; | |||
@Setter | |||
@Accessors(chain = true) | |||
public class YgzCardBlackUploadResponse extends YgzCommonResponse { | |||
// 1、上传成功 2、无需上传 -1 、再尝试 0、需手工反白 | |||
private Integer uploadStatus; | |||
} |
@@ -8,5 +8,6 @@ import lombok.experimental.Accessors; | |||
@Setter | |||
@Accessors(chain = true) | |||
public class YgzObuBlackUploadResponse extends YgzCommonResponse { | |||
// 1、上传成功 2、无需上传 -1 、再尝试 0、需手工反白 | |||
private Integer uploadStatus; | |||
} |
@@ -4,6 +4,7 @@ import cn.com.taiji.common.repo.jpa.AbstractJpaRepo; | |||
import cn.com.taiji.core.entity.basic.QtkVehicleInfo; | |||
import org.springframework.data.jpa.repository.Query; | |||
import java.time.LocalDateTime; | |||
import java.util.List; | |||
import java.util.Map; | |||
@@ -54,8 +54,7 @@ public class BlackCardManagerImpl extends AbstractCommManager implements BlackCa | |||
@Override | |||
public BlackCardInResponseDTO cardIn(BlackCardInRequestDTO req) throws ManagerException { | |||
CardInRequest cardInRequest = copyProperties(req, new CardInRequest()); | |||
cardInRequest.setSourceIn(req.getLoginSource()); | |||
cardInRequest.setOrgCode(findAgencyIdByToken(req.getAccessToken())); | |||
cardInRequest.setSourceIn(req.getOrderSource().name()); | |||
AbstractBlsResponse blsResponse = null; | |||
try { | |||
blsResponse = jsonPostRepeat(cardInRequest); | |||
@@ -68,8 +67,7 @@ public class BlackCardManagerImpl extends AbstractCommManager implements BlackCa | |||
@Override | |||
public BlackCardOutResponseDTO cardOut(BlackCardOutRequestDTO req) throws ManagerException { | |||
CardOutRequest cardOutRequest = copyProperties(req, new CardOutRequest()); | |||
cardOutRequest.setSourceIn(req.getLoginSource()); | |||
cardOutRequest.setOrgCode(findAgencyIdByToken(req.getAccessToken())); | |||
cardOutRequest.setSourceIn(req.getOrderSource().name()); | |||
AbstractBlsResponse blsResponse = null; | |||
try { | |||
blsResponse = jsonPostRepeat(cardOutRequest); | |||
@@ -93,8 +91,7 @@ public class BlackCardManagerImpl extends AbstractCommManager implements BlackCa | |||
if (errorMsg.length() == 0){ | |||
if (blackCardImportModel.getStatus() == 1){ | |||
CardInRequest cardInRequest = copyProperties(blackCardImportModel, new CardInRequest()); | |||
cardInRequest.setSourceIn(req.getLoginSource()); | |||
cardInRequest.setOrgCode(findAgencyIdByToken(req.getAccessToken())); | |||
cardInRequest.setSourceIn(req.getOrderSource().name()); | |||
cardInRequest.setStaffId(req.getStaffId()); | |||
try { | |||
jsonPostRepeat(cardInRequest); | |||
@@ -103,8 +100,7 @@ public class BlackCardManagerImpl extends AbstractCommManager implements BlackCa | |||
} | |||
}else{ | |||
CardOutRequest cardOutRequest = copyProperties(blackCardImportModel, new CardOutRequest()); | |||
cardOutRequest.setSourceIn(req.getLoginSource()); | |||
cardOutRequest.setOrgCode(findAgencyIdByToken(req.getAccessToken())); | |||
cardOutRequest.setSourceIn(req.getOrderSource().name()); | |||
cardOutRequest.setStaffId(req.getStaffId()); | |||
try { | |||
jsonPostRepeat(cardOutRequest); |
@@ -52,8 +52,7 @@ public class BlackObuManagerImpl extends AbstractCommManager implements BlackObu | |||
@Override | |||
public BlackObuInResponseDTO obuIn(BlackObuInRequestDTO req) throws ManagerException { | |||
ObuInRequest obuInRequest = copyProperties(req, new ObuInRequest()); | |||
obuInRequest.setSourceIn(req.getLoginSource()); | |||
obuInRequest.setOrgCode(findAgencyIdByToken(req.getAccessToken())); | |||
obuInRequest.setSourceIn(req.getOrderSource().name()); | |||
AbstractBlsResponse blsResponse = null; | |||
try { | |||
blsResponse = jsonPostRepeat(obuInRequest); | |||
@@ -66,8 +65,7 @@ public class BlackObuManagerImpl extends AbstractCommManager implements BlackObu | |||
@Override | |||
public BlackObuOutResponseDTO obuOut(BlackObuOutRequestDTO req) throws ManagerException { | |||
ObuOutRequest obuOutRequest = copyProperties(req, new ObuOutRequest()); | |||
obuOutRequest.setSourceIn(req.getLoginSource()); | |||
obuOutRequest.setOrgCode(findAgencyIdByToken(req.getAccessToken())); | |||
obuOutRequest.setSourceIn(req.getOrderSource().name()); | |||
AbstractBlsResponse blsResponse = null; | |||
try { | |||
blsResponse = jsonPostRepeat(obuOutRequest); | |||
@@ -91,8 +89,7 @@ public class BlackObuManagerImpl extends AbstractCommManager implements BlackObu | |||
if (errorMsg.length() == 0){ | |||
if (blackObuImportModel.getStatus() == 1){ | |||
ObuInRequest obuInRequest = copyProperties(blackObuImportModel, new ObuInRequest()); | |||
obuInRequest.setSourceIn(req.getLoginSource()); | |||
obuInRequest.setOrgCode(findAgencyIdByToken(req.getAccessToken())); | |||
obuInRequest.setSourceIn(req.getOrderSource().name()); | |||
obuInRequest.setStaffId(req.getStaffId()); | |||
try { | |||
jsonPostRepeat(obuInRequest); | |||
@@ -101,8 +98,7 @@ public class BlackObuManagerImpl extends AbstractCommManager implements BlackObu | |||
} | |||
}else{ | |||
ObuOutRequest obuOutRequest = copyProperties(blackObuImportModel, new ObuOutRequest()); | |||
obuOutRequest.setSourceIn(req.getLoginSource()); | |||
obuOutRequest.setOrgCode(findAgencyIdByToken(req.getAccessToken())); | |||
obuOutRequest.setSourceIn(req.getOrderSource().name()); | |||
obuOutRequest.setStaffId(req.getStaffId()); | |||
try { | |||
jsonPostRepeat(obuOutRequest); |
@@ -14,6 +14,7 @@ dependencies { | |||
implementation "${groupname}:entity-core:1.0.0-SNAPSHOT" | |||
implementation "${groupname}:comm-core: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 "com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery" | |||
implementation "com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config" |
@@ -1,13 +1,18 @@ | |||
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.pub.CollectionTools; | |||
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.SourceType; | |||
import cn.com.taiji.core.entity.dict.ygz.DataSourceEnum; | |||
import cn.com.taiji.core.entity.log.BlsInterfaceLog; | |||
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.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.repo.jpa.basic.*; | |||
import cn.com.taiji.core.repo.jpa.log.BlsInterfaceLogRepo; | |||
@@ -18,9 +23,10 @@ import org.springframework.util.StringUtils; | |||
import java.time.LocalDateTime; | |||
import java.util.List; | |||
@Service | |||
public class BlackCardInManager extends AbstractManager implements LogManager<CardInRequest, AbstractBlsResponse, BlsInterfaceLog> { | |||
public class BlackCardInManager extends AbstractCommManager implements LogManager<CardInRequest, AbstractBlsResponse, BlsInterfaceLog> { | |||
@Autowired | |||
private QtkBlackCardRepo blackCardRepo; | |||
@@ -34,31 +40,18 @@ public class BlackCardInManager extends AbstractManager implements LogManager<Ca | |||
if (StringUtils.isEmpty(request.getOrgCode())){ | |||
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(); | |||
blsResponse.setUploadStatus(1); | |||
return onSuccess(request, blsResponse, BlsInterfaceLog.class, System.currentTimeMillis() - begin); | |||
@@ -68,6 +61,97 @@ public class BlackCardInManager extends AbstractManager implements LogManager<Ca | |||
} | |||
} | |||
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 | |||
public void doSaveLog(CardInRequest request, AbstractBlsResponse response, BlsInterfaceLog log) { |
@@ -10,6 +10,7 @@ import cn.com.taiji.core.entity.dict.basic.SourceType; | |||
import cn.com.taiji.core.entity.log.BlsInterfaceLog; | |||
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.ias.ygz.YgzCardBlackUploadResponse; | |||
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.QtkBlackCardRepo; | |||
@@ -30,6 +31,8 @@ public class BlackCardOutManager extends AbstractManager implements LogManager<C | |||
private QtkBlackCardHisRepo blackCardHisRepo; | |||
@Autowired | |||
private BlsInterfaceLogRepo logRepo; | |||
@Autowired | |||
private BlackCardInManager blackCardInManager; | |||
@Transactional(rollbackFor = Exception.class) | |||
public AbstractBlsResponse serviceHandle(CardOutRequest req) throws ServiceHandleException { | |||
@@ -39,26 +42,28 @@ public class BlackCardOutManager extends AbstractManager implements LogManager<C | |||
if (CollectionTools.isEmpty(blackCardList)){ | |||
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(); | |||
blsResponse.setUploadStatus(1); | |||
return onSuccess(req, blsResponse, BlsInterfaceLog.class, System.currentTimeMillis() - begin); | |||
@@ -68,7 +73,6 @@ public class BlackCardOutManager extends AbstractManager implements LogManager<C | |||
} | |||
} | |||
@Override | |||
public void doSaveLog(CardOutRequest request, AbstractBlsResponse response, BlsInterfaceLog log) { | |||
logger.info("enter do save log"); |
@@ -1,13 +1,18 @@ | |||
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.pub.CollectionTools; | |||
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.SourceType; | |||
import cn.com.taiji.core.entity.dict.ygz.DataSourceEnum; | |||
import cn.com.taiji.core.entity.log.BlsInterfaceLog; | |||
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.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.repo.jpa.basic.*; | |||
import cn.com.taiji.core.repo.jpa.log.BlsInterfaceLogRepo; | |||
@@ -17,10 +22,11 @@ import org.springframework.transaction.annotation.Transactional; | |||
import org.springframework.util.StringUtils; | |||
import java.time.LocalDateTime; | |||
import java.util.List; | |||
@Service("blackObuInManager") | |||
public class BlackObuInManager extends AbstractManager implements LogManager<ObuInRequest, AbstractBlsResponse, BlsInterfaceLog> { | |||
public class BlackObuInManager extends AbstractCommManager implements LogManager<ObuInRequest, AbstractBlsResponse, BlsInterfaceLog> { | |||
@Autowired | |||
private QtkBlackObuRepo blackObuRepo; | |||
@@ -31,36 +37,122 @@ public class BlackObuInManager extends AbstractManager implements LogManager<Obu | |||
public AbstractBlsResponse serviceHandle(ObuInRequest req) throws ServiceHandleException { | |||
try { | |||
long begin = System.currentTimeMillis(); | |||
if (StringUtils.isEmpty(req.getOrgCode())){ | |||
if (StringUtils.isEmpty(req.getOrgCode())) { | |||
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(); | |||
blsResponse.setUploadStatus(1); | |||
return onSuccess(req, blsResponse, BlsInterfaceLog.class, System.currentTimeMillis() - begin); | |||
} catch (Exception e) { | |||
logger.error("异常",e); | |||
logger.error("异常", e); | |||
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 | |||
public void doSaveLog(ObuInRequest request, AbstractBlsResponse response, BlsInterfaceLog log) { | |||
logger.info("enter do save log"); |
@@ -10,6 +10,7 @@ import cn.com.taiji.core.entity.dict.basic.SourceType; | |||
import cn.com.taiji.core.entity.log.BlsInterfaceLog; | |||
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.ias.ygz.YgzObuBlackUploadResponse; | |||
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.QtkBlackObuRepo; | |||
@@ -31,6 +32,8 @@ public class BlackObuOutManager extends AbstractManager implements LogManager<Ob | |||
private QtkBlackObuHisRepo blackObuHisRepo; | |||
@Autowired | |||
private BlsInterfaceLogRepo logRepo; | |||
@Autowired | |||
private BlackObuInManager blackObuInManager; | |||
@Transactional(rollbackFor = Exception.class) | |||
public AbstractBlsResponse serviceHandle(ObuOutRequest req) throws ServiceHandleException { | |||
@@ -40,26 +43,28 @@ public class BlackObuOutManager extends AbstractManager implements LogManager<Ob | |||
if (CollectionTools.isEmpty(blackObuList)){ | |||
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(); | |||
blsResponse.setUploadStatus(1); | |||
return onSuccess(req, blsResponse, BlsInterfaceLog.class, System.currentTimeMillis() - begin); | |||
@@ -70,6 +75,7 @@ public class BlackObuOutManager extends AbstractManager implements LogManager<Ob | |||
} | |||
@Override | |||
public void doSaveLog(ObuOutRequest request, AbstractBlsResponse response, BlsInterfaceLog log) { | |||
logger.info("enter do save log"); |