@@ -4,9 +4,7 @@ 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.issue.OrderAppPageReqDTO; | |||
import cn.com.taiji.iaw.dto.issue.OrderCreateReqDTO; | |||
import cn.com.taiji.iaw.dto.issue.OrderMinPageReqDTO; | |||
import cn.com.taiji.iaw.dto.issue.*; | |||
import cn.com.taiji.iaw.manager.issue.IssueOrderManage; | |||
import io.swagger.annotations.Api; | |||
import io.swagger.annotations.ApiOperation; | |||
@@ -45,22 +43,22 @@ public class OrderController extends MyValidController { | |||
@ApiOperation(value = "3.创建订单") | |||
@PostMapping(value = "/add") | |||
public ApiResponse<String> processAdd(@Valid @RequestBody OrderCreateReqDTO reqDto) throws ManagerException { | |||
String orderNo = issueOrderManage.add(reqDto); | |||
return ApiResponse.of(orderNo).setMessage("添加成功"); | |||
public ApiResponse<java.lang.String> processAdd(@Valid @RequestBody OrderCreateReqDTO reqDto) throws ManagerException { | |||
java.lang.String orderNo = issueOrderManage.add(reqDto); | |||
return ApiResponse.of(orderNo); | |||
} | |||
// @ApiOperation(value = "4.用户信息上传") | |||
// @PostMapping(value = "/add") | |||
// public ApiResponse<String> processAdd(@Valid @RequestBody OrderCreateReqDTO reqDto) throws ManagerException { | |||
// String orderNo = issueOrderManage.add(reqDto); | |||
// return ApiResponse.of(orderNo).setMessage("添加成功"); | |||
// } | |||
// | |||
// @ApiOperation(value = "5.车辆信息上传") | |||
// @PostMapping(value = "/add") | |||
// public ApiResponse<String> processAdd(@Valid @RequestBody OrderCreateReqDTO reqDto) throws ManagerException { | |||
// String orderNo = issueOrderManage.add(reqDto); | |||
// return ApiResponse.of(orderNo).setMessage("添加成功"); | |||
// } | |||
@ApiOperation(value = "4.用户信息上传") | |||
@PostMapping(value = "/upUser") | |||
public ApiResponse<String> upUser(@Valid @RequestBody UploadUserReqDTO reqDto) throws ManagerException { | |||
String res = issueOrderManage.upUser(reqDto); | |||
return ApiResponse.of(res); | |||
} | |||
@ApiOperation(value = "5.车辆信息上传") | |||
@PostMapping(value = "/upVehicle") | |||
public ApiResponse<UploadVehicleResDTO> upVehicle(@Valid @RequestBody UploadVehicleReqDTO reqDto) throws ManagerException { | |||
UploadVehicleResDTO res = issueOrderManage.upVehicle(reqDto); | |||
return ApiResponse.of(res); | |||
} | |||
} |
@@ -1,7 +1,13 @@ | |||
package cn.com.taiji.iaw.dto.issue; | |||
import cn.com.taiji.core.dto.AbstractBizRequestDTO; | |||
import org.springframework.stereotype.Service; | |||
import cn.com.taiji.core.entity.dict.basic.IdType; | |||
import cn.com.taiji.core.model.comm.protocol.constraint.EnumInteger; | |||
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 | |||
@@ -9,6 +15,57 @@ import org.springframework.stereotype.Service; | |||
* @Filename:UploadUserReqDTO | |||
* @description: | |||
*/ | |||
@Service | |||
@Data | |||
@ApiModel(description = "上传用户信息请求参数") | |||
public class UploadUserReqDTO extends AbstractBizRequestDTO { | |||
@NotBlank | |||
@ApiModelProperty(value = "订单编号") | |||
private String orderNo;// 订单号 | |||
@NotBlank | |||
@ApiModelProperty(value = "办理用户姓名-单位名或个人姓名") | |||
private String userName;// 用户姓名 | |||
@NotNull | |||
@EnumInteger(enumClazz = IdType.class, message = "证件类型不合规") | |||
@ApiModelProperty(value = "办理用户证件类型-单位或个人证件类型") | |||
private Integer userIdType;// 用户证件类型 | |||
@NotBlank | |||
@ApiModelProperty(value = "办理用户证件号码-单位或个人证件号码") | |||
private String userIdNum;// 用户证件号码 | |||
@NotBlank | |||
@ApiModelProperty(value = "办理用户证件地址-单位或个人证件地址") | |||
private String userAddress;// 用户证件地址 | |||
@NotBlank | |||
@ApiModelProperty(value = "办理用户证件正面照片地址-个人sfz头像面或单位营业执照") | |||
private String userPosImgUrl;// 用户证件正面照片地址 | |||
@ApiModelProperty(value = "办理用户证件反面照片地址-个人sfz国徽面") | |||
private String userNegImgUrl;// 用户证件反面照片地址 | |||
@ApiModelProperty(value = "办理用户个人手机号") | |||
private String mobile;// // 用户手机号,个人必传 | |||
@ApiModelProperty(value = "办理用户个人证件有效期") | |||
private String customerIdVld;// 用户证件有效期,个人必传 | |||
@ApiModelProperty(value = "单位经办人姓名") | |||
private String agentName;// 经办人姓名 | |||
@EnumInteger(enumClazz = IdType.class, message = "经办人证件类型不合规") | |||
@ApiModelProperty(value = "单位经办人证件类型") | |||
private Integer agentIdType;// 经办人证件类型 | |||
@ApiModelProperty(value = "单位经办人证件号码") | |||
private String agentIdNum;// 经办人证件号码 | |||
@ApiModelProperty(value = "单位经办人手机号") | |||
private String agentTel;// 经办人手机号 | |||
@ApiModelProperty(value = "单位经办人证件地址") | |||
private String agentAddress;// 经办人证件地址 | |||
@ApiModelProperty(value = "单位经办人证件有效期") | |||
private String agentIdVld;// 经办人证件有效期 | |||
@ApiModelProperty(value = "单位经办人证件正面照片地址") | |||
private String agentPosImgUrl;// 经办人证件正面照片地址 | |||
@ApiModelProperty(value = "单位经办人证件反面照片地址") | |||
private String agentNegImgUrl;// 经办人证件反面照片地址 | |||
@ApiModelProperty(value = "单位授权书照片地址") | |||
private String proxyUrl;// 授权书照片地址 | |||
@ApiModelProperty(value = "单位部门") | |||
private String department;// 用户部门,单位必传 | |||
} |
@@ -1,10 +0,0 @@ | |||
package cn.com.taiji.iaw.dto.issue; | |||
/** | |||
* @Author:ChenChao | |||
* @Date:2025/6/17 21:21 | |||
* @Filename:UploadUserResDTO | |||
* @description: | |||
*/ | |||
public class UploadUserResDTO { | |||
} |
@@ -0,0 +1,139 @@ | |||
package cn.com.taiji.iaw.dto.issue; | |||
import cn.com.taiji.core.dto.AbstractBizRequestDTO; | |||
import cn.com.taiji.core.entity.dict.basic.IdType; | |||
import cn.com.taiji.core.entity.dict.basic.PlateColorType; | |||
import cn.com.taiji.core.entity.dict.basic.UseUserType; | |||
import cn.com.taiji.core.entity.dict.basic.VehicleUseCharacter; | |||
import cn.com.taiji.core.model.comm.protocol.constraint.EnumInteger; | |||
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.Min; | |||
import javax.validation.constraints.NotBlank; | |||
import javax.validation.constraints.NotNull; | |||
/** | |||
* @Author:ChenChao | |||
* @Date:2025/6/18 10:28 | |||
* @Filename:UploadVehicleReqDTO | |||
* @description: | |||
*/ | |||
@Data | |||
@ApiModel(description = "上传车辆信息请求参数") | |||
public class UploadVehicleReqDTO extends AbstractBizRequestDTO { | |||
@NotBlank | |||
@ApiModelProperty(value = "订单编号") | |||
private String orderNo; | |||
@NotBlank | |||
@ApiModelProperty(value = "车牌号") | |||
private String vehiclePlate;// 车牌号 | |||
@NotNull | |||
@EnumInteger(enumClazz = PlateColorType.class) | |||
@ApiModelProperty(value = "车牌颜色") | |||
private Integer vehiclePlateColor;// 车牌颜色 | |||
@NotNull | |||
@EnumInteger(enumClazz = UseUserType.class) | |||
@ApiModelProperty(value = "车辆使用类型") | |||
private Integer useUserType;//车辆使用类型 | |||
@NotNull | |||
@IntegerConstant(values = "1,2") | |||
@ApiModelProperty(value = "前/后装标识,1-前装 2-后装") | |||
private Integer vehicleSign=2;// 前/后装标识,1-前装 2-后装 | |||
@NotNull | |||
@IntegerConstant(values = "1,2") | |||
@ApiModelProperty(value = "客货类型 1-客车 2-货车") | |||
private Integer vanType;// 客货类型 | |||
@NotBlank | |||
@ApiModelProperty(value = "车辆vin码") | |||
private String vin;// vin码 | |||
@NotBlank | |||
@ApiModelProperty(value = "车辆发动机编号") | |||
private String engineNum;// 发动机编号 | |||
@NotBlank | |||
@ApiModelProperty(value = "行驶证车辆类型") | |||
private String vehicleType;// 行驶证车辆类型 ocr识别 | |||
@NotBlank | |||
@ApiModelProperty(value = "行驶证车辆品牌") | |||
private String vehicleModel;// 行驶证车辆品牌 | |||
@NotNull | |||
@ApiModelProperty(value = "车辆核定载人数") | |||
private Integer approvedCount;// 核定载人数 | |||
@ApiModelProperty(value = "车辆总质量") | |||
private Integer totalMass;// 总质量 | |||
@ApiModelProperty(value = "车辆整备质量") | |||
private Integer maintenaceMass;// 整备质量 | |||
@ApiModelProperty(value = "核定载质量") | |||
private Integer permittedWeight;// 核定载质量 | |||
@ApiModelProperty(value = "准牵引总质量") | |||
private Integer permittedTowWeight;// 准牵引总质量 | |||
@NotBlank | |||
@ApiModelProperty(value = "车辆尺寸") | |||
private String vehicleDimensions;// 车辆尺寸 | |||
@Min(value = 2) | |||
@ApiModelProperty(value = "车辆轴数") | |||
private Integer axleCount;// 车轴数 | |||
@NotBlank | |||
@ApiModelProperty(value = "行驶证车主姓名") | |||
private String ownerName;//行驶证车主姓名 | |||
@NotBlank | |||
@ApiModelProperty(value = "发证日期") | |||
private String issueDate;// 发证日期 | |||
// private String agreementId;// 签约编号 | |||
@ApiModelProperty(value = "道路运输证号码") | |||
private String transportIdNum;// 道路运输证编号 | |||
@ApiModelProperty(value = "经营许可证编号") | |||
private String licenseIdNum;// 经营许可证编号 | |||
@NotBlank | |||
@ApiModelProperty(value = "行驶证主页照片") | |||
private String vehPosImgUrl;// 行驶证主页照片 | |||
@NotBlank | |||
@ApiModelProperty(value = "行驶证副页照片") | |||
private String vehNegImgUrl;// 行驶证副页照片 | |||
@NotBlank | |||
@ApiModelProperty(value = "车辆45度照片") | |||
private String vehBodyUrl;// 车身45°照片 | |||
@NotNull | |||
@IntegerConstant(values = "0,1") | |||
@ApiModelProperty(value = "牵引车标识:0否 1 是") | |||
private Integer tractorSign;// 牵引车标识:0否 1 是 | |||
@ApiModelProperty(value = "道路运输许可证图片地址") | |||
private String roadTransportPermitPicUrl;// 道路运输许可证图片地址 | |||
@NotNull | |||
@EnumInteger(enumClazz = VehicleUseCharacter.class) | |||
@ApiModelProperty(value = "车辆使用性质") | |||
private Integer character; | |||
@NotBlank | |||
@ApiModelProperty(value = "车辆注册日期") | |||
private String registerDate;// 注册日期 | |||
@IntegerConstant(values = "0,1") | |||
@ApiModelProperty(value = "应急车辆标识0-非应急车辆 1-应急车辆") | |||
private Integer emergencyFlag;// 应急车辆标识 0-非应急车辆 1-应急车辆 | |||
@NotNull | |||
@ApiModelProperty(value = "收费车型") | |||
private Integer feeVehicleType;//收费车型 | |||
@ApiModelProperty(value = "车主手机号") | |||
private String ownerTel;//车主手机号 | |||
@ApiModelProperty(value = "身份证上姓名") | |||
private String idName;//身份证上姓名 | |||
@EnumInteger(enumClazz = IdType.class, message = "用户证件类型不合规") | |||
@ApiModelProperty(value = "车主证件类型") | |||
private Integer ownerIdType;// 车主证件类型 | |||
@ApiModelProperty(value = "车主证件号码") | |||
private String ownerIdNum;// 车主证件号码 | |||
@ApiModelProperty(value = "车主证件ocr地址") | |||
private String ownerIdAddress;// 车主证件ocr地址 | |||
@ApiModelProperty(value = "车主证件正面照片地址") | |||
private String ownerPosImgUrl;//车主证件正面照片地址 | |||
@ApiModelProperty(value = "车主证件反面照片地址") | |||
private String ownerNegImgUrl;//车主证件反面照片地址 | |||
@ApiModelProperty(value = "委托书地址") | |||
private String proxyUrl;// 委托书地址 | |||
} |
@@ -0,0 +1,25 @@ | |||
package cn.com.taiji.iaw.dto.issue; | |||
import io.swagger.annotations.ApiModel; | |||
import io.swagger.annotations.ApiModelProperty; | |||
import lombok.Data; | |||
/** | |||
* @Author:ChenChao | |||
* @Date:2025/6/18 14:54 | |||
* @Filename:UploadVehicleResDTO | |||
* @description: | |||
*/ | |||
@ApiModel(description = "上传车辆信息响应参数") | |||
@Data | |||
public class UploadVehicleResDTO { | |||
@ApiModelProperty(value = "1-审核通过 2-审核不通过,待人工审核") | |||
private Integer approvalStatus; | |||
@ApiModelProperty(value = "审核结果为2时必填") | |||
private String reason; | |||
@ApiModelProperty(value = "上传车主身份标识,1需要,2不需要") | |||
private Integer flag; | |||
} |
@@ -3,9 +3,7 @@ package cn.com.taiji.iaw.manager.issue; | |||
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.iaw.dto.issue.OrderAppPageReqDTO; | |||
import cn.com.taiji.iaw.dto.issue.OrderCreateReqDTO; | |||
import cn.com.taiji.iaw.dto.issue.OrderMinPageReqDTO; | |||
import cn.com.taiji.iaw.dto.issue.*; | |||
/** | |||
* @Author:ChenChao | |||
@@ -18,5 +16,9 @@ public interface IssueOrderManage { | |||
Pagination aOrderPage(OrderAppPageReqDTO reqDto); | |||
String add(OrderCreateReqDTO reqDto) throws ManagerException; | |||
java.lang.String add(OrderCreateReqDTO reqDto) throws ManagerException; | |||
String upUser(UploadUserReqDTO reqDto) throws ManagerException; | |||
UploadVehicleResDTO upVehicle(UploadVehicleReqDTO reqDto) throws ManagerException; | |||
} |
@@ -5,16 +5,15 @@ 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.dict.basic.SourceType; | |||
import cn.com.taiji.core.entity.dict.basic.UserType; | |||
import cn.com.taiji.core.entity.issue.IssueOrderinfo; | |||
import cn.com.taiji.core.entity.issue.IssueProduct; | |||
import cn.com.taiji.core.entity.user.Staff; | |||
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.ias.order.*; | |||
import cn.com.taiji.core.repo.jpa.issue.IssueOrderinfoRepo; | |||
import cn.com.taiji.core.repo.jpa.issue.IssueProductRepo; | |||
import cn.com.taiji.core.repo.jpa.user.StaffRepo; | |||
import cn.com.taiji.iaw.dto.issue.OrderAppPageReqDTO; | |||
import cn.com.taiji.iaw.dto.issue.OrderCreateReqDTO; | |||
import cn.com.taiji.iaw.dto.issue.OrderMinPageReqDTO; | |||
import cn.com.taiji.iaw.dto.issue.*; | |||
import cn.com.taiji.iaw.manager.AbstractCommManager; | |||
import cn.com.taiji.iaw.repo.jpa.request.issue.IssueOrderaPageRequest; | |||
import cn.com.taiji.iaw.repo.jpa.request.issue.IssueOrdermPageRequest; | |||
@@ -28,7 +27,7 @@ import org.springframework.stereotype.Service; | |||
* @description: 发行订单管理实现类 | |||
*/ | |||
@Service | |||
public class IssueOrderManageImpl extends AbstractCommManager implements IssueOrderManage{ | |||
public class IssueOrderManageImpl extends AbstractCommManager implements IssueOrderManage { | |||
@Autowired | |||
private IssueOrderinfoRepo issueOrderinfoRepo; | |||
@@ -40,7 +39,7 @@ public class IssueOrderManageImpl extends AbstractCommManager implements IssueOr | |||
@Override | |||
public Pagination mOrderPage(OrderMinPageReqDTO reqDto) throws ServiceHandleException { | |||
IssueOrdermPageRequest request = copyProperties(reqDto, new IssueOrdermPageRequest()); | |||
String openId = findOpenIdByToken(reqDto.getAccessToken()); | |||
java.lang.String openId = findOpenIdByToken(reqDto.getAccessToken()); | |||
request.setOpenId(openId); | |||
return issueOrderinfoRepo.page(request); | |||
} | |||
@@ -56,21 +55,22 @@ public class IssueOrderManageImpl extends AbstractCommManager implements IssueOr | |||
@Override | |||
public String add(OrderCreateReqDTO reqDto) throws ManagerException { | |||
reqDto.validate(); | |||
IssueProduct product = issueProductRepo.findByReleaseId(reqDto.getProductId()); | |||
OrderInitRequest request = copyProperties(reqDto, new OrderInitRequest()); | |||
if (SourceType.WECHAT == reqDto.getOrderSource()){ | |||
if (SourceType.WECHAT == reqDto.getOrderSource()) { | |||
request.setAgentId(product.getAgencyId()); | |||
request.setChannelId("5201010200601130001"); | |||
request.setOpenId(findOpenIdByToken(reqDto.getAccessToken())); | |||
} | |||
if (SourceType.SERVICE_HALL == reqDto.getOrderSource()){ | |||
if (SourceType.SERVICE_HALL == reqDto.getOrderSource()) { | |||
Staff staff = staffRepo.findByStaffId(reqDto.getStaffId()); | |||
request.setAgentId(staff.getAgencyId()); | |||
request.setChannelId(staff.getServiceHallId()); | |||
request.setStaffNum(reqDto.getStaffId()); | |||
} | |||
if (SourceType.ALI == reqDto.getOrderSource()){ | |||
if (SourceType.ALI == reqDto.getOrderSource()) { | |||
request.setAgentId(product.getAgencyId()); | |||
request.setChannelId("5201010600401140003"); | |||
request.setOpenId(findOpenIdByToken(reqDto.getAccessToken())); | |||
@@ -79,4 +79,30 @@ public class IssueOrderManageImpl extends AbstractCommManager implements IssueOr | |||
OrderInitResponse response = jsonPostRepeat(request); | |||
return response.getOrderNo(); | |||
} | |||
@Override | |||
public String upUser(UploadUserReqDTO reqDto) throws ManagerException { | |||
UserUploadRequest request = copyProperties(reqDto, new UserUploadRequest()); | |||
UserUploadResponse response = jsonPostRepeat(request); | |||
return response.getCustomerId(); | |||
} | |||
@Override | |||
public UploadVehicleResDTO upVehicle(UploadVehicleReqDTO reqDto) throws ManagerException { | |||
IssueOrderinfo order = issueOrderinfoRepo.findByOrderNo(reqDto.getOrderNo()); | |||
if (order == null) throw new ManagerException("订单不存在"); | |||
UploadVehicleResDTO res = new UploadVehicleResDTO(); | |||
// 个人行驶证与办理人不一致,要求上传车主证件 | |||
if (UserType.PERSONAL_USER.equals(order.getUserType()) && | |||
!reqDto.getOwnerName().equals(order.getOwnerName()) && hasText(reqDto.getIdName())) { | |||
res.setFlag(1); | |||
return res; | |||
} | |||
VehicleUploadRequest request = copyProperties(reqDto, new VehicleUploadRequest()); | |||
VehicleUploadResponse response = jsonPostRepeat(request); | |||
res.setApprovalStatus(response.getApprovalStatus()); | |||
res.setReason(response.getReason()); | |||
res.setFlag(2); | |||
return res; | |||
} | |||
} |
@@ -58,7 +58,7 @@ public class IssueProductManagerImpl extends AbstractCommManager implements Issu | |||
request.setPromotionMode(2); | |||
} | |||
//找出启用状态的推广产品 | |||
List<String> releaseIds = issueProductPromotionRepo.findReleaseIds("%"+agencyId+"%", LocalDateTime.now()); | |||
List<String> releaseIds = issueProductPromotionRepo.findReleaseIds(reqDto.toLikeStr(agencyId), LocalDateTime.now()); | |||
request.setOrderSource(reqDto.getOrderSource()); | |||
request.setReleaseIdList(releaseIds); | |||
return issueProductRepo.page(request); |