diff --git a/src/main/java/com/jwl/driver/server/constant/Constants.java b/src/main/java/com/jwl/driver/server/constant/Constants.java index e050280..d6c2d36 100644 --- a/src/main/java/com/jwl/driver/server/constant/Constants.java +++ b/src/main/java/com/jwl/driver/server/constant/Constants.java @@ -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_"; diff --git a/src/main/java/com/jwl/driver/server/controller/TdSysUserController.java b/src/main/java/com/jwl/driver/server/controller/TdSysUserController.java index c442d4f..7b7f1aa 100644 --- a/src/main/java/com/jwl/driver/server/controller/TdSysUserController.java +++ b/src/main/java/com/jwl/driver/server/controller/TdSysUserController.java @@ -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)); + } + + } diff --git a/src/main/java/com/jwl/driver/server/dto/LoginUserDto.java b/src/main/java/com/jwl/driver/server/dto/LoginUserDto.java index 6ff1aeb..35020e2 100644 --- a/src/main/java/com/jwl/driver/server/dto/LoginUserDto.java +++ b/src/main/java/com/jwl/driver/server/dto/LoginUserDto.java @@ -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; } diff --git a/src/main/java/com/jwl/driver/server/service/ITdSysUserService.java b/src/main/java/com/jwl/driver/server/service/ITdSysUserService.java index c45214a..ebf972a 100644 --- a/src/main/java/com/jwl/driver/server/service/ITdSysUserService.java +++ b/src/main/java/com/jwl/driver/server/service/ITdSysUserService.java @@ -35,4 +35,16 @@ public interface ITdSysUserService extends IService { */ Boolean loginOut(); + /** + * 获取用户信息 + * @return + */ + LoginUserVo queryUserMessage(); + + /** + * 绑定驾校 + * @param userDto + * @return + */ + Boolean bindSchool(LoginUserDto userDto); } diff --git a/src/main/java/com/jwl/driver/server/service/impl/TdSysUserServiceImpl.java b/src/main/java/com/jwl/driver/server/service/impl/TdSysUserServiceImpl.java index 132269c..abe751d 100644 --- a/src/main/java/com/jwl/driver/server/service/impl/TdSysUserServiceImpl.java +++ b/src/main/java/com/jwl/driver/server/service/impl/TdSysUserServiceImpl.java @@ -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,19 +68,21 @@ public class TdSysUserServiceImpl extends ServiceImpl cond = new LambdaQueryWrapper() - .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 cond = new LambdaQueryWrapper() + .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 cond = new LambdaQueryWrapper() + .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; + } + } diff --git a/src/main/java/com/jwl/driver/server/util/DateTimeUtil.java b/src/main/java/com/jwl/driver/server/util/DateTimeUtil.java index 9afd80c..2fc485d 100644 --- a/src/main/java/com/jwl/driver/server/util/DateTimeUtil.java +++ b/src/main/java/com/jwl/driver/server/util/DateTimeUtil.java @@ -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); + + } } diff --git a/src/main/java/com/jwl/driver/server/vo/LoginUserVo.java b/src/main/java/com/jwl/driver/server/vo/LoginUserVo.java index 9910038..16ad90e 100644 --- a/src/main/java/com/jwl/driver/server/vo/LoginUserVo.java +++ b/src/main/java/com/jwl/driver/server/vo/LoginUserVo.java @@ -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; + }