提交 26678555 authored 作者: 李瑞鑫's avatar 李瑞鑫

Merge branch 'v1.0_init_contract_20240306'

# Conflicts: # performance-web/src/main/java/com/clx/performance/service/OwnerAccountService.java # performance-web/src/main/java/com/clx/performance/service/impl/OwnerAccountServiceImpl.java
...@@ -44,6 +44,12 @@ ...@@ -44,6 +44,12 @@
<groupId>com.msl</groupId> <groupId>com.msl</groupId>
<artifactId>convertor-spring-boot-starter</artifactId> <artifactId>convertor-spring-boot-starter</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.clx.cy</groupId>
<artifactId>open-sdk</artifactId>
</dependency>
</dependencies> </dependencies>
......
package com.clx.performance.constant;
/**
* @ClassName UserConstants
* @Description
* @Author kavin
* @Date 2024/3/25 14:15
* @Version 1.0
*/
public class UserConstants {
public static String PRODUCT_CODE = "Product-Code";
public static String TOKEN = "Token";
}
...@@ -3,6 +3,7 @@ package com.clx.performance.feign; ...@@ -3,6 +3,7 @@ package com.clx.performance.feign;
import com.clx.performance.param.app.collect.CollectTruckParam; import com.clx.performance.param.app.collect.CollectTruckParam;
import com.clx.performance.param.feign.OrderAdjustTonnageDownParam; import com.clx.performance.param.feign.OrderAdjustTonnageDownParam;
import com.clx.performance.param.pc.OrderCancelFeignParam; import com.clx.performance.param.pc.OrderCancelFeignParam;
import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.param.pc.OrderChildReportParam; import com.clx.performance.param.pc.OrderChildReportParam;
import com.clx.performance.param.pc.owner.FrozenAccountParam; import com.clx.performance.param.pc.owner.FrozenAccountParam;
import com.clx.performance.param.pc.owner.ThawAccountParam; import com.clx.performance.param.pc.owner.ThawAccountParam;
...@@ -69,7 +70,6 @@ public interface PerformanceFeign { ...@@ -69,7 +70,6 @@ public interface PerformanceFeign {
@PostMapping(value = {"clx-performance/feign/order/orderCancel"}) @PostMapping(value = {"clx-performance/feign/order/orderCancel"})
Result<Object> orderCancel(@RequestBody OrderCancelFeignParam param); Result<Object> orderCancel(@RequestBody OrderCancelFeignParam param);
/** /**
* 更新货单暂停标志 * 更新货单暂停标志
* @param orderNo * @param orderNo
......
package com.clx.performance.feign;
import com.clx.open.sdk.request.action.GetOrderBreakContractOwnerRuleFileAction;
import com.clx.open.sdk.request.action.GetOwnerAccountInfoAction;
import com.clx.open.sdk.request.dto.OwnerCancelResidueWeightDTO;
import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.vo.pc.OwnerAccountAllVO;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleFileVO;
import com.msl.common.result.Result;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(name = "clx-performance", configuration = PerformanceClientConfiguration.class)
public interface PerformanceSDKFeign {
@PostMapping(value = {"clx-performance/feign/sdk/ownCancelOrderPre"})
Result<Integer> ownCancelOrderPre(@RequestBody OrderCancelParam param);
@GetMapping(value = {"clx-performance/feign/sdk/orderCancelResidueWeight"})
Result<OwnerCancelResidueWeightDTO> orderCancelResidueWeight(@RequestParam(value = "orderNo") String orderNo, @RequestParam(value = "optionType") String optionType);
@GetMapping(value = {"clx-performance/feign/sdk/accountAllInfo"})
Result<OwnerAccountAllVO> accountAllInfo(@RequestParam Long userNo);
/**
* 查询规则文档信息
*/
@PostMapping("clx-performance/feign/sdk/getOwnerRuleFile")
Result<BreakContractOwnerRuleFileVO> getOwnerRuleFile(@RequestBody GetOrderBreakContractOwnerRuleFileAction action);
}
package com.clx.performance.feign; package com.clx.performance.feign;
import com.clx.open.sdk.request.action.BreakContractSettlementGenerateAction;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(name = "clx-performance",configuration = PerformanceClientConfiguration.class) @FeignClient(name = "clx-performance",configuration = PerformanceClientConfiguration.class)
...@@ -14,4 +17,8 @@ public interface SettlementFeign { ...@@ -14,4 +17,8 @@ public interface SettlementFeign {
@GetMapping("clx-performance/feign/settlement/thawAndLockSettlement") @GetMapping("clx-performance/feign/settlement/thawAndLockSettlement")
Result<Boolean> thawAndLockSettlement(@RequestParam String orderNo); Result<Boolean> thawAndLockSettlement(@RequestParam String orderNo);
@ApiOperation(value = "确认或驳回违约")
@PostMapping("clx-performance/feign/breakContract/updateBreakContract")
Result updateBreakContract(@RequestBody @Validated BreakContractSettlementGenerateAction action);
} }
package com.clx.performance.vo.feign;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
* @Description
* @Author aiqingguo
* @Date 2023-10-19 16:33:52
* @Version 1.0
*/
@Getter
@Setter
public class OwnerInfoVO {
@ApiModelProperty("用户编号")
private Long userNo;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("手机号码")
private String mobile;
@ApiModelProperty("货主类型 1企业 2个人")
private Integer ownerType;
@ApiModelProperty("所属银行")
private String ownerAccountBank;
@ApiModelProperty("开户行")
private String ownerOpenBank;
@ApiModelProperty("开户行号")
private String ownerOpenBankNumber;
@ApiModelProperty("户名")
private String ownerAccountName;
@ApiModelProperty("银行账户")
private String ownerBankAccount;
@ApiModelProperty("结算账期 1拉运完成结 2月结")
private Integer settlementAccountPeriod;
@ApiModelProperty("结算方式 1装车净重 2卸车净重")
private Integer settlementWay;
@ApiModelProperty("冻结方式 1自动冻结 2手动冻结")
private Integer freezeSetting;
@ApiModelProperty("公司名称")
private String companyName;
@ApiModelProperty("法人姓名")
private String legalName;
@ApiModelProperty("法人身份证")
private String legalCardNo;
@ApiModelProperty(value = "法人手机号", example = "")
private String legalMobile;
@ApiModelProperty("营业执照图片地址")
private String companyBusinessImg;
@ApiModelProperty("营业执照编号")
private String companyBusinessNo;
@ApiModelProperty("公司税号")
private String companyTaxCode;
@ApiModelProperty("公司地址")
private String companyAddress;
@ApiModelProperty("公司联系电话")
private String companyTelephone;
@ApiModelProperty("公司银行账户")
private String companyBankAccount;
@ApiModelProperty("公司开户行")
private String companyOpenBank;
@ApiModelProperty("统一社会信用代码")
private String companyGroupCode;
@ApiModelProperty("联系人")
private String contactsName;
@ApiModelProperty("联系电话")
private String contactsTelephone;
@ApiModelProperty("联系地址")
private String contactsAddress;
@ApiModelProperty("网络货运货主编码")
private String transportOwnerCode;
@ApiModelProperty("创建时间")
private String createTime;
}
package com.clx.performance.vo.pc; package com.clx.performance.vo.pc;
import com.clx.performance.vo.feign.OwnerInfoVO;
import com.msl.common.convertor.field.Converted; import com.msl.common.convertor.field.Converted;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -17,4 +18,10 @@ public class OwnerAccountAllVO { ...@@ -17,4 +18,10 @@ public class OwnerAccountAllVO {
@ApiModelProperty("0:没有交易密码 1:有交易密码") @ApiModelProperty("0:没有交易密码 1:有交易密码")
private Integer ownerAccountPassword; private Integer ownerAccountPassword;
@ApiModelProperty("借款账户信息")
private OwnerLoanAccountVO loanAccountVO;
@ApiModelProperty("货主信息")
private OwnerInfoVO ownerInfoVO;
} }
...@@ -51,11 +51,6 @@ ...@@ -51,11 +51,6 @@
<artifactId>message-api</artifactId> <artifactId>message-api</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.clx.cy</groupId>
<artifactId>open-sdk</artifactId>
</dependency>
<dependency> <dependency>
<groupId>com.msl</groupId> <groupId>com.msl</groupId>
<artifactId>user-sdk</artifactId> <artifactId>user-sdk</artifactId>
...@@ -76,6 +71,12 @@ ...@@ -76,6 +71,12 @@
<artifactId>trace-spring-boot-starter-web</artifactId> <artifactId>trace-spring-boot-starter-web</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.msl</groupId>
<artifactId>trace-spring-boot-starter-openfeign</artifactId>
</dependency>
<!-- <dependency>--> <!-- <dependency>-->
<!-- <groupId>com.msl</groupId>--> <!-- <groupId>com.msl</groupId>-->
<!-- <artifactId>message-api</artifactId>--> <!-- <artifactId>message-api</artifactId>-->
...@@ -260,7 +261,10 @@ ...@@ -260,7 +261,10 @@
<artifactId>openBasicSDK</artifactId> <artifactId>openBasicSDK</artifactId>
<version>1.7.0</version> <version>1.7.0</version>
</dependency> </dependency>
<dependency>
<groupId>com.clx.cy</groupId>
<artifactId>open-sdk</artifactId>
</dependency>
</dependencies> </dependencies>
......
...@@ -11,6 +11,7 @@ import com.clx.order.vo.feign.FeignOrderInfoVO; ...@@ -11,6 +11,7 @@ import com.clx.order.vo.feign.FeignOrderInfoVO;
import com.clx.order.vo.feign.FeignOrderVO; import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dto.OrderCancelDTO;
import com.clx.performance.dto.OrderCancelResult; import com.clx.performance.dto.OrderCancelResult;
import com.clx.performance.enums.*; import com.clx.performance.enums.*;
import com.clx.performance.extranal.user.DriverService; import com.clx.performance.extranal.user.DriverService;
...@@ -89,7 +90,7 @@ public class OrderCancelComponent implements InitializingBean { ...@@ -89,7 +90,7 @@ public class OrderCancelComponent implements InitializingBean {
* @param param * @param param
* @return * @return
*/ */
public List<String> ownerProcess(OrderCancelParam param) { public OrderCancelDTO ownerProcess(OrderCancelParam param) {
String orderNo = param.getOrderNo(); String orderNo = param.getOrderNo();
Integer orderStatusCode = OrderEnum.Status.CANCELED.getCode(); Integer orderStatusCode = OrderEnum.Status.CANCELED.getCode();
...@@ -109,7 +110,8 @@ public class OrderCancelComponent implements InitializingBean { ...@@ -109,7 +110,8 @@ public class OrderCancelComponent implements InitializingBean {
orderChildPostService.orderCancel(childNo); orderChildPostService.orderCancel(childNo);
} }
} }
return childNoList; return OrderCancelDTO.builder().status(orderStatusCode)
.childNoList(childNoList).build();
} }
......
package com.clx.performance.config;
import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
@Configuration
@Getter
@Setter
public class MslAppConfig {
@Value("${msl.supervise.trade.appid}")
private String appId;
@Value("${msl.supervise.trade.url}")
private String url;
@Value("${msl.supervise.trade.secret}")
private String secret;
}
package com.clx.performance.config;
import com.clx.open.sdk.callback.OpenCallBackClient;
import com.clx.open.sdk.request.OpenRequestClient;
import lombok.Data;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Getter
@Configuration
@ConfigurationProperties(prefix = "third") // 配置 文件的前缀
@Slf4j
public class ThirdAppConfig implements InitializingBean {
// 这里的名字要和yml中的对应字段名称一致
public static Map<String, AppConfig> config = new HashMap<>();
public Map<String, OpenCallBackClient> openCallBackClientMap = new HashMap<>();
public Map<String, OpenRequestClient> openRequestClientMap = new HashMap<>();
// 注意此处的 static 关键字
public static AppConfig getConfig(String appNo) {
return config.get(appNo);
}
public void setConfig(List<AppConfig> appConfigs) {
config = appConfigs.stream().collect(Collectors.toMap(AppConfig::getAppNo, value -> value));
}
public OpenCallBackClient getOpenCallBackClient(String appNo) {
OpenCallBackClient openCallBackClient = openCallBackClientMap.get(appNo);
if (openCallBackClient == null) {
log.info("当前appNo:{}对应的client不存在", appNo);
throw new RuntimeException("当前appNo对应的client不存在");
}
return openCallBackClient;
}
public OpenRequestClient getOpenRequestClient(String appNo) {
OpenRequestClient openRequestClient = openRequestClientMap.get(appNo);
if (openRequestClient == null) {
log.info("当前appNo:{}对应的client不存在", appNo);
throw new RuntimeException("当前appNo对应的client不存在");
}
return openRequestClient;
}
@Override
public void afterPropertiesSet() throws Exception {
if (config.isEmpty()) {
log.info("third app config is empty");
return;
}
for (Map.Entry<String, AppConfig> entry : config.entrySet()) {
String key = entry.getKey();
AppConfig value = entry.getValue();
openCallBackClientMap.put(key, new OpenCallBackClient(value.getUrl(), value.getAppNo(), value.getSecret()));
openRequestClientMap.put(key, new OpenRequestClient(value.getUrl(), value.getAppNo(), value.getSecret()));
}
}
@Data
public static class AppConfig {
private String appNo;
private String secret;
private String url;
}
}
...@@ -97,4 +97,14 @@ public class RabbitKeyConstants { ...@@ -97,4 +97,14 @@ public class RabbitKeyConstants {
public static final String OWNER_REPAYMENT_QUEUE ="clx-performance.owner.repayment.queue"; public static final String OWNER_REPAYMENT_QUEUE ="clx-performance.owner.repayment.queue";
public static final String OWNER_REPAYMENT_ROUTE_KEY ="clx-performance.owner.repayment.route.key"; public static final String OWNER_REPAYMENT_ROUTE_KEY ="clx-performance.owner.repayment.route.key";
//承运违约结算单同步货主客户端 需要手动创建对列交换机
public static final String CLX_PERFORMANCE_BREAK_CONTRACT_OWNER_RECORD_QUEUE = "clx_performance.break_contract_owner_record_queue";
//承运货主计费数据同步货主客户端 需要手动创建对列交换机
public static final String CLX_PERFORMANCE_SETTLEMENT_OWNER_DETAIL_QUEUE = "clx_performance.settlement_owner_detail_queue";
//货主结算单数据同步货主客户端 需要手动创建对列交换机
public static final String CLX_PERFORMANCE_SETTLEMENT_OWNER_QUEUE = "clx_performance.settlement_owner_queue";
} }
package com.clx.performance.controller.feign; package com.clx.performance.controller.feign;
import com.clx.open.sdk.request.action.BreakContractSettlementGenerateAction;
import com.clx.performance.param.feign.OrderAdjustTonnageDownParam; import com.clx.performance.param.feign.OrderAdjustTonnageDownParam;
import com.clx.performance.param.pc.owner.OwnerConfirmBreakContractSettlementParam;
import com.clx.performance.service.breakcontract.BreakContractOwnerRecordService;
import com.clx.performance.service.breakcontract.BreakContractOwnerRuleService; import com.clx.performance.service.breakcontract.BreakContractOwnerRuleService;
import com.clx.performance.service.breakcontract.BreakContractSettlementOwnerService; import com.clx.performance.service.breakcontract.BreakContractSettlementOwnerService;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleVO;
...@@ -25,6 +28,10 @@ public class BreakContractSettlementOwnerFeignController { ...@@ -25,6 +28,10 @@ public class BreakContractSettlementOwnerFeignController {
private final BreakContractOwnerRuleService breakContractOwnerRuleService; private final BreakContractOwnerRuleService breakContractOwnerRuleService;
private final BreakContractOwnerRecordService breakContractOwnerRecordService;
@ApiOperation(value = "货主订单吨数下调自动保存违约结算单") @ApiOperation(value = "货主订单吨数下调自动保存违约结算单")
@PostMapping("/saveSettlementOwnerForTonnageDown") @PostMapping("/saveSettlementOwnerForTonnageDown")
...@@ -39,4 +46,15 @@ public class BreakContractSettlementOwnerFeignController { ...@@ -39,4 +46,15 @@ public class BreakContractSettlementOwnerFeignController {
return Result.ok(breakContractOwnerRuleService.getRuleInfo(id)); return Result.ok(breakContractOwnerRuleService.getRuleInfo(id));
} }
@ApiOperation(value = "货主客户端货主确认生成违约结算单")
@PostMapping("/updateBreakContract")
Result updateBreakContract(@RequestBody @Validated BreakContractSettlementGenerateAction param){
OwnerConfirmBreakContractSettlementParam settlementParam = new OwnerConfirmBreakContractSettlementParam();
settlementParam.setConfirmStatus(param.getConfirmStatus());
settlementParam.setId(param.getBreakContractId());
settlementParam.setRejectReason(param.getRejectReason());
breakContractOwnerRecordService.updateConfirmStatus(settlementParam);
return Result.ok();
}
} }
...@@ -2,8 +2,10 @@ package com.clx.performance.controller.feign; ...@@ -2,8 +2,10 @@ package com.clx.performance.controller.feign;
import com.clx.performance.param.pc.OrderCancelFeignParam; import com.clx.performance.param.pc.OrderCancelFeignParam;
import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.service.OrderCancelService; import com.clx.performance.service.OrderCancelService;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import com.msl.user.utils.TokenUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
...@@ -31,4 +33,5 @@ public class OrderCancelFeignController { ...@@ -31,4 +33,5 @@ public class OrderCancelFeignController {
orderCancelService.ownerConfirmCancelOrderPre(param.getOrderNo()); orderCancelService.ownerConfirmCancelOrderPre(param.getOrderNo());
return Result.ok(); return Result.ok();
} }
} }
...@@ -48,7 +48,7 @@ public class OwnerAccountFeignController { ...@@ -48,7 +48,7 @@ public class OwnerAccountFeignController {
return Result.ok(ownerAccountService.accountInfo(userNo)); return Result.ok(ownerAccountService.accountInfo(userNo));
} }
@ApiOperation(value = "查询用户预付运费和保证金账户", notes = "<br>By:胡宇帆") @ApiOperation(value = "查询用户借款账户", notes = "<br>By:胡宇帆")
@GetMapping("/loanAccount") @GetMapping("/loanAccount")
public Result<OwnerLoanAccountVO> loanAccount(@RequestParam Long userNo) { public Result<OwnerLoanAccountVO> loanAccount(@RequestParam Long userNo) {
return Result.ok(ownerAccountService.loanAccount(userNo)); return Result.ok(ownerAccountService.loanAccount(userNo));
......
package com.clx.performance.controller.feign;
import com.clx.open.sdk.request.action.GetOrderBreakContractOwnerRuleFileAction;
import com.clx.open.sdk.request.action.GetOwnerAccountInfoAction;
import com.clx.open.sdk.request.dto.OwnerCancelResidueWeightDTO;
import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.service.OrderCancelService;
import com.clx.performance.service.OrderGoodsService;
import com.clx.performance.service.OwnerAccountService;
import com.clx.performance.service.breakcontract.BreakContractOwnerRuleService;
import com.clx.performance.vo.pc.OwnerAccountAllVO;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleFileVO;
import com.msl.common.result.Result;
import com.msl.user.utils.TokenUtil;
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.*;
import java.math.BigDecimal;
@Slf4j
@RestController
@RequestMapping("/feign/sdk")
@Validated
@Api(tags = "对外sdk Feign")
@AllArgsConstructor
public class PerformanceSdkFeignController {
private final OrderCancelService orderCancelService;
private final OrderGoodsService orderGoodsService;
private final OwnerAccountService ownerAccountService;
private final BreakContractOwnerRuleService breakContractOwnerRuleService;
@ApiOperation(value = "货主端取消订单", notes = "<br>By:胡宇帆")
@PostMapping("/ownCancelOrderPre")
public Result<Integer> ownCancelOrderPre(@RequestBody OrderCancelParam param) {
log.info("取消订单参数:{}", param);
return Result.ok(orderCancelService.ownerCancelOrderPre(param));
}
@ApiOperation(value = "获取当前订单可取消吨数", notes = "<br>By:胡宇帆")
@GetMapping("/orderCancelResidueWeight")
public Result<OwnerCancelResidueWeightDTO> orderCancelResidueWeight(@RequestParam(value = "orderNo") String orderNo, @RequestParam(value = "optionType") String optionType) {
log.info("当前订单可取消吨数参数:{}", TokenUtil.getLoginUserInfo());
OwnerCancelResidueWeightDTO dto = new OwnerCancelResidueWeightDTO();
dto.setWeight(orderGoodsService.orderCancelResidueWeight(orderNo, optionType).toString());
return Result.ok(dto);
}
@ApiOperation(value = "获取当前用户所有账户信息", notes = "<br>By:胡宇帆")
@GetMapping("/accountAllInfo")
public Result<OwnerAccountAllVO> accountAllInfo(@RequestParam Long userNo) {
return Result.ok(ownerAccountService.accountAllInfo(userNo));
}
@ApiOperation(value = "查询规则文档信息", notes = "<br>By:艾庆国")
@PostMapping("/getOwnerRuleFile")
Result<BreakContractOwnerRuleFileVO> getOwnerRuleFile(@RequestBody GetOrderBreakContractOwnerRuleFileAction action){
return Result.ok(breakContractOwnerRuleService.getRuleFile(action.getId()));
}
}
...@@ -27,14 +27,14 @@ public class TempBankController { ...@@ -27,14 +27,14 @@ public class TempBankController {
private NbBankService bankService; private NbBankService bankService;
@ApiOperation(value = "转账支付", notes = "<br>By:艾庆国") @ApiOperation(value = "转账支付", notes = "<br>By:艾庆国")
@RequestMapping(value = "/orderTransferPay", method = RequestMethod.POST) // @RequestMapping(value = "/orderTransferPay", method = RequestMethod.POST)
public Result<NbBankOrderPayResultVO> directBankTransferOrder() { public Result<NbBankOrderPayResultVO> directBankTransferOrder() {
return Result.ok(bankService.orderTransferPay(1)); return Result.ok(bankService.orderTransferPay(1));
} }
@ApiOperation(value = "订单支付", notes = "<br>By:艾庆国") @ApiOperation(value = "订单支付", notes = "<br>By:艾庆国")
@RequestMapping(value = "/orderDirectPay", method = RequestMethod.POST) // @RequestMapping(value = "/orderDirectPay", method = RequestMethod.POST)
public Result<NbBankOrderPayResultVO> orderDirectPay() { public Result<NbBankOrderPayResultVO> orderDirectPay() {
// return Result.ok(bankService.orderDirectPay(null,2,"313332082914","86041110000076809", "黑玫瑰")); // return Result.ok(bankService.orderDirectPay(null,2,"313332082914","86041110000076809", "黑玫瑰"));
...@@ -43,7 +43,7 @@ public class TempBankController { ...@@ -43,7 +43,7 @@ public class TempBankController {
} }
@ApiOperation(value = "订单支付1", notes = "<br>By:艾庆国") @ApiOperation(value = "订单支付1", notes = "<br>By:艾庆国")
@RequestMapping(value = "/orderDirectPay1", method = RequestMethod.POST) // @RequestMapping(value = "/orderDirectPay1", method = RequestMethod.POST)
public Result<NbBankOrderPayResultVO> orderDirectPay1(String payAcctNo, String payAcctNm) { public Result<NbBankOrderPayResultVO> orderDirectPay1(String payAcctNo, String payAcctNm) {
// return Result.ok(bankService.orderDirectPay(null,2,"313332082914","86041110000076809", "黑玫瑰")); // return Result.ok(bankService.orderDirectPay(null,2,"313332082914","86041110000076809", "黑玫瑰"));
...@@ -52,28 +52,28 @@ public class TempBankController { ...@@ -52,28 +52,28 @@ public class TempBankController {
} }
@ApiOperation(value = "查询", notes = "<br>By:艾庆国") @ApiOperation(value = "查询", notes = "<br>By:艾庆国")
@RequestMapping(value = "/getResult", method = RequestMethod.POST) // @RequestMapping(value = "/getResult", method = RequestMethod.POST)
public Result<NbBankOrderResultVO> getResult(String merSeqNo) { public Result<NbBankOrderResultVO> getResult(String merSeqNo) {
return Result.ok(bankService.getResult(merSeqNo)); return Result.ok(bankService.getResult(merSeqNo));
} }
@ApiOperation(value = "调账", notes = "<br>By:艾庆国") @ApiOperation(value = "调账", notes = "<br>By:艾庆国")
@RequestMapping(value = "/adjust", method = RequestMethod.POST) // @RequestMapping(value = "/adjust", method = RequestMethod.POST)
public Result<NbBankOrderResultVO> adjust(String orgMerSeqNo, Integer amount) { public Result<NbBankOrderResultVO> adjust(String orgMerSeqNo, Integer amount) {
return Result.ok(bankService.adjust(orgMerSeqNo,amount)); return Result.ok(bankService.adjust(orgMerSeqNo,amount));
} }
@ApiOperation(value = "退款", notes = "<br>By:艾庆国") @ApiOperation(value = "退款", notes = "<br>By:艾庆国")
@RequestMapping(value = "/refund", method = RequestMethod.POST) // @RequestMapping(value = "/refund", method = RequestMethod.POST)
public Result<NbBankOrderResultVO> refund(Integer type, String orgMerSeqNo, Integer amount, String orgTransSeqNo) { public Result<NbBankOrderResultVO> refund(Integer type, String orgMerSeqNo, Integer amount, String orgTransSeqNo) {
return Result.ok(bankService.refund(type,orgMerSeqNo,amount,orgTransSeqNo)); return Result.ok(bankService.refund(type,orgMerSeqNo,amount,orgTransSeqNo));
} }
@ApiOperation(value = "回调", notes = "<br>By:艾庆国") @ApiOperation(value = "回调", notes = "<br>By:艾庆国")
@RequestMapping(value = "/notify", method = RequestMethod.POST) // @RequestMapping(value = "/notify", method = RequestMethod.POST)
public Result notify(NbBankOrderResultVO param) { public Result notify(NbBankOrderResultVO param) {
bankService.orderPayCallback(param.getMerSeqNo(), param.getTransSeqNo(), bankService.orderPayCallback(param.getMerSeqNo(), param.getTransSeqNo(),
param.getAmount(), param.getAmount(), param.getStatus(), param.getSignNo()); param.getAmount(), param.getAmount(), param.getStatus(), param.getSignNo());
......
package com.clx.performance.controller.temp; package com.clx.performance.controller.temp;
import com.clx.performance.component.ThirdComponent; import com.clx.open.sdk.callback.message.OrderChildSyncMessage;
import com.clx.performance.extranal.transport.TransportService; import com.clx.performance.extranal.transport.TransportService;
import com.clx.performance.feign.TransportFeignService; import com.clx.performance.feign.TransportFeignService;
import com.clx.performance.param.feign.transport.OrderChildPaySyncParam; import com.clx.performance.listener.OrderChildDtsListener;
import com.clx.performance.param.feign.transport.OwnerSettlementSyncParam;
import com.clx.performance.param.feign.transport.ThirdOrderChildRiskStatusParam;
import com.clx.performance.service.TempService; import com.clx.performance.service.TempService;
import com.clx.performance.service.child.FeignOrderChildService; 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 com.msl.common.result.Result;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.validation.constraints.NotBlank; import org.springframework.web.bind.annotation.RestController;
/** /**
...@@ -39,12 +35,17 @@ public class TempController { ...@@ -39,12 +35,17 @@ public class TempController {
@Autowired @Autowired
private TransportFeignService transportFeignService; private TransportFeignService transportFeignService;
@Autowired
private OrderChildDtsListener orderChildDtsListener;
@ApiOperation(value = "test", notes = "<br>By:艾庆国") @ApiOperation(value = "test", notes = "<br>By:艾庆国")
@RequestMapping(value = "/test", method = RequestMethod.GET) @RequestMapping(value = "/test", method = RequestMethod.GET)
public Result test() { public Result test() {
OrderChildSyncMessage message = new OrderChildSyncMessage();
message.setId(1);
orderChildDtsListener.thirdpartySync(message);
return Result.ok(); return Result.ok();
} }
...@@ -67,16 +68,16 @@ public class TempController { ...@@ -67,16 +68,16 @@ public class TempController {
// return Result.ok(); // return Result.ok();
// } // }
@ApiOperation(value = "测试支付划账 (临时接口)", notes = "<br>By:胡宁宁") // @ApiOperation(value = "测试支付划账 (临时接口)", notes = "<br>By:胡宁宁")
@RequestMapping(value = "/paymentTest", method = RequestMethod.GET) // @RequestMapping(value = "/paymentTest", method = RequestMethod.GET)
public Result<Void> paymentTest(@RequestParam("fromUser") @NotBlank(message = "扣款方") String fromUser, // public Result<Void> paymentTest(@RequestParam("fromUser") @NotBlank(message = "扣款方") String fromUser,
@RequestParam("toUser") @NotBlank(message = "收款方") String toUser, // @RequestParam("toUser") @NotBlank(message = "收款方") String toUser,
@RequestParam("figure") @NotBlank(message = "金额") String figure) { // @RequestParam("figure") @NotBlank(message = "金额") String figure) {
//
tempService.paymentTest(fromUser,toUser,figure); // tempService.paymentTest(fromUser,toUser,figure);
//
return Result.ok(); // return Result.ok();
} // }
// @ApiOperation(value = "承运同步网络货运 (临时接口)", notes = "<br>By:艾庆国") // @ApiOperation(value = "承运同步网络货运 (临时接口)", notes = "<br>By:艾庆国")
......
...@@ -39,6 +39,7 @@ public class BreakContractOwnerRecordDaoImpl extends BaseDaoImpl<BreakContractOw ...@@ -39,6 +39,7 @@ public class BreakContractOwnerRecordDaoImpl extends BaseDaoImpl<BreakContractOw
LambdaQueryWrapper<BreakContractOwnerRecord> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BreakContractOwnerRecord> query = new LambdaQueryWrapper<>();
query.eq(StringUtils.isNotBlank(param.getOrderNo()),BreakContractOwnerRecord :: getOrderNo,param.getOrderNo()); query.eq(StringUtils.isNotBlank(param.getOrderNo()),BreakContractOwnerRecord :: getOrderNo,param.getOrderNo());
query.eq(Objects.nonNull(param.getOwnerUserNo()),BreakContractOwnerRecord :: getOwnerUserNo,param.getOwnerUserNo()); query.eq(Objects.nonNull(param.getOwnerUserNo()),BreakContractOwnerRecord :: getOwnerUserNo,param.getOwnerUserNo());
query.notIn(Objects.nonNull(param.getOwnerUserNo()),BreakContractOwnerRecord :: getOrderSource,3);
query.eq(Objects.nonNull(param.getBreakContractPartyType()),BreakContractOwnerRecord :: getBreakContractPartyType,param.getBreakContractPartyType()); query.eq(Objects.nonNull(param.getBreakContractPartyType()),BreakContractOwnerRecord :: getBreakContractPartyType,param.getBreakContractPartyType());
query.eq(Objects.nonNull(param.getPayStatus()),BreakContractOwnerRecord :: getPayStatus,param.getPayStatus()); query.eq(Objects.nonNull(param.getPayStatus()),BreakContractOwnerRecord :: getPayStatus,param.getPayStatus());
if(Objects.equals(param.getBreakContractPartyType(), BreakContractSettlementDriverEnum.BreakContractPartyType.PLATFORM.getCode())){ if(Objects.equals(param.getBreakContractPartyType(), BreakContractSettlementDriverEnum.BreakContractPartyType.PLATFORM.getCode())){
......
package com.clx.performance.dto;
import lombok.Builder;
import lombok.Data;
import java.util.List;
@Data
@Builder
public class OrderCancelDTO {
private Integer status;
private List<String> childNoList;
}
package com.clx.performance.listener; package com.clx.performance.listener;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.clx.open.sdk.callback.OpenCallBackClient; import com.clx.open.sdk.callback.OpenCallBackClient;
import com.clx.open.sdk.callback.message.OrderChildLastOneMessage;
import com.clx.open.sdk.callback.message.OrderChildMessage; import com.clx.open.sdk.callback.message.OrderChildMessage;
import com.clx.open.sdk.callback.message.OrderChildSyncMessage;
import com.clx.open.sdk.enums.ResultStatusEnum; import com.clx.open.sdk.enums.ResultStatusEnum;
import com.clx.order.enums.OrderEnum; import com.clx.order.enums.OrderEnum;
import com.clx.order.enums.SyncPlatformEnum; import com.clx.order.enums.SyncPlatformEnum;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignOrderVO; import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.config.MslAppConfig; import com.clx.performance.config.ThirdAppConfig;
import com.clx.performance.constant.RabbitKeyConstants; import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dto.dts.DataTransportDTO; import com.clx.performance.dto.dts.DataTransportDTO;
import com.clx.performance.enums.DtsOperationTypeEnum; import com.clx.performance.enums.DtsOperationTypeEnum;
import com.clx.performance.enums.OrderChildEnum; import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.event.OrderChildCancelEvent; import com.clx.performance.event.OrderChildCancelEvent;
import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.service.LastTruckService; import com.clx.performance.service.LastTruckService;
import com.clx.performance.struct.OrderChildStruct;
import com.clx.user.vo.feign.FeignDriverTruckModelVo; import com.clx.user.vo.feign.FeignDriverTruckModelVo;
import com.msl.common.enums.ResultCodeEnum; import com.msl.common.enums.ResultCodeEnum;
import com.msl.common.result.Result; import com.msl.common.result.Result;
...@@ -27,7 +29,6 @@ import lombok.extern.slf4j.Slf4j; ...@@ -27,7 +29,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.amqp.core.Message; import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -38,11 +39,12 @@ import java.util.Optional; ...@@ -38,11 +39,12 @@ import java.util.Optional;
@Component @Component
@AllArgsConstructor @AllArgsConstructor
public class OrderChildDtsListener { public class OrderChildDtsListener {
private final MslAppConfig mslAppConfig;
private final OrderFeign orderFeign; private final OrderFeign orderFeign;
private final LastTruckService lastTruckService; private final LastTruckService lastTruckService;
private final DriverService driverService; private final DriverService driverService;
private final ApplicationEventPublisher applicationEventPublisher; private final ApplicationEventPublisher applicationEventPublisher;
private final ThirdAppConfig thirdAppConfig;
@RabbitListener(queues = RabbitKeyConstants.CLX_PERFORMANCE_ORDER_CHILD_QUEUE) @RabbitListener(queues = RabbitKeyConstants.CLX_PERFORMANCE_ORDER_CHILD_QUEUE)
...@@ -56,6 +58,8 @@ public class OrderChildDtsListener { ...@@ -56,6 +58,8 @@ public class OrderChildDtsListener {
OrderChildMessage before = DtsMapConvertUtil.convert(dataTransportDTO.getBeforeMap(), new OrderChildMessage()); OrderChildMessage before = DtsMapConvertUtil.convert(dataTransportDTO.getBeforeMap(), new OrderChildMessage());
OrderChildMessage after = DtsMapConvertUtil.convert(dataTransportDTO.getAfterMap(), new OrderChildMessage()); OrderChildMessage after = DtsMapConvertUtil.convert(dataTransportDTO.getAfterMap(), new OrderChildMessage());
thirdpartySync(DtsMapConvertUtil.convert(dataTransportDTO.getAfterMap(), new OrderChildSyncMessage()));
if(Objects.equals(DtsOperationTypeEnum.INSERT.getCode(),dataTransportDTO.getOperationType().getCode())){ if(Objects.equals(DtsOperationTypeEnum.INSERT.getCode(),dataTransportDTO.getOperationType().getCode())){
//同步after数据 //同步after数据
log.info("新增:{}",after); log.info("新增:{}",after);
...@@ -93,7 +97,7 @@ public class OrderChildDtsListener { ...@@ -93,7 +97,7 @@ public class OrderChildDtsListener {
return; return;
} }
//同步交易平台的运单 //同步交易平台的运单
if(Objects.equals(orderInfoFeign.getOrderSource(), SyncPlatformEnum.TRADE_PLATFORM.getCode())){ if(Objects.equals(orderInfoFeign.getOrderSource(), SyncPlatformEnum.Source.TRADE_PLATFORM.getCode())){
String truckModel = after.getTruckModel(); String truckModel = after.getTruckModel();
if(StringUtils.isNotBlank(truckModel)){ if(StringUtils.isNotBlank(truckModel)){
...@@ -109,12 +113,37 @@ public class OrderChildDtsListener { ...@@ -109,12 +113,37 @@ public class OrderChildDtsListener {
after.setStatus(com.clx.open.sdk.enums.OrderChildEnum.Status.COMMON_CANCEL.getCode()); after.setStatus(com.clx.open.sdk.enums.OrderChildEnum.Status.COMMON_CANCEL.getCode());
} }
after.setLastFlag(ResultStatusEnum.NO.getCode()); after.setLastFlag(ResultStatusEnum.NO.getCode());
OpenCallBackClient client = new OpenCallBackClient(mslAppConfig.getUrl(),mslAppConfig.getAppId(),mslAppConfig.getSecret()); String data = JSON.toJSONString(after);
Result<?> result = client.encryptPost(JSON.toJSONString(after),after.topic()); OpenCallBackClient openCallBackClient = thirdAppConfig.getOpenCallBackClient(orderInfoFeign.getOrderSource().toString());
Result<?> result = openCallBackClient.encryptPost(data,after.topic());
log.info("运单信息同步,运单编号:{},响应结果:{}",after.getChildNo(),JSON.toJSONString(result)); log.info("运单信息同步,运单编号:{},响应结果:{}",after.getChildNo(),JSON.toJSONString(result));
syncLastTruck(orderInfoFeign,after); syncLastTruck(orderInfoFeign,after);
return;
}
if (Objects.equals(orderInfoFeign.getOrderSource(), SyncPlatformEnum.Source.NEW_OWNER_CLIENT.getCode())) {
if(Objects.equals(com.clx.open.sdk.enums.OrderChildEnum.Status.COMMON_CANCEL.getCode(),after.getStatus()) ||
(after.getStatus() >= OrderChildEnum.Status.ARRIVE_RECEIVE.getCode() && after.getStatus() <= OrderChildEnum.Status.COMPLETE.getCode())){
OrderChild child;
if(Objects.equals(orderInfoFeign.getOrderStatus(), OrderEnum.Status.COMPLETED.getCode()) ||
Objects.equals(orderInfoFeign.getOrderStatus(), OrderEnum.Status.SUCCESS.getCode())) { //订单变成已完成 || 已完结
OrderEnum.Status byCode = OrderEnum.Status.getByCode(orderInfoFeign.getOrderStatus());
log.info("订单号:{},运单号:{},订单状态:{},开始查询最后一车运单===========" ,orderInfoFeign.getOrderNo(),after.getChildNo(),
Objects.nonNull(byCode)?byCode.getName():"未知状态");
child = lastTruckService.getOrderCompleteLastTruck(after.getOrderNo());
}else{ // 订单除 已完成 || 已完结 外的其他状态
child = lastTruckService.getLastTruckChild(after.getOrderNo());
}
if (Objects.nonNull(child)) {
log.info("开始同步新货主客户端最后一车的运单,运单编号:{}", child.getChildNo());
OpenCallBackClient openCallBackClient = thirdAppConfig.getOpenCallBackClient(SyncPlatformEnum.Source.NEW_OWNER_CLIENT.getCode().toString());
OrderChildLastOneMessage message = new OrderChildLastOneMessage();
message.setChildNo(child.getChildNo());
Result<?> result = openCallBackClient.encryptPost(JSONUtil.parse(message).toString(), message.topic());
log.info("结束同步新货主客户端最后一车的运单,运单编号:{},响应结果:{}", child.getChildNo(), JSONUtil.parse(result));
}
}
} }
} }
...@@ -135,10 +164,39 @@ public class OrderChildDtsListener { ...@@ -135,10 +164,39 @@ public class OrderChildDtsListener {
if(Objects.nonNull(child)){ if(Objects.nonNull(child)){
lastTruckService.syncLastTruckChild(child); lastTruckService.syncLastTruckChild(child);
} }
} }
} }
/**
* 第三方同步
*/
public void thirdpartySync(OrderChildSyncMessage message){
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(message.getOrderNo());
if (orderInfoFeign == null) {
return;
}
// 同步新货主客户端的运单
if(!Objects.equals(orderInfoFeign.getOrderSource(), SyncPlatformEnum.Source.NEW_OWNER_CLIENT.getCode())){
return;
}
try{
OpenCallBackClient openCallBackClient = thirdAppConfig.getOpenCallBackClient(SyncPlatformEnum.Source.NEW_OWNER_CLIENT.getCode().toString());
log.info("运单同步:{}", message.getId());
Result<?> result = openCallBackClient.encryptPost(JSON.toJSONString(message), message.topic());
if (result.succeed()) {
log.info("运单同步成功:{}", message.getId());
}else{
log.info("运单同步失败:{}", message.getId());
}
}catch (Exception e){
}
}
} }
package com.clx.performance.listener.breakcontract;
import com.alibaba.fastjson.JSON;
import com.clx.open.sdk.callback.OpenCallBackClient;
import com.clx.open.sdk.callback.message.BreakContractOwnerRecordMessage;
import com.clx.order.enums.SyncPlatformEnum;
import com.clx.performance.config.ThirdAppConfig;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dto.dts.DataTransportDTO;
import com.clx.performance.enums.DtsOperationTypeEnum;
import com.msl.common.result.Result;
import com.msl.common.utils.DtsMapConvertUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
import java.util.Objects;
@Slf4j
@Component
@AllArgsConstructor
public class BreakContractOwnerRecordDtsListener {
private final ThirdAppConfig thirdAppConfig;
@RabbitListener(queues = RabbitKeyConstants.CLX_PERFORMANCE_BREAK_CONTRACT_OWNER_RECORD_QUEUE)
public void onMessage(Message message) {
try {
String msg = new String(message.getBody());
log.info("DTS消息同步开始, database:clx_performance.break_contract_owner_record, msg:{}", msg);
DataTransportDTO dataTransportDTO = JSON.parseObject(msg, DataTransportDTO.class);
log.info("DTS消息同步开始, database:clx_performance.break_contract_owner_record, 实体:{}", dataTransportDTO);
log.info("操作类型:{}",dataTransportDTO.getOperationType().getCode());
BreakContractOwnerRecordMessage before = DtsMapConvertUtil.convert(dataTransportDTO.getBeforeMap(), new BreakContractOwnerRecordMessage());
BreakContractOwnerRecordMessage after = DtsMapConvertUtil.convert(dataTransportDTO.getAfterMap(), new BreakContractOwnerRecordMessage());
if(Objects.equals(DtsOperationTypeEnum.DELETE.getCode(),dataTransportDTO.getOperationType().getCode())){
//数据删除
log.info("删除:{}",before);
return;
}
//违约结算单数据同步
thirdpartySync(after);
} catch (Exception e) {
log.info("DTS消息同步失败, database:clx_performance.break_contract_owner_record, error:{}", e.getMessage());
}
}
/**
* 第三方同步
*/
public void thirdpartySync(BreakContractOwnerRecordMessage message){
// 同步货主客户端的违约结算单
if(!Objects.equals(message.getOrderSource(), SyncPlatformEnum.Source.NEW_OWNER_CLIENT.getCode())){
return;
}
try{
OpenCallBackClient openCallBackClient = thirdAppConfig.getOpenCallBackClient(SyncPlatformEnum.Source.NEW_OWNER_CLIENT.getCode().toString());
log.info("违约结算单同步:{}", message.getId());
Result<?> result = openCallBackClient.encryptPost(JSON.toJSONString(message), message.topic());
if (result.succeed()) {
log.info("违约结算单同步成功:{}", message.getId());
}else{
log.info("违约结算单同步失败:{}", message.getId());
}
}catch (Exception e){
}
}
}
package com.clx.performance.listener.settle;
import com.alibaba.fastjson.JSON;
import com.clx.open.sdk.callback.OpenCallBackClient;
import com.clx.open.sdk.callback.message.SettlementOwnerDetailMessage;
import com.clx.order.enums.SyncPlatformEnum;
import com.clx.performance.config.ThirdAppConfig;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dto.dts.DataTransportDTO;
import com.clx.performance.enums.DtsOperationTypeEnum;
import com.msl.common.result.Result;
import com.msl.common.utils.DtsMapConvertUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
import java.util.Objects;
@Slf4j
@Component
@AllArgsConstructor
public class SettlementOwnerDetailDtsListener {
private final ThirdAppConfig thirdAppConfig;
@RabbitListener(queues = RabbitKeyConstants.CLX_PERFORMANCE_SETTLEMENT_OWNER_DETAIL_QUEUE)
public void onMessage(Message message) {
try {
String msg = new String(message.getBody());
log.info("DTS消息同步开始, database:clx_performance.settlement_owner_detail, msg:{}", msg);
DataTransportDTO dataTransportDTO = JSON.parseObject(msg, DataTransportDTO.class);
log.info("DTS消息同步开始, database:clx_performance.settlement_owner_detail, 实体:{}", dataTransportDTO);
log.info("操作类型:{}",dataTransportDTO.getOperationType().getCode());
SettlementOwnerDetailMessage before = DtsMapConvertUtil.convert(dataTransportDTO.getBeforeMap(), new SettlementOwnerDetailMessage());
SettlementOwnerDetailMessage after = DtsMapConvertUtil.convert(dataTransportDTO.getAfterMap(), new SettlementOwnerDetailMessage());
if(Objects.equals(DtsOperationTypeEnum.DELETE.getCode(),dataTransportDTO.getOperationType().getCode())){
//数据删除
log.info("删除:{}",before);
return;
}
//违约结算单数据同步
thirdpartySync(after);
} catch (Exception e) {
log.info("DTS消息同步失败, database:clx_performance.settlement_owner_detail, error:{}", e.getMessage());
}
}
/**
* 第三方同步
*/
public void thirdpartySync(SettlementOwnerDetailMessage message){
try{
OpenCallBackClient openCallBackClient = thirdAppConfig.getOpenCallBackClient(SyncPlatformEnum.Source.NEW_OWNER_CLIENT.getCode().toString());
log.info("货主运单计费同步:{}", message.getId());
Result<?> result = openCallBackClient.encryptPost(JSON.toJSONString(message), message.topic());
if (result.succeed()) {
log.info("货主运单计费同步成功:{}", message.getId());
}else{
log.info("货主运单计费同步失败:{}", message.getId());
}
}catch (Exception e){
}
}
}
package com.clx.performance.listener.settle;
import com.alibaba.fastjson.JSON;
import com.clx.open.sdk.callback.OpenCallBackClient;
import com.clx.open.sdk.callback.message.SettlementOwnerBillMessage;
import com.clx.order.enums.SyncPlatformEnum;
import com.clx.performance.config.ThirdAppConfig;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.dto.dts.DataTransportDTO;
import com.clx.performance.enums.DtsOperationTypeEnum;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.msl.common.result.Result;
import com.msl.common.utils.DtsMapConvertUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j
@Component
@AllArgsConstructor
public class SettlementOwnerDtsListener {
private final ThirdAppConfig thirdAppConfig;
private final SettlementOwnerDetailDao settlementOwnerDetailDao;
@RabbitListener(queues = RabbitKeyConstants.CLX_PERFORMANCE_SETTLEMENT_OWNER_QUEUE)
public void onMessage(Message message) {
try {
String msg = new String(message.getBody());
log.info("DTS消息同步开始, database:clx_performance.settlement_owner, msg:{}", msg);
DataTransportDTO dataTransportDTO = JSON.parseObject(msg, DataTransportDTO.class);
log.info("DTS消息同步开始, database:clx_performance.settlement_owner, 实体:{}", dataTransportDTO);
log.info("操作类型:{}",dataTransportDTO.getOperationType().getCode());
SettlementOwnerBillMessage before = DtsMapConvertUtil.convert(dataTransportDTO.getBeforeMap(), new SettlementOwnerBillMessage());
SettlementOwnerBillMessage after = DtsMapConvertUtil.convert(dataTransportDTO.getAfterMap(), new SettlementOwnerBillMessage());
List<SettlementOwnerDetail> settlementOwnerDetails = settlementOwnerDetailDao.getBySettlementNo(after.getSettlementNo());
after.setChildNos(settlementOwnerDetails.stream().map(SettlementOwnerDetail::getChildNo).collect(Collectors.toList()));
if(Objects.equals(DtsOperationTypeEnum.DELETE.getCode(),dataTransportDTO.getOperationType().getCode())){
//数据删除
log.info("删除:{}",before);
return;
}
//违约结算单数据同步
thirdpartySync(after);
} catch (Exception e) {
log.info("DTS消息同步失败, database:clx_performance.settlement_owner_detail, error:{}", e.getMessage());
}
}
/**
* 第三方同步
*/
public void thirdpartySync(SettlementOwnerBillMessage message){
try{
OpenCallBackClient openCallBackClient = thirdAppConfig.getOpenCallBackClient(SyncPlatformEnum.Source.NEW_OWNER_CLIENT.getCode().toString());
log.info("货主结算单同步:{}", message.getId());
Result<?> result = openCallBackClient.encryptPost(JSON.toJSONString(message), message.topic());
if (result.succeed()) {
log.info("货主结算单同步成功:{}", message.getId());
}else{
log.info("货主结算单同步失败:{}", message.getId());
}
}catch (Exception e){
}
}
}
...@@ -27,6 +27,10 @@ public class BreakContractOwnerRecord implements HasKey<Integer> { ...@@ -27,6 +27,10 @@ public class BreakContractOwnerRecord implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Integer id; private Integer id;
@TableField("order_source")
@ApiModelProperty(value = "订单来源 1:交易平台 2:货主端 3:货主客户端")
private Integer orderSource;
@TableField("trigger_type") @TableField("trigger_type")
@ApiModelProperty("触发类型:1系统触发 2手动触发") @ApiModelProperty("触发类型:1系统触发 2手动触发")
private Integer triggerType; private Integer triggerType;
...@@ -51,6 +55,10 @@ public class BreakContractOwnerRecord implements HasKey<Integer> { ...@@ -51,6 +55,10 @@ public class BreakContractOwnerRecord implements HasKey<Integer> {
@ApiModelProperty("货主名称") @ApiModelProperty("货主名称")
private String ownerName; private String ownerName;
@TableField("owner_company_no")
@ApiModelProperty("货主用户编号")
private Long ownerCompanyNo;
@TableField("figure") @TableField("figure")
@ApiModelProperty("违约金(分)") @ApiModelProperty("违约金(分)")
private BigDecimal figure; private BigDecimal figure;
......
...@@ -22,7 +22,7 @@ public interface OrderCancelService { ...@@ -22,7 +22,7 @@ public interface OrderCancelService {
* 货主取消订单前置(只修改订单状态) * 货主取消订单前置(只修改订单状态)
* @param param * @param param
*/ */
void ownerCancelOrderPre(OrderCancelParam param); Integer ownerCancelOrderPre(OrderCancelParam param);
/** /**
* 平台取消订单前置(只修改订单状态) * 平台取消订单前置(只修改订单状态)
......
...@@ -103,5 +103,7 @@ public interface OwnerAccountService { ...@@ -103,5 +103,7 @@ public interface OwnerAccountService {
OwnerLoanAccountVO loanAccount(Long userNo); OwnerLoanAccountVO loanAccount(Long userNo);
OwnerAccountAllVO accountAllInfo(Long userNo);
OwnerAccountArrearsVO accountArrearsInfo(Long userNo, BigDecimal prepaidArrearsOrder, BigDecimal marginArrearsOrder); OwnerAccountArrearsVO accountArrearsInfo(Long userNo, BigDecimal prepaidArrearsOrder, BigDecimal marginArrearsOrder);
} }
...@@ -6,7 +6,7 @@ import com.clx.open.sdk.callback.message.OrderChildMessage; ...@@ -6,7 +6,7 @@ import com.clx.open.sdk.callback.message.OrderChildMessage;
import com.clx.open.sdk.enums.ResultStatusEnum; import com.clx.open.sdk.enums.ResultStatusEnum;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignOrderVO; import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.config.MslAppConfig; import com.clx.performance.config.ThirdAppConfig;
import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.service.LastTruckService; import com.clx.performance.service.LastTruckService;
...@@ -34,7 +34,7 @@ public class LastTruckServiceImpl implements LastTruckService { ...@@ -34,7 +34,7 @@ public class LastTruckServiceImpl implements LastTruckService {
private final OrderFeign orderFeign; private final OrderFeign orderFeign;
private final OrderChildDao orderChildDao; private final OrderChildDao orderChildDao;
private final OrderChildStruct orderChildStruct; private final OrderChildStruct orderChildStruct;
private final MslAppConfig mslAppConfig; private final ThirdAppConfig thirdAppConfig;
/** /**
* @Author kavin * @Author kavin
* @Description 判断最后一车的逻辑 * @Description 判断最后一车的逻辑
...@@ -68,13 +68,15 @@ public class LastTruckServiceImpl implements LastTruckService { ...@@ -68,13 +68,15 @@ public class LastTruckServiceImpl implements LastTruckService {
**/ **/
@Override @Override
public Result<?> syncLastTruckChild(OrderChild child) { public Result<?> syncLastTruckChild(OrderChild child) {
FeignOrderVO orderInfo = orderFeign.getOrderInfoFeign(child.getOrderNo());
OrderChildMessage message = orderChildStruct.convertMessage(child); OrderChildMessage message = orderChildStruct.convertMessage(child);
message.setLastFlag(ResultStatusEnum.YES.getCode()); message.setLastFlag(ResultStatusEnum.YES.getCode());
log.info("开始同步最后一车的运单,运单编号:{},运单信息:{}",child.getChildNo(), JSON.toJSONString(message)); String data = JSON.toJSONString(message);
OpenCallBackClient client2 = new OpenCallBackClient(mslAppConfig.getUrl(),mslAppConfig.getAppId(),mslAppConfig.getSecret()); log.info("开始同步最后一车的运单,运单编号:{},运单信息:{}",child.getChildNo(), data);
Result<?> result2 = client2.encryptPost(JSON.toJSONString(message),message.topic()); OpenCallBackClient openCallBackClient = thirdAppConfig.getOpenCallBackClient(orderInfo.getOrderSource().toString());
log.info("结束同步最后一车的运单,运单编号:{},响应结果:{}",child.getChildNo(),JSON.toJSONString(result2)); Result<?> result = openCallBackClient.encryptPost(data,message.topic());
return result2; log.info("结束同步最后一车的运单,运单编号:{},响应结果:{}",child.getChildNo(),JSON.toJSONString(result));
return result;
} }
@Override @Override
......
...@@ -18,6 +18,7 @@ import com.clx.performance.constant.RabbitKeyConstants; ...@@ -18,6 +18,7 @@ import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao; import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.dto.OrderCancelDTO;
import com.clx.performance.enums.*; import com.clx.performance.enums.*;
import com.clx.performance.extranal.user.DriverService; import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.extranal.user.OwnerInfoService; import com.clx.performance.extranal.user.OwnerInfoService;
...@@ -327,11 +328,11 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -327,11 +328,11 @@ public class OrderCancelServiceImpl implements OrderCancelService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void ownerCancelOrderPre(OrderCancelParam param) { public Integer ownerCancelOrderPre(OrderCancelParam param) {
String orderNo = param.getOrderNo(); String orderNo = param.getOrderNo();
List<String> childNoList = orderCancelComponent.ownerProcess(param); OrderCancelDTO orderCancelDTO = orderCancelComponent.ownerProcess(param);
param.setChildNoList(childNoList); param.setChildNoList(orderCancelDTO.getChildNoList());
OrderCancelReasonParam orderCancelReasonParam = new OrderCancelReasonParam(); OrderCancelReasonParam orderCancelReasonParam = new OrderCancelReasonParam();
orderCancelReasonParam.setOrderNo(orderNo); orderCancelReasonParam.setOrderNo(orderNo);
orderCancelReasonParam.setReason(param.getCancelReason()); orderCancelReasonParam.setReason(param.getCancelReason());
...@@ -357,6 +358,8 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -357,6 +358,8 @@ public class OrderCancelServiceImpl implements OrderCancelService {
rabbitTemplate.send( rabbitTemplate.send(
RabbitKeyConstants.ORDER_TRUCK_BIND_LAZY_EXCHANGE, RabbitKeyConstants.ORDER_TRUCK_BIND_LAZY_ROUTE_KEY, message2 RabbitKeyConstants.ORDER_TRUCK_BIND_LAZY_EXCHANGE, RabbitKeyConstants.ORDER_TRUCK_BIND_LAZY_ROUTE_KEY, message2
); );
return orderCancelDTO.getStatus();
} }
// /** // /**
......
...@@ -44,6 +44,11 @@ import com.clx.performance.utils.excel.ExcelField; ...@@ -44,6 +44,11 @@ import com.clx.performance.utils.excel.ExcelField;
import com.clx.performance.utils.excel.ExcelSheet; import com.clx.performance.utils.excel.ExcelSheet;
import com.clx.performance.utils.excel.ExcelUtil; import com.clx.performance.utils.excel.ExcelUtil;
import com.clx.performance.vo.pc.*; import com.clx.performance.vo.pc.*;
import com.clx.performance.vo.feign.OwnerInfoVO;
import com.clx.performance.vo.pc.OwnerAccountAllVO;
import com.clx.performance.vo.pc.OwnerAccountRunningWaterRecordVO;
import com.clx.performance.vo.pc.OwnerAccountVO;
import com.clx.performance.vo.pc.OwnerLoanAccountVO;
import com.clx.performance.vo.pc.carrier.settle.CarrierPagePlatformAccountConfigVO; import com.clx.performance.vo.pc.carrier.settle.CarrierPagePlatformAccountConfigVO;
import com.clx.user.enums.owner.FreezeSettingEnum; import com.clx.user.enums.owner.FreezeSettingEnum;
import com.clx.user.feign.OwnerFeign; import com.clx.user.feign.OwnerFeign;
...@@ -93,8 +98,6 @@ public class OwnerAccountServiceImpl implements OwnerAccountService { ...@@ -93,8 +98,6 @@ public class OwnerAccountServiceImpl implements OwnerAccountService {
private final OwnerCaseOutDao ownerCaseOutDao; private final OwnerCaseOutDao ownerCaseOutDao;
private final OwnerTransferInfoDao ownerTransferInfoDao;
private final OwnerInfoFeign ownerInfoFeign; private final OwnerInfoFeign ownerInfoFeign;
private final OwnerBindCardRecordDao ownerBindCardRecordDao; private final OwnerBindCardRecordDao ownerBindCardRecordDao;
...@@ -1254,6 +1257,20 @@ public class OwnerAccountServiceImpl implements OwnerAccountService { ...@@ -1254,6 +1257,20 @@ public class OwnerAccountServiceImpl implements OwnerAccountService {
return ownerLoanAccountStruct.convert(ownerLoanAccount); return ownerLoanAccountStruct.convert(ownerLoanAccount);
} }
@Override
public OwnerAccountAllVO accountAllInfo(Long userNo) {
OwnerAccountAllVO ownerAccountAllVO = this.accountInfo(userNo);
OwnerLoanAccountVO ownerLoanAccountVO = this.loanAccount(userNo);
ownerAccountAllVO.setLoanAccountVO(ownerLoanAccountVO);
Result<OwnerInfoFeignVO> ownerInfoResult = ownerFeign.getOwnerInfo(userNo);
if (ownerInfoResult.succeed()) {
OwnerInfoVO ownerInfoVO = ownerAccountStruct.convertVo(ownerInfoResult.getData());
ownerAccountAllVO.setOwnerInfoVO(ownerInfoVO);
}
return ownerAccountAllVO;
}
@Override @Override
public OwnerAccountArrearsVO accountArrearsInfo(Long userNo, BigDecimal prepaidArrearsOrder, BigDecimal marginArrearsOrder) { public OwnerAccountArrearsVO accountArrearsInfo(Long userNo, BigDecimal prepaidArrearsOrder, BigDecimal marginArrearsOrder) {
List<OwnerAccount> accountList = ownerAccountDao.listByField(OwnerAccount::getOwnerUserNo, userNo); List<OwnerAccount> accountList = ownerAccountDao.listByField(OwnerAccount::getOwnerUserNo, userNo);
......
...@@ -82,6 +82,8 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR ...@@ -82,6 +82,8 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR
OwnerInfoFeignVO ownerInfo = ownerInfoService.getOwnerInfo(orderInfo.getOwnerUserNo()); OwnerInfoFeignVO ownerInfo = ownerInfoService.getOwnerInfo(orderInfo.getOwnerUserNo());
BreakContractOwnerRecord record = new BreakContractOwnerRecord(); BreakContractOwnerRecord record = new BreakContractOwnerRecord();
record.setOrderSource(orderInfo.getOrderSource());
record.setOwnerCompanyNo(orderInfo.getCompanyNo());
record.setBreakNo(breakNo); record.setBreakNo(breakNo);
record.setTriggerType(BreakContractRecordEnum.TriggerType.MANUAL.getCode()); record.setTriggerType(BreakContractRecordEnum.TriggerType.MANUAL.getCode());
if (Objects.equals(param.getBreakContractPartyType(), BreakContractRecordEnum.BreakContractPartyType.OWNER.getCode())) { if (Objects.equals(param.getBreakContractPartyType(), BreakContractRecordEnum.BreakContractPartyType.OWNER.getCode())) {
...@@ -164,6 +166,8 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR ...@@ -164,6 +166,8 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR
BreakContractOwnerRecord record = new BreakContractOwnerRecord(); BreakContractOwnerRecord record = new BreakContractOwnerRecord();
record.setBreakNo(breakNo); record.setBreakNo(breakNo);
record.setOrderSource(orderInfo.getOrderSource());
record.setOwnerCompanyNo(orderInfo.getCompanyNo());
record.setTriggerType(BreakContractRecordEnum.TriggerType.SYSTEM.getCode()); record.setTriggerType(BreakContractRecordEnum.TriggerType.SYSTEM.getCode());
record.setBreakContractPartyType(BreakContractRecordEnum.BreakContractPartyType.OWNER.getCode()); record.setBreakContractPartyType(BreakContractRecordEnum.BreakContractPartyType.OWNER.getCode());
......
package com.clx.performance.struct; package com.clx.performance.struct;
import com.clx.performance.model.OwnerAccount; import com.clx.performance.model.OwnerAccount;
import com.clx.performance.vo.feign.OwnerInfoVO;
import com.clx.performance.vo.pc.OwnerAccountVO; import com.clx.performance.vo.pc.OwnerAccountVO;
import com.clx.user.vo.feign.OwnerInfoFeignVO;
import com.msl.common.utils.DateStructUtil; import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils; import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
...@@ -16,4 +18,6 @@ public interface OwnerAccountStruct { ...@@ -16,4 +18,6 @@ public interface OwnerAccountStruct {
List<OwnerAccountVO> convertList(List<OwnerAccount> orderGoods); List<OwnerAccountVO> convertList(List<OwnerAccount> orderGoods);
OwnerInfoVO convertVo(OwnerInfoFeignVO vo);
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论