浏览代码

提交获取指令功能

master
梁超 1 个月前
父节点
当前提交
662b16d139

+ 34
- 17
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/inst/AbstractCallBackManager.java 查看文件

import cn.com.taiji.common.manager.net.http.ServiceHandleException; import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.dict.issue.TransactionBizType; import cn.com.taiji.core.entity.dict.issue.TransactionBizType;
import cn.com.taiji.core.entity.issue.TransactionStatus; 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.InstCallBackRequest;
import cn.com.taiji.core.model.comm.protocol.inss.inst.InstCallBackResponse; 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.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.core.repo.jpa.issue.TransactionStatusRepo; 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.cache.RedisWrapManager;
import cn.com.taiji.inss.manager.model.inst.IssueOrderVO; import cn.com.taiji.inss.manager.model.inst.IssueOrderVO;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import static cn.com.taiji.inss.manager.model.inst.InstConstant.CMD_SUCCESS; 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 @Autowired
private RedisWrapManager redisWrapManager; private RedisWrapManager redisWrapManager;
@Autowired @Autowired
private TransactionStatusRepo transactionStatusRepo; private TransactionStatusRepo transactionStatusRepo;
@Autowired
private InssInterfaceLogRepo logRepo;
protected Map<Integer, AbstractCommandHandler> cmdHandlers = Maps.newHashMap(); protected Map<Integer, AbstractCommandHandler> cmdHandlers = Maps.newHashMap();


public final InstCallBackResponse serviceHandle(InstCallBackRequest request) throws ServiceHandleException { 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; abstract void validInternal(InstCallBackRequest request, IssueOrderVO vo) throws ServiceHandleException;
tx.setInfo(info); tx.setInfo(info);
transactionStatusRepo.persist(tx); 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 查看文件

import cn.com.taiji.core.entity.invw.InvwObuDetails; import cn.com.taiji.core.entity.invw.InvwObuDetails;
import cn.com.taiji.core.entity.invw.InvwWarehouse; import cn.com.taiji.core.entity.invw.InvwWarehouse;
import cn.com.taiji.core.entity.issue.IssueOrderinfo; 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.cache.RedisCacheManager;
import cn.com.taiji.core.manager.comm.LogManager;
import cn.com.taiji.core.manager.tools.issue.QdCallUtil; 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.ats.notice.AtsChannelNoticeResponse;
import cn.com.taiji.core.model.comm.protocol.inss.inst.InstApplyRequest; import cn.com.taiji.core.model.comm.protocol.inss.inst.InstApplyRequest;
import cn.com.taiji.core.repo.jpa.invw.InvwObuDetailsRepo; 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.invw.InvwWarehouseRepo;
import cn.com.taiji.core.repo.jpa.issue.IssueOrderinfoRepo; 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.MyFinals;
import cn.com.taiji.inss.manager.model.inst.CmdType; import cn.com.taiji.inss.manager.model.inst.CmdType;
import cn.com.taiji.inss.manager.model.inst.InstConstant; import cn.com.taiji.inss.manager.model.inst.InstConstant;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;


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


@Autowired @Autowired
private IssueOrderinfoRepo orderInfoRepo; private IssueOrderinfoRepo orderInfoRepo;
@Autowired @Autowired
private InvwWarehouseRepo warehouseRepo; private InvwWarehouseRepo warehouseRepo;
@Autowired @Autowired
private InssInterfaceLogRepo logRepo;
@Autowired
private QdCallUtil qdCallUtil; 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 { private void businessValidate(IssueOrderinfo orderInfo, InstApplyRequest req) throws ServiceHandleException {
} }
} }


@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 查看文件

import cn.com.taiji.common.manager.ManagerException; 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.core.entity.basic.QtkCustomerInfo; 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.entity.issue.VfjCOSRecord;
import cn.com.taiji.core.model.comm.COSConstant; import cn.com.taiji.core.model.comm.COSConstant;
import cn.com.taiji.core.model.comm.protocol.FormatException; 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 查看文件

import cn.com.taiji.core.entity.invw.InvwObuDetails; import cn.com.taiji.core.entity.invw.InvwObuDetails;
import cn.com.taiji.core.entity.issue.IssueOrderinfo; import cn.com.taiji.core.entity.issue.IssueOrderinfo;
import cn.com.taiji.core.entity.issue.IssueProduct; 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.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.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.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.invw.InvwCardDetailsRepo; import cn.com.taiji.core.repo.jpa.invw.InvwCardDetailsRepo;
} }


} }


} }

正在加载...
取消
保存