修改注册逻辑 改完从商城系统进行注册

This commit is contained in:
liliang 2025-03-13 10:39:03 +08:00
parent dea2a88574
commit a89b431ec8
9 changed files with 179 additions and 47 deletions

View File

@ -12,6 +12,7 @@ import com.imooc.utils.IPUtil;
import com.imooc.utils.SMSUtils; import com.imooc.utils.SMSUtils;
import com.imooc.vo.UsersVO; import com.imooc.vo.UsersVO;
import com.imooc.utils.CommonUtil; import com.imooc.utils.CommonUtil;
import com.imooc.utils.GsonUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -25,6 +26,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.Map; import java.util.Map;
import java.util.Optional;
import java.util.UUID; import java.util.UUID;
/** /**
@ -42,7 +44,7 @@ public class PassportController extends BaseInfoProperties {
@Autowired @Autowired
private UserService userService; private UserService userService;
@Autowired @Autowired
private PasswordEncoder passwordEncoder; private PasswordEncoder passwordEncoder;
@ -66,47 +68,72 @@ public class PassportController extends BaseInfoProperties {
return GraceJSONResult.ok(); return GraceJSONResult.ok();
} }
/*@PostMapping("login")
public Object login(@Valid @RequestBody RegistLoginBO registLoginBO){
String rediscode = redis.get(MOBILE_SMSCODE + ":" + registLoginBO.getMobile());
if (StringUtils.isBlank(rediscode)|| !rediscode.equalsIgnoreCase(registLoginBO.getSmsCode())){
System.out.println("rediscode"+rediscode);
System.out.println("registLoginBO.getMobile()"+registLoginBO.getSmsCode());
return GraceJSONResult.errorCustom(ResponseStatusEnum.SMS_CODE_ERROR);
}
Users user = userService.queryMobileIsExist(registLoginBO.getMobile());
if (user==null){
user = userService.createUser(registLoginBO.getMobile());
}
String uToken = UUID.randomUUID().toString();
log.info(uToken);
redis.set(REDIS_USER_TOKEN+":"+user.getId(),uToken);
//清除验证码
redis.del(MOBILE_SMSCODE+":"+user.getMobile());
//返回给前端
UsersVO usersVO = new UsersVO();
BeanUtils.copyProperties(user, usersVO);
usersVO.setUserToken(uToken);
return GraceJSONResult.ok(usersVO);
}*/
@PostMapping("login") @PostMapping("login")
public Object login(@Valid @RequestBody RegistLoginBO registLoginBO) { public Object login(@Valid @RequestBody RegistLoginBO registLoginBO) {
/*String rediscode = redis.get(MOBILE_SMSCODE + ":" + registLoginBO.getMobile()); String rediscode = redis.get(MOBILE_SMSCODE + ":" + registLoginBO.getMobile());
if (StringUtils.isBlank(rediscode) || !rediscode.equalsIgnoreCase(registLoginBO.getSmsCode())) {
System.out.println("rediscode" + rediscode);
System.out.println("registLoginBO.getMobile()" + registLoginBO.getSmsCode());
return GraceJSONResult.errorCustom(ResponseStatusEnum.SMS_CODE_ERROR);
}
Users user = userService.queryMobileIsExist(registLoginBO.getMobile());
if (user == null) {
user = userService.createUser(registLoginBO.getMobile());
}
String uToken = UUID.randomUUID().toString();
log.info(uToken);
redis.set(REDIS_USER_TOKEN + ":" + user.getId(), uToken);
// 清除验证码
redis.del(MOBILE_SMSCODE + ":" + user.getMobile());
// 返回给前端
UsersVO usersVO = new UsersVO();
BeanUtils.copyProperties(user, usersVO);
usersVO.setUserToken(uToken);
return GraceJSONResult.ok(usersVO);
}
/**
* 从商城系统登录
*
* @param mobile
* @return
*/
@PostMapping("loginFromShop")
public String loginFromShop(String mobile, String memberId) {
// 创建短视频系统账号
return Optional.ofNullable(userService.createUserFromShop(mobile,memberId))//
.map(user -> {
String uToken = UUID.randomUUID().toString();
log.info(uToken);
redis.set(REDIS_USER_TOKEN + ":" + user.getId(), uToken);
// 清除验证码
redis.del(MOBILE_SMSCODE + ":" + user.getMobile());
// 返回给前端
UsersVO usersVO = new UsersVO();
BeanUtils.copyProperties(user, usersVO);
usersVO.setUserToken(uToken);
return GsonUtil.beanToJson(usersVO);
})//
.orElseGet(()->StringUtils.EMPTY);
}
/*@PostMapping("login")
public Object login(@Valid @RequestBody RegistLoginBO registLoginBO) {
String rediscode = redis.get(MOBILE_SMSCODE + ":" + registLoginBO.getMobile());
if (StringUtils.isBlank(rediscode) || !rediscode.equalsIgnoreCase(registLoginBO.getSmsCode())) { if (StringUtils.isBlank(rediscode) || !rediscode.equalsIgnoreCase(registLoginBO.getSmsCode())) {
System.out.println("rediscode" + rediscode); System.out.println("rediscode" + rediscode);
System.out.println("registLoginBO.getMobile()" + registLoginBO.getSmsCode()); System.out.println("registLoginBO.getMobile()" + registLoginBO.getSmsCode());
return GraceJSONResult.errorCustom(ResponseStatusEnum.SMS_CODE_ERROR); return GraceJSONResult.errorCustom(ResponseStatusEnum.SMS_CODE_ERROR);
}*/ }
// 手机号 // 手机号
String mobile = registLoginBO.getMobile(); String mobile = registLoginBO.getMobile();
Users user = userService.queryMobileIsExist(mobile); Users user = userService.queryMobileIsExist(mobile);
@ -121,22 +148,22 @@ public class PassportController extends BaseInfoProperties {
} else { } else {
shopToken = userService.getShopToken(user.getId()); shopToken = userService.getShopToken(user.getId());
} }
String uToken = UUID.randomUUID().toString(); String uToken = UUID.randomUUID().toString();
log.info(uToken); log.info(uToken);
redis.set(REDIS_USER_TOKEN + ":" + user.getId(), uToken); redis.set(REDIS_USER_TOKEN + ":" + user.getId(), uToken);
// 清除验证码 // 清除验证码
redis.del(MOBILE_SMSCODE + ":" + user.getMobile()); redis.del(MOBILE_SMSCODE + ":" + user.getMobile());
// 返回给前端 // 返回给前端
UsersVO usersVO = new UsersVO(); UsersVO usersVO = new UsersVO();
BeanUtils.copyProperties(user, usersVO); BeanUtils.copyProperties(user, usersVO);
usersVO.setUserToken(uToken); usersVO.setUserToken(uToken);
usersVO.setShopToken(shopToken); //usersVO.setShopToken(shopToken);
return GraceJSONResult.ok(usersVO); return GraceJSONResult.ok(usersVO);
} }*/
@PostMapping("loginWithPassword") @PostMapping("loginWithPassword")
public Object loginWithPassword(@Valid @RequestBody LoginWithPasswordBO loginWithPasswordBO) { public Object loginWithPassword(@Valid @RequestBody LoginWithPasswordBO loginWithPasswordBO) {
@ -151,19 +178,18 @@ public class PassportController extends BaseInfoProperties {
if (!passwordEncoder.matches(password, user.getPassword())) { if (!passwordEncoder.matches(password, user.getPassword())) {
return GraceJSONResult.errorCustom(ResponseStatusEnum.USER_PASSWORD_ERROR); return GraceJSONResult.errorCustom(ResponseStatusEnum.USER_PASSWORD_ERROR);
} }
String uToken = UUID.randomUUID().toString(); String uToken = UUID.randomUUID().toString();
log.info(uToken); log.info(uToken);
redis.set(REDIS_USER_TOKEN + ":" + user.getId(), uToken); redis.set(REDIS_USER_TOKEN + ":" + user.getId(), uToken);
//商城token // 商城token
Token shopToken = userService.getShopToken(user.getId()); // Token shopToken = userService.getShopToken(user.getId());
// 返回给前端 // 返回给前端
UsersVO usersVO = new UsersVO(); UsersVO usersVO = new UsersVO();
BeanUtils.copyProperties(user, usersVO); BeanUtils.copyProperties(user, usersVO);
usersVO.setUserToken(uToken); usersVO.setUserToken(uToken);
usersVO.setShopToken(shopToken); // usersVO.setShopToken(shopToken);
return GraceJSONResult.ok(usersVO); return GraceJSONResult.ok(usersVO);

View File

@ -0,0 +1,13 @@
package com.imooc.mapper;
import org.apache.ibatis.annotations.Mapper;
import com.imooc.my.mapper.MyMapper;
import com.imooc.pojo.UserMember;
/**
* 短视频用户与商城会员数据处理层
*/
@Mapper
public interface UserMemberMapper extends MyMapper<UserMember> {
}

View File

@ -0,0 +1,4 @@
<?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.imooc.mapper.UserMemberMapper">
</mapper>

View File

@ -0,0 +1,13 @@
package com.imooc.pojo;
import javax.persistence.Table;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@Table(name = "r_user_member")
public class UserMember {
private String userId;
private String memberId;
}

View File

@ -37,6 +37,6 @@ public class UsersVO {
private Integer myFansCounts; // 我的粉丝数量 private Integer myFansCounts; // 我的粉丝数量
// private Integer myLikedVlogCounts; // private Integer myLikedVlogCounts;
private Integer totalLikeMeCounts; private Integer totalLikeMeCounts;
private Token shopToken; //private Token shopToken;
} }

View File

@ -0,0 +1,9 @@
package com.imooc.service;
/**
* 短视频用户与商城会员业务层
*/
public interface UserMemberService {
}

View File

@ -51,4 +51,12 @@ public interface UserService {
* @return * @return
*/ */
Token getShopToken(String userId); Token getShopToken(String userId);
/**
* 从商城系统创建账号
*
* @param mobile
* @return
*/
Users createUserFromShop(String mobile, String memberId);
} }

View File

@ -0,0 +1,19 @@
package com.imooc.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.imooc.mapper.UserMemberMapper;
import com.imooc.service.UserMemberService;
/**
* 会员接口业务层实现
*
* @author Chopper
* @since 2021-03-29 14:10:16
*/
@Service
public class UserMemberServiceImpl implements UserMemberService {
@Autowired
private UserMemberMapper userMemberMapper;
}

View File

@ -7,8 +7,10 @@ import com.imooc.enums.UserInfoModifyType;
import com.imooc.enums.YesOrNo; import com.imooc.enums.YesOrNo;
import com.imooc.exceptions.GraceException; import com.imooc.exceptions.GraceException;
import com.imooc.grace.result.ResponseStatusEnum; import com.imooc.grace.result.ResponseStatusEnum;
import com.imooc.mapper.UserMemberMapper;
import com.imooc.mapper.UsersMapper; import com.imooc.mapper.UsersMapper;
import com.imooc.mo.Token; import com.imooc.mo.Token;
import com.imooc.pojo.UserMember;
import com.imooc.pojo.Users; import com.imooc.pojo.Users;
import com.imooc.service.UserService; import com.imooc.service.UserService;
import com.imooc.utils.DateUtil; import com.imooc.utils.DateUtil;
@ -43,6 +45,9 @@ public class UserServiceImpl implements UserService {
@Resource @Resource
private PasswordEncoder passwordEncoder; private PasswordEncoder passwordEncoder;
@Autowired
private UserMemberMapper userMemberMapper;
@Autowired @Autowired
private Sid sid; private Sid sid;
private static final String USER_FACE1 = "http://122.152.205.72:88/group1/M00/00/05/CpoxxF6ZUySASMbOAABBAXhjY0Y649.png"; private static final String USER_FACE1 = "http://122.152.205.72:88/group1/M00/00/05/CpoxxF6ZUySASMbOAABBAXhjY0Y649.png";
@ -212,4 +217,39 @@ public class UserServiceImpl implements UserService {
}); });
return tokens[0]; return tokens[0];
} }
@Transactional(rollbackFor = RuntimeException.class)
@Override
public Users createUserFromShop(String mobile, String memberId) {
// 获得全局唯一主键
String userId = sid.nextShort();
Users user = new Users();
user.setId(userId);
user.setPassword(mobile);
user.setMobile(mobile);
user.setNickname("用户:" + DesensitizationUtil.commonDisplay(mobile));
user.setImoocNum("用户:" + DesensitizationUtil.commonDisplay(mobile));
user.setFace(USER_FACE1);
user.setBirthday(DateUtil.stringToDate("1999-01-01"));
user.setSex(Sex.secret.type);
user.setBgImg("http://82.156.121.2:29000/bucket/IMG20241212102441.jpg"); // 测试用地址
user.setCountry("中国");
user.setProvince("");
user.setCity("");
user.setDistrict("");
user.setDescription("这家伙很懒,什么都没留下~");
user.setCanImoocNumBeUpdated(YesOrNo.YES.type);
user.setCreatedTime(new Date());
user.setUpdatedTime(new Date());
// 短视频用户与商城账号关系
UserMember userMember = new UserMember();
userMember.setUserId(user.getId());
userMember.setMemberId(memberId);
if (usersMapper.insert(user) > 0 && userMemberMapper.insert(userMember) > 0) {
return user;
}
return null;
}
} }