| | |
| | | AuthUser authUser = new Gson().fromJson(json, AuthUser.class); |
| | | |
| | | //校验redis中是否有权限 |
| | | if (cache.hasKey(CachePrefix.ACCESS_TOKEN.getPrefix(UserEnums.MEMBER,authUser.getId()) + jwt)) { |
| | | if (cache.hasKey(CachePrefix.ACCESS_TOKEN.getPrefix(UserEnums.MEMBER, authUser.getId()) + jwt) || |
| | | cache.hasKey(CachePrefix.ACCESS_TOKEN.getPrefix(UserEnums.STORE, authUser.getId()) + jwt)) { |
| | | //构造返回信息 |
| | | List<GrantedAuthority> auths = new ArrayList<>(); |
| | | auths.add(new SimpleGrantedAuthority("ROLE_" + authUser.getRole().name())); |
| | |
| | | if (StrUtil.isNotBlank(authUser.getPhone())) { |
| | | member = memberService.findByMobile(authUser.getPhone()); |
| | | } |
| | | |
| | | if (StrUtil.isNotBlank(authUser.getUuid())) { |
| | | member = memberService.findByUUID(authUser.getUuid()); |
| | | } |
| | | |
| | | //如果未查到手机号的会员则使用第三方登录 |
| | | if (member == null) { |
| | | LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<Connect>(); |
| | |
| | | import cn.lili.common.security.sensitive.enums.SensitiveStrategy; |
| | | import cn.lili.common.utils.CommonUtil; |
| | | import cn.lili.mybatis.BaseEntity; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModel; |
| | |
| | | @ApiModelProperty(value = "店铺ID") |
| | | private String storeId; |
| | | |
| | | @ApiModelProperty(value = "uuId") |
| | | @TableField(value = "uu_id") |
| | | private String uuId; |
| | | |
| | | /** |
| | | * @see ClientTypeEnum |
| | | */ |
| | |
| | | this.lastLoginDate = new Date(); |
| | | } |
| | | |
| | | public Member(String username, String password, String face, String nickName, Integer sex,String mobile) { |
| | | public Member(String username, String password, String face, String nickName, Integer sex, String mobile) { |
| | | this.username = username; |
| | | this.password = password; |
| | | this.mobile = mobile; |
| | |
| | | boolean appSConfirm(String token, Integer code); |
| | | |
| | | QRLoginResultVo loginWithSession(String token); |
| | | |
| | | Member findByUUID(String uuid); |
| | | } |
| | |
| | | Member member = new Member(authUser.getUsername(), UuidUtils.getUUID(), authUser.getAvatar(), authUser.getNickname(), |
| | | authUser.getGender() != null ? Convert.toInt(authUser.getGender().getCode()) : 0, authUser.getPhone()); |
| | | member.setPassword(DEFAULT_PASSWORD); |
| | | member.setUuId(authUser.getUuid()); |
| | | // 发送会员注册信息 |
| | | registerHandler(member); |
| | | |
| | |
| | | this.updateById(member); |
| | | return member; |
| | | } |
| | | |
| | | @Override |
| | | public Result resetPassword(String id){ |
| | | String password = "123456"; |
| | | Member member = this.getById(id); |
| | | member.setPassword(new BCryptPasswordEncoder().encode(password)); |
| | | this.updateById(member); |
| | | return Result.ok("重置成功"); |
| | | public Result resetPassword(String id) { |
| | | String password = "123456"; |
| | | Member member = this.getById(id); |
| | | member.setPassword(new BCryptPasswordEncoder().encode(password)); |
| | | this.updateById(member); |
| | | return Result.ok("重置成功"); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Member updateMemberPartProperties(String id,String password,String mobile) { |
| | | public Member updateMemberPartProperties(String id, String password, String mobile) { |
| | | //查询会员信息 |
| | | Member member = this.getById(id); |
| | | member.setMobile(mobile); |
| | |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public Member findByUUID(String uuid) { |
| | | QueryWrapper<Member> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("uu_id", uuid); |
| | | return this.baseMapper.selectOne(queryWrapper); |
| | | } |
| | | |
| | | /** |
| | | * 检测会员 |
| | | * |
| | |
| | | |
| | | @Override |
| | | public List<StoreUserMenuVO> findAllMenu(String clerkId, String memberId) { |
| | | String cacheKey = CachePrefix.STORE_USER_MENU.getPrefix() + memberId; |
| | | List<StoreUserMenuVO> menuList = (List<StoreUserMenuVO>) cache.get(cacheKey); |
| | | if (menuList == null || menuList.isEmpty()) { |
| | | menuList = storeMenuService.getUserRoleMenu(clerkId); |
| | | cache.put(cacheKey, menuList); |
| | | } |
| | | return menuList; |
| | | // String cacheKey = CachePrefix.STORE_USER_MENU.getPrefix() + memberId; |
| | | // List<StoreUserMenuVO> menuList = (List<StoreUserMenuVO>) cache.get(cacheKey); |
| | | // if (menuList == null || menuList.isEmpty()) { |
| | | // menuList = storeMenuService.getUserRoleMenu(clerkId); |
| | | // cache.put(cacheKey, menuList); |
| | | // } |
| | | // return menuList; |
| | | return storeMenuService.getUserRoleMenu(clerkId); |
| | | } |
| | | |
| | | |
| | |
| | | import cn.lili.common.security.token.Token; |
| | | import cn.lili.common.security.token.TokenUtil; |
| | | import cn.lili.common.security.token.base.AbstractTokenGenerate; |
| | | import cn.lili.modules.member.entity.dos.Clerk; |
| | | import cn.lili.modules.member.entity.dos.Member; |
| | | import cn.lili.modules.member.service.ClerkService; |
| | | import cn.lili.rocketmq.RocketmqSendCallbackBuilder; |
| | | import cn.lili.rocketmq.tags.MemberTagsEnum; |
| | | import org.apache.rocketmq.spring.core.RocketMQTemplate; |
| | |
| | | @Autowired |
| | | private RocketMQTemplate rocketMQTemplate; |
| | | |
| | | @Autowired |
| | | private ClerkService clerkService; |
| | | |
| | | @Override |
| | | public Token createToken(Member member, Boolean longTerm) { |
| | | |
| | |
| | | String destination = rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_LOGIN.name(); |
| | | rocketMQTemplate.asyncSend(destination, member, RocketmqSendCallbackBuilder.commonCallback()); |
| | | |
| | | Clerk clerk = clerkService.getClerkByMemberId(member.getId()); |
| | | |
| | | AuthUser authUser = AuthUser.builder() |
| | | .username(member.getUsername()) |
| | | .face(member.getFace()) |
| | | .id(member.getId()) |
| | | .role(UserEnums.MEMBER) |
| | | .role(clerk == null ? UserEnums.MEMBER : UserEnums.STORE) |
| | | .storeId(clerk == null ? null : clerk.getStoreId()) |
| | | .nickName(member.getNickName()) |
| | | .longTerm(longTerm) |
| | | .build(); |
| | |
| | | package cn.lili.controller.goods; |
| | | |
| | | import cn.lili.common.enums.ResultUtil; |
| | | import cn.lili.common.security.AuthUser; |
| | | import cn.lili.common.security.context.UserContext; |
| | | import cn.lili.common.utils.StringUtils; |
| | | import cn.lili.common.vo.ResultMessage; |
| | | import cn.lili.modules.goods.entity.vos.CategoryBrandVO; |
| | | import cn.lili.modules.goods.entity.vos.CategoryVO; |
| | | import cn.lili.modules.goods.service.CategoryBrandService; |
| | | import cn.lili.modules.goods.service.CategoryService; |
| | | import cn.lili.modules.member.entity.dos.Clerk; |
| | | import cn.lili.modules.member.service.ClerkService; |
| | | import cn.lili.modules.store.service.StoreDetailService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | |
| | | */ |
| | | @Autowired |
| | | private StoreDetailService storeDetailService; |
| | | @Autowired |
| | | private ClerkService clerkService; |
| | | |
| | | @ApiOperation(value = "获取店铺经营的分类") |
| | | @GetMapping(value = "/all") |
| | | public ResultMessage<List<CategoryVO>> getListAll() { |
| | | |
| | | String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId(); |
| | | if (StringUtils.isEmpty(storeId)) { |
| | | Clerk clerk = clerkService.getClerkByMemberId(UserContext.getCurrentUserId()); |
| | | storeId = clerk.getStoreId(); |
| | | } |
| | | |
| | | //获取店铺经营范围 |
| | | String goodsManagementCategory = storeDetailService.getStoreDetail(storeId).getGoodsManagementCategory(); |
| | | return ResultUtil.data(this.categoryService.getStoreCategory(goodsManagementCategory.split(","))); |
| | |
| | | AuthUser authUser = new Gson().fromJson(json, AuthUser.class); |
| | | |
| | | //校验redis中是否有权限 |
| | | if (cache.hasKey(CachePrefix.ACCESS_TOKEN.getPrefix(UserEnums.STORE, authUser.getId()) + jwt)) { |
| | | if (cache.hasKey(CachePrefix.ACCESS_TOKEN.getPrefix(UserEnums.MEMBER, authUser.getId()) + jwt) || |
| | | cache.hasKey(CachePrefix.ACCESS_TOKEN.getPrefix(UserEnums.STORE, authUser.getId()) + jwt) |
| | | ) { |
| | | //用户角色 |
| | | List<GrantedAuthority> auths = new ArrayList<>(); |
| | | auths.add(new SimpleGrantedAuthority("ROLE_" + authUser.getRole().name())); |
| | |
| | | //获取缓存中的权限 |
| | | Map<String, List<String>> permission = |
| | | (Map<String, List<String>>) cache.get(permissionCacheKey); |
| | | if (permission == null || permission.isEmpty()) { |
| | | //根据会员id查询店员信息 |
| | | Clerk clerk = clerkService.getClerkByMemberId(authUser.getId()); |
| | | if (clerk != null) { |
| | | permission = storeTokenGenerate.permissionList(storeMenuRoleService.findAllMenu(clerk.getId(), authUser.getId())); |
| | | cache.put(permissionCacheKey, permission); |
| | | } |
| | | // if (permission == null || permission.isEmpty()) { |
| | | //根据会员id查询店员信息 |
| | | Clerk clerk = clerkService.getClerkByMemberId(authUser.getId()); |
| | | if (clerk != null) { |
| | | permission = storeTokenGenerate.permissionList(storeMenuRoleService.findAllMenu(clerk.getId(), authUser.getId())); |
| | | cache.put(permissionCacheKey, permission); |
| | | } |
| | | //} |
| | | //获取数据(GET 请求)权限 |
| | | if (request.getMethod().equals(RequestMethod.GET.name())) { |
| | | //如果用户的超级权限和查阅权限都不包含当前请求的api |