|
@@ -1,14 +1,23 @@
|
|
package com.chelvc.cloud.vehicle.server.service.impl;
|
|
package com.chelvc.cloud.vehicle.server.service.impl;
|
|
|
|
|
|
|
|
+import java.util.Collections;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
|
+import java.util.List;
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.chelvc.cloud.vehicle.api.constant.FavoriteType;
|
|
import com.chelvc.cloud.vehicle.api.constant.FavoriteType;
|
|
|
|
+import com.chelvc.cloud.vehicle.api.constant.UserCouponStatus;
|
|
|
|
+import com.chelvc.cloud.vehicle.api.dto.FavoriteDTO;
|
|
import com.chelvc.cloud.vehicle.api.dto.MerchantDTO;
|
|
import com.chelvc.cloud.vehicle.api.dto.MerchantDTO;
|
|
import com.chelvc.cloud.vehicle.api.param.FavoritePagingParam;
|
|
import com.chelvc.cloud.vehicle.api.param.FavoritePagingParam;
|
|
|
|
+import com.chelvc.cloud.vehicle.api.param.FavoriteQueryParam;
|
|
|
|
+import com.chelvc.cloud.vehicle.server.copier.FavoriteCopier;
|
|
|
|
+import com.chelvc.cloud.vehicle.server.copier.UserCouponCopier;
|
|
import com.chelvc.cloud.vehicle.server.dao.FavoriteMapper;
|
|
import com.chelvc.cloud.vehicle.server.dao.FavoriteMapper;
|
|
import com.chelvc.cloud.vehicle.server.entity.Favorite;
|
|
import com.chelvc.cloud.vehicle.server.entity.Favorite;
|
|
|
|
+import com.chelvc.cloud.vehicle.server.entity.UserCoupon;
|
|
import com.chelvc.cloud.vehicle.server.service.FavoriteService;
|
|
import com.chelvc.cloud.vehicle.server.service.FavoriteService;
|
|
import com.chelvc.framework.base.context.SessionContextHolder;
|
|
import com.chelvc.framework.base.context.SessionContextHolder;
|
|
import com.chelvc.framework.base.model.Session;
|
|
import com.chelvc.framework.base.model.Session;
|
|
@@ -16,6 +25,7 @@ import com.chelvc.framework.base.util.ResourceUtils;
|
|
import com.chelvc.framework.common.model.Pagination;
|
|
import com.chelvc.framework.common.model.Pagination;
|
|
import lombok.NonNull;
|
|
import lombok.NonNull;
|
|
import org.apache.dubbo.config.annotation.DubboService;
|
|
import org.apache.dubbo.config.annotation.DubboService;
|
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 用户收藏业务操作实现
|
|
* 用户收藏业务操作实现
|
|
@@ -28,10 +38,15 @@ public class FavoriteServiceImpl extends ServiceImpl<FavoriteMapper, Favorite> i
|
|
com.chelvc.cloud.vehicle.api.service.FavoriteService {
|
|
com.chelvc.cloud.vehicle.api.service.FavoriteService {
|
|
@Override
|
|
@Override
|
|
public Long addMerchantFavorite(@NonNull Long merchantId) {
|
|
public Long addMerchantFavorite(@NonNull Long merchantId) {
|
|
- Favorite favorite = Favorite.builder().userId(SessionContextHolder.getId()).type(FavoriteType.MERCHANT)
|
|
|
|
|
|
+ Long userId = SessionContextHolder.getId();
|
|
|
|
+ Integer count = this.lambdaQuery()
|
|
|
|
+ .eq(Favorite::getUserId, userId)
|
|
|
|
+ .eq(Favorite::getType, FavoriteType.MERCHANT)
|
|
|
|
+ .eq(Favorite::getContentId, merchantId).count();
|
|
|
|
+ ResourceUtils.available(count <= 0, "收藏信息已存在");
|
|
|
|
+ Favorite favorite = Favorite.builder().userId(userId).type(FavoriteType.MERCHANT)
|
|
.contentId(merchantId).createTime(new Date()).build();
|
|
.contentId(merchantId).createTime(new Date()).build();
|
|
- boolean success = this.baseMapper.createOrIgnore(favorite);
|
|
|
|
- ResourceUtils.available(success, "收藏信息已存在");
|
|
|
|
|
|
+ this.baseMapper.saveFavorite(favorite);
|
|
return favorite.getId();
|
|
return favorite.getId();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -44,7 +59,23 @@ public class FavoriteServiceImpl extends ServiceImpl<FavoriteMapper, Favorite> i
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Pagination<MerchantDTO> getFavoriteMerchantPaging(FavoritePagingParam param) {
|
|
public Pagination<MerchantDTO> getFavoriteMerchantPaging(FavoritePagingParam param) {
|
|
- Session session = SessionContextHolder.getSession();
|
|
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<FavoriteDTO> listFavoriteMerchants(@NonNull FavoriteQueryParam param) {
|
|
|
|
+ Long userId = SessionContextHolder.getId();
|
|
|
|
+ List<Favorite> favorites = this.baseMapper.listFavoriteMerchants(userId, param);
|
|
|
|
+ if (CollectionUtils.isEmpty(favorites)) {
|
|
|
|
+ return Collections.emptyList();
|
|
|
|
+ }
|
|
|
|
+ return favorites
|
|
|
|
+ .stream()
|
|
|
|
+ .map(o -> {
|
|
|
|
+ FavoriteDTO favoriteDTO = FavoriteCopier.INSTANCE.copying(o);
|
|
|
|
+ favoriteDTO.setMerchant(o.getMerchant());
|
|
|
|
+ return favoriteDTO;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ }
|
|
}
|
|
}
|