Commit fb849c76 authored by shangtx's avatar shangtx

feat: 用户类型接口可无token访问

parent f6e3fb00
......@@ -14,6 +14,8 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author 李宁
......@@ -49,8 +51,8 @@ public class UserController {
@ApiOperation("用户身份 0 普通用户 1 客服 2 估价员 3 销售")
@GetMapping("/role-type")
public Result<Integer> getRoleType(@CurrentUserId Long userId) {
return ResultGenerator.success(userService.getRoleType(userId));
public Result<Integer> getRoleType(HttpServletRequest request) {
return ResultGenerator.success(userService.getRoleType(request));
}
......
package com.onsiteservice.miniapp.service.user;
import com.alibaba.fastjson.JSON;
import com.onsiteservice.common.runner.InitDataRunner;
import com.onsiteservice.constant.constant.Constants;
import com.onsiteservice.constant.constant.DictConstants;
import com.onsiteservice.constant.constant.RedisKeyConstants;
import com.onsiteservice.constant.enums.BizCodeEnum;
......@@ -9,7 +11,10 @@ import com.onsiteservice.constant.enums.ServiceOrderStatusEnum;
import com.onsiteservice.constant.enums.ServiceUserTypeEnum;
import com.onsiteservice.core.exception.ServiceException;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.core.result.ResultCodeEnum;
import com.onsiteservice.core.result.ResultGenerator;
import com.onsiteservice.core.security.jwt.JwtManager;
import com.onsiteservice.core.security.jwt.JwtPathProperties;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.mapper.service.ServiceOrderMapper;
import com.onsiteservice.dao.mapper.service.ServiceValuatorAssignMapper;
......@@ -25,6 +30,7 @@ import com.onsiteservice.miniapp.controller.user.vo.UserInfoVO;
import com.onsiteservice.miniapp.controller.user.vo.UserOrderInfoVO;
import com.onsiteservice.miniapp.mapper.order.ServiceOrderBizMapper;
import com.onsiteservice.util.RandomUtils;
import io.jsonwebtoken.Claims;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
......@@ -35,6 +41,7 @@ import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Condition;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
import java.util.Objects;
......@@ -89,7 +96,7 @@ public class UserService extends AbstractMapper<User> {
}
User user = User.builder().id(userId).phone(dto.getPhone()).build();
return userMapper.updateByPrimaryKeySelective(user) == 1 ? ResultGenerator.success() : ResultGenerator.fail("换绑失败");
return userMapper.updateByPrimaryKeySelective(user) == 1 ? ResultGenerator.success() : ResultGenerator.fail("换绑失败");
}
......@@ -126,7 +133,7 @@ public class UserService extends AbstractMapper<User> {
int num = serviceOrderMapper.selectCountByCondition(condition);
vo.setTodo(num);
}
if(Objects.equals(user.getRoleType(), ServiceUserTypeEnum.VALUATOR.getId())) {
if (Objects.equals(user.getRoleType(), ServiceUserTypeEnum.VALUATOR.getId())) {
Condition condition = new Condition(ServiceValuatorAssign.class);
condition.createCriteria().andEqualTo("valuatorId", userId)
.andGreaterThan("assignTime", new Date());
......@@ -144,11 +151,25 @@ public class UserService extends AbstractMapper<User> {
return vo;
}
public Integer getRoleType(Long userId) {
if(userId == null) {
public Integer getRoleType(HttpServletRequest request) {
// 获取token
String token = request.getHeader(JwtManager.AUTHORIZATION_HEADER);
if (StringUtils.isEmpty(token)) {
return ServiceUserTypeEnum.USER.getId();
}
var user = userMapper.selectByPrimaryKey(userId);
return user.getRoleType();
//
Claims claims = JwtManager.parseToken(token.replaceAll(JwtManager.BEARER, ""));
if (claims != null) {
// 如果token验证成功,将token对应的用户id
Object userId = JSON.parseObject(claims.getSubject()).get(JwtManager.USER_ID);
if (userId != null) {
var user = userMapper.selectByPrimaryKey(userId);
if (user != null) {
return user.getRoleType();
}
}
}
return ServiceUserTypeEnum.USER.getId();
}
}
......@@ -17,7 +17,8 @@ project:
# 安全路径白名单 无需token
ant-paths: "/error,**.html**,**.js,**.css,/favicon.ico,/webjars/**,/swagger**,
/swagger-resources/configuration/ui,/**/v2/api-docs,/doc.html,/v2/api-docs-ext,/druid/**\
/,/websocket/**,/category/page,/subclass/**,/token/base,/dict,/common/*,/wechat/pay-notify,/order/agreement"
/,/websocket/**,/category/page,/subclass/**,/token/base,/dict,/common/*,/wechat/pay-notify,/order/agreement,\
/user/role-type"
# 基础token可以访问的路径白名单
base-token-ant-paths: "/login"
schedule:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment