浏览代码

预约订单时推送消息

mac 7 月之前
父节点
当前提交
2702a63034
共有 14 个文件被更改,包括 191 次插入58 次删除
  1. 16 1
      lhb-basic/lhb-basic-api/src/main/java/com/kxs/lhb/basic/api/constant/enums/ChannelCodeEnum.java
  2. 二进制
      lhb-basic/lhb-basic-api/src/main/java/com/kxs/lhb/basic/api/dto/cusmoter/goods/NumbersDTO.java
  3. 8 1
      lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/channel/BasicService.java
  4. 46 0
      lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/channel/factory/ChannelFactory.java
  5. 15 1
      lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/channel/tongyi/TYBasicService.java
  6. 1 2
      lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/channel/tongyi/TongYiService.java
  7. 9 11
      lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/controller/admin/SysOrderController.java
  8. 3 1
      lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/controller/cusmoter/GoodsController.java
  9. 4 4
      lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/mq/model/params/BindNotify.java
  10. 13 19
      lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/mq/model/params/OrderNotify.java
  11. 3 0
      lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/service/LhbNotifyService.java
  12. 7 4
      lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/service/impl/LhbGoodsServiceImpl.java
  13. 21 1
      lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/service/impl/LhbNotifyServiceImpl.java
  14. 45 13
      lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/service/impl/LhbOrderServiceImpl.java

+ 16 - 1
lhb-basic/lhb-basic-api/src/main/java/com/kxs/lhb/basic/api/constant/enums/ChannelCodeEnum.java

@@ -3,6 +3,9 @@ package com.kxs.lhb.basic.api.constant.enums;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * 通道商枚举类
  *
@@ -13,9 +16,21 @@ import lombok.RequiredArgsConstructor;
 @RequiredArgsConstructor
 public enum ChannelCodeEnum {
 
-    TY("tongyi", "统一");
+    TY("TY", "统一");
 
     private final String code;
 
     private final String description;
+
+    private static final Map<String, ChannelCodeEnum> CHANNEL_CODE_ENUM_MAP = new HashMap<>();
+
+    static {
+        for (ChannelCodeEnum value : ChannelCodeEnum.values()) {
+            CHANNEL_CODE_ENUM_MAP.put(value.getCode(), value);
+        }
+    }
+
+    public static ChannelCodeEnum getChannelCode(String ifCode) {
+        return CHANNEL_CODE_ENUM_MAP.get(ifCode);
+    }
 }

二进制
lhb-basic/lhb-basic-api/src/main/java/com/kxs/lhb/basic/api/dto/cusmoter/goods/NumbersDTO.java


+ 8 - 1
lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/channel/BasicService.java

@@ -1,7 +1,10 @@
 package com.kxs.lhb.basic.biz.channel;
 
+import com.kxs.common.pay.enums.PayPlatformEnum;
+import com.kxs.lhb.basic.api.constant.enums.ChannelCodeEnum;
 import com.kxs.lhb.basic.api.dto.tongyi.*;
 import com.kxs.lhb.basic.api.vo.tongyi.*;
+import org.springframework.core.Ordered;
 
 import java.util.List;
 
@@ -11,7 +14,7 @@ import java.util.List;
  * @author 没秃顶的码农
  * @date 2024-10-18
  */
