From 995486a0c3b98600c7ff212cc4ba1b05eaccb948 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 26 May 2020 16:22:45 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/chonggaoxiao/new_excoin.git

---
 src/main/java/com/xcong/excoin/modules/platform/dao/PlatformCnyUsdtExchangeDao.java                  |   12 
 src/main/java/com/xcong/excoin/modules/platform/entity/PlatformCnyUsdtExchangeEntity.java            |   26 ++
 src/main/java/com/xcong/excoin/modules/platform/dao/PlatformPaymentMethodDao.java                    |    9 
 src/main/java/com/xcong/excoin/modules/platform/entity/PlatformPaymentMethodEntity.java              |   26 ++
 src/main/resources/mapper/home/MemberPaymentMethodDao.xml                                            |    9 
 pom.xml                                                                                              |   11 
 src/main/java/com/xcong/excoin/modules/platform/service/PlatformPaymentMethodService.java            |   13 +
 src/main/java/com/xcong/excoin/modules/platform/service/impl/PlatformPaymentMethodServiceImpl.java   |   40 +++
 src/main/java/com/xcong/excoin/rabbit/producer/TestProducer.java                                     |   42 +++
 src/main/java/com/xcong/excoin/modules/platform/service/PlatformCnyUsdtExchangeService.java          |   13 +
 src/main/java/com/xcong/excoin/rabbit/consumer/TestConsumer.java                                     |   21 +
 src/main/java/com/xcong/excoin/modules/home/entity/MemberPaymentMethodEntity.java                    |   70 +---
 src/main/java/com/xcong/excoin/modules/platform/vo/PlatformCnyUsdtExchangeVo.java                    |   13 +
 src/main/java/com/xcong/excoin/modules/home/dao/MemberQuickBuySaleDao.java                           |    3 
 src/test/java/com/xcong/excoin/RSATest.java                                                          |    7 
 src/main/java/com/xcong/excoin/modules/home/dao/MemberPaymentMethodDao.java                          |    3 
 src/main/java/com/xcong/excoin/configurations/properties/CustomRabbitProperties.java                 |   19 +
 src/main/resources/mapper/home/MemberQuickBuySaleDao.xml                                             |    5 
 src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java                                    |   63 ++++
 src/main/java/com/xcong/excoin/modules/platform/service/impl/PlatformCnyUsdtExchangeServiceImpl.java |   38 ++
 src/main/resources/mapper/member/MemberWalletCoinDao.xml                                             |   11 
 src/test/java/com/xcong/excoin/RabbitMqTest.java                                                     |   24 +
 src/main/java/com/xcong/excoin/modules/home/service/impl/MemberQuickBuySaleServiceImpl.java          |  114 +++++---
 src/main/java/com/xcong/excoin/modules/home/service/MemberQuickBuySaleService.java                   |    7 
 src/main/java/com/xcong/excoin/modules/home/controller/MemberQuickBuySaleController.java             |   82 ++++-
 src/main/java/com/xcong/excoin/modules/member/dao/MemberWalletCoinDao.java                           |    2 
 src/main/resources/application.yml                                                                   |   15 +
 src/main/java/com/xcong/excoin/modules/platform/controller/PlatformController.java                   |   34 ++
 28 files changed, 611 insertions(+), 121 deletions(-)

diff --git a/pom.xml b/pom.xml
index 20f2f96..eaea49e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,6 +27,8 @@
         <mapstruct.version>1.3.1.Final</mapstruct.version>
         <hutool.version>5.3.1</hutool.version>
         <fastjson.version>1.2.61</fastjson.version>
+        <netty.version>4.1.33.Final</netty.version>
+        <dom4j.version>1.6.1</dom4j.version>
     </properties>
 
     <dependencies>
@@ -43,6 +45,11 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-amqp</artifactId>
         </dependency>
 
 <!--        <dependency>-->
@@ -166,14 +173,14 @@
         <dependency>
             <groupId>dom4j</groupId>
             <artifactId>dom4j</artifactId>
-            <version>1.6.1</version>
+            <version>${dom4j.version}</version>
         </dependency>
 
 
         <dependency>
             <groupId>io.netty</groupId>
             <artifactId>netty-all</artifactId>
-            <version>4.1.33.Final</version>
+            <version>${netty.version}</version>
         </dependency>
     </dependencies>
 
