From f2b9c03ba8c733a183e3568d85038e9a87f84e82 Mon Sep 17 00:00:00 2001
From: wzy <wzy19931122ai@163.com>
Date: Mon, 18 May 2020 23:13:00 +0800
Subject: [PATCH] add register interface code

---
 src/main/resources/mapper/member/MemberWalletContractDao.xml                      |    6 
 src/main/java/com/xcong/excoin/modules/member/entity/MemberLevelRateEntity.java   |   36 ++++
 src/main/java/com/xcong/excoin/utils/ShareCodeUtil.java                           |  118 ++++++++++++++
 src/main/resources/mapper/member/MemberWalletCoinDao.xml                          |    7 
 src/test/java/com/xcong/excoin/KssframeworkApplicationTests.java                  |    7 
 src/main/java/com/xcong/excoin/common/enumerates/CoinTypeEnum.java                |   10 +
 src/main/java/com/xcong/excoin/modules/member/entity/MemberWalletAgentEntity.java |    9 
 src/main/resources/mapper/member/MemberWalletAgentDao.xml                         |    6 
 src/main/java/com/xcong/excoin/common/enumerates/SymbolEnum.java                  |   29 +++
 src/main/java/com/xcong/excoin/modules/member/dao/MemberLevelRateDao.java         |    7 
 src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java            |   28 +++
 src/main/java/com/xcong/excoin/common/contants/AppContants.java                   |   12 +
 src/main/java/com/xcong/excoin/modules/member/dao/MemberWalletContractDao.java    |    7 
 src/main/java/com/xcong/excoin/modules/member/dao/MemberWalletAgentDao.java       |    7 
 src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java |  133 ++++++++++++++++
 src/main/resources/mapper/member/MemberDao.xml                                    |    4 
 src/main/java/com/xcong/excoin/modules/member/dao/MemberWalletCoinDao.java        |   10 +
 src/main/resources/mapper/member/MemberLevelRateDao.xml                           |    5 
 src/main/java/com/xcong/excoin/common/system/dto/RegisterDto.java                 |    2 
 src/main/java/com/xcong/excoin/modules/member/dao/MemberDao.java                  |    2 
 src/main/java/com/xcong/excoin/modules/member/service/MemberService.java          |    5 
 21 files changed, 443 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/common/contants/AppContants.java b/src/main/java/com/xcong/excoin/common/contants/AppContants.java
index 08660f1..0ad9052 100644
--- a/src/main/java/com/xcong/excoin/common/contants/AppContants.java
+++ b/src/main/java/com/xcong/excoin/common/contants/AppContants.java
@@ -1,5 +1,7 @@
 package com.xcong.excoin.common.contants;
 
+import java.math.BigDecimal;
+
 /**
  * @author wzy
  * @date 2020-05-12
@@ -37,4 +39,14 @@
      */
     public static final String ACCOUNT_TYPE_EMAIL = "2";
 
+    /**
+     * 系统推荐人id
+     */
+    public static final String SYSTEM_REFERER = "rxadr3";
+
+    /**
+     * 初始化金额
+     */
+    public static final BigDecimal INIT_MONEY = new BigDecimal(0.000000);
+
 }
diff --git a/src/main/java/com/xcong/excoin/common/enumerates/CoinTypeEnum.java b/src/main/java/com/xcong/excoin/common/enumerates/CoinTypeEnum.java
new file mode 100644
index 0000000..720342a
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/common/enumerates/CoinTypeEnum.java
@@ -0,0 +1,10 @@
+package com.xcong.excoin.common.enumerates;
+
+/**
+ * 币种枚举数据
+ *
+ * @author wzy
+ */
+public enum CoinTypeEnum {
+    USDT, BTC, ETH, LTC, EOS, XRP, BCH, ETC
+}
diff --git a/src/main/java/com/xcong/excoin/common/enumerates/SymbolEnum.java b/src/main/java/com/xcong/excoin/common/enumerates/SymbolEnum.java
new file mode 100644
index 0000000..816fbec
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/common/enumerates/SymbolEnum.java
@@ -0,0 +1,29 @@
+package com.xcong.excoin.common.enumerates;
+
+import lombok.Getter;
+
+/**
+ * @author wzy
+ */
+@Getter
+public enum SymbolEnum {
+
+    BTC("BTC", "BTC/USDT")
+    ,ETH("ETH", "ETH/USDT")
+    ,LTC("LTC", "LTC/USDT")
+    ,BCH("BCH", "BCH/USDT")
+    ,EOS("EOS", "EOS/USDT")
+    ,XRP("XRP", "XRP/USDT")
+    ,ETC("ETC", "ETC/USDT");
+
+    private String name;
+
+    private String value;
+
+    private SymbolEnum(String name, String value) {
+        this.name = name;
+        this.value = value;
+    }
+
+
+}
diff --git a/src/main/java/com/xcong/excoin/common/system/dto/RegisterDto.java b/src/main/java/com/xcong/excoin/common/system/dto/RegisterDto.java
index 230d52e..2f0e405 100644
--- a/src/main/java/com/xcong/excoin/common/system/dto/RegisterDto.java
+++ b/src/main/java/com/xcong/excoin/common/system/dto/RegisterDto.java
@@ -27,7 +27,7 @@
 
     @ApiModelProperty(value = "账号类型", notes = "1-手机 2-邮箱", example = "1")
     @NotBlank(message = "账号类型不能为空")
