Просмотр исходного кода

广电接收激活数据接口

mac 2 лет назад
Родитель
Сommit
2b18c6540d

+ 91 - 0
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/dto/kxsapp/gd/GdDqActDataRes.java

@@ -0,0 +1,91 @@
+package com.kxs.product.api.dto.kxsapp.gd;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+
+/**
+ * 广电报备-接收激活成功数据
+ *
+ * @author 系统
+ * @date 2024-04-23 10:44:27
+ */
+@Data
+public class GdDqActDataRes {
+
+
+    /**
+     * 订单号
+     */
+    private String orderNo;
+    /**
+     * 订单创建时间
+     */
+    private String orderCreateTime;
+    /**
+     * 用户选择号码
+     */
+    private String phoneNo;
+    /**
+     * 是否首充(中文):是,否
+     */
+    private String firstCharge;
+    /**
+     * 首充金额(元)
+     */
+    private BigDecimal initialChargeAmount;
+    /**
+     * 省
+     */
+    private String province;
+    /**
+     * 城市
+     */
+    private String city;
+    /**
+     * 商品名称
+     */
+    private String productName;
+    /**
+     * 促销活动名称
+     */
+    private String promotionName;
+    /**
+     * 商品类型名称
+     */
+    private String productTypeName;
+    /**
+     * 实付金额(元)
+     */
+    private BigDecimal paidInAmount;
+    /**
+     * 订单状态(中文):待
+     * 激活、已完成、退款
+     * 中、未知
+     */
+    private String orderStatus;
+    /**
+     * 激活状态(中文):待激活、已激活、未知
+     */
+    private String activationStatusName;
+    /**
+     * 激活时间
+     */
+    private String activationTime;
+    /**
+     * 开卡人工号
+     */
+    private String jobId;
+    /**
+     * SIM 卡号
+     */
+    private String iccId;
+
+    /**
+     *  SN
+     */
+    private String posSn;
+
+
+}

+ 16 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/controller/kxsapp/GdController.java

@@ -1,8 +1,11 @@
 package com.kxs.product.biz.controller.kxsapp;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kxs.common.core.util.R;
 import com.kxs.common.security.annotation.Inner;
+import com.kxs.product.api.dto.kxsapp.gd.GdDqActDataRes;
 import com.kxs.product.api.dto.kxsapp.gd.GdDqReportDTO;
 import com.kxs.product.api.dto.kxsapp.gd.GdReportDTO;
 import com.kxs.product.api.dto.kxsapp.gd.GdReportPutDTO;
@@ -14,6 +17,8 @@ import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Map;
+
 /**
  * 产品模块(Gd)控制层
  *
@@ -152,6 +157,17 @@ public class GdController {
         return R.ok(kxsGdReportService.dqDotNum());
     }
 
+    @Inner(value = false)
+    @PostMapping("/acceptActData")
+    public Object acceptActData(@RequestBody Map<String, Object> param) {
+
+        kxsGdReportService.acceptActData(param);
+
+        JSONObject result = new JSONObject();
+        result.put("resultCode", 1);
+        return result;
+    }
+
 
 
 }

+ 8 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/KxsGdReportService.java

@@ -13,6 +13,8 @@ import com.kxs.product.api.vo.kxsapp.gd.GdDqDotNumVO;
 import com.kxs.product.api.vo.kxsapp.gd.GdReportListVO;
 import com.kxs.product.api.vo.kxsapp.machine.MachineUnBindListVO;
 
+import java.util.Map;
+
 /**
  * 广电报备入网表(KxsGdReport)表服务接口
  *
@@ -112,5 +114,11 @@ public interface KxsGdReportService extends IService<KxsGdReport> {
      */
     GdDqDotNumVO dqDotNum();
 
+    /**
+     * 接受广电 激活 数据
+     *
+     * @param param 参数
+     */
+    void acceptActData(Map<String, Object> param);
 }
 

+ 9 - 4
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/KxsGdService.java

@@ -1,8 +1,6 @@
 package com.kxs.product.biz.service;
 
-import com.kxs.product.api.res.gd.GdQueryOrderRes;
-
-import java.util.List;
+import com.alibaba.fastjson.JSONObject;
 
 /**
  * KXS 广电 服务
@@ -15,10 +13,17 @@ public interface KxsGdService {
 
 
     /**
-     * 匹配 广电 开卡数据
+     * 匹配 广电 开卡数据 主动查询
      *
      * @param startTime 开始时间
      * @param endTime   结束时间
      */
     void checkGdAsyncData(String startTime, String endTime);
