Browse Source

web端空指针调整

hxd 3 months ago
parent
commit
64bd80ce24

+ 1 - 1
portal-service-application/src/main/java/com/hfln/portal/application/controller/admin/AdminLoginController.java

@@ -76,7 +76,7 @@ public class AdminLoginController {
 
     @PostMapping("/addAccount")
     @Operation(summary = "创建b端用户密码")
-    public ApiResult<Void> addAcount(@Valid @RequestBody AdminAddParam param) {
+    public ApiResult<Void> addAccount(@Valid @RequestBody AdminAddParam param) {
 
         adminGateway.addAccount(param);
         return ApiResult.success();

+ 3 - 0
portal-service-common/src/main/java/com/hfln/portal/common/dto/data/user/UserDto.java

@@ -32,4 +32,7 @@ public class UserDto {
     @Schema(description = "更新时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
+
+    @Schema(description = "用户token")
+    private String token;
 }

+ 11 - 5
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/AdminGatewayImpl.java

@@ -41,6 +41,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -285,17 +286,22 @@ public class AdminGatewayImpl implements AdminGateway {
     public List<RoleListDTO> roleList() {
         // 1. 查询所有未被删除的角色
         LambdaQueryWrapper<TblRole> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(TblRole::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED);
+        queryWrapper
+                .select(TblRole::getRoleId, TblRole::getRoleCode, TblRole::getRoleName)
+                .eq(TblRole::getIsDeleted,  BasePO.DeleteFlag.NOT_DELETED);
+
+        // 2. 查询如果为空,则返回空集合
         List<TblRole> roleList = tblRoleService.list(queryWrapper);
+        if (CollectionUtils.isEmpty(roleList)){
+            return Collections.emptyList();
+        }
 
-        // 2. 将TblRole转换为RoleListDTO
-        List<RoleListDTO> dtoList = roleList.stream().map(role -> {
+        //3.查询结果不为空,则转换成RoleListDTO
+        return roleList.stream().map(role -> {
             RoleListDTO dto = new RoleListDTO();
             dto.setRoleCode(role.getRoleCode());
             dto.setRoleName(role.getRoleName());
             return dto;
         }).collect(Collectors.toList());
-
-        return dtoList;
     }
 }

+ 24 - 28
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/UserGatewayImpl.java

@@ -259,39 +259,35 @@ public class UserGatewayImpl implements UserGateway {
 
     @Override
     public UserDto loginBySmsCode(LoginBySmsCodeParams request) {
-        UserDto userDto = new UserDto();
         String phone = request.getUserName();
-        UserInfo user = userService.checkUserByPassword(phone, null);
-        if (Objects.nonNull(user)) {
-            String redisKey = RedisCacheConstant.SMS_LOGIN_CODE + phone;
-            log.info("验证登录验证码:手机号={}, 输入验证码={}, Redis key={}", phone, request.getSmsCode(), redisKey);
-            
-            Object cacheSmsCodeObj = redisService.get(redisKey);
-            log.info("从Redis获取登录验证码:key={}, value={}", redisKey, cacheSmsCodeObj);
-            
-            if (Objects.isNull(cacheSmsCodeObj)) {
-                log.warn("登录验证码已过期或不存在:手机号={}, Redis key={}", phone, redisKey);
-                throw new BizException(ErrorEnum.SMS_CODE_EXPIRED.getErrorCode(), ErrorEnum.SMS_CODE_EXPIRED.getErrorMessage());
-            }
-            String cacheSmsCode = String.valueOf(cacheSmsCodeObj);
-            log.info("登录验证码比较:输入={}, 缓存={}", request.getSmsCode(), cacheSmsCode);
-            
-            if (!Objects.equals(request.getSmsCode(), cacheSmsCode)) {
-                log.warn("登录验证码错误:手机号={}, 输入={}, 缓存={}", phone, request.getSmsCode(), cacheSmsCode);
-                throw new BizException(ErrorEnum.SMS_CODE_ERROR.getErrorCode(), ErrorEnum.SMS_CODE_ERROR.getErrorMessage());
-            }
-            redisService.del(redisKey);
+        UserInfo user = userService.queryByPhone(phone);
+        if (user == null) {
+            throw new BizException(ErrorEnum.USER_IS_NOT_EXIST.getErrorCode(), ErrorEnum.USER_IS_NOT_EXIST.getErrorMessage());
+        }
+
+        String redisKey = RedisCacheConstant.SMS_LOGIN_CODE + phone;
+        Object cacheSmsCodeObj = redisService.get(redisKey);
+        if (cacheSmsCodeObj == null) {
+            throw new BizException(ErrorEnum.SMS_CODE_EXPIRED.getErrorCode(), ErrorEnum.SMS_CODE_EXPIRED.getErrorMessage());
         }
-        BeanUtils.copyProperties(user, userDto);
-        userDto.setUserId(user.getUserId()
-        );
 
-        /*
-        通过sa-token获取token
-         */
-        StpUtil.login(user.getUserId());
+        String cacheSmsCode = String.valueOf(cacheSmsCodeObj);
+        if (!Objects.equals(request.getSmsCode(), cacheSmsCode)) {
+            throw new BizException(ErrorEnum.SMS_CODE_ERROR.getErrorCode(), ErrorEnum.SMS_CODE_ERROR.getErrorMessage());
+        }
+
+        redisService.del(redisKey);
+
+        // 登录
+        StpUtil.login(String.valueOf(user.getUserId()));
         SaTokenInfo tokenInfo = StpUtil.getTokenInfo();
 
+        // 构造返回对象
+        UserDto userDto = new UserDto();
+        BeanUtils.copyProperties(user, userDto);
+        userDto.setUserId(user.getUserId());
+        userDto.setToken(tokenInfo.getTokenValue());
+
         return userDto;
     }
 

+ 4 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mapper/AdminUserInfoMapper.java

@@ -4,6 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.hfln.portal.infrastructure.po.AdminUserInfo;
 import org.apache.ibatis.annotations.Mapper;
 
+
+/**
+ * web端用户表 Mapper 接口
+ */
 @Mapper
 public interface AdminUserInfoMapper extends BaseMapper<AdminUserInfo> {
 }

+ 1 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/AdminUserServiceImpl.java

@@ -22,7 +22,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserInfoMapper, Admin
         queryWrapper.eq(AdminUserInfo::getAccount, account);
         queryWrapper.eq(AdminUserInfo::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED);
         AdminUserInfo userInfo = this.baseMapper.selectOne(queryWrapper);
-        if (Objects.nonNull(password)) {
+        if (Objects.nonNull(userInfo)) {
             if (PasswordUtil.matches(password, userInfo.getPassword())){
                 return userInfo;
             }

+ 1 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/UserServiceImpl.java

@@ -35,7 +35,7 @@ public class UserServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> imple
         queryWrapper.eq(UserInfo::getPhone, phone);
         queryWrapper.eq(UserInfo::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED);
         UserInfo userInfo = this.baseMapper.selectOne(queryWrapper);
-        if (Objects.nonNull(password)) {
+        if (Objects.nonNull(userInfo)) {
             if (PasswordUtil.matches(password, userInfo.getPassword())){
                 return userInfo;
             }