Forráskód Böngészése

整合rabbitmq完成

yq 3 éve
szülő
commit
755494c880

+ 4 - 1
pom.xml

@@ -249,7 +249,10 @@
             <artifactId>orika-core</artifactId>
             <version>1.5.4</version>
         </dependency>
-
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-amqp</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

+ 78 - 5
src/main/java/com/usky/dxtop/controller/web/TestController.java

@@ -10,20 +10,27 @@ import com.usky.dxtop.common.utils.http.HttpUtils;
 import com.usky.dxtop.model.Order;
 import com.usky.dxtop.service.OrderService;
 import com.usky.dxtop.service.api.TopApi;
+import com.usky.dxtop.service.config.rabbiemq.CardConfig;
+import com.usky.dxtop.service.config.rabbiemq.PersonConfig;
 import com.usky.dxtop.service.emun.OrderPayType;
 import com.usky.dxtop.service.emun.OrderStatus;
 import com.usky.dxtop.service.vo.CardLogsRequest;
 import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.logging.log4j.core.util.JsonUtils;
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.List;
-import java.util.TreeMap;
+import java.nio.charset.StandardCharsets;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
 
 /**
  * @author yq
@@ -33,9 +40,75 @@ import java.util.TreeMap;
 @RestController
 public class TestController {
 
-    @GetMapping("test1")
-    public void test1(CardLogsRequest cardLogsRequest){
-        System.out.println(cardLogsRequest);
+    @Autowired
+    private PersonConfig personConfig;
+
+    @Autowired
+    private CardConfig cardConfig;
+
+    @GetMapping("/personTest")
+    public String sendDirectMessage() {
+        String messageId = String.valueOf(UUID.randomUUID());
+        String messageData = "test message, hello!";
+        String createTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+        Map<String,Object> map=new HashMap<>();
+        map.put("messageId",messageId);
+        map.put("messageData",messageData);
+        map.put("createTime",createTime);
+        //将消息携带绑定键值:TestDirectRouting 发送到交换机TestDirectExchange
+        personConfig.rabbitTemplate().convertAndSend(personConfig.getPersonExchange(), personConfig.getPersonRouteKey(), map);
+        return "ok";
+    }
+
+    @GetMapping("/cartTest")
+    public String sendDirectMessageCard() {
+        String messageId = String.valueOf(UUID.randomUUID());
+        String messageData = "test message, hello!";
+        String createTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+        Map<String,Object> map=new HashMap<>();
+        map.put("messageId",messageId);
+        map.put("messageData",messageData);
+        map.put("createTime",createTime);
+        //将消息携带绑定键值:TestDirectRouting 发送到交换机TestDirectExchange
+        RabbitTemplate rabbitTemplate = cardConfig.rabbitTemplate();
+        cardConfig.rabbitTemplate().convertAndSend(cardConfig.getCardExchange(), cardConfig.getCardRouteKey(), map);
+        return "ok";
+    }
+
+    @RabbitListener(queues = "profile_trans_produce", containerFactory = "personListenerFactory")
+    public void dealDeclareMessage(Message message) throws Exception {
+        try {
+            //消息类型
+            String routingKey = message.getMessageProperties().getReceivedRoutingKey();
+            log.info(routingKey);
+            //消息内容
+            String s = new String(message.getBody(), StandardCharsets.UTF_8);
+            //处理你的消息
+            log.info("消息消费"+s);
+        } catch (Exception e) {
+            log.info("你的队列名"+"异常信息:" + e.getMessage());
+        } finally {
+
+        }
+    }
+
+
+    @RabbitListener(queues = "card_trans_produce", containerFactory = "cardListenerFactory")
+    public void dealDeclareMessageCart(Message message) throws Exception {
+        try {
+            //消息类型
+            String routingKey = message.getMessageProperties().getReceivedRoutingKey();
+            log.info(routingKey);
+            //消息内容
+            String s = new String(message.getBody(), StandardCharsets.UTF_8);
+            //处理你的消息
+            log.info("消息消费"+s);
+        } catch (Exception e) {
+            log.info("你的队列名"+"异常信息:" + e.getMessage());
+        } finally {
+
+        }
     }
 
+
 }

+ 96 - 0
src/main/java/com/usky/dxtop/service/config/rabbiemq/CardConfig.java

@@ -0,0 +1,96 @@
+package com.usky.dxtop.service.config.rabbiemq;
+
+import com.usky.dxtop.service.config.MqProperties;
+import lombok.Data;
+import org.springframework.amqp.core.*;
+import org.springframework.amqp.rabbit.annotation.EnableRabbit;
+import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
+import org.springframework.amqp.rabbit.connection.ConnectionFactory;
+import org.springframework.amqp.rabbit.core.RabbitAdmin;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
+import org.springframework.amqp.support.converter.MessageConverter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+
+/**
+ * @author yq
+ * @date 2021/9/8 9:18
+ */
+@Data
+@Configuration
+@EnableRabbit
+public class CardConfig {
+
+
+    private static final String NAME = "card_trans_produce";
+    @Autowired
+    private MqProperties mqProperties;
+
+    private String virtualHost = NAME;
+    /**
+     * 人员 exchange
+     */
+    private String cardExchange = NAME;
+
+
+    /**
+     * 人员 queue
+     */
+    private String cardQueue = NAME;
+
+    /**
+     * 人员 route key
+     */
+    private String cardRouteKey = NAME;
+
+
+    @Bean
+    public DirectExchange cardExchange() {
+        DirectExchange exchange = new DirectExchange(cardExchange, true, false);
+        exchange.setAdminsThatShouldDeclare(amqpAdmin());
+        return exchange;
+    }
+
+    @Bean
+    Queue cardQueue() {
+        Queue queue = new Queue(cardQueue, true);
+        queue.setAdminsThatShouldDeclare(amqpAdmin());
+        return queue;
+    }
+
+    @Bean("cartBin")
+    Binding bindingPersonDirect() {
+        Binding binding = BindingBuilder.bind(cardQueue()).to(cardExchange()).with(cardRouteKey);
+        binding.setAdminsThatShouldDeclare(amqpAdmin());
+        return binding;
+    }
+
+    @Bean(name = "cardConnectionFactory")
+    public ConnectionFactory cardConnectionFactory(){
+        return mqProperties.connectionFactory(virtualHost);
+    }
+
+    @Bean("cartAdmin")
+    AmqpAdmin amqpAdmin() {
+        return new RabbitAdmin(cardConnectionFactory());
+    }
+
+    @Bean(name = "cardRabbitTemplate")
+    public RabbitTemplate rabbitTemplate() {
+        RabbitTemplate rabbitTemplate = mqProperties.rabbitTemplate(cardConnectionFactory());
+        rabbitTemplate.setMessageConverter(mqProperties.messageConverter());
+        return rabbitTemplate;
+    }
+
+
+    @Bean(name = "cardListenerFactory")
+    public SimpleRabbitListenerContainerFactory listenerFactory(
+            SimpleRabbitListenerContainerFactoryConfigurer configurer) {
+        return mqProperties.listenerFactory(configurer,cardConnectionFactory());
+    }
+}

