Selaa lähdekoodia

ias 恢复签约支持插件

master
chenchaod 8 tuntia sitten
vanhempi
commit
90f8b5838d

+ 2
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/order/IssueWxSignInfoRequest.java Näytä tiedosto

@@ -30,6 +30,8 @@ public class IssueWxSignInfoRequest extends AbstractSignTypeRequest<IssueWxSignI
*/
private String code;

private Integer flag; // 1:检测,2获取参数

public IssueWxSignInfoRequest() {
super(OrderServiceCmd.WXSIGNINFO);
}

+ 219
- 6
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/order/IssueWxSignInfoResponse.java Näytä tiedosto

@@ -5,20 +5,233 @@ import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

@Getter
@Setter
@Accessors(chain = true)
//@Getter
//@Setter
//@Accessors(chain = true)
public class IssueWxSignInfoResponse extends AbstractSignTypeResponse {
private String appid;
private String subAppid;
private String mchId;
private String subMchId;
private String nonceStr;
private String signType;
private String signType ;
private String sign;
private String tradeScene;
private String tradeScene = "HIGHWAY";

private String plateNumber;
private String subOpenid;
private String channelType;
private String channelType = "ETC";




//======================20250929插件签约共用此接口==========================
//======================后续凯琳那边下线,把上面参数去掉==========================
/**
* v2
* NORMAL:正常用户,已开通车主服务,且已授权访问
* PAUSED:已暂停车主服务
* OVERDUE: 用户已开通车主服务,但欠费状态。提示用户还款,请跳转到车主服务
* UNAUTHORIZED:用户未授权使用当前业务,或未开通车主服务。请跳转到授权接口
* v3:
* OPENED: 已开通
* PAUSE:已暂停
* DELETED: 已关闭
*/

private String userState;//用户签约状态 是

private String deductMode;//发起扣费方式PROACTIVE:表示用户主动发起的免密支付 AUTOPAY:表示用户无感的支付 否

private String plateNumberInfo;//车牌信息 否

//=====================前端请求微信签约参数==============参与签名字段 +
private String appId;//请求appid 是 +

// private String mchId;//商户号 是 +
//
// private String subMchId;//子商户号 是 +

private String subAppId;//子商户公众账号id 是 +

// private String nonceStr;//随机字符串 是 +
//
// private String signType;//签名类型 是 +

// private String sign;//签名 是
//
// private String tradeScene = "HIGHWAY";//交易场景 写死 是 +

private String openId;//用户标识 否

private String subOpenId;//用户子标识 是 +

// private String plateNumber;//车牌号 是 +
//
// private String channelType = "ETC";//通道类型 写死 ETC +

private String path;//跳转路径 是


private String preopenId;//V3黄牌 签约参数

public String getAppid() {
return appid;
}

public void setAppid(String appid) {
this.appid = appid;
}

public String getSubAppid() {
return subAppid;
}

public void setSubAppid(String subAppid) {
this.subAppid = subAppid;
}

public String getMchId() {
return mchId;
}

public void setMchId(String mchId) {
this.mchId = mchId;
}

public String getSubMchId() {
return subMchId;
}

public void setSubMchId(String subMchId) {
this.subMchId = subMchId;
}

public String getNonceStr() {
return nonceStr;
}

public void setNonceStr(String nonceStr) {
this.nonceStr = nonceStr;
}

public String getSignType() {
return signType;
}

public void setSignType(String signType) {
this.signType = signType;
}

public String getSign() {
return sign;
}

public void setSign(String sign) {
this.sign = sign;
}

public String getTradeScene() {
return tradeScene;
}

public void setTradeScene(String tradeScene) {
this.tradeScene = tradeScene;
}

public String getPlateNumber() {
return plateNumber;
}

public void setPlateNumber(String plateNumber) {
this.plateNumber = plateNumber;
}

public String getSubOpenid() {
return subOpenid;
}

public void setSubOpenid(String subOpenid) {
this.subOpenid = subOpenid;
}

public String getChannelType() {
return channelType;
}

public void setChannelType(String channelType) {
this.channelType = channelType;
}

public String getUserState() {
return userState;
}

public void setUserState(String userState) {
this.userState = userState;
}

public String getDeductMode() {
return deductMode;
}

public void setDeductMode(String deductMode) {
this.deductMode = deductMode;
}

public String getPlateNumberInfo() {
return plateNumberInfo;
}

public void setPlateNumberInfo(String plateNumberInfo) {
this.plateNumberInfo = plateNumberInfo;
}

public String getAppId() {
return appId;
}

public void setAppId(String appId) {
this.appId = appId;
}

public String getSubAppId() {
return subAppId;
}

public void setSubAppId(String subAppId) {
this.subAppId = subAppId;
}

public String getOpenId() {
return openId;
}

public void setOpenId(String openId) {
this.openId = openId;
}

public String getSubOpenId() {
return subOpenId;
}

public void setSubOpenId(String subOpenId) {
this.subOpenId = subOpenId;
}

public String getPath() {
return path;
}

public void setPath(String path) {
this.path = path;
}

public String getPreopenId() {
return preopenId;
}

public void setPreopenId(String preopenId) {
this.preopenId = preopenId;
}
}

