Commit db9a9783a58b8df17567f186583a9325b418c3a1
1 parent
5b0ec621
多仓支持提交(1)
Signed-off-by: TanYibin <5491541@qq.com>
Showing
8 changed files
with
129 additions
and
24 deletions
ant-design-vue-jeecg/src/views/user/LoginAccount.vue
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | <div> | 2 | <div> |
3 | <a-form-model ref="form" :model="model" :rules="validatorRules"> | 3 | <a-form-model ref="form" :model="model" :rules="validatorRules"> |
4 | <a-form-model-item required prop="username"> | 4 | <a-form-model-item required prop="username"> |
5 | - <a-input v-model="model.username" size="large" placeholder="请输入帐户名 / admin" @blur="getWarehouse"> | 5 | + <a-input v-model="model.username" size="large" placeholder="请输入帐户名 / admin" @blur="getWarehouse"> |
6 | <a-icon slot="prefix" type="user" :style="{ color: 'rgba(0,0,0,.25)' }"/> | 6 | <a-icon slot="prefix" type="user" :style="{ color: 'rgba(0,0,0,.25)' }"/> |
7 | </a-input> | 7 | </a-input> |
8 | </a-form-model-item> | 8 | </a-form-model-item> |
@@ -16,7 +16,7 @@ | @@ -16,7 +16,7 @@ | ||
16 | <a-form-model-item prop="warehouseCode"> | 16 | <a-form-model-item prop="warehouseCode"> |
17 | <a-select | 17 | <a-select |
18 | show-search | 18 | show-search |
19 | - placeholder="请选择仓库!" | 19 | + placeholder="请选择仓库" |
20 | option-filter-prop="label" | 20 | option-filter-prop="label" |
21 | v-model="model.warehouseCode"> | 21 | v-model="model.warehouseCode"> |
22 | <a-select-option v-for="item in warehouseList" :key="item.name" :value="item.code">{{ | 22 | <a-select-option v-for="item in warehouseList" :key="item.name" :value="item.code">{{ |
@@ -61,7 +61,7 @@ export default { | @@ -61,7 +61,7 @@ export default { | ||
61 | required: true, message: '请输入密码!', validator: 'click' | 61 | required: true, message: '请输入密码!', validator: 'click' |
62 | }], | 62 | }], |
63 | warehouseCode: [{ | 63 | warehouseCode: [{ |
64 | - required: true, message: '请选择仓库!', trigger: "change" ,validator: 'click' | 64 | + required: true, message: '请选择仓库!', trigger: "change" , validator: 'click' |
65 | }], | 65 | }], |
66 | } | 66 | } |
67 | } | 67 | } |
huaheng-wms-core/src/main/java/org/jeecg/modules/system/controller/LoginController.java
@@ -62,7 +62,7 @@ public class LoginController { | @@ -62,7 +62,7 @@ public class LoginController { | ||
62 | public RedisTemplate<String, ?> redisTemplate; | 62 | public RedisTemplate<String, ?> redisTemplate; |
63 | @Autowired | 63 | @Autowired |
64 | private ISysDictService sysDictService; | 64 | private ISysDictService sysDictService; |
65 | - @Resource | 65 | + @Autowired |
66 | private BaseCommonService baseCommonService; | 66 | private BaseCommonService baseCommonService; |
67 | 67 | ||
68 | @ApiOperation("登录接口") | 68 | @ApiOperation("登录接口") |
@@ -112,12 +112,10 @@ public class LoginController { | @@ -112,12 +112,10 @@ public class LoginController { | ||
112 | result.error500("用户名或密码错误"); | 112 | result.error500("用户名或密码错误"); |
113 | return result; | 113 | return result; |
114 | } | 114 | } |
115 | - | ||
116 | if (StringUtils.isEmpty(warehouseCode)) { | 115 | if (StringUtils.isEmpty(warehouseCode)) { |
117 | - result.error500("仓库编码错误"); | 116 | + result.error500("请选择仓库编码"); |
118 | return result; | 117 | return result; |
119 | } | 118 | } |
120 | - | ||
121 | // 用户登录信息 | 119 | // 用户登录信息 |
122 | result = userInfo(sysUser, warehouseCode); | 120 | result = userInfo(sysUser, warehouseCode); |
123 | // update-begin--Author:liusq Date:20210126 for:登录成功,删除redis中的验证码 | 121 | // update-begin--Author:liusq Date:20210126 for:登录成功,删除redis中的验证码 |
@@ -444,9 +442,9 @@ public class LoginController { | @@ -444,9 +442,9 @@ public class LoginController { | ||
444 | // } | 442 | // } |
445 | // } | 443 | // } |
446 | // } | 444 | // } |
447 | - // update-end--Author:sunjianlei Date:20210802 for:获取用户租户信息 | 445 | + List<String> roles = sysBaseAPI.getRolesByUsername(username); |
448 | // 生成token | 446 | // 生成token |
449 | - String token = HuahengJwtUtil.sign(username, syspassword, warehouseCode); | 447 | + String token = HuahengJwtUtil.sign(username, syspassword, warehouseCode, roles); |
450 | // 设置token缓存有效时间 | 448 | // 设置token缓存有效时间 |
451 | redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token); | 449 | redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token); |
452 | redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, HuahengJwtUtil.EXPIRE_TIME / 1000); | 450 | redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, HuahengJwtUtil.EXPIRE_TIME / 1000); |
huaheng-wms-core/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java
@@ -143,4 +143,11 @@ public interface SysUserMapper extends BaseMapper<SysUser> { | @@ -143,4 +143,11 @@ public interface SysUserMapper extends BaseMapper<SysUser> { | ||
143 | * @return | 143 | * @return |
144 | */ | 144 | */ |
145 | public List<Map<String, Object>> getWarehouseByUserName(@Param("username") String username); | 145 | public List<Map<String, Object>> getWarehouseByUserName(@Param("username") String username); |
146 | + | ||
147 | + /** | ||
148 | + * 查询所有仓库 | ||
149 | + * @param username | ||
150 | + * @return | ||
151 | + */ | ||
152 | + public List<Map<String, Object>> getWarehouses(); | ||
146 | } | 153 | } |
huaheng-wms-core/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml
@@ -180,7 +180,6 @@ | @@ -180,7 +180,6 @@ | ||
180 | </if> | 180 | </if> |
181 | </select> | 181 | </select> |
182 | 182 | ||
183 | - | ||
184 | <select id="getWarehouseByUserName" resultType="java.util.HashMap"> | 183 | <select id="getWarehouseByUserName" resultType="java.util.HashMap"> |
185 | SELECT r.name, r.code | 184 | SELECT r.name, r.code |
186 | FROM sys_user u | 185 | FROM sys_user u |
@@ -189,5 +188,11 @@ | @@ -189,5 +188,11 @@ | ||
189 | WHERE u.username = #{username,jdbcType=VARCHAR} | 188 | WHERE u.username = #{username,jdbcType=VARCHAR} |
190 | AND r.enable = 1 | 189 | AND r.enable = 1 |
191 | </select> | 190 | </select> |
191 | + | ||
192 | + <select id="getWarehouses" resultType="java.util.HashMap"> | ||
193 | + SELECT r.name, r.code | ||
194 | + FROM warehouse r | ||
195 | + WHERE r.enable = 1 | ||
196 | + </select> | ||
192 | 197 | ||
193 | </mapper> | 198 | </mapper> |
huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
@@ -25,6 +25,7 @@ import org.jeecg.modules.wms.config.sysUserWarehouse.entity.SysUserWarehouse; | @@ -25,6 +25,7 @@ import org.jeecg.modules.wms.config.sysUserWarehouse.entity.SysUserWarehouse; | ||
25 | import org.jeecg.modules.wms.config.sysUserWarehouse.service.ISysUserWarehouseService; | 25 | import org.jeecg.modules.wms.config.sysUserWarehouse.service.ISysUserWarehouseService; |
26 | import org.jeecg.modules.wms.config.warehouse.entity.Warehouse; | 26 | import org.jeecg.modules.wms.config.warehouse.entity.Warehouse; |
27 | import org.jeecg.modules.wms.config.warehouse.service.IWarehouseService; | 27 | import org.jeecg.modules.wms.config.warehouse.service.IWarehouseService; |
28 | +import org.jeecg.utils.HuahengJwtUtil; | ||
28 | import org.jeecg.utils.StringUtils; | 29 | import org.jeecg.utils.StringUtils; |
29 | import org.springframework.beans.factory.annotation.Autowired; | 30 | import org.springframework.beans.factory.annotation.Autowired; |
30 | import org.springframework.cache.annotation.CacheEvict; | 31 | import org.springframework.cache.annotation.CacheEvict; |
@@ -54,36 +55,52 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl | @@ -54,36 +55,52 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl | ||
54 | 55 | ||
55 | @Autowired | 56 | @Autowired |
56 | private SysUserMapper userMapper; | 57 | private SysUserMapper userMapper; |
58 | + | ||
57 | @Autowired | 59 | @Autowired |
58 | private SysPermissionMapper sysPermissionMapper; | 60 | private SysPermissionMapper sysPermissionMapper; |
61 | + | ||
59 | @Autowired | 62 | @Autowired |
60 | private SysUserRoleMapper sysUserRoleMapper; | 63 | private SysUserRoleMapper sysUserRoleMapper; |
64 | + | ||
61 | @Autowired | 65 | @Autowired |
62 | private SysUserDepartMapper sysUserDepartMapper; | 66 | private SysUserDepartMapper sysUserDepartMapper; |
67 | + | ||
63 | @Resource | 68 | @Resource |
64 | private ISysUserService sysUserService; | 69 | private ISysUserService sysUserService; |
70 | + | ||
65 | @Resource | 71 | @Resource |
66 | private ISysRoleService sysRoleService; | 72 | private ISysRoleService sysRoleService; |
73 | + | ||
67 | @Resource | 74 | @Resource |
68 | private ISysUserWarehouseService sysUserWarehouseService; | 75 | private ISysUserWarehouseService sysUserWarehouseService; |
76 | + | ||
69 | @Autowired | 77 | @Autowired |
70 | private ISysBaseAPI sysBaseAPI; | 78 | private ISysBaseAPI sysBaseAPI; |
79 | + | ||
71 | @Autowired | 80 | @Autowired |
72 | private SysDepartMapper sysDepartMapper; | 81 | private SysDepartMapper sysDepartMapper; |
82 | + | ||
73 | @Autowired | 83 | @Autowired |
74 | private SysRoleMapper sysRoleMapper; | 84 | private SysRoleMapper sysRoleMapper; |
85 | + | ||
75 | @Autowired | 86 | @Autowired |
76 | private SysDepartRoleUserMapper departRoleUserMapper; | 87 | private SysDepartRoleUserMapper departRoleUserMapper; |
88 | + | ||
77 | @Autowired | 89 | @Autowired |
78 | private SysDepartRoleMapper sysDepartRoleMapper; | 90 | private SysDepartRoleMapper sysDepartRoleMapper; |
91 | + | ||
79 | @Resource | 92 | @Resource |
80 | private BaseCommonService baseCommonService; | 93 | private BaseCommonService baseCommonService; |
94 | + | ||
81 | @Autowired | 95 | @Autowired |
82 | private SysThirdAccountMapper sysThirdAccountMapper; | 96 | private SysThirdAccountMapper sysThirdAccountMapper; |
97 | + | ||
83 | @Resource | 98 | @Resource |
84 | private IWarehouseService warehouseService; | 99 | private IWarehouseService warehouseService; |
100 | + | ||
85 | @Autowired | 101 | @Autowired |
86 | ThirdAppWechatEnterpriseServiceImpl wechatEnterpriseService; | 102 | ThirdAppWechatEnterpriseServiceImpl wechatEnterpriseService; |
103 | + | ||
87 | @Autowired | 104 | @Autowired |
88 | ThirdAppDingtalkServiceImpl dingtalkService; | 105 | ThirdAppDingtalkServiceImpl dingtalkService; |
89 | 106 | ||
@@ -592,9 +609,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl | @@ -592,9 +609,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl | ||
592 | 609 | ||
593 | @Override | 610 | @Override |
594 | public List<Map<String, Object>> getWarehouseByUserCode(String username) { | 611 | public List<Map<String, Object>> getWarehouseByUserCode(String username) { |
595 | - List<Map<String, Object>> list = null; | ||
596 | - list = userMapper.getWarehouseByUserName(username); | ||
597 | - return list; | 612 | + List<String> roles = sysBaseAPI.getRolesByUsername(username); |
613 | + if (!StringUtils.isEmpty(roles) && roles.contains(HuahengJwtUtil.USER_ROLE_INSPECTOR)) { | ||
614 | + List<Map<String, Object>> returnList = userMapper.getWarehouses(); | ||
615 | + Map<String, Object> inspectorWarehouse = new HashMap<String, Object>(); | ||
616 | + inspectorWarehouse.put("name", HuahengJwtUtil.ALL_WAREHOUSE_NAME); | ||
617 | + inspectorWarehouse.put("code", HuahengJwtUtil.ALL_WAREHOUSE_CODE); | ||
618 | + returnList.add(inspectorWarehouse); | ||
619 | + return returnList; | ||
620 | + } | ||
621 | + return userMapper.getWarehouseByUserName(username); | ||
598 | } | 622 | } |
599 | 623 | ||
600 | } | 624 | } |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/supplier/controller/SupplierController.java
@@ -180,10 +180,9 @@ public class SupplierController extends JeecgController<Supplier, ISupplierServi | @@ -180,10 +180,9 @@ public class SupplierController extends JeecgController<Supplier, ISupplierServi | ||
180 | * @param req | 180 | * @param req |
181 | */ | 181 | */ |
182 | @RequestMapping(value = "/getSupplierList") | 182 | @RequestMapping(value = "/getSupplierList") |
183 | - public Result<?> getSupplierList(HttpServletRequest req) { | ||
184 | - String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req); | 183 | + public Result<?> getSupplierList(HttpServletRequest request) { |
185 | LambdaQueryWrapper<Supplier> supplierLambdaQueryWrapper = Wrappers.lambdaQuery(); | 184 | LambdaQueryWrapper<Supplier> supplierLambdaQueryWrapper = Wrappers.lambdaQuery(); |
186 | - supplierLambdaQueryWrapper.eq(Supplier::getWarehouseCode, warehouseCode); | 185 | + HuahengJwtUtil.setWarehouseCode(supplierLambdaQueryWrapper, Supplier.class, request); |
187 | List<Supplier> supplierList = supplierService.list(supplierLambdaQueryWrapper); | 186 | List<Supplier> supplierList = supplierService.list(supplierLambdaQueryWrapper); |
188 | return Result.OK(supplierList); | 187 | return Result.OK(supplierList); |
189 | } | 188 | } |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/controller/ReceiptHeaderController.java
@@ -95,10 +95,9 @@ public class ReceiptHeaderController extends JeecgController<ReceiptHeader, IRec | @@ -95,10 +95,9 @@ public class ReceiptHeaderController extends JeecgController<ReceiptHeader, IRec | ||
95 | @ApiOperation(value = "入库表主表-分页列表查询", notes = "入库表主表-分页列表查询") | 95 | @ApiOperation(value = "入库表主表-分页列表查询", notes = "入库表主表-分页列表查询") |
96 | @GetMapping(value = "/list") | 96 | @GetMapping(value = "/list") |
97 | public Result<IPage<ReceiptHeader>> queryPageList(ReceiptHeader receiptHeader, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, | 97 | public Result<IPage<ReceiptHeader>> queryPageList(ReceiptHeader receiptHeader, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, |
98 | - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { | ||
99 | - String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req); | ||
100 | - receiptHeader.setWarehouseCode(warehouseCode); | ||
101 | - QueryWrapper<ReceiptHeader> queryWrapper = QueryGenerator.initQueryWrapper(receiptHeader, req.getParameterMap()); | 98 | + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { |
99 | + HuahengJwtUtil.setWarehouseCode(request, receiptHeader); | ||
100 | + QueryWrapper<ReceiptHeader> queryWrapper = QueryGenerator.initQueryWrapper(receiptHeader, request.getParameterMap()); | ||
102 | Page<ReceiptHeader> page = new Page<ReceiptHeader>(pageNo, pageSize); | 101 | Page<ReceiptHeader> page = new Page<ReceiptHeader>(pageNo, pageSize); |
103 | IPage<ReceiptHeader> pageList = receiptHeaderService.page(page, queryWrapper); | 102 | IPage<ReceiptHeader> pageList = receiptHeaderService.page(page, queryWrapper); |
104 | return Result.OK(pageList); | 103 | return Result.OK(pageList); |
huaheng-wms-core/src/main/java/org/jeecg/utils/HuahengJwtUtil.java
1 | package org.jeecg.utils; | 1 | package org.jeecg.utils; |
2 | 2 | ||
3 | +import java.lang.reflect.Field; | ||
3 | import java.util.Arrays; | 4 | import java.util.Arrays; |
4 | import java.util.Date; | 5 | import java.util.Date; |
6 | +import java.util.List; | ||
5 | import java.util.UUID; | 7 | import java.util.UUID; |
6 | 8 | ||
7 | import javax.servlet.http.HttpServletRequest; | 9 | import javax.servlet.http.HttpServletRequest; |
@@ -12,22 +14,36 @@ import org.jeecg.common.system.vo.LoginUser; | @@ -12,22 +14,36 @@ import org.jeecg.common.system.vo.LoginUser; | ||
12 | import org.jeecg.common.util.oConvertUtils; | 14 | import org.jeecg.common.util.oConvertUtils; |
13 | import org.jeecg.modules.wms.framework.aspectj.dto.ApiAuthentication; | 15 | import org.jeecg.modules.wms.framework.aspectj.dto.ApiAuthentication; |
14 | import org.jeecg.modules.wms.framework.aspectj.dto.RSA256Key; | 16 | import org.jeecg.modules.wms.framework.aspectj.dto.RSA256Key; |
17 | +import org.springframework.stereotype.Component; | ||
18 | +import org.springframework.util.CollectionUtils; | ||
15 | 19 | ||
16 | import com.auth0.jwt.JWT; | 20 | import com.auth0.jwt.JWT; |
17 | import com.auth0.jwt.JWTVerifier; | 21 | import com.auth0.jwt.JWTVerifier; |
18 | import com.auth0.jwt.algorithms.Algorithm; | 22 | import com.auth0.jwt.algorithms.Algorithm; |
19 | import com.auth0.jwt.exceptions.JWTDecodeException; | 23 | import com.auth0.jwt.exceptions.JWTDecodeException; |
20 | import com.auth0.jwt.interfaces.DecodedJWT; | 24 | import com.auth0.jwt.interfaces.DecodedJWT; |
25 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
21 | 26 | ||
22 | import cn.hutool.core.date.DatePattern; | 27 | import cn.hutool.core.date.DatePattern; |
23 | import cn.hutool.core.date.DateUtil; | 28 | import cn.hutool.core.date.DateUtil; |
29 | +import cn.hutool.core.util.ReflectUtil; | ||
24 | 30 | ||
31 | +@Component | ||
25 | public class HuahengJwtUtil { | 32 | public class HuahengJwtUtil { |
26 | 33 | ||
27 | /** token失效时间 1天 */ | 34 | /** token失效时间 1天 */ |
28 | public static final long EXPIRE_TIME = 12 * 60 * 60 * 1000; | 35 | public static final long EXPIRE_TIME = 12 * 60 * 60 * 1000; |
29 | 36 | ||
30 | public static final String HUAHENG_SYSTEM_ID = "HUAHENG-WMS4"; | 37 | public static final String HUAHENG_SYSTEM_ID = "HUAHENG-WMS4"; |
38 | + | ||
39 | + /** 仓库视察员角色 */ | ||
40 | + public static final String USER_ROLE_INSPECTOR = "inspector"; | ||
41 | + | ||
42 | + /** 全仓中文名称 */ | ||
43 | + public static final String ALL_WAREHOUSE_NAME = "全部仓库"; | ||
44 | + | ||
45 | + /** 全仓CODE */ | ||
46 | + public static final String ALL_WAREHOUSE_CODE = "ALL_WAREHOUSE"; | ||
31 | 47 | ||
32 | /** | 48 | /** |
33 | * 根据request中的token获取用户账号 | 49 | * 根据request中的token获取用户账号 |
@@ -35,7 +51,7 @@ public class HuahengJwtUtil { | @@ -35,7 +51,7 @@ public class HuahengJwtUtil { | ||
35 | * @return | 51 | * @return |
36 | * @throws JeecgBootException | 52 | * @throws JeecgBootException |
37 | */ | 53 | */ |
38 | - public static String getUserNameByToken(HttpServletRequest request) throws JeecgBootException { | 54 | + public static String getUserNameByToken(HttpServletRequest request) { |
39 | String accessToken = request.getHeader("X-Access-Token"); | 55 | String accessToken = request.getHeader("X-Access-Token"); |
40 | String username = getUsername(accessToken); | 56 | String username = getUsername(accessToken); |
41 | if (oConvertUtils.isEmpty(username)) { | 57 | if (oConvertUtils.isEmpty(username)) { |
@@ -56,6 +72,19 @@ public class HuahengJwtUtil { | @@ -56,6 +72,19 @@ public class HuahengJwtUtil { | ||
56 | return null; | 72 | return null; |
57 | } | 73 | } |
58 | } | 74 | } |
75 | + | ||
76 | + /** | ||
77 | + * 获得token中的信息无需secret解密也能获得 | ||
78 | + * @return token中包含的角色信息 | ||
79 | + */ | ||
80 | + public static List<String> getRoles(String token) { | ||
81 | + try { | ||
82 | + DecodedJWT jwt = JWT.decode(token); | ||
83 | + return jwt.getClaim("roles").asList(String.class); | ||
84 | + } catch (JWTDecodeException e) { | ||
85 | + return null; | ||
86 | + } | ||
87 | + } | ||
59 | 88 | ||
60 | /** | 89 | /** |
61 | * 根据request中的token获取用户账号 | 90 | * 根据request中的token获取用户账号 |
@@ -63,7 +92,7 @@ public class HuahengJwtUtil { | @@ -63,7 +92,7 @@ public class HuahengJwtUtil { | ||
63 | * @return | 92 | * @return |
64 | * @throws JeecgBootException | 93 | * @throws JeecgBootException |
65 | */ | 94 | */ |
66 | - public static String getWarehouseCodeByToken(HttpServletRequest request) throws JeecgBootException { | 95 | + public static String getWarehouseCodeByToken(HttpServletRequest request) { |
67 | String accessToken = request.getHeader("X-Access-Token"); | 96 | String accessToken = request.getHeader("X-Access-Token"); |
68 | String warehouseCode = getWarehouseCode(accessToken); | 97 | String warehouseCode = getWarehouseCode(accessToken); |
69 | if (oConvertUtils.isEmpty(warehouseCode)) { | 98 | if (oConvertUtils.isEmpty(warehouseCode)) { |
@@ -72,6 +101,49 @@ public class HuahengJwtUtil { | @@ -72,6 +101,49 @@ public class HuahengJwtUtil { | ||
72 | return warehouseCode; | 101 | return warehouseCode; |
73 | } | 102 | } |
74 | 103 | ||
104 | + public static List<String> getRolesByToken(HttpServletRequest request) { | ||
105 | + String accessToken = request.getHeader("X-Access-Token"); | ||
106 | + List<String> roles = getRoles(accessToken); | ||
107 | + if (CollectionUtils.isEmpty(roles)) { | ||
108 | + throw new JeecgBootException("未获取到仓库编码"); | ||
109 | + } | ||
110 | + return roles; | ||
111 | + } | ||
112 | + | ||
113 | + public static <T> void setWarehouseCode(HttpServletRequest request, T t) { | ||
114 | + try { | ||
115 | + Field warehouseCodeField = ReflectUtil.getField(t.getClass(), "warehouseCode"); | ||
116 | + if (warehouseCodeField != null) { | ||
117 | + List<String> roles = HuahengJwtUtil.getRolesByToken(request); | ||
118 | + String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(request); | ||
119 | + if (roles.contains("inspector")) { | ||
120 | + return; | ||
121 | + } | ||
122 | + ReflectUtil.setFieldValue(t, "warehouseCode", warehouseCode); | ||
123 | + | ||
124 | + } | ||
125 | + } catch (Exception e) { | ||
126 | + return; | ||
127 | + } | ||
128 | + } | ||
129 | + | ||
130 | + public static <T> void setWarehouseCode(LambdaQueryWrapper<T> lambdaQueryWrapper, Class<T> clazz, HttpServletRequest request) { | ||
131 | + try { | ||
132 | + Field warehouseCodeField = ReflectUtil.getField(clazz, "warehouseCode"); | ||
133 | + if (warehouseCodeField != null) { | ||
134 | + List<String> roles = HuahengJwtUtil.getRolesByToken(request); | ||
135 | + String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(request); | ||
136 | + if (roles.contains("inspector")) { | ||
137 | + return; | ||
138 | + } | ||
139 | + lambdaQueryWrapper.apply("warehouse_code = {0}", warehouseCode); | ||
140 | + | ||
141 | + } | ||
142 | + } catch (Exception e) { | ||
143 | + return; | ||
144 | + } | ||
145 | + } | ||
146 | + | ||
75 | /** | 147 | /** |
76 | * 生成签名 | 148 | * 生成签名 |
77 | * @param username 用户名 | 149 | * @param username 用户名 |
@@ -90,13 +162,14 @@ public class HuahengJwtUtil { | @@ -90,13 +162,14 @@ public class HuahengJwtUtil { | ||
90 | * @param username 用户名 | 162 | * @param username 用户名 |
91 | * @param secret 用户的密码 | 163 | * @param secret 用户的密码 |
92 | * @param warehouseCode 登录仓库 | 164 | * @param warehouseCode 登录仓库 |
165 | + * @param roles 用户的角色 | ||
93 | * @return 加密的token | 166 | * @return 加密的token |
94 | */ | 167 | */ |
95 | - public static String sign(String username, String secret, String warehouseCode) { | 168 | + public static String sign(String username, String secret, String warehouseCode, List<String> roles) { |
96 | Date date = new Date(System.currentTimeMillis() + EXPIRE_TIME); | 169 | Date date = new Date(System.currentTimeMillis() + EXPIRE_TIME); |
97 | Algorithm algorithm = Algorithm.HMAC256(secret); | 170 | Algorithm algorithm = Algorithm.HMAC256(secret); |
98 | // 附带username信息 | 171 | // 附带username信息 |
99 | - return JWT.create().withClaim("username", username).withClaim("warehouseCode", warehouseCode).withExpiresAt(date).sign(algorithm); | 172 | + return JWT.create().withClaim("username", username).withClaim("warehouseCode", warehouseCode).withClaim("roles", roles).withExpiresAt(date).sign(algorithm); |
100 | } | 173 | } |
101 | 174 | ||
102 | /** | 175 | /** |