+ 80 - 0
src/main/java/com/usky/dxtop/service/config/rabbiemq/ChargeConfig.java

@@ -0,0 +1,80 @@
+//package com.usky.dxtop.service.config.rabbiemq;
+//
+//import com.usky.dxtop.service.config.MqProperties;
+//import lombok.Data;
+//import org.springframework.amqp.core.*;
+//import org.springframework.amqp.rabbit.annotation.EnableRabbit;
+//import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
+//import org.springframework.amqp.rabbit.connection.ConnectionFactory;
+//import org.springframework.amqp.rabbit.core.RabbitAdmin;
+//import org.springframework.amqp.rabbit.core.RabbitTemplate;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer;
+//import org.springframework.boot.context.properties.ConfigurationProperties;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.context.annotation.Primary;
+//
+///**
+// * @author yq
+// * @date 2021/9/8 9:18
+// */
+//@Data
+//@Configuration
+//@EnableRabbit
+//public class ChargeConfig {
+//
+//    private static final String NAME = "charge_trans_produce";
+//    @Autowired
+//    private MqProperties mqProperties;
+//
+//    private String virtualHost;
+//    /**
+//     * 人员 exchange
+//     */
+//    private String chargeExchange = NAME;
+//
+//
+//    /**
+//     * 人员 queue
+//     */
+//    private String chargeQueue = NAME;
+//
+//    /**
+//     * 人员 route key
+//     */
+//    private String chargeRouteKey = NAME;
+//
+//
+//    @Bean
+//    public DirectExchange chargeExchange() {
+//        return new DirectExchange(chargeExchange, true, false);
+//    }
+//
+//    @Bean
+//    Queue chargeQueue() {
+//        return new Queue(chargeQueue,true);
+//    }
+//
+//    @Bean
+//    Binding bindingPersonDirect() {
+//        return BindingBuilder.bind(chargeQueue()).to(chargeExchange()).with(chargeRouteKey);
+//    }
+//
+//    @Bean(name = "chargeConnectionFactory")
+//    public ConnectionFactory chargeConnectionFactory(){
+//        return mqProperties.connectionFactory(virtualHost);
+//    }
+//
+//    @Bean(name = "chargeRabbitTemplate")
+//    public RabbitTemplate rabbitTemplate() {
+//        return mqProperties.rabbitTemplate(chargeConnectionFactory());
+//    }
+//
+//
+//    @Bean(name = "chargeListenerFactory")
+//    public SimpleRabbitListenerContainerFactory listenerFactory(
+//            SimpleRabbitListenerContainerFactoryConfigurer configurer) {
+//        return mqProperties.listenerFactory(configurer,chargeConnectionFactory());
+//    }
+//}

