Commit fb849c76 authored by shangtx's avatar shangtx

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

parent f6e3fb00
...@@ -14,6 +14,8 @@ import org.springframework.validation.annotation.Validated; ...@@ -14,6 +14,8 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/** /**
* @author 李宁 * @author 李宁
...@@ -49,8 +51,8 @@ public class UserController { ...@@ -49,8 +51,8 @@ public class UserController {
@ApiOperation("用户身份 0 普通用户 1 客服 2 估价员 3 销售") @ApiOperation("用户身份 0 普通用户 1 客服 2 估价员 3 销售")
@GetMapping("/role-type") @GetMapping("/role-type")
public Result<Integer> getRoleType(@CurrentUserId Long userId) { public Result<Integer> getRoleType(HttpServletRequest request) {
return ResultGenerator.success(userService.getRoleType(userId)); return ResultGenerator.success(userService.getRoleType(request));
} }
......
package com.onsiteservice.miniapp.service.user; package com.onsiteservice.miniapp.service.user;
import com.alibaba.fastjson.JSON;
import com.onsiteservice.common.runner.InitDataRunner; import com.onsiteservice.common.runner.InitDataRunner;
import com.onsiteservice.constant.constant.Constants;
import com.onsiteservice.constant.constant.DictConstants; import com.onsiteservice.constant.constant.DictConstants;
import com.onsiteservice.constant.constant.RedisKeyConstants; import com.onsiteservice.constant.constant.RedisKeyConstants;
import com.onsiteservice.constant.enums.BizCodeEnum; import com.onsiteservice.constant.enums.BizCodeEnum;
...@@ -9,7 +11,10 @@ import com.onsiteservice.constant.enums.ServiceOrderStatusEnum; ...@@ -9,7 +11,10 @@ import com.onsiteservice.constant.enums.ServiceOrderStatusEnum;
import com.onsiteservice.constant.enums.ServiceUserTypeEnum; import com.onsiteservice.constant.enums.ServiceUserTypeEnum;
import com.onsiteservice.core.exception.ServiceException; import com.onsiteservice.core.exception.ServiceException;
import com.onsiteservice.core.result.Result; import com.onsiteservice.core.result.Result;
import com.onsiteservice.core.result.ResultCodeEnum;
import com.onsiteservice.core.result.ResultGenerator; 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.common.AbstractMapper;
import com.onsiteservice.dao.mapper.service.ServiceOrderMapper; import com.onsiteservice.dao.mapper.service.ServiceOrderMapper;
import com.onsiteservice.dao.mapper.service.ServiceValuatorAssignMapper; import com.onsiteservice.dao.mapper.service.ServiceValuatorAssignMapper;
...@@ -25,6 +30,7 @@ import com.onsiteservice.miniapp.controller.user.vo.UserInfoVO; ...@@ -25,6 +30,7 @@ import com.onsiteservice.miniapp.controller.user.vo.UserInfoVO;
import com.onsiteservice.miniapp.controller.user.vo.UserOrderInfoVO; import com.onsiteservice.miniapp.controller.user.vo.UserOrderInfoVO;
import com.onsiteservice.miniapp.mapper.order.ServiceOrderBizMapper; import com.onsiteservice.miniapp.mapper.order.ServiceOrderBizMapper;
import com.onsiteservice.util.RandomUtils; import com.onsiteservice.util.RandomUtils;
import io.jsonwebtoken.Claims;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -35,6 +41,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -35,6 +41,7 @@ import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Condition; import tk.mybatis.mapper.entity.Condition;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -89,7 +96,7 @@ public class UserService extends AbstractMapper<User> { ...@@ -89,7 +96,7 @@ public class UserService extends AbstractMapper<User> {
} }
User user = User.builder().id(userId).phone(dto.getPhone()).build(); 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> { ...@@ -126,7 +133,7 @@ public class UserService extends AbstractMapper<User> {
int num = serviceOrderMapper.selectCountByCondition(condition); int num = serviceOrderMapper.selectCountByCondition(condition);
vo.setTodo(num); 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 condition = new Condition(ServiceValuatorAssign.class);
condition.createCriteria().andEqualTo("valuatorId", userId) condition.createCriteria().andEqualTo("valuatorId", userId)
.andGreaterThan("assignTime", new Date()); .andGreaterThan("assignTime", new Date());
...@@ -144,11 +151,25 @@ public class UserService extends AbstractMapper<User> { ...@@ -144,11 +151,25 @@ public class UserService extends AbstractMapper<User> {
return vo; return vo;
} }
public Integer getRoleType(Long userId) { public Integer getRoleType(HttpServletRequest request) {
if(userId == null) { // 获取token
String token = request.getHeader(JwtManager.AUTHORIZATION_HEADER);
if (StringUtils.isEmpty(token)) {
return ServiceUserTypeEnum.USER.getId(); 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: ...@@ -17,7 +17,8 @@ project:
# 安全路径白名单 无需token # 安全路径白名单 无需token
ant-paths: "/error,**.html**,**.js,**.css,/favicon.ico,/webjars/**,/swagger**, ant-paths: "/error,**.html**,**.js,**.css,/favicon.ico,/webjars/**,/swagger**,
/swagger-resources/configuration/ui,/**/v2/api-docs,/doc.html,/v2/api-docs-ext,/druid/**\ /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可以访问的路径白名单 # 基础token可以访问的路径白名单
base-token-ant-paths: "/login" base-token-ant-paths: "/login"
schedule: 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