|
|
@@ -1,12 +1,28 @@ |
|
|
|
package cn.com.taiji.iaw.manager.ass; |
|
|
|
|
|
|
|
import cn.com.taiji.common.manager.ManagerException; |
|
|
|
import cn.com.taiji.core.entity.ass.AssAgencyConfig; |
|
|
|
import cn.com.taiji.core.entity.ass.AssDeviceUpgrade; |
|
|
|
import cn.com.taiji.core.entity.ass.AssOrderinfo; |
|
|
|
import cn.com.taiji.core.entity.ass.AssVehicleInfoChange; |
|
|
|
import cn.com.taiji.core.entity.basic.QtkCardInfo; |
|
|
|
import cn.com.taiji.core.entity.basic.QtkVehicleInfo; |
|
|
|
import cn.com.taiji.core.entity.dict.ass.AssOrderStatus; |
|
|
|
import cn.com.taiji.core.entity.dict.ass.AssOrderStep; |
|
|
|
import cn.com.taiji.core.entity.dict.ass.AssOrderType; |
|
|
|
import cn.com.taiji.core.entity.user.AccountInfo; |
|
|
|
import cn.com.taiji.core.model.comm.protocol.ias.ass.ResignRequest; |
|
|
|
import cn.com.taiji.core.model.comm.protocol.ias.order.SignQueryResponse; |
|
|
|
import cn.com.taiji.core.repo.jpa.ass.AssAgencyConfigRepo; |
|
|
|
import cn.com.taiji.core.repo.jpa.ass.AssDeviceUpgradeRepo; |
|
|
|
import cn.com.taiji.core.repo.jpa.ass.AssOrderinfoRepo; |
|
|
|
import cn.com.taiji.core.repo.jpa.ass.AssVehicleInfoChangeRepo; |
|
|
|
import cn.com.taiji.core.repo.jpa.basic.QtkCardInfoRepo; |
|
|
|
import cn.com.taiji.core.repo.jpa.basic.QtkVehicleInfoRepo; |
|
|
|
import cn.com.taiji.iaw.dto.ass.sign.ResignCheckResDTO; |
|
|
|
import cn.com.taiji.iaw.dto.ass.sign.ResignResponseDTO; |
|
|
|
import cn.com.taiji.iaw.dto.ass.vehicleChange.VehicleChangeApplyReqDTO; |
|
|
|
import cn.com.taiji.iaw.dto.ass.vehicleChange.VehicleChangeSignReqDTO; |
|
|
|
import cn.com.taiji.iaw.dto.ass.vehicleChange.VehicleChangeViewReqDTO; |
|
|
|
import cn.com.taiji.iaw.dto.ass.vehicleChange.VehicleChangeViewResDTO; |
|
|
|
import cn.com.taiji.iaw.manager.AbstractIawManager; |
|
|
@@ -31,6 +47,17 @@ public class VehicleChangeMangerImpl extends AbstractIawManager implements Vehic |
|
|
|
private AssVehicleInfoChangeRepo assVehicleInfoChangeRepo; |
|
|
|
@Autowired |
|
|
|
private QtkVehicleInfoRepo qtkVehicleInfoRepo; |
|
|
|
@Autowired |
|
|
|
private QtkCardInfoRepo qtkCardInfoRepo; |
|
|
|
@Autowired |
|
|
|
private AssAgencyConfigRepo assAgencyConfigRepo; |
|
|
|
@Autowired |
|
|
|
private AssDeviceUpgradeRepo assDeviceUpgradeRepo; |
|
|
|
|
|
|
|
@Override |
|
|
|
public void apply(VehicleChangeApplyReqDTO dto) { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public VehicleChangeViewResDTO beforeReview(VehicleChangeViewReqDTO dto) throws ManagerException { |
|
|
@@ -83,4 +110,65 @@ public class VehicleChangeMangerImpl extends AbstractIawManager implements Vehic |
|
|
|
resDTO.setOrderStatus(assOrderinfo.getOrderStatus()); |
|
|
|
return resDTO; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public ResignCheckResDTO signCheck(VehicleChangeSignReqDTO dto) throws ManagerException { |
|
|
|
AssOrderinfo assOrderinfo = assOrderinfoRepo.findByOrderNo(dto.getOrderNo()); |
|
|
|
if (assOrderinfo == null) throw new ManagerException("订单不存在"); |
|
|
|
AssVehicleInfoChange vehicleInfoChange = assVehicleInfoChangeRepo.findByOrderNo(dto.getOrderNo()); |
|
|
|
QtkCardInfo cardInfo = qtkCardInfoRepo.findByVehicleIdAndCardStatus(assOrderinfo.getCardId()); |
|
|
|
//业务进行到这里,一定有正常的卡信息,这里抛异常提示 |
|
|
|
if (cardInfo == null) throw new ManagerException("车辆信息变更无法进行签约"); |
|
|
|
AccountInfo accountInfo = findAccountInfoByToken(dto.getAccessToken()); |
|
|
|
ResignRequest request = new ResignRequest(); |
|
|
|
request.setWxOpenId(dto.getSubOpenId()); |
|
|
|
request.setProductId(cardInfo.getPackageId()); |
|
|
|
//校验新车牌 |
|
|
|
request.setVehicleId(vehicleInfoChange.getVehiclePlate()+"_"+vehicleInfoChange.getVehiclePlateColor()); |
|
|
|
request.setName(accountInfo.getUserName()); |
|
|
|
request.setIdNum(accountInfo.getIdNum()); |
|
|
|
request.setFlag(1); |
|
|
|
SignQueryResponse response = jsonPostRepeat(request); |
|
|
|
ResignCheckResDTO resignCheckResDTO = copyProperties(response, new ResignCheckResDTO()); |
|
|
|
//签约成功,检测是否需要升级设备,是订单改带升级,否结束订单 |
|
|
|
if (!resignCheckResDTO.getUserState().equals("UNAUTHORIZED")) { |
|
|
|
AssDeviceUpgrade orderType = assDeviceUpgradeRepo.findByOrderNoAndOrderType(dto.getOrderNo(), AssOrderType.VEHICLE_UPDATE); |
|
|
|
if (orderType != null) { |
|
|
|
assOrderinfo.setOrderStep(AssOrderStep.WAITING_UPGRADE); |
|
|
|
}else { |
|
|
|
assOrderinfo.setOrderStep(AssOrderStep.COMPLETED); |
|
|
|
assOrderinfo.setOrderStatus(AssOrderStatus.FINISHED); |
|
|
|
} |
|
|
|
assOrderinfoRepo.merge(assOrderinfo); |
|
|
|
} |
|
|
|
return resignCheckResDTO; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public ResignResponseDTO sign(VehicleChangeSignReqDTO dto) throws ManagerException { |
|
|
|
AssOrderinfo assOrderinfo = assOrderinfoRepo.findByOrderNo(dto.getOrderNo()); |
|
|
|
if (assOrderinfo == null) throw new ManagerException("订单不存在"); |
|
|
|
AssVehicleInfoChange vehicleInfoChange = assVehicleInfoChangeRepo.findByOrderNo(dto.getOrderNo()); |
|
|
|
QtkCardInfo cardInfo = qtkCardInfoRepo.findByVehicleIdAndCardStatus(assOrderinfo.getCardId()); |
|
|
|
if (cardInfo == null) throw new ManagerException("车辆信息变更无法进行签约"); |
|
|
|
ResignResponseDTO responseDTO = new ResignResponseDTO(); |
|
|
|
//渠道订单没有渠道配置或签约地址默认和黔通签约 |
|
|
|
AssAgencyConfig agencyConfig = assAgencyConfigRepo.findByAgencyId(cardInfo.getAgencyId()); |
|
|
|
if (agencyConfig != null && !agencyConfig.getQtSign()){ |
|
|
|
responseDTO.setChannelSignAppId(agencyConfig.getChannelSignAppId()); |
|
|
|
responseDTO.setChannelSignUrl(agencyConfig.getChannelSignUrl()); |
|
|
|
} |
|
|
|
AccountInfo accountInfo = findAccountInfoByToken(dto.getAccessToken()); |
|
|
|
ResignRequest request = new ResignRequest(); |
|
|
|
request.setWxOpenId(dto.getSubOpenId()); |
|
|
|
request.setProductId(cardInfo.getPackageId()); |
|
|
|
//新车牌签约 |
|
|
|
request.setVehicleId(vehicleInfoChange.getVehiclePlate()+"_"+vehicleInfoChange.getVehiclePlateColor()); |
|
|
|
request.setName(accountInfo.getUserName()); |
|
|
|
request.setIdNum(accountInfo.getIdNum()); |
|
|
|
request.setFlag(2); |
|
|
|
SignQueryResponse response = jsonPostRepeat(request); |
|
|
|
return copyProperties(response, responseDTO); |
|
|
|
} |
|
|
|
|
|
|
|
} |