-    private String type;
+    private Integer type;
 
     @ApiModelProperty(value = "验证码", example = "123456")
     @NotBlank(message = "验证码不能为空")
diff --git a/src/main/java/com/xcong/excoin/modules/member/dao/MemberDao.java b/src/main/java/com/xcong/excoin/modules/member/dao/MemberDao.java
index 31545ba..6640df7 100644
--- a/src/main/java/com/xcong/excoin/modules/member/dao/MemberDao.java
+++ b/src/main/java/com/xcong/excoin/modules/member/dao/MemberDao.java
@@ -10,4 +10,6 @@
 public interface MemberDao extends BaseMapper<MemberEntity> {
 
     public MemberEntity selectMemberInfoByAccount(@Param("account") String account);
+
+    public MemberEntity selectMemberInfoByRefererId(@Param("refererId") String refererId);
 }
diff --git a/src/main/java/com/xcong/excoin/modules/member/dao/MemberLevelRateDao.java b/src/main/java/com/xcong/excoin/modules/member/dao/MemberLevelRateDao.java
new file mode 100644
index 0000000..ee4603e
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/member/dao/MemberLevelRateDao.java
@@ -0,0 +1,7 @@
+package com.xcong.excoin.modules.member.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xcong.excoin.modules.member.entity.MemberLevelRateEntity;
+
+public interface MemberLevelRateDao extends BaseMapper<MemberLevelRateEntity> {
+}
diff --git a/src/main/java/com/xcong/excoin/modules/member/dao/MemberWalletAgentDao.java b/src/main/java/com/xcong/excoin/modules/member/dao/MemberWalletAgentDao.java
new file mode 100644
index 0000000..9830c79
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/member/dao/MemberWalletAgentDao.java
@@ -0,0 +1,7 @@
+package com.xcong.excoin.modules.member.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xcong.excoin.modules.member.entity.MemberWalletAgentEntity;
+
+public interface MemberWalletAgentDao extends BaseMapper<MemberWalletAgentEntity> {
+}
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
new file mode 100644
index 0000000..71d7fa9
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/member/dao/MemberWalletCoinDao.java
@@ -0,0 +1,10 @@
+package com.xcong.excoin.modules.member.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity;
+
+/**
+ * @author wzy
+ */
+public interface MemberWalletCoinDao extends BaseMapper<MemberWalletCoinEntity> {
+}
diff --git a/src/main/java/com/xcong/excoin/modules/member/dao/MemberWalletContractDao.java b/src/main/java/com/xcong/excoin/modules/member/dao/MemberWalletContractDao.java
new file mode 100644
index 0000000..0ad4586
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/member/dao/MemberWalletContractDao.java
@@ -0,0 +1,7 @@
+package com.xcong.excoin.modules.member.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity;
+
+public interface MemberWalletContractDao extends BaseMapper<MemberWalletContractEntity> {
+}
diff --git a/src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java b/src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java
index 66c6c9a..fa286bc 100644
--- a/src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java
@@ -27,6 +27,34 @@
     public static final Integer ACCOUNT_STATUS_ENABLE = 1;
 
     /**
+     * 账号代理级别
+     */
+    public static final Integer ACCOUNT_AGENT_LEVEL = 6;
+
+    /**
+     * 账号类型 手机
+     */
+    public static final Integer ACCOUNT_TYPE_PHONE = 1;
+
+    /**
+     * 账号类型 邮箱
+     */
+    public static final Integer ACCOUNT_TYPE_EMAIL = 2;
+
+    /**
+     * 实名认证 审核通过
+     */
+    public static final Integer CERTIFY_STATUS_Y = 1;
+    /**
+     * 实名认证 审核不通过
+     */
+    public static final Integer CERTIFY_STATUS_N = 0;
+    /**
+     * 实名认证 审核中
+     */
+    public static final Integer CERTIFY_STATUS_ING = 2;
+
+    /**
      * 手机号(包含国际手机号)
      */
     private String phone;
