Merge branch 'develop' of gitee.com:peng-ou/haoka-server into develop

This commit is contained in:
Owen 2025-02-22 11:57:48 +08:00
commit 446abe8a69
1 changed files with 175 additions and 0 deletions

View File

@ -307,6 +307,181 @@ public class DouDianOrderCatchServiceImpl implements OrderCatchService {
// 110 doudian_trade_TradePending
// 订单已支付待处理
TradeTradePendingParam tradeTradePendingParam = gson.fromJson(message.getData()+"", TradeTradePendingParam.class);
// 订单id
Long pId = tradeTradePendingParam.getPId();
// 根据订单id查询订单详情
OrderOrderDetailData orderDetail = orderDetail(String.valueOf(pId));
ShopOrderDetail order = orderDetail.getShopOrderDetail();
// 所有的订单数据
List<com.doudian.open.api.order_orderDetail.data.SkuOrderListItem> skuOrderList = order.getSkuOrderList();
// 店铺信息
Long shopId = order.getShopId();
String shopName = order.getShopName();
// 物流信息
List<com.doudian.open.api.order_orderDetail.data.LogisticsInfoItem> logisticsInfo = order.getLogisticsInfo();
/**
* 需判断订单是否存在
* 1.不存在 --- 新增
* 2.存在 --- 更新
* 2.1 需更新的数据 订单状态 退款状态
*/
// 所有在售商品
List<OnSaleProductDO> onSaleProductDOS = onSaleProductMapper.selectList(new QueryWrapper<OnSaleProductDO>().eq("deleted", 0).eq("onSale", true));
// 所有在售商品sku
List<String> skuList = onSaleProductDOS.stream().map(OnSaleProductDO::getSku).toList();
// 买家备注
String buyerWords = order.getBuyerWords();
// 收件人电话
// String postTel = order.getPostTel();
String encryptPostTel = order.getEncryptPostTel();
// 收件人姓名
// String postReceiver = order.getPostReceiver();
String encryptPostReceiver = order.getEncryptPostReceiver();
// 收件人地址
com.doudian.open.api.order_orderDetail.data.PostAddr postAddr = order.getPostAddr();
//
com.doudian.open.api.order_orderDetail.data.Province province = postAddr.getProvince();
//
com.doudian.open.api.order_orderDetail.data.City city = postAddr.getCity();
//
com.doudian.open.api.order_orderDetail.data.Town town = postAddr.getTown();
// 街道/
com.doudian.open.api.order_orderDetail.data.Street street = postAddr.getStreet();
// String detail = postAddr.getDetail();
String encryptDetail = postAddr.getEncryptDetail();
//用户信息
com.doudian.open.api.order_orderDetail.data.UserIdInfo userIdInfo = order.getUserIdInfo();
// String idCardNo = userIdInfo.getIdCardNo();
String encryptIdCardNo = userIdInfo.getEncryptIdCardNo();
// String idCardName = userIdInfo.getIdCardName();
String encryptIdCardName = userIdInfo.getEncryptIdCardName();
List<OrdersDO> orderList = new ArrayList<>();
List<OrdersDO> orderListAll = new ArrayList<>();
for (com.doudian.open.api.order_orderDetail.data.SkuOrderListItem skuOrderListItem : skuOrderList) {
String orderId = skuOrderListItem.getOrderId();
OrdersDO ordersDO = new OrdersDO();
// 售后信息
com.doudian.open.api.order_orderDetail.data.AfterSaleInfo afterSaleInfo = skuOrderListItem.getAfterSaleInfo();
// 售后状态 0-售后初始化 6-售后申请 7-售后退货中 27-拒绝售后申请 12-售后成功 28-售后失败 11-售后已发货 29-退货后拒绝退款 13-售后换货商家发货 14-售后换货用户收货 51-取消成功 53-逆向交易完成
Long afterSaleStatus = afterSaleInfo.getAfterSaleStatus();
// 1-待退款3-退款成功 4-退款失败当买家发起售后后又主动取消售后此时after_sale_status=28并且refund_status=1的状态不变不会流转至4状态
Long refundStatus = afterSaleInfo.getRefundStatus();
// 商品sku 判断是否抓单
String code = skuOrderListItem.getCode();
if(skuList.contains(code)){
for (OnSaleProductDO onSaleProductDO : onSaleProductDOS) {
if(onSaleProductDO.getSku().equals(code)){
// 注入产品生产方式 记录初始产品+接口相关信息
OnSaleProductPreOrderRespVO onSaleProductPreOrder = onSaleProductService.getOnSaleProductPreOrder(onSaleProductDO.getId());
ordersDO.setAutoType(onSaleProductPreOrder.getParentProduct().getAutoType());
ordersDO.setOnSaleProductId(onSaleProductPreOrder.getId());
ordersDO.setProductId(onSaleProductPreOrder.getParentProduct().getId());
ordersDO.setSuperiorProductConfigId(onSaleProductPreOrder.getSuperiorProductConfigRespVO().getId());
ordersDO.setSuperiorApiId(onSaleProductPreOrder.getSuperiorApiRespVO().getId());
}
}
// 在售商品
ordersDO.setSupplierProductSku(code);
Long orderStatus = skuOrderListItem.getOrderStatus();
// 1 待确认/待支付-订单创建完毕;105-已支付; 2-备货中 101-部分发货; 3-已发货全部发货;4- 已取消;5 已完成已收货;
Long HaokaOrderStatus;// 号卡订单状态
Long HaokaOrderRefundStatus;// 号卡订单退款状态
// 解析订单状态
if(orderStatus == 105L){
HaokaOrderStatus = 100L;
ordersDO.setStatus(HaokaOrderStatus);
}else if(orderStatus == 101L || orderStatus == 3L){
HaokaOrderStatus = 500L;
ordersDO.setStatus(HaokaOrderStatus);
}else {
// 更新订单退款状态 订单状态不变
}
ordersDO.setStatusName(skuOrderListItem.getOrderStatusDesc());
// 解析售后状态
if(0L == afterSaleStatus){
// 未进入售后
HaokaOrderRefundStatus = 800L;
} else if(afterSaleStatus == 28L || refundStatus == 1L){
// 未进入售后
HaokaOrderRefundStatus = 800L;
} else if(refundStatus == 3L){
// 进入售后
HaokaOrderRefundStatus = 300L;
} else {
// 进入售后
HaokaOrderRefundStatus = 200L;
}
ordersDO.setRefundStatus(String.valueOf(HaokaOrderRefundStatus));
// 获取计划手机号
for (com.doudian.open.api.order_orderDetail.data.LogisticsInfoItem logisticsInfoItem : logisticsInfo) {
for (com.doudian.open.api.order_orderDetail.data.ProductInfoItem productInfoItem : logisticsInfoItem.getProductInfo()) {
String skuOrderId = productInfoItem.getSkuOrderId();
if(skuOrderId.equals(orderId)){
String productName = productInfoItem.getProductName();
ordersDO.setSupplierProductName(productName);
List<com.doudian.open.api.order_orderDetail.data.SkuSpecsItem> skuSpecs = productInfoItem.getSkuSpecs();
for (com.doudian.open.api.order_orderDetail.data.SkuSpecsItem skuSpec : skuSpecs) {
String name = skuSpec.getName();
String planMobile = getPlanMobile(name);
if(planMobile != null){
ordersDO.setPlanMobile(planMobile);
}
}
}
}
}
// 查询订单是否存在 不存在则新增存在则更新
List<OrdersDO> ordersDOS = ordersMapper.selectList(new QueryWrapper<OrdersDO>().eq("real_source_id", orderId).eq("deleted", 0));
if(CollectionUtil.isNotEmpty(ordersDOS)){
// 更新订单
OrdersDO ordersDO1 = ordersDOS.get(0);
ordersDO1.setRefundStatus(String.valueOf(HaokaOrderRefundStatus));
ordersMapper.updateById(ordersDO1);
}else {
// 新增订单
ordersDO.setShopId(String.valueOf(shopId));
ordersDO.setShopName(shopName);
ordersDO.setRoomId(skuOrderListItem.getRoomIdStr());
// 真实订单
ordersDO.setRealSourceId(orderId);
ordersDO.setSourceId(orderId);
// 买家备注
ordersDO.setBuyerMemo(buyerWords);
//证件信息
// ordersDO.setIdCardNum(idCardNo);
ordersDO.setEncryptIdCardNum(encryptIdCardNo);
// ordersDO.setIdCardName(idCardName);
ordersDO.setEncryptIdCardName(encryptIdCardName);
// 收件人信息
// ordersDO.setAddressMobile(postTel);
ordersDO.setEncryptAddressMobile(encryptPostTel);
// ordersDO.setAddressName(postReceiver);
ordersDO.setEncryptAddressName(encryptPostReceiver);
// 收件人地址
ordersDO.setAddressProvince(province.getName());
ordersDO.setAddressProvinceCode(province.getId());
//
ordersDO.setAddressCity(city.getName());
ordersDO.setAddressCityCode(city.getId());
//
ordersDO.setAddressDistrict(town.getName());
ordersDO.setAddressDistrictCode(town.getId());
// 街道/
ordersDO.setTown(street.getName());
// 详细地址
// ordersDO.setAddress(detail);
ordersDO.setEncryptAddress(encryptDetail);
orderList.add(ordersDO);
}
}
}
orderListAll.addAll(orderList);
ordersMapper.insertBatch(orderList);
// 执行解密解密后更新数据库
for (List<OrdersDO> ordersDOS : GroupListUtil.groupList(orderListAll, 50)) {
batchDecryptOrderAndUpdate(ordersDOS);
}
} else {
// 未接入的消息类型
}