-public interface BasicService {
+public interface BasicService extends Ordered {
 
 
     /**
@@ -64,4 +67,8 @@ public interface BasicService {
      */
     List<OrderChargeLevelRes> queryChargeLevel(OrderChargeLevelReq req);
 
+
+    default boolean support(ChannelCodeEnum ifCode) {
+        return true;
+    }
 }

+ 46 - 0
lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/channel/factory/ChannelFactory.java

@@ -0,0 +1,46 @@
+package com.kxs.lhb.basic.biz.channel.factory;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.kxs.common.core.exception.GlobalCustomerException;
+import com.kxs.lhb.basic.api.constant.enums.ChannelCodeEnum;
+import com.kxs.lhb.basic.biz.channel.BasicService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.core.Ordered;
+import org.springframework.stereotype.Service;
+
+import java.util.Comparator;
+import java.util.Map;
+import java.util.Optional;
+
+/**
+ * 通道工厂
+ *
+ * @author 没秃顶的码农
+ * @date 2024-10-25
+ */
+@Service
+@Slf4j
+public class ChannelFactory {
+
+
+    public BasicService getChannel(String ifCode) {
+
+        Map<String, BasicService> basicServiceMap = SpringUtil.getBeansOfType(BasicService.class);
+
+        ChannelCodeEnum channelCode = ChannelCodeEnum.getChannelCode(ifCode);
+        if (channelCode == null) {
+            log.error("未找到对应通道{}", ifCode);
+            throw new GlobalCustomerException("未找到对应通道");
+        }
+        Optional<BasicService> optional = basicServiceMap.values()
+                .stream()
+                .filter(service -> service.support(channelCode))
+                .max(Comparator.comparingInt(Ordered::getOrder));
+        if (optional.isEmpty()) {
+            log.error("未找到对应通道{}处理类", channelCode.getDescription());
+            throw new GlobalCustomerException("未找到对应通道处理类");
+        }
+        return optional.get();
+    }
+
+}

+ 15 - 1
lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/channel/tongyi/TyCustomerService.java → lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/channel/tongyi/TYBasicService.java

@@ -2,6 +2,8 @@ package com.kxs.lhb.basic.biz.channel.tongyi;
 
 import cn.hutool.core.lang.TypeReference;
 import cn.hutool.json.JSONUtil;
+import com.kxs.common.pay.enums.PayPlatformEnum;
+import com.kxs.lhb.basic.api.constant.enums.ChannelCodeEnum;
 import com.kxs.lhb.basic.api.dto.tongyi.*;
 import com.kxs.lhb.basic.api.vo.tongyi.*;
 import com.kxs.lhb.basic.biz.channel.BasicService;
@@ -16,7 +18,7 @@ import java.util.List;
  * @date 2024-10-18
  */
 @Service
-public class TyCustomerService extends TyBasicService implements BasicService {
+public class TYBasicService extends TongYiService implements BasicService {
 
     @Override
     public List<AreaRes> getArea() {
@@ -87,4 +89,16 @@ public class TyCustomerService extends TyBasicService implements BasicService {
         TyCommRes<Object> commRes = sendToUrl(req, "/api/v1/guangdian/queryChargeLevel");
         return JSONUtil.toList(JSONUtil.toJsonStr(commRes.getData()), OrderChargeLevelRes.class);
     }
+
+
+    @Override
+    public boolean support(ChannelCodeEnum ifCode) {
+        return ChannelCodeEnum.TY.equals(ifCode);
+    }
+
+    @Override
+    public int getOrder() {
+        return Integer.MIN_VALUE;
+    }
+
 }

+ 1 - 2
lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/channel/tongyi/TyBasicService.java → lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/channel/tongyi/TongYiService.java

@@ -8,7 +8,6 @@ import cn.hutool.http.HttpRequest;
 import cn.hutool.json.JSONUtil;
 import com.kxs.common.core.exception.GlobalCustomerException;
 import com.kxs.lhb.basic.api.dto.tongyi.BasicReq;
-import com.kxs.lhb.basic.api.dto.tongyi.OrderCancelReq;
 import com.kxs.lhb.basic.api.dto.tongyi.TyCommonReq;
 import com.kxs.lhb.basic.api.vo.tongyi.TyCommRes;
 import lombok.extern.slf4j.Slf4j;
@@ -20,7 +19,7 @@ import lombok.extern.slf4j.Slf4j;
  * @date 2024-10-18
  */
 @Slf4j
-public abstract class TyBasicService{
+public abstract class TongYiService {
 
     private static final String APP_KEY = "6sojqlem7zf5jq33s0i90bln2a0nx106";
     private static final String APP_SECRET = "ascqhimf4v0qyfg7bnqep1e6elg5343g";

+ 9 - 11
lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/controller/admin/SysOrderController.java

@@ -1,23 +1,20 @@
 package com.kxs.lhb.basic.biz.controller.admin;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.kxs.common.core.util.R;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kxs.common.core.util.R;
 import com.kxs.common.log.annotation.SysLog;
 import com.kxs.common.security.annotation.Inner;
-import org.springdoc.core.annotations.ParameterObject;
-import io.swagger.v3.oas.annotations.security.SecurityRequirement;
-import io.swagger.v3.oas.annotations.tags.Tag;
+import com.kxs.lhb.basic.api.constant.enums.OrderStatusEnum;
 import com.kxs.lhb.basic.api.model.LhbOrder;
 import com.kxs.lhb.basic.biz.service.LhbOrderService;
-import com.kxs.lhb.basic.api.vo.admin.sysOrder.QueryLogisticsVO;
-
-import org.springframework.web.bind.annotation.*;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import org.springdoc.core.annotations.ParameterObject;
 import org.springframework.http.HttpHeaders;
 import org.springframework.security.access.prepost.PreAuthorize;
-
-import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * 订单管理(SysOrder)控制层
@@ -105,7 +102,8 @@ public class SysOrderController {
     @GetMapping("/refundPage")
     public R refundPage(@ParameterObject Page<LhbOrder> page, @ParameterObject LhbOrder param) {
 
-        return R.ok(lhbOrderService.page(page, new QueryWrapper<>(param)));
+        param.setStatus(OrderStatusEnum.REFUND.getCode());
+        return R.ok(lhbOrderService.page(page, Wrappers.lambdaQuery(param).orderByDesc(LhbOrder::getId)));
     }
 
 

+ 3 - 1
lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/controller/cusmoter/GoodsController.java

@@ -9,9 +9,11 @@ import com.kxs.lhb.basic.biz.service.LhbAreaService;
 import com.kxs.lhb.basic.biz.service.LhbGoodsService;
 import io.swagger.v3.oas.annotations.security.SecurityRequirement;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
 import org.springdoc.core.annotations.ParameterObject;
 import org.springframework.http.HttpHeaders;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -71,7 +73,7 @@ public class GoodsController {
      * @return 选号
      */
     @GetMapping("/numbers")
-    public R numbers(@ParameterObject NumbersDTO param) {
+    public R numbers(@Validated @ParameterObject NumbersDTO param) {
 
         return R.ok(lhbGoodsService.getNumbers(param));
     }

+ 4 - 4
lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/mq/model/params/BindNotify.java

@@ -16,12 +16,14 @@ import java.math.BigDecimal;
 public class BindNotify {
 
 
+    private String isvNo;
+
+    private String employNum;
+
     private String mobile;
 
     private String productName;
 
-    private BigDecimal firstRechargeAmount;
-
     private String receiveName;
 
     private String receiveMobile;
@@ -30,7 +32,5 @@ public class BindNotify {
 
     private String orderNo;
 
-    private String userName;
-
     private String createTime;
 }

+ 13 - 19
lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/mq/model/params/OrderNotify.java

@@ -4,6 +4,8 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.math.BigDecimal;
+
 /**
  * 订单通知
  *
@@ -15,34 +17,26 @@ import lombok.EqualsAndHashCode;
 @Builder
 public class OrderNotify extends IsvParams{
 
-    private String orderSn;
+    private String isvNo;
 
-    private String sn;
+    private String employNum;
 
-    private String mchNo;
+    private String mobile;
 
-    /**
-     * 设备类型 UFI=0 MIFI=1 CPE=2 能量塔=3
-     */
-    private Integer snType;
+    private String productName;
 
-    private String tradeAmt;
+    private BigDecimal firstRechargeAmount;
 
-    /**
-     * 交易时间
-     */
-    private String tradeTime;
+    private String receiveName;
 
-    private Integer duration;
+    private String receiveMobile;
 
+    private String receiveAddress;
 
-    /**
-     * 套餐单位 0:按天 1:按月
-     */
-    private Integer unit;
+    private String orderNo;
 
-    private Integer isFirstRecharge;
+    private String userName;
 
-    private Integer cashFlag;
+    private String createTime;
 
 }

+ 3 - 0
lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/service/LhbNotifyService.java

@@ -6,6 +6,7 @@ import com.kxs.lhb.basic.api.dto.admin.sysNotify.SysNotifyDTO;
 import com.kxs.lhb.basic.api.dto.admin.sysNotify.SysNotifyPageDTO;
 import com.kxs.lhb.basic.api.model.LhbNotify;
 import com.kxs.lhb.basic.biz.mq.model.params.BindNotify;
+import com.kxs.lhb.basic.biz.mq.model.params.OrderNotify;
 
 
 /**
@@ -20,6 +21,8 @@ public interface LhbNotifyService extends MPJBaseService<LhbNotify> {
 
     void bindPush(BindNotify bindNotify, String isvNo);
 
+    void orderPush(OrderNotify orderNotify, String isvNo);
+
     Page<LhbNotify> notifyPage(Page<LhbNotify> page, SysNotifyPageDTO param);
 
     Boolean notifyBatchData(SysNotifyDTO param);

+ 7 - 4
lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/service/impl/LhbGoodsServiceImpl.java

@@ -15,6 +15,7 @@ import com.kxs.lhb.basic.api.vo.cusmoter.goods.NumbersVO;
 import com.kxs.lhb.basic.api.vo.tongyi.NumbersRes;
 import com.kxs.lhb.basic.api.vo.tongyi.PackagesRes;
 import com.kxs.lhb.basic.biz.channel.BasicService;
+import com.kxs.lhb.basic.biz.channel.factory.ChannelFactory;
 import com.kxs.lhb.basic.biz.mapper.LhbGoodsMapper;
 import com.kxs.lhb.basic.biz.service.LhbGoodsActivitiesService;
 import com.kxs.lhb.basic.biz.service.LhbGoodsService;
@@ -42,7 +43,7 @@ import java.util.Optional;
 @Slf4j
 public class LhbGoodsServiceImpl extends MPJBaseServiceImpl<LhbGoodsMapper, LhbGoods> implements LhbGoodsService {
 
-    private final BasicService basicService;
+    private final ChannelFactory channelFactory;
 
     private final LhbGoodsSkuService goodsSkuService;
 
@@ -53,7 +54,7 @@ public class LhbGoodsServiceImpl extends MPJBaseServiceImpl<LhbGoodsMapper, LhbG
     @Transactional(rollbackFor = Exception.class)
     public Boolean addGoods(LhbGoods param) {
 
-        List<PackagesRes> packages = basicService.getPackages(PackagesReq.builder().build());
+        List<PackagesRes> packages = channelFactory.getChannel(param.getIfCode()).getPackages(PackagesReq.builder().build());
 
         Optional<PackagesRes> first = packages.stream().filter(item -> param.getExternalId().equals(item.getId())).findFirst();
 
@@ -72,7 +73,7 @@ public class LhbGoodsServiceImpl extends MPJBaseServiceImpl<LhbGoodsMapper, LhbG
     @Override
     public Boolean updateGoods(LhbGoods param) {
 
-        List<PackagesRes> packages = basicService.getPackages(PackagesReq.builder().build());
+        List<PackagesRes> packages = channelFactory.getChannel(param.getIfCode()).getPackages(PackagesReq.builder().build());
 
         Optional<PackagesRes> first = packages.stream().filter(item -> param.getExternalId().equals(item.getId())).findFirst();
 
@@ -106,7 +107,9 @@ public class LhbGoodsServiceImpl extends MPJBaseServiceImpl<LhbGoodsMapper, LhbG
     @Override
     public List<NumbersVO> getNumbers(NumbersDTO param) {
 
-        NumbersRes numbersRes = basicService.getNumbers(NumbersReq.builder().regionId(param.getAreaCode())
+        LhbGoods goods = getById(param.getGoodsId());
+
+        NumbersRes numbersRes = channelFactory.getChannel(goods.getIfCode()).getNumbers(NumbersReq.builder().regionId(param.getAreaCode())
                 .pageSize(30)
                 .currentPage(1)
                 .fuzzyTag(param.getFuzzyTag())

+ 21 - 1
lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/service/impl/LhbNotifyServiceImpl.java

@@ -15,7 +15,9 @@ import com.kxs.lhb.basic.api.amqp.RabbitLhbOrderQueueMQ;
 import com.kxs.lhb.basic.api.dto.admin.sysNotify.SysNotifyDTO;
 import com.kxs.lhb.basic.api.dto.admin.sysNotify.SysNotifyPageDTO;
 import com.kxs.lhb.basic.biz.mapper.LhbNotifyMapper;
+import com.kxs.lhb.basic.biz.mq.RabbiLhbOrderQueueListener;
 import com.kxs.lhb.basic.biz.mq.model.params.BindNotify;
+import com.kxs.lhb.basic.biz.mq.model.params.OrderNotify;
 import com.kxs.lhb.basic.biz.service.LhbNotifyService;
 import org.springframework.stereotype.Service;
 import lombok.RequiredArgsConstructor;
@@ -60,7 +62,25 @@ public class LhbNotifyServiceImpl extends MPJBaseServiceImpl<LhbNotifyMapper, Lh
         RabbitLhbBindQueueMQ.MsgEntity msgEntity = new RabbitLhbBindQueueMQ.MsgEntity();
         msgEntity.setNotifyId(notify.getNotifyId());
         mqSender.send(RabbitLhbBindQueueMQ.build(msgEntity), 5);
-        log.info("手机号码:{},推送绑定数据成功:{}", bindNotify.getMobile(), JSON.toJSONString(bindNotify));
+        log.info("手机号码:{},推送预约数据成功:{}", bindNotify.getMobile(), JSON.toJSONString(bindNotify));
+    }
+
+    @Override
+    public void orderPush(OrderNotify orderNotify, String isvNo) {
+
+        //保存推送消息次数
+        LhbNotify notify = new LhbNotify();
+        notify.setIsvNo(isvNo);
+        notify.setNotifyId(IdUtil.simpleUUID());
+        notify.setParams(JSON.toJSONString(orderNotify));
+        notify.setClassName(CommonConstants.ORDER_PUSH_NAME);
+        save(notify);
+
+        //推送交易数据
+        RabbitLhbOrderQueueMQ.MsgEntity msgEntity = new RabbitLhbOrderQueueMQ.MsgEntity();
+        msgEntity.setNotifyId(notify.getNotifyId());
+        mqSender.send(RabbitLhbOrderQueueMQ.build(msgEntity), 5);
+        log.info("订单:{},推送订单激活数据成功:{}", orderNotify.getOrderNo(), JSON.toJSONString(orderNotify));
     }
 
     @Override

+ 45 - 13
lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/service/impl/LhbOrderServiceImpl.java

@@ -27,9 +27,10 @@ import com.kxs.lhb.basic.api.dto.tongyi.QueryOrderReq;
 import com.kxs.lhb.basic.api.model.*;
 import com.kxs.lhb.basic.api.vo.admin.sysOrder.QueryLogisticsVO;
 import com.kxs.lhb.basic.api.vo.tongyi.QueryLogisticsRes;
-import com.kxs.lhb.basic.biz.channel.BasicService;
+import com.kxs.lhb.basic.biz.channel.factory.ChannelFactory;
 import com.kxs.lhb.basic.biz.mapper.LhbOrderMapper;
 import com.kxs.lhb.basic.biz.mq.model.params.BindNotify;
+import com.kxs.lhb.basic.biz.mq.model.params.OrderNotify;
 import com.kxs.lhb.basic.biz.service.*;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -56,7 +57,7 @@ import java.util.stream.Collectors;
 @Slf4j
 public class LhbOrderServiceImpl extends MPJBaseServiceImpl<LhbOrderMapper, LhbOrder> implements LhbOrderService {
 
-    private final BasicService basicService;
+    private final ChannelFactory channelFactory;
 
     private final LhbUserService userService;
 
@@ -72,7 +73,7 @@ public class LhbOrderServiceImpl extends MPJBaseServiceImpl<LhbOrderMapper, LhbO
 
     private final LhbNotifyService notifyService;
 
-    private final LhbAreaService areaService;
+    private final LhbIsvInfoService isvInfoService;
 
     @Override
     public List<QueryLogisticsVO> queryLogistics(Integer id) {
@@ -83,7 +84,7 @@ public class LhbOrderServiceImpl extends MPJBaseServiceImpl<LhbOrderMapper, LhbO
             throw new GlobalCustomerException("订单未下单");
         }
         QueryOrderReq req = QueryOrderReq.builder().orderId(order.getOutOrderSn()).build();
-        QueryLogisticsRes queryLogisticsRes = basicService.queryLogistics(req);
+        QueryLogisticsRes queryLogisticsRes = channelFactory.getChannel(order.getIfCode()).queryLogistics(req);
         order.setExpressNo(queryLogisticsRes.getExpressNo());
         order.updateById();
 
@@ -112,7 +113,10 @@ public class LhbOrderServiceImpl extends MPJBaseServiceImpl<LhbOrderMapper, LhbO
         if(age < Integer.parseInt(split[0]) || age > Integer.parseInt(split[1])){
             throw new GlobalCustomerException("办理年龄段在" + ageSection + "岁之间");
         }
-
+        LhbIsvInfo isvInfo = isvInfoService.getByIsvNo(order.getIsvNo());
+        if(isvInfo == null){
+            throw new GlobalCustomerException("服务商不存在");
+        }
         //订单号
         String orderSn = CommonConstants.ORDER_SN_PREFIX + IdUtil.getSnowflakeNextIdStr();
         order.setOrderSn(orderSn);
@@ -124,7 +128,7 @@ public class LhbOrderServiceImpl extends MPJBaseServiceImpl<LhbOrderMapper, LhbO
                 .regionId(order.getRegionId())
                 .idenNr(order.getIdCard())
                 .number(order.getMakeMobile()).build();
-        basicService.preNumber(req);
+        channelFactory.getChannel(goods.getIfCode()).preNumber(req);
 
         order.insert();
 
@@ -183,10 +187,23 @@ public class LhbOrderServiceImpl extends MPJBaseServiceImpl<LhbOrderMapper, LhbO
                     .area(order.getArea())
                     .preNumber(Boolean.FALSE)
                     .regionId(order.getRegionId()).build();
-            String orderId = basicService.orderSubmit(req);
+            String orderId = channelFactory.getChannel(order.getIfCode()).orderSubmit(req);
             order.setOutOrderSn(orderId);
         }
         order.updateById();
+
+        //下单成功推送预约信息到下游
+        BindNotify bindNotify = BindNotify.builder().mobile(order.getMakeMobile())
+                .isvNo(order.getIsvNo())
+                .employNum(order.getEmployNum())
+                .productName(order.getPackageName())
+                .orderNo(order.getOrderSn())
+                .receiveName(order.getCustName())
+                .receiveMobile(order.getContMobile())
+                .receiveAddress(order.getAddress())
+                .createTime(LocalDateTimeUtil.format(LocalDate.now(), DatePattern.NORM_DATETIME_PATTERN))
+                .build();
+        notifyService.bindPush(bindNotify, order.getIsvNo());
         return order.getId();
     }
 
@@ -219,12 +236,25 @@ public class LhbOrderServiceImpl extends MPJBaseServiceImpl<LhbOrderMapper, LhbO
                 .area(order.getArea())
                 .preNumber(Boolean.FALSE)
                 .regionId(order.getRegionId()).build();
-        String orderId = basicService.orderSubmit(req);
+        String orderId = channelFactory.getChannel(order.getIfCode()).orderSubmit(req);
         order.setOutOrderSn(orderId);
         order.updateById();
 
+        //下单成功推送预约信息到下游
+        BindNotify bindNotify = BindNotify.builder().mobile(order.getMakeMobile())
+                .isvNo(order.getIsvNo())
+                .employNum(order.getEmployNum())
+                .productName(order.getPackageName())
+                .orderNo(order.getOrderSn())
+                .receiveName(order.getCustName())
+                .receiveMobile(order.getContMobile())
+                .receiveAddress(order.getAddress())
+                .createTime(LocalDateTimeUtil.format(LocalDate.now(), DatePattern.NORM_DATETIME_PATTERN))
+                .build();
+        notifyService.bindPush(bindNotify, order.getIsvNo());
     }
 
+
     @Override
     public Object payOrder(LhbOrder param) {
 
@@ -289,7 +319,7 @@ public class LhbOrderServiceImpl extends MPJBaseServiceImpl<LhbOrderMapper, LhbO
                 .orderId(order.getOutOrderSn())
                 .returnCause(param.getRemark())
                 .applyPerson(SecurityUtils.getUser().getName()).build();
-        basicService.orderCancel(req);
+        channelFactory.getChannel(order.getIfCode()).orderCancel(req);
 
         return Boolean.TRUE;
     }
@@ -303,7 +333,7 @@ public class LhbOrderServiceImpl extends MPJBaseServiceImpl<LhbOrderMapper, LhbO
 
         orders.forEach(order -> {
             QueryOrderReq req = QueryOrderReq.builder().orderId(order.getOutOrderSn()).build();
-            String outStatus = basicService.queryStatus(req);
+            String outStatus = channelFactory.getChannel(order.getIfCode()).queryStatus(req);
             //更新状态
             update(Wrappers.lambdaUpdate(LhbOrder.class).eq(LhbOrder::getId, order.getId()).set(LhbOrder::getOutStatus, outStatus));
         });
@@ -318,7 +348,7 @@ public class LhbOrderServiceImpl extends MPJBaseServiceImpl<LhbOrderMapper, LhbO
 
         orders.forEach(order -> {
             QueryOrderReq req = QueryOrderReq.builder().orderId(order.getOutOrderSn()).build();
-            String firstCharge = basicService.queryFirstCharge(req);
+            String firstCharge = channelFactory.getChannel(order.getIfCode()).queryFirstCharge(req);
             if(firstCharge.contains("50") || firstCharge.contains("100")){
 
                 BigDecimal firstChargeAmt = firstCharge.contains("50") ? new BigDecimal("5000") : new BigDecimal("10000");
@@ -330,7 +360,9 @@ public class LhbOrderServiceImpl extends MPJBaseServiceImpl<LhbOrderMapper, LhbO
                         .set(LhbOrder::getIsFirstRecharge, CommonConstants.SUCCESS));
 
                 //构建推送消息
-                BindNotify bindNotify = BindNotify.builder().mobile(order.getMakeMobile())
+                OrderNotify orderNotify = OrderNotify.builder().mobile(order.getMakeMobile())
+                        .isvNo(order.getIsvNo())
+                        .employNum(order.getEmployNum())
                         .productName(order.getPackageName())
                         .firstRechargeAmount(firstChargeAmt)
                         .userName(order.getCustName())
@@ -340,7 +372,7 @@ public class LhbOrderServiceImpl extends MPJBaseServiceImpl<LhbOrderMapper, LhbO
                         .receiveAddress(order.getAddress())
                         .createTime(LocalDateTimeUtil.format(LocalDate.now(), DatePattern.NORM_DATETIME_PATTERN))
                         .build();
-                notifyService.bindPush(bindNotify, order.getIsvNo());
+                notifyService.orderPush(orderNotify, order.getIsvNo());
             }
 
         });