chenchaod преди 1 месец
родител
ревизия
3a0c0a3d3a

+ 72
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/order/GetH5UrlRequest.java Целия файл

@@ -0,0 +1,72 @@
package cn.com.taiji.core.model.comm.protocol.ias.order;

import cn.com.taiji.core.entity.dict.basic.PlateColorType;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest;
import cn.com.taiji.core.model.comm.protocol.constraint.EnumInteger;
import cn.com.taiji.core.model.comm.protocol.constraint.IntegerConstant;
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder;
import lombok.Getter;
import lombok.Setter;

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

/**
* @Author:ChenChao
* @Date:2025/6/30 22:23
* @Filename:GetH5UrlRequest
* @description:
*/
@Getter
@Setter
public class GetH5UrlRequest extends AbstractSignTypeRequest<GetH5UrlResponse> {
protected GetH5UrlRequest() {
super(OrderServiceCmd.GETH5URL);
}
@NotBlank
private String agentId;// 渠道编号
@NotBlank
private String channelId;// 网点编号
@NotNull
@IntegerConstant(values = "1,2")
private Integer issueType;// 1:线上 2:线下

@IntegerConstant(values = "1,2,3,4,5")
private Integer platSource;//1-渠道APP 2-抖音 3-淘宝 4-京东 5-拼多多
private String staffNum;// 业务员编号
@NotBlank
private String mobile;//手机号
@NotBlank
private String vehiclePlate;// 车牌号码
@NotNull
@EnumInteger(enumClazz = PlateColorType.class)
private Integer vehiclePlateColor;// 车牌颜色
@NotNull
@IntegerConstant(values = "1,2,3")
private Integer vanType;// // 客货类型,原来的type字段1-客车 2-货车
@NotNull
@IntegerConstant(values = "1,2")
private Integer userType;// 用户类型1-个人2-单位
private Double longitude;// 经度
private Double latitude;// 纬度
@NotBlank
private String productId; // 产品编号
private String cardId;// 卡号
private String obuId;// 签号
private String trackingNumber;// 快递单号
private String courierCompany;// 快递公司
@NotBlank
private String qdOrderNo;//渠道订单号
private String noticeUrl;//状态变更通知回调地址
private String returnUrl;//下单H5业务逻辑完成后跳转渠道工具页面地址

public void relatedValid(ErrorMsgBuilder builder) {
if (issueType == 2) {
builder.validFieldNotBlank("staffNum", staffNum);
builder.validFieldNotNull("longitude", longitude);
builder.validFieldNotNull("latitude", latitude);
}
}


}

+ 22
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/order/GetH5UrlResponse.java Целия файл

@@ -0,0 +1,22 @@
package cn.com.taiji.core.model.comm.protocol.ias.order;

import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse;
import lombok.Getter;
import lombok.Setter;

/**
* @Author:ChenChao
* @Date:2025/6/30 22:23
* @Filename:GetH5UrlResponse
* @description:
*/
@Getter
@Setter
public class GetH5UrlResponse extends AbstractSignTypeResponse {
private Integer orderApplyStatus;//申办状态
private String msg;//原因
private String orderApplyUrl;//申办订单H5url地址
private String qdOrderNo;//渠道订单编号
private String orderNo;//黔通订单编号
private String receiveTime;//接收时间 yyyy-MM-ddTHH:mm:ss
}

+ 5
- 2
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/order/OrderInitRequest.java Целия файл

@@ -42,7 +42,7 @@ public class OrderInitRequest extends AbstractSignTypeRequest<OrderInitResponse>
@EnumInteger(enumClazz = PlateColorType.class)
private Integer vehiclePlateColor;// 车牌颜色
@NotNull
@IntegerConstant(values = "1,2")
@IntegerConstant(values = "1,2,3")
private Integer vanType;// // 客货类型,原来的type字段1-客车 2-货车
private Boolean whetherToMail = false;// 是否需要邮寄
@NotNull
@@ -54,6 +54,8 @@ public class OrderInitRequest extends AbstractSignTypeRequest<OrderInitResponse>
private Double latitude;// 纬度
@NotBlank
private String productId; // 产品编号

private String mobile;//手机号 渠道办理传办理用户手机号
private String cardId;// 卡号
private String obuId;// 签号
private String trackingNumber;// 快递单号
@@ -70,9 +72,10 @@ public class OrderInitRequest extends AbstractSignTypeRequest<OrderInitResponse>


