From 0b688b0eee75f73af8300bd881a58a858dc8cc47 Mon Sep 17 00:00:00 2001
From: gao <gaoleox@163>
Date: Fri, 22 May 2020 14:54:32 +0800
Subject: [PATCH] 快捷买卖接口

---
 src/main/java/com/xcong/excoin/modules/home/dto/MemberQuickBuySaleDto.java               |   10 +
 src/main/resources/mapper/home/MemberQuickBuySaleDao.xml                                 |   48 ++++++++++++
 src/main/java/com/xcong/excoin/modules/home/entity/MemberQuickBuySaleEntity.java         |   25 ++++++
 src/main/java/com/xcong/excoin/modules/home/controller/MemberQuickBuySaleController.java |   83 +++++++++++++++++++-
 src/main/java/com/xcong/excoin/modules/home/mapper/MemberQuickBuySaleEntityMapper.java   |   17 ++++
 src/main/java/com/xcong/excoin/modules/home/dao/MemberQuickBuySaleDao.java               |    6 +
 6 files changed, 180 insertions(+), 9 deletions(-)

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 d877e07..ee26bd5 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
@@ -1,25 +1,98 @@
 package com.xcong.excoin.modules.home.controller;
 
+import java.util.Date;
+
+import org.apache.commons.codec.digest.Md5Crypt;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 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.annotations.UserAuth;
+import com.xcong.excoin.common.response.Result;
+import com.xcong.excoin.modules.home.dao.MemberQuickBuySaleDao;
 import com.xcong.excoin.modules.home.dto.MemberQuickBuySaleDto;
+import com.xcong.excoin.modules.home.entity.MemberQuickBuySaleEntity;
+import com.xcong.excoin.modules.member.entity.MemberEntity;
 
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 
 @RestController
 @RequestMapping(value = "/api/quick")
+@Api(value = "USDT快捷买卖类", tags = "USDT快捷买卖类")
 public class MemberQuickBuySaleController {
 
+	@Autowired
+	MemberQuickBuySaleDao memberQuickBuySaleDao;
+
 	@ApiOperation(value = "USDT快速充值", notes = "USDT快速充值")
-	@ApiImplicitParam(name = "token", value = "token", required = false, dataType = "String", paramType = "body")
 	@RequestMapping(value = "/recharge", method = RequestMethod.POST)
-	public void recharge(@RequestBody MemberQuickBuySaleDto memberQuickBuySaleDto) {
-		// 获取当前登录用户
-		// String mId = (String) redisUtil.get(token);
-		
+	public Result recharge(@RequestBody MemberQuickBuySaleDto memberQuickBuySaleDto,
+			@UserAuth MemberEntity memberEntity) {
+		// 验证是否实名认证
+		if (MemberEntity.CERTIFY_STATUS_Y.equals(memberEntity.getCertifyStatus())) {
+			return Result.fail("请先实名认证");
+		}
+		String tradePasswordWeb = memberQuickBuySaleDto.getTradePassword();
+		// 验证支付密码
+		String tradePassword = memberEntity.getTradePassword();
+		if (StringUtils.isEmpty(tradePassword)) {
+			return Result.fail("请先配置交易密码");
+		}
+		if (StringUtils.isEmpty(tradePasswordWeb)) {
+			return Result.fail("请输入交易密码");
+		}
+		// System.out.println("交易密码:"+MD5.GetMD5Code(tradePasswordWeb)+" tradePassword =
+		// "+tradePassword);
+		// 验证交易密码
+		if (!Md5Crypt.apr1Crypt(tradePasswordWeb).equals(tradePassword)) {
+			return Result.fail("请输入正确的交易密码");
+		}
+		// 生成订单号
+		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(memberEntity.getId());
+		memberQuickBuySaleEntity.setCreateTime(new Date());
+		memberQuickBuySaleEntity.setOrderNo(chargeNo);
+		memberQuickBuySaleEntity.setOrderType("B");
+		// 支付码 ID+四位随机数
+		int ran = (int) (Math.random() * 10000000);
+		memberQuickBuySaleEntity.setPaymentCode(ran + "");
+		memberQuickBuySaleEntity.setPaymentAccount(memberQuickBuySaleDto.getPaymentAccount());
+		memberQuickBuySaleEntity.setPaymentName(memberQuickBuySaleDto.getPaymentName());
+
+		System.out.println("实体对象:"+memberQuickBuySaleEntity);
+		memberQuickBuySaleDao.insert(memberQuickBuySaleEntity);
+		// 返回前台付款方式
+//		memberChargeUsdt.setReceiveMethod(payMethodList.get(index));
+		return Result.ok("购买成功,请及时付款");
 	}
+	
+	
+	@ApiOperation(value = "USDT充值支付确认", notes = "USDT充值支付确认")
+	@ApiImplicitParam(name = "token", value = "token", required = false, dataType = "String", paramType = "body")
+	@RequestMapping(value = "/commitPay", method = RequestMethod.GET)
+	public Result commitPay(@PathVariable(value = "id") Long id) {
+		// 用户提交支付确认 将状态改为付款中
+		MemberQuickBuySaleEntity MemberQuickBuySaleEntity = new MemberQuickBuySaleEntity();
+		MemberQuickBuySaleEntity.setId(id);
+		MemberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_PAID);
+		memberQuickBuySaleDao.updateById(MemberQuickBuySaleEntity);
+
+		// TODO dingtalk
+		
+		return Result.ok("确认成功");
+	}
+	
+	
+	
 }
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 5c44e50..b4515af 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,5 +1,9 @@
 package com.xcong.excoin.modules.home.dao;
 