diff --git a/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java b/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
new file mode 100644
index 0000000..eec7531
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
@@ -0,0 +1,63 @@
+package com.xcong.excoin.configurations;
+
+import com.xcong.excoin.configurations.properties.CustomRabbitProperties;
+import org.springframework.amqp.core.Binding;
+import org.springframework.amqp.core.BindingBuilder;
+import org.springframework.amqp.core.DirectExchange;
+import org.springframework.amqp.core.Queue;
+import org.springframework.amqp.rabbit.connection.ConnectionFactory;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.factory.config.ConfigurableBeanFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Scope;
+
+import javax.annotation.Resource;
+
+/**
+ * @author wzy
+ * @date 2020-05-25
+ **/
+@Configuration
+public class RabbitMqConfig {
+
+    public static final String EXCHANGE_ONE = "excoin-exchange-one";
+
+    public static final String QUEUE_TEST = "test-queue";
+
+    public static final String ROUTING_KEY_TEST = "test-routingKey";
+
+    @Resource
+    private ConnectionFactory connectionFactory;
+
+//    @Bean
+//    public ConnectionFactory connectionFactory() {
+//        CachingConnectionFactory connectionFactory = new CachingConnectionFactory(customRabbitProperties.getHost(), customRabbitProperties.getPort());
+//        connectionFactory.setUsername(customRabbitProperties.getUsername());
+//        connectionFactory.setPassword(customRabbitProperties.getPassword());
+//        connectionFactory.setPublisherConfirmType(CachingConnectionFactory.ConfirmType.CORRELATED);
+//        return connectionFactory;
+//    }
+
+    @Bean
+    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
+    public RabbitTemplate rabbitTemplate() {
+        return new RabbitTemplate(connectionFactory);
+    }
+
+    @Bean
+    public DirectExchange defaultExchange() {
+        return new DirectExchange(EXCHANGE_ONE);
+    }
+
+    @Bean
+    public Queue testQueue() {
+        return new Queue(QUEUE_TEST, true);
+    }
+
+    @Bean
+    public Binding binding() {
+        return BindingBuilder.bind(testQueue()).to(defaultExchange()).with(ROUTING_KEY_TEST);
+    }
+
+}
diff --git a/src/main/java/com/xcong/excoin/configurations/properties/CustomRabbitProperties.java b/src/main/java/com/xcong/excoin/configurations/properties/CustomRabbitProperties.java
new file mode 100644
index 0000000..47ddc4c
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/configurations/properties/CustomRabbitProperties.java
@@ -0,0 +1,19 @@
+package com.xcong.excoin.configurations.properties;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author wzy
+ * @date 2020-05-25
+ **/
+@Data
+@Configuration
+@ConfigurationProperties(prefix = "custom.rabbitmq")
+public class CustomRabbitProperties {
+    private String host;
+    private int port;
+    private String username;
+    private String password;
+}
diff --git a/src/main/java/com/xcong/excoin/modules/home/controller/MemberQuickBuySaleController.java b/src/main/java/com/xcong/excoin/modules/home/controller/MemberQuickBuySaleController.java
index 32725f9..869335b 100644
--- a/src/main/java/com/xcong/excoin/modules/home/controller/MemberQuickBuySaleController.java
+++ b/src/main/java/com/xcong/excoin/modules/home/controller/MemberQuickBuySaleController.java
@@ -8,57 +8,103 @@
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.alibaba.druid.util.StringUtils;
+import com.xcong.excoin.common.LoginUserUtils;
 import com.xcong.excoin.common.response.Result;
 import com.xcong.excoin.modules.home.dto.MemberQuickBuySaleCommitDto;
 import com.xcong.excoin.modules.home.dto.MemberQuickBuySaleDto;
 import com.xcong.excoin.modules.home.service.MemberQuickBuySaleService;
+import com.xcong.excoin.modules.member.entity.MemberEntity;
 
+import cn.hutool.crypto.SecureUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 
 @RestController
+@Slf4j
 @RequestMapping(value = "/api/quick")
-@Api(value = "USDT快捷买卖类", tags = "USDT快捷买卖类")
+@Api(value = "MemberQuickBuySaleController", tags = "USDT快捷买卖类")
 public class MemberQuickBuySaleController {
 
 	@Autowired
 	MemberQuickBuySaleService memberQuickBuySaleService;
 
-	@ApiOperation(value = "USDT快速充值", notes = "USDT快速充值")
+	@ApiOperation(value = "recharge", notes = "USDT快速充值")
 	@RequestMapping(value = "/recharge", method = RequestMethod.POST)
 	public Result recharge(@RequestBody MemberQuickBuySaleDto memberQuickBuySaleDto) {
-		return memberQuickBuySaleService.recharge(memberQuickBuySaleDto);
+		log.info("入参----->{}", memberQuickBuySaleDto);
+		//获取用户ID
+		MemberEntity member = LoginUserUtils.getAppLoginUser();
+		log.info("查询到的会员----->{}", member);
+		// 验证是否实名认证
+		if (MemberEntity.CERTIFY_STATUS_Y.equals(member.getCertifyStatus())) {
+			return Result.fail("请先实名认证");
+		}
+		String tradePasswordWeb = memberQuickBuySaleDto.getTradePassword();
+		
+		// 验证支付密码
+		String tradePassword = member.getTradePassword();
+		
+		log.info("入参交易密码{},用户设置的交易密码{}", tradePasswordWeb,tradePassword);
+		if (StringUtils.isEmpty(tradePassword)) {
+			return Result.fail("请先配置交易密码");
+		}
+		if (StringUtils.isEmpty(tradePasswordWeb)) {
+			return Result.fail("请输入交易密码");
+		}
+		// System.out.println("交易密码:"+MD5.GetMD5Code(tradePasswordWeb)+" tradePassword =
+		// "+tradePassword);
+		// 验证交易密码
+		if (!tradePassword.equals(SecureUtil.md5(tradePasswordWeb))) {
+			return Result.fail("请输入正确的交易密码");
+		}
+		return memberQuickBuySaleService.recharge(member, memberQuickBuySaleDto);
 	}
 	
 	
-	@ApiOperation(value = "USDT充值支付确认", notes = "USDT充值支付确认")
+	@ApiOperation(value = "commitPay", notes = "USDT充值支付确认")
 	@RequestMapping(value = "/commitPay", method = RequestMethod.POST)
 	public Result commitPay(@RequestBody MemberQuickBuySaleCommitDto memberQuickBuySaleCommitDto) {
 		return memberQuickBuySaleService.commitPay(memberQuickBuySaleCommitDto);
 	}
 	
-	@ApiOperation(value = "查询单个买卖记录", notes = "查询单个买卖记录")
+	@ApiOperation(value = "selectById", notes = "查询单个买卖记录")
 	@GetMapping(value = "/selectById/{id}")
 	public Result selectById(@PathVariable(value = "id") Long id) {
 		return memberQuickBuySaleService.selectById(id);
 	}
 	
-	
-	
-	/**
-	 * 充值撤销
-	 * 
-	 * @param memberChargeUsdt
-	 * @param page
-	 * @param rows
-	 * @return
-	 */
-	@ApiOperation(value = "充值撤销", notes = "充值撤销")
+	@ApiOperation(value = "cancel", notes = "充值撤销")
 	@GetMapping(value = "/cancel/{id}")
 	public Result cancel(@PathVariable(value = "id") Long id) {
 		return memberQuickBuySaleService.cancelRecharge(id);
 	}
 	
-	
-	
+	@ApiOperation(value = "sell", notes = "USDT快速充值")
+	@RequestMapping(value = "/sell", method = RequestMethod.POST)
+	public Result sell(MemberQuickBuySaleDto memberQuickBuySaleDto) {
+		// 获取当前登录用户
+		MemberEntity member = LoginUserUtils.getAppLoginUser();
+		if (MemberEntity.CERTIFY_STATUS_Y.equals(member.getCertifyStatus())) {
+			return Result.fail("请先实名认证");
+		}
+		String tradePasswordWeb = memberQuickBuySaleDto.getTradePassword();
+		
+		// 验证支付密码
+		String tradePassword = member.getTradePassword();
+		
+		log.info("入参交易密码{},用户设置的交易密码{}", tradePasswordWeb,tradePassword);
+		if (StringUtils.isEmpty(tradePassword)) {
+			return Result.fail("请先配置交易密码");
+		}
+		if (StringUtils.isEmpty(tradePasswordWeb)) {
+			return Result.fail("请输入交易密码");
+		}
+		// 验证交易密码
+		if (!tradePassword.equals(SecureUtil.md5(tradePasswordWeb))) {
+			return Result.fail("请输入正确的交易密码");
+		}
+		return memberQuickBuySaleService.sell(member,memberQuickBuySaleDto);
+	}
 }
