Parcourir la source

提交获取指令功能

master
梁超 il y a 1 mois
Parent
révision
662b16d139

+ 34
- 17
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/inst/AbstractCallBackManager.java Voir le fichier

@@ -4,10 +4,13 @@ import cn.com.taiji.common.manager.AbstractManager;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.dict.issue.TransactionBizType;
import cn.com.taiji.core.entity.issue.TransactionStatus;
import cn.com.taiji.core.entity.log.InssInterfaceLog;
import cn.com.taiji.core.manager.comm.LogManager;
import cn.com.taiji.core.model.comm.protocol.inss.inst.InstCallBackRequest;
import cn.com.taiji.core.model.comm.protocol.inss.inst.InstCallBackResponse;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.core.repo.jpa.issue.TransactionStatusRepo;
import cn.com.taiji.core.repo.jpa.log.InssInterfaceLogRepo;
import cn.com.taiji.inss.manager.cache.RedisWrapManager;
import cn.com.taiji.inss.manager.model.inst.IssueOrderVO;
import com.google.common.collect.Maps;
@@ -21,30 +24,39 @@ import static cn.com.taiji.inss.manager.model.MyFinals.ISSUE_KEY;
import static cn.com.taiji.inss.manager.model.inst.InstConstant.CMD_SUCCESS;


