Browse Source

FIX: 推送微信物流状态

xdd 1 week ago
parent
commit
084a47b26a

+ 9 - 0
fs-admin/src/main/java/com/fs/store/controller/FsStoreOrderController.java

@@ -336,6 +336,15 @@ public class FsStoreOrderController extends BaseController {
         return R.ok().put("order", order).put("items", items).put("logs", logs).put("user", user).put("payments",payments).put("tuiMoneyLogs",tuiMoneyLogs);
     }
 
+    /**
+     * 获取订单详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('store:storeOrder:query')")
+    @GetMapping(value = "/v2/{id}/{type}")
+    public R getInfo2(@PathVariable("id") Long id,@PathVariable("type") Integer type) {
+        return fsStoreOrderService.getInfo2(id,type);
+    }
+
     @GetMapping(value = "/queryAddress/{id}")
     @PreAuthorize("@ss.hasPermi('store:storeOrder:queryAddress')")
     public R getAddress(@PathVariable("id") Long id)

+ 6 - 3
fs-service-system/src/main/java/com/fs/company/mapper/CompanyMoneyLogsMapper.java

@@ -67,7 +67,7 @@ public interface CompanyMoneyLogsMapper
     public int deleteCompanyMoneyLogsByIds(Long[] logsIds);
 
     @Select({"<script> " +
-            "select l.*,c.company_name " +
+            "select l.*,c.company_name,l.type as pay_type_code " +
             "from company_money_logs l left join company c on c.company_id=l.company_id   " +
             "where 1=1 " +
             "<if test = 'maps.companyId != null  '> " +
@@ -92,7 +92,7 @@ public interface CompanyMoneyLogsMapper
 
 
     @Select({"<script> " +
-            "select l.*,c.company_name ,o.order_code,o.user_phone,p.bank_transaction_id,p.pay_type_code,p.pay_code " +
+            "select l.*,c.company_name ,o.order_code,o.user_phone,p.bank_transaction_id,p.pay_type_code,p.pay_code,l.type as pay_type_code " +
             "from company_money_logs l left join company c on c.company_id=l.company_id   " +
             "left join fs_store_order o on o.id=l.business_id " +
             "left join fs_store_payment p on o.id=p.order_id "+
@@ -129,7 +129,7 @@ public interface CompanyMoneyLogsMapper
     List<CompanyMoneyLogsVO> selectCompanyMoneyLogsMallVOList(@Param("maps") CompanyMoneyLogsParam companyMoneyLogs);
 
     @Select({"<script> " +
-            "select l.*,c.company_name ,p.bank_transaction_id,p.pay_type_code " +
+            "select l.*,c.company_name ,p.bank_transaction_id,p.pay_type_code,l.type as pay_type_code " +
             "from company_money_logs l left join company c on c.company_id=l.company_id   " +
             "left join fs_store_payment p on p.payment_id=l.business_id "+
             "where  (l.logs_type=8 || l.logs_type=9)  " +
@@ -224,6 +224,9 @@ public interface CompanyMoneyLogsMapper
             "<if test = 'maps.businessId != null  '> " +
             "and l.business_id = #{maps.businessId}" +
             "</if>" +
+            "<if test = 'maps.type != null  '> " +
+            "and l.type = #{maps.type}" +
+            "</if>" +
             "order by l.logs_id desc " +
             "</script>"})
     List<CompanyStoreOrderMoneyLogsVO> selectCompanyStoreOrderMoneyLogsList(@Param("maps")CompanyStoreOrderMoneyLogsListParam moneyLogsMap);

+ 2 - 0
fs-service-system/src/main/java/com/fs/company/param/CompanyStoreOrderMoneyLogsListParam.java

@@ -15,5 +15,7 @@ public class CompanyStoreOrderMoneyLogsListParam  implements Serializable
 
     private String businessId;
 
+    private Integer type;
+
 
 }

+ 12 - 11
fs-service-system/src/main/java/com/fs/erp/service/impl/JSTErpOrderServiceImpl.java

@@ -459,17 +459,9 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
     public BaseResponse refundUpdateLive(ErpRefundUpdateRequest param) {
         LiveOrder fsStoreOrder = liveorderMapper.selectLiveOrderByOrderCode(param.getTid());
 
-        // 如果不是待发货
-        if(ObjectUtil.notEqual(param.getOrderStatus(), 2)){
-            FsJstAftersalePush fsJstAftersalePush = new FsJstAftersalePush();
-            fsJstAftersalePush.setOrderId(fsStoreOrder.getOrderCode());
-            fsJstAftersalePush.setTaskStatus(0);
-            fsJstAftersalePush.setType(String.valueOf(AfterSalesOrderStatusEnum.WAIT_SELLER_AGREE.getIndex()));
-            fsJstAftersalePush.setRetryCount(0);
-            fsJstAftersalePush.setAfterSaleId(String.valueOf(param.getStoreAfterSalesId()));
-            fsJstAftersalePush.setOrderType(1);
-            fsJstAftersalePushMapper.insert(fsJstAftersalePush);
-        } else {
+        // 如果是待发货
+        if(ObjectUtil.equal(param.getOrderStatus(), 2)){
+
             // 如果是发货前退款,直接走取消订单流程
             // 如果是发货后退款,走售后流程
             OrderCancelRequestDTO requestDTO = new OrderCancelRequestDTO();
@@ -478,6 +470,15 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
             requestDTO.setRemark("用户退款");
 
             jstErpHttpService.cancel(requestDTO);
+        } else {
+            FsJstAftersalePush fsJstAftersalePush = new FsJstAftersalePush();
+            fsJstAftersalePush.setOrderId(fsStoreOrder.getOrderCode());
+            fsJstAftersalePush.setTaskStatus(0);
+            fsJstAftersalePush.setType(String.valueOf(AfterSalesOrderStatusEnum.WAIT_SELLER_AGREE.getIndex()));
+            fsJstAftersalePush.setRetryCount(0);
+            fsJstAftersalePush.setAfterSaleId(String.valueOf(param.getStoreAfterSalesId()));
+            fsJstAftersalePush.setOrderType(1);
+            fsJstAftersalePushMapper.insert(fsJstAftersalePush);
         }
 
 

+ 2 - 0
fs-service-system/src/main/java/com/fs/live/domain/LiveOrderItem.java

@@ -65,5 +65,7 @@ public class LiveOrderItem{
 
     private String barCode;
 
+    private String warehouseCode;
+
 
 }

+ 8 - 11
fs-service-system/src/main/java/com/fs/live/service/impl/LiveAfterSalesServiceImpl.java

@@ -556,7 +556,7 @@ public class LiveAfterSalesServiceImpl implements ILiveAfterSalesService {
         request.setTid(order.getOrderCode());
         request.setOid(order.getOrderCode());
         request.setRefund_state(1);
-        request.setOrderStatus(order.getStatus());
+        request.setOrderStatus(orderStatus);
 
 
         // 根据仓库code找erp
@@ -576,16 +576,13 @@ public class LiveAfterSalesServiceImpl implements ILiveAfterSalesService {
             ErpContextHolder.setErpType(erp);
         }
 
-
-
-        return R.ok();
-//        BaseResponse response=erpOrderService.refundUpdateLive(request);
-//        if(response.getSuccess()){
-//            return R.ok();
-//        }
-//        else{
-//            throw new CustomException(response.getErrorDesc());
-//        }
+        BaseResponse response=erpOrderService.refundUpdateLive(request);
+        if(response.getSuccess()){
+            return R.ok();
+        }
+        else{
+            throw new CustomException(response.getErrorDesc());
+        }
     }
 
     @Override

+ 0 - 18
fs-service-system/src/main/java/com/fs/live/service/impl/LiveOrderServiceImpl.java

@@ -952,24 +952,6 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
             return R.error("已退款");
         }
         log.info("准备退款 订单: {}",JSON.toJSONString(order));
-        if(StringUtils.isNotEmpty(order.getExtendOrderId())){
-            ErpRefundUpdateRequest request=new ErpRefundUpdateRequest();
-            request.setTid(order.getOrderCode());
-            request.setOid(order.getOrderCode());
-            request.setRefund_state(1);
-            request.setOrderStatus(liveAfterSales.getOrderStatus());
-            request.setStoreAfterSalesId(liveAfterSales.getId());
-            // 根据仓库code找erp
-            if(StringUtils.isNotBlank(order.getStoreHouseCode())){
-                String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
-                ErpContextHolder.setErpType(erp);
-            }
-            BaseResponse response=erpOrderService.refundUpdateLive(request);
-            if(ObjectUtil.isNull(response) || !response.getSuccess()){
-                log.error("调用erp退款接口失败! {}",JSON.toJSONString(response));
-                throw new CustomException("调用erp退款接口失败:"+response.getErrorDesc());
-            }
-        }
         order.setStatus(-2);
         order.setRefundMoney(order.getPayMoney());
         order.setRefundStatus(String.valueOf(OrderInfoEnum.REFUND_STATUS_2.getValue()));

+ 2 - 0
fs-service-system/src/main/java/com/fs/store/service/IFsStoreOrderService.java

@@ -303,4 +303,6 @@ public interface IFsStoreOrderService
      * @param param
      */
     void cancelPay(FsStoreOrderPayParam param);