diff --git a/src/main/java/com/xcong/excoin/modules/home/dao/MemberPaymentMethodDao.java b/src/main/java/com/xcong/excoin/modules/home/dao/MemberPaymentMethodDao.java
index 3f8a82c..7a45a09 100644
--- a/src/main/java/com/xcong/excoin/modules/home/dao/MemberPaymentMethodDao.java
+++ b/src/main/java/com/xcong/excoin/modules/home/dao/MemberPaymentMethodDao.java
@@ -1,8 +1,11 @@
 package com.xcong.excoin.modules.home.dao;
 
+import java.util.List;
+
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.xcong.excoin.modules.home.entity.MemberPaymentMethodEntity;
 
 public interface MemberPaymentMethodDao extends BaseMapper<MemberPaymentMethodEntity> {
 
+	public List<MemberPaymentMethodEntity> selectByMemberId(Long memberId);
 }
diff --git a/src/main/java/com/xcong/excoin/modules/home/dao/MemberQuickBuySaleDao.java b/src/main/java/com/xcong/excoin/modules/home/dao/MemberQuickBuySaleDao.java
index b4515af..5f084f8 100644
--- a/src/main/java/com/xcong/excoin/modules/home/dao/MemberQuickBuySaleDao.java
+++ b/src/main/java/com/xcong/excoin/modules/home/dao/MemberQuickBuySaleDao.java
@@ -1,9 +1,12 @@
 package com.xcong.excoin.modules.home.dao;
 
+import org.apache.ibatis.annotations.Param;
+
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.xcong.excoin.modules.home.entity.MemberQuickBuySaleEntity;
 
 public interface MemberQuickBuySaleDao extends BaseMapper<MemberQuickBuySaleEntity> {
 	
+	MemberQuickBuySaleEntity selectByIdAndMemberId(@Param("memberId")Long memberId,@Param("id")Long id);
 
 }
diff --git a/src/main/java/com/xcong/excoin/modules/home/entity/MemberPaymentMethodEntity.java b/src/main/java/com/xcong/excoin/modules/home/entity/MemberPaymentMethodEntity.java
index d3de533..29e3e3e 100644
--- a/src/main/java/com/xcong/excoin/modules/home/entity/MemberPaymentMethodEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/home/entity/MemberPaymentMethodEntity.java
@@ -1,7 +1,5 @@
 package com.xcong.excoin.modules.home.entity;
 
-import java.math.BigDecimal;
-
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.xcong.excoin.common.system.base.BaseEntity;
 
@@ -10,33 +8,20 @@
 
 @EqualsAndHashCode(callSuper = true)
 @Data
-@TableName("member_quick_buy_sale")
+@TableName("member_payment_method")
 public class MemberPaymentMethodEntity  extends BaseEntity{
 	/**
-	 * 订单状态 1-新建
+	 * 付款方式:支付宝
 	 */
-	public static final Integer CHARGE_STATUS_CREATE = 1;
-	
+	public static String PAYMENT_TYPE_ALIPAY = "1";
 	/**
-	 * 订单状态 2-已付款
+	 * 付款方式:微信
 	 */
-	public static final Integer CHARGE_STATUS_PAID = 2;
-	
+	public static String PAYMENT_TYPE_WEPAY = "2";
 	/**
-	 * 订单状态 3-已审核
+	 * 付款方式:银行卡
 	 */
-	public static final Integer CHARGE_STATUS_CHECKED = 3;
-	
-	/**
-	 * 订单状态 4-撤单
-	 */
-	public static final Integer CHARGE_STATUS_CANCEL_USER = 4;
-	
-	/**
-	 * 订单状态 5-系统取消
-	 */
-	public static final Integer CHARGE_STATUS_CANCEL_SYSTEM = 5;
-	
+	public static String PAYMENT_TYPE_BANK = "3";
 
 	private static final long serialVersionUID = 1L;
 	/**
@@ -44,43 +29,32 @@
      */
     private Long memberId;
     /**
-     * 金额(人民币)
+     * 姓名
      */
-    private BigDecimal amountCny;
+    private String name;
     /**
-     * 金额(USDT)
+     * 账号
      */
-    private BigDecimal amountUsdt;
+    private String account;
     /**
-     * 付款方式 1-支付宝2-微信3-银行卡
+     * 收款二维码
      */
-    private Integer paymentType;
+    private String paymentQrcode;
     /**
-     * 收款账号
+     * 银行
      */
-    private String paymentAccount;
+    private String bank;
     /**
-     * 收款人姓名
+     * 支行
      */
-    private String paymentName;
+    private String subBank;
     /**
-     * 支付码
+     * 类型 1-支付宝2-微信3-银行卡
      */
-    private String paymentCode;
+    private String paymentType;
     /**
-     * 单价
+     * 默认收款方式
      */
-    private BigDecimal unitPrice;
-    /**
-     * 订单状态 1-新建2-已付款3-已审核4-撤单5-系统取消
-     */
-    private int orderStatus;
-    /**
-     * 订单编号
-     */
-    private String orderNo;
-    /**
-     * 订单类型 B买入 S卖出
-     */
-    private String orderType;
+    private int isDefualt;
+    
 }
