From 9ccc8ed81210b5c4fdc50e71af201c6741622b84 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Thu, 16 Nov 2023 14:59:20 +0800 Subject: [PATCH] 登录、注册、忘记密码、修改登录密码、修改资金密码 --- src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java | 14 ++ src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java | 4 src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java | 10 + src/main/resources/mapper/modules/MallMemberAmountMapper.xml | 5 src/main/resources/mapper/modules/MallMemberMapper.xml | 10 + src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java | 4 src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java | 26 +--- src/main/java/cc/mrbird/febs/mall/mapper/MallMemberAmountMapper.java | 7 + src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 134 +++++++++++----------- src/main/java/cc/mrbird/febs/mall/entity/MallMemberAmount.java | 36 ++++++ src/main/java/cc/mrbird/febs/common/utils/AppContants.java | 2 src/main/resources/templates/febs/views/modules/mallMember/addMember.html | 25 ++-- src/main/java/cc/mrbird/febs/mall/dto/ForgetPwdDto.java | 13 - src/main/java/cc/mrbird/febs/common/utils/ShareCodeUtil.java | 60 ++++++++-- 14 files changed, 227 insertions(+), 123 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/common/utils/AppContants.java b/src/main/java/cc/mrbird/febs/common/utils/AppContants.java index f33ff3d..4110120 100644 --- a/src/main/java/cc/mrbird/febs/common/utils/AppContants.java +++ b/src/main/java/cc/mrbird/febs/common/utils/AppContants.java @@ -16,7 +16,7 @@ /** * app用户登陆redis前缀 */ - public static final String APP_LOGIN_PREFIX = "app_"; + public static final String APP_LOGIN_PREFIX = "app:user:"; public static final String PC_LOGIN_PREFIX = "pc_"; diff --git a/src/main/java/cc/mrbird/febs/common/utils/ShareCodeUtil.java b/src/main/java/cc/mrbird/febs/common/utils/ShareCodeUtil.java index c00834c..6172c24 100644 --- a/src/main/java/cc/mrbird/febs/common/utils/ShareCodeUtil.java +++ b/src/main/java/cc/mrbird/febs/common/utils/ShareCodeUtil.java @@ -7,8 +7,10 @@ /** * 自定义进制(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[] 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[] rAccount = new char[]{'1', '2', '3', '4', '5', '6', '7', '8', '9'}; + private static final char[] rInvitedId = new char[]{'1', '2', '3', '4', '5', '6', '7', '8', '9'}; + private static final char[] rAccount = 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'}; /** * (不能与自定义进制有重复) @@ -19,14 +21,18 @@ * 进制长度 */ private static final int binLen = r.length; + private static final int binLenAccount = rAccount.length; + private static final int binLenInvitedId = rInvitedId.length; /** * 序列最小长度 */ - private static final int s = 8; + private static final int s = 32; + private static final int sAccount = 6; + private static final int sInvitedId = 8; /** - * 根据ID生成六位随机码 + * 根据ID生成32位随机密钥 * * @param id ID * @return 随机码 @@ -65,20 +71,50 @@ char[] buf = new char[32]; int charPos = 32; - while ((id / binLen) > 0) { - int ind = (int) (id % binLen); - buf[--charPos] = r[ind]; - id /= binLen; + while ((id / binLenAccount) > 0) { + int ind = (int) (id % binLenAccount); + buf[--charPos] = rAccount[ind]; + id /= binLenAccount; } - buf[--charPos] = r[(int) (id % binLen)]; + buf[--charPos] = rAccount[(int) (id % binLenAccount)]; String str = new String(buf, charPos, (32 - charPos)); // 不够长度的自动随机补全 - if (str.length() < s) { + if (str.length() < sAccount) { 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)]); + for (int i = 1; i < sAccount - str.length(); i++) { + sb.append(rAccount[rnd.nextInt(binLenAccount)]); + } + str += sb.toString(); + } + return str; + } + + /** + * 根据ID生成六位随机数字码 + * + * @param id ID + * @return 随机码 + */ + public static String toSerialNumberCodeTwo(long id) { + char[] buf = new char[32]; + int charPos = 32; + + while ((id / binLenInvitedId) > 0) { + int ind = (int) (id % binLenInvitedId); + buf[--charPos] = rInvitedId[ind]; + id /= binLenInvitedId; + } + buf[--charPos] = rInvitedId[(int) (id % binLenInvitedId)]; + String str = new String(buf, charPos, (32 - charPos)); + // 不够长度的自动随机补全 + if (str.length() < sInvitedId) { + StringBuilder sb = new StringBuilder(); + sb.append(b); + Random rnd = new Random(); + for (int i = 1; i < sInvitedId - str.length(); i++) { + sb.append(rInvitedId[rnd.nextInt(binLenInvitedId)]); } str += sb.toString(); } diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java index f0fd5ad..c874d06 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java @@ -4,6 +4,7 @@ import cc.mrbird.febs.common.controller.BaseController; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; +import cc.mrbird.febs.common.utils.ShareCodeUtil; import cc.mrbird.febs.common.utils.excl.ExcelSheetPO; import cc.mrbird.febs.common.utils.excl.ExcelUtil; import cc.mrbird.febs.common.utils.excl.ExcelVersion; @@ -475,11 +476,14 @@ @PostMapping("/memberAdd") public FebsResponse memberAdd(MallMember member) { RegisterDto registerDto = new RegisterDto(); - registerDto.setAccount(member.getAccount()); - registerDto.setRegistType("admin"); + Integer selectCount = mallMemberMapper.selectCount(null); + String account = new StringBuilder().append("bbsz").append(ShareCodeUtil.toSerialNumberCode(selectCount)).toString(); + String key = ShareCodeUtil.toSerialCode(selectCount); + registerDto.setAccountLogin(account); + registerDto.setUserKey(key); registerDto.setPassword("a123456"); + registerDto.setTradePassword("123456"); registerDto.setInviteId(member.getInviteId()); - registerDto.setName(member.getName()); apiMallMemberService.register(registerDto); return new FebsResponse().success(); } diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java index d5ee563..e5eb1ad 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java @@ -29,6 +29,18 @@ private final IApiMallMemberService memberService; + @ApiOperation(value = "点击生成账号", notes = "点击生成账号") + @GetMapping(value = "/createAccount") + public FebsResponse createAccount() { + return memberService.createAccount(); + } + + @ApiOperation(value = "点击生成密钥", notes = "点击生成密钥") + @GetMapping(value = "/createKey") + public FebsResponse createKey() { + return memberService.createKey(); + } + @ApiOperation(value = "app注册接口", notes = "app注册接口") @PostMapping(value = "/register") public FebsResponse register(@RequestBody RegisterDto registerDto) { @@ -41,7 +53,6 @@ public FebsResponse login(@RequestBody LoginDto loginDto) { return memberService.toLogin(loginDto); } - @ApiOperation(value = "忘记/修改密码", notes = "忘记/修改密码") @PostMapping(value = "/forgetPwd") @@ -61,4 +72,5 @@ memberService.addRegisterAppeal(registerAppeal); return new FebsResponse().success().message("申请成功"); } + } diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ForgetPwdDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ForgetPwdDto.java index a07ec67..c69eb0a 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/ForgetPwdDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/ForgetPwdDto.java @@ -18,19 +18,12 @@ @ApiModelProperty(value = "登录账号", example = "15773001234") private String accountLogin; - @NotBlank(message = "账号不能为空") - @ApiModelProperty(value = "账号", example = "15773001234") - private String phone; - - @NotBlank(message = "绑定号码不能为空") - @ApiModelProperty(value = "绑定号码", example = "15773001234") - private String account; + @NotBlank(message = "密钥不能为空") + @ApiModelProperty(value = "密钥", example = "15773001234") + private String userKey; @NotBlank(message = "密码不能为空") @ApiModelProperty(value = "新密码", example = "123456") private String password; - @NotBlank(message = "验证码不能为空") - @ApiModelProperty(value = "验证码", example = "123456") - private String code; } diff --git a/src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java b/src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java index d637872..fb6c7f4 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java @@ -18,30 +18,20 @@ @ApiModelProperty(value = "账号", example = "hjsj") private String accountLogin; - @NotBlank(message = "手机号不能为空") - @ApiModelProperty(value = "手机号", example = "15773001234") - private String account; + @NotBlank(message = "密钥不能为空") + @ApiModelProperty(value = "密钥", example = "15773001234") + private String userKey; - @NotBlank(message = "姓名不能为空") - @ApiModelProperty(value = "姓名", example = "王大洋") - private String name; - - @NotBlank(message = "密码不能为空") - @ApiModelProperty(value = "密码", example = "123456") + @NotBlank(message = "登录密码不能为空") + @ApiModelProperty(value = "登录密码", example = "123456") private String password; - @ApiModelProperty(value = "类型 1-手机号 2-邮箱", example = "1") - private String type = "1"; - - @NotBlank(message = "验证码不能为空") - @ApiModelProperty(value = "验证码", example = "123456") - private String code; + @NotBlank(message = "交易密码不能为空") + @ApiModelProperty(value = "交易密码", example = "123456") + private String tradePassword; @NotBlank(message = "邀请码不能为空") @ApiModelProperty(value = "邀请码") private String inviteId; - - @ApiModelProperty(hidden = true) - private String registType; } diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallMemberAmount.java b/src/main/java/cc/mrbird/febs/mall/entity/MallMemberAmount.java new file mode 100644 index 0000000..8d50479 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/entity/MallMemberAmount.java @@ -0,0 +1,36 @@ +package cc.mrbird.febs.mall.entity; + +import cc.mrbird.febs.common.entity.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +/** + * CREATE TABLE `mall_member_amount` ( + * `id` bigint(20) NOT NULL AUTO_INCREMENT, + * `member_id` bigint(20) DEFAULT NULL, + * `static_nft` decimal(20,2) DEFAULT '0.00' COMMENT '静态NFT', + * `trends_nft` decimal(20,2) DEFAULT '0.00' COMMENT '动态NFT', + * `frozen_nft` decimal(20,2) DEFAULT '0.00' COMMENT '冻结NFT', + * `fcm_cnt_ava` decimal(20,2) DEFAULT '0.00' COMMENT 'FCM代币可用', + * `fcm_cnt_frozen` decimal(20,2) DEFAULT '0.00' COMMENT 'FCM代币冻结', + * `token_ava` decimal(20,2) DEFAULT '0.00' COMMENT '令牌可用', + * `token_frozen` decimal(20,2) DEFAULT '0.00' COMMENT '令牌冻结', + * `REVISION` int(11) DEFAULT NULL COMMENT '乐观锁', + * `CREATED_BY` varchar(32) DEFAULT NULL COMMENT '创建人', + * `CREATED_TIME` datetime DEFAULT NULL COMMENT '创建时间', + * `UPDATED_BY` varchar(32) DEFAULT NULL COMMENT '更新人', + * `UPDATED_TIME` datetime DEFAULT NULL COMMENT '更新时间', + * PRIMARY KEY (`id`) + * ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户金额表'; + */ +@Data +@TableName("mall_member_amount") +public class MallMemberAmount extends BaseEntity { + private Long memberId; + private Long staticNft;//静态NFT + private Long trendsNft;//动态NFT + private Long frozenNft;//冻结NFT + private Long fcmCntAva;//FCM代币可用 + private Long fcmCntFrozen;//FCM代币冻结 + private Long tokenAva;//令牌可用 + private Long tokenFrozen;//令牌冻结 +} diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberAmountMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberAmountMapper.java new file mode 100644 index 0000000..5d7fcbf --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberAmountMapper.java @@ -0,0 +1,7 @@ +package cc.mrbird.febs.mall.mapper; + +import cc.mrbird.febs.mall.entity.MallMemberAmount; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +public interface MallMemberAmountMapper extends BaseMapper<MallMemberAmount> { +} diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java index 3061839..1fc6ab6 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java +++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java @@ -109,4 +109,8 @@ MallMember selectByAccountLogin(@Param("accountLogin")String accountLogin); MallMember selectInfoByAccountLoginAndPwd(@Param("accountLogin")String account, @Param("password")String md5Pwd); + + MallMember selectByUserKey(@Param("userKey")String userKey); + + MallMember selectAccountLoginAndUserKey(@Param("accountLogin")String accountLogin, @Param("userKey")String userKey); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java index eac33fe..e51671b 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java @@ -78,4 +78,8 @@ FebsResponse findBankName(); FebsResponse pwdForget(ForgetPwdDto forgetPwdDto); + + FebsResponse createAccount(); + + FebsResponse createKey(); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java index c308fb8..230a6e7 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java @@ -48,6 +48,7 @@ public class ApiMallMemberServiceImpl extends ServiceImpl<MallMemberMapper, MallMember> implements IApiMallMemberService { private final MallMemberWalletMapper mallMemberWalletMapper; + private final MallMemberAmountMapper mallMemberAmountMapper; private final ICommonService commonService; private final RedisUtils redisUtils; private final MallOrderInfoMapper mallOrderInfoMapper; @@ -67,43 +68,27 @@ @Transactional(rollbackFor = Exception.class) @Override public FebsResponse register(RegisterDto registerDto) { -// MallMember mallMember = this.baseMapper.selectInfoByAccount(registerDto.getAccount()); -// if (mallMember != null) { -// throw new FebsException("该账号已被占用"); -// } + /** + * 验证账户密钥是否重复 + * 验证邀请码是否存在 + * 生成用户信息 + * 返回账号和密钥给前端 + */ String accountLogin = registerDto.getAccountLogin(); MallMember mallMember = this.baseMapper.selectByAccountLogin(accountLogin); if (mallMember != null) { - throw new FebsException("该账号已被占用"); + throw new FebsException("账号已使用,请重新注册。"); } - -// List<MallMember> mallMembers = this.baseMapper.selectMemberByName(registerDto.getName()); -// if (CollUtil.isNotEmpty(mallMembers)) { -// MallRegisterAppeal registerAppeal = mallRegisterAppealMapper.selectByPhoneAndName(registerDto.getName(), registerDto.getAccount()); -// if (registerAppeal == null || registerAppeal.getStatus() != 1) { -// return new FebsResponse().code(HttpStatus.ACCEPTED).message("用户名已存在"); -// } -// } - - String account = registerDto.getAccount(); - if (!"admin".equals(registerDto.getRegistType())) { - String code = registerDto.getCode(); - boolean flags = commonService.verifyCode(account, code); - if (!flags) { - throw new FebsException("验证码错误"); - } + String userKey = registerDto.getUserKey(); + MallMember mallMemberKey = this.baseMapper.selectByUserKey(userKey); + if (mallMemberKey != null) { + throw new FebsException("账号已使用,请重新注册。"); } mallMember = new MallMember(); mallMember.setAccountLogin(accountLogin); mallMember.setPassword(SecureUtil.md5(registerDto.getPassword())); - - // 判断账号类型 - if (AppContants.ACCOUNT_TYPE_MOBILE.equals(registerDto.getType())) { - mallMember.setPhone(registerDto.getAccount()); - } else { - mallMember.setEmail(registerDto.getAccount()); - } + mallMember.setTradePassword(SecureUtil.md5(registerDto.getTradePassword())); Integer count = this.baseMapper.selectCount(null); if (count != null && count != 0) { @@ -111,20 +96,19 @@ if (inviteMember == null) { throw new FebsException("邀请码不存在"); } - mallMember.setReferrerId(registerDto.getInviteId()); - } - mallMember.setName(registerDto.getName()); - mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE); +// mallMember.setName(registerDto.getName()); +// mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE); + mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_DISABLED); mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL); mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.getCode()); - mallMember.setSex("男"); - mallMember.setBindPhone(registerDto.getAccount()); +// mallMember.setSex("男"); +// mallMember.setBindPhone(registerDto.getAccount()); this.baseMapper.insert(mallMember); - String inviteId = ShareCodeUtil.toSerialCode(mallMember.getId()); + String inviteId = ShareCodeUtil.toSerialNumberCodeTwo(mallMember.getId()); mallMember.setInviteId(inviteId); //推荐人和推荐人链 @@ -156,9 +140,11 @@ this.baseMapper.updateById(mallMember); MallMemberWallet wallet = new MallMemberWallet(); - wallet.setBalance(BigDecimal.ZERO); wallet.setMemberId(mallMember.getId()); mallMemberWalletMapper.insert(wallet); + MallMemberAmount mallMemberAmount = new MallMemberAmount(); + mallMemberAmount.setMemberId(mallMember.getId()); + mallMemberAmountMapper.insert(mallMemberAmount); return new FebsResponse().success().message("注册成功"); } @@ -166,14 +152,12 @@ public FebsResponse toLogin(LoginDto loginDto) { String md5Pwd = SecureUtil.md5(loginDto.getPassword()); -// MallMember mallMember = this.baseMapper.selectInfoByAccountAndPwd(loginDto.getAccount(), md5Pwd); MallMember mallMember = this.baseMapper.selectInfoByAccountLoginAndPwd(loginDto.getAccount(), md5Pwd); if (mallMember == null) { - throw new FebsException("用户不存在或账号密码错误"); + throw new FebsException("账号或密码错误"); } - if (MallMember.ACCOUNT_STATUS_DISABLED.equals(mallMember.getAccountStatus())) { - throw new FebsException("该账号存在异常, 暂限制登录"); + throw new FebsException("账号限制登录"); } String redisKey = AppContants.APP_LOGIN_PREFIX + mallMember.getId(); @@ -201,24 +185,22 @@ @Override public FebsResponse forgetPwd(ForgetPwdDto forgetPwdDto) { - Long id = LoginUserUtil.getLoginUser().getId(); - MallMember mallMember = this.baseMapper.selectById(id); - -// MallMember mallMember = this.baseMapper.selectInfoByAccount(forgetPwdDto.getPhone()); -// MallMember mallMember = this.baseMapper.selectInfoByAccount(forgetPwdDto.getAccount()); + /** + * 验证用户名和密钥是否存在、是否匹配 + * 更新用户密码 + */ + String accountLogin = forgetPwdDto.getAccountLogin(); + String userKey = forgetPwdDto.getUserKey(); + MallMember mallMember = this.baseMapper.selectAccountLoginAndUserKey(accountLogin,userKey); if (mallMember == null) { - throw new FebsException("账号不存在"); - } - - boolean b = commonService.verifyCode(forgetPwdDto.getAccount(), forgetPwdDto.getCode()); - if (!b) { - throw new FebsException("验证码错误"); + throw new FebsException("请输入正确的账号或密钥"); } String pwd = SecureUtil.md5(forgetPwdDto.getPassword()); mallMember.setPassword(pwd); - this.baseMapper.updateById(mallMember); + + redisUtils.del(AppContants.APP_LOGIN_PREFIX + mallMember.getId()); return new FebsResponse().success().message("重置成功"); } @@ -286,17 +268,15 @@ @Override public FebsResponse setTradePwd(ForgetPwdDto forgetPwdDto) { - MallMember memberId = LoginUserUtil.getLoginUser(); + Long memberId = LoginUserUtil.getLoginUser().getId(); MallMember mallMember = this.baseMapper.selectById(memberId); if (mallMember == null) { throw new FebsException("账号不存在"); } - - boolean b = commonService.verifyCode(forgetPwdDto.getAccount(), forgetPwdDto.getCode()); - if (!b) { - throw new FebsException("验证码错误"); + MallMember mallMemberKey = this.baseMapper.selectByUserKey(forgetPwdDto.getUserKey()); + if (!(mallMemberKey.getId() == memberId)) { + throw new FebsException("请输入正确的密钥"); } - mallMember.setTradePassword(SecureUtil.md5(forgetPwdDto.getPassword())); this.baseMapper.updateById(mallMember); return new FebsResponse().success().message("设置成功"); @@ -666,20 +646,42 @@ @Override public FebsResponse pwdForget(ForgetPwdDto forgetPwdDto) { - MallMember mallMember = this.baseMapper.selectInfoByAccountNew(forgetPwdDto.getAccountLogin(),forgetPwdDto.getPhone()); + String accountLogin = forgetPwdDto.getAccountLogin(); + String userKey = forgetPwdDto.getUserKey(); + MallMember mallMember = this.baseMapper.selectAccountLoginAndUserKey(accountLogin,userKey); if(ObjectUtil.isEmpty(mallMember)){ throw new FebsException("账号不存在"); } - - boolean b = commonService.verifyCode(forgetPwdDto.getAccount(), forgetPwdDto.getCode()); - if (!b) { - throw new FebsException("验证码错误"); - } - String pwd = SecureUtil.md5(forgetPwdDto.getPassword()); mallMember.setPassword(pwd); - this.baseMapper.updateById(mallMember); return new FebsResponse().success().message("重置成功"); } + + @Override + public FebsResponse createAccount() { + Integer selectCount = this.baseMapper.selectCount(null); + String account = new StringBuilder().append("bbsz").append(ShareCodeUtil.toSerialNumberCode(selectCount)).toString(); + return new FebsResponse().success().data(account); + } + + @Override + public FebsResponse createKey() { + Integer selectCount = this.baseMapper.selectCount(null); + String key = ShareCodeUtil.toSerialCode(selectCount); + return new FebsResponse().success().data(key); + } + + public static void main(String[] args) { + Set<String> objectsAccount = new HashSet<>(); + Set<String> objects = new HashSet<>(); + int j = 100; + for(int i =0;i < 100 ; i++){ + String s = ShareCodeUtil.toSerialNumberCodeTwo(j); + objects.add(s); + } + + System.out.println(objects); + System.out.println(objects.size()); + } } diff --git a/src/main/resources/mapper/modules/MallMemberAmountMapper.xml b/src/main/resources/mapper/modules/MallMemberAmountMapper.xml new file mode 100644 index 0000000..30f21f8 --- /dev/null +++ b/src/main/resources/mapper/modules/MallMemberAmountMapper.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="cc.mrbird.febs.mall.mapper.MallMemberAmountMapper"> + +</mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml index 44ea668..0593be1 100644 --- a/src/main/resources/mapper/modules/MallMemberMapper.xml +++ b/src/main/resources/mapper/modules/MallMemberMapper.xml @@ -477,4 +477,14 @@ select * from mall_member where account_login = #{accountLogin} and password = #{password} </select> + + <select id="selectByUserKey" resultType="cc.mrbird.febs.mall.entity.MallMember"> + select * from mall_member + where user_key = #{userKey} + </select> + + <select id="selectAccountLoginAndUserKey" resultType="cc.mrbird.febs.mall.entity.MallMember"> + select * from mall_member + where account_login = #{accountLogin} and user_key = #{userKey} + </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/mallMember/addMember.html b/src/main/resources/templates/febs/views/modules/mallMember/addMember.html index 55344f8..31d1b37 100644 --- a/src/main/resources/templates/febs/views/modules/mallMember/addMember.html +++ b/src/main/resources/templates/febs/views/modules/mallMember/addMember.html @@ -22,22 +22,23 @@ </style> <div class="layui-fluid" id="member-add"> <form class="layui-form" action="" lay-filter="member-add-form"> - <div class="layui-form-item"> - <label class="layui-form-label febs-form-item-require">账号:</label> - <div class="layui-input-block"> - <input type="text" name="account" lay-verify="required|phone" autocomplete="off" class="layui-input"> - </div> - </div> - <div class="layui-form-item"> - <label class="layui-form-label febs-form-item-require">姓名:</label> - <div class="layui-input-block"> - <input type="text" name="name" lay-verify="required" autocomplete="off" class="layui-input"> - </div> - </div> +<!-- <div class="layui-form-item">--> +<!-- <label class="layui-form-label febs-form-item-require">账号:</label>--> +<!-- <div class="layui-input-block">--> +<!-- <input type="text" name="account" autocomplete="off" class="layui-input">--> +<!-- </div>--> +<!-- </div>--> +<!-- <div class="layui-form-item">--> +<!-- <label class="layui-form-label febs-form-item-require">姓名:</label>--> +<!-- <div class="layui-input-block">--> +<!-- <input type="text" name="name" lay-verify="required" autocomplete="off" class="layui-input">--> +<!-- </div>--> +<!-- </div>--> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">推荐人:</label> <div class="layui-input-block"> <input type="text" name="inviteId" lay-verify="required" autocomplete="off" class="layui-input"> + <div class="layui-word-aux">输入上级的邀请码,即添加成为其的直推用户</div> </div> </div> <div class="layui-form-item febs-hide"> -- Gitblit v1.9.1