+ 80 - 0
src/main/java/com/usky/dxtop/service/config/rabbiemq/DishConfig.java

@@ -0,0 +1,80 @@
+//package com.usky.dxtop.service.config.rabbiemq;
+//
+//import com.usky.dxtop.service.config.MqProperties;
+//import lombok.Data;
+//import org.springframework.amqp.core.*;
+//import org.springframework.amqp.rabbit.annotation.EnableRabbit;
+//import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
+//import org.springframework.amqp.rabbit.connection.ConnectionFactory;
+//import org.springframework.amqp.rabbit.core.RabbitAdmin;
+//import org.springframework.amqp.rabbit.core.RabbitTemplate;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer;
+//import org.springframework.boot.context.properties.ConfigurationProperties;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.context.annotation.Primary;
+//
+///**
+// * @author yq
+// * @date 2021/9/8 9:18
+// */
+//@Data
+//@Configuration
+//@EnableRabbit
+//public class DishConfig {
+//
+//    private static final String NAME = "dish_trade_produce";
+//    @Autowired
+//    private MqProperties mqProperties;
+//
+//    private String virtualHost;
+//    /**
+//     * 人员 exchange
+//     */
+//    private String dishExchange = NAME;
+//
+//
+//    /**
+//     * 人员 queue
+//     */
+//    private String dishQueue = NAME;
+//
+//    /**
+//     * 人员 route key
+//     */
+//    private String dishRouteKey = NAME;
+//
+//
+//    @Bean
+//    public DirectExchange dishExchange() {
+//        return new DirectExchange(dishExchange, true, false);
+//    }
+//
+//    @Bean
+//    Queue dishQueue() {
+//        return new Queue(dishQueue,true);
+//    }
+//
+//    @Bean
+//    Binding bindingPersonDirect() {
+//        return BindingBuilder.bind(dishQueue()).to(dishExchange()).with(dishRouteKey);
+//    }
+//
+//    @Bean(name = "dishConnectionFactory")
+//    public ConnectionFactory dishConnectionFactory(){
+//        return mqProperties.connectionFactory(virtualHost);
+//    }
+//
+//    @Bean(name = "dishRabbitTemplate")
+//    public RabbitTemplate rabbitTemplate() {
+//        return mqProperties.rabbitTemplate(dishConnectionFactory());
+//    }
+//
+//
+//    @Bean(name = "dishListenerFactory")
+//    public SimpleRabbitListenerContainerFactory listenerFactory(
+//            SimpleRabbitListenerContainerFactoryConfigurer configurer) {
+//        return mqProperties.listenerFactory(configurer,dishConnectionFactory());
+//    }
+//}

+ 80 - 0
src/main/java/com/usky/dxtop/service/config/rabbiemq/FaceConfig.java

