管理端商品上下架问题处理

This commit is contained in:
Chopper 2021-12-21 14:47:39 +08:00
parent 7572e8d56f
commit bfa960d803
3 changed files with 70 additions and 8 deletions

View File

@ -103,6 +103,15 @@ public interface GoodsService extends IService<Goods> {
*/
Boolean updateGoodsMarketAble(List<String> goodsIds, GoodsStatusEnum goodsStatusEnum, String underReason);
/**
* 更新商品上架状态状态
*
* @param goodsIds 商品ID集合
* @param goodsStatusEnum 更新的商品状态
* @param underReason 下架原因
* @return 更新结果
*/
Boolean managerUpdateGoodsMarketAble(List<String> goodsIds, GoodsStatusEnum goodsStatusEnum, String underReason);
/**
* 删除商品
*

View File

@ -298,6 +298,34 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
return result;
}
@Override
public Boolean managerUpdateGoodsMarketAble(List<String> goodsIds, GoodsStatusEnum goodsStatusEnum, String underReason) {
boolean result;
//如果商品为空直接返回
if (goodsIds == null || goodsIds.isEmpty()) {
return true;
}
//检测管理员权限
this.checkManagerAuthority();
LambdaUpdateWrapper<Goods> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(Goods::getMarketEnable, goodsStatusEnum.name());
updateWrapper.set(Goods::getUnderMessage, underReason);
updateWrapper.in(Goods::getId, goodsIds);
result = this.update(updateWrapper);
//修改规格商品
LambdaQueryWrapper<Goods> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(Goods::getId, goodsIds);
List<Goods> goodsList = this.list(queryWrapper);
for (Goods goods : goodsList) {
goodsSkuService.updateGoodsSkuStatus(goods);
}
return result;
}
@Override
public Boolean deleteGoods(List<String> goodsIds) {
@ -475,6 +503,20 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
return goods;
}
/**
* 获取UpdateWrapper检查用户越权
*
* @return updateWrapper
*/
private LambdaUpdateWrapper<Goods> getUpdateWrapperByStoreAuthority() {
LambdaUpdateWrapper<Goods> updateWrapper = new LambdaUpdateWrapper<>();
AuthUser authUser = this.checkStoreAuthority();
updateWrapper.eq(Goods::getStoreId, authUser.getStoreId());
return updateWrapper;
}
/**
* 检查当前登录的店铺
*
@ -490,17 +532,30 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
}
}
/**
* 检查当前登录的店铺
*
* @return 当前登录的店铺
*/
private AuthUser checkManagerAuthority() {
AuthUser currentUser = UserContext.getCurrentUser();
//如果当前会员不为空且为店铺角色
if (currentUser != null && (currentUser.getRole().equals(UserEnums.MANAGER))) {
return currentUser;
} else {
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
}
}
/**
* 获取UpdateWrapper检查用户越权
*
* @return updateWrapper
*/
private LambdaUpdateWrapper<Goods> getUpdateWrapperByStoreAuthority() {
private LambdaUpdateWrapper<Goods> getUpdateWrapperByManagerAuthority() {
LambdaUpdateWrapper<Goods> updateWrapper = new LambdaUpdateWrapper<>();
AuthUser authUser = this.checkStoreAuthority();
if (authUser != null) {
updateWrapper.eq(Goods::getStoreId, authUser.getStoreId());
}
updateWrapper.eq(Goods::getStoreId, authUser.getStoreId());
return updateWrapper;
}
@ -512,9 +567,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
private LambdaQueryWrapper<Goods> getQueryWrapperByStoreAuthority() {
LambdaQueryWrapper<Goods> queryWrapper = new LambdaQueryWrapper<>();
AuthUser authUser = this.checkStoreAuthority();
if (authUser != null) {
queryWrapper.eq(Goods::getStoreId, authUser.getStoreId());
}
queryWrapper.eq(Goods::getStoreId, authUser.getStoreId());
return queryWrapper;
}

View File

@ -73,7 +73,7 @@ public class GoodsManagerController {
@PutMapping(value = "/{goodsId}/under")
public ResultMessage<Object> underGoods(@PathVariable String goodsId, @NotEmpty(message = "下架原因不能为空") @RequestParam String reason) {
List<String> goodsIds = Arrays.asList(goodsId.split(","));
if (Boolean.TRUE.equals(goodsService.updateGoodsMarketAble(goodsIds, GoodsStatusEnum.DOWN, reason))) {
if (Boolean.TRUE.equals(goodsService.managerUpdateGoodsMarketAble(goodsIds, GoodsStatusEnum.DOWN, reason))) {
return ResultUtil.success();
}
throw new ServiceException(ResultCode.GOODS_UNDER_ERROR);