+
+    R getInfo2(Long id, Integer type);
 }

+ 105 - 1
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

@@ -42,9 +42,12 @@ import com.fs.company.domain.CompanyDept;
 import com.fs.company.domain.CompanyMoneyLogs;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.mapper.CompanyMoneyLogsMapper;
+import com.fs.company.param.CompanyStoreOrderMoneyLogsListParam;
 import com.fs.company.service.ICompanyDeptService;
+import com.fs.company.service.ICompanyMoneyLogsService;
 import com.fs.company.service.ICompanyService;
 import com.fs.company.service.ICompanyUserService;
+import com.fs.company.vo.CompanyStoreOrderMoneyLogsVO;
 import com.fs.erp.constant.ErpTypeConstant;
 import com.fs.erp.domain.*;
 import com.fs.erp.dto.*;
@@ -56,6 +59,12 @@ import com.fs.huifuPay.domain.HuiFuCreateOrder;
 import com.fs.huifuPay.domain.HuifuCreateOrderResult;
 import com.fs.huifuPay.dto.*;
 import com.fs.huifuPay.service.HuiFuService;
+import com.fs.live.domain.LiveOrder;
+import com.fs.live.domain.LiveOrderItem;
+import com.fs.live.domain.LiveOrderLogs;
+import com.fs.live.domain.LiveOrderPayment;
+import com.fs.live.mapper.LiveOrderItemMapper;
+import com.fs.live.mapper.LiveOrderLogsMapper;
 import com.fs.live.mapper.LiveOrderMapper;
 import com.fs.live.mapper.LiveOrderPaymentMapper;
 import com.fs.pay.pay.domain.CreateWxOrderResult;
