fix: 移除@Resource注解,修复权限更新后,登录用户权限没有更新问题。

This commit is contained in:
misworga831 2023-06-06 17:26:04 +08:00
parent b61a5e8f7b
commit 5d6e99dc8a
35 changed files with 276 additions and 189 deletions

View File

@ -3,14 +3,12 @@ package cn.lili.timetask.handler.impl.goods;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.lili.modules.goods.mapper.GoodsMapper;
import cn.lili.modules.member.entity.dos.MemberEvaluation;
import cn.lili.modules.member.mapper.MemberEvaluationMapper;
import cn.lili.modules.goods.service.GoodsService;
import cn.lili.modules.member.service.MemberEvaluationService;
import cn.lili.timetask.handler.EveryDayExecute;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@ -25,13 +23,13 @@ public class GoodsExecute implements EveryDayExecute {
/**
* 会员评价
*/
@Resource
private MemberEvaluationMapper memberEvaluationMapper;
@Autowired
private MemberEvaluationService memberEvaluationService;
/**
* 商品
*/
@Resource
private GoodsMapper goodsMapper;
@Autowired
private GoodsService goodsService;
/**
* 查询已上架的商品的评价数量并赋值
@ -40,12 +38,10 @@ public class GoodsExecute implements EveryDayExecute {
public void execute() {
//查询上次统计到本次的评价数量
List<Map<String, Object>> list = memberEvaluationMapper.memberEvaluationNum(
new QueryWrapper<MemberEvaluation>()
.between("create_time", DateUtil.yesterday(), new DateTime()));
List<Map<String, Object>> list = memberEvaluationService.memberEvaluationNum(DateUtil.yesterday(), new DateTime());
for (Map<String, Object> map : list) {
goodsMapper.addGoodsCommentNum(Convert.toInt(map.get("num").toString()), map.get("goods_id").toString());
goodsService.addGoodsCommentNum(Convert.toInt(map.get("num").toString()), map.get("goods_id").toString());
}
}

View File

@ -15,7 +15,6 @@ import cn.lili.modules.order.order.entity.enums.CommentStatusEnum;
import cn.lili.modules.order.order.entity.enums.OrderComplaintStatusEnum;
import cn.lili.modules.order.order.entity.enums.OrderItemAfterSaleStatusEnum;
import cn.lili.modules.order.order.entity.enums.OrderStatusEnum;
import cn.lili.modules.order.order.mapper.OrderItemMapper;
import cn.lili.modules.order.order.service.OrderItemService;
import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.system.entity.dos.Setting;
@ -24,13 +23,11 @@ import cn.lili.modules.system.entity.enums.SettingEnum;
import cn.lili.modules.system.service.SettingService;
import cn.lili.timetask.handler.EveryDayExecute;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
@ -53,8 +50,6 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute {
*/
@Autowired
private OrderItemService orderItemService;
@Resource
private OrderItemMapper orderItemMapper;
/**
* 设置
*/
@ -148,10 +143,7 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute {
DateTime receiveTime = DateUtil.offsetDay(DateUtil.date(), -orderSetting.getAutoEvaluation());
//订单完成时间 <= 订单自动好评时间
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.le("o.complete_time", receiveTime);
queryWrapper.eq("oi.comment_status", CommentStatusEnum.UNFINISHED.name());
List<OrderItem> orderItems = orderItemMapper.waitOperationOrderItem(queryWrapper);
List<OrderItem> orderItems = orderItemService.waitOperationOrderItem(receiveTime, CommentStatusEnum.UNFINISHED.name());
//判断是否有符合条件的订单进行自动评价处理
if (!orderItems.isEmpty()) {
@ -191,10 +183,7 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute {
DateTime receiveTime = DateUtil.offsetDay(DateUtil.date(), -orderSetting.getCloseAfterSale());
//关闭售后订单=未售后订单+小于订单关闭售后申请时间
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.le("o.complete_time", receiveTime);
queryWrapper.eq("oi.after_sale_status", OrderItemAfterSaleStatusEnum.NOT_APPLIED.name());
List<OrderItem> orderItems = orderItemMapper.waitOperationOrderItem(queryWrapper);
List<OrderItem> orderItems = orderItemService.waitOperationOrderItem(receiveTime, OrderItemAfterSaleStatusEnum.NOT_APPLIED.name());
//判断是否有符合条件的订单关闭允许售后申请处理
if (!orderItems.isEmpty()) {
@ -235,10 +224,7 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute {
DateTime receiveTime = DateUtil.offsetDay(DateUtil.date(), -orderSetting.getCloseComplaint());
//关闭售后订单=未售后订单+小于订单关闭售后申请时间
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.le("o.complete_time", receiveTime);
queryWrapper.eq("oi.complain_status", OrderComplaintStatusEnum.NO_APPLY.name());
List<OrderItem> orderItems = orderItemMapper.waitOperationOrderItem(queryWrapper);
List<OrderItem> orderItems = orderItemService.waitOperationOrderItem(receiveTime, OrderComplaintStatusEnum.NO_APPLY.name());
//判断是否有符合条件的订单关闭允许售后申请处理
if (!orderItems.isEmpty()) {

View File

@ -1,9 +1,8 @@
package cn.lili.timetask.handler.impl.store;
import cn.lili.common.enums.SwitchEnum;
import cn.lili.modules.member.entity.dos.MemberEvaluation;
import cn.lili.modules.member.entity.vo.StoreRatingVO;
import cn.lili.modules.member.mapper.MemberEvaluationMapper;
import cn.lili.modules.member.service.MemberEvaluationService;
import cn.lili.modules.store.entity.dos.Store;
import cn.lili.modules.store.entity.enums.StoreStatusEnum;
import cn.lili.modules.store.service.StoreService;
@ -14,7 +13,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
/**
@ -33,8 +31,8 @@ public class StoreRatingExecute implements EveryDayExecute {
/**
* 会员评价
*/
@Resource
private MemberEvaluationMapper memberEvaluationMapper;
@Autowired
private MemberEvaluationService memberEvaluationService;
@Override
@ -43,10 +41,7 @@ public class StoreRatingExecute implements EveryDayExecute {
List<Store> storeList = storeService.list(new LambdaQueryWrapper<Store>().eq(Store::getStoreDisable, StoreStatusEnum.OPEN.name()));
for (Store store : storeList) {
//店铺所有开启的评价
LambdaQueryWrapper<MemberEvaluation> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(MemberEvaluation::getStoreId, store.getId());
lambdaQueryWrapper.eq(MemberEvaluation::getStatus, SwitchEnum.OPEN.name());
StoreRatingVO storeRatingVO = memberEvaluationMapper.getStoreRatingVO(lambdaQueryWrapper);
StoreRatingVO storeRatingVO = memberEvaluationService.getStoreRatingVO(store.getId(), SwitchEnum.OPEN.name());
if (storeRatingVO != null) {
//保存评分

View File

@ -4,6 +4,7 @@ import cn.lili.modules.goods.entity.dos.Commodity;
import cn.lili.modules.goods.entity.dos.Studio;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
@ -13,9 +14,12 @@ import java.util.List;
* @author Bulbasaur
* @since 2021/5/31 11:58 上午
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class StudioVO extends Studio {
private static final long serialVersionUID = 3459644787796753594L;
@ApiModelProperty(value = "直播间商品列表")
private List<Commodity> commodityList;

View File

@ -43,4 +43,8 @@ public interface CommodityService extends IService<Commodity> {
* @return 直播商品分页
*/
IPage<CommodityVO> commodityList(PageVO pageVO, String name, String auditStatus);
List<Commodity> getCommodityByRoomId(Integer roomId);
List<String> getSimpleCommodityByRoomId(Integer roomId);
}

View File

@ -190,4 +190,7 @@ public interface GoodsService extends IService<Goods> {
* @param categoryId 分类ID
*/
void categoryGoodsName(String categoryId);
void addGoodsCommentNum(Integer commentNum, String goodsId);
}

View File

@ -121,4 +121,14 @@ public class CommodityServiceImpl extends ServiceImpl<CommodityMapper, Commodity
.eq(Objects.requireNonNull(UserContext.getCurrentUser()).getRole().equals(UserEnums.STORE), "c.store_id", UserContext.getCurrentUser().getStoreId())
.orderByDesc("create_time"));
}
@Override
public List<Commodity> getCommodityByRoomId(Integer roomId) {
return this.baseMapper.getCommodityByRoomId(roomId);
}
@Override
public List<String> getSimpleCommodityByRoomId(Integer roomId) {
return this.baseMapper.getSimpleCommodityByRoomId(roomId);
}
}

View File

@ -170,7 +170,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
//检查商品
this.checkGoods(goods);
//向goods加入图片
if (goodsOperationDTO.getGoodsGalleryList().size() > 0 ) {
if (goodsOperationDTO.getGoodsGalleryList().size() > 0) {
this.setGoodsGalleryParam(goodsOperationDTO.getGoodsGalleryList().get(0), goods);
}
//添加商品参数
@ -190,7 +190,6 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
}
@Override
@Transactional(rollbackFor = Exception.class)
public void editGoods(GoodsOperationDTO goodsOperationDTO, String goodsId) {
@ -497,13 +496,17 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
@Override
public void categoryGoodsName(String categoryId) {
//获取分类下的商品
List<Goods> list = this.list(new LambdaQueryWrapper<Goods>().like(Goods::getCategoryPath,categoryId));
list.parallelStream().forEach(goods->{
List<Goods> list = this.list(new LambdaQueryWrapper<Goods>().like(Goods::getCategoryPath, categoryId));
list.parallelStream().forEach(goods -> {
//移除redis中商品缓存
cache.remove(CachePrefix.GOODS.getPrefix() + goods.getId());
});
}
@Override
public void addGoodsCommentNum(Integer commentNum, String goodsId) {
this.baseMapper.addGoodsCommentNum(commentNum, goodsId);
}
/**
* 更新商品状态

View File

@ -16,8 +16,8 @@ import cn.lili.modules.goods.entity.dos.Studio;
import cn.lili.modules.goods.entity.dos.StudioCommodity;
import cn.lili.modules.goods.entity.enums.StudioStatusEnum;
import cn.lili.modules.goods.entity.vos.StudioVO;
import cn.lili.modules.goods.mapper.CommodityMapper;
import cn.lili.modules.goods.mapper.StudioMapper;
import cn.lili.modules.goods.service.CommodityService;
import cn.lili.modules.goods.service.GoodsService;
import cn.lili.modules.goods.service.StudioCommodityService;
import cn.lili.modules.goods.service.StudioService;
@ -39,7 +39,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -58,8 +57,8 @@ public class StudioServiceImpl extends ServiceImpl<StudioMapper, Studio> impleme
private WechatLivePlayerUtil wechatLivePlayerUtil;
@Autowired
private StudioCommodityService studioCommodityService;
@Resource
private CommodityMapper commodityMapper;
@Autowired
private CommodityService commodityService;
@Autowired
private TimeTrigger timeTrigger;
@Autowired
@ -141,7 +140,7 @@ public class StudioServiceImpl extends ServiceImpl<StudioMapper, Studio> impleme
//获取直播间信息
BeanUtil.copyProperties(studio, studioVO);
//获取直播间商品信息
studioVO.setCommodityList(commodityMapper.getCommodityByRoomId(studioVO.getRoomId()));
studioVO.setCommodityList(commodityService.getCommodityByRoomId(studioVO.getRoomId()));
return studioVO;
}
@ -183,7 +182,7 @@ public class StudioServiceImpl extends ServiceImpl<StudioMapper, Studio> impleme
studio.setRoomGoodsNum(studio.getRoomGoodsNum() != null ? studio.getRoomGoodsNum() + 1 : 1);
//设置直播间默认的商品前台展示只展示两个
if (studio.getRoomGoodsNum() < 3) {
studio.setRoomGoodsList(JSONUtil.toJsonStr(commodityMapper.getSimpleCommodityByRoomId(roomId)));
studio.setRoomGoodsList(JSONUtil.toJsonStr(commodityService.getSimpleCommodityByRoomId(roomId)));
}
return this.updateById(studio);
}
@ -205,7 +204,7 @@ public class StudioServiceImpl extends ServiceImpl<StudioMapper, Studio> impleme
studio.setRoomGoodsNum(studio.getRoomGoodsNum() - 1);
//设置直播间默认的商品前台展示只展示两个
if (studio.getRoomGoodsNum() < 3) {
studio.setRoomGoodsList(JSONUtil.toJsonStr(commodityMapper.getSimpleCommodityByRoomId(roomId)));
studio.setRoomGoodsList(JSONUtil.toJsonStr(commodityService.getSimpleCommodityByRoomId(roomId)));
}
return this.updateById(studio);
}
@ -229,7 +228,7 @@ public class StudioServiceImpl extends ServiceImpl<StudioMapper, Studio> impleme
//获取直播间信息
BeanUtil.copyProperties(record, studioVO);
//获取直播间商品信息
studioVO.setCommodityList(commodityMapper.getCommodityByRoomId(studioVO.getRoomId()));
studioVO.setCommodityList(commodityService.getCommodityByRoomId(studioVO.getRoomId()));
studioVOS.add(studioVO);
}
page.setRecords(studioVOS);

View File

@ -1,14 +1,19 @@
package cn.lili.modules.member.service;
import cn.hutool.core.date.DateTime;
import cn.lili.modules.member.entity.dos.MemberEvaluation;
import cn.lili.modules.member.entity.dto.EvaluationQueryParams;
import cn.lili.modules.member.entity.dto.MemberEvaluationDTO;
import cn.lili.modules.member.entity.vo.EvaluationNumberVO;
import cn.lili.modules.member.entity.vo.MemberEvaluationListVO;
import cn.lili.modules.member.entity.vo.MemberEvaluationVO;
import cn.lili.modules.member.entity.vo.StoreRatingVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
/**
* 会员商品评价业务层
*
@ -111,4 +116,8 @@ public interface MemberEvaluationService extends IService<MemberEvaluation> {
*/
long getEvaluationCount(EvaluationQueryParams evaluationQueryParams);
List<Map<String, Object>> memberEvaluationNum(DateTime startDate, DateTime endDate);
StoreRatingVO getStoreRatingVO(String storeId, String status);
}

View File

@ -2,6 +2,7 @@ package cn.lili.modules.member.service;
import cn.lili.modules.member.entity.dos.StoreMenu;
import cn.lili.modules.member.entity.vo.StoreMenuVO;
import cn.lili.modules.member.entity.vo.StoreUserMenuVO;
import cn.lili.modules.permission.entity.dto.MenuSearchParams;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.cache.annotation.CacheConfig;
@ -30,7 +31,7 @@ public interface StoreMenuService extends IService<StoreMenu> {
* @param userId
* @return
*/
List<StoreMenu> findUserList(String userId);
List<StoreMenu> findUserList(String userId, String clerkId);
/**
@ -71,4 +72,6 @@ public interface StoreMenuService extends IService<StoreMenu> {
*/
boolean saveOrUpdateMenu(StoreMenu storeMenu);
List<StoreUserMenuVO> getUserRoleMenu(String clerkId);
}

View File

@ -1,9 +1,12 @@
package cn.lili.modules.member.serviceimpl;
import cn.hutool.core.text.CharSequenceUtil;
import cn.lili.cache.Cache;
import cn.lili.cache.CachePrefix;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.enums.UserEnums;
import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.PageVO;
import cn.lili.modules.member.entity.dos.Clerk;
@ -49,6 +52,8 @@ public class ClerkServiceImpl extends ServiceImpl<ClerkMapper, Clerk> implements
private MemberService memberService;
@Autowired
private StoreClerkRoleService storeClerkRoleService;
@Autowired
private Cache cache;
@Override
public IPage<ClerkVO> clerkForPage(PageVO page, ClerkQueryDTO clerkQueryDTO) {
@ -138,7 +143,7 @@ public class ClerkServiceImpl extends ServiceImpl<ClerkMapper, Clerk> implements
.eq("store_id", UserContext.getCurrentUser().getStoreId()));
clerkVO.setRoles(
roles.stream().filter
(role -> memberRoles.contains(role.getId()))
(role -> memberRoles.contains(role.getId()))
.collect(Collectors.toList())
);
}
@ -150,7 +155,7 @@ public class ClerkServiceImpl extends ServiceImpl<ClerkMapper, Clerk> implements
Clerk clerk = this.getById(clerkEditDTO.getId());
if (clerk != null) {
//编辑店主限制
if(clerk.getShopkeeper()){
if (Boolean.TRUE.equals(clerk.getShopkeeper())) {
throw new ServiceException(ResultCode.CANT_EDIT_CLERK_SHOPKEEPER);
}
@ -158,17 +163,19 @@ public class ClerkServiceImpl extends ServiceImpl<ClerkMapper, Clerk> implements
if (!clerk.getStoreId().equals(UserContext.getCurrentUser().getStoreId())) {
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
}
if (clerkEditDTO.getIsSuper()) {
if (Boolean.TRUE.equals(clerkEditDTO.getIsSuper())) {
clerk.setRoleIds("");
} else {
//角色赋值
if (!clerkEditDTO.getRoles().isEmpty()) {
clerk.setRoleIds(CharSequenceUtil.join(",", clerkEditDTO.getRoles()));
}
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.STORE) + UserContext.getCurrentUser().getId());
cache.vagueDel(CachePrefix.STORE_USER_MENU.getPrefix() + UserContext.getCurrentUser().getId());
}
//部门校验
if (StringUtils.isNotEmpty(clerkEditDTO.getDepartmentId())) {
if (CharSequenceUtil.isNotEmpty(clerkEditDTO.getDepartmentId())) {
if (storeDepartmentService.getById(clerkEditDTO.getDepartmentId()) != null) {
clerk.setDepartmentId(clerkEditDTO.getDepartmentId());
} else {
@ -194,17 +201,15 @@ public class ClerkServiceImpl extends ServiceImpl<ClerkMapper, Clerk> implements
if (temp != null && !temp.getStoreId().equals(clerkAddDTO.getStoreId())) {
throw new ServiceException(ResultCode.CLERK_USER_ERROR);
}
if (temp != null && temp.getStoreId().equals(clerkAddDTO.getStoreId())) {
if (temp != null) {
throw new ServiceException(ResultCode.CLERK_ALREADY_EXIT_ERROR);
}
//部门校验
if (StringUtils.isNotEmpty(clerkAddDTO.getDepartmentId())) {
if (storeDepartmentService.getById(clerkAddDTO.getDepartmentId()) == null) {
throw new ServiceException(ResultCode.PERMISSION_NOT_FOUND_ERROR);
}
if (CharSequenceUtil.isNotEmpty(clerkAddDTO.getDepartmentId()) && storeDepartmentService.getById(clerkAddDTO.getDepartmentId()) == null) {
throw new ServiceException(ResultCode.PERMISSION_NOT_FOUND_ERROR);
}
//角色校验
if (clerkAddDTO.getRoles() != null && clerkAddDTO.getRoles().size() > 0) {
if (clerkAddDTO.getRoles() != null && !clerkAddDTO.getRoles().isEmpty()) {
List<StoreRole> storeRoles = storeRoleService.list(clerkAddDTO.getRoles());
if (storeRoles.size() != clerkAddDTO.getRoles().size()) {
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
@ -214,13 +219,12 @@ public class ClerkServiceImpl extends ServiceImpl<ClerkMapper, Clerk> implements
this.save(clerk);
//判断用户角色权限不为超级会员且权限路径不为空
if(clerkAddDTO.getIsSuper()==false && clerkAddDTO.getRoles()!=null){
if (Boolean.FALSE.equals(clerkAddDTO.getIsSuper()) && clerkAddDTO.getRoles() != null) {
//添加店员用户角色
List<StoreClerkRole> storeClerkRoleList = new ArrayList<>();
clerkAddDTO.getRoles().stream().forEach(a -> {
storeClerkRoleList.add(StoreClerkRole.builder().clerkId(clerk.getId()).roleId(a).build());
});
clerkAddDTO.getRoles().forEach(a -> storeClerkRoleList.add(StoreClerkRole.builder().clerkId(clerk.getId()).roleId(a).build()));
storeClerkRoleService.saveBatch(storeClerkRoleList);
}
@ -246,7 +250,7 @@ public class ClerkServiceImpl extends ServiceImpl<ClerkMapper, Clerk> implements
List<String> memberIds = new ArrayList<>();
clerks.forEach(clerk -> {
//如果是店主无法重置密码
if (clerk.getShopkeeper()) {
if (Boolean.TRUE.equals(clerk.getShopkeeper())) {
throw new ServiceException(ResultCode.CLERK_SUPPER);
}
memberIds.add(clerk.getMemberId());
@ -261,7 +265,7 @@ public class ClerkServiceImpl extends ServiceImpl<ClerkMapper, Clerk> implements
queryWrapper.eq("store_id", UserContext.getCurrentUser().getStoreId());
queryWrapper.in("id", ids);
List<Clerk> clerks = this.baseMapper.selectList(queryWrapper);
if (clerks.size() > 0) {
if (!clerks.isEmpty()) {
//校验要重置的店员是否是当前店铺的店员
if (clerks.size() != ids.size()) {
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
@ -276,7 +280,7 @@ public class ClerkServiceImpl extends ServiceImpl<ClerkMapper, Clerk> implements
throw new ServiceException(ResultCode.CLERK_CURRENT_SUPPER);
}
//无法删除店主
if (clerk.getShopkeeper()) {
if (Boolean.TRUE.equals(clerk.getShopkeeper())) {
throw new ServiceException(ResultCode.CLERK_SUPPER);
}
memberIds.add(clerk.getMemberId());
@ -291,11 +295,11 @@ public class ClerkServiceImpl extends ServiceImpl<ClerkMapper, Clerk> implements
Member member = memberService.findByMobile(mobile);
if (member != null) {
//校验要添加的会员是否已经是店主
if (member.getHaveStore()) {
if (Boolean.TRUE.equals(member.getHaveStore())) {
throw new ServiceException(ResultCode.STORE_APPLY_DOUBLE_ERROR);
}
//校验会员的有效性
if (!member.getDisabled()) {
if (Boolean.FALSE.equals(member.getDisabled())) {
throw new ServiceException(ResultCode.USER_STATUS_ERROR);
}
//校验此会员是否已经是店员

View File

@ -21,6 +21,7 @@ import cn.lili.modules.member.entity.enums.EvaluationGradeEnum;
import cn.lili.modules.member.entity.vo.EvaluationNumberVO;
import cn.lili.modules.member.entity.vo.MemberEvaluationListVO;
import cn.lili.modules.member.entity.vo.MemberEvaluationVO;
import cn.lili.modules.member.entity.vo.StoreRatingVO;
import cn.lili.modules.member.mapper.MemberEvaluationMapper;
import cn.lili.modules.member.service.MemberEvaluationService;
import cn.lili.modules.member.service.MemberService;
@ -44,7 +45,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@ -57,11 +57,6 @@ import java.util.Map;
@Service
public class MemberEvaluationServiceImpl extends ServiceImpl<MemberEvaluationMapper, MemberEvaluation> implements MemberEvaluationService {
/**
* 会员评价数据层
*/
@Resource
private MemberEvaluationMapper memberEvaluationMapper;
/**
* 订单
*/
@ -101,7 +96,7 @@ public class MemberEvaluationServiceImpl extends ServiceImpl<MemberEvaluationMap
@Override
public IPage<MemberEvaluationListVO> queryPage(EvaluationQueryParams evaluationQueryParams) {
return memberEvaluationMapper.getMemberEvaluationList(PageUtil.initPage(evaluationQueryParams), evaluationQueryParams.queryWrapper());
return this.baseMapper.getMemberEvaluationList(PageUtil.initPage(evaluationQueryParams), evaluationQueryParams.queryWrapper());
}
@Override
@ -231,6 +226,20 @@ public class MemberEvaluationServiceImpl extends ServiceImpl<MemberEvaluationMap
return this.count(evaluationQueryParams.queryWrapper());
}
@Override
public List<Map<String, Object>> memberEvaluationNum(DateTime startDate, DateTime endDate) {
return this.baseMapper.memberEvaluationNum(new QueryWrapper<MemberEvaluation>()
.between("create_time", startDate, endDate));
}
@Override
public StoreRatingVO getStoreRatingVO(String storeId, String status) {
LambdaQueryWrapper<MemberEvaluation> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(MemberEvaluation::getStoreId, storeId);
lambdaQueryWrapper.eq(MemberEvaluation::getStatus, SwitchEnum.OPEN.name());
return this.baseMapper.getStoreRatingVO(lambdaQueryWrapper);
}
/**
* 检测会员评价
*

View File

@ -1,13 +1,15 @@
package cn.lili.modules.member.serviceimpl;
import cn.lili.common.security.context.UserContext;
import cn.lili.cache.Cache;
import cn.lili.cache.CachePrefix;
import cn.lili.common.security.enums.UserEnums;
import cn.lili.modules.member.entity.dos.StoreDepartmentRole;
import cn.lili.modules.member.mapper.StoreDepartmentRoleMapper;
import cn.lili.modules.member.service.StoreDepartmentRoleService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@ -18,9 +20,10 @@ import java.util.List;
* @since 2020/11/22 12:08
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class StoreDepartmentRoleServiceImpl extends ServiceImpl<StoreDepartmentRoleMapper, StoreDepartmentRole> implements StoreDepartmentRoleService {
@Autowired
private Cache cache;
@Override
public List<StoreDepartmentRole> listByDepartmentId(String storeDepartmentId) {
@ -31,11 +34,13 @@ public class StoreDepartmentRoleServiceImpl extends ServiceImpl<StoreDepartmentR
@Override
public void updateByDepartmentId(String storeDepartmentId, List<StoreDepartmentRole> storeDepartmentRoles) {
if (storeDepartmentRoles.size() > 0) {
if (!storeDepartmentRoles.isEmpty()) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("department_id", storeDepartmentId);
this.remove(queryWrapper);
this.saveBatch(storeDepartmentRoles);
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.STORE));
cache.vagueDel(CachePrefix.STORE_USER_MENU.getPrefix());
}
}
@ -45,5 +50,7 @@ public class StoreDepartmentRoleServiceImpl extends ServiceImpl<StoreDepartmentR
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.in("department_id", ids);
this.remove(queryWrapper);
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.STORE));
cache.vagueDel(CachePrefix.STORE_USER_MENU.getPrefix());
}
}

View File

@ -3,16 +3,12 @@ package cn.lili.modules.member.serviceimpl;
import cn.lili.cache.Cache;
import cn.lili.cache.CachePrefix;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.enums.UserEnums;
import cn.lili.modules.member.entity.dos.StoreMenuRole;
import cn.lili.modules.member.entity.vo.StoreUserMenuVO;
import cn.lili.modules.member.mapper.StoreMenuMapper;
import cn.lili.modules.member.mapper.StoreMenuRoleMapper;
import cn.lili.modules.member.service.StoreMenuRoleService;
import cn.lili.modules.permission.entity.dos.RoleMenu;
import cn.lili.modules.permission.entity.vo.UserMenuVO;
import cn.lili.modules.permission.mapper.MenuMapper;
import cn.lili.modules.permission.mapper.RoleMenuMapper;
import cn.lili.modules.permission.service.RoleMenuService;
import cn.lili.modules.member.service.StoreMenuService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -21,7 +17,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
/**
@ -38,9 +33,8 @@ public class StoreMenuRoleServiceImpl extends ServiceImpl<StoreMenuRoleMapper, S
/**
* 菜单
*/
@Resource
private StoreMenuMapper storeMenuMapper;
@Autowired
private StoreMenuService storeMenuService;
@Autowired
private Cache<Object> cache;
@ -53,11 +47,11 @@ public class StoreMenuRoleServiceImpl extends ServiceImpl<StoreMenuRoleMapper, S
}
@Override
public List<StoreUserMenuVO> findAllMenu(String clerkId,String memberId) {
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 = storeMenuMapper.getUserRoleMenu(clerkId);
menuList = storeMenuService.getUserRoleMenu(clerkId);
cache.put(cacheKey, menuList);
}
return menuList;
@ -67,16 +61,14 @@ public class StoreMenuRoleServiceImpl extends ServiceImpl<StoreMenuRoleMapper, S
@Override
public void updateRoleMenu(String roleId, List<StoreMenuRole> roleMenus) {
try {
roleMenus.forEach(role -> {
role.setStoreId(UserContext.getCurrentUser().getStoreId());
});
roleMenus.forEach(role -> role.setStoreId(UserContext.getCurrentUser().getStoreId()));
//删除角色已经绑定的菜单
this.delete(roleId);
//重新保存角色菜单关系
this.saveBatch(roleMenus);
cache.vagueDel(CachePrefix.MENU_USER_ID.getPrefix());
cache.vagueDel(CachePrefix.USER_MENU.getPrefix());
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.STORE));
cache.vagueDel(CachePrefix.STORE_USER_MENU.getPrefix());
} catch (Exception e) {
log.error("修改用户权限错误", e);
}
@ -88,7 +80,7 @@ public class StoreMenuRoleServiceImpl extends ServiceImpl<StoreMenuRoleMapper, S
QueryWrapper<StoreMenuRole> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("role_id", roleId);
this.remove(queryWrapper);
cache.vagueDel(CachePrefix.STORE_MENU_USER_ID.getPrefix());
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.STORE));
cache.vagueDel(CachePrefix.STORE_USER_MENU.getPrefix());
}
@ -98,7 +90,7 @@ public class StoreMenuRoleServiceImpl extends ServiceImpl<StoreMenuRoleMapper, S
QueryWrapper<StoreMenuRole> queryWrapper = new QueryWrapper<>();
queryWrapper.in("role_id", roleId);
this.remove(queryWrapper);
cache.vagueDel(CachePrefix.STORE_MENU_USER_ID.getPrefix());
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.STORE));
cache.vagueDel(CachePrefix.STORE_USER_MENU.getPrefix());
}
}

View File

@ -7,15 +7,18 @@ import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.enums.UserEnums;
import cn.lili.common.vo.SearchVO;
import cn.lili.modules.member.entity.dos.Clerk;
import cn.lili.modules.member.entity.dos.StoreMenu;
import cn.lili.modules.member.entity.dos.StoreMenuRole;
import cn.lili.modules.member.entity.vo.StoreMenuVO;
import cn.lili.modules.member.entity.vo.StoreUserMenuVO;
import cn.lili.modules.member.mapper.StoreMenuMapper;
import cn.lili.modules.member.service.ClerkService;
import cn.lili.modules.member.service.StoreMenuRoleService;
import cn.lili.modules.member.service.StoreMenuService;
import cn.lili.modules.member.token.StoreTokenGenerate;
import cn.lili.modules.permission.entity.dto.MenuSearchParams;
import cn.lili.mybatis.util.PageUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -24,6 +27,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@ -43,7 +47,7 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
private StoreMenuRoleService storeMenuRoleService;
@Autowired
private Cache<List<StoreMenu>> cache;
private Cache cache;
/**
* 店员
@ -51,7 +55,12 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
@Autowired
private ClerkService clerkService;
@Autowired
private StoreTokenGenerate storeTokenGenerate;
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteIds(List<String> ids) {
QueryWrapper<StoreMenuRole> queryWrapper = new QueryWrapper<>();
queryWrapper.in("menu_id", ids);
@ -59,6 +68,8 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
if (storeMenuRoleService.count(queryWrapper) > 0) {
throw new ServiceException(ResultCode.PERMISSION_MENU_ROLE_ERROR);
}
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.STORE));
cache.vagueDel(CachePrefix.STORE_USER_MENU.getPrefix());
this.removeByIds(ids);
}
@ -72,18 +83,26 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
//获取当前登录用户的店员信息
Clerk clerk = clerkService.getOne(new LambdaQueryWrapper<Clerk>().eq(Clerk::getMemberId, authUser.getId()));
//获取当前店员角色的菜单列表
List<StoreMenu> userMenus = this.baseMapper.findByUserId(clerk.getId());
List<StoreMenu> userMenus = this.findUserList(authUser.getId(), clerk.getId());
return this.tree(userMenus);
}
@Override
public List<StoreMenu> findUserList(String userId) {
String cacheKey = CachePrefix.STORE_MENU_USER_ID.getPrefix() + userId;
List<StoreMenu> menuList = cache.get(cacheKey);
public List<StoreMenu> findUserList(String userId, String clerkId) {
String cacheKey = CachePrefix.STORE_USER_MENU.getPrefix() + clerkId;
List<StoreMenu> menuList = (List<StoreMenu>) cache.get(cacheKey);
if (menuList == null) {
menuList = this.baseMapper.findByUserId(userId);
menuList = this.baseMapper.findByUserId(clerkId);
cache.put(cacheKey, menuList);
}
String permissionCacheKey = CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.STORE) + userId;
Map<String, List<String>> permission = (Map<String, List<String>>) cache.get(permissionCacheKey);
if (permission == null || permission.isEmpty()) {
permission = storeTokenGenerate.permissionList(storeMenuRoleService.findAllMenu(clerkId, userId));
cache.put(permissionCacheKey, permission);
}
return menuList;
}
@ -94,13 +113,20 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
* @return 是否成功
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveOrUpdateMenu(StoreMenu storeMenu) {
if (CharSequenceUtil.isNotEmpty(storeMenu.getId())) {
cache.vagueDel(CachePrefix.STORE_MENU_USER_ID.getPrefix());
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.STORE));
cache.vagueDel(CachePrefix.STORE_USER_MENU.getPrefix());
}
return this.saveOrUpdate(storeMenu);
}
@Override
public List<StoreUserMenuVO> getUserRoleMenu(String clerkId) {
return this.baseMapper.getUserRoleMenu(clerkId);
}
@Override
public List<StoreMenu> findByRoleIds(String roleId) {
QueryWrapper<StoreMenu> queryWrapper = new QueryWrapper<>();

View File

@ -1,8 +1,11 @@
package cn.lili.modules.member.serviceimpl;
import cn.lili.cache.Cache;
import cn.lili.cache.CachePrefix;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.enums.UserEnums;
import cn.lili.modules.member.entity.dos.StoreRole;
import cn.lili.modules.member.mapper.StoreRoleMapper;
import cn.lili.modules.member.service.StoreClerkRoleService;
@ -41,6 +44,9 @@ public class StoreRoleServiceImpl extends ServiceImpl<StoreRoleMapper, StoreRole
@Autowired
private StoreMenuRoleService storeMenuRoleService;
@Autowired
private Cache cache;
@Override
public List<StoreRole> findByDefaultRole(Boolean defaultRole) {
QueryWrapper<StoreRole> queryWrapper = new QueryWrapper<>();
@ -73,6 +79,8 @@ public class StoreRoleServiceImpl extends ServiceImpl<StoreRoleMapper, StoreRole
this.removeByIds(roleIds);
//删除角色与菜单关联
storeMenuRoleService.remove(queryWrapper);
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.STORE));
cache.vagueDel(CachePrefix.STORE_USER_MENU.getPrefix());
}
@Override
@ -86,6 +94,8 @@ public class StoreRoleServiceImpl extends ServiceImpl<StoreRoleMapper, StoreRole
if (!storeRoleTemp.getStoreId().equals(UserContext.getCurrentUser().getStoreId())) {
throw new ServiceException(ResultCode.PERMISSION_ROLE_NOT_FOUND_ERROR);
}
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.STORE));
cache.vagueDel(CachePrefix.STORE_USER_MENU.getPrefix());
return updateById(storeRole);
}

View File

@ -57,7 +57,7 @@ public class StoreTokenGenerate extends AbstractTokenGenerate<Member> {
if (clerk == null) {
throw new ServiceException(ResultCode.CLERK_NOT_FOUND_ERROR);
}
if (!clerk.getStatus()) {
if (Boolean.FALSE.equals(clerk.getStatus())) {
throw new ServiceException(ResultCode.CLERK_DISABLED_ERROR);
}
//获取当前用户权限
@ -96,7 +96,7 @@ public class StoreTokenGenerate extends AbstractTokenGenerate<Member> {
* @param userMenuVOList
* @return
*/
private Map<String, List<String>> permissionList(List<StoreUserMenuVO> userMenuVOList) {
public Map<String, List<String>> permissionList(List<StoreUserMenuVO> userMenuVOList) {
Map<String, List<String>> permission = new HashMap<>(2);
List<String> superPermissions = new ArrayList<>();

View File

@ -1,5 +1,6 @@
package cn.lili.modules.order.order.service;
import cn.hutool.core.date.DateTime;
import cn.lili.modules.order.order.entity.dos.OrderItem;
import cn.lili.modules.order.order.entity.enums.CommentStatusEnum;
import cn.lili.modules.order.order.entity.enums.OrderComplaintStatusEnum;
@ -66,4 +67,6 @@ public interface OrderItemService extends IService<OrderItem> {
* @return 子订单
*/
OrderItem getByOrderSnAndSkuId(String orderSn, String skuId);
List<OrderItem> waitOperationOrderItem(DateTime receiveTime, String commentStatus);
}

View File

@ -1,7 +1,7 @@
package cn.lili.modules.order.order.service;
import cn.lili.modules.order.order.entity.dos.Trade;
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
import cn.lili.modules.order.order.entity.dos.Trade;
import com.baomidou.mybatisplus.extension.service.IService;
/**
@ -44,4 +44,6 @@ public interface TradeService extends IService<Trade> {
*/
void payTrade(String tradeSn, String paymentName, String receivableNo);
void updateTradePrice(String tradeSn);
}

View File

@ -1,5 +1,6 @@
package cn.lili.modules.order.order.serviceimpl;
import cn.hutool.core.date.DateTime;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException;
import cn.lili.modules.order.order.entity.dos.OrderItem;
@ -9,6 +10,7 @@ import cn.lili.modules.order.order.entity.enums.OrderItemAfterSaleStatusEnum;
import cn.lili.modules.order.order.mapper.OrderItemMapper;
import cn.lili.modules.order.order.service.OrderItemService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -82,4 +84,12 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
.eq(OrderItem::getOrderSn, orderSn)
.eq(OrderItem::getSkuId, skuId));
}
@Override
public List<OrderItem> waitOperationOrderItem(DateTime receiveTime, String commentStatus) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.le("o.complete_time", receiveTime);
queryWrapper.eq("oi.comment_status", CommentStatusEnum.UNFINISHED.name());
return this.baseMapper.waitOperationOrderItem(queryWrapper);
}
}

View File

@ -10,17 +10,16 @@ import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.order.order.entity.dos.OrderItem;
import cn.lili.modules.order.order.entity.dto.PriceDetailDTO;
import cn.lili.modules.order.order.entity.enums.PayStatusEnum;
import cn.lili.modules.order.order.mapper.TradeMapper;
import cn.lili.modules.order.order.service.OrderItemService;
import cn.lili.modules.order.order.service.OrderPriceService;
import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.order.order.service.TradeService;
import cn.lili.modules.payment.kit.plugin.bank.BankTransferPlugin;
import cn.lili.modules.system.aspect.annotation.SystemLogPoint;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
@ -46,8 +45,8 @@ public class OrderPriceServiceImpl implements OrderPriceService {
/**
* 交易数据层
*/
@Resource
private TradeMapper tradeMapper;
@Autowired
private TradeService tradeService;
/**
* 订单
*/
@ -63,7 +62,7 @@ public class OrderPriceServiceImpl implements OrderPriceService {
Order order = updateOrderPrice(orderSn, orderPrice);
//修改交易金额
tradeMapper.updateTradePrice(order.getTradeSn());
tradeService.updateTradePrice(order.getTradeSn());
return order;
}

View File

@ -18,9 +18,7 @@ import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.enums.UserEnums;
import cn.lili.common.utils.SnowFlake;
import cn.lili.modules.goods.entity.dto.GoodsCompleteMessage;
import cn.lili.modules.logistics.entity.enums.LogisticsEnum;
import cn.lili.modules.member.entity.dto.MemberAddressDTO;
import cn.lili.modules.member.service.StoreLogisticsService;
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
import cn.lili.modules.order.cart.entity.enums.DeliveryMethodEnum;
import cn.lili.modules.order.order.aop.OrderLogPoint;
@ -34,7 +32,6 @@ import cn.lili.modules.order.order.entity.vo.OrderDetailVO;
import cn.lili.modules.order.order.entity.vo.OrderSimpleVO;
import cn.lili.modules.order.order.entity.vo.OrderVO;
import cn.lili.modules.order.order.entity.vo.PaymentLog;
import cn.lili.modules.order.order.mapper.OrderItemMapper;
import cn.lili.modules.order.order.mapper.OrderMapper;
import cn.lili.modules.order.order.service.*;
import cn.lili.modules.order.trade.entity.dos.OrderLog;
@ -46,7 +43,6 @@ import cn.lili.modules.store.entity.dto.StoreDeliverGoodsAddressDTO;
import cn.lili.modules.store.service.StoreDetailService;
import cn.lili.modules.system.aspect.annotation.SystemLogPoint;
import cn.lili.modules.system.entity.dos.Logistics;
import cn.lili.modules.system.entity.dto.LogisticsSetting;
import cn.lili.modules.system.entity.vo.Traces;
import cn.lili.modules.system.service.LogisticsService;
import cn.lili.mybatis.util.PageUtil;
@ -75,7 +71,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
@ -100,11 +95,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
*/
@Autowired
private TimeTrigger timeTrigger;
/**
* 订单货物数据层
*/
@Resource
private OrderItemMapper orderItemMapper;
/**
* 发票
*/
@ -285,10 +275,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
if (order == null) {
throw new ServiceException(ResultCode.ORDER_NOT_EXIST);
}
QueryWrapper<OrderItem> orderItemWrapper = new QueryWrapper<>();
orderItemWrapper.eq(ORDER_SN_COLUMN, orderSn);
//查询订单项信息
List<OrderItem> orderItems = orderItemMapper.selectList(orderItemWrapper);
List<OrderItem> orderItems = orderItemService.getByOrderSn(orderSn);
//查询订单日志信息
List<OrderLog> orderLogs = orderLogService.getOrderLog(orderSn);
//查询发票信息

File diff suppressed because one or more lines are too long

View File

@ -3,6 +3,7 @@ package cn.lili.modules.permission.service;
import cn.lili.modules.permission.entity.dos.Menu;
import cn.lili.modules.permission.entity.dto.MenuSearchParams;
import cn.lili.modules.permission.entity.vo.MenuVO;
import cn.lili.modules.permission.entity.vo.UserMenuVO;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.cache.annotation.CacheConfig;
@ -71,4 +72,12 @@ public interface MenuService extends IService<Menu> {
*/
boolean saveOrUpdateMenu(Menu menu);
/**
* 根据角色集合获取拥有的菜单具体权限
*
* @param userId
* @return
*/
List<UserMenuVO> findAllMenu(String userId);
}

View File

@ -1,7 +1,6 @@
package cn.lili.modules.permission.service;
import cn.lili.modules.permission.entity.dos.RoleMenu;
import cn.lili.modules.permission.entity.vo.UserMenuVO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
@ -23,15 +22,6 @@ public interface RoleMenuService extends IService<RoleMenu> {
List<RoleMenu> findByRoleId(String roleId);
/**
* 根据角色集合获取拥有的菜单具体权限
*
* @param userId
* @return
*/
List<UserMenuVO> findAllMenu(String userId);
/**
* 更新某角色拥有到菜单
*

View File

@ -46,6 +46,10 @@ import java.util.stream.Collectors;
@Slf4j
@Service
public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser> implements AdminUserService {
/**
* 角色长度
*/
private final int rolesMaxSize = 10;
@Autowired
private UserRoleService userRoleService;
@Autowired
@ -56,15 +60,9 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
private MenuService menuService;
@Autowired
private ManagerTokenGenerate managerTokenGenerate;
@Autowired
private Cache cache;
/**
* 角色长度
*/
private final int rolesMaxSize = 10;
@Override
public IPage<AdminUserVO> adminUserPage(Page initPage, QueryWrapper<AdminUser> initWrapper) {
Page<AdminUser> adminUserPage = page(initPage, initWrapper);
@ -102,7 +100,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
}
result.add(adminUserVO);
});
Page<AdminUserVO> pageResult = new Page(adminUserPage.getCurrent(), adminUserPage.getSize(), adminUserPage.getTotal());
Page<AdminUserVO> pageResult = new Page<>(adminUserPage.getCurrent(), adminUserPage.getSize(), adminUserPage.getTotal());
pageResult.setRecords(result);
return pageResult;
@ -163,13 +161,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
@Override
public AdminUser findByUsername(String username) {
AdminUser user = getOne(new LambdaQueryWrapper<AdminUser>().eq(AdminUser::getUsername, username));
if (user == null) {
return null;
}
return user;
return getOne(new LambdaQueryWrapper<AdminUser>().eq(AdminUser::getUsername, username), false);
}
@ -185,11 +177,11 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
}
adminUser.setRoleIds(CharSequenceUtil.join(",", roles));
updateRole(adminUser.getId(), roles);
} else {
adminUser.setRoleIds("");
}
updateRole(adminUser.getId(), roles);
this.updateById(adminUser);
return true;
}
@ -208,8 +200,9 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
}
@Override
@Transactional(rollbackFor = Exception.class)
public void resetPassword(List<String> ids) {
LambdaQueryWrapper<AdminUser> lambdaQueryWrapper = new LambdaQueryWrapper();
LambdaQueryWrapper<AdminUser> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(AdminUser::getId, ids);
List<AdminUser> adminUsers = this.list(lambdaQueryWrapper);
String password = StringUtils.md5("123456");
@ -239,6 +232,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteCompletely(List<String> ids) {
//彻底删除超级管理员
this.removeByIds(ids);
@ -269,5 +263,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
List<UserRole> userRoles = new ArrayList<>(roles.size());
roles.forEach(id -> userRoles.add(new UserRole(userId, id)));
userRoleService.updateUserRole(userId, userRoles);
cache.vagueDel(CachePrefix.USER_MENU.getPrefix(UserEnums.MANAGER));
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.MANAGER));
}
}

View File

@ -1,10 +1,14 @@
package cn.lili.modules.permission.serviceimpl;
import cn.lili.cache.Cache;
import cn.lili.cache.CachePrefix;
import cn.lili.common.security.enums.UserEnums;
import cn.lili.modules.permission.entity.dos.DepartmentRole;
import cn.lili.modules.permission.mapper.DepartmentRoleMapper;
import cn.lili.modules.permission.service.DepartmentRoleService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -19,6 +23,8 @@ import java.util.List;
@Service
public class DepartmentRoleServiceImpl extends ServiceImpl<DepartmentRoleMapper, DepartmentRole> implements DepartmentRoleService {
@Autowired
private Cache cache;
@Override
public List<DepartmentRole> listByDepartmentId(String departmentId) {
@ -35,6 +41,8 @@ public class DepartmentRoleServiceImpl extends ServiceImpl<DepartmentRoleMapper,
this.remove(queryWrapper);
this.saveBatch(departmentRoles);
cache.vagueDel(CachePrefix.USER_MENU.getPrefix(UserEnums.MANAGER));
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.MANAGER));
}
@Override
@ -42,5 +50,7 @@ public class DepartmentRoleServiceImpl extends ServiceImpl<DepartmentRoleMapper,
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.in("department_id", ids);
this.remove(queryWrapper);
cache.vagueDel(CachePrefix.USER_MENU.getPrefix(UserEnums.MANAGER));
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.MANAGER));
}
}

View File

@ -13,15 +13,18 @@ import cn.lili.modules.permission.entity.dos.Menu;
import cn.lili.modules.permission.entity.dos.RoleMenu;
import cn.lili.modules.permission.entity.dto.MenuSearchParams;
import cn.lili.modules.permission.entity.vo.MenuVO;
import cn.lili.modules.permission.entity.vo.UserMenuVO;
import cn.lili.modules.permission.mapper.MenuMapper;
import cn.lili.modules.permission.service.MenuService;
import cn.lili.modules.permission.service.RoleMenuService;
import cn.lili.modules.system.token.ManagerTokenGenerate;
import cn.lili.mybatis.util.PageUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@ -41,9 +44,13 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
private RoleMenuService roleMenuService;
@Autowired
private Cache<List<Menu>> cache;
private ManagerTokenGenerate managerTokenGenerate;
@Autowired
private Cache cache;
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteIds(List<String> ids) {
QueryWrapper<RoleMenu> queryWrapper = new QueryWrapper<>();
queryWrapper.in("menu_id", ids);
@ -51,6 +58,8 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
if (roleMenuService.count(queryWrapper) > 0) {
throw new ServiceException(ResultCode.PERMISSION_MENU_ROLE_ERROR);
}
cache.vagueDel(CachePrefix.USER_MENU.getPrefix(UserEnums.MANAGER));
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.MANAGER));
this.removeByIds(ids);
}
@ -68,12 +77,17 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
@Override
public List<Menu> findUserList(String userId) {
String cacheKey = CachePrefix.USER_MENU.getPrefix(UserEnums.MANAGER) + userId;
List<Menu> menuList = cache.get(cacheKey);
List<Menu> menuList = (List<Menu>) cache.get(cacheKey);
if (menuList == null) {
menuList = this.baseMapper.findByUserId(userId);
//每5分钟重新确认用户权限
cache.put(cacheKey, menuList, 300L);
}
String permissionCacheKey = CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.MANAGER) + userId;
Map<String, List<String>> permission = (Map<String, List<String>>) cache.get(permissionCacheKey);
if (permission == null || permission.isEmpty()) {
cache.put(permissionCacheKey, this.managerTokenGenerate.permissionList(this.findAllMenu(userId)));
}
return menuList;
}
@ -84,14 +98,18 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
* @return 是否成功
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveOrUpdateMenu(Menu menu) {
if (CharSequenceUtil.isNotEmpty(menu.getId())) {
}
cache.vagueDel(CachePrefix.USER_MENU.getPrefix(UserEnums.MANAGER));
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.MANAGER));
return this.saveOrUpdate(menu);
}
@Override
public List<UserMenuVO> findAllMenu(String userId) {
return this.baseMapper.getUserRoleMenu(userId);
}
@Override
public List<Menu> findByRoleIds(String roleId) {
QueryWrapper<Menu> queryWrapper = new QueryWrapper<>();

View File

@ -2,9 +2,8 @@ package cn.lili.modules.permission.serviceimpl;
import cn.lili.cache.Cache;
import cn.lili.cache.CachePrefix;
import cn.lili.common.security.enums.UserEnums;
import cn.lili.modules.permission.entity.dos.RoleMenu;
import cn.lili.modules.permission.entity.vo.UserMenuVO;
import cn.lili.modules.permission.mapper.MenuMapper;
import cn.lili.modules.permission.mapper.RoleMenuMapper;
import cn.lili.modules.permission.service.RoleMenuService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -15,7 +14,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
/**
@ -28,13 +26,6 @@ import java.util.List;
@Service
public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> implements RoleMenuService {
/**
* 菜单
*/
@Resource
private MenuMapper menuMapper;
@Autowired
private Cache<Object> cache;
@ -45,11 +36,6 @@ public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> i
return this.baseMapper.selectList(queryWrapper);
}
@Override
public List<UserMenuVO> findAllMenu(String userId) {
return menuMapper.getUserRoleMenu(userId);
}
@Override
@Transactional(rollbackFor = Exception.class)
@ -59,7 +45,9 @@ public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> i
this.deleteRoleMenu(roleId);
//重新保存角色菜单关系
this.saveBatch(roleMenus);
cache.vagueDel(CachePrefix.USER_MENU.getPrefix(UserEnums.MANAGER));
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.MANAGER));
} catch (Exception e) {
log.error("修改用户权限错误", e);
}
@ -70,6 +58,8 @@ public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> i
//删除
QueryWrapper<RoleMenu> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("role_id", roleId);
cache.vagueDel(CachePrefix.USER_MENU.getPrefix(UserEnums.MANAGER));
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.MANAGER));
this.remove(queryWrapper);
}
@ -79,6 +69,8 @@ public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> i
//删除
QueryWrapper<RoleMenu> queryWrapper = new QueryWrapper<>();
queryWrapper.in("role_id", roleId);
cache.vagueDel(CachePrefix.USER_MENU.getPrefix(UserEnums.MANAGER));
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.MANAGER));
this.remove(queryWrapper);
}

