店铺收藏/商品收藏问题处理优化
This commit is contained in:
parent
71e51b3b6f
commit
0e7665f59d
@ -25,6 +25,7 @@ import cn.lili.modules.goods.service.GoodsService;
|
|||||||
import cn.lili.modules.goods.service.GoodsSkuService;
|
import cn.lili.modules.goods.service.GoodsSkuService;
|
||||||
import cn.lili.modules.member.entity.dos.FootPrint;
|
import cn.lili.modules.member.entity.dos.FootPrint;
|
||||||
import cn.lili.modules.member.entity.dos.MemberEvaluation;
|
import cn.lili.modules.member.entity.dos.MemberEvaluation;
|
||||||
|
import cn.lili.modules.member.entity.dto.CollectionDTO;
|
||||||
import cn.lili.modules.member.service.FootprintService;
|
import cn.lili.modules.member.service.FootprintService;
|
||||||
import cn.lili.modules.member.service.GoodsCollectionService;
|
import cn.lili.modules.member.service.GoodsCollectionService;
|
||||||
import cn.lili.modules.search.entity.dos.EsGoodsIndex;
|
import cn.lili.modules.search.entity.dos.EsGoodsIndex;
|
||||||
@ -198,10 +199,6 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
List<String> skuIds = JSONUtil.toList(message, String.class);
|
List<String> skuIds = JSONUtil.toList(message, String.class);
|
||||||
goodsCollectionService.deleteSkuCollection(skuIds);
|
goodsCollectionService.deleteSkuCollection(skuIds);
|
||||||
break;
|
break;
|
||||||
//收藏商品
|
|
||||||
case GOODS_COLLECTION:
|
|
||||||
storeService.updateStoreCollectionNum(new String(messageExt.getBody()));
|
|
||||||
break;
|
|
||||||
//商品评价
|
//商品评价
|
||||||
case GOODS_COMMENT_COMPLETE:
|
case GOODS_COMMENT_COMPLETE:
|
||||||
MemberEvaluation memberEvaluation = JSONUtil.toBean(new String(messageExt.getBody()), MemberEvaluation.class);
|
MemberEvaluation memberEvaluation = JSONUtil.toBean(new String(messageExt.getBody()), MemberEvaluation.class);
|
||||||
|
@ -6,6 +6,7 @@ import cn.lili.modules.goods.entity.dto.GoodsSearchParams;
|
|||||||
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
|
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
|
||||||
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
|
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
|
||||||
import cn.lili.modules.goods.entity.vos.GoodsVO;
|
import cn.lili.modules.goods.entity.vos.GoodsVO;
|
||||||
|
import cn.lili.modules.member.entity.dto.CollectionDTO;
|
||||||
import cn.lili.modules.store.entity.dos.Store;
|
import cn.lili.modules.store.entity.dos.Store;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
@ -155,4 +156,5 @@ public interface GoodsService extends IService<Goods> {
|
|||||||
* @param store
|
* @param store
|
||||||
*/
|
*/
|
||||||
void updateStoreDetail(Store store);
|
void updateStoreDetail(Store store);
|
||||||
|
|
||||||
}
|
}
|
@ -27,6 +27,7 @@ import cn.lili.modules.goods.entity.vos.GoodsVO;
|
|||||||
import cn.lili.modules.goods.mapper.GoodsMapper;
|
import cn.lili.modules.goods.mapper.GoodsMapper;
|
||||||
import cn.lili.modules.goods.service.*;
|
import cn.lili.modules.goods.service.*;
|
||||||
import cn.lili.modules.member.entity.dos.MemberEvaluation;
|
import cn.lili.modules.member.entity.dos.MemberEvaluation;
|
||||||
|
import cn.lili.modules.member.entity.dto.CollectionDTO;
|
||||||
import cn.lili.modules.member.entity.enums.EvaluationGradeEnum;
|
import cn.lili.modules.member.entity.enums.EvaluationGradeEnum;
|
||||||
import cn.lili.modules.member.service.MemberEvaluationService;
|
import cn.lili.modules.member.service.MemberEvaluationService;
|
||||||
import cn.lili.modules.store.entity.dos.FreightTemplate;
|
import cn.lili.modules.store.entity.dos.FreightTemplate;
|
||||||
|
@ -0,0 +1,28 @@
|
|||||||
|
package cn.lili.modules.member.entity.dto;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收藏数量变化DTO
|
||||||
|
*
|
||||||
|
* @author Chopper
|
||||||
|
* @version v1.0
|
||||||
|
* 2021-11-30 10:14
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class CollectionDTO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变化的模型id
|
||||||
|
* 商品id/店铺id
|
||||||
|
*/
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变化的数量
|
||||||
|
* -1 减少1 / +1 增加1
|
||||||
|
*/
|
||||||
|
private Integer num;
|
||||||
|
}
|
@ -3,6 +3,7 @@ package cn.lili.modules.member.serviceimpl;
|
|||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultCode;
|
||||||
import cn.lili.common.exception.ServiceException;
|
import cn.lili.common.exception.ServiceException;
|
||||||
|
import cn.lili.modules.member.entity.dto.CollectionDTO;
|
||||||
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
|
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
|
||||||
import cn.lili.rocketmq.tags.GoodsTagsEnum;
|
import cn.lili.rocketmq.tags.GoodsTagsEnum;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
@ -73,10 +74,6 @@ public class GoodsCollectionServiceImpl extends ServiceImpl<GoodsCollectionMappe
|
|||||||
goodsCollection = new GoodsCollection(UserContext.getCurrentUser().getId(), skuId);
|
goodsCollection = new GoodsCollection(UserContext.getCurrentUser().getId(), skuId);
|
||||||
|
|
||||||
this.save(goodsCollection);
|
this.save(goodsCollection);
|
||||||
//商品收藏消息
|
|
||||||
String destination = rocketmqCustomProperties.getGoodsTopic() + ":" + GoodsTagsEnum.GOODS_COLLECTION.name();
|
|
||||||
//发送mq消息
|
|
||||||
rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(skuId), RocketmqSendCallbackBuilder.commonCallback());
|
|
||||||
return goodsCollection;
|
return goodsCollection;
|
||||||
}
|
}
|
||||||
throw new ServiceException(ResultCode.USER_COLLECTION_EXIST);
|
throw new ServiceException(ResultCode.USER_COLLECTION_EXIST);
|
||||||
|
@ -3,6 +3,8 @@ package cn.lili.modules.member.serviceimpl;
|
|||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultCode;
|
||||||
import cn.lili.common.exception.ServiceException;
|
import cn.lili.common.exception.ServiceException;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
|
import cn.lili.modules.member.entity.dto.CollectionDTO;
|
||||||
|
import cn.lili.modules.store.service.StoreService;
|
||||||
import cn.lili.mybatis.util.PageUtil;
|
import cn.lili.mybatis.util.PageUtil;
|
||||||
import cn.lili.common.vo.PageVO;
|
import cn.lili.common.vo.PageVO;
|
||||||
import cn.lili.modules.member.entity.dos.StoreCollection;
|
import cn.lili.modules.member.entity.dos.StoreCollection;
|
||||||
@ -13,6 +15,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@ -26,6 +29,10 @@ import java.util.Optional;
|
|||||||
@Service
|
@Service
|
||||||
public class StoreCollectionServiceImpl extends ServiceImpl<StoreCollectionMapper, StoreCollection> implements StoreCollectionService {
|
public class StoreCollectionServiceImpl extends ServiceImpl<StoreCollectionMapper, StoreCollection> implements StoreCollectionService {
|
||||||
|
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private StoreService storeService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<StoreCollectionVO> storeCollection(PageVO pageVo) {
|
public IPage<StoreCollectionVO> storeCollection(PageVO pageVo) {
|
||||||
QueryWrapper<StoreCollectionVO> queryWrapper = new QueryWrapper();
|
QueryWrapper<StoreCollectionVO> queryWrapper = new QueryWrapper();
|
||||||
@ -49,6 +56,7 @@ public class StoreCollectionServiceImpl extends ServiceImpl<StoreCollectionMappe
|
|||||||
.eq(StoreCollection::getStoreId, storeId)) == null) {
|
.eq(StoreCollection::getStoreId, storeId)) == null) {
|
||||||
StoreCollection storeCollection = new StoreCollection(UserContext.getCurrentUser().getId(), storeId);
|
StoreCollection storeCollection = new StoreCollection(UserContext.getCurrentUser().getId(), storeId);
|
||||||
this.save(storeCollection);
|
this.save(storeCollection);
|
||||||
|
storeService.updateStoreCollectionNum(new CollectionDTO(storeId, 1));
|
||||||
return storeCollection;
|
return storeCollection;
|
||||||
}
|
}
|
||||||
throw new ServiceException(ResultCode.USER_COLLECTION_EXIST);
|
throw new ServiceException(ResultCode.USER_COLLECTION_EXIST);
|
||||||
@ -59,6 +67,7 @@ public class StoreCollectionServiceImpl extends ServiceImpl<StoreCollectionMappe
|
|||||||
QueryWrapper<StoreCollection> queryWrapper = new QueryWrapper();
|
QueryWrapper<StoreCollection> queryWrapper = new QueryWrapper();
|
||||||
queryWrapper.eq("member_id", UserContext.getCurrentUser().getId());
|
queryWrapper.eq("member_id", UserContext.getCurrentUser().getId());
|
||||||
queryWrapper.eq("store_id", storeId);
|
queryWrapper.eq("store_id", storeId);
|
||||||
|
storeService.updateStoreCollectionNum(new CollectionDTO(storeId, -1));
|
||||||
return this.remove(queryWrapper);
|
return this.remove(queryWrapper);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
import org.apache.ibatis.annotations.Update;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 店铺数据处理层
|
* 店铺数据处理层
|
||||||
@ -37,4 +38,13 @@ public interface StoreMapper extends BaseMapper<Store> {
|
|||||||
IPage<StoreVO> getStoreList(IPage<StoreVO> page, @Param(Constants.WRAPPER) Wrapper<StoreVO> queryWrapper);
|
IPage<StoreVO> getStoreList(IPage<StoreVO> page, @Param(Constants.WRAPPER) Wrapper<StoreVO> queryWrapper);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改店铺收藏数据
|
||||||
|
*
|
||||||
|
* @param storeId 店铺id
|
||||||
|
* @param num 收藏数量
|
||||||
|
*/
|
||||||
|
@Update("update li_store set collection_num = collection_num + #{num} where id = #{storeId}")
|
||||||
|
void updateCollection(String storeId, Integer num);
|
||||||
|
|
||||||
}
|
}
|
@ -1,6 +1,7 @@
|
|||||||
package cn.lili.modules.store.service;
|
package cn.lili.modules.store.service;
|
||||||
|
|
||||||
import cn.lili.common.vo.PageVO;
|
import cn.lili.common.vo.PageVO;
|
||||||
|
import cn.lili.modules.member.entity.dto.CollectionDTO;
|
||||||
import cn.lili.modules.store.entity.dos.Store;
|
import cn.lili.modules.store.entity.dos.Store;
|
||||||
import cn.lili.modules.store.entity.dto.*;
|
import cn.lili.modules.store.entity.dto.*;
|
||||||
import cn.lili.modules.store.entity.vos.StoreSearchParams;
|
import cn.lili.modules.store.entity.vos.StoreSearchParams;
|
||||||
@ -132,7 +133,7 @@ public interface StoreService extends IService<Store> {
|
|||||||
/**
|
/**
|
||||||
* 更新店铺收藏数量
|
* 更新店铺收藏数量
|
||||||
*
|
*
|
||||||
* @param goodsId 店铺ID
|
* @param collectionDTO 收藏信息
|
||||||
*/
|
*/
|
||||||
void updateStoreCollectionNum(String goodsId);
|
void updateStoreCollectionNum(CollectionDTO collectionDTO);
|
||||||
}
|
}
|
@ -16,6 +16,7 @@ import cn.lili.modules.goods.service.GoodsService;
|
|||||||
import cn.lili.modules.goods.service.GoodsSkuService;
|
import cn.lili.modules.goods.service.GoodsSkuService;
|
||||||
import cn.lili.modules.member.entity.dos.Member;
|
import cn.lili.modules.member.entity.dos.Member;
|
||||||
import cn.lili.modules.member.entity.dos.StoreCollection;
|
import cn.lili.modules.member.entity.dos.StoreCollection;
|
||||||
|
import cn.lili.modules.member.entity.dto.CollectionDTO;
|
||||||
import cn.lili.modules.member.service.MemberService;
|
import cn.lili.modules.member.service.MemberService;
|
||||||
import cn.lili.modules.member.service.StoreCollectionService;
|
import cn.lili.modules.member.service.StoreCollectionService;
|
||||||
import cn.lili.modules.page.service.PageDataService;
|
import cn.lili.modules.page.service.PageDataService;
|
||||||
@ -319,15 +320,8 @@ public class StoreServiceImpl extends ServiceImpl<StoreMapper, Store> implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateStoreCollectionNum(String goodsId) {
|
public void updateStoreCollectionNum(CollectionDTO collectionDTO) {
|
||||||
String storeId = goodsSkuService.getById(goodsId).getStoreId();
|
baseMapper.updateCollection(collectionDTO.getId(), collectionDTO.getNum());
|
||||||
//获取店铺收藏数量
|
|
||||||
Integer collectionNum = storeCollectionService.count(new LambdaQueryWrapper<StoreCollection>()
|
|
||||||
.eq(StoreCollection::getStoreId, storeId));
|
|
||||||
//修改店铺收藏数量
|
|
||||||
this.update(new LambdaUpdateWrapper<Store>()
|
|
||||||
.set(Store::getCollectionNum, collectionNum)
|
|
||||||
.eq(Store::getId, storeId));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user