|
@@ -1,22 +1,28 @@
|
|
package shop.alien.store.service.impl;
|
|
package shop.alien.store.service.impl;
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
|
+import com.alibaba.nacos.common.utils.CollectionUtils;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
|
+import org.springframework.cache.annotation.CacheEvict;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import shop.alien.entity.result.R;
|
|
import shop.alien.entity.result.R;
|
|
|
|
+import shop.alien.entity.store.LifeClassManage;
|
|
import shop.alien.entity.store.LifeLikeRecord;
|
|
import shop.alien.entity.store.LifeLikeRecord;
|
|
|
|
+import shop.alien.entity.store.StoreImg;
|
|
import shop.alien.entity.store.StoreMenu;
|
|
import shop.alien.entity.store.StoreMenu;
|
|
import shop.alien.entity.store.vo.StoreMenuVo;
|
|
import shop.alien.entity.store.vo.StoreMenuVo;
|
|
import shop.alien.mapper.LifeLikeRecordMapper;
|
|
import shop.alien.mapper.LifeLikeRecordMapper;
|
|
import shop.alien.mapper.StoreMenuMapper;
|
|
import shop.alien.mapper.StoreMenuMapper;
|
|
|
|
+import shop.alien.store.service.StoreImgService;
|
|
import shop.alien.store.service.StoreMenuService;
|
|
import shop.alien.store.service.StoreMenuService;
|
|
|
|
|
|
-import java.util.Comparator;
|
|
|
|
-import java.util.List;
|
|
|
|
|
|
+import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -33,6 +39,9 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
|
|
|
|
|
|
private final LifeLikeRecordMapper lifeLikeRecordMapper;
|
|
private final LifeLikeRecordMapper lifeLikeRecordMapper;
|
|
|
|
|
|
|
|
+ private final StoreImgService storeImgService;
|
|
|
|
+
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 获取门店菜单
|
|
* 获取门店菜单
|
|
*
|
|
*
|
|
@@ -43,6 +52,7 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public List<StoreMenuVo> getStoreMenu(Integer storeId, Integer dishType, String phoneId) {
|
|
public List<StoreMenuVo> getStoreMenu(Integer storeId, Integer dishType, String phoneId) {
|
|
|
|
+
|
|
if(dishType == 0){
|
|
if(dishType == 0){
|
|
List<StoreMenuVo> collect = storeMenuMapper.getStoreMenuList(storeId, null);
|
|
List<StoreMenuVo> collect = storeMenuMapper.getStoreMenuList(storeId, null);
|
|
return collect.stream().sorted(Comparator.comparing(StoreMenuVo::getSort)).collect(Collectors.toList());
|
|
return collect.stream().sorted(Comparator.comparing(StoreMenuVo::getSort)).collect(Collectors.toList());
|
|
@@ -60,7 +70,7 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
});
|
|
- return collect.stream().sorted(Comparator.comparing(StoreMenuVo::getImgSort)).collect(Collectors.toList());
|
|
|
|
|
|
+ return collect.stream().sorted(Comparator.comparing(StoreMenuVo::getSort)).collect(Collectors.toList());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -114,6 +124,66 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
+ * 新增或修改门店菜品new
|
|
|
|
+ * @param storeMenuVo
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public R<String> saveOrUpdateMenus(StoreMenuVo storeMenuVo) {
|
|
|
|
+ boolean flag = false;
|
|
|
|
+ LambdaQueryWrapper<StoreMenu> storeMenuLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ int imgId = 0;
|
|
|
|
+ if (storeMenuVo.getImgId() == null ||storeMenuVo.getImgId() == 0) {
|
|
|
|
+ StoreImg storeImg = new StoreImg();
|
|
|
|
+ storeImg.setStoreId(storeMenuVo.getStoreId());
|
|
|
|
+ storeImg.setImgType(7);
|
|
|
|
+ storeImg.setImgUrl(storeMenuVo.getImgUrl());
|
|
|
|
+ storeImg.setImgDescription(storeMenuVo.getDishName());
|
|
|
|
+ storeImgService.saveOrUpdate(storeImg);
|
|
|
|
+ imgId = storeImg.getId();
|
|
|
|
+ } else {
|
|
|
|
+ imgId = storeMenuVo.getImgId();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 封装storeMenu参数
|
|
|
|
+ StoreMenu storeMenu = new StoreMenu();
|
|
|
|
+ BeanUtils.copyProperties(storeMenuVo,storeMenu);
|
|
|
|
+ storeMenu.setImgId(imgId);
|
|
|
|
+
|
|
|
|
+ //修改菜品
|
|
|
|
+ if(storeMenu.getId()!=null){
|
|
|
|
+ flag = this.updateById(storeMenu);
|
|
|
|
+ if(!flag){
|
|
|
|
+ log.error("菜单修改失败");
|
|
|
|
+ return R.fail("菜单修改失败");
|
|
|
|
+ }
|
|
|
|
+ return R.success("菜单修改成功");
|
|
|
|
+ } else {
|
|
|
|
+ //新增菜品
|
|
|
|
+ // 校验菜品参数
|
|
|
|
+ if(StringUtils.isEmpty(storeMenu.getDishName())){
|
|
|
|
+ return R.fail("请输入菜品名称");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ storeMenuLambdaQueryWrapper.eq(StoreMenu::getStoreId,storeMenu.getStoreId());
|
|
|
|
+ List<StoreMenu> menuList = this.list(storeMenuLambdaQueryWrapper);
|
|
|
|
+ if(CollectionUtil.isNotEmpty(menuList)){
|
|
|
|
+ int maxSort = menuList.stream().map(StoreMenu::getSort).reduce(Integer::max).get();
|
|
|
|
+ storeMenu.setSort(maxSort+1);
|
|
|
|
+ }else{
|
|
|
|
+ storeMenu.setSort(1);
|
|
|
|
+ }
|
|
|
|
+ //保存菜品
|
|
|
|
+ flag = this.save(storeMenu);
|
|
|
|
+ if(!flag){
|
|
|
|
+ return R.fail("菜品新增失败");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return R.success("新增菜品成功");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
* 菜品排序信息
|
|
* 菜品排序信息
|
|
* @param storeMenuVo
|
|
* @param storeMenuVo
|
|
* @return
|
|
* @return
|
|
@@ -133,6 +203,11 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
|
|
return flag;
|
|
return flag;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public Boolean saveMenuSort(List<StoreMenu> storeMenuList) {
|
|
|
|
+ return this.updateBatchById(storeMenuList);
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 删除菜品或推荐菜 根据类型区分
|
|
* 删除菜品或推荐菜 根据类型区分
|
|
* @param ids
|
|
* @param ids
|
|
@@ -156,4 +231,28 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
|
|
}
|
|
}
|
|
return flag;
|
|
return flag;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public StoreMenuVo getMenuCountByStoreId(int storeId) {
|
|
|
|
+ StoreMenuVo storeMenuVo = new StoreMenuVo();
|
|
|
|
+ LambdaUpdateWrapper<StoreMenu> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
|
+ updateWrapper.eq(StoreMenu::getStoreId, storeId);
|
|
|
|
+ updateWrapper.eq(StoreMenu::getDeleteFlag, 0);
|
|
|
|
+ List<StoreMenu> storeMenuList = storeMenuMapper.selectList(updateWrapper);
|
|
|
|
+ if(CollectionUtils.isNotEmpty(storeMenuList)) {
|
|
|
|
+ storeMenuVo.setMenuCount(storeMenuList.size());
|
|
|
|
+ Map<Integer, List<StoreMenu>> groupByDishType = storeMenuList.stream()
|
|
|
|
+ .collect(Collectors.groupingBy(StoreMenu::getDishType));
|
|
|
|
+ List<StoreMenu> suggestList = groupByDishType.get(1);
|
|
|
|
+ if(CollectionUtils.isNotEmpty(suggestList)) {
|
|
|
|
+ storeMenuVo.setSuggestCount(suggestList.size());
|
|
|
|
+ } else {
|
|
|
|
+ storeMenuVo.setSuggestCount(0);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ storeMenuVo.setMenuCount(0);
|
|
|
|
+ storeMenuVo.setSuggestCount(0);
|
|
|
|
+ }
|
|
|
|
+ return storeMenuVo;
|
|
|
|
+ }
|
|
}
|
|
}
|