+
+    /**
+     * 匹配 广电 开卡数据 接收推送
+     *
+     * @param orderData 订单数据
+     */
+    void checkGdAsyncData(JSONObject orderData);
 }

+ 26 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsGdReportServiceImpl.java

@@ -1,6 +1,11 @@
 package com.kxs.product.biz.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.LocalDateTimeUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -12,6 +17,7 @@ import com.kxs.common.core.exception.GlobalCustomerException;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.RetOps;
 import com.kxs.common.security.util.SecurityUtils;
+import com.kxs.product.api.amqp.rabbit.RabbitGdActQueueMQ;
 import com.kxs.product.api.dto.kxsapp.gd.GdDqReportDTO;
 import com.kxs.product.api.dto.kxsapp.gd.GdReportDTO;
 import com.kxs.product.api.dto.kxsapp.gd.GdReportPutDTO;
@@ -27,8 +33,12 @@ import com.kxs.product.biz.service.KxsGdService;
 import com.kxs.user.api.feign.RemoteKxsUserService;
 import com.kxs.user.api.model.KxsUser;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
 
@@ -40,6 +50,7 @@ import java.util.Optional;
  */
 @Service("kxsGdReportService")
 @RequiredArgsConstructor
+@Slf4j
 public class KxsGdReportServiceImpl extends ServiceImpl<KxsGdReportMapper, KxsGdReport> implements KxsGdReportService {
 
     private final RemoteKxsUserService remoteKxsUserService;
@@ -219,6 +230,21 @@ public class KxsGdReportServiceImpl extends ServiceImpl<KxsGdReportMapper, KxsGd
         return gdDotNumVO;
     }
 
+    @Override
+    public void acceptActData(Map<String, Object> param) {
+
+        JSONArray dataList = JSON.parseArray(param.get("data").toString());
+        if(dataList.isEmpty()){
+            log.error("接收广电订单数据失败:{}", JSON.toJSONString(param));
+            return;
+        }
+        for (Object obj : dataList) {
+            JSONObject orderData = JSON.parseObject(obj.toString());
+            kxsGdService.checkGdAsyncData(orderData);
+        }
+
+    }
+
 
 }
 

+ 32 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsGdServiceImpl.java

@@ -1,10 +1,13 @@
 package com.kxs.product.biz.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.lang.TypeReference;
 import cn.hutool.http.Header;
 import cn.hutool.http.HttpRequest;
 import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.kxs.common.core.exception.GlobalCustomerException;
 import com.kxs.common.mq.handlers.IMQSender;
@@ -23,6 +26,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Optional;
 
@@ -82,6 +86,34 @@ public class KxsGdServiceImpl implements KxsGdService {
 
     }
 
+    @Override
+    public void checkGdAsyncData(JSONObject orderData) {
+
+        String gdMobile = orderData.getString("mobile");
+        KxsGdReport kxsGdReport = kxsGdReportMapper.selectOne(Wrappers.<KxsGdReport>lambdaQuery()
+                .eq(KxsGdReport::getIsCheck, GdReportEnum.CHECK_NO.getType())
+                .eq(KxsGdReport::getGdMobile, gdMobile));
+        if (kxsGdReport == null) {
+            return;
+        }
+
+        RabbitGdActQueueMQ.MsgEntity msgEntity = new RabbitGdActQueueMQ.MsgEntity();
+        msgEntity.setPosSn(orderData.getString("iccid"));
+        msgEntity.setPhoneNo(orderData.getString("mobile"));
+        msgEntity.setProductName(orderData.getString("offerName"));
+        msgEntity.setActivationStatusName("已激活");
+        msgEntity.setActivationTime(LocalDateTimeUtil.format(LocalDateTime.now(), DatePattern.NORM_DATETIME_PATTERN));
+
+        mqSender.send(RabbitGdActQueueMQ.build(msgEntity));
+
+        kxsGdReportMapper.update(null, Wrappers.<KxsGdReport>lambdaUpdate().eq(KxsGdReport::getId, kxsGdReport.getId())
+                .set(KxsGdReport::getIsCheck, GdReportEnum.CHECK_SUC.getType())
+                .set(KxsGdReport::getGdMobile, gdMobile));
+        log.info("发送电渠广电激活数据{}", kxsGdReport.getGdSn()
+                + "," + kxsGdReport.getGdMobile());
+    }
+
+
     public List<GdQueryOrderRes.GdQueryOrder> queryCardOrders(String startTime, String endTime, int pageNo, int pageSize) {
 
         try {