diff --git a/src/main/java/com/xcong/excoin/modules/home/service/MemberQuickBuySaleService.java b/src/main/java/com/xcong/excoin/modules/home/service/MemberQuickBuySaleService.java
index 6ab4ba5..d7bf632 100644
--- a/src/main/java/com/xcong/excoin/modules/home/service/MemberQuickBuySaleService.java
+++ b/src/main/java/com/xcong/excoin/modules/home/service/MemberQuickBuySaleService.java
@@ -5,16 +5,17 @@
 import com.xcong.excoin.modules.home.dto.MemberQuickBuySaleCommitDto;
 import com.xcong.excoin.modules.home.dto.MemberQuickBuySaleDto;
 import com.xcong.excoin.modules.home.entity.MemberQuickBuySaleEntity;
+import com.xcong.excoin.modules.member.entity.MemberEntity;
 
 public interface MemberQuickBuySaleService extends IService<MemberQuickBuySaleEntity> {
 
-	public Result recharge(MemberQuickBuySaleDto memberQuickBuySaleDto);
+	public Result recharge(MemberEntity member,MemberQuickBuySaleDto memberQuickBuySaleDto);
 	
 	public Result commitPay(MemberQuickBuySaleCommitDto memberQuickBuySaleCommitDto);
 	
 	public Result selectById(Long id);
 	
-	public Result sell();
-	
 	public Result cancelRecharge(Long id);
+	
+	public Result sell(MemberEntity member,MemberQuickBuySaleDto memberQuickBuySaleDto);
 }
diff --git a/src/main/java/com/xcong/excoin/modules/home/service/impl/MemberQuickBuySaleServiceImpl.java b/src/main/java/com/xcong/excoin/modules/home/service/impl/MemberQuickBuySaleServiceImpl.java
index 567c560..3c4eaac 100644
--- a/src/main/java/com/xcong/excoin/modules/home/service/impl/MemberQuickBuySaleServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/home/service/impl/MemberQuickBuySaleServiceImpl.java
@@ -8,9 +8,10 @@
 
 import org.springframework.stereotype.Service;
 
-import com.alibaba.druid.util.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xcong.excoin.common.LoginUserUtils;
+import com.xcong.excoin.common.enumerates.CoinTypeEnum;
 import com.xcong.excoin.common.response.Result;
 import com.xcong.excoin.modules.home.dao.MemberPaymentMethodDao;
 import com.xcong.excoin.modules.home.dao.MemberQuickBuySaleDao;
@@ -26,11 +27,7 @@
 import com.xcong.excoin.modules.member.entity.MemberEntity;
 import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity;
 
-import cn.hutool.crypto.SecureUtil;
-import lombok.extern.slf4j.Slf4j;
-
 @Service