diff --git a/src/main/java/com/xcong/excoin/modules/member/entity/MemberLevelRateEntity.java b/src/main/java/com/xcong/excoin/modules/member/entity/MemberLevelRateEntity.java
new file mode 100644
index 0000000..ef68aab
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/member/entity/MemberLevelRateEntity.java
@@ -0,0 +1,36 @@
+package com.xcong.excoin.modules.member.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.xcong.excoin.common.system.base.BaseEntity;
+import lombok.Data;
+
+/**
+ * 用户杠杆设置表
+ *
+ * @Author wzy
+ * @Date 2020/5/18
+ **/
+@Data
+@TableName("member_level_rate")
+public class MemberLevelRateEntity extends BaseEntity {
+
+    /**
+     * 会员ID
+     */
+    private Long memberId;
+
+    /**
+     * 多头杠杆
+     */
+    private int levelRateUp = 100;
+
+    /**
+     * 空头杠杆
+     */
+    private int levelRateDown = 100;
+
+    /**
+     * 币种
+     */
+    private String symbol;
+}
diff --git a/src/main/java/com/xcong/excoin/modules/member/entity/MemberWalletAgentEntity.java b/src/main/java/com/xcong/excoin/modules/member/entity/MemberWalletAgentEntity.java
index 5c87492..94c97df 100644
--- a/src/main/java/com/xcong/excoin/modules/member/entity/MemberWalletAgentEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/member/entity/MemberWalletAgentEntity.java
@@ -1,6 +1,7 @@
 package com.xcong.excoin.modules.member.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.xcong.excoin.common.contants.AppContants;
 import com.xcong.excoin.common.system.base.BaseEntity;
 import lombok.Data;
 
@@ -24,22 +25,22 @@
     /**
      * 可用余额
      */
-    private BigDecimal availableBalance;
+    private BigDecimal availableBalance = AppContants.INIT_MONEY;
 
     /**
      * 总金额
      */
-    private BigDecimal totalBalance;
+    private BigDecimal totalBalance = AppContants.INIT_MONEY;
 
     /**
      * 冻结金额
      */
-    private BigDecimal frozenBalance;
+    private BigDecimal frozenBalance = AppContants.INIT_MONEY;
 
     /**
      * 借入资产金额
      */
-    private BigDecimal borrowedFund;
+    private BigDecimal borrowedFund = AppContants.INIT_MONEY;
 
     /**
      * 钱包标识
diff --git a/src/main/java/com/xcong/excoin/modules/member/service/MemberService.java b/src/main/java/com/xcong/excoin/modules/member/service/MemberService.java
index 612ebee..26ca3bd 100644
--- a/src/main/java/com/xcong/excoin/modules/member/service/MemberService.java
+++ b/src/main/java/com/xcong/excoin/modules/member/service/MemberService.java
@@ -1,6 +1,8 @@
 package com.xcong.excoin.modules.member.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.xcong.excoin.common.response.Result;
+import com.xcong.excoin.common.system.dto.RegisterDto;
 import com.xcong.excoin.modules.member.entity.MemberEntity;
 import com.xcong.excoin.modules.test.entity.TestUserEntity;
 
@@ -8,4 +10,7 @@
  * @author wzy
  */
 public interface MemberService extends IService<MemberEntity> {
+
+    public Result register(RegisterDto registerDto);
+
 }
