Przeglądaj źródła

多环境配置以及 客户接入的新增(新增客户的时候自动新增客户接入),客户接入列表

杨六六 4 lat temu
rodzic
commit
18e72d14bc

+ 10 - 3
common/fire-dto/src/main/java/com/fire/dto/FlowAppInfo.java

@@ -1,8 +1,12 @@
 package com.fire.dto;
 
+import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
 import lombok.Data;
 
 import java.util.Date;
@@ -10,9 +14,12 @@ import java.util.Map;
 
 @ApiModel(value = "客户接入表实体")
 @Data
+@TableName("flow_app_info")
+@Builder
 public class FlowAppInfo {
 
     @ApiModelProperty(value = "接入ID号")
+    @TableId(value = "flow_app_id",type = IdType.AUTO)
     private Long flowAppId;
 
     @ApiModelProperty(value = "客户ID")
@@ -25,10 +32,10 @@ public class FlowAppInfo {
     private String appKey;
 
     @ApiModelProperty(value = "开始日期")
-    private Date startDate;
+    private String startDate;
 
     @ApiModelProperty(value = "结束日期")
-    private Date endDate;
+    private String endDate;
 
     @ApiModelProperty(value = "1-有效 2-暂停 3-无效")
     private Integer status;
@@ -39,7 +46,7 @@ public class FlowAppInfo {
     @ApiModelProperty(value = "回调URL")
     private String callbackUrl;
 
-    @ApiModelProperty(value = "CPIP地址")
+    @ApiModelProperty(value = "ip白名单")
     private String ipAddress;
 
     @ApiModelProperty(value = "流量下发通道")

+ 48 - 0
modules/admin/src/main/java/com/fire/admin/dto/FlowAppInfoDto.java

@@ -0,0 +1,48 @@
+package com.fire.admin.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author: liuliu
+ * @ClassName: FlowAppInfoDto
+ * @Description: TODO 客户接入对象的网络传输对象
+ * @date: 2021-05-26 10:12
+ */
+@Data
+public class FlowAppInfoDto {
+
+    @ApiModelProperty(value = "接入ID号(修改必传)")
+    private Long flowAppId;
+
+    @ApiModelProperty(value = "应用ID")
+    private String appId;
+
+    @ApiModelProperty(value = "应用Key")
+    private String appKey;
+
+    @ApiModelProperty(value = "1-有效 2-暂停 3-无效")
+    private Integer status;
+
+    @ApiModelProperty(value = "APP名称")
+    private String appName;
+
+    @ApiModelProperty(value = "回调URL")
+    private String callbackUrl;
+
+    @ApiModelProperty(value = "ip白名单")
+    private String ipAddress;
+
+    @ApiModelProperty(value = "流量下发通道名称(冗余字段主要用于显示,名称根据通道id名称获取)")
+    private String dispatchChannel;
+
+    @ApiModelProperty(value = "限制发送总次数")
+    private Integer totalCount;
+
+    @ApiModelProperty(value = "限制回调时间")
+    private Integer time;
+
+    @ApiModelProperty(value = "通道ID(关联的通道组id)")
+    private  Integer channelId;
+
+}

+ 29 - 0
modules/admin/src/main/java/com/fire/admin/mapper/FlowAppMapper.java

@@ -0,0 +1,29 @@
+package com.fire.admin.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fire.admin.vo.FlowAppInfoVo;
+import com.fire.dto.FlowAppInfo;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author: liuliu
+ * @ClassName: FlowAppMapper
+ * @Description: TODO  客户app 接入mapper
+ * @date: 2021-05-25 17:41
+ */
+@Repository
+public interface FlowAppMapper extends BaseMapper<FlowAppInfo> {
+
+
+    /**
+     * @Description: TODO 客户接入分页
+     * @Param: 客户名称,支持模糊查询
+     * @return: 客户接入分页对象
+     * @Author: liuliu
+     * @Date: 2021/5/25 18:04
+     */
+    IPage<FlowAppInfoVo> queryFlowAppInfoPage(Page page, String customerName);
+
+}

+ 14 - 1
modules/admin/src/main/java/com/fire/admin/rest/FireProductController.java

@@ -5,7 +5,6 @@ import com.fire.admin.dto.FireProductInfoDto;
 import com.fire.admin.service.FireProductService;
 import com.fire.dto.response.BaseRestResponse;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -55,6 +54,13 @@ public class FireProductController {
         return new BaseRestResponse<>(fireProductService.insertProductInfo(fireProductInfoDto));
     }
 
+    /**
+    * @Description:  TODO  获取产品详情
+    * @Param:  产品id]
+    * @return: com.fire.dto.response.BaseRestResponse
+    * @Author: liuliu
+    * @Date: 2021/5/26 11:10
+    */
     @ApiOperation(value = "获取产品详情")
     @GetMapping("/{productId}")
     public  BaseRestResponse getProductInfoDetail(@PathVariable Integer productId){
@@ -62,6 +68,13 @@ public class FireProductController {
     }
 
 
+    /**
+    * @Description:  TODO 修改产品信息
+    * @Param:  产品网络传输对象
+    * @return: com.fire.dto.response.BaseRestResponse
+    * @Author: liuliu
+    * @Date: 2021/5/26 11:10
+    */
     @ApiOperation(value = "修改产品信息(和逻辑删除)")
     @PutMapping
     public BaseRestResponse updateProductInfo(@RequestBody FireProductInfoDto fireProductInfoDto){

+ 42 - 0
modules/admin/src/main/java/com/fire/admin/rest/FlowAppInfoController.java

@@ -0,0 +1,42 @@
+package com.fire.admin.rest;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fire.admin.service.FlowAppInfoService;
+import com.fire.dto.response.BaseRestResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author: liuliu
+ * @ClassName: FlowAppInfoController
+ * @Description: TODO 客户接入接口
+ * @date: 2021-05-25 18:38
+ */
+@Api(tags = "客户接入接口")
+@RestController
+@RequestMapping("/customer/app")
+public class FlowAppInfoController {
+
+    private FlowAppInfoService flowAppInfoService;
+
+    @Autowired
+    public FlowAppInfoController(FlowAppInfoService service) {
+        this.flowAppInfoService = service;
+    }
+
+    @ApiOperation("客户接入列表")
+    @GetMapping("/info")
+    public BaseRestResponse makeFlowAppInfo(Page page, String customerName) {
+        return new BaseRestResponse(flowAppInfoService.getFlowAppInfoPage(page, customerName));
+    }
+
+
+
+
+
+
+}

+ 10 - 0
modules/admin/src/main/java/com/fire/admin/rest/TestController.java

@@ -1,5 +1,6 @@
 package com.fire.admin.rest;
 
+import cn.hutool.core.util.RandomUtil;
 import com.fire.admin.dto.CustomerProductDto;
 import com.fire.admin.mapper.CustomerProductMapper;
 import io.swagger.annotations.Api;
@@ -35,4 +36,13 @@ public class TestController {
      return    customerProductMapper.queryCustomerProductByCustomerId(customerId,type);
     }
 
+
+    public static void main(String[] args) {
+        int i = RandomUtil.randomInt();
+        String string = RandomUtil.randomString(32);
+
+        System.out.println("i = " + i);
+        System.out.println("string = " + string);
+    }
+
 }

+ 38 - 0
modules/admin/src/main/java/com/fire/admin/service/FlowAppInfoService.java

@@ -0,0 +1,38 @@
+package com.fire.admin.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fire.admin.dto.FlowAppInfoDto;
+import com.fire.admin.vo.FlowAppInfoVo;
+import com.fire.dto.FlowAppInfo;
+
+/**
+ * @author: liuliu
+ * @ClassName: FlowAppInfoService
+ * @Description: TODO 客户接入 service
+ * @date: 2021-05-25 18:32
+ */
+public interface FlowAppInfoService extends IService<FlowAppInfo> {
+
+    /**
+     * @Description: TODO  根据客户名称分页查询客户信息
+     * @Param: customerName 客户名称
+     * @return: 客户分页对象
+     * @Author: liuliu
+     * @Date: 2021/5/25 18:33
+     */
+    IPage<FlowAppInfoVo> getFlowAppInfoPage(Page page, String customerName);
+
+
+    /**
+     * @Description: TODO 修改客户接入信息
+     * @Param:
+     * @return:
+     * @Author: liuliu
+     * @Date: 2021/5/26 10:11
+     */
+    void updateFlowAppInfo(FlowAppInfoDto flowAppInfoDto);
+
+
+}

+ 26 - 4
modules/admin/src/main/java/com/fire/admin/service/impl/CustomerServiceImpl.java

@@ -1,16 +1,20 @@
 package com.fire.admin.service.impl;
 
+import cn.hutool.core.util.RandomUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fire.admin.dto.CustomerDto;
 import com.fire.admin.mapper.CustomerMapper;
+import com.fire.admin.mapper.FlowAppMapper;
 import com.fire.admin.service.CustomerService;
 import com.fire.admin.util.SecurityUtil;
 import com.fire.admin.vo.CustomerInfoVo;
 import com.fire.dto.CustomerInfo;
+import com.fire.dto.FlowAppInfo;
 import com.fire.utils.date.DateUtils;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import redis.clients.jedis.JedisCluster;
 
@@ -32,6 +36,9 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, CustomerInf
     @Resource
     private JedisCluster jedisCluster;
 
+    @Autowired
+    private FlowAppMapper flowAppMapper;
+
     /**
      * @Description: TODO 分页获取客户信息
      * @Param: 查询条件,根据客户名称模糊查询
@@ -54,6 +61,7 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, CustomerInf
      */
     @Override
     public void insertCustomer(CustomerDto customerDto) {
+        // TODO   新增客户
         CustomerInfo customerInfo = CustomerInfo.builder().partnerId(customerDto.getPartnerId())
                 .customerName(customerDto.getCustomerName())
                 .shorterName(customerDto.getShorterName())
@@ -70,11 +78,25 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, CustomerInf
                 .partnerCommission(customerDto.getPartnerCommission())
                 .userId(customerDto.getUserId())
                 .priceCheck(customerDto.getPriceCheck()).build();
-        baseMapper.insert(customerInfo);
-
-        log.info("新增客户对象为:【{}】", customerInfo.toString());
+        int count1 = baseMapper.insert(customerInfo);
+        // TODO 新增客户接入
+        FlowAppInfo appInfo = FlowAppInfo.builder().customerId(customerInfo.getCustomerId())
+                .appId(RandomUtil.randomString(8))
+                .appKey(RandomUtil.randomString(32))
+                .startDate(DateUtils.strformatDatetime(LocalDateTime.now()))
+                .status(1)
+                .appName(customerInfo.getCustomerName().concat("话费包接入"))
+                .totalCount(1)
+                .time(7200).build();
+        int count2 = flowAppMapper.insert(appInfo);
+        if (count1 > 0 && count2 > 0) {
+            // TODO 发送消息到 topic  分别发送到 客户的 topic 以及 客户接入的 topic
 
+            log.info("新增客户对象为:【{}】", customerInfo.toString());
+            log.info("新增客户接入信息为:【{}】", appInfo.toString());
+        }
         jedisCluster.hset(CUSTOMER_AMOUNT.key(), CUSTOMER_AMOUNT.key().concat(customerInfo.getCustomerId().toString()), "0");
-
     }
+
+
 }

+ 1 - 1
modules/admin/src/main/java/com/fire/admin/service/impl/FireProductServiceImpl.java

@@ -36,7 +36,7 @@ public class FireProductServiceImpl extends ServiceImpl<FireProductMapper, FireP
      */
     @Override
     public IPage<FireProductInfoVo> getFireProductPageInfo(Page page, FireProductInfoDto fireProductInfoDto) {
-        return this.baseMapper.selectFireProductInfo(page, fireProductInfoDto);
+        return baseMapper.selectFireProductInfo(page, fireProductInfoDto);
     }
 
     /**

+ 69 - 0
modules/admin/src/main/java/com/fire/admin/service/impl/FlowAppInfoServiceImpl.java

@@ -0,0 +1,69 @@
+package com.fire.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fire.admin.dto.FlowAppInfoDto;
+import com.fire.admin.mapper.FlowAppMapper;
+import com.fire.admin.service.FlowAppInfoService;
+import com.fire.admin.vo.FlowAppInfoVo;
+import com.fire.dto.FlowAppInfo;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author: liuliu
+ * @ClassName: FlowAppInfoServiceImpl
+ * @Description: TODO  客户接入serviceImpl
+ * @date: 2021-05-25 18:35
+ */
+@Service
+@Slf4j
+public class FlowAppInfoServiceImpl extends ServiceImpl<FlowAppMapper, FlowAppInfo> implements FlowAppInfoService {
+
+
+    /**
+     * @Description: TODO 分页获取客户接入对象
+     * @Param: 客户名称
+     * @return: 客户接入分页对象
+     * @Author: liuliu
+     * @Date: 2021/5/25 18:36
+     */
+    @Override
+    public IPage<FlowAppInfoVo> getFlowAppInfoPage(Page page, String customerName) {
+        return baseMapper.queryFlowAppInfoPage(page, customerName);
+    }
+
+    /**
+    * @Description:  TODO 修改客户接入信息
+    * @Param:  客户接入网络传输对象
+    * @return: void
+    * @Author: liuliu
+    * @Date: 2021/5/26 10:16
+    */
+    @Override
+    public void updateFlowAppInfo(FlowAppInfoDto flowAppInfoDto) {
+        FlowAppInfo appInfo = FlowAppInfo.builder()
+                .flowAppId(flowAppInfoDto.getFlowAppId())
+                .appId(flowAppInfoDto.getAppId())
+                .appKey(flowAppInfoDto.getAppKey())
+                .status(flowAppInfoDto.getStatus())
+                .appName(flowAppInfoDto.getAppName())
+                .callbackUrl(flowAppInfoDto.getCallbackUrl())
+                .ipAddress(flowAppInfoDto.getIpAddress())
+                .dispatchChannel(flowAppInfoDto.getDispatchChannel())
+                .totalCount(flowAppInfoDto.getTotalCount())
+                .time(flowAppInfoDto.getTime())
+                .channelId(flowAppInfoDto.getChannelId()).build();
+        int count = baseMapper.insert(appInfo);
+        if(count>0){
+            log.info("客户接入信息修改,修改信息为:【{}】",appInfo.toString());
+            // TODO 发送消息到 客户接入 topic
+
+        }
+
+
+    }
+
+
+}

+ 63 - 0
modules/admin/src/main/java/com/fire/admin/vo/FlowAppInfoVo.java

@@ -0,0 +1,63 @@
+package com.fire.admin.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * @author: liuliu
+ * @ClassName: FlowAppInfoVo
+ * @Description: TODO 客户接入信息 view object
+ * @date: 2021-05-25 17:59
+ */
+@Data
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+@Builder
+public class FlowAppInfoVo {
+
+    @ApiModelProperty(value = "接入ID号")
+    private Long flowAppId;
+
+    @ApiModelProperty(value = "客户名称")
+    private String customerName;
+
+    @ApiModelProperty(value = "应用ID")
+    private String appId;
+
+    @ApiModelProperty(value = "应用Key")
+    private String appKey;
+
+    @ApiModelProperty(value = "开始日期")
+    private String startDate;
+
+    @ApiModelProperty(value = "结束日期")
+    private String endDate;
+
+    @ApiModelProperty(value = "1-有效 2-暂停 3-无效")
+    private Integer status;
+
+    @ApiModelProperty(value = "APP名称")
+    private String appName;
+
+    @ApiModelProperty(value = "回调URL")
+    private String callbackUrl;
+
+    @ApiModelProperty(value = "CPIP地址")
+    private String ipAddress;
+
+    @ApiModelProperty(value = "流量下发通道")
+    private String dispatchChannel;
+
+    @ApiModelProperty(value = "限制发送总次数")
+    private Integer totalCount;
+
+    @ApiModelProperty(value = "限制回调时间")
+    private Integer time;
+
+    @ApiModelProperty(value = "通道ID(关联的通道组id)")
+    private  Integer channelId;
+
+}

+ 33 - 0
modules/admin/src/main/resources/bootstrap.yml

@@ -1,7 +1,40 @@
+
+spring:
+  profiles:
+    active: dev
+
+---
 server:
   port: 8081
 
 spring:
+  config:
+    activate:
+      on-profile: dev
+  application:
+    name: admin
+  jackson:
+    date-format: yyyy-MM-dd HH:mm:ss
+    time-zone: GMT+8
+  cloud:
+    nacos:
+      config:
+        server-addr: 192.168.2.114:8848
+        file-extension: yaml
+        namespace: fire
+      discovery:
+        server-addr: 192.168.2.114:8848
+        namespace: fire
+        service: admin
+
+---
+server:
+  port: 8082
+
+spring:
+  config:
+    activate:
+      on-profile: prod
   application:
     name: admin
   jackson:

+ 3 - 1
modules/admin/src/main/resources/mapper/FireProductMapper.xml

@@ -72,7 +72,9 @@
             <if test="query.operator != null and query.operator != ''">
                 and operator =#{query.operator}
             </if>
-            and is_delete = 0
+            <if test="query.isDelete != null and query.isDelete != ''">
+                and is_delete =#{query.isDelete}
+            </if>
         </where>
         ORDER BY create_time DESC
     </select>

+ 68 - 0
modules/admin/src/main/resources/mapper/FlowAppInfoMapper.xml

@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fire.admin.mapper.FlowAppMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.fire.dto.FlowAppInfo">
+        <id column="flow_app_id" property="flowAppId"/>
+        <result column="customer_id" property="customerId"/>
+        <result column="app_id" property="appId"/>
+        <result column="app_key" property="appKey"/>
+        <result column="start_date" property="startDate"/>
+        <result column="end_date" property="endDate"/>
+        <result column="status" property="status"/>
+        <result column="app_name" property="appName"/>
+        <result column="callback_url" property="callbackUrl"/>
+        <result column="ip_address" property="ipAddress"/>
+        <result column="dispatch_channel" property="dispatchChannel"/>
+        <result column="total_count" property="totalCount"/>
+        <result column="time" property="time"/>
+        <result column="channel_id" property="channelId"/>
+    </resultMap>
+
+
+    <resultMap id="ResultMap" type="com.fire.admin.vo.FlowAppInfoVo">
+        <id column="flow_app_id" property="flowAppId"/>
+        <result column="customer_name" property="customerName"/>
+        <result column="app_id" property="appId"/>
+        <result column="app_key" property="appKey"/>
+        <result column="start_date" property="startDate"/>
+        <result column="end_date" property="endDate"/>
+        <result column="status" property="status"/>
+        <result column="app_name" property="appName"/>
+        <result column="callback_url" property="callbackUrl"/>
+        <result column="ip_address" property="ipAddress"/>
+        <result column="dispatch_channel" property="dispatchChannel"/>
+        <result column="total_count" property="totalCount"/>
+        <result column="time" property="time"/>
+        <result column="channel_id" property="channelId"/>
+    </resultMap>
+
+
+    <select id="queryFlowAppInfoPage" resultMap="ResultMap" parameterType="java.lang.String">
+        SELECT
+        f.flow_app_id,
+        cu.customer_name,
+        f.app_id,
+        f.app_key,
+        f.start_date,
+        f.end_date,
+        f.status,
+        f.app_name,
+        f.callback_url,
+        f.ip_address,
+        f.dispatch_channel,
+        f.total_count,
+        f.time,
+        f.channel_id
+        FROM flow_app_info AS f
+        LEFT JOIN customer_info AS cu ON f.customer_id=cu.customer_id
+        <where>
+            <if test="customerName !=null and customerName !=''">
+                AND cu.customer_name LIKE CONCAT('%',#{customerName},'%')
+            </if>
+        </where>
+
+    </select>
+
+</mapper>