Selaa lähdekoodia

提交获取指令功能

master
梁超 1 kuukausi sitten
vanhempi
commit
f8af082448

+ 0
- 169
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/inst/InstCallBackManager.java Näytä tiedosto

@@ -1,169 +0,0 @@
package cn.com.taiji.inss.manager.inst;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.dict.basic.CardType;
import cn.com.taiji.core.manager.cache.RedisCacheManager;
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.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.inss.manager.cache.RedisWrapManager;
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.IssueOrderRequset;
import cn.com.taiji.inss.manager.model.inst.IssueOrderResponse;
import cn.com.taiji.inss.manager.model.inst.IssueStepNo;
import cn.com.taiji.inss.manager.tools.InstTools;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.concurrent.TimeUnit;

@Service
public class InstCallBackManager extends RedisCacheManager {

@Autowired
private IssueOrderinfoRepo orderInfoRepo;
@Autowired
private InvwCardDetailsRepo cardDetailsRepo;
@Autowired
private InvwObuDetailsRepo obuDetailsRepo;
@Autowired
private InvwWarehouseRepo warehouseRepo;
@Autowired
private RedisWrapManager redisWrapManager;
@Autowired
private IssueCommManager issueCommManager;

public InstCallBackResponse serviceHandle(InstCallBackRequest req) throws ServiceHandleException {
logger.info("指令回传阶段:{},请求参数{}", req.getStepNo(), req.toJson());
switch (IssueStepNo.find(req.getStepNo())) {
case FIRST:
// 读取卡信息、进行开卡申请、返回写卡指令
return cardIssuingApply(req);
// case SECOND:
// // 写卡指令回传,返回寫卡確認信息指令
// return cardOrderConfirmReturn(req);
// case THIRD:
// // 获取OBU信息,下发OBU发行申请、返回写系统信息
// return obuIssueApply(req);//下发writeSystem指令
// case FOURTH:
// // 写系统信息指令回传,返回切换车辆信息文件目录,并获取随机数
// return writeSystemCallBack(req);
// case FIFTH:
// // 车辆信息文件目录切换成功,查询车辆信息、返回修改车辆信息
// return updateVehicleInfo(req);//下发writeVehicleInfo指令
// case SIXTH:
// // 修改车辆信息指令回传,obu发行确认,返回切换根目录指令
// return updateVehicleInfoCallback(req);
// case SEVENTH:
// // 获取随机数,返回在线激活指令
// return onlineActive(req);
// case EIGHTH:
// // OBU在线激活指令回传,安装确认,完成激活
// return installConfirm(req);
}
return null;
}

// private InstCallBackResponse cardOrderConfirmReturn(InstCallBackRequest req) throws ServiceHandleException {
// // this.validCmdResult(request.getCmdResult(), "开卡申请写卡指令执行失败!");
// IssueOrderRequset issueOrder = getIssueOrderVo(req.getTransOrderId());
// BeanTools.copyProperties(request, req);
// req.setCardId(issueOrderVo.getCardId());
// req.setCommand(request.getCmd());
// req.setCosRecordId(issueOrderVo.getCosRecordId());
// req.setResponse(request.getCmdResult());
// req.setCosType(1);
// comm(req, issueOrderVo.getOrderId(), request);
// String res = null;
// IssueOrderResponse s = issueCommManager.cardConfirmReturn(issueOrder, 1, req.getCmd());
// CardOrderConfirmResponse response = null;
// try {
// response = JsonTools.json2Object(s, CardOrderConfirmResponse.class);
// } catch (IOException e) {
// throw new ManagerException("写卡指令返回接口结果解析失败");
// }
// IssueCallbackResponseDTO issuingResponse = new IssueCallbackResponseDTO();
// issuingResponse.setTransOrderId(request.getTransOrderId());
// issuingResponse.setCmdType(CmdType.CARD.value());
// issuingResponse.setCmd(response.getCommand());
// if (response.getOrderStatus() == COSConstant.COS_INCOMPLETED) {
// issuingResponse.setStepNo(IssueStepNoEnum.SECOND.getStepNo());
// } else {
// issuingResponse.setStepNo(IssueStepNoEnum.THIRD.getStepNo());
// CardConfirmRequest cardConfirmRequestr = new CardConfirmRequest();
// BeanTools.copyProperties(request, cardConfirmRequestr);// 调用开卡确认
// cardConfirmRequestr.setCosRecordId(issueOrderVo.getCosRecordId());
// cardConfirmRequestr.setCardId(issueOrderVo.getCardId());
// cardConfirmRequestr.setNetId(issueOrderVo.getNetId());
// // cardConfirmRequestr.setPackageNum(Integer.parseInt(issueOrderVo.getPackageNum()));
// if (Integer.valueOf(1).equals(getCardType(issueOrderVo.getCardId()))) {
// // 如果是记账卡,默认传111,老系统逻辑
// cardConfirmRequestr.setCardType(111);
// } else {
// // 如果是储值卡,默认传211,老系统逻辑
// cardConfirmRequestr.setCardType(211);
// }
// cardConfirmRequestr.setBrand(3);
// cardConfirmRequestr.setModel("0");
// LocalDateTime date = LocalDateTime.now();
// String enableTime = date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"));
// String expireTime = date.plusYears(10L).format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"));
// cardConfirmRequestr.setEnableTime(enableTime);
// cardConfirmRequestr.setExpireTime(expireTime);
// CsmsnOrderinfo order = orderInfoRepo.findByOrderNo(issueOrderVo.getOrderId());
// cardConfirmRequestr.setPackageNum(order.getProductId());
// cardConfirmRequestr.setOrderId(issueOrderVo.getOrderId());
// issueCommManager.cardConfirm(cardConfirmRequestr);
// persistTransaction(ISSUE_CARD_SYNC, issueOrderVo.getOrderId(), "card");
// persistTransaction(ISSUE_CARD_UPLOAD, issueOrderVo.getOrderId(), Operation.ADD.name());
// issuingResponse.setStepNo(IssueStepNoEnum.THIRD.getStepNo());
// issuingResponse.setCmdType(CmdType.OBU.value());
// issuingResponse.setCmd(CommConstant.GET_OBU_INFO);
// }
// return issuingResponse;
// }

private InstCallBackResponse cardIssuingApply(InstCallBackRequest req) throws ServiceHandleException {
// 读取卡信息、进行开卡申请、返回写卡指令
IssueOrderRequset issueOrder = getIssueOrderVo(req.getTransOrderId());
// 判断指令执行结果
String[] cmdRs = InstTools.validCmdResult(req.getCmdResult());
if (cmdRs.length < 3) {
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("指令结果长度不正确");
}
// 获取卡号
String cardId = cmdRs[2].substring(20, 40);
// 获取netId
String netId = cmdRs[2].substring(20, 24);
issueOrder.setNetId(netId);
CardType cardType = InstTools.getCardType(cardId);
issueOrder.setCardType(cardType);
issueOrder.setEnableTime(LocalDateTime.now());
issueOrder.setExpireTime(issueOrder.getEnableTime().plusYears(10));
// 1、调用开卡申请接口
IssueOrderResponse res = issueCommManager.cardApply(issueOrder);
issueOrder.setCosRecordId(res.getCosRecordId());
issueOrder.setCardId(cardId);
logger.info("+++++++++++++++++++cosRecordId" + res.getCosRecordId());
redisWrapManager.set(MyFinals.ISSUE_KEY + req.getTransOrderId(), issueOrder.toJson(), 300000, TimeUnit.SECONDS);
return new InstCallBackResponse(IssueStepNo.SECOND.getStepNo(), res.getCommand(), CmdType.CARD.value(),
req.getTransOrderId());
}

private IssueOrderRequset getIssueOrderVo(String transOrderId) throws ServiceHandleException {
IssueOrderRequset redisData = redisWrapManager.findObj(IssueOrderRequset.class, MyFinals.ISSUE_KEY + transOrderId);
if (ObjectUtils.isEmpty(redisData)) {
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("未查询到缓存订单信息");
}
return redisData;
}


}

+ 6
- 1
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/inst/InstOnlineActiveMananger.java Näytä tiedosto

@@ -381,6 +381,11 @@ public class InstOnlineActiveMananger extends AbstractCallBackManager {
persistTransaction(ISSUE_OBU_SYNC, vo.getOrderId(), "obu");
persistTransaction(ISSUE_OBU_UPLOAD, vo.getOrderId(), Operation.ADD.name());
//通知渠道
qdCallUtil.callBackQd(orderInfo, "");
if(orderInfo.getOrderSource()==SourceType.CHANNEL){
qdCallUtil.callBackQd(orderInfo, "");
//公众号通知

}

}
}

Loading…
Peruuta
Tallenna