@@ -0,0 +1,80 @@
+//package com.usky.dxtop.service.config.rabbiemq;
+//
+//import com.usky.dxtop.service.config.MqProperties;
+//import lombok.Data;
+//import org.springframework.amqp.core.*;
+//import org.springframework.amqp.rabbit.annotation.EnableRabbit;
+//import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
+//import org.springframework.amqp.rabbit.connection.ConnectionFactory;
+//import org.springframework.amqp.rabbit.core.RabbitAdmin;
+//import org.springframework.amqp.rabbit.core.RabbitTemplate;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer;
+//import org.springframework.boot.context.properties.ConfigurationProperties;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.context.annotation.Primary;
+//
+///**
+// * @author yq
+// * @date 2021/9/8 9:18
+// */
+//@Data
+//@Configuration
+//@EnableRabbit
+//public class FaceConfig {
+//
+//    private static final String NAME = "profile_face";
+//    @Autowired
+//    private MqProperties mqProperties;
+//
+//    private String virtualHost;
+//    /**
+//     * 人员 exchange
+//     */
+//    private String faceExchange = NAME;
+//
+//
+//    /**
+//     * 人员 queue
+//     */
+//    private String faceQueue = NAME;
+//
+//    /**
+//     * 人员 route key
+//     */
+//    private String faceRouteKey = NAME;
+//
+//
+//    @Bean
+//    public DirectExchange faceExchange() {
+//        return new DirectExchange(faceExchange, true, false);
+//    }
+//
+//    @Bean
+//    Queue faceQueue() {
+//        return new Queue(faceQueue,true);
+//    }
+//
+//    @Bean
+//    Binding bindingPersonDirect() {
+//        return BindingBuilder.bind(faceQueue()).to(faceExchange()).with(faceRouteKey);
+//    }
+//
+//    @Bean(name = "faceConnectionFactory")
+//    public ConnectionFactory faceConnectionFactory(){
+//        return mqProperties.connectionFactory(virtualHost);
+//    }
+//
+//    @Bean(name = "faceRabbitTemplate")
+//    public RabbitTemplate rabbitTemplate() {
+//        return mqProperties.rabbitTemplate(faceConnectionFactory());
+//    }
+//
+//
+//    @Bean(name = "faceListenerFactory")
+//    public SimpleRabbitListenerContainerFactory listenerFactory(
+//            SimpleRabbitListenerContainerFactoryConfigurer configurer) {
+//        return mqProperties.listenerFactory(configurer,faceConnectionFactory());
+//    }
+//}

+ 105 - 0
src/main/java/com/usky/dxtop/service/config/rabbiemq/PersonConfig.java

@@ -0,0 +1,105 @@
+package com.usky.dxtop.service.config.rabbiemq;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.usky.dxtop.service.config.MqProperties;
+import lombok.Data;
+import org.springframework.amqp.core.*;
+import org.springframework.amqp.rabbit.annotation.EnableRabbit;
+import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
+import org.springframework.amqp.rabbit.connection.ConnectionFactory;
+import org.springframework.amqp.rabbit.core.RabbitAdmin;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
+import org.springframework.amqp.support.converter.MessageConverter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+import org.springframework.context.annotation.Primary;
+
+/**
+ * @author yq
+ * @date 2021/9/8 9:18
+ */
+@Data
+@Configuration
+@EnableRabbit
+public class PersonConfig {
+
+    private static final String NAME = "profile_trans_produce";
+
+    @Autowired
+    private MqProperties mqProperties;
+
+    private String virtualHost = NAME;
+    /**
+     * 人员 exchange
+     */
+    private String personExchange = NAME;
+
+
+    /**
+     * 人员 queue
+     */
+    private String personQueue = NAME;
+
+    /**
+     * 人员 route key
+     */
+    private String personRouteKey = NAME;
+
+
+    @Bean
+    public DirectExchange personExchange() {
+        DirectExchange exchange = new DirectExchange(personExchange, true, false);
+        exchange.setAdminsThatShouldDeclare(amqpAdmin());
+        return exchange;
+    }
+
+    @Bean
+    Queue personQueue() {
+        Queue queue = new Queue(personQueue, true);
+        queue.setAdminsThatShouldDeclare(amqpAdmin());
+        return queue;
+    }
+
+    @Bean("personBin")
+    @Primary
+    Binding bindingPersonDirect() {
+        Binding binding = BindingBuilder.bind(personQueue()).to(personExchange()).with(personRouteKey);
+        binding.setAdminsThatShouldDeclare(amqpAdmin());
+        return binding;
+    }
+
+    @Bean(name = "personConnectionFactory")
+    @Primary
+    public ConnectionFactory personConnectionFactory(){
+        return mqProperties.connectionFactory(virtualHost);
+    }
+
+    @Bean("personAdmin")
+    @Primary
+    AmqpAdmin amqpAdmin() {
+        return new RabbitAdmin(personConnectionFactory());
+    }
+
+    @Bean(name = "personRabbitTemplate")
+    @Primary
+    public RabbitTemplate rabbitTemplate() {
+        RabbitTemplate rabbitTemplate = mqProperties.rabbitTemplate(personConnectionFactory());
+        rabbitTemplate.setMessageConverter(mqProperties.messageConverter());
+        return rabbitTemplate;
+    }
+
+
+    @Bean(name = "personListenerFactory")
+    @Primary
+    public SimpleRabbitListenerContainerFactory listenerFactory(
+            SimpleRabbitListenerContainerFactoryConfigurer configurer) {
+        return mqProperties.listenerFactory(configurer,personConnectionFactory());
+    }
+
+}