public void relatedValid(ErrorMsgBuilder builder) {
if (SourceType.CHANNEL.name().equals(sourceType)) {
if (SourceType.CHANNEL.equals(sourceType)) {
// builder.validFieldNotBlank("staffNum", staffNum);
builder.validFieldNotBlank("qdOrderNo", qdOrderNo);
builder.validFieldNotBlank("mobile",mobile);
}
if (issueType == 2) {
builder.validFieldNotBlank("staffNum", staffNum);

+ 1
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/order/OrderServiceCmd.java Целия файл

@@ -8,6 +8,7 @@ import cn.com.taiji.core.model.comm.protocol.ias.IasServiceType;
public enum OrderServiceCmd implements SignServiceCommand {

INIT("初始化订单", OrderInitRequest.class),
GETH5URL("获取H5地址", GetH5UrlRequest.class),
USERUPLOAD("用户上传", UserUploadRequest.class),
VEHICLEUPLOAD("车辆上传", VehicleUploadRequest.class),
CANCEL("取消", OrderCancelRequest.class),

+ 3
- 2
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/order/VehicleUploadRequest.java Целия файл

@@ -51,6 +51,7 @@ public class VehicleUploadRequest extends AbstractSignTypeRequest<VehicleUploadR
private String vehicleModel;// 行驶证车辆品牌
@NotNull
private Integer approvedCount;// 核定载人数
@NotNull
private Integer totalMass;// 总质量
private Integer maintenaceMass;// 整备质量
private Integer permittedWeight;// 核定载质量
@@ -92,8 +93,8 @@ public class VehicleUploadRequest extends AbstractSignTypeRequest<VehicleUploadR
private String registerDate;// 注册日期
@IntegerConstant(values = "0,1")
private Integer emergencyFlag;// 应急车辆标识 0-非应急车辆 1-应急车辆
@NotNull
private Integer feeVehicleType;//收费车型
// @NotNull
// private Integer feeVehicleType;//收费车型 后端自己计算

public void relatedValid(ErrorMsgBuilder validator) {
try {

+ 1
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/dict/DataType.java Целия файл

@@ -19,6 +19,7 @@ public enum DataType {
SIGN_CHECK("signCheck", IasServiceType.ORDER, OrderServiceCmd.SIGNCHECK),
SIGN_CALLBACK("signCallback", IasServiceType.ORDER, OrderServiceCmd.SIGNCALLBACK),
TRANSACTION("transaction", IasServiceType.ORDER, OrderServiceCmd.TRANSACTION),
GET_H5_URL("getH5Url", IasServiceType.ORDER, OrderServiceCmd.GETH5URL),

;
private final String value;

+ 83
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/order/GetH5UrlManager.java Целия файл

@@ -0,0 +1,83 @@
package cn.com.taiji.ias.manager.order;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.common.pub.TimeTools;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse;
import cn.com.taiji.core.model.comm.protocol.ias.order.GetH5UrlRequest;
import cn.com.taiji.core.model.comm.protocol.ias.order.GetH5UrlResponse;
import cn.com.taiji.core.model.comm.protocol.ias.order.OrderInitRequest;
import cn.com.taiji.core.model.comm.protocol.ias.order.OrderInitResponse;
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder;
import cn.com.taiji.ias.dict.DataType;
import cn.com.taiji.ias.model.ServiceLogEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import java.io.IOException;
import java.time.LocalDateTime;
import java.util.Map;

/**
* @Author:ChenChao
* @Date:2025/6/30 22:19
* @Filename:GetH5UrlManager
* @description: 渠道专用创建订单返回H5链接
*/
@Service
public class GetH5UrlManager extends AbstractOrderManager<GetH5UrlRequest>{

public static final String INIT_ORDER_RES = "initOrderRes";
public GetH5UrlManager() {
super(DataType.GET_H5_URL);
}

@Value("${app.h5url}")
private String h5url = "https://qtzl.etcjz.cn/devh5/#/pages/userInfoUploading/userInfoUploading";

@Autowired
private OrderInitManager orderInitManager;
@Override
protected String getDataId(GetH5UrlRequest req) {
return "";
}

@Override
protected void formatValidateInternal(ErrorMsgBuilder builder, GetH5UrlRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
req.relatedValid(builder);
}

@Override
protected void businessValidateInternal(ErrorMsgBuilder builder, GetH5UrlRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
OrderInitRequest request = copyProperties(req, new OrderInitRequest());
request.setSourceType(SourceType.CHANNEL);
dataStream.put(INIT_ORDER_RES, request);
orderInitManager.businessValidateInternal(builder,request, event, dataStream);
}

@Override
protected void persistInternal(GetH5UrlRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
OrderInitRequest request = (OrderInitRequest) dataStream.get(INIT_ORDER_RES);
orderInitManager.persistInternal(request, event, dataStream);
}

@Override
protected void onSuccessInternal(GetH5UrlRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
OrderInitRequest request = (OrderInitRequest) dataStream.get(INIT_ORDER_RES);
orderInitManager.onSuccessInternal(request, event, dataStream);
}

@Override
protected AbstractSignTypeResponse getRes(GetH5UrlRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException, IOException {
OrderInitRequest request = (OrderInitRequest) dataStream.get(INIT_ORDER_RES);
OrderInitResponse response = orderInitManager.getRes(request, event, dataStream);
GetH5UrlResponse res = copyProperties(response, new GetH5UrlResponse());
res.setOrderApplyUrl(h5url + "?qdOrderNo=" + response.getOrderNo());
res.setOrderApplyStatus(1);
res.setQdOrderNo(req.getQdOrderNo());
res.setOrderNo(response.getOrderNo());
res.setReceiveTime(LocalDateTime.now().format(TimeTools.ISO_LOCAL_DATE_TIME));
return response;
}
}

+ 2
- 1
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/order/OrderInitManager.java Целия файл

@@ -196,7 +196,7 @@ public class OrderInitManager extends AbstractOrderManager<OrderInitRequest> {
}

@Override
protected AbstractSignTypeResponse getRes(OrderInitRequest req, ServiceLogEvent event,
protected OrderInitResponse getRes(OrderInitRequest req, ServiceLogEvent event,
Map<String, Object> dataStream) {
IssueOrderinfo order = (IssueOrderinfo)dataStream.get(ORDER);
OrderInitResponse res = new OrderInitResponse();
@@ -366,6 +366,7 @@ public class OrderInitManager extends AbstractOrderManager<OrderInitRequest> {
order.setReturnUrl(request.getNoticeUrl());
order.setQdOrderNo(request.getQdOrderNo());
order.setH5ReturnQdUrl(request.getReturnUrl());
order.setCustomerTel(request.getMobile());
orderInfoRepo.persist(order);
return order;
}

Loading…
Отказ
Запис