Pārlūkot izejas kodu

blk卡签下黑反馈调用部中心接口

master
huminghao pirms 1 mēnesi
vecāks
revīzija
bfd5813302

+ 1
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/ygz/YgzCardBlackUploadResponse.java Parādīt failu

@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;
} }

+ 1
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/ygz/YgzObuBlackUploadResponse.java Parādīt failu

@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;
} }

+ 1
- 0
gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/basic/QtkVehicleInfoRepo.java Parādīt failu

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;



+ 4
- 8
zhywpt-app-managew/src/main/java/cn/com/taiji/managew/manager/bls/BlackCardManagerImpl.java Parādīt failu

@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);

+ 4
- 8
zhywpt-app-managew/src/main/java/cn/com/taiji/managew/manager/bls/BlackObuManagerImpl.java Parādīt failu

@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);

+ 1
- 0
zhywpt-service-bls/build.gradle Parādīt failu

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"

+ 110
- 26
zhywpt-service-bls/src/main/java/cn/com/taiji/bls/manager/blk/BlackCardInManager.java Parādīt failu

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) {

+ 25
- 21
zhywpt-service-bls/src/main/java/cn/com/taiji/bls/manager/blk/BlackCardOutManager.java Parādīt failu

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");

+ 113
- 21
zhywpt-service-bls/src/main/java/cn/com/taiji/bls/manager/blk/BlackObuInManager.java Parādīt failu

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");

+ 26
- 20
zhywpt-service-bls/src/main/java/cn/com/taiji/bls/manager/blk/BlackObuOutManager.java Parādīt failu

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");

Notiek ielāde…
Atcelt
Saglabāt