Bladeren bron

直播事件回调

yuhongqi 1 week geleden
bovenliggende
commit
f72d0fe56e

+ 8 - 8
fs-admin/src/main/java/com/fs/hisStore/task/LiveTask.java

@@ -150,10 +150,10 @@ public class LiveTask {
     private JdbcTemplate jdbcTemplate;
 
     public void PushErp() throws ParseException {
-        List<Long> ids = liveOrderMapper.selectOrderIdByNoErp();
-        for (Long id : ids) {
-            liveOrderService.createOmsOrder(id);
-        }
+//        List<Long> ids = liveOrderMapper.selectOrderIdByNoErp();
+//        for (Long id : ids) {
+//            liveOrderService.createOmsOrder(id);
+//        }
     }
 
     public void redPacketSubMoney() throws Exception {
@@ -317,10 +317,10 @@ public class LiveTask {
     }
 
     public void updateOrderItem() throws ParseException {
-        List<Long> ids = liveOrderService.selectOrderIdByNoErp();
-        for (Long id : ids) {
-            liveOrderService.createOmsOrder(id);
-        }
+//        List<Long> ids = liveOrderService.selectOrderIdByNoErp();
+//        for (Long id : ids) {
+//            liveOrderService.createOmsOrder(id);
+//        }
     }
 
     //每天执行一次

+ 11 - 5
fs-admin/src/main/java/com/fs/live/controller/LiveOrderController.java

@@ -484,8 +484,12 @@ public class LiveOrderController extends BaseController
     {
         logger.info("手动推管易 订单号: {}",orderCode);
         LiveOrder order=liveOrderService.selectOrderIdByOrderCode(orderCode);
-        liveOrderService.createOmsOrder(order.getOrderId());
-        return R.ok();
+        if (orderPaymentService.selectByBussinessId(order.getOrderId()) != null) {
+            liveOrderService.createOmsOrder(order.getOrderId());
+            return R.ok();
+        }
+        return R.error("订单未支付!");
+
     }
 
     @Log(title = "同步管易物流单号", businessType = BusinessType.UPDATE)
@@ -636,9 +640,11 @@ public class LiveOrderController extends BaseController
                     orderLogsService.create(orderId, FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getValue(),
                             nickName + " " +FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getDesc() + ":" + df.getLoginAccount());
                 }
-                liveOrderService.createOmsOrder(orderId);
-                orderLogsService.create(orderId, FsStoreOrderLogEnum.PUSH_ORDER_ERP.getValue(),
-                        nickName + " " +FsStoreOrderLogEnum.PUSH_ORDER_ERP.getDesc() + ":" + df.getLoginAccount());
+                if (orderPaymentService.selectByBussinessId(orderId) != null) {
+                    liveOrderService.createOmsOrder(orderId);
+                    orderLogsService.create(orderId, FsStoreOrderLogEnum.PUSH_ORDER_ERP.getValue(),
+                            nickName + " " +FsStoreOrderLogEnum.PUSH_ORDER_ERP.getDesc() + ":" + df.getLoginAccount());
+                }
             } catch (ParseException e) {
                 throw new RuntimeException(e);
             }

+ 1 - 1
fs-service/src/main/java/com/fs/live/mapper/LiveOrderMapper.java

