|
|
@@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import shop.alien.entity.result.R;
|
|
|
@@ -26,7 +25,6 @@ import shop.alien.store.service.StoreMenuService;
|
|
|
import java.util.Comparator;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
-import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -35,7 +33,6 @@ import java.util.stream.Collectors;
|
|
|
* @author ssk
|
|
|
* @since 2024-12-05
|
|
|
*/
|
|
|
-@Slf4j
|
|
|
@Service
|
|
|
@RequiredArgsConstructor
|
|
|
public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu> implements StoreMenuService {
|
|
|
@@ -51,52 +48,33 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
|
|
|
/**
|
|
|
* 获取门店菜单
|
|
|
*
|
|
|
- * @param storeId 门店id
|
|
|
- * @param dishType 菜品类型, 0:非推荐, 1:推荐
|
|
|
- * @param phoneId 消息标识
|
|
|
- * @param dishMenuType 菜单类型:1-菜单,2-酒水
|
|
|
+ * @param storeId 门店id
|
|
|
+ * @param dishType 菜品类型, 0:菜单, 1:推荐
|
|
|
+ * @param phoneId 消息标识
|
|
|
* @return list
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<StoreMenuVo> getStoreMenu(Integer storeId, Integer dishType, String phoneId, Integer dishMenuType) {
|
|
|
- // 查询菜单列表
|
|
|
- Integer queryDishType = (dishType != null && dishType == 0) ? null : dishType;
|
|
|
- List<StoreMenuVo> menuList = storeMenuMapper.getStoreMenuList(storeId, queryDishType, dishMenuType);
|
|
|
+ public List<StoreMenuVo> getStoreMenu(Integer storeId, Integer dishType, String phoneId) {
|
|
|
|
|
|
- // 如果是推荐菜且有用户标识,批量查询点赞状态
|
|
|
- if (dishType != null && dishType == 1 && StringUtils.isNotEmpty(phoneId)
|
|
|
- && CollectionUtils.isNotEmpty(menuList)) {
|
|
|
- // 将菜单ID转换为String集合,用于查询点赞记录
|
|
|
- Set<String> menuIdStrSet = menuList.stream()
|
|
|
- .map(item -> String.valueOf(item.getId()))
|
|
|
- .collect(Collectors.toSet());
|
|
|
-
|
|
|
- // 批量查询点赞记录
|
|
|
- LambdaQueryWrapper<LifeLikeRecord> likeQuery = new LambdaQueryWrapper<>();
|
|
|
- likeQuery.eq(LifeLikeRecord::getDianzanId, phoneId)
|
|
|
- .in(LifeLikeRecord::getHuifuId, menuIdStrSet);
|
|
|
- List<LifeLikeRecord> likeRecordList = lifeLikeRecordMapper.selectList(likeQuery);
|
|
|
-
|
|
|
- // 构建已点赞的菜单ID集合
|
|
|
- Set<String> likedMenuIdSet = likeRecordList.stream()
|
|
|
- .map(LifeLikeRecord::getHuifuId)
|
|
|
- .collect(Collectors.toSet());
|
|
|
-
|
|
|
- // 设置点赞状态
|
|
|
- menuList.forEach(item -> {
|
|
|
- String menuIdStr = String.valueOf(item.getId());
|
|
|
- if (likedMenuIdSet.contains(menuIdStr)) {
|
|
|
- item.setIsLike(1);
|
|
|
- } else {
|
|
|
- item.setIsLike(0);
|
|
|
+ if (dishType == 0) {
|
|
|
+ List<StoreMenuVo> collect = storeMenuMapper.getStoreMenuList(storeId, null);
|
|
|
+ return collect.stream().sorted(Comparator.comparing(StoreMenuVo::getSort)).collect(Collectors.toList());
|
|
|
+ } else {
|
|
|
+ List<StoreMenuVo> collect = storeMenuMapper.getStoreMenuList(storeId, dishType);
|
|
|
+ collect.forEach(item -> {
|
|
|
+ if (StringUtils.isNotEmpty(phoneId)) {
|
|
|
+ LambdaQueryWrapper<LifeLikeRecord> query = new LambdaQueryWrapper<>();
|
|
|
+ query.eq(LifeLikeRecord::getDianzanId, phoneId).eq(LifeLikeRecord::getHuifuId, item.getId());
|
|
|
+ Integer i = lifeLikeRecordMapper.selectCount(query);
|
|
|
+ if (i > 0) {
|
|
|
+ item.setIsLike(1);
|
|
|
+ } else {
|
|
|
+ item.setIsLike(0);
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
+ return collect.stream().sorted(Comparator.comparing(StoreMenuVo::getSort)).collect(Collectors.toList());
|
|
|
}
|
|
|
-
|
|
|
- // 按排序字段排序
|
|
|
- return menuList.stream()
|
|
|
- .sorted(Comparator.comparing(StoreMenuVo::getSort))
|
|
|
- .collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -220,7 +198,7 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
|
|
|
boolean flag = false;
|
|
|
if (CollectionUtil.isNotEmpty(storeMenuVo.getSortList())) {
|
|
|
for (int i = 0; i < storeMenuVo.getSortList().size(); i++) {
|
|
|
- LambdaQueryWrapper<StoreMenu> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ LambdaQueryWrapper<StoreMenu> lambdaQueryWrapper = new LambdaQueryWrapper();
|
|
|
lambdaQueryWrapper.eq(StoreMenu::getId, storeMenuVo.getSortList().get(i).getId());
|
|
|
StoreMenu storeMenu = this.getOne(lambdaQueryWrapper);
|
|
|
storeMenu.setSort(i + 1);
|
|
|
@@ -243,7 +221,7 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public R<String> deleteMenu(List<Integer> ids, int dishType) {
|
|
|
+ public R deleteMenu(List<Integer> ids, int dishType) {
|
|
|
QueryWrapper<StoreMenu> queryWrapperMenu = new QueryWrapper<>();
|
|
|
boolean flag = false;
|
|
|
if (dishType == 0) {
|