diff --git a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
index 5d93e06..b9008e1 100644
--- a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -1,13 +1,142 @@
 package com.xcong.excoin.modules.member.service.impl;
 
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.crypto.SecureUtil;
+import cn.hutool.crypto.asymmetric.Sign;
+import cn.hutool.crypto.asymmetric.SignAlgorithm;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.xcong.excoin.modules.member.dao.MemberDao;
-import com.xcong.excoin.modules.member.entity.MemberEntity;
+import com.xcong.excoin.common.contants.AppContants;
+import com.xcong.excoin.common.enumerates.CoinTypeEnum;
+import com.xcong.excoin.common.enumerates.SymbolEnum;
+import com.xcong.excoin.common.response.Result;
+import com.xcong.excoin.common.system.dto.RegisterDto;
+import com.xcong.excoin.modules.member.dao.*;
+import com.xcong.excoin.modules.member.entity.*;
 import com.xcong.excoin.modules.member.service.MemberService;
+import com.xcong.excoin.utils.ShareCodeUtil;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
 
 /**
  * @author wzy
  * @date 2020-05-18
  **/
+@Service
 public class MemberServiceImpl extends ServiceImpl<MemberDao, MemberEntity> implements MemberService {
+
+    @Resource
+    private MemberDao memberDao;
+
+    @Resource
+    private MemberWalletAgentDao memberWalletAgentDao;
+
+    @Resource
+    private MemberWalletContractDao memberWalletContractDao;
+
+    @Resource
+    private MemberWalletCoinDao memberWalletCoinDao;
+
+    @Resource
+    private MemberLevelRateDao memberLevelRateDao;
+
+    @Transactional()
+    @Override
+    public Result register(RegisterDto registerDto) {
+        // 查询是否存在该账号用户
+        MemberEntity member = memberDao.selectMemberInfoByAccount(registerDto.getAccount());
+        if (member == null) {
+            return Result.fail("账号已存在");
+        }
+
+        member = new MemberEntity();
+        Sign sign = SecureUtil.sign(SignAlgorithm.MD5withRSA);
+        byte[] signByte = sign.sign(registerDto.getPassword().getBytes());
+        member.setPassword(new String(signByte));
+
+        // 判断账号类型
+        if (MemberEntity.ACCOUNT_TYPE_PHONE == registerDto.getType()) {
+            member.setPhone(registerDto.getAccount());
+        } else if (MemberEntity.ACCOUNT_TYPE_EMAIL == registerDto.getType()) {
+            member.setEmail(registerDto.getAccount());
+        } else {
+            return Result.fail("账号类型错误");
+        }
+
+        // 判断是否拥有推荐人,若为空则默认系统
+        if (StrUtil.isBlank(registerDto.getRefererId())) {
+            registerDto.setRefererId(AppContants.SYSTEM_REFERER);
+        }
+
+        member.setRefererId(registerDto.getRefererId());
+        member.setAccountStatus(MemberEntity.ACCOUNT_STATUS_ENABLE);
+        member.setAccountType(registerDto.getType());
+        member.setAgentLevel(MemberEntity.ACCOUNT_AGENT_LEVEL);
+        member.setCertifyStatus(MemberEntity.CERTIFY_STATUS_ING);
+        member.setIsForce(0);
+        member.setIsProfit(0);
+        memberDao.insert(member);
+
+        String inviteId = ShareCodeUtil.toSerialCode(member.getId());
+        member.setInviteId(inviteId);
+
+        boolean flag = false;
+        String parentId = member.getRefererId();
+        String ids = "";
+        while (!flag) {
+            ids += ("," + parentId);
+            MemberEntity parentMember = memberDao.selectMemberInfoByRefererId(parentId);
+            if (parentMember == null) {
+                break;
+            }
+            parentId = parentMember.getRefererId();
+            if (parentMember.getRefererId().equals(parentMember.getInviteId())) {
+                flag = true;
+            }
+        }
+        member.setRefererIds(ids);
+        memberDao.updateById(member);
+
+        //初始化合约钱包
+        MemberWalletContractEntity walletContract = new MemberWalletContractEntity();
+        walletContract.setMemberId(member.getId());
+        walletContract.setAvailableBalance(AppContants.INIT_MONEY);
+        walletContract.setFrozenBalance(AppContants.INIT_MONEY);
+        walletContract.setTotalBalance(AppContants.INIT_MONEY);
+        walletContract.setBorrowedFund(AppContants.INIT_MONEY);
+        walletContract.setWalletCode(CoinTypeEnum.USDT.name());
+        memberWalletContractDao.insert(walletContract);
+
+
+        // 初始化币币钱包
+        for (CoinTypeEnum coinTypeEnum : CoinTypeEnum.values()) {
+            MemberWalletCoinEntity walletCoin = new MemberWalletCoinEntity();
+            walletCoin.setWalletCode(coinTypeEnum.name());
+            walletCoin.setMemberId(member.getId());
+            walletCoin.setAvailableBalance(AppContants.INIT_MONEY);
+            walletCoin.setFrozenBalance(AppContants.INIT_MONEY);
+            walletCoin.setTotalBalance(AppContants.INIT_MONEY);
+            walletCoin.setBorrowedFund(AppContants.INIT_MONEY);
+            memberWalletCoinDao.insert(walletCoin);
+        }
+
+        // 初始化代理佣金钱包
+        MemberWalletAgentEntity walletAgent = new MemberWalletAgentEntity();
+        walletAgent.setMemberId(member.getId());
+        walletAgent.setWalletCode(CoinTypeEnum.USDT.name());
+        memberWalletAgentDao.insert(walletAgent);
+
+        // 初始化杠杆
+        for(SymbolEnum symbolEnum : SymbolEnum.values()) {
+            MemberLevelRateEntity levelRate = new MemberLevelRateEntity();
+            levelRate.setMemberId(member.getId());
+            levelRate.setSymbol(symbolEnum.getValue());
+            memberLevelRateDao.insert(levelRate);
+        }
+
+
+        return Result.ok("success");
+    }
+
 }