+ 84 - 0
src/main/java/com/usky/dxtop/service/config/rabbiemq/ProdConfig.java

@@ -0,0 +1,84 @@
+//package com.usky.dxtop.service.config.rabbiemq;
+//
+//import com.usky.dxtop.service.config.MqProperties;
+//import lombok.Data;
+//import org.springframework.amqp.core.*;
+//import org.springframework.amqp.rabbit.annotation.EnableRabbit;
+//import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
+//import org.springframework.amqp.rabbit.connection.ConnectionFactory;
+//import org.springframework.amqp.rabbit.core.RabbitAdmin;
+//import org.springframework.amqp.rabbit.core.RabbitTemplate;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.beans.factory.annotation.Qualifier;
+//import org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer;
+//import org.springframework.boot.context.properties.ConfigurationProperties;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.context.annotation.Primary;
+//import org.springframework.stereotype.Component;
+//
+///**
+// * @author yq
+// * @date 2021/9/8 9:19
+// */
+//@Data
+//@Configuration
+//@EnableRabbit
+//public class ProdConfig {
+//
+//    private static final String NAME = "prod_trans_produce";
+//
+//    @Autowired
+//    private MqProperties mqProperties;
+//
+//    private String virtualHost = NAME;
+//
+//    /**
+//     * 人员 exchange
+//     */
+//    private String prodExchange = NAME;
+//    /**
+//     * 人员 queue
+//     */
+//    private String prodQueue = NAME;
+//
+//    /**
+//     * 人员 route key
+//     */
+//    private String prodRouteKey = NAME;
+//
+//
+//    @Bean
+//    public DirectExchange prodExchange() {
+//        return new DirectExchange(prodExchange, true, false);
+//    }
+//
+//    @Bean
+//    Queue prodQueue() {
+//        return new Queue(prodQueue,true);
+//    }
+//
+//    @Bean
+//    Binding bindingPersonDirect() {
+//        return BindingBuilder.bind(prodQueue()).to(prodExchange()).with(prodRouteKey);
+//    }
+//
+//
+//    @Bean(name = "prodConnectionFactory")
+//    public ConnectionFactory prodConnectionFactory(){
+//        return mqProperties.connectionFactory(virtualHost);
+//    }
+//
+//    @Bean(name = "prodRabbitTemplate")
+//    public RabbitTemplate rabbitTemplate() {
+//        return mqProperties.rabbitTemplate(prodConnectionFactory());
+//    }
+//
+//
+//    @Bean(name = "prodListenerFactory")
+//    public SimpleRabbitListenerContainerFactory listenerFactory(
+//            SimpleRabbitListenerContainerFactoryConfigurer configurer) {
+//        return mqProperties.listenerFactory(configurer,prodConnectionFactory());
+//    }
+//
+//}

