提交 791d2270 authored 作者: liruixin's avatar liruixin

Merge remote-tracking branch 'origin/release' into release

......@@ -28,3 +28,4 @@ mvnw.cmd
/dist/
/nbdist/
/.nb-gradle/
/nbsdk/
......@@ -18,7 +18,8 @@ public enum IdTypeEnum {
CASE_OUT_SUCCESS(4L, "提现成功"),
TOP_UP_SUCCESS(5L, "充值成功"),
FROZEN(6L, "冻结"),
THAW(7L, "解冻")
THAW(7L, "解冻"),
TAKE_OUT(8L, "扣除")
;
private final Long code;
private final String msg;
......
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
@Getter
@AllArgsConstructor
@SuppressWarnings("all")
public enum NetworkDriverAccountEnum {
;
@Getter
@AllArgsConstructor
public enum RunningWaterStatus {
SETTLEMENT(10, "运单结算"),
CASE_OUT_FROZEN(20, "提现冻结"),
CASE_OUT_SUCCESS(30, "提现成功"),
;
private final Integer code;
private final String msg;
public static Optional<NetworkDriverAccountEnum.RunningWaterStatus> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst();
}
public Integer getCode() {
return this.code;
}
public String getMsg() {
return this.msg;
}
}
@Getter
@AllArgsConstructor
public enum FundType {
INCOME(10, "收入"),
FROZEN(20, "冻结"),
EXPENDITURE(30, "支出"),
;
private final Integer code;
private final String msg;
public static Optional<NetworkDriverAccountEnum.FundType> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst();
}
public Integer getCode() {
return this.code;
}
public String getMsg() {
return this.msg;
}
}
@Getter
@AllArgsConstructor
public enum CaseOutRecordStatus {
WAIT_PLATFORM_PAY(10, "待平台付款"),
PAYED(20, "已付款"),
;
private final Integer code;
private final String msg;
public static Optional<CaseOutRecordStatus> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst();
}
public Integer getCode() {
return this.code;
}
public String getMsg() {
return this.msg;
}
}
}
......@@ -12,6 +12,8 @@ public enum OrderGoodsLogsEnum {
EDIT("编辑"),
CANCEL( "取消"),
ADJUST_PRICE("调价"),
SYSTEM_RELEASE("释放吨数"),
SYSTEM_INCREASE("提量吨数"),
;
private final String name;
......
......@@ -67,8 +67,8 @@ public enum OwnerAccountEnum {
@Getter
@AllArgsConstructor
public enum OrderChildTypeStatus {
ORDINARY(1, "普通单"),
NETWORK(2, "网运单"),
NETWORK(1, "网运单"),
ORDINARY(2, "普通单"),
;
private final Integer code;
private final String msg;
......@@ -86,7 +86,7 @@ public enum OwnerAccountEnum {
THAW(30, "解冻"),
CASE_OUT_FROZEN(40, "提现冻结"),
CASE_OUT_SUCCESS(50, "提现成功"),
TAKE_OUT(60, "扣"),
TAKE_OUT(60, "扣"),
CASE_OUT_FAIL(70, "提现失败"),
;
......
......@@ -99,6 +99,19 @@ public enum PerformanceResultEnum implements ResultEnum {
ORDER_GOODS_SAVE_FAIL(1801, "保存货单失败,请稍后再试"),
USER_ID_IS_EMPTY(1900, "用户ID不能为空"),
MOBILE_IS_EMPTY(1901, "用户手机号不能为空"),
CAPTCHA_IS_EMPTY(1902, "验证码不能为空"),
USER_ACCOUNT_NOT_FOUND(1903, "用户账号未找到"),
CAPTCHA_IS_EXPIRE(1904, "短信验证码已失效,请重新发送"),
CAPTCHA_MORE_COUNT(1905, "验证码发送过于频繁,请稍后再发"),
CAPTCHA_IS_FAIL(1906, "验证码错误"),
BUSINESS_NO_FAIL(1907, "营业执照校验不一致,请重新输入"),
TOKEN_IS_FAIL(1908, "token失效,请重新获取token"),
PASSWORD_RESET_IS_FAIL(1909, "重置密码出现异常"),
PASSWORD_CHECK_FAIL(1910, "交易密码填写错误,请重新输入"),
SLIDER_CHECK_FAIL(1911, "滑块验证错误"),
ORDER_CHILD_SYNC_ERROR(1912, "承运同步网络货运异常"),
;
private final int code;
......
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Objects;
import java.util.Optional;
//"车辆燃料类型 1:柴油 2 天然气 3其他 4新能源/电"
public enum PowerTypeEnum {
;
@Getter
@AllArgsConstructor
public enum Type {
DIESEL_OIL(1, "柴油"),
NATURAL_GAS(2, "天然气"),
OTHER(3, "其他"),
NEW_ENERGY(4, "新能源/电"),
;
private final Integer code;
private final String name;
public static Optional<Type> getByCode(Integer code) {
return Arrays.stream(values()).filter(e -> Objects.equals(e.getCode(), code)).findFirst();
}
public static Optional<Type> getByName(String name) {
return Arrays.stream(values()).filter(e -> Objects.equals(e.getName(), name)).findFirst();
}
public static Integer getCodeByName(String name) {
return getByName(name).map(PowerTypeEnum.Type::getCode).orElse(3);
}
}
}
......@@ -33,7 +33,10 @@ public enum SettlementOwnerEnum {
public enum InvoiceStatus {
INVOICED(1, "已开票"),
NOT_INVOICE(2, "未开票"),
NO_NEED_INVOICE(3, "无需开票");
NO_NEED_INVOICE(3, "无需开票"),
PART_INVOICE(4, "部分开票")
;
private final Integer code;
private final String msg;
......
package com.clx.performance.feign;
import com.clx.performance.param.pc.driver.NetworkDriverAccountParam;
import com.msl.common.result.Result;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(name = "clx-performance",configuration = PerformanceClientConfiguration.class)
public interface NetworkFeign {
@ApiOperation(value = "新增网络货运司机账户")
@PostMapping("clx-performance/feign/driver/createNetworkDriverAccount")
Result<Object> createNetworkDriverAccount(@RequestBody @Validated NetworkDriverAccountParam param);
}
......@@ -26,6 +26,8 @@ public interface OrderChildFeign {
Result<?> syncLastTruck(@RequestParam("orderNo") @NotBlank(message = "订单编号不能为空") String orderNo);
@RequestMapping(value = "clx-performance/feign/orderChild/getInvoiceType", method = RequestMethod.GET)
Result<Integer> getInvoiceType(@RequestParam("orderNo") @NotBlank(message = "订单编号不能为空") String orderNo);
}
......@@ -90,6 +90,10 @@ public interface PerformanceFeign {
@GetMapping(value = {"clx-performance/feign/orderChild/selectInTransitOrderChild"})
Result<Boolean> selectInTransitOrderChild(@RequestParam("orderNo") String orderNo);
@GetMapping(value = {"clx-performance/feign/orderChild/selectInTransitOrderChildLtUnsettle"})
Result<Boolean> selectInTransitOrderChildLtUnsettle(@RequestParam("orderNo") String orderNo);
@GetMapping(value = {"clx-performance/feign/orderGoods/updateSystemAddressId"})
Result<Boolean> updateSystemAddressId(@RequestParam("ownerAddressId") Integer ownerAddressId,@RequestParam("systemAddressId") Integer systemAddressId);
......
package com.clx.performance.feign;
import com.msl.common.result.Result;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(name = "clx-performance",configuration = PerformanceClientConfiguration.class)
public interface SettlementFeign {
@ApiOperation(value = "查询当前订单号是否已经生成货主结算单明细")
@GetMapping("clx-performance/feign/settlement/thawAndLockSettlement")
Result<Boolean> thawAndLockSettlement(@RequestParam String orderNo);
}
package com.clx.performance.param.app;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
@Getter
@Setter
@NoArgsConstructor
public class AppGoodsOrderSearchParam extends PageParam {
@ApiModelProperty(value = "1:货源地 2: 目的地", example = "1")
@NotBlank(message = "查询类型")
private Integer searchType;
@ApiModelProperty(value = "搜索条件", example = "1")
private String searchName;
}
package com.clx.performance.param.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
public class CheckMobileParam {
@ApiModelProperty(value = "手机号", example = "1")
@NotBlank(message = "手机号")
private String mobile;
@ApiModelProperty(value = "验证码", example = "1")
@NotBlank(message = "验证码")
private String captcha;
@ApiModelProperty(value = "调用发送短信接口返回的token", example = "1")
private String token;
}
package com.clx.performance.param.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class InformationParam {
@ApiModelProperty(value = "营业执照编号", example = "1")
@NotBlank(message = "营业执照编号")
private String businessLicenseNumber;
@ApiModelProperty(value = "验证手机号通过后Token", example = "1")
@NotBlank(message = "验证手机号通过后Token")
private String token;
@ApiModelProperty(value = "手机号", example = "1")
@NotBlank(message = "手机号")
private String mobile;
}
package com.clx.performance.param.app;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
public class NetworkDriverPageParam extends PageParam {
private Long userNo;
@ApiModelProperty("资金类型 全部:不需要传 10:收入 30:支出 ")
private Integer fundType;
}
package com.clx.performance.param.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ResetPasswordParam {
@ApiModelProperty(value = "交易密码", example = "1")
@NotBlank(message = "交易密码")
private String password;
@ApiModelProperty(value = "验证营业执照后通过后Token", example = "1")
@NotBlank(message = "验证营业执照后通过后Token")
private String token;
@ApiModelProperty(value = "手机号", example = "1")
@NotBlank(message = "手机号")
private String mobile;
}
package com.clx.performance.param.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
public class SendMobileCaptchaParam {
@ApiModelProperty(value = "手机号", example = "1")
@NotBlank(message = "手机号")
private String mobile;
@ApiModelProperty(value = "会话ID", required = true, example = "XXX", dataType = "String")
private String sessionId;
@ApiModelProperty(value = "签名串", required = true, example = "XXX", dataType = "String")
private String sig;
@ApiModelProperty(value = "请求唯一标识", required = true, example = "XXX", dataType = "String")
private String token;
@ApiModelProperty(value = "场景标识", required = true, example = "XXX", dataType = "String")
private String scene;
}
......@@ -16,4 +16,10 @@ public class DriverPageIntegralTruckRankParam extends PageParam {
@ApiModelProperty(value = "车牌列表", hidden = true)
List<String> truckNoList;
@ApiModelProperty(value = "车辆添加截止时间", hidden = true)
private String time;
@ApiModelProperty(value = "统计时间(周一)", hidden = true)
private String statisticsDate;
}
package com.clx.performance.param.feign.transport;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotBlank;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OrderChildBankInfoDTO {
// @ApiModelProperty(value = "运单号", dataType="String", required = true)
// private String childNo;
// @ApiModelProperty(value = "用户钱包", dataType="Integer", required = true)
// private Integer userCode;
@ApiModelProperty(value = "持卡人姓名", dataType="String", required = true)
private String name;
@ApiModelProperty(value = "银行卡卡号", dataType="String", required = true)
private String cardNo;
@ApiModelProperty(value = "手机号", dataType="String", required = true)
private String mobile;
@ApiModelProperty(value = "账户类型 11个人 12企业账户", dataType="Integer", required = true)
private Integer accountType;
@ApiModelProperty(value = "银行卡类型10借记卡20借贷卡", dataType="String", required = true)
private String type;
// @ApiModelProperty(value = "是否允许提现: 允许提现1 ,禁止提现0", dataType="Integer", required = true)
// private Integer cashOut;
@ApiModelProperty(value = "身份证号", dataType="String", required = true)
@NotBlank(message = "身份证号不能为空")
private String idCard;
@ApiModelProperty(value = "银行", dataType="String", required = true)
@NotBlank(message = "银行不能为空")
private String bank;
@ApiModelProperty(value = "银行编码", dataType="String", required = true)
@NotBlank(message = "银行编码不能为空")
private String bankCode;
@ApiModelProperty(value = "身份证正面图片", required = true)
@NotBlank(message = "身份证正面图片不能为空")
private String idCardFrontImg;
@ApiModelProperty(value = "身份证背面图片", required = true)
@NotBlank(message = "身份证背面图片不能为空")
private String idCardBackImg;
}
package com.clx.performance.param.feign.transport;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OrderChildDriverInfoDTO {
// @ApiModelProperty(value = "运单号", dataType="String", required = true)
// private String childNo;
// @ApiModelProperty(value = "司机ID", dataType="Integer", required = true)
// private Integer driverId;
@ApiModelProperty(value = "手机号", dataType="String", required = true)
@NotBlank(message = "手机号不能为空")
private String mobile;
@ApiModelProperty(value = "姓名", dataType="String", required = true)
@NotBlank(message = "姓名手机号不能为空")
private String name;
@ApiModelProperty(value = "性别1男2女", dataType="Integer", required = true)
private Integer sex;
// @ApiModelProperty(value = "头像相对地址", dataType="String", required = true)
// private String headImg;
// @ApiModelProperty(value = "钱包账号", dataType="String", required = true)
// private String walletCode;
@ApiModelProperty(value = "身份证号", dataType="String", required = true)
@NotBlank(message = "身份证号不能为空")
private String cardNo;
@ApiModelProperty(value = "身份证有效期起始时间", dataType="String", required = true)
@NotBlank(message = "身份证有效期起始时间不能为空")
private String cardStartTime;
@ApiModelProperty(value = "身份证有效期终止时间", dataType="String")
private String cardEndTime;
@ApiModelProperty(value = "是否是长期 0-非长期 1-长期", dataType="Integer", required = true)
@NotNull(message = "是否是长期不能为空")
private Integer cardLongTerm;
@ApiModelProperty(value = "身份证正面图片地址", dataType="String", required = true)
@NotBlank(message = "身份证正面图片地址不能为空")
private String cardFrontImg;
@ApiModelProperty(value = "身份证背面图片地址", dataType="String", required = true)
@NotBlank(message = "身份证背面图片地址不能为空")
private String cardBackImg;
@ApiModelProperty(value = "手持身份证照片地址", dataType="String")
private String faceCardImg;
@ApiModelProperty(value = "驾驶证号码", dataType="String", required = true)
// @NotBlank(message = "驾驶证号码不能为空")
private String licenceNo;
@ApiModelProperty(value = "初次领证日期", dataType="String", required = true)
// @NotBlank(message = "初次领证日期不能为空")
private String licenseTime;
@ApiModelProperty(value = "驾照类型", dataType="String", required = true)
// @NotBlank(message = "驾照类型不能为空")
private String licenceClass;
@ApiModelProperty(value = "驾驶证正面图片", dataType="String", required = true)
// @NotBlank(message = "驾驶证正面图片不能为空")
private String licenceImg;
@ApiModelProperty(value = "驾驶证背面图片", dataType="String", required = true)
// @NotBlank(message = "驾驶证背面图片不能为空")
private String licenceBackImg;
@ApiModelProperty(value = "驾驶证有效期起始时间", dataType="String", required = true)
// @NotBlank(message = "驾驶证有效期起始时间不能为空")
private String licenceStartTime;
@ApiModelProperty(value = "驾驶证有效期终止时间", dataType="String", required = true)
// @NotBlank(message = "驾驶证有效期终止时间不能为空")
private String licenceEndTime;
// @ApiModelProperty(value = "道路运输许可证图片地址", dataType="String", required = true)
// @NotBlank(message = "道路运输许可证图片地址不能为空")
// private String transportLicenceImg;
@ApiModelProperty(value = "道路运输从业资格证号", dataType="String", required = true)
// @NotBlank(message = "道路运输从业资格证号不能为空")
private String occupationalLicenceNo;
@ApiModelProperty(value = "道路运输从业资格证图片地址", dataType="String", required = true)
// @NotBlank(message = "道路运输从业资格证图片地址不能为空")
private String occupationalLicenceImg;
@ApiModelProperty(value = "从业资格证有效期起始时间", dataType="String", required = true)
// @NotBlank(message = "从业资格证有效期起始时间不能为空")
private String occupationalStartTime;
@ApiModelProperty(value = "从业资格证有效期终止时间", dataType="String", required = true)
// @NotBlank(message = "从业资格证有效期终止时间不能为空")
private String occupationalEndTime;
@ApiModelProperty(value = "驾驶证发证机关", required = true)
// @NotBlank(message = "驾驶证发证机关不能为空")
private String licenceIssueOrganization;
@ApiModelProperty(value = "身份证住址", required = true)
// @NotBlank(message = "身份证住址不能为空")
private String idCardAddress = "手动";
}
package com.clx.performance.param.feign.transport;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OrderChildPaySyncParam {
@ApiModelProperty(value = "运单编号列表")
@NotEmpty(message = "运单编号不能为空")
private List<String> childNoList;
}
package com.clx.performance.param.feign.transport;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OrderChildTruckInfoDTO {
// @ApiModelProperty(value = "运单号", dataType="String", required = true)
// private String childNo;
// @ApiModelProperty(value = "车辆ID", dataType="Integer", required = true)
// private Integer truckId;
// @ApiModelProperty(value = "车主id", dataType="Integer", required = true)
// private Integer userId;
@ApiModelProperty(value = "车主手机号", dataType="String", required = true)
@NotBlank(message = "车主手机号不能为空")
private String mobile;
@ApiModelProperty(value = "车牌号", dataType="String", required = true)
@NotBlank(message = "车牌号不能为空")
private String truckNo;
// @ApiModelProperty(value = "车头车牌颜色代码", dataType="Integer", required = true)
// private Integer truckNoColorCode;
@ApiModelProperty(value = "车头车牌颜色", dataType="String", required = true)
@NotBlank(message = "车头车牌颜色不能为空")
private String truckNoColor;
@ApiModelProperty(value = "型号", dataType="String", required = true)
@NotBlank(message = "型号不能为空")
private String model;
@ApiModelProperty(value = "载重单位吨", dataType="Integer", required = true)
@NotNull(message = "载重单位吨不能为空")
private Integer load;
@ApiModelProperty(value = "吨位 单位吨", dataType="Integer", required = true)
@NotNull(message = "吨位不能为空")
private Integer grossMass;
@ApiModelProperty(value = "车头道路运输许可证编号", dataType="String", required = true)
@NotBlank(message = "车头道路运输许可证编号不能为空")
private String roadTransportCertificateNo;
@ApiModelProperty(value = "行驶证主页照片", dataType="String", required = true)
@NotBlank(message = "行驶证主页照片不能为空")
private String licenceImgMain;
@ApiModelProperty(value = "行驶证副业正面照片", dataType="String", required = true)
@NotBlank(message = "行驶证副业正面照片不能为空")
private String licenceImgSecond;
@ApiModelProperty(value = "行驶证副业背面照片", dataType="String", required = true)
@NotBlank(message = "行驶证副业背面照片不能为空")
private String licenceImgSecondBack;
@ApiModelProperty(value = "道路运输许可证图片地址", dataType="String", required = true)
@NotBlank(message = "道路运输许可证图片地址不能为空")
private String transportLicenceImg;
@ApiModelProperty(value = "行驶证有效期开始时间")
private String drivingLicenseBeginTime;
@ApiModelProperty(value = "行驶证有效期结束时间", required = true)
@NotBlank(message = "行驶证有效期结束时间不能为空")
private String drivingLicenseEndTime;
@ApiModelProperty(value = "运输证有效期开始时间")
private String transportationLicenseBeginTime;
@ApiModelProperty(value = "运输证有效期结束时间")
private String transportationLicenseEndTime;
@ApiModelProperty(value = "挂车牌号")
private String truckNo2;
@ApiModelProperty("挂车行驶证主页")
private String licenceImgMain2;
@ApiModelProperty("挂车行驶证副页")
private String licenceImgSecond2;
@ApiModelProperty("挂车行驶证副页背面")
private String licenceImgSecond2Back;
@ApiModelProperty("挂车年检有效期至")
private String licenceImgMain2EndTime;
@ApiModelProperty("挂车道路运输许可证编号")
private String roadTransportCertificateNo2;
@ApiModelProperty("挂车道路运输许可证图片地址")
private String transportLicenceImg2;
@ApiModelProperty(value = "车辆燃料类型 1:柴油 2 天然气 3其他 4新能源/电", dataType="Integer", required = true)
@NotNull(message = "车辆燃料类型不能为空")
private Integer powerType;
@ApiModelProperty(value = "使用性质", required = true)
@NotBlank(message = "使用性质不能为空")
private String useNature;
@ApiModelProperty(value = "车辆识别代码", required = true)
@NotBlank(message = "车辆识别代码不能为空")
private String identifyCode;
@ApiModelProperty(value = "行驶证发证机关", required = true)
@NotBlank(message = "行驶证发证机关不能为空")
private String licenceIssueOrganization;
@ApiModelProperty(value = "注册日期", required = true)
@NotBlank(message = "注册日期不能为空")
private String registerDate;
@ApiModelProperty(value = "行驶证发证日期", required = true)
@NotBlank(message = "行驶证发证日期不能为空")
private String licenceIssueDate;
}
package com.clx.performance.param.feign.transport;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @description:
* @Author:liumingchao
* @Date:2022/11/4 13:50
*/
@Getter
@Setter
@NoArgsConstructor
public class OrderChildTruckTraceDTO {
@ApiModelProperty(value = "运单号", required = true)
private String childNo;
@ApiModelProperty(value = "定位时间", required = true)
@NotBlank(message = "定位时间不能为空")
private String locationTime;
@ApiModelProperty(value = "定位经度", required = true)
@NotBlank(message = "定位经度不能为空")
private String locationLon;
@ApiModelProperty(value = "定位纬度", required = true)
@NotBlank(message = "定位纬度不能为空")
private String locationLat;
@ApiModelProperty(value = "定位详细位置信息")
private String locationAddress;
}
package com.clx.performance.param.feign.transport;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 法人货主同步
*/
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OwnerLegalSyncParam implements Serializable {
@ApiModelProperty(value = " 法人姓名 ", required = true)
@NotBlank(message = "货主登录手机号不可为空")
private String name;
@ApiModelProperty(value = " 货主手机号码 ", required = true)
@NotBlank(message = "货主姓名不可为空")
private String mobile;
@ApiModelProperty(value = " 身份证号 ", required = true)
@NotBlank(message = "身份证号不可为空")
private String cardNo;
@ApiModelProperty(value = " 企业名称 ", required = true)
private String company;
@ApiModelProperty(value = " 注册时间 ", required = true)
private String registerTime;
@ApiModelProperty(value = " 省 ", required = true)
private String province;
@ApiModelProperty(value = " 省code ", required = true)
private Integer provinceCode;
@ApiModelProperty(value = " 市 ", required = true)
private String city;
@ApiModelProperty(value = " 市code ", required = true)
private Integer cityCode;
@ApiModelProperty(value = " 区县 ", required = true)
private String county;
@ApiModelProperty(value = " 区县code ", required = true)
private Integer countyCode;
@ApiModelProperty(value = " 乡镇 ", required = true)
private String town;
@ApiModelProperty(value = " 乡镇code ", required = true)
private Integer townCode;
@ApiModelProperty(value = " 街道 ", required = true)
private String street;
@ApiModelProperty(value = " 街道code ", required = true)
private Integer streetCode;
@ApiModelProperty(value = " 详细地址 ", required = true)
private String address;
@ApiModelProperty(value = " 申请类型:1法人认证2代理人认证 ", required = true)
private Integer applyType;
@ApiModelProperty(value = " 法人姓名 ")
private String legalName;
@ApiModelProperty(value = " 法人手机号 ")
private String legalMobile;
@ApiModelProperty(value = " 法人身份证号 ")
private String legalCardNo;
@ApiModelProperty(value = " 法人身份证正面图片地址 ")
private String legalFrontImg;
@ApiModelProperty(value = " 法人身份证背面图片地址 ")
private String legalBackImg;
@ApiModelProperty(value = " 法人统一社会信用代码 ")
private String legalGroupCode;
@ApiModelProperty(value = " 法人营业执照图片地址 ")
private String legalBusinessImg;
@ApiModelProperty(value = " 代理人姓名 ")
private String agentName;
@ApiModelProperty(value = " 代理人手机号 ")
private String agentMobile;
@ApiModelProperty(value = " 代理人身份证号 ")
private String agentCardNo;
@ApiModelProperty(value = " 代理人身份证正面图片地址 ")
private String agentFrontImg;
@ApiModelProperty(value = " 代理人身份证背面图片地址 ")
private String agentBackImg;
@ApiModelProperty(value = " 代理人统一社会信用代码 ")
private String agentGroupCode;
@ApiModelProperty(value = " 代理人授权书图片地址 ")
private String agentBusinessImg;
@ApiModelProperty(value = " 企业联系人姓名 ", required = true)
private String businessName;
@ApiModelProperty(value = " 企业联系人手机号 ", required = true)
private String businessMobile;
@ApiModelProperty(value = " 企业类型 ", required = true)
private Integer businessType;
@ApiModelProperty(value = " 注册机构名称 ")
private String registerOrgName;
@ApiModelProperty(value = " 注册资本(单位:万元) ")
private Double registerAmount;
@ApiModelProperty(value = " 组织机构代码 ")
private String orgGroupCode;
@ApiModelProperty(value = " 企业邮箱 ")
private String businessEmail;
@ApiModelProperty(value = " 核准时间 ")
private String checkTime;
}
package com.clx.performance.param.feign.transport;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
/**
* 自然人货主同步
*/
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class OwnerPersonalSyncParam {
@ApiModelProperty(value = " 登陆手机号 ", required = true)
@NotBlank(message = "货主登录手机号不可为空")
private String mobile;
@ApiModelProperty(value = " 货主姓名 ", required = true)
@NotBlank(message = "货主姓名不可为空")
private String name;
@ApiModelProperty(value = " 身份证号 ", required = true)
@NotBlank(message = "身份证号不可为空")
private String cardNo;
@ApiModelProperty(value = " 省 ", required = true)
private String province;
@ApiModelProperty(value = " 省code ", required = true)
private Integer provinceCode;
@ApiModelProperty(value = " 市 ", required = true)
private String city;
@ApiModelProperty(value = " 市code ", required = true)
private Integer cityCode;
@ApiModelProperty(value = " 区县 ", required = true)
private String county;
@ApiModelProperty(value = " 区县code ", required = true)
private Integer countyCode;
// @ApiModelProperty(value = " 乡镇 ", required = false)
// private String town;
// @ApiModelProperty(value = " 乡镇code ", required = false)
// private Integer townCode;
// @ApiModelProperty(value = " 街道 ", required = false)
// private String street;
// @ApiModelProperty(value = " 街道code ", required = false)
// private Integer streetCode;
@NotBlank(message = "详细地址不可为空")
@ApiModelProperty(value = " 详细地址 ", required = true)
private String address;
@NotBlank(message = "身份证正面图片不可为空")
@ApiModelProperty(value = " 身份证正面图片地址 ", required = true)
private String legalFrontImg;
@NotBlank(message = "身份证背面图片不可为空")
@ApiModelProperty(value = " 身份证背面图片地址 ", required = true)
private String legalBackImg;
@ApiModelProperty(value = "手持身份证")
private String personHandheldImg;
@ApiModelProperty(value = " 个人邮箱 ")
private String businessEmail;
}
package com.clx.performance.param.feign.transport;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OwnerSettlementSyncParam {
@ApiModelProperty(value = "货主手机")
@NotBlank(message = "货主手机不能为空")
private String ownerMobile;
@ApiModelProperty(value = "结算单列表")
@Valid
@NotEmpty(message = "结算单列表不能空")
private List<SettlementItem> settlementList;
@Getter
@Setter
@ToString
@NoArgsConstructor
public static class SettlementItem{
@ApiModelProperty(value = "运单编号列表")
@NotEmpty(message = "运单编号不能空")
private String childNo;
@ApiModelProperty(value = "结算单编号")
@NotEmpty(message = "结算单编号不能空")
private String settlementNo;
}
}
package com.clx.performance.param.feign.transport;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
@Data
public class ThirdOrderChildBrokerParam {
@ApiModelProperty(value = "运单编码", dataType="String", required = true)
@NotBlank(message = "订单编码不能为空")
private String childNo;
@ApiModelProperty(value = "订单编码", dataType="String", required = true)
@NotBlank(message = "货单编码不能为空")
private String orderNo;
@ApiModelProperty(value = "车牌号", dataType="String", required = true)
@NotBlank(message = "车牌号不能为空")
private String truckNo;
@ApiModelProperty(value = "运费单价 单位分 (司机运费单价)", dataType="Integer", required = true)
@NotNull(message = "运费单价不能为空")
private Integer freightPrice;
@ApiModelProperty(value = "运费 单位分 (含税金额)", dataType="Integer", required = true)
@NotNull(message = "运费不能为空")
private Integer freight;
@ApiModelProperty(value = "实付运费 单位分 (司机运费总价)", dataType="Integer", required = true)
@NotNull(message = "实付运费不能为空")
private Integer freightNoCard;
@ApiModelProperty(value = "溢价金额", dataType = "Integer", required = true)
@NotNull(message = "溢价金额不能为空")
private Integer orderChildBrokerBeyondFreight = 0;
@ApiModelProperty(value = "司机实际净重", dataType="BigDecimal", required = true)
@NotNull(message = "司机实际净重不能为空")
private BigDecimal net;
@ApiModelProperty(value = "装车净重", dataType="BigDecimal")
@NotNull(message = "装车净重不能为空")
private BigDecimal loadNet;
@ApiModelProperty(value = "发货地址", dataType="String", required = true)
@NotBlank(message = "发货地址不能为空")
private String sendAddress;
@ApiModelProperty(value = "货源所在省份", dataType="String", required = true)
@NotBlank(message = "货源所在省份不能为空")
private String sendProvince;
@ApiModelProperty(value = "货源所在城市", dataType="String", required = true)
@NotBlank(message = "货源所在城市不能为空")
private String sendCity;
@ApiModelProperty(value = "货源所在区县", dataType="String", required = true)
@NotBlank(message = "货源所在区县不能为空")
private String sendCounty;
@ApiModelProperty(value = "货源所在乡镇", dataType="String", required = true)
// @NotBlank(message = "货源所在乡镇不能为空")
private String sendTown;
@ApiModelProperty(value = "发货人", dataType="String", required = true)
@NotBlank(message = "发货人不能为空")
private String sendName;
@ApiModelProperty(value = "发货人手机号", dataType="String", required = true)
@NotBlank(message = "发货人手机号不能为空")
private String sendMobile;
@ApiModelProperty(value = "收货人所在省", dataType="String", required = true)
@NotBlank(message = "收货人所在省不能为空")
private String receiveProvince;
@ApiModelProperty(value = "收货人所在城市", dataType="String", required = true)
@NotBlank(message = "收货人所在城市不能为空")
private String receiveCity;
@ApiModelProperty(value = "收货人所在区县", dataType="String", required = true)
@NotBlank(message = "收货人所在区县不能为空")
private String receiveCounty;
@ApiModelProperty(value = "收货人所在乡镇", dataType="String", required = true)
// @NotBlank(message = "收货人所在乡镇不能为空")
private String receiveTown = "手动";
@ApiModelProperty(value = "收货地址", dataType="String", required = true)
@NotBlank(message = "收货地址不能为空")
private String receiveAddress;
@ApiModelProperty(value = "收货人", dataType="String", required = true)
@NotBlank(message = "收货人不能为空")
private String receiveName;
@ApiModelProperty(value = "收货人手机号", dataType="String", required = true)
@NotBlank(message = "收货人手机号不能为空")
private String receiveMobile;
@ApiModelProperty(value = "装车地址经度", required = true)
@NotBlank(message = "装车地址经度不能为空")
private String loadLongitude;
@ApiModelProperty(value = "装车地址纬度", required = true)
@NotBlank(message = "装车地址纬度不能为空")
private String loadLatitude;
@ApiModelProperty(value = "卸车地址经度", required = true)
@NotBlank(message = "卸车地址经度不能为空")
private String unloadLongitude;
@ApiModelProperty(value = "卸车地址纬度", required = true)
@NotBlank(message = "卸车地址纬度不能为空")
private String unloadLatitude;
@ApiModelProperty(value = "运输距离(公里)", required = true)
@NotNull(message = "运输距离不能为空")
private BigDecimal distance;
@ApiModelProperty(value = "接单时间", dataType="String", required = true)
@NotBlank(message = "接单时间不能为空")
private String payTime;
@ApiModelProperty(value = "装车时间", dataType="String", required = true)
@NotBlank(message = "装车时间不能为空")
private String loadTime;
@ApiModelProperty(value = "卸车时间", dataType="String", required = true)
@NotBlank(message = "卸车时间不能为空")
private String unloadTime;
@ApiModelProperty(value = "支付完成时间", dataType="String", required = true)
@NotBlank(message = "支付完成时间不能为空")
private String payFinishedTime;
// @ApiModelProperty(value = "备注", dataType="String")
// private String remark;
@ApiModelProperty(value = "创建时间", dataType="String", required = true)
private String createTime;
@ApiModelProperty(value = "收货单位", dataType="String")
private String receiveCompany;
@ApiModelProperty(value = "发货单位", dataType="String")
private String sendCompany;
@ApiModelProperty(value = "卸车净重", dataType="BigDecimal", required = true)
@NotNull(message = "卸车净重不能为空")
private BigDecimal receiveNet;
@ApiModelProperty(value = "货物名称", dataType="String", required = true)
@NotBlank(message = "货物名称不能为空")
private String goodsName;
// @ApiModelProperty(value = "是否车主本人:1是,0否", dataType="Integer", required = true)
// private Integer personalDriverFlag;
@ApiModelProperty(value = "垫付类型 0 全额垫付 1 不垫付服务费", dataType="Integer", required = true)
@NotNull(message = "垫付类型不能为空")
private Integer advanceType;
@ApiModelProperty(value = "货物价格 单位 分", required = true)
@NotNull(message = "货物价格不能为空")
private Integer goodsPrice;
@ApiModelProperty(value = "源订单号 (承运平台订单号)")
@NotBlank(message = "源订单号不能为空")
private String sourceOrderNo;
@ApiModelProperty(value = "源货单号 (承运平台货单号)")
@NotBlank(message = "源货单号不能为空")
private String sourceGoodsNo;
@ApiModelProperty(value = "源开票方式 (开票方式) :1 装车 2 卸车")
@NotNull(message = "源开票方式不能为空")
private Integer sourceInvoicingType;
@ApiModelProperty(value = "源单价 (承运单价)")
@NotNull(message = "源单价不能为空")
private BigDecimal sourceFreightPrice;
@ApiModelProperty(value = "源开票金额 (开票金额)")
@NotNull(message = "源开票金额不能为空")
private BigDecimal sourceInvoicingPrice;
@ApiModelProperty(value = "源亏吨金额 (亏吨金额)")
@NotNull(message = "源亏吨金额不能为空")
private BigDecimal sourceLossPrice;
@ApiModelProperty(value = "装车磅单图片", required = true)
@NotEmpty(message = "装车磅单图片不能为空")
private List<String> loadPoundImages;
@ApiModelProperty(value = "卸车磅单图片", required = true)
@NotEmpty(message = "卸车磅单图片不能为空")
private List<String> unLoadPoundImages;
@ApiModelProperty(value = "关联账号(货主手机号)", required = true)
@NotBlank(message = "关联账号不能为空")
private String invoiceRelationNo;
@ApiModelProperty(value = "货单信息", required = true)
@Valid
private ThirdOrderInfoDTO orderInfoDTO;
@ApiModelProperty(value = "车主信息", required = true)
@Valid
private OrderChildDriverInfoDTO truckDriverInfoDTO;
@ApiModelProperty(value = "司机信息", required = true)
@Valid
private OrderChildDriverInfoDTO driverInfoDTO;
@ApiModelProperty(value = "车主银行卡信息", required = true)
@Valid
private OrderChildBankInfoDTO truckDriverBankInfoDTO;
@ApiModelProperty(value = "司机银行卡信息", required = true)
@Valid
private OrderChildBankInfoDTO driverBankInfoDTO;
@ApiModelProperty(value = "车辆信息", required = true)
@Valid
private OrderChildTruckInfoDTO truckInfoDTO;
@ApiModelProperty(value = "运单轨迹", required = true)
@Valid
@NotEmpty(message = "运单轨迹不能为空")
private List<OrderChildTruckTraceDTO> brokerTraceList;
// @ApiModelProperty(value = "来源:0-货易来,1-诚联信 2承运", hidden = true)
// private Integer source;
}
package com.clx.performance.param.feign.transport;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class ThirdOrderChildRiskStatusParam {
@ApiModelProperty(value = "运单编号")
private String childNo;
@ApiModelProperty(value = "合规状态:0不合规 1合规 2未同步 ")
private Integer status;
@ApiModelProperty(value = "风控原因")
private String riskReason;
}
package com.clx.performance.param.feign.transport;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
@Setter
@Getter
@ToString
@NoArgsConstructor
public class ThirdOrderInfoDTO {
@ApiModelProperty(value = "货单编码", required = true)
private String orderNo;
@ApiModelProperty(value = "货物名称", required = true)
private String goodsName;
@ApiModelProperty(value = "发货单位")
private String sendCompany;
@ApiModelProperty(value = "发货所在省份", required = true)
@NotBlank(message = "发货所在省份不能为空")
private String sendProvince;
@ApiModelProperty(value = "发货所在城市", required = true)
@NotBlank(message = "发货所在城市不能为空")
private String sendCity;
@ApiModelProperty(value = "发货所在区县", required = true)
@NotBlank(message = "发货所在区县不能为空")
private String sendCounty;
@ApiModelProperty(value = "发货所在乡镇", required = true)
// @NotBlank(message = "发货所在乡镇不能为空")
private String sendTown;
@ApiModelProperty(value = "发货详细地址", required = true)
@NotBlank(message = "发货详细地址不能为空")
private String sendAddress;
@ApiModelProperty(value = "发货联系人", required = true)
@NotBlank(message = "发货联系人不能为空")
private String sendName;
@ApiModelProperty(value = "发货联系人手机号", required = true)
@NotBlank(message = "发货联系人手机号不能为空")
private String sendMobile;
@ApiModelProperty(value = "发货地址经度", required = true)
@NotBlank(message = "发货地址经度不能为空")
private String loadLongitude;
@ApiModelProperty(value = "发货地址纬度", required = true)
@NotBlank(message = "发货地址纬度不能为空")
private String loadLatitude;
@ApiModelProperty(value = "收货单位")
private String receiveCompany;
@ApiModelProperty(value = "收货人所在省", required = true)
@NotBlank(message = "收货人所在省不能为空")
private String receiveProvince;
@ApiModelProperty(value = "收货人所在城市", required = true)
@NotBlank(message = "收货人所在城市不能为空")
private String receiveCity;
@ApiModelProperty(value = "收货人所在区县", required = true)
@NotBlank(message = "收货人所在区县不能为空")
private String receiveCounty;
@ApiModelProperty(value = "收货人所在乡镇", required = true)
// @NotBlank(message = "收货人所在乡镇不能为空")
private String receiveTown;
@ApiModelProperty(value = "收货详细地址", required = true)
@NotBlank(message = "收货详细地址不能为空")
private String receiveAddress;
@ApiModelProperty(value = "收货联系人", required = true)
@NotBlank(message = "收货联系人不能为空")
private String receiveName;
@ApiModelProperty(value = "收货联系人手机号", required = true)
@NotBlank(message = "收货联系人手机号不能为空")
private String receiveMobile;
@ApiModelProperty(value = "收货地址经度", required = true)
@NotBlank(message = "收货地址经度不能为空")
private String unloadLongitude;
@ApiModelProperty(value = "收货地址纬度", required = true)
@NotBlank(message = "收货地址纬度不能为空")
private String unloadLatitude;
@ApiModelProperty(value = "货物单价(单位:分)", required = true)
@NotNull(message = "货物单价不能为空")
private Integer goodsPrice;
@ApiModelProperty(value = "运费单价(单位:分)", required = true)
@NotNull(message = "运费单价不能为空")
private Integer transPrice;
@ApiModelProperty(value = "货物总重量(吨)", required = true)
@NotNull(message = "货物总重量不能为空")
private BigDecimal goodsAmount;
@ApiModelProperty(value = "最晚装货时间", required = true)
@NotBlank(message = "最晚装货时间不能为空")
private String extractTime;
@ApiModelProperty(value = "司机最晚到达时间", required = true)
@NotBlank(message = "司机最晚到达时间不能为空")
private String arriveTime;
}
......@@ -25,4 +25,7 @@ public class OwnerBindCardParam {
@ApiModelProperty(value = "银行账户")
private String ownerBankAccount;
@ApiModelProperty(value = "交易密码")
private String accountPassword;
}
......@@ -35,4 +35,7 @@ public class OwnerCaseOutParam {
@ApiModelProperty(value = "提现银行卡号", example = "62213545878787")
private String ownerBankAccount;
@ApiModelProperty(value = "交易密码")
private String accountPassword;
}
\ No newline at end of file
......@@ -38,6 +38,19 @@ public class OwnerTopUpParam {
@ApiModelProperty(value = "打款凭证", example = "/a.png")
private String drawingProof;
@ApiModelProperty(value = "收款人企业信息", example = "收款人企业信息")
private String enterpriseName;
@ApiModelProperty(value = "收款人开户行", example = "62213545878787")
private String openAccountBank;
@ApiModelProperty(value = "收款人开户行银行代码", example = "收款人开户行银行代码")
private String openAccountBankNumber;
@ApiModelProperty(value = "收款人账户账号", example = "")
private String accountNumber;
@ApiModelProperty(value = "交易密码")
private String accountPassword;
}
\ No newline at end of file
package com.clx.performance.param.pc;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* @Author huyufan
* @create 2023-09-19 13:33
*/
@Getter
@Setter
@NoArgsConstructor
@ToString
public class PageAppPrepaidFreightAccountParam extends PageParam {
@ApiModelProperty(value="货主编码",example = "20145787812312312")
private Long ownerUserNo;
@ApiModelProperty(value="1: 全部 2:收入 3:支出",example = "1")
private Integer queryWaterType;
@ApiModelProperty(value="1: 保证金 2:预付运费",example = "1")
private Integer accountType;
@ApiModelProperty(value="操作开始时间",example = "2020-01-01 10:10:10")
private String beginTime;
@ApiModelProperty(value = "操作结束时间",example = "2020-01-01 10:10:10")
private String endTime;
@ApiModelProperty(value="货主编号",example = "1")
private Long userNo;
}
package com.clx.performance.param.pc;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class PageNetworkAccountInfoListParam extends PageParam {
@ApiModelProperty(value = "手机号", example = "13966554477")
private String mobile;
@ApiModelProperty(value = "网络货运流水类型")
private Integer runningWaterType;
@ApiModelProperty(value = "司机编码")
private String driverUserNo;
}
package com.clx.performance.param.pc;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class PageNetworkAccountListParam extends PageParam {
@ApiModelProperty(value = "手机号", example = "13966554477")
private String mobile;
@ApiModelProperty(value = "车主名称")
private String driverUserName;
@ApiModelProperty(value = "司机编码")
private String driverUserNo;
}
package com.clx.performance.param.pc;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class PageNetworkCaseOutRecordListParam extends PageParam {
@ApiModelProperty(value = "手机号", example = "13966554477")
private String mobile;
@ApiModelProperty(value = "运单编号")
private String childNo;
@ApiModelProperty(value = "车主编码")
private String driverUserNo;
}
package com.clx.performance.param.pc.breakcontract.carrier;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @ClassName BatchUpdatePayDriverSettlementParam
* @Description
* @Author kavin
* @Date 2023/12/4 19:58
* @Version 1.0
*/
@Getter
@Setter
public class BatchUpdatePayDriverBreakContractSettlementParam {
@ApiModelProperty("结算单id集合")
@NotNull(message = "ids不能为空")
private List<Integer> ids;
}
package com.clx.performance.param.pc.customer;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class PageCustomerComplaintDetailParam extends PageParam {
@ApiModelProperty("司机姓名")
private String driverName; //司机姓名
@ApiModelProperty("联系方式")
private String driverMobile; //司机手机号
@ApiModelProperty("运单编号")
private String childNo; //运单编号
@ApiModelProperty("投诉类型id")
private Integer complaintTypeId; //投诉类型id
@ApiModelProperty(value = "开始时间", example = "")
private String beginTime;
@ApiModelProperty(value = "结束时间", example = "")
private String endTime;
}
package com.clx.performance.param.pc.customer;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class PageCustomerComplaintTypeParam extends PageParam {
@ApiModelProperty("名称")
private String name;
}
package com.clx.performance.param.pc.customer;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* @ClassName SaveComplaintTypeParam
* @Description
* @Author kavin
* @Date 2023/12/7 10:46
* @Version 1.0
*/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class SaveComplaintTypeParam {
private Integer id;
@Size(min=1 ,max = 10)
@NotBlank(message = "分类名称不能为空")
@ApiModelProperty(value = "分类名称")
private String name;
}
package com.clx.performance.param.pc.customer;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* @ClassName saveCustomerComplaintDetailParam
* @Description
* @Author kavin
* @Date 2023/12/8 13:52
* @Version 1.0
*/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class SaveCustomerComplaintDetailParam {
@NotNull(message = "投诉类型ID不能为空")
@ApiModelProperty("投诉类型ID")
private Integer complaintTypeId; //投诉类型id
@ApiModelProperty("运单编号")
private String childNo; //运单编号
@Size(min=1 ,max = 1000)
@ApiModelProperty("运单编号")
private String content; //问题描述
@ApiModelProperty("图片")
private List<String> picture; //图片
}
package com.clx.performance.param.pc.driver;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @ClassName BatchUpdatePayDriverSettlementParam
* @Description
* @Author kavin
* @Date 2023/12/4 19:58
* @Version 1.0
*/
@Getter
@Setter
public class BatchUpdatePayDriverSettlementParam {
@ApiModelProperty("结算单id集合")
@NotNull(message = "ids不能为空")
private List<Integer> ids;
}
package com.clx.performance.param.pc.driver;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@NoArgsConstructor
@ToString
public class NetworkDriverAccountParam {
private Long driverUserNo;
private String driverUserName;
private String mobile;
}
......@@ -30,4 +30,8 @@ public class PageCarrierSettlementOwnerParam extends PageParam {
@ApiModelProperty("结算方式 1装车净重 2卸车净重")
private Integer settlementWay;
@ApiModelProperty("订单编号")
private String orderNo;
}
package com.clx.performance.vo.app;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class APPNetworkDriverRunningWaterRecordVO {
private Integer id;
@ApiModelProperty("流水号")
private Long runningWaterNo;
@ApiModelProperty("司机编码")
private Long driverUserNo;
@ApiModelProperty("司机名称")
private String driverUserName;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("流水类型 10:运单结算 20:提现冻结 30:提现成功")
private Integer runningWaterType;
@ApiModelProperty("流水类型简介")
private String runningWaterTypeMsg;
@ApiModelProperty("资金类型 10:收入 20:冻结 30:支出")
private Integer fundType;
@ApiModelProperty("资金类型简介")
private String fundTypeMsg;
@ApiModelProperty("")
private Long relationId;
@ApiModelProperty("货单编号")
private String orderGoodsNo;
@ApiModelProperty("订单编号")
private String orderNo;
@ApiModelProperty("运单编号")
private String childNo;
@ApiModelProperty("变动金额")
@MoneyOutConvert
private BigDecimal alterationBalance;
@ApiModelProperty("冻结金额")
@MoneyOutConvert
private BigDecimal frozenBalance;
@ApiModelProperty("可用余额")
@MoneyOutConvert
private BigDecimal usableBalance;
@ApiModelProperty("账户余额")
@MoneyOutConvert
private BigDecimal accountBalance;
@ApiModelProperty("扣除金额")
@MoneyOutConvert
private BigDecimal takeOutBalance;
@ApiModelProperty("操作人")
private String createBy;
@ApiModelProperty("创建时间")
private String createTime;
@ApiModelProperty("修改时间")
private String modifiedTime;
}
package com.clx.performance.vo.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* @ClassName CustomerComplaintOrderChildVO
* @Description
* @Author kavin
* @Date 2023/12/7 17:55
* @Version 1.0
*/
@Getter
@Setter
@ToString
@NoArgsConstructor
public class CustomerComplaintOrderChildVO {
@ApiModelProperty(value = "id", example = "1")
private Integer id;
@ApiModelProperty(value = "运单编号", example = "100000000")
private String childNo;
@ApiModelProperty(value = "货单编号", example = "100000000")
private String orderGoodsNo;
@ApiModelProperty(value = "订单编号", example = "10000000000")
private String orderNo;
@ApiModelProperty(value = "发货地址", example = "朝阳")
private String sendAddress;
@ApiModelProperty(value = "收货地址", example = "西城")
private String receiveAddress;
@ApiModelProperty(value = "车牌号", example = "京A12345")
private String truckNo;
@ApiModelProperty(value = "司机姓名", example = "张三")
private String driverName;
@ApiModelProperty(value = "接单时间", example = "2023-12-12 12:12:12")
private String createTime; //创建时间
@ApiModelProperty(value = "状态", example = "10")
private Integer status; //状态
@ApiModelProperty(value = "状态信息", example = "接单")
private String statusMsg;
}
......@@ -181,4 +181,13 @@ public class OrderChildVO {
@ApiModelProperty("最晚装货时间")
private String lastLoadTime;
//运单详情增加字段
@ApiModelProperty(value = "亏吨重量", example = "1.23")
private BigDecimal lossWeight;
@ApiModelProperty(value = "亏吨扣款", example = "1.23")
@MoneyOutConvert
private BigDecimal lossAmount;
}
\ No newline at end of file
package com.clx.performance.vo.feign.transport;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.util.List;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class ThirdOrderChildBrokerResultVO {
@ApiModelProperty(value = "风控结果列表,空未风控")
private List<RiskItem> riskList;
@ApiModelProperty(value = "合规状态:0不合规 1合规")
private Integer status;
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
public static class RiskItem {
@ApiModelProperty(value = "类型", example = "PRICE_LOW")
private String type;
@ApiModelProperty(value = "风控原因", example = "运费单价过低")
private String msg;
}
}
......@@ -64,8 +64,8 @@ public class IntegralTruckVO {
return Arrays.asList(
new IntegralItem("运单完成积分", orderChildCompleteIntegral),
new IntegralItem("平台补偿积分", platformCompensationIntegral),
new IntegralItem("运单取消积分", orderChildCancelIntegral),
new IntegralItem("运单超时积分", orderChildTimeoutIntegral),
new IntegralItem("运单取消扣减", orderChildCancelIntegral),
new IntegralItem("运单超时扣减", orderChildTimeoutIntegral),
new IntegralItem("信息上报积分", reportIntegral)
);
}
......
package com.clx.performance.vo.pc;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
@Getter
@Setter
@Accessors(chain = true)
public class NetworkCaseOutRecordVO {
private Integer id;
@ApiModelProperty("提现单号")
private Long caseOutNo;
@ApiModelProperty("司机编码")
private String driverUserNo;
@ApiModelProperty("司机名称")
private String driverUserName;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("收款人")
private String payee;
@ApiModelProperty("开户行")
private String bank;
@ApiModelProperty("收款银行账户")
private String collectionBankCode;
@ApiModelProperty("状态 10:待平台付款 20:已付款")
private Integer status;
@ApiModelProperty("状态简介")
private String statusMsg;
@ApiModelProperty("平台")
private String platform;
@ApiModelProperty("订单编号")
private String orderNo;
@ApiModelProperty("货单编号")
private String orderGoodsNo;
@ApiModelProperty("运单编号")
private String childNo;
@ApiModelProperty("变动金额")
@MoneyOutConvert
private BigDecimal alterationBalance;
@ApiModelProperty("操作人")
private String createBy;
@ApiModelProperty("创建时间")
private String createTime;
@ApiModelProperty("提现完成时间")
private String finishTime;
@ApiModelProperty("修改时间")
private String modifiedTime;
}
package com.clx.performance.vo.pc;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
@Getter
@Setter
@Accessors(chain = true)
public class NetworkDriverAccountVO {
private Integer id;
@ApiModelProperty("司机编码")
private String driverUserNo;
@ApiModelProperty("司机名称")
private String driverUserName;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("账户余额")
@MoneyOutConvert
private BigDecimal accountBalance;
@ApiModelProperty("可用余额")
@MoneyOutConvert
private BigDecimal usableBalance;
@ApiModelProperty("冻结余额")
@MoneyOutConvert
private BigDecimal frozenBalance;
@ApiModelProperty("钱包code")
private String walletCode;
@ApiModelProperty("创建人")
private String createBy;
@ApiModelProperty("创建时间")
private String createTime;
@ApiModelProperty("修改时间")
private String modifiedTime;
}
package com.clx.performance.vo.pc;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
@Getter
@Setter
@Accessors(chain = true)
public class NetworkDriverRunningWaterRecordVO{
private Integer id;
@ApiModelProperty("流水号")
private Long runningWaterNo;
@ApiModelProperty("司机编码")
private String driverUserNo;
@ApiModelProperty("司机名称")
private String driverUserName;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("流水类型 10:运单结算 20:提现冻结 30:提现成功")
private Integer runningWaterType;
@ApiModelProperty("流水类型简介")
private String runningWaterTypeMsg;
@ApiModelProperty("资金类型 10:收入 20:冻结 30:支出")
private Integer fundType;
@ApiModelProperty("资金类型简介")
private String fundTypeMsg;
@ApiModelProperty("")
private Long relationId;
@ApiModelProperty("订单ID")
private Integer orderId;
@ApiModelProperty("订单编号")
private String orderNo;
@ApiModelProperty("运单ID")
private Integer orderChildId;
@ApiModelProperty("运单编号")
private String orderChildNo;
@ApiModelProperty("变动金额")
@MoneyOutConvert
private BigDecimal alterationBalance;
@ApiModelProperty("冻结金额")
@MoneyOutConvert
private BigDecimal frozenBalance;
@ApiModelProperty("可用余额")
@MoneyOutConvert
private BigDecimal usableBalance;
@ApiModelProperty("账户余额")
@MoneyOutConvert
private BigDecimal accountBalance;
@ApiModelProperty("扣除金额")
@MoneyOutConvert
private BigDecimal takeOutBalance;
@ApiModelProperty("操作人")
private String createBy;
@ApiModelProperty("创建时间")
private String createTime;
@ApiModelProperty("修改时间")
private String modifiedTime;
}
package com.clx.performance.vo.pc;
import com.msl.common.convertor.field.Converted;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class OwnerAccountAllVO {
@ApiModelProperty("保证金账户")
@Converted(isDynamic = true)
private OwnerAccountVO marginAccount;
@ApiModelProperty("预付运费账户")
@Converted(isDynamic = true)
private OwnerAccountVO prepaidFreightAccount;
@ApiModelProperty("0:没有交易密码 1:有交易密码")
private Integer ownerAccountPassword;
}
......@@ -56,6 +56,7 @@ public class OwnerAccountVO {
@ApiModelProperty(value = "冻结金额")
@MoneyOutConvert
private BigDecimal frozenBalance;
/**
* 创建人
*/
......
......@@ -91,4 +91,10 @@ public class OwnerTopUpVO {
@ApiModelProperty(value = "审批拒绝")
private String approvalTurnDown;
@ApiModelProperty(value = "收款人企业信息")
private String enterpriseName;
@ApiModelProperty(value = "收款人账户账号")
private String accountNumber;
}
\ No newline at end of file
......@@ -58,6 +58,8 @@ public class CarrierPageSettlementDriverVO {
@MoneyOutConvert
@ApiModelProperty(value = "预付运费金额")
private BigDecimal prepayFreight;
@ApiModelProperty(value = "预付运费标示 0:未预付 1:已预付")
private Integer prepayFreightFlag;
@MoneyOutConvert
@ApiModelProperty(value = "结算金额")
private BigDecimal settlementFreight;
......@@ -67,6 +69,9 @@ public class CarrierPageSettlementDriverVO {
private String createTime;
@ApiModelProperty(value = "结算平台 1:马上来 2:网运平台")
private String settlementPlatform;
@ApiModelProperty(value = "支付失败原因")
private String payErrorMsg;
......
package com.clx.performance.vo.pc.customer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* @ClassName CustomerComplaintTypeVO
* @Description
* @Author kavin
* @Date 2023/12/7 11:42
* @Version 1.0
*/
@Getter
@Setter
public class CustomerComplaintDetailVO {
@ApiModelProperty("id")
private Integer id;
@ApiModelProperty("司机用户编号")
private Long driverUserNo; //司机用户编号
@ApiModelProperty("司机姓名")
private String driverName; //司机姓名
@ApiModelProperty("司机手机号")
private String driverMobile; //司机手机号
@ApiModelProperty("运单编号")
private String childNo; //运单编号
@ApiModelProperty("投诉类型id")
private Integer complaintTypeId; //投诉类型id
@ApiModelProperty("投诉类型名称")
private String name; //投诉类型名称
@ApiModelProperty("问题描述")
private String content; //问题描述
@ApiModelProperty("图片字符串")
private String picture; //图片
@ApiModelProperty("图片集合")
private List<String> pictureList; //图片集合
@ApiModelProperty("创建时间")
private String createTime; //创建时间
}
package com.clx.performance.vo.pc.customer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
* @ClassName CustomerComplaintTypeVO
* @Description
* @Author kavin
* @Date 2023/12/7 11:42
* @Version 1.0
*/
@Getter
@Setter
public class CustomerComplaintTypeVO {
@ApiModelProperty("id")
private Integer id;
@ApiModelProperty("投诉类型名称")
private String name; //投诉类型名称
@ApiModelProperty("创建时间")
private String createTime; //创建时间
@ApiModelProperty("最后编辑时间")
private String modifiedTime; //修改时间
}
......@@ -45,6 +45,12 @@
<artifactId>user-api</artifactId>
</dependency>
<dependency>
<groupId>com.clx.cy</groupId>
<artifactId>message-api</artifactId>
</dependency>
<dependency>
<groupId>com.clx.cy</groupId>
<artifactId>open-sdk</artifactId>
......@@ -233,6 +239,22 @@
<artifactId>log-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>com.aliyun.core</groupId>
<artifactId>machineCheckCore</artifactId>
<version>3.0.6</version>
</dependency>
<dependency>
<groupId>com.aliyun.afs</groupId>
<artifactId>machineCheckAfs</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
......
......@@ -16,7 +16,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
// @ComponentScan("com.msl.common.utils.*"),
//})
@ComponentScan({"com.clx.performance.*", "com.msl.*"})
@EnableFeignClients(basePackages = {"com.msl.*", "com.clx.performance.*", "com.clx.order.*", "com.clx.user.*"})
@EnableFeignClients(basePackages = {"com.msl.*", "com.clx.performance.*", "com.clx.order.*", "com.clx.user.*", "com.clx.message.*"})
@ViewScan(basePackage = "com.clx.user.view")
public class PerformanceApplication {
......
package com.clx.performance.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface ResetPassword {
//接口名称
String name() default "";
}
package com.clx.performance.aspect;
import cn.hutool.json.JSONUtil;
import com.clx.performance.annotation.ResetPassword;
import com.clx.performance.component.SendMessageMachineCheckComponent;
import com.clx.performance.constant.RedisConstants;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.param.app.CheckMobileParam;
import com.clx.performance.param.app.InformationParam;
import com.clx.performance.param.app.ResetPasswordParam;
import com.clx.performance.param.app.SendMobileCaptchaParam;
import com.msl.common.exception.ServiceSystemException;
import com.msl.common.result.Result;
import org.apache.commons.lang3.StringUtils;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Method;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
@Component
@Aspect
public class ResetPasswordAnnotationAop {
@Autowired
private RedisTemplate<String, String> redisTemplate;
@Autowired
private SendMessageMachineCheckComponent sendMessageMachineCheckComponent;
@Pointcut("@annotation(com.clx.performance.annotation.ResetPassword)")
private void annotationPointCut() {
}
@Around("annotationPointCut()")
public Object annotationAround(ProceedingJoinPoint jp) throws Throwable {
//获取方法
Method method = ((MethodSignature) jp.getSignature()).getMethod();
// 获取AspectAnnotation注解
ResetPassword aspectAnnotation = method.getAnnotation(ResetPassword.class);
String mobile = "";
String token = "";
String redisVal = "";
switch (aspectAnnotation.name()) {
case "checkMobile":
CheckMobileParam checkMobileParam = JSONUtil.toBean(JSONUtil.parse(jp.getArgs()[0]).toString(), CheckMobileParam.class);
mobile = checkMobileParam.getMobile();
token = checkMobileParam.getToken();
redisVal = redisTemplate.opsForValue().get(RedisConstants.MESSAGE_RESET_PASSWORD_TOKEN + mobile);
if (!StringUtils.equals(token, redisVal)) {
throw new ServiceSystemException(PerformanceResultEnum.TOKEN_IS_FAIL);
}
break;
case "sendMobileCaptcha":
SendMobileCaptchaParam sendMobileCaptchaParam = JSONUtil.toBean(JSONUtil.parse(jp.getArgs()[0]).toString(), SendMobileCaptchaParam.class);
ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = sra.getRequest();
sendMessageMachineCheckComponent.sendMessageMachineSelectCheck(request, sendMobileCaptchaParam);
mobile = sendMobileCaptchaParam.getMobile();
String content = redisTemplate.opsForValue().get(RedisConstants.MESSAGE_MOBILE_CAPTCHA + mobile);
if (StringUtils.isNoneBlank(content)) {
token = UUID.randomUUID().toString();
redisTemplate.opsForValue().set(RedisConstants.MESSAGE_RESET_PASSWORD_TOKEN + mobile, token);
redisTemplate.expire(RedisConstants.MESSAGE_RESET_PASSWORD_TOKEN + mobile, 60, TimeUnit.SECONDS);
return Result.ok(token);
}
break;
case "checkBusinessLicenseNumber":
InformationParam informationParam = JSONUtil.toBean(JSONUtil.parse(jp.getArgs()[0]).toString(), InformationParam.class);
mobile = informationParam.getMobile();
token = informationParam.getToken();
redisVal = redisTemplate.opsForValue().get(RedisConstants.MESSAGE_RESET_PASSWORD_TOKEN + mobile);
if (!StringUtils.equals(token, redisVal)) {
throw new ServiceSystemException(PerformanceResultEnum.TOKEN_IS_FAIL);
}
break;
case "resetPassword":
ResetPasswordParam resetPasswordParam = JSONUtil.toBean(JSONUtil.parse(jp.getArgs()[0]).toString(), ResetPasswordParam.class);
mobile = resetPasswordParam.getMobile();
token = resetPasswordParam.getToken();
redisVal = redisTemplate.opsForValue().get(RedisConstants.MESSAGE_RESET_PASSWORD_TOKEN + mobile);
if (!StringUtils.equals(token, redisVal)) {
throw new ServiceSystemException(PerformanceResultEnum.TOKEN_IS_FAIL);
}
break;
default:
throw new RuntimeException();
}
//执行方法前
Object returnVal = null;
returnVal = jp.proceed();
if (!StringUtils.equals(aspectAnnotation.name(), "resetPassword")) {
Result result = JSONUtil.toBean(JSONUtil.parse(returnVal).toString(), Result.class);
redisTemplate.opsForValue().set(RedisConstants.MESSAGE_RESET_PASSWORD_TOKEN + mobile, result.getData().toString());
redisTemplate.expire(RedisConstants.MESSAGE_RESET_PASSWORD_TOKEN + mobile, 60, TimeUnit.SECONDS);
}
return returnVal;
}
}
package com.clx.performance.component;
import cn.hutool.core.util.StrUtil;
import com.clx.performance.constant.RedisConstants;
import com.clx.performance.dao.OrderGoodsDriverTruckDao;
import com.clx.performance.dao.OrderGoodsTruckBindDao;
......@@ -10,11 +9,15 @@ import com.clx.performance.model.OrderGoodsTruckBind;
import com.msl.common.base.Optional;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
......@@ -95,4 +98,22 @@ public class GoodsOrderTruckRecordComponent {
orderGoodsTruckBindDao.updateOrderGoodsBindStatusExpire(orderGoodsNo, truckNo);
}
//货单剩余吨数低于35吨时,自动恢复到订单,并释放未接单车辆
public void releaseOrderGoodsDriverAndTruck(String orderGoodsNo) {
List<OrderGoodsTruckBind> truckBindList = orderGoodsTruckBindDao.selectListByOrderGoodsNo(orderGoodsNo);
List<Integer> ids = new ArrayList<>();
for (OrderGoodsTruckBind bind : truckBindList) {
if (Objects.equals(OrderGoodsTruckBindEnum.Status.NORMAL.getCode(),bind.getStatus())) {
ids.add(bind.getId());
this.deleteTruckRecord(orderGoodsNo, bind.getTruckNo());
}
}
//释放车辆bind
if(CollectionUtils.isNotEmpty(ids)){
log.info("定向单进行车辆释放,货单编号:{},释放的绑定车辆的id集合:{}",orderGoodsNo,ids);
orderGoodsTruckBindDao.updateTruckBindExpire(ids);
}
}
}
package com.clx.performance.component;
import com.clx.performance.feign.TransportFeignService;
import com.clx.performance.model.settle.SettlementOwner;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.param.feign.transport.OwnerSettlementSyncParam;
import com.clx.user.feign.OwnerFeign;
import com.msl.common.dto.HttpDTO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.LinkedList;
import java.util.List;
@Component
@Slf4j
@AllArgsConstructor
public class NetworkSyncComponent {
private final TransportFeignService transportFeignService;
private final OwnerFeign ownerFeign;
public void ownerSettlementSync(SettlementOwner settlementOwner, List<SettlementOwnerDetail> settlementOwnerDetailList){
//TODO 通知网络货运做货主计费开票标识通知
OwnerSettlementSyncParam param = new OwnerSettlementSyncParam();
String mobile = ownerFeign.getOwnerInfo(settlementOwner.getOwnerUserNo()).getData().getMobile();
param.setOwnerMobile(mobile);
List<OwnerSettlementSyncParam.SettlementItem> settlementList = new LinkedList<>();
for (SettlementOwnerDetail settlementOwnerDetail : settlementOwnerDetailList) {
String childNo = settlementOwnerDetail.getChildNo();
OwnerSettlementSyncParam.SettlementItem item = new OwnerSettlementSyncParam.SettlementItem();
item.setChildNo(childNo);
item.setSettlementNo(settlementOwnerDetail.getSettlementNo());
settlementList.add(item);
}
param.setSettlementList(settlementList);
HttpDTO httpDTO = transportFeignService.ownerSettlementSync(param);
String decrypt = ThirdComponent.decrypt(httpDTO.getData());
log.info("通知网络货运做货主计费开票标识通知请求解密后:{}", decrypt);
}
}
......@@ -136,6 +136,11 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
} else {
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
//大于35吨的归还吨数在这里处理
if(orderGoods.getResidueTransportWeight().compareTo(new BigDecimal("35")) >= 0){
RollbackOrderWeightParam param = new RollbackOrderWeightParam();
param.setOrderNo(orderGoods.getOrderNo());
param.setResidueWeight(orderGoods.getResidueTransportWeight());
......@@ -153,9 +158,11 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
}
}
orderFeign.rollbackOrderWeight(param);
//更新剩余吨数
update.setResidueTransportWeight(BigDecimal.ZERO);
}
//更新已完结
orderGoodsDao.updateOrderGoodsStatusByOrderGoodsNo(orderGoodsNo, OrderGoodsStatusEnum.Status.COMPLETED.getCode());
orderGoodsDao.updateEntityByKey(update);
log.info("删除redis ORDER_GOODS_STATUS_LAZY id: {}", orderGoodsId.getValue());
}
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoodsNo, OrderGoodsTruckBindEnum.Status.EXPIRE.getCode());
......
package com.clx.performance.component;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.afs.model.v20180112.AuthenticateSigRequest;
import com.aliyuncs.afs.model.v20180112.AuthenticateSigResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import com.clx.performance.config.AliSliderConfig;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.param.app.SendMobileCaptchaParam;
import com.msl.common.exception.ServiceSystemException;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.net.InetAddress;
/**
* @author cuiwanzhe
* @description
* @date 2020/9/1 4:58 下午
*/
@Service
@Slf4j
@AllArgsConstructor
public class SendMessageMachineCheckComponent {
private final AliSliderConfig aliSliderConfig;
/**
* 滑动验证
*
* @throws
*/
public void sendMessageMachineSelectCheck(HttpServletRequest request, SendMobileCaptchaParam param) throws ServiceSystemException {
if (StringUtils.isBlank(param.getSessionId())) {
throw new ServiceSystemException(PerformanceResultEnum.SLIDER_CHECK_FAIL);
}
if (StringUtils.isBlank(param.getSig())) {
throw new ServiceSystemException(PerformanceResultEnum.SLIDER_CHECK_FAIL);
}
if (StringUtils.isBlank(param.getToken())) {
throw new ServiceSystemException(PerformanceResultEnum.SLIDER_CHECK_FAIL);
}
if (StringUtils.isBlank(param.getScene())) {
throw new ServiceSystemException(PerformanceResultEnum.SLIDER_CHECK_FAIL);
}
Integer responseCode = machineCheckSelect(request, param);
if (responseCode >= 400) {
throw new ServiceSystemException(PerformanceResultEnum.SLIDER_CHECK_FAIL);
}
}
private Integer machineCheckSelect(HttpServletRequest req, SendMobileCaptchaParam param) {
Integer resultCode = null;
IClientProfile profile = DefaultProfile.getProfile(aliSliderConfig.getRegionId(), aliSliderConfig.getAccessKeyId(), aliSliderConfig.getAccessKeySecret());
IAcsClient client = new DefaultAcsClient(profile);
try {
DefaultProfile.addEndpoint(aliSliderConfig.getRegionId(), aliSliderConfig.getRegionId(), aliSliderConfig.getProduct(), aliSliderConfig.getDomain());
} catch (ClientException e) {
e.printStackTrace();
}
String ip = getIpAddress(req);
log.info("=滑动验证=mobile==========>>" + param.getMobile() + "==sessionId========>>" + param.getSessionId() + "==sig=====>>>" + param.getSig() +
"==token=====>>>" + param.getToken() + "==scene=====>>>" + param.getScene() + "==ip=====>>>" + ip);
AuthenticateSigRequest request = new AuthenticateSigRequest();
request.setSessionId(param.getSessionId());// 会话ID。必填参数,从前端获取,不可更改。
request.setSig(param.getSig());// 签名串。必填参数,从前端获取,不可更改。
request.setToken(param.getToken());// 请求唯一标识。必填参数,从前端获取,不可更改。
request.setScene(param.getScene());// 场景标识。必填参数,从前端获取,不可更改。
request.setAppKey("FFFF0N00000000009691");// 应用类型标识。必填参数,后端填写。
request.setRemoteIp(ip);// 客户端IP。必填参数,后端填写。
try {
//response的code枚举:100验签通过,900验签失败
AuthenticateSigResponse response = client.getAcsResponse(request);
resultCode = response.getCode();
// TODO
} catch (Exception e) {
e.printStackTrace();
}
return resultCode;
}
/**
* 获取客户端IP地址
*
* @param request
* @return
*/
private String getIpAddress(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknow".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
if (ip.equals("127.0.0.1")) {
//根据网卡取本机配置的IP
InetAddress inet = null;
try {
inet = InetAddress.getLocalHost();
} catch (Exception e) {
e.printStackTrace();
}
ip = inet.getHostAddress();
}
}
// 多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
if (ip != null && ip.length() > 15) {
if (ip.indexOf(",") > 0) {
ip = ip.substring(0, ip.indexOf(","));
}
}
return ip;
}
}
package com.clx.performance.component;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.msl.common.dto.HttpDTO;
import com.msl.common.result.Result;
import com.msl.common.utils.EncryptUtil;
import com.msl.common.utils.HttpUtil;
import lombok.extern.slf4j.Slf4j;
import java.security.GeneralSecurityException;
@Slf4j
public class ThirdComponent {
public static final String TRANSPORT_USER = "13403503399";
public static final String TRANSPORT_KEY = "9Y1N5AUP8N2TI359";
public static String encrypt(String param){
HttpDTO httpDTO = null;
try {
httpDTO = EncryptUtil.buildDTO(TRANSPORT_USER, param, TRANSPORT_KEY, System.currentTimeMillis());
} catch (GeneralSecurityException e) {
throw new RuntimeException(e);
}
return JSONUtil.parse(httpDTO).toString();
}
public static String decrypt(String data) {
try {
String decrypt = EncryptUtil.decrypt(data, TRANSPORT_KEY);
log.info("解密:{}", decrypt);
return decrypt;
} catch (GeneralSecurityException e) {
throw new RuntimeException(e);
}
}
}
package com.clx.performance.config;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@Getter
@Setter
@ConfigurationProperties(prefix = "ali.slider")
public class AliSliderConfig {
private String accessKeyId;
private String accessKeySecret;
private String regionId;
private String product;
private String domain;
}
package com.clx.performance.config;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@Getter
@Setter
@ConfigurationProperties(prefix = "clx.message")
public class ClxMessageConfig {
//应用ID
private Long appId;
//渠道ID
private Integer channelId;
//短信验证码模板
private String captchaTemplateCode;
}
......@@ -42,84 +42,31 @@ public class RabbitBeanConfig {
@Bean
public Queue orderOnQueue() {
Map<String, Object> params = new HashMap<>(6);
params.put("x-dead-letter-exchange", RabbitKeyConstants.ORDER_ON_DEAD_EXCHANGE);
params.put("x-dead-letter-routing-key", RabbitKeyConstants.ORDER_ON_DEAD_ROUTE_KEY);
return new Queue(RabbitKeyConstants.ORDER_ON_QUEUE, true, false, false, params);
return new Queue(RabbitKeyConstants.ORDER_ON_QUEUE, true, false, false);
}
/**
* 订单挂单中交换机
**/
@Bean
public DirectExchange orderOnExchange() {
return new DirectExchange(RabbitKeyConstants.ORDER_ON_EXCHANGE);
public CustomExchange orderOnExchange() {
Map<String, Object> arguments = new HashMap<>();
//设置路由模式 direct模式
arguments.put("x-delayed-type", "direct");
return new CustomExchange(RabbitKeyConstants.ORDER_ON_EXCHANGE,"x-delayed-message", true, false, arguments);
}
/**
* 订单挂单中绑定
*/
@Bean
public Binding orderOnExchangeBind() {
return BindingBuilder.bind(orderOnQueue()).to(orderOnExchange()).with(RabbitKeyConstants.ORDER_ON_ROUTE_KEY);
public Binding orderOnExchangeBind(@Qualifier("orderOnQueue")Queue queue,@Qualifier("orderOnExchange")CustomExchange customExchange) {
return BindingBuilder.bind(queue).to(customExchange).with(RabbitKeyConstants.ORDER_ON_ROUTE_KEY).noargs();
}
/**
* 死信队列:死信队列处理延迟消息
* @return
*/
@Bean
public Queue orderOnDeadQueue() {
return new Queue(RabbitKeyConstants.ORDER_ON_DEAD_QUEUE, true, false, false);
}
/**
* 订单挂单中交换机:死信队列处理延迟消息
**/
@Bean
public DirectExchange orderOnDeadExchange() {
return new DirectExchange(RabbitKeyConstants.ORDER_ON_DEAD_EXCHANGE);
}
/**
* 订单挂单中绑定:死信队列处理延迟消息
*/
@Bean
public Binding orderDeadExchangeBind() {
return BindingBuilder.bind(orderOnDeadQueue()).to(orderOnDeadExchange()).with(RabbitKeyConstants.ORDER_ON_DEAD_ROUTE_KEY);
}
/**
// * 货单挂单队列
// * @return
// */
// @Bean
// public Queue orderGoodsOnQueue() {
// Map<String, Object> params = new HashMap<>(6);
// params.put("x-dead-letter-exchange", RabbitKeyConstants.ORDER_GOODS_ON_DEAD_EXCHANGE);
// params.put("x-dead-letter-routing-key", RabbitKeyConstants.ORDER_GOODS_ON_DEAD_ROUTE_KEY);
// return new Queue(RabbitKeyConstants.ORDER_GOODS_ON_QUEUE, true, false, false, params);
// }
//
// /**
// * 货单挂单中交换机
// **/
// @Bean
// public DirectExchange orderGoodsOnExchange() {
// return new DirectExchange(RabbitKeyConstants.ORDER_GOODS_ON_EXCHANGE);
// }
//
// /**
// * 货单挂单中绑定
// */
// @Bean
// public Binding orderGoodsOnExchangeBind() {
// return BindingBuilder.bind(orderGoodsOnQueue()).to(orderGoodsOnExchange()).with(RabbitKeyConstants.ORDER_GOODS_ON_ROUTE_KEY);
// }
/**
* 死信队列:死信队列处理延迟消息货单挂单
* 处理延迟消息货单挂单
* @return
*/
@Bean
......@@ -128,7 +75,7 @@ public class RabbitBeanConfig {
}
/**
* 货单挂单中交换机:死信队列处理延迟消息
* 货单挂单中交换机:处理延迟消息
**/
@Bean
public CustomExchange orderGoodsOnDeadExchange() {
......@@ -138,13 +85,6 @@ public class RabbitBeanConfig {
return new CustomExchange(RabbitKeyConstants.ORDER_GOODS_ON_DEAD_EXCHANGE,"x-delayed-message", true, false, arguments);
}
/**
* 货单挂单中绑定:死信队列处理延迟消息
*/
// @Bean
// public Binding orderGoodsDeadExchangeBind() {
// return BindingBuilder.bind(orderGoodsOnDeadQueue()).to(orderGoodsOnDeadExchange()).with(RabbitKeyConstants.ORDER_GOODS_ON_DEAD_ROUTE_KEY);
// }
//绑定交换机,队列和routingKey
@Bean
public Binding delayedQueueBindingDelayedExchange(@Qualifier("orderGoodsOnDeadQueue")Queue queue,@Qualifier("orderGoodsOnDeadExchange")CustomExchange customExchange) {
......
......@@ -39,6 +39,9 @@ public class RabbitKeyConstants {
//承运订单同步一部 需要手动创建对列交换机
public static final String CLX_PERFORMANCE_ORDER_CHILD_QUEUE = "clx_performance.order_child_queue";
//承运货单监听 需要手动创建对列交换机
public static final String CLX_PERFORMANCE_ORDER_GOODS_QUEUE = "clx_performance.order_goods_queue";
public static final String ORDER_GOODS_ON_QUEUE ="clx-order.order.goods.on.queue";
public static final String ORDER_GOODS_ON_EXCHANGE ="clx-order.order.goods.on.exchange";
......@@ -58,4 +61,13 @@ public class RabbitKeyConstants {
public static final String ORDER_CANCEL_ROUTE_KEY ="clx-order.order.cancel.route.key";
public static final String ORDER_LARGE_SCREEN_QUEUE ="clx-order.order.large.screen.queue";
// 预付运费和保证金 自动冻结 触发消息队列
public static final String FREEZE_TRIGGER_EXCHANGE = "clx-order.freeze.trigger.exchange";
public static final String FREEZE_TRIGGER_QUEUE = "clx-order.freeze.trigger.queue";
public static final String FREEZE_TRIGGER_ROUTING_KEY = "clx-order.freeze.trigger.routing.key";
}
......@@ -31,4 +31,9 @@ public class RedisConstants {
* 雪花
*/
public static final String ID_SNOWFLAKE = "clx-performance:idsnowflake";
public static final String MESSAGE_MOBILE_CAPTCHA = "message:mobile:captcha:";
public static final String MESSAGE_RESET_PASSWORD_TOKEN = "message:resetpassword:token:";
}
......@@ -5,5 +5,9 @@ public class RedissonConstants {
// 接单锁
public static final String ORDER_CHILD_SAVE_USER_TRUCK_LOCK = "clx-performance:orderChild:save:userTruck:";
public static final String ORDER_CHILD_SAVE_ORDER_GOODS_NO_LOCK = "clx-performance:orderChild:save:orderGoodsNo:";
//货主结算单支付锁
public static final String SETTLEMENT_OWNER_BATCH_PAY_ID_LOCK = "clx-performance:settlementOwner:batchPay:id:";
//货主违约结算单支付锁
public static final String BREAK_CONTRACT_SETTLEMENT_OWNER_BATCH_PAY_ID_LOCK = "clx-performance:breakContractSettlementOwner:batchPay:id:";
}
package com.clx.performance.controller.app;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.app.NetworkDriverPageParam;
import com.clx.performance.service.settle.NetworkDriverAccountService;
import com.clx.performance.service.settle.NetworkDriverRunningWaterRecordService;
import com.clx.performance.vo.app.APPNetworkDriverRunningWaterRecordVO;
import com.clx.user.vo.feign.WalletResidueCardVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@Slf4j
@RestController
@RequestMapping("/app/driver")
@Validated
@AllArgsConstructor
@Api(tags = "APP-司机资金管理")
public class AppDriverAccountController {
private final NetworkDriverAccountService networkDriverAccountService;
private final NetworkDriverRunningWaterRecordService networkDriverRunningWaterRecordService;
@ApiOperation(value = "APP司机账户", notes = "<br>By:胡宇帆")
@GetMapping("/account")
@UnitCovert(param = false)
public Result<WalletResidueCardVO> account(@RequestParam(value = "userCode") Integer userCode) {
WalletResidueCardVO walletResidueCardVO = networkDriverAccountService.account(userCode);
return Result.ok(walletResidueCardVO);
}
@ApiOperation(value = "APP司机账户冻结明细", notes = "<br>By:胡宇帆")
@PostMapping("/frozenList")
@UnitCovert(param = false)
public Result<PageData<APPNetworkDriverRunningWaterRecordVO>> frozenList(@RequestBody NetworkDriverPageParam param) {
IPage<APPNetworkDriverRunningWaterRecordVO> page = networkDriverRunningWaterRecordService.pageFrozenList(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
@ApiOperation(value = "APP司机账户流水明细", notes = "<br>By:胡宇帆")
@PostMapping("/runningWaterList")
@UnitCovert(param = false)
public Result<PageData<APPNetworkDriverRunningWaterRecordVO>> runningWaterList(@RequestBody NetworkDriverPageParam param) {
IPage<APPNetworkDriverRunningWaterRecordVO> page = networkDriverRunningWaterRecordService.runningWaterList(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
}
......@@ -5,6 +5,7 @@ import com.clx.performance.param.app.*;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.vo.app.*;
import com.msl.common.base.PageData;
import com.msl.common.base.PageParam;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
......@@ -174,4 +175,11 @@ public class AppDriverOrderChildController {
return Result.ok(orderChildService.getGoingLatestOrderChild());
}
@ApiOperation(value = "客诉运单列表", notes = "<br>By:刘海泉")
@PostMapping("/pageCustomerComplaintOrderChild")
public Result<PageData<CustomerComplaintOrderChildVO>> pageCustomerComplaintOrderChild(@RequestBody @Validated PageParam param) {
IPage<CustomerComplaintOrderChildVO> page = orderChildService.pageCustomerComplaintOrderChild(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
}
......@@ -3,6 +3,7 @@ package com.clx.performance.controller.app;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.OrderGoodsMapper;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.param.app.AppGoodsOrderSearchParam;
import com.clx.performance.param.app.OrderGoodsListPageParam;
import com.clx.performance.service.OrderGoodsService;
import com.clx.performance.service.OrderGoodsTruckBindService;
......@@ -61,6 +62,15 @@ public class AppGoodsOrderController {
}
@ApiOperation(value = "APP首页搜索", notes = "<br>By:胡宇帆")
@PostMapping("/indexOrderGoodsListSearch")
@UnitCovert(param = false)
public Result<PageData<OrderGoodsAPPVO>> indexOrderGoodsListSearch(@RequestBody AppGoodsOrderSearchParam param) {
IPage<OrderGoodsAPPVO> page = orderGoodsService.indexOrderGoodsListSearch(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
@ApiOperation(value = "司机端无接单位置上报", notes = "<br>By:胡宇帆")
@GetMapping("/getCancelOrderGoods")
public Result<List<OrderGoodsAPPVO>> getCancelOrderGoods(@RequestParam(value = "userNo") Long userNo) {
......
package com.clx.performance.controller.app;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.annotation.ResetPassword;
import com.clx.performance.param.app.CheckMobileParam;
import com.clx.performance.param.app.InformationParam;
import com.clx.performance.param.app.ResetPasswordParam;
import com.clx.performance.param.app.SendMobileCaptchaParam;
import com.clx.performance.param.pc.PageAppPrepaidFreightAccountParam;
import com.clx.performance.service.OwnerAccountService;
import com.clx.performance.vo.pc.OwnerAccountRunningWaterRecordVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping("/app/owner")
@Validated
@AllArgsConstructor
@Api(tags = "APP-货主资金管理")
public class AppOwnerAccountController {
private final OwnerAccountService ownerAccountService;
@ApiOperation(value = "APP货主流水", notes = "<br>By:胡宇帆")
@PostMapping("/prepaidFreightOwnerAccountPageList")
@UnitCovert(param = false)
public Result<PageData<OwnerAccountRunningWaterRecordVO>> prepaidFreightOwnerAccountPageList(@RequestBody PageAppPrepaidFreightAccountParam param) {
IPage<OwnerAccountRunningWaterRecordVO> page = ownerAccountService.prepaidFreightOwnerAccountPageList(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
@ApiOperation(value = "发送手机验证码", notes = "<br>By:胡宇帆")
@PostMapping("/sendMobileCaptcha")
@ResetPassword(name = "sendMobileCaptcha")
public Result<String> sendMobileCaptcha(@RequestBody SendMobileCaptchaParam param) {
String token = ownerAccountService.sendMobileCaptcha(param);
return Result.ok(token);
}
@ApiOperation(value = "验证手机号验证码", notes = "<br>By:胡宇帆")
@PostMapping("/checkMobile")
@ResetPassword(name = "checkMobile")
public Result<String> checkMobile(@RequestBody CheckMobileParam param) {
String token = ownerAccountService.checkMobile(param);
return Result.ok(token);
}
@ApiOperation(value = "验证营业执照编号", notes = "<br>By:胡宇帆")
@PostMapping("/checkBusinessLicenseNumber")
@ResetPassword(name = "checkBusinessLicenseNumber")
public Result<String> checkBusinessLicenseNumber(@RequestBody InformationParam param) {
String token = ownerAccountService.checkBusinessLicenseNumber(param);
return Result.ok(token);
}
@ApiOperation(value = "修改交易密码", notes = "<br>By:胡宇帆")
@PostMapping("/resetPassword")
@ResetPassword(name = "resetPassword")
public Result<Object> resetPassword(@RequestBody ResetPasswordParam param) {
ownerAccountService.resetPassword(param);
return Result.ok();
}
}
package com.clx.performance.controller.feign;
import cn.hutool.json.JSONUtil;
import com.clx.performance.param.pc.driver.NetworkDriverAccountParam;
import com.clx.performance.service.OwnerAccountService;
import com.clx.performance.service.settle.NetworkDriverAccountService;
import com.msl.common.result.Result;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping("/feign/driver")
@Validated
@AllArgsConstructor
public class DriverAccountFeignController {
private final NetworkDriverAccountService networkDriverAccountService;
@ApiOperation(value = "创建司机网络货运账户", notes = "<br>By:胡宇帆")
@PostMapping("/createNetworkDriverAccount")
public Result<Object> createNetworkDriverAccount(@RequestBody NetworkDriverAccountParam param) {
log.info("进行创建司机网络货运账户,相关参数{}", JSONUtil.parse(param).toString());
networkDriverAccountService.createNetworkDriverAccount(param);
return Result.ok();
}
}
......@@ -5,6 +5,7 @@ import com.clx.performance.model.OrderChild;
import com.clx.performance.service.LastTruckService;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.service.child.FeignOrderChildService;
import com.clx.performance.service.settle.SettlementOwnerDetailService;
import com.clx.performance.vo.pc.child.OrderChildLineStatisticsVO;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
......@@ -30,6 +31,8 @@ public class OrderChildFeignController {
private final LastTruckService lastTruckService;
private final SettlementOwnerDetailService settlementOwnerDetailService;
@GetMapping({"/getOrderChildTotalByUserNo"})
Integer getTrucksByOrderGoodsNo(@RequestParam("userNo") @NotNull(message = "用户编号不可为空") Long userNo) {
......@@ -53,6 +56,16 @@ public class OrderChildFeignController {
}
}
@GetMapping({"/selectInTransitOrderChildLtUnsettle"})
Result<Boolean> selectInTransitOrderChildLtUnsettle(@RequestParam("orderNo") String orderNo) {
List<OrderChild> orderChildren = orderChildService.selectInTransitOrderChildLtUnsettle(orderNo);
if (CollectionUtil.isNotEmpty(orderChildren)) {
return Result.ok(true);
} else {
return Result.ok(false);
}
}
@ApiOperation(value = "线路运单统计", notes = "<br>By:艾庆国")
@RequestMapping(value = "/lineStatistics", method = RequestMethod.GET)
Result<OrderChildLineStatisticsVO> lineStatistics(@RequestParam @NotNull(message = "发货地址不可为空") Integer sendSystemAddressId,
......@@ -69,4 +82,10 @@ public class OrderChildFeignController {
}
@ApiOperation(value = "获取当前订单是否有存在网运单", notes = "<br>By:胡宇帆")
@GetMapping({"/getInvoiceType"})
Result<Integer> getInvoiceType(@RequestParam("orderNo") @NotNull(message = "订单编号不能为空") String orderNo) {
return Result.ok(settlementOwnerDetailService.getInvoiceType(orderNo));
}
}
package com.clx.performance.controller.feign;
import cn.hutool.core.collection.CollectionUtil;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.service.settle.SettlementOwnerDetailService;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
import java.util.List;
@RestController
@RequestMapping("/feign/settlement")
@Validated
@Api(tags = "货单Feign")
@AllArgsConstructor
public class SettlementFeignController {
private final SettlementOwnerDetailService settlementOwnerDetailService;
@GetMapping({"/thawAndLockSettlement"})
Result<Boolean> selectListByOrderNo(@RequestParam("orderNo") @NotNull(message = "订单号不能为空") String orderNo) {
return Result.ok(settlementOwnerDetailService.thawAndLockSettlement(orderNo));
}
}
package com.clx.performance.controller.pc;
import cn.hutool.json.JSONUtil;
import com.clx.performance.service.LargeScreenService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
@Slf4j
@RestController
@RequestMapping("/pc/largescreen")
@Validated
@AllArgsConstructor
@Api(tags = "PC-大屏")
public class LargeScreenController {
private final LargeScreenService largeScreenService;
@ApiOperation(value = "空车列表", notes = "<br>By:胡宇帆")
@GetMapping("/emptyCarList")
public String emptyCarList() {
return JSONUtil.toJsonStr(largeScreenService.emptyCarList());
}
@ApiOperation(value = "重车列表", notes = "<br>By:胡宇帆")
@GetMapping("/weightCarList")
public String weightCarList() {
return JSONUtil.toJsonStr(largeScreenService.weightCarList());
}
@ApiOperation(value = "收货地址", notes = "<br>By:胡宇帆")
@GetMapping("/receiveAddress")
public String receiveAddress(@RequestParam(value = "addressId")@NotNull Integer addressId) {
return largeScreenService.receiveAddress(addressId);
}
@ApiOperation(value = "发货地址", notes = "<br>By:胡宇帆")
@GetMapping("/sendAddress")
public String sendAddress(@RequestParam(value = "addressId") @NotNull Integer addressId) {
return largeScreenService.sendAddress(addressId);
}
@ApiOperation(value = "线路", notes = "<br>By:胡宇帆")
@GetMapping("/lineString")
public String lineString(@RequestParam(value = "addressId")@NotNull Integer addressId) {
return largeScreenService.routeLine(addressId);
}
}
\ No newline at end of file
......@@ -2,26 +2,27 @@ package com.clx.performance.controller.pc;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.feign.TransportFeignService;
import com.clx.performance.param.pc.ArtificialCancelOrderParam;
import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.param.pc.OrderChildCancelRecordParam;
import com.clx.performance.param.pc.PageOrderGoodsListParam;
import com.clx.performance.service.OrderCancelService;
import com.clx.performance.service.TransportSyncService;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.base.PageData;
import com.msl.common.base.PageParam;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Slf4j
@RestController
@RequestMapping(value="/pc/order/")
......@@ -32,6 +33,7 @@ public class OrderCancelController {
private final OrderCancelService orderCancelService;
@ApiOperation(value = "承运端取消订单", notes = "<br>By:胡宇帆")
@PostMapping("/platformCancelOrderPre")
public Result<Object> platformCancelOrderPre(@RequestBody OrderCancelParam param) {
......@@ -67,4 +69,6 @@ public class OrderCancelController {
IPage<OrderChildVO> page = orderCancelService.orderChildCancelRecord(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
}
package com.clx.performance.controller.pc.breakcontract.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.breakcontract.carrier.BatchUpdatePayDriverBreakContractSettlementParam;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverParam;
import com.clx.performance.service.breakcontract.BreakContractSettlementDriverService;
import com.clx.performance.vo.pc.breakcontract.carrier.CarrierBreakContractSettlementDriverDetailVO;
......@@ -58,4 +59,12 @@ public class CarrierBreakContractSettlementDriverController {
return Result.ok(breakContractSettlementDriverService.getDetailBySettlementNo(settlementNo));
}
@ApiOperation(value = "批量结算车主违约结算单",notes = "<br>By:刘海泉")
@PostMapping("/updateBatchPayDriverBreakContractSettlement")
public Result<Object> updateBatchPayDriverBreakContractSettlement(@RequestBody @Validated BatchUpdatePayDriverBreakContractSettlementParam param) {
breakContractSettlementDriverService.updateBatchPayDriverBreakContractSettlement(param);
return Result.ok();
}
}
package com.clx.performance.controller.pc.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.driver.BatchUpdatePayDriverSettlementParam;
import com.clx.performance.param.pc.driver.PageCarrierSettlementDriverParam;
import com.clx.performance.service.settle.SettlementDriverService;
import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementDriverVO;
......@@ -36,6 +37,11 @@ public class CarrierSettlementDriverController {
return Result.page(page.getRecords(),page.getTotal(),page.getPages());
}
@ApiOperation(value = "批量结算车主结算单",notes = "<br>By:刘海泉")
@PostMapping("/updateBatchPayDriverSettlement")
public Result<Object> updateBatchPayDriverSettlement(@RequestBody @Validated BatchUpdatePayDriverSettlementParam param) {
settlementDriverService.updateBatchPayDriverSettlement(param);
return Result.ok();
}
}
......@@ -111,7 +111,6 @@ public class CarrierSettlementOwnerController {
@ApiOperation(value = "编辑结算单状态",notes = "<br>By:姜文业")
@PostMapping("/updateStatusByOrderNo")
public Result updateStatusByOrderNo(@RequestBody @Validated UpdateStatusParam param) {
log.info("履约服务进行结算单状态更改,参数{}", JSONUtil.parse(param));
settlementOwnerService.updateStatusByOrderNo(param.getOrderNo(), param.getSettlementPeriodType(), param.getFromStatus(), param.getToStatus());
return Result.ok();
}
......
package com.clx.performance.controller.pc.customer;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.customer.PageCustomerComplaintDetailParam;
import com.clx.performance.param.pc.customer.SaveCustomerComplaintDetailParam;
import com.clx.performance.service.customer.CustomerComplaintDetailService;
import com.clx.performance.vo.pc.customer.CustomerComplaintDetailVO;
import com.msl.common.base.PageData;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName CustomerComplaintTypeController
* @Description
* @Author kavin
* @Date 2023/12/7 10:44
* @Version 1.0
*/
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/customer/complaint/type")
@Validated
@Api(tags = "客服-投诉详情")
@AllArgsConstructor
public class CustomerComplaintDetailController {
private final CustomerComplaintDetailService customerComplaintDetailService;
@ApiOperation(value = "保存客户投诉",notes = "<br>By:刘海泉")
@PostMapping("/saveCustomerComplaintDetail")
public Result<Object> saveCustomerComplaintDetail(@RequestBody @Validated SaveCustomerComplaintDetailParam param){
customerComplaintDetailService.saveCustomerComplaintDetail(param);
return Result.ok();
}
@ApiOperation(value = "投诉详情列表",notes = "<br>By:刘海泉")
@PostMapping("/pageCustomerComplaintDetail")
public Result<PageData<CustomerComplaintDetailVO>> pageCustomerComplaintDetail(@RequestBody @Validated PageCustomerComplaintDetailParam param){
IPage<CustomerComplaintDetailVO> page = customerComplaintDetailService.pageCustomerComplaintDetail(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
}
package com.clx.performance.controller.pc.customer;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.customer.PageCustomerComplaintTypeParam;
import com.clx.performance.param.pc.customer.SaveComplaintTypeParam;
import com.clx.performance.service.customer.CustomerComplaintTypeService;
import com.clx.performance.vo.pc.customer.CustomerComplaintTypeVO;
import com.msl.common.base.PageData;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @ClassName CustomerComplaintTypeController
* @Description
* @Author kavin
* @Date 2023/12/7 10:44
* @Version 1.0
*/
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/customer/complaint/type")
@Validated
@Api(tags = "客服-投诉分类")
@AllArgsConstructor
public class CustomerComplaintTypeController {
private final CustomerComplaintTypeService customerComplaintTypeService;
@ApiOperation(value = "保存/更新投诉分类",notes = "<br>By:刘海泉")
@PostMapping("/saveCustomerComplaintType")
public Result<Object> saveCustomerComplaintType(@RequestBody @Validated SaveComplaintTypeParam param){
customerComplaintTypeService.saveCustomerComplaintType(param);
return Result.ok();
}
@ApiOperation(value = "投诉分类列表",notes = "<br>By:刘海泉")
@PostMapping("/pageCustomerComplaintType")
public Result<PageData<CustomerComplaintTypeVO>> pageCustomerComplaintType(@RequestBody @Validated PageCustomerComplaintTypeParam param){
IPage<CustomerComplaintTypeVO> page = customerComplaintTypeService.pageCustomerComplaintType(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
@ApiOperation(value = "投诉分类下拉选",notes = "<br>By:刘海泉")
@PostMapping("/getCustomerComplaintTypeSelect")
public Result<List<CustomerComplaintTypeVO>> getCustomerComplaintTypeSelect(@RequestBody @Validated PageCustomerComplaintTypeParam param){
List<CustomerComplaintTypeVO> list = customerComplaintTypeService.getCustomerComplaintTypeSelect(param);
return Result.ok(list);
}
}
package com.clx.performance.controller.pc.driver;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.*;
import com.clx.performance.service.settle.NetworkCaseOutRecordService;
import com.clx.performance.service.settle.NetworkDriverAccountService;
import com.clx.performance.service.settle.NetworkDriverRunningWaterRecordService;
import com.clx.performance.vo.pc.*;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@Slf4j
@RestController
@RequestMapping("/pc/driver")
@Validated
@AllArgsConstructor
@Api(tags = "PC-车主网络货运")
public class NetworkDriverAccountController {
private final NetworkDriverAccountService networkDriverAccountService;
private final NetworkDriverRunningWaterRecordService networkDriverRunningWaterRecordService;
private final NetworkCaseOutRecordService networkCaseOutRecordService;
@ApiOperation(value = "网络货运账户列表", notes = "<br>By:胡宇帆")
@PostMapping("/networkAccountList")
@UnitCovert(param = false)
public Result<PageData<NetworkDriverAccountVO>> networkAccountList(@RequestBody PageNetworkAccountListParam param) {
IPage<NetworkDriverAccountVO> page = networkDriverAccountService.networkAccountList(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
@ApiOperation(value = "网络货运账户详情", notes = "<br>By:胡宇帆")
@PostMapping("/networkAccountInfoList")
@UnitCovert(param = false)
public Result<PageData<NetworkDriverRunningWaterRecordVO>> networkAccountInfoList(@RequestBody PageNetworkAccountInfoListParam param) {
IPage<NetworkDriverRunningWaterRecordVO> page = networkDriverRunningWaterRecordService.networkDriverRunningWaterRecordList(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
@ApiOperation(value = "车主提现", notes = "<br>By:胡宇帆")
@PostMapping("/networkCaseOutRecord")
@UnitCovert(param = false)
public Result<PageData<NetworkCaseOutRecordVO>> networkCaseOutRecord(@RequestBody PageNetworkCaseOutRecordListParam param) {
IPage<NetworkCaseOutRecordVO> page = networkCaseOutRecordService.networkCaseOutRecord(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
}
......@@ -166,4 +166,13 @@ public class OwnerAccountController {
ownerAccountService.createAccount(param);
return Result.ok();
}
@ApiOperation(value = "APP货主流水", notes = "<br>By:胡宇帆")
@PostMapping("/prepaidFreightOwnerAccountPageList")
@UnitCovert(param = false)
public Result<PageData<OwnerAccountRunningWaterRecordVO>> prepaidFreightOwnerAccountPageList(@RequestBody PageAppPrepaidFreightAccountParam param) {
param.setUserNo(TokenUtil.getLoginUserInfo().getUserNo());
IPage<OwnerAccountRunningWaterRecordVO> page = ownerAccountService.prepaidFreightOwnerAccountPageList(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
}
package com.clx.performance.controller.pc.transport;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.clx.performance.component.ThirdComponent;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.dto.InvoicingStatusNotifyDTO;
import com.clx.performance.dto.OrderChildSyncDTO;
import com.clx.performance.dto.PayStatusNotifyDTO;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.feign.TransportFeignService;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.param.feign.transport.ThirdOrderChildBrokerParam;
import com.clx.performance.param.feign.transport.ThirdOrderChildRiskStatusParam;
import com.clx.performance.service.TransportSyncService;
import com.clx.performance.service.settle.OrderChildSyncTransportRecordService;
import com.clx.performance.service.settle.SettlementOwnerService;
import com.msl.common.dto.HttpDTO;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@Slf4j
@RestController
@RequestMapping(value="/pc/transport/")
@Validated
@Api(tags = "PC-网络货运相关")
@AllArgsConstructor
public class TransportSyncController {
private final TransportSyncService transportSyncService;
private final OrderChildDao orderChildDao;
private final SettlementOwnerDetailDao settlementOwnerDetailDao;
private final OrderGoodsDao orderGoodsDao;
private final TransportFeignService transportFeignService;
private final SettlementDriverDetailDao settlementDriverDetailDao;
private final OrderChildSyncTransportRecordService orderChildSyncTransportRecordService;
private final SettlementOwnerService settlementOwnerService;
/**
* 支付结果
* @param param
* @return
*/
@ApiOperation(value = "payStatusNotify", notes = "<br>By:胡宇帆")
@PostMapping("/payStatusNotify")
public Object payStatusNotify(@RequestBody String param) {
HttpDTO bean = JSONUtil.toBean(param, HttpDTO.class);
log.info("payStatusNotify 原始报文:{}", bean);
String decrypt = ThirdComponent.decrypt(bean.getData());
log.info("payStatusNotify 解密后:{}", decrypt);
PayStatusNotifyDTO payStatusNotifyDTO = JSONUtil.toBean(decrypt, PayStatusNotifyDTO.class);
log.info("支付回调payStatusNotifyDTO:{}", JSONUtil.parse(payStatusNotifyDTO));
orderChildSyncTransportRecordService.updateStatus(payStatusNotifyDTO);
return ThirdComponent.encrypt(JSON.toJSONString(Result.ok()));
}
/**
* 开票结果
* @param param
* @return
*/
@ApiOperation(value = "invoicingStatusNotify", notes = "<br>By:胡宇帆")
@PostMapping("/invoicingStatusNotify")
public Object invoicingStatusNotify(@RequestBody String param) {
HttpDTO bean = JSONUtil.toBean(param, HttpDTO.class);
log.info("invoicingStatusNotify 原始报文:{}", bean);
String decrypt = ThirdComponent.decrypt(bean.getData());
log.info("invoicingStatusNotify 解密后:{}", decrypt);
InvoicingStatusNotifyDTO invoicingStatusNotifyDTO = JSONUtil.toBean(decrypt, InvoicingStatusNotifyDTO.class);
settlementOwnerService.invoicingStatusNotify(invoicingStatusNotifyDTO);
return ThirdComponent.encrypt(JSON.toJSONString(Result.ok()));
}
/**
* 风控结果
* @param param
* @return
*/
@ApiOperation(value = "riskStatusNotify", notes = "<br>By:艾庆国")
@PostMapping("/riskStatusNotify")
public Object riskStatusNotify(@RequestBody String param) {
HttpDTO bean = JSONUtil.toBean(param, HttpDTO.class);
log.info("riskStatusNotify 原始报文:{}", bean);
String decrypt = ThirdComponent.decrypt(bean.getData());
log.info("riskStatusNotify 解密后:{}", decrypt);
ThirdOrderChildRiskStatusParam invoicingStatusNotifyDTO = JSONUtil.toBean(decrypt, ThirdOrderChildRiskStatusParam.class);
return ThirdComponent.encrypt(JSON.toJSONString(Result.ok()));
}
@ApiOperation(value = "syncTest", notes = "<br>By:胡宇帆")
@GetMapping("/syncTest")
public Result<OrderChildSyncDTO> syncTest(@RequestParam String childNo) {
OrderChild orderChild = orderChildDao.getByChildNo(childNo).get();
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).get();
SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
ThirdOrderChildBrokerParam param = transportSyncService.generateOrderChildSync(orderChild, orderGoods, settlementOwnerDetail, settlementDriverDetail);
log.info("=======================生成Param{}", JSONUtil.parse(param));
HttpDTO httpDTOResult = transportFeignService.orderChildSync(param);
String decrypt = ThirdComponent.decrypt(httpDTOResult.getData());
OrderChildSyncDTO bean = JSONUtil.toBean(decrypt, OrderChildSyncDTO.class);
return Result.ok(bean);
}
}
package com.clx.performance.controller.temp;
import com.clx.performance.component.ThirdComponent;
import com.clx.performance.extranal.transport.TransportService;
import com.clx.performance.feign.TransportFeignService;
import com.clx.performance.param.feign.transport.OrderChildPaySyncParam;
import com.clx.performance.param.feign.transport.OwnerSettlementSyncParam;
import com.clx.performance.service.TempService;
import com.clx.performance.service.child.FeignOrderChildService;
import com.clx.performance.vo.pc.child.OrderChildLineStatisticsVO;
import com.msl.common.dto.HttpDTO;
import com.msl.common.result.Result;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
......@@ -30,6 +33,10 @@ public class TempController {
private TempService tempService;
@Autowired
private FeignOrderChildService carrierOrderChildService;
@Autowired
private TransportService transportService;
@Autowired
private TransportFeignService transportFeignService;
......@@ -69,4 +76,37 @@ public class TempController {
return Result.ok();
}
// @ApiOperation(value = "承运同步网络货运 (临时接口)", notes = "<br>By:艾庆国")
// @RequestMapping(value = "/orderChildSync", method = RequestMethod.GET)
// public Result<Void> orderChildSync(@RequestBody ThirdOrderChildBrokerParam param1) {
// ThirdOrderChildBrokerParam param = new ThirdOrderChildBrokerParam();
// param.setChildNo("123");
//
// transportService.orderChildSync(param);
//
// return Result.ok();
// }
@ApiOperation(value = "运单支付运费同步 (临时接口)", notes = "<br>By:艾庆国")
@RequestMapping(value = "/orderChildPaySync", method = RequestMethod.POST)
public Result<Void> orderChildPaySync(@RequestBody OrderChildPaySyncParam param) {
HttpDTO httpDTO = transportFeignService.orderChildPaySync(param);
String decrypt = ThirdComponent.decrypt(httpDTO.getData());
log.info("{}", decrypt);
return Result.ok();
}
@ApiOperation(value = "货主结算单同步 (临时接口)", notes = "<br>By:艾庆国")
@RequestMapping(value = "/ownerSettlementSync", method = RequestMethod.POST)
public Result<Void> ownerSettlementSync(@RequestBody OwnerSettlementSyncParam param) {
HttpDTO httpDTO = transportFeignService.ownerSettlementSync(param);
String decrypt = ThirdComponent.decrypt(httpDTO.getData());
log.info("{}", decrypt);
return Result.ok();
}
}
package com.clx.performance.dao;
import com.clx.performance.mapper.LargeScreenAddressRouteMapper;
import com.clx.performance.model.LargeScreenAddressRoute;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
import java.util.List;
/**
* @author kavin
* Date 2023-11-22
* Time 10:54
*/
public interface LargeScreenAddressRouteDao extends BaseDao<LargeScreenAddressRouteMapper, LargeScreenAddressRoute, Integer> {
List<LargeScreenAddressRoute> getEntityByReceiveAddressIdAndSendAddressId(Integer receiveAddressId, Integer sendAddressId);
List<LargeScreenAddressRoute> selectList();
}
......@@ -11,6 +11,7 @@ import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.pc.PageCarrierOrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import com.msl.common.base.Optional;
import com.msl.common.base.PageParam;
import com.msl.common.dao.BaseDao;
import org.apache.ibatis.annotations.Param;
......@@ -116,6 +117,8 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
*/
List<OrderChild> selectInTransitOrderChild(String orderNo);
List<OrderChild> selectInTransitOrderChildLtUnsettle(String orderNo);
/**
* 通过货单号查询在途运单
* @param orderGoodsNo
......@@ -156,4 +159,8 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
Long haveArriveReceiveChild(String orderNo);
List<OrderChild> selectListWithEmptyCarList();
Page<OrderChild> getMonthAgoByUserNo(Long userNo, LocalDateTime monthAgo, PageParam param);
}
package com.clx.performance.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.app.AppGoodsOrderSearchParam;
import com.clx.performance.param.pc.OrderGoodsEditParams;
import com.clx.performance.param.pc.PageOrderGoodsListParam;
import com.clx.performance.mapper.OrderGoodsMapper;
......@@ -93,5 +94,7 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
List<Double> getFreightPrice( Integer sendAddressId,Integer receiveAddressId,String orderNo);
IPage<OrderGoodsAPPVO> indexOrderGoodsListSearch(AppGoodsOrderSearchParam param);
void batchUpdateResidueWeight(List<Integer> list, BigDecimal residueWeight);
}
......@@ -27,7 +27,7 @@ public interface OrderGoodsTruckBindDao extends BaseDao<OrderGoodsTruckBindMappe
Optional<OrderGoodsTruckBind> getValidByOrderGoodsNoAndTruckNo(String truckNo);
Optional<List<OrderGoodsTruckBind>> getValidByTruckNo(String truckNo);
Optional<List<OrderGoodsTruckBind>> selectListByTruckNo(List<String> truckList);
List<String> selectListByTruckNo(List<String> truckList);
void updateOrderGoodsBindStatus(String orderGoodsNo, Integer code);
......@@ -56,4 +56,7 @@ public interface OrderGoodsTruckBindDao extends BaseDao<OrderGoodsTruckBindMappe
void deleteByOrderGoods(String orderGoodsNo);
List<String> findUnreleasedTruck();
void updateTruckBindExpire(List<Integer> ids);
}
package com.clx.performance.dao;
import com.clx.performance.mapper.OwnerAccountPasswordMapper;
import com.clx.performance.model.OwnerAccountPassword;
import com.msl.common.dao.BaseDao;
/**
* @author kavin
* Date 2023-11-28
* Time 17:42
*/
public interface OwnerAccountPasswordDao extends BaseDao<OwnerAccountPasswordMapper, OwnerAccountPassword, Integer> {
OwnerAccountPassword findEntityByUserNo(Long userNo);
}
......@@ -3,6 +3,7 @@ package com.clx.performance.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.OwnerRunningWaterRecordMapper;
import com.clx.performance.model.OwnerRunningWaterRecord;
import com.clx.performance.param.pc.PageAppPrepaidFreightAccountParam;
import com.clx.performance.param.pc.PageOwnerAccountRunningWaterParam;
import com.clx.performance.param.pc.PagePlatformMarginAccountParam;
import com.clx.performance.param.pc.PagePlatformPrepaidFreightAccountParam;
......@@ -18,6 +19,9 @@ public interface OwnerRunningWaterRecordDao extends BaseDao<OwnerRunningWaterRec
IPage<OwnerAccountRunningWaterRecordVO> prepaidFreightAccountPageList(PagePlatformPrepaidFreightAccountParam param);
IPage<OwnerAccountRunningWaterRecordVO> prepaidFreightOwnerAccountPageList(PageAppPrepaidFreightAccountParam param);
List<OwnerAccountRunningWaterRecordVO> prepaidFreightAccountList(PagePlatformPrepaidFreightAccountParam param);
......@@ -29,4 +33,7 @@ public interface OwnerRunningWaterRecordDao extends BaseDao<OwnerRunningWaterRec
List<OwnerRunningWaterRecord> getOwnerRunningWaterRecord(String orderNo);
List<OwnerAccountRunningWaterRecordVO> marginAccountList(PagePlatformMarginAccountParam param);
OwnerRunningWaterRecord getOneByOrderNoAndRunningWaterTypeAndAccountType(String orderNo, Integer runningWaterType, Integer accountType);
}
package com.clx.performance.dao.customer;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.mapper.customer.CustomerComplaintDetailMapper;
import com.clx.performance.model.customer.CustomerComplaintDetail;
import com.clx.performance.param.pc.customer.PageCustomerComplaintDetailParam;
import com.clx.performance.vo.pc.customer.CustomerComplaintDetailVO;
import com.msl.common.dao.BaseDao;
public interface CustomerComplaintDetailDao extends BaseDao<CustomerComplaintDetailMapper, CustomerComplaintDetail, Integer> {
Page<CustomerComplaintDetailVO> pageCustomerComplaintDetail(PageCustomerComplaintDetailParam param);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论