+ 1
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/ass/signChange/SignChangeCollectManager.java Näytä tiedosto

@@ -149,6 +149,7 @@ public class SignChangeCollectManager extends AbstractAssManager<SignChangeColle
assSignChange.setAgencyId(product.getAgencyId());
assSignChange.setOldAgencyId(cardInfo.getAgencyId());
assSignChangeRepo.persist(assSignChange);
dataStream.put(ORDER, assOrderinfo);
}

private void creatPayOrder(IssueProduct product, AssOrderinfo assOrderinfo) {

+ 57
- 18
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/order/OrderWxSignInfoManager.java Näytä tiedosto

@@ -1,16 +1,20 @@
package cn.com.taiji.ias.manager.order;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.ass.AssAgencyConfig;
import cn.com.taiji.core.entity.basic.QtkCardInfo;
import cn.com.taiji.core.entity.basic.QtkCustomerInfo;
import cn.com.taiji.core.entity.basic.QtkVehicleInfo;
import cn.com.taiji.core.entity.dict.basic.PlateColorType;
import cn.com.taiji.core.entity.dict.basic.UserType;
import cn.com.taiji.core.model.comm.protocol.ias.ass.ResignRequest;
import cn.com.taiji.core.model.comm.protocol.ias.order.IssueWxSignInfoRequest;
import cn.com.taiji.core.model.comm.protocol.ias.order.IssueWxSignInfoResponse;
import cn.com.taiji.core.model.comm.protocol.ias.order.SignQueryResponse;
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.core.repo.jpa.ass.AssAgencyConfigRepo;
import cn.com.taiji.core.repo.jpa.basic.QtkCardInfoRepo;
import cn.com.taiji.ias.dict.DataType;
import cn.com.taiji.ias.manager.ass.resign.ResignManager;
import cn.com.taiji.ias.model.ServiceLogEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -25,10 +29,15 @@ import java.util.Map;

@Service
public class OrderWxSignInfoManager extends AbstractOrderManager<IssueWxSignInfoRequest> {
private static final String RES = "res";
@Autowired
private SignCommonManager signCommonManager;
@Autowired
private QtkCardInfoRepo qtkCardInfoRepo;
@Autowired
private ResignManager resignManager;
@Autowired
private AssAgencyConfigRepo assAgencyConfigRepo;
public OrderWxSignInfoManager() {
super(DataType.WX_SIGN_INFO);
}
@@ -41,11 +50,45 @@ public class OrderWxSignInfoManager extends AbstractOrderManager<IssueWxSignInfo
@Override
protected void formatValidateInternal(ErrorMsgBuilder builder, IssueWxSignInfoRequest req,
ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
logger.info("恢复签约request:{}",req.toJson());
}

@Override
protected void businessValidateInternal(ErrorMsgBuilder builder, IssueWxSignInfoRequest req,
ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
QtkVehicleInfo vehicle = vehicleInfoRepo.findByVehicleId(req.getVehicleId());
if (vehicle == null) throw newBusinessException("未找到车辆信息");
QtkCardInfo card = qtkCardInfoRepo.findByVehicleIdAndCardStatus(vehicle.getVehicleId());
if (card == null) throw newBusinessException("未找到车辆对应的卡");
//渠道订单没有渠道配置或签约地址默认和黔通签约
AssAgencyConfig agencyConfig = assAgencyConfigRepo.findByAgencyId(card.getAgencyId());
if (agencyConfig != null && !agencyConfig.getQtSign()){
throw newBusinessException("需要渠道自己签约!");
}

String[] split = req.getVehicleId().split("_");
if (split[1].equals("1")) {//
throw newBusinessException("暂不支持黄牌签约!");
}
ResignRequest request = new ResignRequest();
request.setWxOpenId(req.getOpenid());
request.setProductId(card.getPackageId());
request.setVehicleId(req.getVehicleId());
if (request.getFlag() != null){
request.setFlag(request.getFlag());
}else {
request.setFlag(2);
}
QtkCustomerInfo customerInfo = customerInfoRepo.findByCustomerId(vehicle.getCustomerId());
if (customerInfo.getUserType() == UserType.PERSONAL_USER){
request.setName(customerInfo.getCustomerName());
request.setIdNum(customerInfo.getCustomerIdNum());
}else {
request.setName(customerInfo.getAgentName());
request.setIdNum(customerInfo.getAgentIdNum());
}
SignQueryResponse response = resignManager.serviceHandle(request);
dataStream.put(RES,response);
}

@Override
@@ -56,22 +99,7 @@ public class OrderWxSignInfoManager extends AbstractOrderManager<IssueWxSignInfo
@Override
protected IssueWxSignInfoResponse getRes(IssueWxSignInfoRequest reqDto, ServiceLogEvent event,
Map<String, Object> dataStream) throws ServiceHandleException {
logger.info("恢复签约request:{}",reqDto.toJson());
QtkVehicleInfo vehicle = vehicleInfoRepo.findByVehicleId(reqDto.getVehicleId());
if (vehicle == null) throw newBusinessException("未找到车辆信息");
QtkCardInfo card = qtkCardInfoRepo.findByVehicleIdAndCardStatus(vehicle.getVehicleId());
if (card == null) throw newBusinessException("未找到车辆对应的卡");
String[] split = reqDto.getVehicleId().split("_");
int color = Integer.parseInt(split[1]);
SignQueryResponse res = new SignQueryResponse();
switch (PlateColorType.valueOfCode(color)) {
case BLUE:
case GREEN:
res = signCommonManager.carSignV2(reqDto.getOpenid(), card.getPackageId(), reqDto.getVehicleId());
break;
default:
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("微信恢复签约只支持,蓝、渐变绿,车牌签约");
}
SignQueryResponse res = (SignQueryResponse) dataStream.get(RES);
IssueWxSignInfoResponse issueWxSignInfoResponse = new IssueWxSignInfoResponse();
issueWxSignInfoResponse.setAppid(res.getAppId());
issueWxSignInfoResponse.setSubAppid(res.getSubAppId());
@@ -84,6 +112,17 @@ public class OrderWxSignInfoManager extends AbstractOrderManager<IssueWxSignInfo
issueWxSignInfoResponse.setPlateNumber(res.getPlateNumber());
issueWxSignInfoResponse.setSubOpenid(res.getSubOpenId());
issueWxSignInfoResponse.setChannelType(res.getChannelType());

// =============20250929新增插件需要参数==============
issueWxSignInfoResponse.setUserState(res.getUserState());
issueWxSignInfoResponse.setDeductMode(res.getDeductMode());
issueWxSignInfoResponse.setPlateNumberInfo(res.getPlateNumberInfo());
issueWxSignInfoResponse.setAppId(res.getAppId());
issueWxSignInfoResponse.setSubAppId(res.getSubAppId());
issueWxSignInfoResponse.setOpenId(res.getOpenId());
issueWxSignInfoResponse.setSubOpenId(res.getSubOpenId());
issueWxSignInfoResponse.setPath(res.getPath());
issueWxSignInfoResponse.setPreopenId(res.getPreopenId());
return issueWxSignInfoResponse;
}
}

Loading…
Peruuta
Tallenna