+ 38 - 0
src/main/java/com/usky/dxtop/service/vo/McardVO.java

@@ -0,0 +1,38 @@
+package com.usky.dxtop.service.vo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author yq
+ * @date 2021/9/7 17:57
+ */
+@Data
+public class McardVO {
+
+    private Long seq;
+
+    private Date createDate;
+
+    private String card;
+
+    private String cardNo;
+
+    private Integer type;
+
+    private Integer term;
+
+    private Integer shop;
+
+    private String termName;
+
+    private String shopName;
+
+    private Double amt;
+
+    private Double balance;
+
+    private Integer account;
+
+}

+ 37 - 0
src/main/java/com/usky/dxtop/service/vo/MchargeVO.java

@@ -0,0 +1,37 @@
+package com.usky.dxtop.service.vo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author yq
+ * @date 2021/9/7 17:57
+ */
+@Data
+public class MchargeVO {
+
+    private Long seq;
+
+    private Date createDate;
+
+    private String card;
+
+    private String cardNo;
+
+    private Integer type;
+
+    private Integer term;
+
+    private Integer shop;
+
+    private String termName;
+
+    private String shopName;
+
+    private Double amt;
+
+    private Double balance;
+
+    private Integer account;
+}

+ 62 - 0
src/main/java/com/usky/dxtop/service/vo/MdishVO.java

@@ -0,0 +1,62 @@
+package com.usky.dxtop.service.vo;
+
+import io.lettuce.core.output.DoubleOutput;
+import lombok.Data;
+import org.springframework.security.core.userdetails.UserDetails;
+
+import java.util.Date;
+
+/**
+ * @author yq
+ * @date 2021/9/7 17:57
+ */
+@Data
+public class MdishVO {
+
+    private Long seq;
+
+    private Date createDate;
+
+    private String card;
+
+    private String cardNo;
+
+    private Integer type;
+
+    private Integer part;
+
+    private Integer shop;
+
+    private String termName;
+
+    private String shopName;
+
+    private Double amt;
+
+    private Double balance;
+
+    private Integer account;
+
+
+    private String name;
+
+    private String mob;
+
+
+    private Details details;
+
+    private Payments payments;
+    @Data
+    public static class Details{
+        private Integer pid;
+        private String name;
+        private Double price;
+        private Double amt;
+    }
+    @Data
+    public static class Payments{
+        private Integer type;
+        private Double amt;
+        private Double balance;
+    }
+}

+ 11 - 0
src/main/java/com/usky/dxtop/service/vo/MfaceVO.java

@@ -0,0 +1,11 @@
+package com.usky.dxtop.service.vo;
+
+import lombok.Data;
+
+/**
+ * @author yq
+ * @date 2021/9/7 17:58
+ */
+@Data
+public class MfaceVO {
+}

+ 11 - 0
src/main/java/com/usky/dxtop/service/vo/MpersonVO.java

@@ -0,0 +1,11 @@
+package com.usky.dxtop.service.vo;
+
+import lombok.Data;
+
+/**
+ * @author yq
+ * @date 2021/9/7 17:57
+ */
+@Data
+public class MpersonVO {
+}

+ 37 - 0
src/main/java/com/usky/dxtop/service/vo/MprodVO.java

@@ -0,0 +1,37 @@
+package com.usky.dxtop.service.vo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author yq
+ * @date 2021/9/7 17:58
+ */
+@Data
+public class MprodVO {
+
+    private Long seq;
+
+    private Date createDate;
+
+    private String card;
+
+    private String cardNo;
+
+    private Integer type;
+
+    private Integer profile;
+
+    private String name;
+
+    private String mob;
+
+    private String tel;
+
+    private Integer gender;
+
+    private Date birthday;
+
+
+}

+ 4 - 1
src/main/resources/application-dev.properties

@@ -93,4 +93,7 @@ ruoyi.demoEnabled: true
 ruoyi.addressEnabled: false
 ruoyi.captchaType: math
 
-
+spring.rabbitmq.host=47.98.201.73
+spring.rabbitmq.port=5672
+spring.rabbitmq.username=guest
+spring.rabbitmq.password=guest