ソースを参照

core iaw 车辆信息变更·签约

master
chenchaod 1週間前
コミット
cdcc3ba812

+ 2
- 0
gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/ass/AssDeviceUpgradeRepo.java ファイルの表示

@@ -2,7 +2,9 @@ package cn.com.taiji.core.repo.jpa.ass;

import cn.com.taiji.common.repo.jpa.AbstractJpaRepo;
import cn.com.taiji.core.entity.ass.AssDeviceUpgrade;
import cn.com.taiji.core.entity.dict.ass.AssOrderType;

public interface AssDeviceUpgradeRepo extends AbstractJpaRepo<AssDeviceUpgrade, String>{

AssDeviceUpgrade findByOrderNoAndOrderType(String orderNo, AssOrderType orderType);
}

+ 29
- 7
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/api/ass/VehicleChangeController.java ファイルの表示

@@ -1,10 +1,12 @@
package cn.com.taiji.iaw.api.ass;

import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.common.model.dao.Pagination;
import cn.com.taiji.common.web.ApiResponse;
import cn.com.taiji.iaw.api.MyValidController;
import cn.com.taiji.iaw.dto.ass.sign.RePageReqDto;
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.ass.VehicleChangeManger;
@@ -31,11 +33,12 @@ public class VehicleChangeController extends MyValidController {
@Autowired
private VehicleChangeManger manager;

// @ApiOperation("申请")
// @PostMapping("/apply")
// public ApiResponse<Pagination> page(@Valid @RequestBody RePageReqDto dto) throws ManagerException {
// return ApiResponse.of(manager.rePage(dto));
// }
@ApiOperation("申请")
@PostMapping("/apply")
public ApiResponse<Void> page(@Valid @RequestBody VehicleChangeApplyReqDTO dto) throws ManagerException {
manager.apply(dto);
return ApiResponse.success();
}
// @ApiOperation("详情")
// @PostMapping("/detail")
// public ApiResponse<Pagination> page(@Valid @RequestBody RePageReqDto dto) throws ManagerException {
@@ -48,4 +51,23 @@ public class VehicleChangeController extends MyValidController {
VehicleChangeViewResDTO resDTO = manager.beforeReview(dto);
return ApiResponse.of(resDTO);
}
@ApiOperation("签约参数获取")
@PostMapping("/sign")
public ApiResponse<ResignResponseDTO> sign(@Valid @RequestBody VehicleChangeSignReqDTO dto) throws ManagerException {
ResignResponseDTO resDTO = manager.sign(dto);
return ApiResponse.of(resDTO);
}
@ApiOperation("签约检测")
@PostMapping("/signCheck")
public ApiResponse<ResignCheckResDTO> signCheck(@Valid @RequestBody VehicleChangeSignReqDTO dto) throws ManagerException {
ResignCheckResDTO resDTO = manager.signCheck(dto);
return ApiResponse.of(resDTO);
}

// @ApiOperation("设备升级")
// @PostMapping("/deviceUp")
// public ApiResponse<VehicleChangeViewResDTO> deviceUp(@Valid @RequestBody VehicleChangeViewReqDTO dto) throws ManagerException {
// VehicleChangeViewResDTO resDTO = manager.deviceUp(dto);
// return ApiResponse.of(resDTO);
// }
}

+ 16
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/dto/ass/vehicleChange/VehicleChangeApplyReqDTO.java ファイルの表示

@@ -0,0 +1,16 @@
package cn.com.taiji.iaw.dto.ass.vehicleChange;

import cn.com.taiji.core.dto.AbstractBizRequestDTO;
import io.swagger.annotations.ApiModel;
import lombok.Data;

/**
* @Author:ChenChao
* @Date:2025/9/6 16:12
* @Filename:VehicleChangeApplyReqDTO
* @description:
*/
@Data
@ApiModel(description = "车辆信息变更申请请求")
public class VehicleChangeApplyReqDTO extends AbstractBizRequestDTO {
}

+ 30
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/dto/ass/vehicleChange/VehicleChangeSignReqDTO.java ファイルの表示

@@ -0,0 +1,30 @@
package cn.com.taiji.iaw.dto.ass.vehicleChange;

import cn.com.taiji.core.dto.AbstractBizRequestDTO;
import cn.com.taiji.core.model.comm.protocol.constraint.IntegerConstant;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
* @Author:ChenChao
* @Date:2025/9/6 14:24
* @Filename:VehicleChangeSignCheckReqDTO
* @description:
*/
@Data
@ApiModel(description = "车辆信息变更签约检测请求")
public class VehicleChangeSignReqDTO extends AbstractBizRequestDTO {
@ApiModelProperty(value = "售后表订单编号")
private String orderNo;
@NotNull
@IntegerConstant(values = "1,2")
@ApiModelProperty(value = "签约类型 1微信,2支付宝")
private Integer signChannelType=1;// 1:微信小程序 2:支付宝小程序
@NotBlank
@ApiModelProperty(value = "微信小程序或支付宝小程序的openId")
private String subOpenId;// signChannelType=1或2时必填,填黔通微信或支付宝小程序的openId,
}

+ 10
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/ass/VehicleChangeManger.java ファイルの表示

@@ -1,6 +1,10 @@
package cn.com.taiji.iaw.manager.ass;

import cn.com.taiji.common.manager.ManagerException;
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;

@@ -12,4 +16,10 @@ import cn.com.taiji.iaw.dto.ass.vehicleChange.VehicleChangeViewResDTO;
*/
public interface VehicleChangeManger {
VehicleChangeViewResDTO beforeReview(VehicleChangeViewReqDTO dto) throws ManagerException;

ResignCheckResDTO signCheck(VehicleChangeSignReqDTO dto) throws ManagerException;

ResignResponseDTO sign(VehicleChangeSignReqDTO dto) throws ManagerException;

void apply(VehicleChangeApplyReqDTO dto);
}

+ 88
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/ass/VehicleChangeMangerImpl.java ファイルの表示

@@ -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);
}

}

読み込み中…
キャンセル
保存