@@ -271,7 +280,12 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
     @Autowired
     private FsUserMapper fsUserMapper;
-
+    @Autowired
+    private IFsStoreOrderService fsStoreOrderService;
+    @Autowired
+    private IFsStoreOrderItemService orderItemService;
+    @Autowired
+    private ICompanyMoneyLogsService moneyLogsService;
 
     @Override
     public void syncExpressToWx() {
@@ -1805,6 +1819,96 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         redisCache.deleteObject("isPaying:"+param.getOrderId());
     }
 
+    @Autowired
+    private LiveOrderMapper liveOrderMapper;
+
+    @Autowired
+    private LiveOrderItemMapper liveOrderItemMapper;
+
+    @Autowired
+    private LiveOrderLogsMapper liveOrderLogsMapper;
+
+    @Autowired
+    private LiveOrderPaymentMapper liveOrderPaymentMapper;
+
+    @Override
+    public R getInfo2(Long id, Integer type) {
+        if(ObjectUtil.equal(type,1)) {
+            LiveOrder order = liveOrderMapper.selectLiveOrderByOrderId(String.valueOf(id));
+            order.setUserPhone(ParseUtils.parsePhone(order.getUserPhone()));
+            order.setUserAddress(ParseUtils.parseAddress(order.getUserAddress()));
+            FsUser user = userService.selectFsUserById(Long.valueOf(order.getUserId()));
+            if (user!=null){
+                user.setPhone(ParseUtils.parsePhone(user.getPhone()));
+            }
+
+            LiveOrderItem itemMap = new LiveOrderItem();
+            itemMap.setOrderId(order.getOrderId());
+            // 设置仓库代码
+            List<LiveOrderItem> items = liveOrderItemMapper.selectLiveOrderItemList(itemMap);
+            for (LiveOrderItem item : items) {
+                if(ObjectUtil.isNotNull(item.getProductId())){
+                    String warehouseCode = fsStoreProductCacheService.getWarehouseCodeByProductId(item.getProductId());
+                    if(StringUtils.isNotBlank(warehouseCode)){
+                        item.setWarehouseCode(warehouseCode);
+                    }
+                }
+            }
+            List<LiveOrderLogs> liveOrderLogs = liveOrderLogsMapper.selectLiveOrderLogsByOrderId(order.getOrderId());
+
+            List<LiveOrderPayment> liveOrderPayments = liveOrderPaymentMapper.selectLiveOrderPaymentByOrderId(order.getOrderId());
+
+            List<CompanyStoreOrderMoneyLogsVO> tuiMoneyLogs=new ArrayList<>();
+            if(order.getCompanyId()!=null){
+                CompanyStoreOrderMoneyLogsListParam moneyLogsMap=new CompanyStoreOrderMoneyLogsListParam();
+                moneyLogsMap.setCompanyId(order.getCompanyId());
+                moneyLogsMap.setBusinessId(order.getOrderId().toString());
+                moneyLogsMap.setType(1);
+                tuiMoneyLogs=moneyLogsService.selectCompanyStoreOrderMoneyLogsList(moneyLogsMap);
+            }
+            return R.ok().put("order", order)
+                    .put("items", items)
+                    .put("logs", liveOrderLogs)
+                    .put("user", user)
+                    .put("payments",liveOrderPayments)
+                    .put("tuiMoneyLogs",tuiMoneyLogs);
+        } else {
+            FsStoreOrder order = fsStoreOrderService.selectFsStoreOrderById(id);
+            order.setUserPhone(ParseUtils.parsePhone(order.getUserPhone()));
+            order.setUserAddress(ParseUtils.parseAddress(order.getUserAddress()));
+            FsUser user = userService.selectFsUserById(order.getUserId());
+            if (user!=null){
+                user.setPhone(ParseUtils.parsePhone(user.getPhone()));
+            }
+
+            FsStoreOrderItem itemMap = new FsStoreOrderItem();
+            itemMap.setOrderId(order.getId());
+            // 设置仓库代码
+            List<FsStoreOrderItem> items = orderItemService.selectFsStoreOrderItemList(itemMap);
+            for (FsStoreOrderItem item : items) {
+                if(ObjectUtil.isNotNull(item.getProductId())){
+                    String warehouseCode = fsStoreProductCacheService.getWarehouseCodeByProductId(item.getProductId());
+                    if(StringUtils.isNotBlank(warehouseCode)){
+                        item.setWarehouseCode(warehouseCode);
+                    }
+                }
+            }
+            FsStoreOrderStatus statusMap = new FsStoreOrderStatus();
+            statusMap.setOrderId(order.getId());
+            List<FsStoreOrderStatus> logs = orderStatusService.selectFsStoreOrderStatusList(statusMap);
+            List<FsStorePayment> payments=paymentService.selectFsStorePaymentByOrderId(order.getId());
+            List<CompanyStoreOrderMoneyLogsVO> tuiMoneyLogs=new ArrayList<>();
+            if(order.getCompanyId()!=null){
+                CompanyStoreOrderMoneyLogsListParam moneyLogsMap=new CompanyStoreOrderMoneyLogsListParam();
+                moneyLogsMap.setCompanyId(order.getCompanyId());
+                moneyLogsMap.setBusinessId(order.getId().toString());
+                tuiMoneyLogs=moneyLogsService.selectCompanyStoreOrderMoneyLogsList(moneyLogsMap);
+            }
+            return R.ok().put("order", order).put("items", items).put("logs", logs).put("user", user).put("payments",payments).put("tuiMoneyLogs",tuiMoneyLogs);
+        }
+
+    }
+
     @Override
     @Transactional(rollbackFor = Throwable.class,propagation = Propagation.REQUIRED)
     //类型1支付回调 类型2货到付款