View File

@ -1,7 +1,10 @@
package cn.lili.modules.permission.serviceimpl;
import cn.lili.cache.Cache;
import cn.lili.cache.CachePrefix;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.enums.UserEnums;
import cn.lili.modules.permission.entity.dos.Role;
import cn.lili.modules.permission.mapper.RoleMapper;
import cn.lili.modules.permission.service.DepartmentRoleService;
@ -38,6 +41,8 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
@Autowired
private RoleMenuService roleMenuService;
@Autowired
private Cache cache;
@Override
public List<Role> findByDefaultRole(Boolean defaultRole) {
@ -61,5 +66,7 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
this.removeByIds(roleIds);
//删除角色与菜单关联
roleMenuService.remove(queryWrapper);
cache.vagueDel(CachePrefix.USER_MENU.getPrefix(UserEnums.MANAGER));
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.MANAGER));
}
}

View File

@ -1,10 +1,14 @@
package cn.lili.modules.permission.serviceimpl;
import cn.lili.cache.Cache;
import cn.lili.cache.CachePrefix;
import cn.lili.common.security.enums.UserEnums;
import cn.lili.modules.permission.entity.dos.UserRole;
import cn.lili.modules.permission.mapper.UserRoleMapper;
import cn.lili.modules.permission.service.UserRoleService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -20,6 +24,9 @@ import java.util.List;
@Service
public class UserRoleServiceImpl extends ServiceImpl<UserRoleMapper, UserRole> implements UserRoleService {
@Autowired
private Cache cache;
@Override
public List<UserRole> listByUserId(String userId) {
QueryWrapper<UserRole> queryWrapper = new QueryWrapper<>();
@ -46,6 +53,8 @@ public class UserRoleServiceImpl extends ServiceImpl<UserRoleMapper, UserRole> i
//保存
this.saveBatch(userRoles);
cache.vagueDel(CachePrefix.USER_MENU.getPrefix(UserEnums.MANAGER));
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.MANAGER));
}
}

