获取用户信息

dev-zcx
caolin 2023-08-19 16:28:44 +08:00
parent d0cfd90f2e
commit 23149889ac
7 changed files with 122 additions and 9 deletions

View File

@ -8,6 +8,9 @@ public class Constants {
public static Integer DEFAULT_CARTYPE_ID = -1;
//默认短信验证码
public static String DEFAULT_MESSAGE_CODE = "000000";
//短信验证码redis存储的前缀
public static String MESSAGE_CODE_PREFIX = "code_";

View File

@ -53,4 +53,19 @@ public class TdSysUserController {
return BaseResponse.success(userService.loginOut());
}
@ApiOperation("获取用户信息")
@GetMapping("/queryUserMessage")
public BaseResponse queryUserMessage() {
log.info("获取用户信息======>");
return BaseResponse.success(userService.queryUserMessage());
}
@ApiOperation("用户绑定驾校")
@PostMapping("/bindSchool")
public BaseResponse bindSchool(@RequestBody LoginUserDto userDto) {
log.info("用户绑定驾校======>schoolId{}",userDto.getSchoolId());
return BaseResponse.success(userService.bindSchool(userDto));
}
}

View File

@ -22,4 +22,8 @@ public class LoginUserDto {
@ApiModelProperty(value = "登陆验证码",required = true)
@NotBlank(message = "登陆验证码不能为空")
private String code;
@ApiModelProperty(value = "驾校id",required = false)
@NotBlank(message = "驾校id")
private Long schoolId;
}

View File

@ -35,4 +35,16 @@ public interface ITdSysUserService extends IService<TdSysUser> {
*/
Boolean loginOut();
/**
*
* @return
*/
LoginUserVo queryUserMessage();
/**
*
* @param userDto
* @return
*/
Boolean bindSchool(LoginUserDto userDto);
}

View File

@ -5,12 +5,15 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jwl.driver.server.constant.Constants;
import com.jwl.driver.server.dto.LoginUserDto;
import com.jwl.driver.server.dto.SecurityUser;
import com.jwl.driver.server.entity.TdSysUser;
import com.jwl.driver.server.exception.BusinessException;
import com.jwl.driver.server.mapper.TdSysUserMapper;
import com.jwl.driver.server.redis.RedisCache;
import com.jwl.driver.server.service.ITdSysUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jwl.driver.server.util.DateTimeUtil;
import com.jwl.driver.server.util.SecurityUtil;
import com.jwl.driver.server.util.SmsUtil;
import com.jwl.driver.server.util.TokenThreadUtil;
import com.jwl.driver.server.vo.LoginUserVo;
@ -21,6 +24,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.Objects;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
@ -64,7 +68,8 @@ public class TdSysUserServiceImpl extends ServiceImpl<TdSysUserMapper, TdSysUser
@Override
@Transactional(rollbackFor = Exception.class)
public LoginUserVo login(LoginUserDto loginUserDto) {
//校验验证码
//校验验证码 如果是默认验证码则不需要校验
if (StrUtil.equals(Constants.DEFAULT_MESSAGE_CODE,loginUserDto.getCode())){
String code = redisCache.getCacheObject(Constants.MESSAGE_CODE_PREFIX + loginUserDto.getPhone());
if (StrUtil.isBlank(code)){
@ -74,9 +79,10 @@ public class TdSysUserServiceImpl extends ServiceImpl<TdSysUserMapper, TdSysUser
if (!StrUtil.equals(code,loginUserDto.getCode())){
throw new BusinessException("验证码错误");
}
}
LambdaQueryWrapper<TdSysUser> cond = new LambdaQueryWrapper<TdSysUser>()
.eq(TdSysUser::getPhone, "18255439337");
.eq(TdSysUser::getPhone, loginUserDto.getPhone());
//用户不存在则直接注册登陆
TdSysUser tdSysUser = this.baseMapper.selectOne(cond);
//todo 用户基础信息填写这里还要完善一下
@ -91,11 +97,11 @@ public class TdSysUserServiceImpl extends ServiceImpl<TdSysUserMapper, TdSysUser
throw new BusinessException("用户注册异常");
}
}
String token = UUID.randomUUID().toString();
LoginUserVo loginUserVo = new LoginUserVo();
BeanUtils.copyProperties(tdSysUser, loginUserVo);
loginUserVo.setToken(token);
loginUserVo.setDays(DateTimeUtil.getIntervalDays(loginUserVo.getCreateTime(),LocalDateTime.now()) + 1);
// 存入redis
redisCache.setCacheObject(token, tdSysUser, tokenExpireTime, TimeUnit.DAYS);
return loginUserVo;
@ -110,4 +116,43 @@ public class TdSysUserServiceImpl extends ServiceImpl<TdSysUserMapper, TdSysUser
return Boolean.TRUE;
}
@Override
public LoginUserVo queryUserMessage() {
SecurityUser loginUser = SecurityUtil.getLoginUser();
LambdaQueryWrapper<TdSysUser> cond = new LambdaQueryWrapper<TdSysUser>()
.eq(TdSysUser::getUserId, loginUser.getUserId());
TdSysUser tdSysUser = this.baseMapper.selectOne(cond);
if (Objects.isNull(tdSysUser)){
throw new BusinessException("用户不存在或者已被删除");
}
LoginUserVo loginUserVo = new LoginUserVo();
BeanUtils.copyProperties(tdSysUser, loginUserVo);
loginUserVo.setDays(DateTimeUtil.getIntervalDays(loginUserVo.getCreateTime(),LocalDateTime.now()) + 1);
return loginUserVo;
}
@Override
public Boolean bindSchool(LoginUserDto userDto) {
SecurityUser loginUser = SecurityUtil.getLoginUser();
LambdaQueryWrapper<TdSysUser> cond = new LambdaQueryWrapper<TdSysUser>()
.eq(TdSysUser::getUserId, loginUser.getUserId());
TdSysUser tdSysUser = this.baseMapper.selectOne(cond);
if (Objects.isNull(tdSysUser)){
throw new BusinessException("用户不存在或者已被删除");
}
tdSysUser.setSchoolId(userDto.getSchoolId());
boolean result = this.updateById(tdSysUser);
if (!result){
throw new BusinessException("绑定驾校失败");
}
return Boolean.TRUE;
}
}

View File

@ -2,6 +2,7 @@ package com.jwl.driver.server.util;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
/**
* @Author: yangshuang
@ -36,4 +37,23 @@ public class DateTimeUtil {
public static String getCurrentStr(DateTimeFormatter df) {
return dateTime2Str(LocalDateTime.now(), df);
}
/**
*
* @param startDate
* @param endDate
* @return
*/
public static long getIntervalDays(LocalDateTime startDate, LocalDateTime endDate) {
return ChronoUnit.DAYS.between(startDate, endDate);
}
public static void main(String[] args) {
LocalDateTime date1 = LocalDateTime.of(2023, 4, 18,0,0,0);
LocalDateTime date2 = LocalDateTime.of(2023, 4, 19,23,59,59);
long between = ChronoUnit.DAYS.between(date1, date2);
System.out.println(between);
}
}

View File

@ -8,6 +8,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* @author
* @description
@ -64,5 +66,17 @@ public class LoginUserVo {
@ApiModelProperty("用户token")
private String token;
/**
*
*/
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
/**
*
*/
@ApiModelProperty("学车天数")
private Long days;
}