|
@@ -1,5 +1,6 @@
|
|
|
package com.pj.tb_order;
|
|
package com.pj.tb_order;
|
|
|
|
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
@@ -9,6 +10,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.pj.api.client.admin.AdminInterface;
|
|
import com.pj.api.client.admin.AdminInterface;
|
|
|
import com.pj.api.client.async_server.AsyncServerInterface;
|
|
import com.pj.api.client.async_server.AsyncServerInterface;
|
|
|
import com.pj.api.client.level_one_server.LevelOneServerInterface;
|
|
import com.pj.api.client.level_one_server.LevelOneServerInterface;
|
|
|
|
|
+import com.pj.api.client.level_two_server.LevelTwoServerInterface;
|
|
|
|
|
+import com.pj.api.client.payment_server.PaymentServerInterface;
|
|
|
import com.pj.api.consts.FeignFactory;
|
|
import com.pj.api.consts.FeignFactory;
|
|
|
import com.pj.api.dto.*;
|
|
import com.pj.api.dto.*;
|
|
|
import com.pj.common.core.exception.ServiceException;
|
|
import com.pj.common.core.exception.ServiceException;
|
|
@@ -31,6 +34,8 @@ import com.pj.tb_order_people_confirm.TbOrderPeopleConfirmMapper;
|
|
|
import com.pj.tb_people.TbPeople;
|
|
import com.pj.tb_people.TbPeople;
|
|
|
import com.pj.tb_people.TbPeopleMapper;
|
|
import com.pj.tb_people.TbPeopleMapper;
|
|
|
import com.pj.tb_people.TbPeopleService;
|
|
import com.pj.tb_people.TbPeopleService;
|
|
|
|
|
+import com.pj.tb_shop.TbShop;
|
|
|
|
|
+import com.pj.tb_shop.TbShopService;
|
|
|
import com.pj.utils.sg.AjaxError;
|
|
import com.pj.utils.sg.AjaxError;
|
|
|
import com.pj.utils.so.SoMap;
|
|
import com.pj.utils.so.SoMap;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
@@ -56,7 +61,7 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
|
|
|
* 底层 Mapper 对象
|
|
* 底层 Mapper 对象
|
|
|
*/
|
|
*/
|
|
|
@Autowired
|
|
@Autowired
|
|
|
- TbOrderMapper tbOrderMapper;
|
|
|
|
|
|
|
+ private TbOrderMapper tbOrderMapper;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 互市组
|
|
* 互市组
|
|
@@ -64,7 +69,7 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private TbPeopleService tbPeopleService;
|
|
private TbPeopleService tbPeopleService;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
- TbOrderPeopleConfirmMapper tbOrderPeopleConfirmMapper;
|
|
|
|
|
|
|
+ private TbOrderPeopleConfirmMapper tbOrderPeopleConfirmMapper;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private MethodOrderService methodOrderService;
|
|
private MethodOrderService methodOrderService;
|
|
|
|
|
|
|
@@ -75,14 +80,19 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private LevelOneServerInterface levelOneServerInterface;
|
|
private LevelOneServerInterface levelOneServerInterface;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
|
|
+ private LevelTwoServerInterface levelTwoServerInterface;
|
|
|
|
|
+ @Autowired
|
|
|
private TbEnterpriseMapper tbEnterpriseMapper;
|
|
private TbEnterpriseMapper tbEnterpriseMapper;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private AsyncServerInterface asyncServerInterface;
|
|
private AsyncServerInterface asyncServerInterface;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private TbPeopleMapper tbPeopleMapper;
|
|
private TbPeopleMapper tbPeopleMapper;
|
|
|
-
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private TbShopService tbShopService;
|
|
|
@Resource
|
|
@Resource
|
|
|
private HtTradeSettlementService htTradeSettlementService;
|
|
private HtTradeSettlementService htTradeSettlementService;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private PaymentServerInterface paymentServerInterface;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 远程调用
|
|
* 远程调用
|
|
@@ -380,9 +390,40 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
|
|
|
return tbOrderMapper.getConfirmStatus(orderId);
|
|
return tbOrderMapper.getConfirmStatus(orderId);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public PaymentDto getPaymentData(TbOrder tbOrder) {
|
|
|
|
|
+ HtTradeSettlement htTradeSettlement = htTradeSettlementService.getById(tbOrder.getSaleMainId());
|
|
|
|
|
+ PaymentDto paymentDto = new PaymentDto();
|
|
|
|
|
+ BeanUtils.copyProperties(htTradeSettlement, paymentDto);
|
|
|
|
|
+
|
|
|
|
|
+ paymentDto.setTradeNo(tbOrder.getTradeNo());
|
|
|
|
|
+ paymentDto.setBuyQty(tbOrder.getBuyQty());
|
|
|
|
|
+ paymentDto.setGrossWt(tbOrder.getGrossWt());
|
|
|
|
|
+ paymentDto.setGoodsName(tbOrder.getGoodsNames());
|
|
|
|
|
+ paymentDto.setGoodsUnit(tbOrder.getGoodsUnit());
|
|
|
|
|
+
|
|
|
|
|
+ paymentDto.setTotalPrice(BigDecimal.valueOf(tbOrder.getTotalPrice()));
|
|
|
|
|
+ Double resalePrice = levelTwoServerInterface.getResalePriceByLevelOneOrderId(tbOrder.getId());
|
|
|
|
|
+ paymentDto.setResalePrice(BigDecimal.valueOf(resalePrice));
|
|
|
|
|
+
|
|
|
|
|
+ TbPeople tbPeople = tbPeopleService.getById(tbOrder.getBuyUserId());
|
|
|
|
|
+ paymentDto.setBankCode(tbPeople.getBankCode());
|
|
|
|
|
+ paymentDto.setBankName(tbPeople.getBankName());
|
|
|
|
|
+ paymentDto.setBorderName(tbPeople.getName());
|
|
|
|
|
+ paymentDto.setBorderidno(tbPeople.getIdCard());
|
|
|
|
|
+ paymentDto.setBorderTel(tbPeople.getPhone());
|
|
|
|
|
+
|
|
|
|
|
+ TbShop tbShop = tbShopService.findByCode(htTradeSettlement.getShopNo());
|
|
|
|
|
+ paymentDto.setOwnerName(tbShop.getOwnerName());
|
|
|
|
|
+ paymentDto.setOwnerIdtype(tbShop.getOwnerIdtype());
|
|
|
|
|
+ paymentDto.setBankAccount(tbShop.getBankAccount());
|
|
|
|
|
+ paymentDto.setBank(tbShop.getBank());
|
|
|
|
|
+ paymentDto.setOwnerTel(tbShop.getOwnerTel());
|
|
|
|
|
+
|
|
|
|
|
+ return paymentDto;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 边民订单确认
|
|
* 边民订单确认
|
|
|
- *
|
|
|
|
|
* @param orderId 一级市场订单表ID
|
|
* @param orderId 一级市场订单表ID
|
|
|
*/
|
|
*/
|
|
|
public boolean confirmOrder(Long orderId) {
|
|
public boolean confirmOrder(Long orderId) {
|
|
@@ -390,8 +431,29 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
|
|
|
if (tbOrder == null) {
|
|
if (tbOrder == null) {
|
|
|
throw new AjaxError("订单不存在");
|
|
throw new AjaxError("订单不存在");
|
|
|
}
|
|
}
|
|
|
|
|
+ tbOrder.setPeopleConfirmTime(new Date())
|
|
|
|
|
+ .setPeopleConfirmStatus(ConfirmStatus.CONFIRM_STATUS_ONE.getCode())
|
|
|
|
|
+ .setUpdateTime(new Date());
|
|
|
|
|
+ boolean update = super.updateById(tbOrder);
|
|
|
// TODO: 2023/8/28 边民发起支付申请,调用银行接口:验证边民支付信息,将货款先存入银行第三方账户,并给出回执
|
|
// TODO: 2023/8/28 边民发起支付申请,调用银行接口:验证边民支付信息,将货款先存入银行第三方账户,并给出回执
|
|
|
- // 银行返回支付回执为"交易成功"时,方法往下执行
|
|
|
|
|
|
|
+ PaymentDto paymentDto = this.getPaymentData(tbOrder);
|
|
|
|
|
+ paymentServerInterface.sendSXB010(paymentDto);
|
|
|
|
|
+
|
|
|
|
|
+ return update;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 边民订单确认-收到银行扣款成功回执
|
|
|
|
|
+ * @param tradeNo 一级市场边民订单-订单编号
|
|
|
|
|
+ */
|
|
|
|
|
+ public boolean confirmOrderFromBank(String tradeNo) {
|
|
|
|
|
+ LambdaQueryWrapper<TbOrder> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ wrapper.eq(TbOrder::getTradeNo, tradeNo);
|
|
|
|
|
+ List<TbOrder> tbOrderList = this.list(wrapper);
|
|
|
|
|
+ if (tbOrderList.size() <= 0) {
|
|
|
|
|
+ throw new AjaxError("订单不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+ TbOrder tbOrder = tbOrderList.get(0);
|
|
|
// TODO: 2023/8/29 更新状态保存交易记录
|
|
// TODO: 2023/8/29 更新状态保存交易记录
|
|
|
tbOrder.setPeopleConfirmTime(new Date())
|
|
tbOrder.setPeopleConfirmTime(new Date())
|
|
|
.setPeopleConfirmStatus(ConfirmStatus.CONFIRM_STATUS_ONE.getCode())
|
|
.setPeopleConfirmStatus(ConfirmStatus.CONFIRM_STATUS_ONE.getCode())
|
|
@@ -402,9 +464,7 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
|
|
|
//当declareType为边民时,不需要走后续两个确认,订单状态改为已完成
|
|
//当declareType为边民时,不需要走后续两个确认,订单状态改为已完成
|
|
|
tbOrder.setFinishStatus(FinishStatus.FINISH_STATUS_ONE.getCode());
|
|
tbOrder.setFinishStatus(FinishStatus.FINISH_STATUS_ONE.getCode());
|
|
|
}
|
|
}
|
|
|
- return super.updateById(tbOrder);
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
|
|
+ return super.updateById(tbOrder);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -518,8 +578,45 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
|
|
|
|
|
|
|
|
/*----- 正常业务逻辑👆👆 rpc远程调用👇👇 -----*/
|
|
/*----- 正常业务逻辑👆👆 rpc远程调用👇👇 -----*/
|
|
|
|
|
|
|
|
|
|
+ //进出口申报单退单-逻辑处理
|
|
|
|
|
+ public boolean chargeback(HtDeclareChargebackDto htDeclareChargebackDto) {
|
|
|
|
|
+ //查询出被退单的所有边民订单
|
|
|
|
|
+ LambdaQueryWrapper<TbOrder> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ wrapper.eq(TbOrder::getTradeAreaId, htDeclareChargebackDto.getFieldCode());
|
|
|
|
|
+ wrapper.eq(TbOrder::getPreNo, htDeclareChargebackDto.getBillNo());
|
|
|
|
|
+ List<TbOrder> tbOrderList = this.list(wrapper);
|
|
|
|
|
+
|
|
|
|
|
+ if (tbOrderList.size() <= 0) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ // TODO: 2023/11/27 查验不通过,车辆不通过卡3,调用银行退款划扣申请,从银行第三方账户,退回至边民借记卡账户
|
|
|
|
|
+ tbOrderList.forEach(order -> {
|
|
|
|
|
+ PaymentDto paymentDto = this.getPaymentData(order);
|
|
|
|
|
+ paymentServerInterface.sendSXB013(paymentDto);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ //修改交易结算单(大订单)的查验结果
|
|
|
|
|
+ LambdaUpdateWrapper<HtTradeSettlement> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
|
|
+ updateWrapper.set(HtTradeSettlement::getCheckPassStatus, 2);//查验结果[1=查验通过 2=查验不通过]
|
|
|
|
|
+ updateWrapper.set(HtTradeSettlement::getCheckPassTime, new Date());//查验时间(不通过)
|
|
|
|
|
+ updateWrapper.eq(HtTradeSettlement::getFieldCode, htDeclareChargebackDto.getFieldCode());
|
|
|
|
|
+ updateWrapper.eq(HtTradeSettlement::getDeclareId, htDeclareChargebackDto.getDeclareId());
|
|
|
|
|
+ boolean update = htTradeSettlementService.update(updateWrapper);
|
|
|
|
|
+
|
|
|
|
|
+ //修改边民订单的查验结果
|
|
|
|
|
+ LambdaUpdateWrapper<TbOrder> updateWrapper1 = new LambdaUpdateWrapper<>();
|
|
|
|
|
+ updateWrapper1.set(TbOrder::getCheckPassStatus, 2);//查验结果[1=查验通过 2=查验不通过]
|
|
|
|
|
+ updateWrapper1.set(TbOrder::getCheckPassTime, new Date());//查验时间(不通过)
|
|
|
|
|
+ updateWrapper1.eq(TbOrder::getTradeAreaId, htDeclareChargebackDto.getFieldCode());
|
|
|
|
|
+ updateWrapper1.eq(TbOrder::getPreNo, htDeclareChargebackDto.getBillNo());
|
|
|
|
|
+ boolean update1 = this.update(updateWrapper1);
|
|
|
|
|
+
|
|
|
|
|
+ return update && update1;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
|
|
|
- // TODO: 2023/8/28 系统接收到航通接口信息:车辆已出一级市场
|
|
|
|
|
|
|
+ /** TODO: 2023/8/28 系统接收到航通接口信息:车辆已出一级市场
|
|
|
|
|
+ (系统接收到这个信息时,证明已经查验通过,不会有进出口申报单退单)*/
|
|
|
public boolean orderFinish(HtPassCardDTO htPassCardDTO) {
|
|
public boolean orderFinish(HtPassCardDTO htPassCardDTO) {
|
|
|
String billCode = htPassCardDTO.getBillCode();
|
|
String billCode = htPassCardDTO.getBillCode();
|
|
|
//1、todo: 调用银行接口发起划扣:将边民划扣至银行第三方账户的货款,支付至外籍商户的账户
|
|
//1、todo: 调用银行接口发起划扣:将边民划扣至银行第三方账户的货款,支付至外籍商户的账户
|