-@Slf4j
 public class MemberQuickBuySaleServiceImpl extends ServiceImpl<MemberQuickBuySaleDao, MemberQuickBuySaleEntity> implements MemberQuickBuySaleService{
 	
 	@Resource
@@ -43,43 +40,17 @@
 	MemberPaymentMethodDao memberPaymentMethodDao;
 
 	@Override
-	public Result recharge(MemberQuickBuySaleDto memberQuickBuySaleDto) {
-		
-		log.info("入参----->{}", memberQuickBuySaleDto);
-		//获取用户ID
-		Long memberId = LoginUserUtils.getAppLoginUser().getId();
-		MemberEntity member = memberDao.selectById(memberId);
-		log.info("查询到的会员----->{}", member);
-		// 验证是否实名认证
-		if (MemberEntity.CERTIFY_STATUS_Y.equals(member.getCertifyStatus())) {
-			return Result.fail("请先实名认证");
-		}
-		String tradePasswordWeb = memberQuickBuySaleDto.getTradePassword();
-		
-		// 验证支付密码
-		String tradePassword = member.getTradePassword();
-		
-		log.info("入参交易密码{},用户设置的交易密码{}", tradePasswordWeb,tradePassword);
-		if (StringUtils.isEmpty(tradePassword)) {
-			return Result.fail("请先配置交易密码");
-		}
-		if (StringUtils.isEmpty(tradePasswordWeb)) {
-			return Result.fail("请输入交易密码");
-		}
-		// System.out.println("交易密码:"+MD5.GetMD5Code(tradePasswordWeb)+" tradePassword =
-		// "+tradePassword);
-		// 验证交易密码
-		if (!tradePassword.equals(SecureUtil.md5(tradePasswordWeb))) {
-			return Result.fail("请输入正确的交易密码");
-		}
+	public Result recharge(MemberEntity member,MemberQuickBuySaleDto memberQuickBuySaleDto) {
 		// 生成订单号
 		Long timestamp = System.currentTimeMillis();
 		int random = (int) (Math.random() * 10);
 		String chargeNo = String.valueOf(timestamp).substring(2) + random;
 		// 插入订单表
 		MemberQuickBuySaleEntity memberQuickBuySaleEntity = new MemberQuickBuySaleEntity();
-		memberQuickBuySaleEntity.setOrderStatus(memberQuickBuySaleEntity.CHARGE_STATUS_CREATE);
-		memberQuickBuySaleEntity.setMemberId(memberId);
+		memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_CREATE);
+		memberQuickBuySaleEntity.setMemberId(member.getId());
+		memberQuickBuySaleEntity.setAmountUsdt(memberQuickBuySaleDto.getAmountUsdt());
+		memberQuickBuySaleEntity.setAmountCny(memberQuickBuySaleDto.getAmountCny());
 		memberQuickBuySaleEntity.setCreateTime(new Date());
 		memberQuickBuySaleEntity.setOrderNo(chargeNo);
 		memberQuickBuySaleEntity.setOrderType("B");
@@ -120,22 +91,73 @@
 		return Result.ok(memberQuickBuySaleVo);
 	}
 
-	
+	@Override
+	public Result sell(MemberEntity member,MemberQuickBuySaleDto memberQuickBuySaleDto) {
+		// 判断是否存在足够余额
+		MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(),CoinTypeEnum.USDT.toString());
+		// 判断是否存在足够余额
+		if(walletCoin ==null) {
+			return Result.fail("您当前可用USDT额度不够");
+		}
+		BigDecimal extractUsdt = memberQuickBuySaleDto.getAmountUsdt();
+		if (extractUsdt == null) {
+			return Result.fail("请输入提币量");
+		}
+		// 判断是否足够
+		System.out.println("提币数:"+extractUsdt.doubleValue()+"   可用:"+walletCoin.getAvailableBalance());
+		if (extractUsdt.compareTo(walletCoin.getAvailableBalance())==1) {
+			return Result.fail("您当前可用USDT额度不够");
+		}
+
+
+		// 判断是否存在收款方式
+		List<MemberPaymentMethodEntity> payMentMethodList = memberPaymentMethodDao.selectByMemberId(member.getId());
+		if(CollectionUtils.isEmpty(payMentMethodList)){
+			return Result.fail("请配置收款方式");
+		}
+		// 冻结可用额度
+		int i = memberWalletCoinDao.updateFrozenBalance(member.getId(),
+				walletCoin.getId(), extractUsdt);
+		if (i <= 0) {
+			return Result.fail("可用USDT余额不足");
+		}
+		
+		// 生成订单号
+		Long timestamp = System.currentTimeMillis();
+		int random = (int) (Math.random() * 10);
+		String chargeNo = String.valueOf(timestamp).substring(2) + random;
+		// 插入订单表
+		MemberQuickBuySaleEntity memberQuickBuySaleEntity = new MemberQuickBuySaleEntity();
+		memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_CREATE);
+		memberQuickBuySaleEntity.setMemberId(member.getId());
+		memberQuickBuySaleEntity.setAmountUsdt(memberQuickBuySaleDto.getAmountUsdt());
+		memberQuickBuySaleEntity.setAmountCny(memberQuickBuySaleDto.getAmountCny());
+		memberQuickBuySaleEntity.setOrderNo(chargeNo);
+		memberQuickBuySaleEntity.setOrderType("S");
+		// 支付码 ID+四位随机数
+		int ran = (int) (Math.random() * 10000000);
+		memberQuickBuySaleEntity.setPaymentCode(ran + "");
+		
+		memberQuickBuySaleDao.insert(memberQuickBuySaleEntity);
+
+		// TODO dingtalk
+		
+		return Result.ok("下单成功");
+	}
 
 	@Override
 	public Result cancelRecharge(Long id) {
 		// 获取当前登录用户
-		Long memberId = LoginUserUtils.getAppLoginUser().getId();
-		MemberEntity member = memberDao.selectById(memberId);
-		if(memberId==null) {
+		MemberEntity member = LoginUserUtils.getAppLoginUser();
+		if(member==null) {
 			return Result.fail("登录用户已失效");
 		}
-		MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleDao.selectById(id);
+		MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleDao.selectByIdAndMemberId(id,member.getId());
 		memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_CANCEL_USER);
 		memberQuickBuySaleDao.updateById(memberQuickBuySaleEntity);
 		
 		// 判断是否存在足够余额
-		MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(id,"USDT");
+		MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(),CoinTypeEnum.USDT.toString());
 		boolean flag = true;
 		while(flag) {
 			walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().add(memberQuickBuySaleEntity.getAmountUsdt()));
@@ -144,14 +166,8 @@
 			if(i>0) {
 				flag = false;
 			}
-			walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(id,"USDT");
+			walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(),CoinTypeEnum.USDT.toString());
 		}
 		return Result.ok("成功");
-	}
-
-	@Override
-	public Result sell() {
-		// TODO Auto-generated method stub
-		return null;
 	}
 }
diff --git a/src/main/java/com/xcong/excoin/modules/member/dao/MemberWalletCoinDao.java b/src/main/java/com/xcong/excoin/modules/member/dao/MemberWalletCoinDao.java
index f5f3927..eb14610 100644
--- a/src/main/java/com/xcong/excoin/modules/member/dao/MemberWalletCoinDao.java
+++ b/src/main/java/com/xcong/excoin/modules/member/dao/MemberWalletCoinDao.java
@@ -1,5 +1,6 @@
 package com.xcong.excoin.modules.member.dao;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 import org.apache.ibatis.annotations.Param;
@@ -16,4 +17,5 @@
 	
 	MemberWalletCoinEntity selectWalletCoinBymIdAndCode(@Param("memberId")Long memberId,@Param("walletCode")String walletCode);
 	
+	int updateFrozenBalance(@Param("memberId")Long memberId,@Param("id")Long id,@Param("memberId")BigDecimal amount);
 }
