@@ -36,20 +36,20 @@ public enum VehicleUseCharacter { | |||
private final String value; | |||
private final int code; | |||
private VehicleUseCharacter(String value, int typeCode) { | |||
private VehicleUseCharacter(String value, int code) { | |||
this.value = value; | |||
this.code = typeCode; | |||
this.code = code; | |||
} | |||
public int getTypeCode() { | |||
public int getCode() { | |||
return code; | |||
} | |||
public static VehicleUseCharacter valueOfCode(int code){ | |||
for(VehicleUseCharacter vo : VehicleUseCharacter.values()){ | |||
if(vo.getTypeCode() == code){ | |||
if(vo.getCode() == code){ | |||
return vo; | |||
} | |||
} | |||
@@ -59,7 +59,7 @@ public enum VehicleUseCharacter { | |||
public static List<VehicleUseCharacter> getWithoutEmergency(){ | |||
List<VehicleUseCharacter> list = Lists.newArrayList(); | |||
for (VehicleUseCharacter temp : VehicleUseCharacter.values()) { | |||
if(temp.getTypeCode() != YJJYC.getTypeCode()) { | |||
if(temp.getCode() != YJJYC.getCode()) { | |||
list.add(temp); | |||
} | |||
} |
@@ -6,11 +6,8 @@ import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse; | |||
import cn.com.taiji.core.model.comm.protocol.SignJsonRequest; | |||
import cn.com.taiji.core.model.comm.protocol.ias.IasServiceType; | |||
import cn.com.taiji.core.model.comm.protocol.ias.bill.*; | |||
import cn.com.taiji.core.model.comm.protocol.ias.order.OrderInitRequest; | |||
import cn.com.taiji.core.model.comm.protocol.ias.order.OrderServiceCmd; | |||
import cn.com.taiji.ias.manager.bill.BillBusinessManager; | |||
import cn.com.taiji.ias.manager.order.OrderInitManager; | |||
import cn.com.taiji.core.model.comm.protocol.ias.order.*; | |||
import cn.com.taiji.ias.manager.order.*; | |||
import com.zgglyun.common.model.AbstractHttpRequestInfo; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.stereotype.Service; | |||
@@ -21,15 +18,55 @@ public class OrderServiceHandler extends AbstractIasServiceHandler<OrderServiceC | |||
super(IasServiceType.ORDER); | |||
} | |||
@Autowired | |||
private ProductQueryManager productQueryManager; | |||
@Autowired | |||
private OrderInitManager orderInitManager; | |||
@Autowired | |||
private UserUploadManager userUploadManager; | |||
@Autowired | |||
private VehicleUploadManager vehicleUploadManager; | |||
@Autowired | |||
private SignQueryManager signQueryManager; | |||
@Autowired | |||
private SignCallBackManager signCallBackManager; | |||
@Autowired | |||
private OrderPayApplyManager payApplyManager; | |||
@Autowired | |||
private OrderPayQueryManager payQueryManager; | |||
@Autowired | |||
private OrderStatusQueryManager statusQueryManager; | |||
@Autowired | |||
private OrderCancelManager orderCancelManager; | |||
@Autowired | |||
private OrderTransactionManager orderTransactionManager; | |||
@Override | |||
protected <T extends AbstractSignTypeRequest<?>> AbstractSignTypeResponse handleInternal(T request, SignJsonRequest jsonReq, AbstractHttpRequestInfo reqInfo) throws ServiceHandleException { | |||
OrderServiceCmd cmd = OrderServiceCmd.fromIfCode(jsonReq.getIfCode()); | |||
switch (cmd) { | |||
case PRODUCTQUERY: | |||
return productQueryManager.serviceHandle((ProductQueryRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo); | |||
case INIT: | |||
return orderInitManager.serviceHandle((OrderInitRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo); | |||
case USERUPLOAD: | |||
return userUploadManager.serviceHandle((UserUploadRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo); | |||
case VEHICLEUPLOAD: | |||
return vehicleUploadManager.serviceHandle((VehicleUploadRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo); | |||
case SIGNQUERY: | |||
return signQueryManager.serviceHandle((SignQueryRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo); | |||
case SIGNCALLBACK: | |||
return signCallBackManager.serviceHandle((SignCallBackRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo); | |||
case PAYAPPLY: | |||
return payApplyManager.serviceHandle((OrderPayApplyRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo); | |||
case PAYQUERY: | |||
return payQueryManager.serviceHandle((OrderPayQueryRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo); | |||
case STATUSQUERY: | |||
return statusQueryManager.serviceHandle((OrderStatusQueryRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo); | |||
case CANCEL: | |||
return orderCancelManager.serviceHandle((OrderCancelRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo); | |||
case TRANSACTION: | |||
return orderTransactionManager.serviceHandle((OrderTransactionRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo); | |||
default: | |||
throw FileProtocolSystemError.NOT_SUPPORT.toHandleException(jsonReq.getIfCode()); | |||
} |
@@ -2,7 +2,6 @@ package cn.com.taiji.ias.manager.order; | |||
import cn.com.taiji.common.manager.ManagerException; | |||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||
import cn.com.taiji.common.pub.StringTools; | |||
import cn.com.taiji.core.entity.basic.QtkCustomerInfo; | |||
import cn.com.taiji.core.entity.basic.QtkVehicleInfo; | |||
import cn.com.taiji.core.entity.dict.basic.*; |
@@ -1,17 +1,85 @@ | |||
package cn.com.taiji.ias.manager.valid; | |||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||
import cn.com.taiji.common.pub.BeanTools; | |||
import cn.com.taiji.core.entity.ygz.DaspOfflineHasSend; | |||
import cn.com.taiji.core.model.comm.protocol.ias.vaild.VehiclePlateCheckRequest; | |||
import cn.com.taiji.core.model.comm.protocol.ias.vaild.VehiclePlateCheckResponse; | |||
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError; | |||
import cn.com.taiji.core.repo.jpa.ygz.DaspOfflineHasSendRepo; | |||
import cn.com.taiji.ias.manager.portal.AbstractLoginManager; | |||
import cn.com.taiji.tccore.manager.comm.client.BspClientHelper; | |||
import com.txffp.iss.model.comm.protocol.offLine.issue.IssuePCOFLRequest; | |||
import com.txffp.iss.model.comm.protocol.offLine.issue.IssuePCOFLResponse; | |||
import com.txffp.ucore.manager.comm.client.UspClientHelper; | |||
import com.txffp.ucore.model.comm.protocol.sso.auth.TouchTokenRequest; | |||
import com.txffp.ucore.model.comm.protocol.sso.auth.TouchTokenResponse; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.stereotype.Service; | |||
import java.io.IOException; | |||
import java.time.LocalDateTime; | |||
import java.util.Random; | |||
@Service | |||
public class VehiclePlateCheckManager extends AbstractLoginManager { | |||
public VehiclePlateCheckResponse serviceHandle(VehiclePlateCheckRequest request) throws ServiceHandleException { | |||
public static final int MAX = 9999; | |||
private final Random random = new Random(); | |||
@Autowired | |||
private DaspOfflineHasSendRepo sendRepo; | |||
public VehiclePlateCheckResponse serviceHandle(VehiclePlateCheckRequest req) throws ServiceHandleException { | |||
if (hasText(req.getCustomerId())) { | |||
DaspOfflineHasSend po = sendRepo.findInfoById(req.getCustomerId()); | |||
if (po == null || po.getOfflineOpenId() == null) | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("该用户没有成功上传,请确认用户上传情况"); | |||
} | |||
int rowNum = random.nextInt(MAX) % MAX + 1; | |||
DaspOfflineHasSend userHasSend = sendRepo.findOneByRowNum(String.valueOf(rowNum)); | |||
refreshToken(userHasSend); | |||
IssuePCOFLRequest issuePCOFLRequest = new IssuePCOFLRequest(); | |||
issuePCOFLRequest.setAccessToken(userHasSend.getOfflineToken()); | |||
issuePCOFLRequest.setOpenId(userHasSend.getOfflineOpenId()); | |||
issuePCOFLRequest.setAccountId(userHasSend.getOfflineTransId()); | |||
issuePCOFLRequest.setPlateNum(req.getVehiclePlate()); | |||
issuePCOFLRequest.setPlateColor(req.getVehiclePlateColor()); | |||
// 校验结果 1-发行方已办理 2-统一平台办理 3-未关联 4-未办理 5办理中 | |||
IssuePCOFLResponse response = null; | |||
try { | |||
response = BspClientHelper.binPostUrl(issuePCOFLRequest); | |||
} catch (IOException e) { | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("BRZ接口请求异常"); | |||
} | |||
if (response == null) | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("调用部中心校验车牌接口失败"); | |||
VehiclePlateCheckResponse res = new VehiclePlateCheckResponse(); | |||
BeanTools.copyProperties(response, res); | |||
return res; | |||
} | |||
return null; | |||
private void refreshToken(DaspOfflineHasSend userHasSend) throws ServiceHandleException { | |||
if (userHasSend.getOfflineTokenTime().plusHours(3).isAfter(LocalDateTime.now())) { | |||
return; | |||
} | |||
TouchTokenRequest req = new TouchTokenRequest(); | |||
req.setAppId("52010101"); | |||
req.setAccessToken(userHasSend.getOfflineToken()); | |||
req.setOpenId(userHasSend.getOfflineOpenId()); | |||
TouchTokenResponse res = null; | |||
try { | |||
res = UspClientHelper.binPostUrl(req); | |||
} catch (IOException e) { | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("BRZ接口请求异常"); | |||
} | |||
if (res != null && res.getInfo().contains("成功")) { | |||
userHasSend.setOfflineToken(res.getAccessToken()); | |||
userHasSend.setOfflineTokenTime(LocalDateTime.now()); | |||
userHasSend.setOfflineSendResult(res.getInfo()); | |||
sendRepo.merge(userHasSend); | |||
} | |||
} | |||
} |