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