@@ -122,25 +122,25 @@ public class AssVehicleInfoChange extends StringPropertyUUIDEntity { | |||
private Integer permittedTowWeight;//准牵引总质量; | |||
//=======================车主======================== | |||
@Size(max = 512) | |||
@Column(name = "OWNER_NAME") | |||
private String ownerName;//车主姓名; | |||
@Column(name = "OWNER_IDTYPE") | |||
@Enumerated(EnumType.STRING) | |||
private IdType ownerIdType;//车主证件类型; | |||
@Size(max = 128) | |||
@Column(name = "OWNER_IDNUM") | |||
private String ownerIdNum;//车主证件号码; | |||
@Size(max = 255) | |||
@Column(name = "OWNER_POS_IMGURL") | |||
private String ownerPosImgUrl;//车主证件正面图片的BASE64编码; | |||
@Size(max = 255) | |||
@Column(name = "OWNER_NEG_IMGURL") | |||
private String ownerNegImgUrl;//车主证件反面图片的BASE64编码; | |||
@Column(name = "OWNER_ID_ADDRESS") | |||
private String ownerIdAddress;// 车主证件ocr地址 | |||
@Column(name = "PROXY_URL") | |||
private String proxyUrl;//委托书照片 | |||
// @Size(max = 512) | |||
// @Column(name = "OWNER_NAME") | |||
// private String ownerName;//车主姓名; | |||
// @Column(name = "OWNER_IDTYPE") | |||
// @Enumerated(EnumType.STRING) | |||
// private IdType ownerIdType;//车主证件类型; | |||
// @Size(max = 128) | |||
// @Column(name = "OWNER_IDNUM") | |||
// private String ownerIdNum;//车主证件号码; | |||
// @Size(max = 255) | |||
// @Column(name = "OWNER_POS_IMGURL") | |||
// private String ownerPosImgUrl;//车主证件正面图片的BASE64编码; | |||
// @Size(max = 255) | |||
// @Column(name = "OWNER_NEG_IMGURL") | |||
// private String ownerNegImgUrl;//车主证件反面图片的BASE64编码; | |||
// @Column(name = "OWNER_ID_ADDRESS") | |||
// private String ownerIdAddress;// 车主证件ocr地址 | |||
// @Column(name = "PROXY_URL") | |||
// private String proxyUrl;//委托书照片 | |||
//================================================ | |||
//申请人 | |||
@@ -165,9 +165,9 @@ public class AssVehicleInfoChange extends StringPropertyUUIDEntity { | |||
// 换渠道相关字段 | |||
@Column(name = "ACCOUNT_ID") | |||
private String accountId;//扣款渠道 | |||
@Column(name = "SHIPPING_STATUS") | |||
@Enumerated(EnumType.STRING) | |||
private ShippingStatus shippingStatus = ShippingStatus.NONE;//货物状态 | |||
// @Column(name = "SHIPPING_STATUS") | |||
// @Enumerated(EnumType.STRING) | |||
// private ShippingStatus shippingStatus = ShippingStatus.NONE;//货物状态 | |||
@Column(name = "PRODUCT_ID") | |||
private String productId;//产品编号 | |||
@Column(name = "PRODUCT_NAME") | |||
@@ -178,31 +178,31 @@ public class AssVehicleInfoChange extends StringPropertyUUIDEntity { | |||
private LocalDateTime agreementEnableTime;//签约启用时间 | |||
@Column(name = "AGREEMENT_ID") | |||
private String agreementId;//签约协议编号,暂时和车签约,字段值其实是微信openId或支付宝openId,渠道签约结果通知,不知传的啥玩意 | |||
@Column(name = "CARD_TYPE") | |||
@Enumerated(EnumType.STRING) | |||
private CardType cardType;//卡类型 | |||
@Column(name = "CARD_ID") | |||
private String cardId;//卡号 | |||
@Column(name = "CARD_STATUS") | |||
@Enumerated(EnumType.STRING) | |||
private CardStatus cardStatus;//etc卡状态 | |||
@Column(name = "CARD_ENABLE_TIME") | |||
private LocalDateTime cardEnableTime;//卡启用时间 | |||
@Column(name = "CARD_EXPIRE_TIME") | |||
private LocalDateTime cardExpireTime;//卡到期时间 | |||
@Column(name = "OBU_ID") | |||
private String obuId;//签号 | |||
@Column(name = "OBU_STATUS") | |||
@Enumerated(EnumType.STRING) | |||
private ObuStatus obuStatus;//obu状态 | |||
@Column(name = "OBU_ENABLE_TIME") | |||
private LocalDateTime obuEnableTime;//obu启用时间 | |||
@Column(name = "OBU_EXPIRE_TIME") | |||
private LocalDateTime obuExpireTime;//obu到期时间 | |||
@Column(name = "ACTIVATION_TIME") | |||
private LocalDateTime activationTime;//订单激活时间 | |||
@Column(name = "DELIVERY_TIME") | |||
private LocalDateTime deliveryTime;//邮寄时间 | |||
// @Column(name = "CARD_TYPE") | |||
// @Enumerated(EnumType.STRING) | |||
// private CardType cardType;//卡类型 | |||
// @Column(name = "CARD_ID") | |||
// private String cardId;//卡号 | |||
// @Column(name = "CARD_STATUS") | |||
// @Enumerated(EnumType.STRING) | |||
// private CardStatus cardStatus;//etc卡状态 | |||
// @Column(name = "CARD_ENABLE_TIME") | |||
// private LocalDateTime cardEnableTime;//卡启用时间 | |||
// @Column(name = "CARD_EXPIRE_TIME") | |||
// private LocalDateTime cardExpireTime;//卡到期时间 | |||
// @Column(name = "OBU_ID") | |||
// private String obuId;//签号 | |||
// @Column(name = "OBU_STATUS") | |||
// @Enumerated(EnumType.STRING) | |||
// private ObuStatus obuStatus;//obu状态 | |||
// @Column(name = "OBU_ENABLE_TIME") | |||
// private LocalDateTime obuEnableTime;//obu启用时间 | |||
// @Column(name = "OBU_EXPIRE_TIME") | |||
// private LocalDateTime obuExpireTime;//obu到期时间 | |||
// @Column(name = "ACTIVATION_TIME") | |||
// private LocalDateTime activationTime;//订单激活时间 | |||
// @Column(name = "DELIVERY_TIME") | |||
// private LocalDateTime deliveryTime;//邮寄时间 | |||
@Column(name = "PROTOCOL") | |||
private String protocol = "0"; // 是否同意协议:1:是 0:否 | |||
@Column(name = "PROTOCOL_URL") | |||
@@ -220,19 +220,19 @@ public class AssVehicleInfoChange extends StringPropertyUUIDEntity { | |||
@Column(name = "CALL_AGENCYID") | |||
private String callAgencyId;//通知的渠道id | |||
@Column(name = "CONSIGNEE") | |||
private String consignee;//收货人 | |||
@Column(name = "CONSIGNEE_TEL") | |||
private String consigneeTel;//收货人电话 | |||
@Column(name = "REGION") | |||
private String region;//收货所在地区(省、市、区、街道) | |||
@Column(name = "ADDRESS") | |||
private String address;//收货详细地址 | |||
@Column(name = "POST_CODE") | |||
private String postCode; | |||
@Column(name = "TRACKING_NUMBER") | |||
private String trackingNumber;//快递单号 | |||
@Column(name = "COURIER_COMPANY") | |||
private String courierCompany;//快递公司 | |||
// @Column(name = "CONSIGNEE") | |||
// private String consignee;//收货人 | |||
// @Column(name = "CONSIGNEE_TEL") | |||
// private String consigneeTel;//收货人电话 | |||
// @Column(name = "REGION") | |||
// private String region;//收货所在地区(省、市、区、街道) | |||
// @Column(name = "ADDRESS") | |||
// private String address;//收货详细地址 | |||
// @Column(name = "POST_CODE") | |||
// private String postCode; | |||
// @Column(name = "TRACKING_NUMBER") | |||
// private String trackingNumber;//快递单号 | |||
// @Column(name = "COURIER_COMPANY") | |||
// private String courierCompany;//快递公司 | |||
} |
@@ -16,8 +16,19 @@ import lombok.Setter; | |||
@Setter | |||
public class AssSignQueryResponse extends AbstractSignTypeResponse { | |||
// private String userState;//用户签约状态 UNAUTHORIZED 未签约 是 | |||
private Boolean sign; //true 已签约 false 未签约 | |||
/** | |||
* v2 | |||
* NORMAL:正常用户,已开通车主服务,且已授权访问 | |||
* PAUSED:已暂停车主服务 | |||
* OVERDUE: 用户已开通车主服务,但欠费状态。提示用户还款,请跳转到车主服务 | |||
* UNAUTHORIZED:用户未授权使用当前业务,或未开通车主服务。请跳转到授权接口 | |||
* v3: | |||
* OPENED: 已开通 | |||
* PAUSE:已暂停 | |||
* DELETED: 已关闭 | |||
*/ | |||
private String userState;//用户签约状态 是 | |||
// private Boolean sign; //true 已签约 false 未签约 | |||
private String id;// 记录操作日志的id | |||
@@ -24,7 +24,7 @@ public class VehicleChangeApllyRequest extends AbstractSignTypeRequest<VehicleCh | |||
super(AssServiceCmd.VEHICLECHANGE); | |||
} | |||
private Boolean whetherToMail = false;// 是否需要邮寄 | |||
// private Boolean whetherToMail = false;// 是否需要邮寄 | |||
private String staffNum; | |||
private String openId; | |||
@NotBlank | |||
@@ -111,24 +111,24 @@ public class VehicleChangeApllyRequest extends AbstractSignTypeRequest<VehicleCh | |||
private String userAdress;//地址 | |||
//========================车主信息=========================== | |||
@EnumInteger(enumClazz = IdType.class, message = "用户证件类型不合规") | |||
private Integer ownerIdType;// 车主证件类型 | |||
private String ownerIdNum;// 车主证件号码 | |||
private String ownerIdAddress;// 车主证件ocr地址 | |||
private String ownerPosImgUrl;//车主证件正面照片地址 | |||
private String ownerNegImgUrl;//车主证件反面照片地址, 单位的填不上,个人必填 | |||
private String ownerTel;//车主手机号,单位的填不上,个人必填 | |||
private String ownerName;//身份证上姓名 | |||
private String proxyUrl;// 委托书地址 | |||
// @EnumInteger(enumClazz = IdType.class, message = "用户证件类型不合规") | |||
// private Integer ownerIdType;// 车主证件类型 | |||
// private String ownerIdNum;// 车主证件号码 | |||
// private String ownerIdAddress;// 车主证件ocr地址 | |||
// private String ownerPosImgUrl;//车主证件正面照片地址 | |||
// private String ownerNegImgUrl;//车主证件反面照片地址, 单位的填不上,个人必填 | |||
// private String ownerTel;//车主手机号,单位的填不上,个人必填 | |||
// private String ownerName;//身份证上姓名 | |||
// private String proxyUrl;// 委托书地址 | |||
private String productId;//产品编号 | |||
//==========================收货信息========================== | |||
private String consignee;// 收货人 | |||
private String consigneeTel;// 收货人电话 | |||
private String region;// 收货所在地区(省、市、区、街道) | |||
private String address;// 收货详细地址 | |||
private String postalCode;// 收货邮政编码 | |||
private String detailedAddress;// 办理时的详细地址 | |||
// private String consignee;// 收货人 | |||
// private String consigneeTel;// 收货人电话 | |||
// private String region;// 收货所在地区(省、市、区、街道) | |||
// private String address;// 收货详细地址 | |||
// private String postalCode;// 收货邮政编码 | |||
// private String detailedAddress;// 办理时的详细地址 | |||
public void relatedValid(ErrorMsgBuilder validator) { | |||
if (SourceType.WECHAT.equals(orderSource) || SourceType.ALI.equals(orderSource)) { | |||
validator.validFieldNotBlank("openId", openId); | |||
@@ -160,23 +160,23 @@ public class VehicleChangeApllyRequest extends AbstractSignTypeRequest<VehicleCh | |||
validator.validFieldNotBlank("roadTransportPermitPicUrl", roadTransportPermitPicUrl); | |||
validator.validFieldNotBlank("licenseIdNum",licenseIdNum); | |||
} | |||
if (whetherToMail) { | |||
validator.validFieldNotBlank("consignee", consignee); | |||
validator.validFieldNotBlank("consigneeTel", consigneeTel); | |||
validator.validFieldNotBlank("region", region); | |||
validator.validFieldNotBlank("address", address); | |||
} | |||
if (ownerIdType != null){ | |||
//有车主信息 | |||
validator.validFieldNotBlank("ownerName",ownerName); | |||
validator.validFieldNotBlank("ownerIdNum",ownerIdNum); | |||
validator.validFieldNotBlank("ownerIdAddress",ownerIdAddress); | |||
validator.validFieldNotBlank("ownerPosImgUrl",ownerPosImgUrl); | |||
if (ownerIdType != null && IdType.SFZ.getCode()== ownerIdType){ | |||
validator.validFieldNotBlank("ownerNegImgUrl",ownerNegImgUrl);// 单位的填不上,个人必填 | |||
validator.validFieldNotBlank("ownerTel",ownerTel); | |||
} | |||
} | |||
// if (whetherToMail) { | |||
// validator.validFieldNotBlank("consignee", consignee); | |||
// validator.validFieldNotBlank("consigneeTel", consigneeTel); | |||
// validator.validFieldNotBlank("region", region); | |||
// validator.validFieldNotBlank("address", address); | |||
// } | |||
// if (ownerIdType != null){ | |||
// //有车主信息 | |||
// validator.validFieldNotBlank("ownerName",ownerName); | |||
// validator.validFieldNotBlank("ownerIdNum",ownerIdNum); | |||
// validator.validFieldNotBlank("ownerIdAddress",ownerIdAddress); | |||
// validator.validFieldNotBlank("ownerPosImgUrl",ownerPosImgUrl); | |||
// if (ownerIdType != null && IdType.SFZ.getCode()== ownerIdType){ | |||
// validator.validFieldNotBlank("ownerNegImgUrl",ownerNegImgUrl);// 单位的填不上,个人必填 | |||
// validator.validFieldNotBlank("ownerTel",ownerTel); | |||
// } | |||
// } | |||
} | |||
@@ -33,6 +33,18 @@ public class SignQueryResponse extends AbstractSignTypeResponse { | |||
private IssueOrderStep step;//订单状态 是(不是签约参数,用于通知小程序订单状态) | |||
/** | |||
* v2 | |||
* NORMAL:正常用户,已开通车主服务,且已授权访问 | |||
* PAUSED:已暂停车主服务 | |||
* OVERDUE: 用户已开通车主服务,但欠费状态。提示用户还款,请跳转到车主服务 | |||
* UNAUTHORIZED:用户未授权使用当前业务,或未开通车主服务。请跳转到授权接口 | |||
* v3: | |||
* OPENED: 已开通 | |||
* PAUSE:已暂停 | |||
* DELETED: 已关闭 | |||
*/ | |||
private String userState;//用户签约状态 是 | |||
private String deductMode;//发起扣费方式PROACTIVE:表示用户主动发起的免密支付 AUTOPAY:表示用户无感的支付 否 |
@@ -16,8 +16,15 @@ import lombok.Data; | |||
@ApiModel(description = "售后签约查询参数") | |||
public class AssSignQueryResDTO extends AbstractBizRequestDTO { | |||
@ApiModelProperty(value = "签约状态 true已签约,false 未签约", required = true) | |||
private Boolean sign; | |||
@ApiModelProperty(value = "签约状态:NORMAL:正常用户,已开通车主服务,且已授权访问\n" + | |||
" * PAUSED:已暂停车主服务\n" + | |||
" * OVERDUE: 用户已开通车主服务,但欠费状态。提示用户还款,请跳转到车主服务\n" + | |||
" * UNAUTHORIZED:用户未授权使用当前业务,或未开通车主服务。请跳转到授权接口\n" + | |||
" * v3:\n" + | |||
" * OPENED: 已开通\n" + | |||
" * PAUSE:已暂停\n" + | |||
" * DELETED: 已关闭", required = true) | |||
private String userState;//用户签约状态 | |||
@ApiModelProperty(value = "售后订单阶段", required = true) | |||
private AssOrderStep orderStep;//订单阶段 |
@@ -11,6 +11,14 @@ import lombok.Data; | |||
*/ | |||
@Data | |||
public class ResignCheckResDTO { | |||
@ApiModelProperty(value = "用户签约状态 UNAUTHORIZED 未签约") | |||
@ApiModelProperty(value = "用户签约状态:v2:\n" + | |||
" * NORMAL:正常用户,已开通车主服务,且已授权访问\n" + | |||
" * PAUSED:已暂停车主服务\n" + | |||
" * OVERDUE: 用户已开通车主服务,但欠费状态。提示用户还款,请跳转到车主服务\n" + | |||
" * UNAUTHORIZED:用户未授权使用当前业务,或未开通车主服务。请跳转到授权接口\n" + | |||
" * v3:\n" + | |||
" * OPENED: 已开通\n" + | |||
" * PAUSE:已暂停\n" + | |||
" * DELETED: 已关闭") | |||
private String userState;//用户签约状态 是 | |||
} |
@@ -12,8 +12,8 @@ import lombok.Data; | |||
@Data | |||
public class ResignResponseDTO { | |||
@ApiModelProperty(value = "用户签约状态 UNAUTHORIZED 未签约") | |||
private String userState;//用户签约状态 是 | |||
// @ApiModelProperty(value = "用户签约状态 UNAUTHORIZED 未签约") | |||
// private String userState;//用户签约状态 是 | |||
@ApiModelProperty(value = "发起扣费方式PROACTIVE:表示用户主动发起的免密支付 AUTOPAY:表示用户无感的支付") | |||
private String deductMode;//发起扣费方式PROACTIVE:表示用户主动发起的免密支付 AUTOPAY:表示用户无感的支付 否 |
@@ -16,56 +16,26 @@ import lombok.Data; | |||
public class SignQueryResponseDTO { | |||
@ApiModelProperty(value = "订单阶段(通知小程序订单阶段)") | |||
private IssueOrderStep step; | |||
@ApiModelProperty(value = "用户签约状态 UNAUTHORIZED 未签约") | |||
/** | |||
* v2 | |||
* NORMAL:正常用户,已开通车主服务,且已授权访问 | |||
* PAUSED:已暂停车主服务 | |||
* OVERDUE: 用户已开通车主服务,但欠费状态。提示用户还款,请跳转到车主服务 | |||
* UNAUTHORIZED:用户未授权使用当前业务,或未开通车主服务。请跳转到授权接口 | |||
* v3: | |||
* OPENED: 已开通 | |||
* PAUSE:已暂停 | |||
* DELETED: 已关闭 | |||
*/ | |||
@ApiModelProperty(value = "用户签约状态:v2:\n" + | |||
" * NORMAL:正常用户,已开通车主服务,且已授权访问\n" + | |||
" * PAUSED:已暂停车主服务\n" + | |||
" * OVERDUE: 用户已开通车主服务,但欠费状态。提示用户还款,请跳转到车主服务\n" + | |||
" * UNAUTHORIZED:用户未授权使用当前业务,或未开通车主服务。请跳转到授权接口\n" + | |||
" * v3:\n" + | |||
" * OPENED: 已开通\n" + | |||
" * PAUSE:已暂停\n" + | |||
" * DELETED: 已关闭") | |||
private String userState;//用户签约状态 是 | |||
// @ApiModelProperty(value = "发起扣费方式PROACTIVE:表示用户主动发起的免密支付 AUTOPAY:表示用户无感的支付") | |||
// private String deductMode;//发起扣费方式PROACTIVE:表示用户主动发起的免密支付 AUTOPAY:表示用户无感的支付 否 | |||
// | |||
// @ApiModelProperty(value = "车牌信息") | |||
// private String plateNumberInfo;//车牌信息 否 | |||
// | |||
// //=====================前端请求微信签约参数==============参与签名字段 + | |||
// @ApiModelProperty(value = "V2 签约参数appid") | |||
// private String appId;//请求appid 是 + | |||
// | |||
// @ApiModelProperty(value = "V2 签约参数商户号") | |||
// private String mchId;//商户号 是 + | |||
// | |||
// @ApiModelProperty(value = "V2 签约参数子商户号") | |||
// private String subMchId;//子商户号 是 + | |||
// | |||
// @ApiModelProperty(value = "V2 签约参数 子商户公众账号id") | |||
// private String subAppId;//子商户公众账号id 是 + | |||
// | |||
// @ApiModelProperty(value = "V2 签约参数 随机字符串") | |||
// private String nonceStr;//随机字符串 是 + | |||
// | |||
// @ApiModelProperty(value = "V2 签约参数 签名类型") | |||
// private String signType;//签名类型 是 + | |||
// | |||
// @ApiModelProperty(value = "V2 签约参数 sign") | |||
// private String sign;//签名 是 | |||
// | |||
// @ApiModelProperty(value = "V2 签约参数 交易场景") | |||
// private String tradeScene = "HIGHWAY";//交易场景 写死 是 + | |||
// @ApiModelProperty(value = "V2 签约参数 openId") | |||
// private String openId;//用户标识 否 | |||
// @ApiModelProperty(value = "V2 签约参数 subOpenId") | |||
// private String subOpenId;//用户子标识 是 + | |||
// @ApiModelProperty(value = "V2 签约参数 车牌号") | |||
// private String plateNumber;//车牌号 是 + | |||
// @ApiModelProperty(value = "V2 签约参数 通道类型") | |||
// private String channelType = "ETC";//通道类型 写死 ETC + | |||
// @ApiModelProperty(value = "V2 跳转路径") | |||
// private String path;//跳转路径 是 | |||
// | |||
// @ApiModelProperty(value = "V3 签约参数 id") | |||
// private String preopenId;//V3黄牌 签约参数 + | |||
// | |||
// | |||
// @ApiModelProperty(value = "跳转渠道AppId") | |||
// private String channelSignAppId; | |||
// @ApiModelProperty(value = "渠道签约地址") | |||
// private String channelSignUrl; | |||
} |
@@ -136,7 +136,7 @@ public class AssOrderinfoManagerImpl extends AbstractIawManager implements AssOr | |||
request.setAccessToken(reqDto.getAccessToken()); | |||
AssSignQueryResponse response = jsonPostRepeat(request); | |||
AssSignQueryResDTO resDTO = new AssSignQueryResDTO(); | |||
resDTO.setSign(response.getSign()); | |||
resDTO.setUserState(response.getUserState()); | |||
resDTO.setOrderStep(response.getOrderStep()); | |||
//记录日志 | |||
sysPersistOperateLog(response.getOperateType(), response.getId(), reqDto.getOrderSource(), findOpenIdByToken(reqDto.getAccessToken()), response.getOperateType().getValue()); |
@@ -1,7 +1,6 @@ | |||
package cn.com.taiji.iaw.manager.ass; | |||
import cn.com.taiji.common.manager.ManagerException; | |||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||
import cn.com.taiji.common.model.dao.Pagination; | |||
import cn.com.taiji.core.entity.ass.AssAgencyConfig; | |||
import cn.com.taiji.core.entity.basic.QtkCardInfo; | |||
@@ -17,7 +16,6 @@ import cn.com.taiji.core.repo.jpa.basic.QtkCardInfoRepo; | |||
import cn.com.taiji.core.repo.jpa.basic.QtkCustomerInfoRepo; | |||
import cn.com.taiji.core.repo.jpa.basic.QtkVehicleInfoRepo; | |||
import cn.com.taiji.iaw.dto.ass.sign.*; | |||
import cn.com.taiji.iaw.dto.issue.order.SignQueryResponseDTO; | |||
import cn.com.taiji.iaw.manager.AbstractCommManager; | |||
import cn.com.taiji.iaw.repo.jpa.request.comm.VehicleSignPageRequest; | |||
import org.springframework.beans.factory.annotation.Autowired; |
@@ -10,6 +10,7 @@ import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder; | |||
import cn.com.taiji.ias.dict.DataType; | |||
import cn.com.taiji.ias.manager.ass.assSign.AssSignChangeManager; | |||
import cn.com.taiji.ias.model.ServiceLogEvent; | |||
import org.apache.kafka.common.protocol.types.Field; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.stereotype.Service; | |||
import java.io.IOException; | |||
@@ -56,22 +57,22 @@ public class AssOrderSignQueryManager extends AbstractAssManager<AssSignQueryReq | |||
protected void persistInternal(AssSignQueryRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException { | |||
AssOrderinfo orderinfo = (AssOrderinfo) dataStream.get(ORDER); | |||
AccountInfo accountInfo = findAccountInfoByToken(req.getAccessToken()); | |||
Boolean b = false; | |||
String userState = ""; | |||
switch (orderinfo.getOrderType()){ | |||
case PLATE_INFO_CHANGE://签约信息变更 | |||
b = assSignChangeManager.check(accountInfo,orderinfo,req); | |||
userState = assSignChangeManager.check(accountInfo,orderinfo,req); | |||
break; | |||
// case todo | |||
} | |||
dataStream.put(SIGN,b); | |||
dataStream.put(SIGN,userState); | |||
} | |||
@Override | |||
protected AssSignQueryResponse getRes(AssSignQueryRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException, IOException { | |||
AssOrderinfo orderinfo = (AssOrderinfo) dataStream.get(ORDER); | |||
Boolean b = (Boolean) dataStream.get(SIGN); | |||
String userState = (String) dataStream.get(SIGN); | |||
AssSignQueryResponse response = new AssSignQueryResponse(); | |||
response.setSign(b); | |||
response.setUserState(userState); | |||
response.setId(orderinfo.getId()); | |||
response.setOrderStep(orderinfo.getOrderStep()); | |||
switch (orderinfo.getOrderType()){ |
@@ -37,15 +37,15 @@ public abstract class AbsAssSignManager { | |||
* @param req | |||
* @return | |||
*/ | |||
public Boolean check(AccountInfo accountInfo, AssOrderinfo orderinfo, AssSignQueryRequest req) throws ServiceHandleException { | |||
public String check(AccountInfo accountInfo, AssOrderinfo orderinfo, AssSignQueryRequest req) throws ServiceHandleException { | |||
Map<String, Object> dataStream = Maps.newHashMap(); | |||
getAgencyId(orderinfo,dataStream);//此处虽然用不上,但是需要调用(保证子类从上到下的实现dataStream有值) | |||
ResignRequest request = getRequest(accountInfo,orderinfo,1,dataStream); | |||
Boolean b = checkSign(request); | |||
if (b){ | |||
SignQueryResponse response = resignManager.serviceHandle(request); | |||
if (response.getUserState().equals("NORMAL") || response.getUserState().equals("OPENED")){ | |||
persistHandle(orderinfo, req,dataStream); | |||
} | |||
return b; | |||
return response.getUserState(); | |||
} | |||
@@ -105,15 +105,15 @@ public abstract class AbsAssSignManager { | |||
*/ | |||
public abstract void persistHandle(AssOrderinfo orderinfo, AssSignQueryRequest req,Map<String, Object> dataStream); | |||
/** | |||
* 检测车辆是否已经签约 | |||
* @param | |||
* @return true 已签 false 未签 | |||
*/ | |||
private Boolean checkSign(ResignRequest request) throws ServiceHandleException { | |||
SignQueryResponse response = resignManager.serviceHandle(request); | |||
return !response.getUserState().equals("UNAUTHORIZED"); | |||
} | |||
// /** | |||
// * 检测车辆是否已经签约 | |||
// * @param | |||
// * @return true 已签 false 未签 | |||
// */ | |||
// private Boolean checkSign(ResignRequest request) throws ServiceHandleException { | |||
// SignQueryResponse response = resignManager.serviceHandle(request); | |||
// return !response.getUserState().equals("UNAUTHORIZED"); | |||
// } | |||
private ResignRequest getRequest(AccountInfo accountInfo,AssOrderinfo orderinfo,Integer flag,Map<String, Object> dataStream) throws ServiceHandleException { | |||
String productId = getProductId(orderinfo,dataStream); | |||
if (!StringUtils.hasText(productId)) { |
@@ -41,6 +41,9 @@ public class ResignManager extends AbstractCommManager { | |||
default: | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("微信签约只支持,蓝、渐变绿、黄,三种车牌签约"); | |||
} | |||
if (request.getFlag() == 2){//获取参数,不需要返回状态 | |||
res.setUserState(""); | |||
} | |||
return res; | |||
} | |||
} |
@@ -1,15 +1,11 @@ | |||
package cn.com.taiji.ias.manager.ass.vehicleChange; | |||
import cn.com.taiji.common.manager.ManagerException; | |||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||
import cn.com.taiji.common.pub.TimeTools; | |||
import cn.com.taiji.core.entity.ass.AssAgencyConfig; | |||
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.QtkCustomerInfo; | |||
import cn.com.taiji.core.entity.basic.QtkObuInfo; | |||
import cn.com.taiji.core.entity.basic.QtkVehicleInfo; | |||
import cn.com.taiji.core.entity.basic.*; | |||
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; | |||
@@ -25,6 +21,8 @@ import cn.com.taiji.core.model.comm.protocol.ias.vaild.VehiclePlateCheckResponse | |||
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder; | |||
import cn.com.taiji.core.repo.jpa.ass.AssAgencyConfigRepo; | |||
import cn.com.taiji.core.repo.jpa.ass.AssVehicleInfoChangeRepo; | |||
import cn.com.taiji.core.repo.jpa.basic.QtkBlackCardRepo; | |||
import cn.com.taiji.core.repo.jpa.basic.QtkBlackObuRepo; | |||
import cn.com.taiji.core.repo.jpa.basic.QtkCardInfoRepo; | |||
import cn.com.taiji.core.repo.jpa.basic.QtkObuInfoRepo; | |||
import cn.com.taiji.core.repo.jpa.issue.IssueOrderinfoRepo; | |||
@@ -34,7 +32,7 @@ import cn.com.taiji.core.repo.jpa.issue.IssueProductRepo; | |||
import cn.com.taiji.ias.dict.DataType; | |||
import cn.com.taiji.ias.manager.ass.AbstractAssManager; | |||
import cn.com.taiji.ias.model.ServiceLogEvent; | |||
import cn.com.taiji.ias.model.issue.OrderVerificationModel; | |||
import cn.com.taiji.ias.model.issue.CarOcrCheck; | |||
import com.google.common.collect.Lists; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.stereotype.Service; | |||
@@ -62,6 +60,10 @@ public class VehicleChangeApplyManager extends AbstractAssManager<VehicleChangeA | |||
private IssueProductRepo issueProductRepo; | |||
@Autowired | |||
private IssueProductPromotionRepo promotionRepo; | |||
@Autowired | |||
private QtkBlackCardRepo qtkBlackCardRepo; | |||
@Autowired | |||
private QtkBlackObuRepo qtkBlackObuRepo; | |||
public VehicleChangeApplyManager() { | |||
super(DataType.VEHICLE_CHANGE_APPLY); | |||
@@ -99,17 +101,6 @@ public class VehicleChangeApplyManager extends AbstractAssManager<VehicleChangeA | |||
@Override | |||
protected void businessValidateInternal(ErrorMsgBuilder builder, VehicleChangeApllyRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException { | |||
if (req.getOwnerIdType() == null) { | |||
//没有车主信息,校验申请人信息 | |||
if (req.getName().equals(req.getVehicleName())) { | |||
throw newBusinessException("车辆信息与办理人信息不符"); | |||
} | |||
} else { | |||
//有车主信息,就校验车主信息 | |||
if (req.getOwnerName().equals(req.getVehicleName())) { | |||
throw newBusinessException("车辆信息与车主信息不符"); | |||
} | |||
} | |||
List<AssOrderinfo> assOrderinfoList = orderInfoRepo.listByVehicleId(req.getOldVehicleId(), disableList); | |||
if (!isEmpty(assOrderinfoList)) { | |||
throw newBusinessException("待修改车辆有进行中的订单,请到进度查询处理"); | |||
@@ -119,10 +110,11 @@ public class VehicleChangeApplyManager extends AbstractAssManager<VehicleChangeA | |||
throw newBusinessException("待修改车辆不存在"); | |||
} | |||
dataStream.put(VEHICLE_INFO, vehicleInfo); | |||
//校验卡签 | |||
QtkCardInfo cardInfo = checkCardObu(req, dataStream); | |||
//校验车辆持卡人是否是办理人的(后面涉及支付、签约、升级、激活) | |||
QtkCustomerInfo customerInfo = customerInfoRepo.findByCustomerId(vehicleInfo.getCustomerId()); | |||
if (customerInfo == null) { | |||
throw newBusinessException("车辆用户信息不存在"); | |||
} | |||
if (UserType.PERSONAL_USER == customerInfo.getUserType()) { | |||
if (!req.getUserIdNum().equals(customerInfo.getCustomerIdNum())) { | |||
throw newBusinessException("车辆持卡人与办理人信息不符"); | |||
@@ -132,12 +124,14 @@ public class VehicleChangeApplyManager extends AbstractAssManager<VehicleChangeA | |||
throw newBusinessException("车辆持卡人与办理人信息不符"); | |||
} | |||
} | |||
//校验卡签 | |||
QtkCardInfo cardInfo = checkCardObu(req, dataStream); | |||
//9901 | |||
if (cardInfo.getCardId().startsWith("9901")) { | |||
throw newBusinessException("在中国ETC小程序操作过户/取消订单后再在九州小程序进行新办"); | |||
} | |||
//更换车牌,新车牌相关校验 | |||
if (req.getOldVehicleId().equals(req.getVehiclePlate()+"_"+req.getVehiclePlateColor())){ | |||
//是否更换车牌,并进行相关校验 | |||
if (!req.getOldVehicleId().equals(req.getVehiclePlate()+"_"+req.getVehiclePlateColor())){ | |||
validNewCar(req, cardInfo,dataStream); | |||
dataStream.put(PLATE_CHANGEFLAG, true); | |||
}else { | |||
@@ -148,44 +142,51 @@ public class VehicleChangeApplyManager extends AbstractAssManager<VehicleChangeA | |||
//校验卡签 | |||
private QtkCardInfo checkCardObu(VehicleChangeApllyRequest req, Map<String, Object> dataStream) throws ServiceHandleException { | |||
List<QtkCardInfo> qtkCardInfos = qtkCardInfoRepo.listByVehicleIdInUse(req.getOldVehicleId(), new CardStatus[]{CardStatus.YKGQ, CardStatus.WKGQ, CardStatus.YKZX, CardStatus.WKZX}); | |||
if (!isEmpty(qtkCardInfos)) { | |||
throw newBusinessException("待修改车辆卡存在注销或挂起,不可办理"); | |||
List<QtkCardInfo> qtkCardInfos = qtkCardInfoRepo.listByVehicleIdInUse(req.getOldVehicleId(), new CardStatus[]{CardStatus.ZC, CardStatus.KGS}); | |||
if (isEmpty(qtkCardInfos)) { | |||
throw newBusinessException("未找到正常卡信息,不可办理"); | |||
} | |||
List<QtkObuInfo> obuInfos = qtkObuInfoRepo.listObuByVehicleIdInUse(req.getOldVehicleId(), new ObuStatus[]{ObuStatus.YQGQ, ObuStatus.WQGQ, ObuStatus.YQZX, ObuStatus.WQZX}); | |||
if (!isEmpty(obuInfos)) { | |||
throw newBusinessException("待修改车辆OBU存在注销或挂起,不可办理"); | |||
QtkCardInfo cardInfo = qtkCardInfos.get(0); | |||
List<QtkBlackCard> qtkBlackCards = qtkBlackCardRepo.listCardBlackByStatus(cardInfo.getCardId(),1); | |||
if (!isEmpty(qtkBlackCards)) { | |||
throw newBusinessException("此卡存在黑名单"); | |||
} | |||
QtkCardInfo cardInfo = qtkCardInfoRepo.findByVehicleIdAndCardStatus(req.getOldVehicleId()); | |||
if (cardInfo == null) { | |||
throw newBusinessException("待修改车辆,无正常卡信息,不可修改"); | |||
List<QtkObuInfo> qtkObuInfos = qtkObuInfoRepo.listObuByVehicleIdInUse(req.getOldVehicleId(),new ObuStatus[]{ObuStatus.ZC,ObuStatus.BQGS,ObuStatus.YFX}); | |||
if (isEmpty(qtkObuInfos)) { | |||
throw newBusinessException("未找到正常OBU信息,不可办理"); | |||
} | |||
dataStream.put(ZC_CARD, cardInfo); | |||
QtkObuInfo obuInfo = qtkObuInfoRepo.findByVehicleIdAndObuStatus(req.getOldVehicleId(),ObuStatus.ZC); | |||
if (obuInfo == null){ | |||
throw newBusinessException("待修改车辆,无正常OBU信息,不可修改"); | |||
QtkObuInfo obuInfo = qtkObuInfos.get(0); | |||
List<QtkBlackObu> qtkBlackObus = qtkBlackObuRepo.listObuBlackByStatus(obuInfo.getObuId(), 1); | |||
if (!isEmpty(qtkBlackObus)) { | |||
throw newBusinessException("此OBU存在黑名单"); | |||
} | |||
dataStream.put(ZC_CARD, cardInfo); | |||
dataStream.put(ZC_OBU, obuInfo); | |||
return cardInfo; | |||
} | |||
private void validNewCar(VehicleChangeApllyRequest req, QtkCardInfo cardInfo,Map<String, Object> dataStream) throws ServiceHandleException { | |||
// 工建行储值卡引导用户到银行线下网点办理。 todo | |||
AssAgencyConfig agencyConfig = agencyConfigRepo.findByAgencyId(cardInfo.getAgencyId()); | |||
if (agencyConfig == null) { | |||
throw newBusinessException("渠道配置信息不存在"); | |||
} | |||
if (!agencyConfig.getVehicleChange() && !hasText(req.getProductId())) { | |||
throw newBusinessException("需要选择产品办理"); | |||
} | |||
//校验产品(支持更换不需要选择产品,即使传了产品,也不校验,不会入库),每一步骤在进度查询中进行,所以必须是自己的车辆 | |||
if (!agencyConfig.getVehicleChange() && hasText(req.getProductId())) { | |||
IssueProduct product = issueProductRepo.findByReleaseId(req.getProductId()); | |||
IssueProductPromotion promotion = promotionRepo.findByReleaseId(req.getProductId()); | |||
if (product == null || promotion == null) { | |||
throw newBusinessException("当前选择的产品不存在"); | |||
//只有记账卡,需要判断渠道是否支持车牌更换,其他直接修改(即不需要选择产品) | |||
if (CardType.CHARGE_CARD == cardInfo.getCardTypeNew()) { | |||
AssAgencyConfig agencyConfig = agencyConfigRepo.findByAgencyId(cardInfo.getAgencyId()); | |||
if (agencyConfig == null) { | |||
throw newBusinessException("渠道配置信息不存在"); | |||
} | |||
dataStream.put(PRODUCT, product); | |||
if (!agencyConfig.getVehicleChange()) { | |||
if (hasText(req.getProductId())) { | |||
//校验产品 | |||
IssueProduct product = issueProductRepo.findByReleaseId(req.getProductId()); | |||
IssueProductPromotion promotion = promotionRepo.findByReleaseId(req.getProductId()); | |||
if (product == null || promotion == null) { | |||
throw newBusinessException("当前选择的产品不存在"); | |||
} | |||
dataStream.put(PRODUCT, product); | |||
}else { | |||
throw newBusinessException("需要选择产品办理"); | |||
} | |||
} | |||
} | |||
VehiclePlateCheckResponse res = checkVehiclePlate(req.getVehiclePlate(), req.getVehiclePlateColor()); | |||
throwBisExceptionOn(res.getResult() != 4, res.getInfo()); | |||
@@ -231,7 +232,6 @@ public class VehicleChangeApplyManager extends AbstractAssManager<VehicleChangeA | |||
order.setCustomerIdType(customerInfo.getCustomerIdType());//原车牌 ETC用户证件类型 | |||
order.setCustomerIdNum(customerInfo.getCustomerIdNum());//原车牌 ETC用户证件号码 | |||
order.setUserType(customerInfo.getUserType());//原车牌 ETC用户类型 | |||
// FIXME: 业务员申请的单子,用户怎么查看 | |||
if (SourceType.SERVICE_HALL == req.getOrderSource() || SourceType.WEB == req.getOrderSource()){ | |||
Staff staff = staffRepo.findByStaffId(req.getStaffNum()); | |||
order.setStaffOpenId(staff.getOpenId()); | |||
@@ -258,7 +258,7 @@ public class VehicleChangeApplyManager extends AbstractAssManager<VehicleChangeA | |||
changeInfo.setApprovedCount(req.getApprovedCount()); | |||
changeInfo.setTotalMass(req.getTotalMass()); | |||
changeInfo.setMaintenaceMass(req.getMaintenaceMass()); | |||
changeInfo.setVehicleDimensions(req.getVehicleDimensions().replace("m","")); | |||
changeInfo.setVehicleDimensions(req.getVehicleDimensions().replace("m","").replace("[Xx×*]", "X")); | |||
changeInfo.setAxleCount(req.getAxleCount()); | |||
changeInfo.setUseUserType(UseUserType.valueOfCode(req.getUseUserType())); | |||
changeInfo.setVin(req.getVin()); | |||
@@ -281,15 +281,6 @@ public class VehicleChangeApplyManager extends AbstractAssManager<VehicleChangeA | |||
} else { | |||
changeInfo.setEmergencyFlag(0);// 非应急车辆 | |||
} | |||
//==========车主信息开始================= | |||
changeInfo.setOwnerName(req.getOwnerName()); | |||
changeInfo.setOwnerIdType(IdType.findByCode(req.getOwnerIdType())); | |||
changeInfo.setOwnerIdNum(req.getOwnerIdNum()); | |||
changeInfo.setOwnerPosImgUrl(req.getOwnerPosImgUrl()); | |||
changeInfo.setOwnerNegImgUrl(req.getOwnerNegImgUrl()); | |||
changeInfo.setOwnerIdAddress(req.getOwnerIdAddress()); | |||
changeInfo.setProxyUrl(req.getProxyUrl()); | |||
//===========车主信息结束================= | |||
//===========申请人开始================= | |||
changeInfo.setUserIdType(IdType.findByCode(req.getUserIdType())); | |||
changeInfo.setUserName(req.getName()); | |||
@@ -299,25 +290,20 @@ public class VehicleChangeApplyManager extends AbstractAssManager<VehicleChangeA | |||
changeInfo.setUserNegImagesUrl(req.getUserNegImagesUrl()); | |||
changeInfo.setUserAdress(req.getUserAdress()); | |||
//===========申请人结束================= | |||
// changeInfo.setProductId(req.getProductId()); | |||
changeInfo.setOldType(vehicleInfo.getType()); | |||
if (product != null) { | |||
//只有记账卡才选择产品 | |||
if (qtkCardInfo.getCardTypeNew() == CardType.CHARGE_CARD && product != null) { | |||
changeInfo.setProductId(product.getReleaseId()); | |||
changeInfo.setAccountId(product.getAgencyId()); | |||
changeInfo.setShippingStatus(req.getWhetherToMail()?ShippingStatus.WAIT_SHIPPING:ShippingStatus.NONE); | |||
changeInfo.setProductName(product.getProductName()); | |||
changeInfo.setAmount(product.getAmount()); | |||
changeInfo.setConsignee(req.getConsignee()); | |||
changeInfo.setConsigneeTel(req.getConsigneeTel()); | |||
changeInfo.setRegion(req.getRegion()); | |||
changeInfo.setAddress(req.getAddress()); | |||
changeInfo.setCallAgencyId(product.getAgencyId()); | |||
//创建支付单 | |||
createPayOrder(order, product); | |||
} | |||
changeInfo.setCallAgencyId(qtkCardInfo.getAgencyId()); | |||
//ocr信息比对 | |||
String failReson = checkOcr(req, dataStream); | |||
String failReson = checkOcr(req); | |||
order.setAuditReason(failReson); | |||
orderInfoRepo.persist(order); | |||
assVehicleInfoChangeRepo.persist(changeInfo); | |||
@@ -377,38 +363,24 @@ public class VehicleChangeApplyManager extends AbstractAssManager<VehicleChangeA | |||
} | |||
private String checkOcr(VehicleChangeApllyRequest req, Map<String, Object> dataStream) throws ServiceHandleException { | |||
AssOrderinfo orderinfo = (AssOrderinfo) dataStream.get(ORDER); | |||
OrderVerificationModel model = new OrderVerificationModel(); | |||
model.setType(OrderType.AFTERSALE); | |||
model.setOrderNo(orderinfo.getOrderNo()); | |||
model.setCustomerIdType(IdType.findByCode(req.getUserIdType())); | |||
model.setCustomerName(req.getName()); | |||
model.setCustomerIdNum(req.getUserIdNum()); | |||
model.setCusPosImageUrl(req.getUserPosImagesUrl()); | |||
model.setVehiclePlate(req.getVehiclePlate()); | |||
model.setVehPosImgUrl(req.getVehPosImgUrl()); | |||
model.setVehNegImgUrl(req.getVehNegImgUrl()); | |||
model.setVehicleDimensions(req.getVehicleDimensions()); | |||
model.setOwnerName(req.getOwnerName()); | |||
model.setOwnerIdType(IdType.findByCode(req.getOwnerIdType())); | |||
model.setOwnerIdNum(req.getOwnerIdNum()); | |||
model.setOwnerPosImgUrl(req.getOwnerPosImgUrl()); | |||
model.setFeeVehicleType(req.getFeeVehicleType()); | |||
model.setVanType(req.getVanType()); | |||
model.setApprovedCount(req.getApprovedCount()); | |||
model.setAxleCount(req.getAxleCount()); | |||
model.setTotalMass(req.getTotalMass()); | |||
model.setVin(req.getVin()); | |||
model.setVehicleModel(req.getVehicleModel()); | |||
String failReason; | |||
try { | |||
failReason = verificationRuleManager.autoVerify(model); | |||
} catch (ManagerException e) { | |||
throw newBusinessException(e.getMessage()); | |||
} | |||
return failReason; | |||
private String checkOcr(VehicleChangeApllyRequest req) { | |||
StringBuilder builder = new StringBuilder(); | |||
//校验身份证 | |||
verificationRuleManager.ocrVarifyIdCard(req.getName(), req.getUserIdNum(), req.getUserPosImagesUrl(),builder,"申请人"); | |||
//校验车辆 | |||
CarOcrCheck carOcrCheck = new CarOcrCheck(); | |||
carOcrCheck.setVehiclePlate(req.getVehiclePlate()); | |||
carOcrCheck.setOwnerName(req.getVehicleName()); | |||
carOcrCheck.setVin(req.getVin()); | |||
carOcrCheck.setVehicleModel(req.getVehicleModel()); | |||
carOcrCheck.setVehPosImgUrl(req.getVehPosImgUrl()); | |||
carOcrCheck.setVanType(req.getVanType()); | |||
carOcrCheck.setVehicleDimensions(req.getVehicleDimensions()); | |||
carOcrCheck.setApprovedCount(req.getApprovedCount()); | |||
carOcrCheck.setTotalMass(req.getTotalMass()); | |||
carOcrCheck.setVehNegImgUrl(req.getVehNegImgUrl()); | |||
verificationRuleManager.ocrVarifyVehicle(carOcrCheck, builder); | |||
return builder.toString(); | |||
} | |||
@@ -155,10 +155,11 @@ public class SignCommonManager extends AbstractCommManager { | |||
vehicleInfo.setContractId(resultResponse.getContractId()); | |||
vehicleInfoRepo.merge(vehicleInfo); | |||
// dataStream.put(RES, new SignQueryResponse().setUserState(resultResponse.getBindState())); | |||
return new SignQueryResponse().setUserState(resultResponse.getBindState()); | |||
}else { | |||
return new SignQueryResponse().setUserState("UNAUTHORIZED"); | |||
} | |||
// else { | |||
// return new SignQueryResponse().setUserState("UNAUTHORIZED"); | |||
// } | |||
return new SignQueryResponse().setUserState(resultResponse.getBindState()); | |||
} | |||
} |
@@ -71,7 +71,8 @@ public class SignQueryManager extends AbstractOrderManager<SignQueryRequest> { | |||
case BLUE: | |||
case GREEN: | |||
res = signCommonManager.carSignV2(request.getSubOpenId(), order.getProductId(), order.getVehicleId()); | |||
flag = !"UNAUTHORIZED".equals(res.getUserState()); | |||
// flag = !"UNAUTHORIZED".equals(res.getUserState()); | |||
flag = "NORMAL".equals(res.getUserState()); | |||
break; | |||
case YELLOW: | |||
res = signCommonManager.carSignV3Result(request.getSubOpenId(), order.getProductId(), order.getVehicleId()); |