diff --git a/src/main/java/com/xcong/excoin/utils/ShareCodeUtil.java b/src/main/java/com/xcong/excoin/utils/ShareCodeUtil.java
new file mode 100644
index 0000000..881f5e1
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/utils/ShareCodeUtil.java
@@ -0,0 +1,118 @@
+package com.xcong.excoin.utils;
+
+import java.util.Random;
+
+/**
+ * 邀请码生成器,算法原理:<br/>
+ * 1) 获取id: 1127738 <br/>
+ * 2) 使用自定义进制转为:gpm6 <br/>
+ * 3) 转为字符串,并在后面加'o'字符:gpm6o <br/>
+ * 4)在后面随机产生若干个随机数字字符:gpm6o7 <br/>
+ * 转为自定义进制后就不会出现o这个字符,然后在后面加个'o',这样就能确定唯一性。最后在后面产生一些随机字符进行补全。<br/>
+ */
+public class ShareCodeUtil {
+
+    /**
+     * 自定义进制(0,1没有加入,容易与o,l混淆)
+     */
+//    private static final char[] r=new char[]{'q', 'w', 'e', '8', 'a', 's', '2', 'd', 'z', 'x', '9', 'c', '7', 'p', '5', 'i', 'k', '3', 'm', 'j', 'u', 'f', 'r', '4', 'v', 'y', 'l', 't', 'n', '6', 'b', 'g', 'h'};
+    private static final char[] r = new char[]{'1', '2', '3', '4', '5', '6', '7', '8', '9'};
+
+    /**
+     * (不能与自定义进制有重复)
+     */
+    private static final char b = '0';
+
+    /**
+     * 进制长度
+     */
+    private static final int binLen = r.length;
+
+    /**
+     * 序列最小长度
+     */
+    private static final int s = 8;
+
+    /**
+     * 根据ID生成六位随机码
+     *
+     * @param id ID
+     * @return 随机码
+     */
+    public static String toSerialCode(long id) {
+        char[] buf = new char[32];
+        int charPos = 32;
+
+        while ((id / binLen) > 0) {
+            int ind = (int) (id % binLen);
+            buf[--charPos] = r[ind];
+            id /= binLen;
+        }
+        buf[--charPos] = r[(int) (id % binLen)];
+        String str = new String(buf, charPos, (32 - charPos));
+        // 不够长度的自动随机补全
+        if (str.length() < s) {
+            StringBuilder sb = new StringBuilder();
+            sb.append(b);
+            Random rnd = new Random();
+            for (int i = 1; i < s - str.length(); i++) {
+                sb.append(r[rnd.nextInt(binLen)]);
+            }
+            str += sb.toString();
+        }
+        return str;
+    }
+
+    /**
+     * 根据ID生成六位随机码
+     *
+     * @param id ID
+     * @return 随机码
+     */
+    public static String toSerialNumberCode(long id) {
+        char[] buf = new char[32];
+        int charPos = 32;
+
+        while ((id / binLen) > 0) {
+            int ind = (int) (id % binLen);
+            buf[--charPos] = r[ind];
+            id /= binLen;
+        }
+        buf[--charPos] = r[(int) (id % binLen)];
+        String str = new String(buf, charPos, (32 - charPos));
+        // 不够长度的自动随机补全
+        if (str.length() < s) {
+            StringBuilder sb = new StringBuilder();
+            sb.append(b);
+            Random rnd = new Random();
+            for (int i = 1; i < s - str.length(); i++) {
+                sb.append(r[rnd.nextInt(binLen)]);
+            }
+            str += sb.toString();
+        }
+        return str;
+    }
+
+    public static long codeToId(String code) {
+        char chs[] = code.toCharArray();
+        long res = 0L;
+        for (int i = 0; i < chs.length; i++) {
+            int ind = 0;
+            for (int j = 0; j < binLen; j++) {
+                if (chs[i] == r[j]) {
+                    ind = j;
+                    break;
+                }
+            }
+            if (chs[i] == b) {
+                break;
+            }
+            if (i > 0) {
+                res = res * binLen + ind;
+            } else {
+                res = ind;
+            }
+        }
+        return res;
+    }
+}
\ No newline at end of file
diff --git a/src/main/resources/mapper/member/MemberDao.xml b/src/main/resources/mapper/member/MemberDao.xml
index 0a0c8b1..22dbe67 100644
--- a/src/main/resources/mapper/member/MemberDao.xml
+++ b/src/main/resources/mapper/member/MemberDao.xml
@@ -5,4 +5,8 @@
     <select id="selectMemberInfoByAccount" resultType="com.xcong.excoin.modules.member.entity.MemberEntity">
         select * from member where phone=#{account} or email=#{account}
     </select>