@@ -110,7 +110,7 @@ public interface LiveOrderMapper {
     @Select("select order_id from live_order where `status` = 2")
     List<Long> selectSyncExpressIds();
 
-    @Select("select order_id from live_order where `status` = 1 and extend_order_id is null ")
+    @Select("select order_id from live_order where `status` = 1 and extend_order_id is null and is_pay='1'")
     List<Long> selectOrderIdByNoErp();
 
     @Select("select * from live_order where extend_order_id is not null and `status`=2")

+ 2 - 0
fs-service/src/main/java/com/fs/live/service/ILiveOrderPaymentService.java

@@ -65,4 +65,6 @@ public interface ILiveOrderPaymentService {
     LiveOrderPaymentVo selectLiveOrderPaymentByPaymentIdNew(Long paymentId);
 
     List<LiveOrderPayment> selectLiveOrderPaymentByOrderId(Long id);
+
+    LiveOrderPayment selectByBussinessId(Long orderCode);
 }

+ 3 - 1
fs-service/src/main/java/com/fs/live/service/impl/LiveAfterSalesServiceImpl.java

@@ -873,7 +873,9 @@ public class LiveAfterSalesServiceImpl implements ILiveAfterSalesService {
                 }
 
                 try {
-                    liveOrderService.createOmsOrder(order.getOrderId());
+                    if (liveOrderPaymentMapper.selectByBuissnessId(Long.valueOf(order.getOrderCode())) != null) {
+                        liveOrderService.createOmsOrder(order.getOrderId());
+                    }
                 } catch (Exception e) {
                     log.error("推送ERP订单失败!",e);
                 }

+ 5 - 0
fs-service/src/main/java/com/fs/live/service/impl/LiveOrderPaymentServiceImpl.java

@@ -62,6 +62,11 @@ public class LiveOrderPaymentServiceImpl implements ILiveOrderPaymentService {
         return baseMapper.selectLiveOrderPaymentByOrderId(id);
     }
 
+    @Override
+    public LiveOrderPayment selectByBussinessId(Long orderId) {
+        return baseMapper.selectByBuissnessId(orderId);
+    }
+
     /**
      * 新增支付明细
      *

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

@@ -624,6 +624,47 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
 //        return R.error();
 //
 //    }
+    private void createOmsOrderCall(LiveOrder inOrder)  throws ParseException {
+        LiveOrder order = liveOrderMapper.selectLiveOrderByOrderId(String.valueOf(inOrder.getOrderId()));
+        LiveOrderPayment liveOrderPayment = liveOrderPaymentMapper.selectByBuissnessId(order.getOrderId());
+        if (liveOrderPayment == null) {
+            log.info("订单:{},未找到支付信息,不进行推送", order.getOrderCode());
+            return ;
+        }
+        FsSysConfig erpConfig = configUtil.generateStructConfigByKey(SysConfigEnum.HIS_CONFIG.getKey(), FsSysConfig.class);
+        List<Long> noErpCompany = erpConfig.getNoErpCompany();
+        if (noErpCompany != null && noErpCompany.contains(order.getCompanyId())) {
+            log.info("订单:{},相关公司不推送erp", order.getOrderCode());
+            return ;
+        }
+        IErpOrderService erpOrderService = getErpService();
+        if (erpOrderService == null) {
+            log.info("未启用erp");
+            return;
+        }
+        if (!StringUtils.isEmpty(order.getExtendOrderId()) && order.getStatus() != 1) {
+            return ;
+        }
+        if(order.getUserName() == null || StringUtils.isEmpty(order.getUserName())) return;
+        ErpOrder erpOrder = getErpOrder(order);
+        if(erpOrder == null ){
+            log.info("组合码为空,订单ID:" + order.getOrderCode());
+            return ;
+        }
+
+        if (erpOrderService == jSTOrderService) {
+            erpOrder.setShop_code(erpConfig.getErpJstShopCode());
+        }
+        ErpOrderResponse response = erpOrderService.addLiveOrder(erpOrder);
+
+        //写入日志
+        log.info("ErpCreate:" + order.getOrderCode() + ":" + JSONUtil.toJsonStr(response));
+        //支付成功后 将订单号写入待发货的REDIS中
+        redisCache.setCacheObject(DELIVERY + ":" + response.getCode(), order.getOrderCode());
+        //写入外部订单号
+        order.setExtendOrderId(response.getCode());
+        liveOrderMapper.updateLiveOrder(order);
+    }
 
     @Override
     @Transactional(rollbackFor = Throwable.class,propagation = Propagation.REQUIRED)
@@ -687,6 +728,7 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
             order.setPayTime(LocalDateTime.now());
             order.setIsPay("1");
             baseMapper.updateLiveOrder(order);
+            this.createOmsOrderCall(order);
             return "SUCCESS";
         }catch (Exception e){
             log.info("支付错误:"+e.getMessage());
@@ -1504,6 +1546,11 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
     @Override
     public R createOmsOrder(Long orderId)  throws ParseException {
         LiveOrder order = liveOrderMapper.selectLiveOrderByOrderId(String.valueOf(orderId));
+        LiveOrderPayment liveOrderPayment = liveOrderPaymentMapper.selectByBuissnessId(orderId);
+        if (liveOrderPayment == null) {
+            log.info("订单:{},未找到支付信息", order.getOrderCode());
+            return R.error("订单:" + order.getOrderCode() + ",未找到支付信息");
+        }
         FsSysConfig erpConfig = configUtil.generateStructConfigByKey(SysConfigEnum.HIS_CONFIG.getKey(), FsSysConfig.class);
         List<Long> noErpCompany = erpConfig.getNoErpCompany();
         if (noErpCompany != null && noErpCompany.contains(order.getCompanyId())) {

+ 15 - 3
fs-user-app/src/main/java/com/fs/app/controller/live/LiveController.java

@@ -8,6 +8,7 @@ import com.fs.common.annotation.RepeatSubmit;
 import com.fs.common.core.domain.BaseEntity;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.page.PageRequest;
+import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.bean.BeanUtils;
 import com.fs.live.domain.Live;
@@ -23,6 +24,7 @@ import lombok.AllArgsConstructor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
@@ -53,6 +55,17 @@ public class LiveController extends AppBaseController {
 	@Autowired
 	private LiveFacadeService liveFacadeService;
 
+	/**
+	 * 查询未结束直播间
+	 */
+	@GetMapping("/listToLiveNoEnd")
+	public TableDataInfo listToLiveNoEnd(Live live)
+	{
+		startPage();
+		List<Live> list = liveService.listToLiveNoEnd(live);
+		return getDataTable(list);
+	}
+
 
 
 
@@ -115,15 +128,14 @@ public class LiveController extends AppBaseController {
 	@GetMapping("/liveListAll")
 	@ApiResponse(code = 200, message = "", response = LiveInfoVo.class)
 	public R liveListAll(PageRequest pageRequest) {
-/*		PageHelper.startPage(Integer.parseInt(ServletUtils.getParameter("pageNum")) ,Integer.parseInt(ServletUtils.getParameter("pageSize")) );
+		PageHelper.startPage(Integer.parseInt(ServletUtils.getParameter("pageNum")) ,Integer.parseInt(ServletUtils.getParameter("pageSize")) );
 		try {
 			List<Live> list = liveService.liveList();
 			PageInfo<Live> result = new PageInfo<>(list);
 			return R.ok().put("data", result);
 		} catch (Exception e) {
 			return R.error("操作异常");
-		}*/
-		return liveService.liveListAll(pageRequest);
+		}
 	}
 
 	@Login

+ 2 - 2
fs-user-app/src/main/java/com/fs/app/controller/live/LiveOrderController.java

@@ -165,7 +165,7 @@ public class LiveOrderController extends AppBaseController
     @ApiOperation("获取我的订单列表")
     @GetMapping("/getMyStoreOrderList")
     public R getMyStoreOrderList(FsMyLiveOrderQueryParam param, HttpServletRequest request){
-        PageHelper.startPage(param.getPage(), param.getPageSize());
+        PageHelper.startPage(param.getPageNum(), param.getPageSize());
         param.setUserId(Long.parseLong(getUserId()));
         List<FsMyLiveOrderListQueryVO> list=orderService.selectFsMyLiveOrderListVO(param);
         PageInfo<FsMyLiveOrderListQueryVO> listPageInfo=new PageInfo<>(list);
@@ -176,7 +176,7 @@ public class LiveOrderController extends AppBaseController
     @ApiOperation("获取销售公司订单列表")
     @GetMapping("/getCompanyStoreOrderList")
     public R getCompanyStoreOrderList(FsMyLiveOrderQueryParam param, HttpServletRequest request){
-        PageHelper.startPage(param.getPage(), param.getPageSize());
+        PageHelper.startPage(param.getPageNum(), param.getPageSize());
         List<FsMyLiveOrderListQueryVO> list=orderService.selectFsCompanyLiveOrderListVO(param);
         PageInfo<FsMyLiveOrderListQueryVO> listPageInfo=new PageInfo<>(list);
         return R.ok().put("data",listPageInfo);