public abstract class AbstractCallBackManager extends AbstractManager {
public abstract class AbstractCallBackManager extends AbstractManager implements LogManager<InstCallBackRequest, InstCallBackResponse, InssInterfaceLog> {
@Autowired
private RedisWrapManager redisWrapManager;
@Autowired
private TransactionStatusRepo transactionStatusRepo;
@Autowired
private InssInterfaceLogRepo logRepo;
protected Map<Integer, AbstractCommandHandler> cmdHandlers = Maps.newHashMap();

public final InstCallBackResponse serviceHandle(InstCallBackRequest request) throws ServiceHandleException {
//读缓存
IssueOrderVO vo = readCache(request.getTransOrderId());
//业务校验
valid(request, vo);
//上一步指令执行成功保存数据
saveData(vo);
//初始化flag
vo.initFlag();
//业务处理
CommandHandler cmdHandler = cmdHandlers.get(request.getStepNo());
if (cmdHandler == null)
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("未找到处理模块,请联系管理员");
InstCallBackResponse response = cmdHandler.doHandle(request, vo);
//写缓存
writeCache(cmdHandler.getOrderVo());
return response.setStepNo(nextStep(vo, request)).setTransOrderId(request.getTransOrderId());
try {
long begin = System.currentTimeMillis();
//读缓存
IssueOrderVO vo = readCache(request.getTransOrderId());
//业务校验
valid(request, vo);
//上一步指令执行成功保存数据
saveData(vo);
//初始化flag
vo.initFlag();
//业务处理
CommandHandler cmdHandler = cmdHandlers.get(request.getStepNo());
if (cmdHandler == null)
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("未找到处理模块,请联系管理员");
InstCallBackResponse response = cmdHandler.doHandle(request, vo);
//写缓存
writeCache(cmdHandler.getOrderVo());
response.setStepNo(nextStep(vo, request)).setTransOrderId(request.getTransOrderId());
return onSuccess(request, response, InssInterfaceLog.class, System.currentTimeMillis() - begin);
} catch (ServiceHandleException e) {
throw exception(request, InssInterfaceLog.class, e.getMessage());
}

}

abstract void validInternal(InstCallBackRequest request, IssueOrderVO vo) throws ServiceHandleException;
@@ -91,4 +103,9 @@ public abstract class AbstractCallBackManager extends AbstractManager {
tx.setInfo(info);
transactionStatusRepo.persist(tx);
}

@Override
public void doSaveLog(InstCallBackRequest request, InstCallBackResponse response, InssInterfaceLog log) {
logRepo.persist(log);
}
}

+ 38
- 24
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/inst/InstApplyManager.java Voir le fichier

@@ -11,7 +11,9 @@ import cn.com.taiji.core.entity.invw.InvwCardDetails;
import cn.com.taiji.core.entity.invw.InvwObuDetails;
import cn.com.taiji.core.entity.invw.InvwWarehouse;
import cn.com.taiji.core.entity.issue.IssueOrderinfo;
import cn.com.taiji.core.entity.log.InssInterfaceLog;
import cn.com.taiji.core.manager.cache.RedisCacheManager;
import cn.com.taiji.core.manager.comm.LogManager;
import cn.com.taiji.core.manager.tools.issue.QdCallUtil;
import cn.com.taiji.core.model.comm.protocol.ats.notice.AtsChannelNoticeResponse;
import cn.com.taiji.core.model.comm.protocol.inss.inst.InstApplyRequest;
@@ -21,6 +23,7 @@ import cn.com.taiji.core.repo.jpa.invw.InvwCardDetailsRepo;
import cn.com.taiji.core.repo.jpa.invw.InvwObuDetailsRepo;
import cn.com.taiji.core.repo.jpa.invw.InvwWarehouseRepo;
import cn.com.taiji.core.repo.jpa.issue.IssueOrderinfoRepo;
import cn.com.taiji.core.repo.jpa.log.InssInterfaceLogRepo;
import cn.com.taiji.inss.manager.model.MyFinals;
import cn.com.taiji.inss.manager.model.inst.CmdType;
import cn.com.taiji.inss.manager.model.inst.InstConstant;
@@ -32,7 +35,7 @@ import java.util.UUID;
import java.util.concurrent.TimeUnit;

@Service
public class InstApplyManager extends RedisCacheManager {
public class InstApplyManager extends RedisCacheManager implements LogManager<InstApplyRequest, InstApplyResponse, InssInterfaceLog> {

@Autowired
private IssueOrderinfoRepo orderInfoRepo;
@@ -43,34 +46,41 @@ public class InstApplyManager extends RedisCacheManager {
@Autowired
private InvwWarehouseRepo warehouseRepo;
@Autowired
private InssInterfaceLogRepo logRepo;
@Autowired
private QdCallUtil qdCallUtil;

public InstApplyResponse serviceHandle(InstApplyRequest req) throws ServiceHandleException {

IssueOrderinfo orderInfo = orderInfoRepo.findByOrderNo(req.getOrderNo());
if (orderInfo == null) {
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("订单不存在");
}
// 业务校验
businessValidate(orderInfo, req);
public InstApplyResponse serviceHandle(InstApplyRequest request) throws ServiceHandleException {
try {
long begin = System.currentTimeMillis();
IssueOrderinfo orderInfo = orderInfoRepo.findByOrderNo(request.getOrderNo());
if (orderInfo == null) {
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("订单不存在");
}
// 业务校验
businessValidate(orderInfo, request);

// 指令回传所需信息加入缓存.有效期 20 秒
String transOrderId = UUID.randomUUID().toString().replace("-", "");
IssueOrderVO vo = new IssueOrderVO(transOrderId, orderInfo.getVehicleId(), orderInfo.getCustomerId(),
orderInfo.getOrderNo(), orderInfo.getOrderSource(), orderInfo.getProductId());
vo.setCardId(req.getCardId());
vo.setObuId(req.getObuId());
vo.setCardVersion(req.getCardVersion());
vo.setObuVersion(req.getObuVersion());
redisManager.set(MyFinals.ISSUE_KEY + transOrderId, vo.toJson(), 300000, TimeUnit.SECONDS);
// 指令回传所需信息加入缓存.有效期 20 秒
String transOrderId = UUID.randomUUID().toString().replace("-", "");
IssueOrderVO vo = new IssueOrderVO(transOrderId, orderInfo.getVehicleId(), orderInfo.getCustomerId(),
orderInfo.getOrderNo(), orderInfo.getOrderSource(), orderInfo.getProductId());
vo.setCardId(request.getCardId());
vo.setObuId(request.getObuId());
vo.setCardVersion(request.getCardVersion());
vo.setObuVersion(request.getObuVersion());
redisManager.set(MyFinals.ISSUE_KEY + transOrderId, vo.toJson(), 300000, TimeUnit.SECONDS);

if (vo.getCardStatus() == CardStatus.ZC) {
return new InstApplyResponse(9, InstConstant.GET_CARD_CMD,
CmdType.CARD.value(), transOrderId);
} else {
return new InstApplyResponse(1, InstConstant.HOME_DIRECTORY,
CmdType.CARD.value(), transOrderId);
if (vo.getCardStatus() == CardStatus.ZC) {
return onSuccess(request, new InstApplyResponse(9, InstConstant.GET_CARD_CMD,
CmdType.CARD.value(), transOrderId), InssInterfaceLog.class, System.currentTimeMillis() - begin);
} else {
return onSuccess(request, new InstApplyResponse(1, InstConstant.HOME_DIRECTORY,
CmdType.CARD.value(), transOrderId), InssInterfaceLog.class, System.currentTimeMillis() - begin);
}
} catch (ServiceHandleException e) {
throw exception(request, InssInterfaceLog.class, e.getMessage());
}

}

private void businessValidate(IssueOrderinfo orderInfo, InstApplyRequest req) throws ServiceHandleException {
@@ -120,4 +130,8 @@ public class InstApplyManager extends RedisCacheManager {
}
}

@Override
public void doSaveLog(InstApplyRequest request, InstApplyResponse response, InssInterfaceLog log) {
logRepo.persist(log);
}
}

+ 0
- 1
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/inst/InstCard0016WriteHandler.java Voir le fichier

@@ -3,7 +3,6 @@ package cn.com.taiji.inss.manager.inst;
import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.basic.QtkCustomerInfo;
import cn.com.taiji.core.entity.dict.issue.ExcuteByVfjStep;
import cn.com.taiji.core.entity.issue.VfjCOSRecord;
import cn.com.taiji.core.model.comm.COSConstant;
import cn.com.taiji.core.model.comm.protocol.FormatException;

+ 4
- 0
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/inst/InstOnlineActiveMananger.java Voir le fichier

@@ -11,8 +11,10 @@ import cn.com.taiji.core.entity.invw.InvwCardDetails;
import cn.com.taiji.core.entity.invw.InvwObuDetails;
import cn.com.taiji.core.entity.issue.IssueOrderinfo;
import cn.com.taiji.core.entity.issue.IssueProduct;
import cn.com.taiji.core.entity.log.InssInterfaceLog;
import cn.com.taiji.core.manager.tools.issue.QdCallUtil;
import cn.com.taiji.core.model.comm.protocol.inss.inst.InstCallBackRequest;
import cn.com.taiji.core.model.comm.protocol.inss.inst.InstCallBackResponse;
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.invw.InvwCardDetailsRepo;
@@ -388,4 +390,6 @@ public class InstOnlineActiveMananger extends AbstractCallBackManager {
}

}


}

Chargement…
Annuler
Enregistrer