-public class MemberQuickBuySaleDao {
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xcong.excoin.modules.home.entity.MemberQuickBuySaleEntity;
+
+public interface MemberQuickBuySaleDao extends BaseMapper<MemberQuickBuySaleEntity> {
+	
 
 }
diff --git a/src/main/java/com/xcong/excoin/modules/home/dto/MemberQuickBuySaleDto.java b/src/main/java/com/xcong/excoin/modules/home/dto/MemberQuickBuySaleDto.java
index cfb5506..98c89f2 100644
--- a/src/main/java/com/xcong/excoin/modules/home/dto/MemberQuickBuySaleDto.java
+++ b/src/main/java/com/xcong/excoin/modules/home/dto/MemberQuickBuySaleDto.java
@@ -1,6 +1,7 @@
 package com.xcong.excoin.modules.home.dto;
 
 import java.math.BigDecimal;
+import java.util.Date;
 
 import javax.validation.constraints.NotNull;
 
@@ -36,10 +37,13 @@
 	@ApiModelProperty(value = "单价",example = "7")
     private BigDecimal unitPrice;
 	
-	@ApiModelProperty(value = "订单状态 1-新建2-已付款3-已审核4-撤单5-系统取消",example = "1")
-    private int orderStatus;
-	
 	@NotNull(message = "订单类型不能为空")
 	@ApiModelProperty(value = "订单类型 B买入 S卖出",example = "B")
     private String orderType;
+	
+	@NotNull(message = "交易密码不能为空")
+	private String tradePassword;
+	
+	@ApiModelProperty(value = "充值时间")
+	private Date ChargeTime;
 }
diff --git a/src/main/java/com/xcong/excoin/modules/home/entity/MemberQuickBuySaleEntity.java b/src/main/java/com/xcong/excoin/modules/home/entity/MemberQuickBuySaleEntity.java
index 3ac3ba4..1c2e801 100644
--- a/src/main/java/com/xcong/excoin/modules/home/entity/MemberQuickBuySaleEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/home/entity/MemberQuickBuySaleEntity.java
@@ -12,6 +12,31 @@
 @Data
 @TableName("member_quick_buy_sale")
 public class MemberQuickBuySaleEntity  extends BaseEntity{
+	/**
+	 * 订单状态 1-新建
+	 */
+	public final int CHARGE_STATUS_CREATE = 1;
+	
+	/**
+	 * 订单状态 2-已付款
+	 */
+	public final int CHARGE_STATUS_PAID = 2;
+	
+	/**
+	 * 订单状态 3-已审核
+	 */
+	public final int CHARGE_STATUS_CHECKED = 3;
+	
+	/**
+	 * 订单状态 4-撤单
+	 */
+	public final int CHARGE_STATUS_CANCEL_USER = 4;
+	
+	/**
+	 * 订单状态 5-系统取消
+	 */
+	public final int CHARGE_STATUS_CANCEL_SYSTEM = 5;
+	
 
 	private static final long serialVersionUID = 1L;
 	/**
diff --git a/src/main/java/com/xcong/excoin/modules/home/mapper/MemberQuickBuySaleEntityMapper.java b/src/main/java/com/xcong/excoin/modules/home/mapper/MemberQuickBuySaleEntityMapper.java
new file mode 100644
index 0000000..2405f92
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/home/mapper/MemberQuickBuySaleEntityMapper.java
@@ -0,0 +1,17 @@
+package com.xcong.excoin.modules.home.mapper;
+
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import com.xcong.excoin.modules.home.dto.MemberQuickBuySaleDto;
+
+
+@Mapper
+public abstract class MemberQuickBuySaleEntityMapper {
+
+    public static final MemberQuickBuySaleEntityMapper INSTANCE = Mappers.getMapper(MemberQuickBuySaleEntityMapper.class);
+
+    
+    public abstract MemberQuickBuySaleEntityMapper dtoToEntity(MemberQuickBuySaleDto dto);
+
+}
diff --git a/src/main/resources/mapper/home/MemberQuickBuySaleDao.xml b/src/main/resources/mapper/home/MemberQuickBuySaleDao.xml
new file mode 100644
index 0000000..2633131
--- /dev/null
+++ b/src/main/resources/mapper/home/MemberQuickBuySaleDao.xml
@@ -0,0 +1,48 @@
+<?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.MemberQuickBuySaleDao">
+	<!-- 字段sql -->
+	<sql id="columns">
+		id,
+		member_id,
+		amount_cny,
+		amount_usdt,
+		payment_type,
+		payment_account,
+		payment_name,
+		payment_code,
+		unit_price,
+		order_status,
+		order_no,
+		order_type
+	</sql>
+
+	<!-- 属性sql -->
+	<sql id="propertys">
+		#{item.id},
+		#{item.memberId},
+		#{item.amountCny},
+		#{item.amountUsdt},
+		#{item.paymentType},
+		#{item.paymentAccount},
+		#{item.paymentName},
+		#{item.paymentCode},
+		#{item.unitPrice},
+		#{item.orderStatus},
+		#{item.orderNo},
+		#{item.orderType}
+	</sql>
+
+	<!-- 插入方法 -->
+	<insert id="insert"
+		parameterType="com.xcong.excoin.modules.home.entity.MemberQuickBuySaleEntity"
+		useGeneratedKeys="true" keyProperty="id">
+		INSERT INTO member_quick_buy_sale (
+		<include refid="columns"></include>
+		)
+		VALUES (
+		<include refid="propertys"></include>
+		)
+	</insert>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.1