+
+    <select id="selectMemberInfoByRefererId" resultType="com.xcong.excoin.modules.member.entity.MemberEntity">
+        select * from member where referer_id=#{refererId}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/member/MemberLevelRateDao.xml b/src/main/resources/mapper/member/MemberLevelRateDao.xml
new file mode 100644
index 0000000..56b7d83
--- /dev/null
+++ b/src/main/resources/mapper/member/MemberLevelRateDao.xml
@@ -0,0 +1,5 @@
+<?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.member.dao.MemberLevelRateDao">
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/member/MemberWalletAgentDao.xml b/src/main/resources/mapper/member/MemberWalletAgentDao.xml
new file mode 100644
index 0000000..f192492
--- /dev/null
+++ b/src/main/resources/mapper/member/MemberWalletAgentDao.xml
@@ -0,0 +1,6 @@
+<?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.member.dao.MemberWalletAgentDao">
+
+
+</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
new file mode 100644
index 0000000..9bd74b7
--- /dev/null
+++ b/src/main/resources/mapper/member/MemberWalletCoinDao.xml
@@ -0,0 +1,7 @@
+<?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.member.dao.MemberWalletCoinDao">
+
+
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/member/MemberWalletContractDao.xml b/src/main/resources/mapper/member/MemberWalletContractDao.xml
new file mode 100644
index 0000000..0c74801
--- /dev/null
+++ b/src/main/resources/mapper/member/MemberWalletContractDao.xml
@@ -0,0 +1,6 @@
+<?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.member.dao.MemberWalletContractDao">
+
+
+</mapper>
\ No newline at end of file
diff --git a/src/test/java/com/xcong/excoin/KssframeworkApplicationTests.java b/src/test/java/com/xcong/excoin/KssframeworkApplicationTests.java
index bc04524..df45836 100644
--- a/src/test/java/com/xcong/excoin/KssframeworkApplicationTests.java
+++ b/src/test/java/com/xcong/excoin/KssframeworkApplicationTests.java
@@ -1,5 +1,7 @@
 package com.xcong.excoin;
 
+import com.xcong.excoin.common.enumerates.CoinTypeEnum;
+import com.xcong.excoin.common.enumerates.SymbolEnum;
 import com.xcong.excoin.modules.test.dao.TestUserDao;
 import com.xcong.excoin.modules.test.entity.TestUserEntity;
 import com.xcong.excoin.modules.test.service.TestUserService;
@@ -46,5 +48,10 @@
 
     }
 
+    @Test
+    public void enumTest() {
+        System.out.println(SymbolEnum.BCH.getValue());
+    }
+
 
 }

--
Gitblit v1.9.1