View File

@ -27,7 +27,6 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
@ -59,11 +58,6 @@ public class PlatformViewServiceImpl extends ServiceImpl<PlatformViewMapper, Pla
*/
@Autowired
private Cache cache;
/**
* 平台流量统计
*/
@Resource
private PlatformViewMapper platformViewMapper;
@Override
public Long online() {
@ -250,7 +244,7 @@ public class PlatformViewServiceImpl extends ServiceImpl<PlatformViewMapper, Pla
} else {
queryWrapper.eq("store_id", -1);
}
return platformViewMapper.count(queryWrapper);
return this.baseMapper.count(queryWrapper);
}
}

View File

@ -11,7 +11,7 @@ import cn.lili.common.security.token.TokenUtil;
import cn.lili.common.security.token.base.AbstractTokenGenerate;
import cn.lili.modules.permission.entity.dos.AdminUser;
import cn.lili.modules.permission.entity.vo.UserMenuVO;
import cn.lili.modules.permission.service.RoleMenuService;
import cn.lili.modules.permission.service.MenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@ -33,7 +33,7 @@ public class ManagerTokenGenerate extends AbstractTokenGenerate<AdminUser> {
@Autowired
private TokenUtil tokenUtil;
@Autowired
private RoleMenuService roleMenuService;
private MenuService menuService;
@Autowired
private Cache cache;
@ -50,7 +50,7 @@ public class ManagerTokenGenerate extends AbstractTokenGenerate<AdminUser> {
.longTerm(longTerm)
.build();
List<UserMenuVO> userMenuVOList = roleMenuService.findAllMenu(authUser.getId());
List<UserMenuVO> userMenuVOList = menuService.findAllMenu(authUser.getId());
//缓存权限列表
cache.put(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.MANAGER) + authUser.getId(), this.permissionList(userMenuVOList));
@ -68,7 +68,7 @@ public class ManagerTokenGenerate extends AbstractTokenGenerate<AdminUser> {
* @param userMenuVOList
* @return
*/
private Map<String, List<String>> permissionList(List<UserMenuVO> userMenuVOList) {
public Map<String, List<String>> permissionList(List<UserMenuVO> userMenuVOList) {
Map<String, List<String>> permission = new HashMap<>(2);
List<String> superPermissions = new ArrayList<>();

View File

@ -123,7 +123,7 @@ public class StoreAuthenticationFilter extends BasicAuthenticationFilter {
//如果不是超级管理员 则鉴权
if (!authUser.getIsSuper()) {
if (Boolean.FALSE.equals(authUser.getIsSuper())) {
//获取缓存中的权限
Map<String, List<String>> permission =
(Map<String, List<String>>) cache.get(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.STORE) + authUser.getId());