diff --git a/src/main/java/com/xcong/excoin/modules/platform/controller/PlatformController.java b/src/main/java/com/xcong/excoin/modules/platform/controller/PlatformController.java
new file mode 100644
index 0000000..e8e2774
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/platform/controller/PlatformController.java
@@ -0,0 +1,34 @@
+package com.xcong.excoin.modules.platform.controller;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.xcong.excoin.common.response.Result;
+import com.xcong.excoin.modules.platform.service.PlatformCnyUsdtExchangeService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+
+@RestController
+@Slf4j
+@RequestMapping(value = "/api/exchange")
+@Api(value = "PlatformController", tags = "平台系统设置类")
+public class PlatformController {
+	
+	@Resource
+	PlatformCnyUsdtExchangeService platformCnyUsdtExchangeService;
+	
+	@ApiOperation(value = "findUsdtCnyExchange", notes = "Cny|Usdt兑换")
+	@GetMapping(value = "/findUsdtCnyExchange")
+	public Result findUsdtCnyExchange(@ApiParam(name = "type", value = "类型", type="string", required=true) @RequestParam("type") String type) {
+		log.info("type值----->{}", type);
+		return platformCnyUsdtExchangeService.findUsdtCnyExchange(type);
+	}
+	
+}
diff --git a/src/main/java/com/xcong/excoin/modules/platform/dao/PlatformCnyUsdtExchangeDao.java b/src/main/java/com/xcong/excoin/modules/platform/dao/PlatformCnyUsdtExchangeDao.java
new file mode 100644
index 0000000..91aeda2
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/platform/dao/PlatformCnyUsdtExchangeDao.java
@@ -0,0 +1,12 @@
+package com.xcong.excoin.modules.platform.dao;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xcong.excoin.modules.home.entity.MemberPaymentMethodEntity;
+import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity;
+
+public interface PlatformCnyUsdtExchangeDao extends BaseMapper<PlatformCnyUsdtExchangeEntity> {
+
+	
+}
diff --git a/src/main/java/com/xcong/excoin/modules/platform/dao/PlatformPaymentMethodDao.java b/src/main/java/com/xcong/excoin/modules/platform/dao/PlatformPaymentMethodDao.java
new file mode 100644
index 0000000..ecabe6d
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/platform/dao/PlatformPaymentMethodDao.java
@@ -0,0 +1,9 @@
+package com.xcong.excoin.modules.platform.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xcong.excoin.modules.platform.entity.PlatformPaymentMethodEntity;
+
+public interface PlatformPaymentMethodDao extends BaseMapper<PlatformPaymentMethodEntity> {
+
+	
+}
diff --git a/src/main/java/com/xcong/excoin/modules/platform/entity/PlatformCnyUsdtExchangeEntity.java b/src/main/java/com/xcong/excoin/modules/platform/entity/PlatformCnyUsdtExchangeEntity.java
new file mode 100644
index 0000000..da9b97f
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/platform/entity/PlatformCnyUsdtExchangeEntity.java
@@ -0,0 +1,26 @@
+package com.xcong.excoin.modules.platform.entity;
+
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.xcong.excoin.common.system.base.BaseEntity;
+
+import lombok.Data;
+@Data
+@TableName("platform_cny_usdt_exchange")
+public class PlatformCnyUsdtExchangeEntity extends BaseEntity{
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 兑换比例
+	 */
+	private BigDecimal value;
+	/**
+	 * 增减偏量
+	 */
+	private BigDecimal diff;
+}
diff --git a/src/main/java/com/xcong/excoin/modules/platform/entity/PlatformPaymentMethodEntity.java b/src/main/java/com/xcong/excoin/modules/platform/entity/PlatformPaymentMethodEntity.java
new file mode 100644
index 0000000..fbc3e0e
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/platform/entity/PlatformPaymentMethodEntity.java
@@ -0,0 +1,26 @@
+package com.xcong.excoin.modules.platform.entity;
+
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.xcong.excoin.common.system.base.BaseEntity;
+
+import lombok.Data;
+@Data
+@TableName("platform_cny_usdt_exchange")
+public class PlatformPaymentMethodEntity extends BaseEntity{
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 兑换比例
+	 */
+	private BigDecimal value;
+	/**
+	 * 增减偏量
+	 */
+	private BigDecimal diff;
+}
diff --git a/src/main/java/com/xcong/excoin/modules/platform/service/PlatformCnyUsdtExchangeService.java b/src/main/java/com/xcong/excoin/modules/platform/service/PlatformCnyUsdtExchangeService.java
new file mode 100644
index 0000000..264f3c3
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/platform/service/PlatformCnyUsdtExchangeService.java
@@ -0,0 +1,13 @@
+package com.xcong.excoin.modules.platform.service;
+
+import org.springframework.web.bind.annotation.RequestParam;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xcong.excoin.common.response.Result;
+import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity;
+
+public interface PlatformCnyUsdtExchangeService extends IService<PlatformCnyUsdtExchangeEntity> {
+
+	public Result findUsdtCnyExchange(@RequestParam("type") String type);
+	
+}
diff --git a/src/main/java/com/xcong/excoin/modules/platform/service/PlatformPaymentMethodService.java b/src/main/java/com/xcong/excoin/modules/platform/service/PlatformPaymentMethodService.java
new file mode 100644
index 0000000..81b8d13
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/platform/service/PlatformPaymentMethodService.java
@@ -0,0 +1,13 @@
+package com.xcong.excoin.modules.platform.service;
+
+import org.springframework.web.bind.annotation.RequestParam;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xcong.excoin.common.response.Result;
+import com.xcong.excoin.modules.platform.entity.PlatformPaymentMethodEntity;
+
+public interface PlatformPaymentMethodService extends IService<PlatformPaymentMethodEntity> {
+
+	public Result findUsdtCnyExchange(@RequestParam("type") String type);
+	
+}
diff --git a/src/main/java/com/xcong/excoin/modules/platform/service/impl/PlatformCnyUsdtExchangeServiceImpl.java b/src/main/java/com/xcong/excoin/modules/platform/service/impl/PlatformCnyUsdtExchangeServiceImpl.java
new file mode 100644
index 0000000..f1d757f
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/platform/service/impl/PlatformCnyUsdtExchangeServiceImpl.java
@@ -0,0 +1,38 @@
+package com.xcong.excoin.modules.platform.service.impl;
+
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xcong.excoin.common.response.Result;
+import com.xcong.excoin.modules.platform.dao.PlatformCnyUsdtExchangeDao;
+import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity;
+import com.xcong.excoin.modules.platform.service.PlatformCnyUsdtExchangeService;
+
+@Service
+public class PlatformCnyUsdtExchangeServiceImpl extends ServiceImpl<PlatformCnyUsdtExchangeDao, PlatformCnyUsdtExchangeEntity> implements PlatformCnyUsdtExchangeService{
+	@Resource
+	PlatformCnyUsdtExchangeDao platformCnyUsdtExchangeDao;
+	
+	@Override
+	public Result findUsdtCnyExchange(String type) {
+		// 查询当前兑换价格
+		Map<String, Object> map = new HashMap<String, Object>();
+		PlatformCnyUsdtExchangeEntity platformCnyUsdtExchangeEntity = platformCnyUsdtExchangeDao.selectById(1);
+		BigDecimal cnyUsdt = platformCnyUsdtExchangeEntity.getValue();
+		if ("B".equals(type)) {
+			// 买的时候提高价格
+			map.put("exchange", cnyUsdt.add(platformCnyUsdtExchangeEntity.getDiff()));
+		}else {
+			// 卖的时候降低
+			map.put("exchange", cnyUsdt.subtract(platformCnyUsdtExchangeEntity.getDiff()));
+		}
+		return Result.ok(map);
+	}
+	
+}
diff --git a/src/main/java/com/xcong/excoin/modules/platform/service/impl/PlatformPaymentMethodServiceImpl.java b/src/main/java/com/xcong/excoin/modules/platform/service/impl/PlatformPaymentMethodServiceImpl.java
new file mode 100644
index 0000000..46e0038
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/platform/service/impl/PlatformPaymentMethodServiceImpl.java
@@ -0,0 +1,40 @@
+package com.xcong.excoin.modules.platform.service.impl;
+
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xcong.excoin.common.response.Result;
+import com.xcong.excoin.modules.platform.dao.PlatformCnyUsdtExchangeDao;
+import com.xcong.excoin.modules.platform.dao.PlatformPaymentMethodDao;
+import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity;
+import com.xcong.excoin.modules.platform.entity.PlatformPaymentMethodEntity;
+import com.xcong.excoin.modules.platform.service.PlatformPaymentMethodService;
+
+@Service
+public class PlatformPaymentMethodServiceImpl extends ServiceImpl<PlatformPaymentMethodDao, PlatformPaymentMethodEntity> implements PlatformPaymentMethodService{
+	@Resource
+	PlatformCnyUsdtExchangeDao platformCnyUsdtExchangeDao;
+	
+	@Override
+	public Result findUsdtCnyExchange(String type) {
+		// 查询当前兑换价格
+		Map<String, Object> map = new HashMap<String, Object>();
+		PlatformCnyUsdtExchangeEntity platformCnyUsdtExchangeEntity = platformCnyUsdtExchangeDao.selectById(1);
+		BigDecimal cnyUsdt = platformCnyUsdtExchangeEntity.getValue();
+		if ("B".equals(type)) {
+			// 买的时候提高价格
+			map.put("exchange", cnyUsdt.add(platformCnyUsdtExchangeEntity.getDiff()));
+		}else {
+			// 卖的时候降低
+			map.put("exchange", cnyUsdt.subtract(platformCnyUsdtExchangeEntity.getDiff()));
+		}
+		return Result.ok(map);
+	}
+	
+}
diff --git a/src/main/java/com/xcong/excoin/modules/platform/vo/PlatformCnyUsdtExchangeVo.java b/src/main/java/com/xcong/excoin/modules/platform/vo/PlatformCnyUsdtExchangeVo.java
new file mode 100644
index 0000000..8a06fc6
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/platform/vo/PlatformCnyUsdtExchangeVo.java
@@ -0,0 +1,13 @@
+package com.xcong.excoin.modules.platform.vo;
+
+import java.math.BigDecimal;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+@Data
+@ApiModel(value = "会员快捷买入卖出", description = "会员快捷买入卖出类")
+public class PlatformCnyUsdtExchangeVo {
+	
+	
+}
diff --git a/src/main/java/com/xcong/excoin/rabbit/consumer/TestConsumer.java b/src/main/java/com/xcong/excoin/rabbit/consumer/TestConsumer.java
new file mode 100644
index 0000000..aea3c07
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/rabbit/consumer/TestConsumer.java
@@ -0,0 +1,21 @@
+package com.xcong.excoin.rabbit.consumer;
+
+import com.xcong.excoin.configurations.RabbitMqConfig;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author wzy
+ * @date 2020-05-25
+ **/
+@Slf4j
+@Component
+public class TestConsumer {
+
+
+    @RabbitListener(queues = RabbitMqConfig.QUEUE_TEST)
+    public void doSomething(String content) {
+        log.info("#---->{}#", content);
+    }
+}
diff --git a/src/main/java/com/xcong/excoin/rabbit/producer/TestProducer.java b/src/main/java/com/xcong/excoin/rabbit/producer/TestProducer.java
new file mode 100644
index 0000000..00ffd52
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/rabbit/producer/TestProducer.java
@@ -0,0 +1,42 @@
+package com.xcong.excoin.rabbit.producer;
+
+import cn.hutool.core.util.IdUtil;
+import com.xcong.excoin.configurations.RabbitMqConfig;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.connection.CorrelationData;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author wzy
+ * @date 2020-05-25
+ **/
+@Slf4j
+@Component
+public class TestProducer implements RabbitTemplate.ConfirmCallback {
+
+    private RabbitTemplate rabbitTemplate;
+
+    @Autowired
+    public TestProducer(RabbitTemplate rabbitTemplate) {
+        this.rabbitTemplate = rabbitTemplate;
+        rabbitTemplate.setConfirmCallback(this);
+    }
+
+    public void sendTestMsg(String content) {
+        CorrelationData correlationData = new CorrelationData(IdUtil.simpleUUID());
+        rabbitTemplate.convertAndSend(RabbitMqConfig.EXCHANGE_ONE, RabbitMqConfig.ROUTING_KEY_TEST, content, correlationData);
+    }
+
+
+    @Override
+    public void confirm(CorrelationData correlationData, boolean ack, String cause) {
+        log.info("#----->{}#", correlationData);
+        if (ack) {
+            log.info("success");
+        } else {
+            log.info("--->{}", cause);
+        }
+    }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 820acc1..8a849c0 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -69,6 +69,21 @@
         min-idle: 8
     ## 连接超时时间(毫秒)
     timeout: 30000
+  rabbitmq:
+    host: 120.27.238.55
+    port: 5672
+    username: ct_rabbit
+    password: 123456
+    publisher-confirm-type: correlated
+
+
+#custom:
+#  rabbitmq:
+#    host: 120.27.238.55
+#    port: 5672
+#    username: ct_rabbit
+#    password: 123456
+
 mybatis-plus:
   mapper-locations: classpath:mapper/**/*.xml
 
diff --git a/src/main/resources/mapper/home/MemberPaymentMethodDao.xml b/src/main/resources/mapper/home/MemberPaymentMethodDao.xml
new file mode 100644
index 0000000..b18ffb4
--- /dev/null
+++ b/src/main/resources/mapper/home/MemberPaymentMethodDao.xml
@@ -0,0 +1,9 @@
+<?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.xcong.excoin.modules.home.dao.MemberPaymentMethodDao">
+	<!-- 字段sql -->
+	<select id="selectByMemberId" resultType="com.xcong.excoin.modules.home.entity.MemberPaymentMethodEntity">
+		SELECT a.* FROM member_payment_method a WHERE a.member_id = #{memberId}
+	</select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/home/MemberQuickBuySaleDao.xml b/src/main/resources/mapper/home/MemberQuickBuySaleDao.xml
index 44ea088..4af7288 100644
--- a/src/main/resources/mapper/home/MemberQuickBuySaleDao.xml
+++ b/src/main/resources/mapper/home/MemberQuickBuySaleDao.xml
@@ -2,5 +2,8 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper
 	namespace="com.xcong.excoin.modules.home.dao.MemberQuickBuySaleDao">
-	<!-- 字段sql -->
+	
+	<select id="selectByIdAndMemberId" resultType="com.xcong.excoin.modules.home.entity.MemberQuickBuySaleEntity">
+		SELECT a.* FROM member_quick_buy_sale a WHERE a.id = #{id} AND a.member_id = #{memberId}
+	</select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/member/MemberWalletCoinDao.xml b/src/main/resources/mapper/member/MemberWalletCoinDao.xml
index fed0917..9d67869 100644
--- a/src/main/resources/mapper/member/MemberWalletCoinDao.xml
+++ b/src/main/resources/mapper/member/MemberWalletCoinDao.xml
@@ -9,6 +9,17 @@
     <select id="selectWalletCoinBymIdAndCode" resultType="com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity">
         select * from member_wallet_coin where member_id = #{memberId} and wallet_code = #{walletCode}
     </select>
+    
+    <update id="updateFrozenBalance" parameterType="map">
+		UPDATE member_wallet_coin
+		SET available_balance = available_balance - #{amount},
+		 	frozen_balance = frozen_balance + #{amount}
+		WHERE
+			id = #{id}
+		AND member_id = #{memberId}
+	</update>
+    
+    
 
 
 
diff --git a/src/test/java/com/xcong/excoin/RSATest.java b/src/test/java/com/xcong/excoin/RSATest.java
index 4d4d3b6..45c6488 100644
--- a/src/test/java/com/xcong/excoin/RSATest.java
+++ b/src/test/java/com/xcong/excoin/RSATest.java
@@ -13,6 +13,7 @@
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import java.math.BigDecimal;
 import java.security.KeyPair;
 
 /**
@@ -101,4 +102,10 @@
         String md5str = SecureUtil.md5("123456");
         log.info("{}", md5str);
     }
+
+    @Test
+    public void bigdecimalTest() {
+        BigDecimal bigDecimal = new BigDecimal("123.12345678").setScale(4, BigDecimal.ROUND_DOWN);
+        log.info("--->{}", bigDecimal);
+    }
 }
diff --git a/src/test/java/com/xcong/excoin/RabbitMqTest.java b/src/test/java/com/xcong/excoin/RabbitMqTest.java
new file mode 100644
index 0000000..82b668b
--- /dev/null
+++ b/src/test/java/com/xcong/excoin/RabbitMqTest.java
@@ -0,0 +1,24 @@
+package com.xcong.excoin;
+
+import com.xcong.excoin.rabbit.producer.TestProducer;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import javax.annotation.Resource;
+
+/**
+ * @author wzy
+ * @date 2020-05-25
+ **/
+@SpringBootTest
+public class RabbitMqTest {
+
+    @Autowired
+    private TestProducer testProducer;
+
+    @Test
+    public void sendTestMsg() {
+        testProducer.sendTestMsg("this is test msg");
+    }
+}

--
Gitblit v1.9.1