123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- package com.miaxis.collection.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.miaxis.collection.domain.CollectionInfo;
- import com.miaxis.collection.mapper.CollectionInfoMapper;
- import com.miaxis.collection.service.ICollectionInfoService;
- import com.miaxis.collection.strategy.BaseStrategy;
- import com.miaxis.collection.vo.AppletCollectionVo;
- import com.miaxis.common.core.domain.Response;
- import com.miaxis.common.core.domain.entity.UserInfo;
- import com.miaxis.common.exception.CustomException;
- import com.miaxis.common.strategy.StrategyManager;
- import lombok.RequiredArgsConstructor;
- import lombok.SneakyThrows;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- /**
- * @Author wwl
- * @Date 2021/3/15
- * @Version 1.0
- */
- @Service
- @RequiredArgsConstructor
- public class CollectionInfoServiceImpl extends ServiceImpl<CollectionInfoMapper, CollectionInfo> implements ICollectionInfoService {
- private final CollectionInfoMapper collectionInfoMapper;
- /**
- * 查询用户收藏列表
- *
- * @param userInfo
- * @param collectionType
- * @return
- */
- @Override
- @SneakyThrows
- public Response collectionList(UserInfo userInfo,String collectionType) {
- //返回list
- ArrayList<AppletCollectionVo> collectionVos = new ArrayList<>();
- //根据收藏列表list
- List<CollectionInfo> collectionInfos;
- if ("1".equals(collectionType)){
- collectionInfos = collectionInfoMapper
- .selectList(new QueryWrapper<CollectionInfo>()
- .eq("user_id", userInfo.getId()));
- }else{
- collectionInfos = collectionInfoMapper
- .selectList(new QueryWrapper<CollectionInfo>()
- .eq("user_id", userInfo.getId())
- .eq("collection_type",collectionType));
- }
- for (CollectionInfo collectionInfo : collectionInfos) {
- //获取对应策略
- BaseStrategy baseStrategy = (BaseStrategy) StrategyManager.getInstance().getStrategy(collectionInfo.getCollectionType());
- //策略不存在
- if (baseStrategy == null) continue;
- AppletCollectionVo collectionVo = baseStrategy.getCollectionVo(collectionInfo.getId(),collectionInfo.getCollectionId());
- collectionVos.add(collectionVo);
- }
- return Response.success(collectionVos);
- }
- /**
- * applet
- * 收藏商家
- * @param userInfo 当前用户
- * @param id 商家id
- * @return
- */
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Response collectionBusiness(UserInfo userInfo, Long id) {
- try{
- List<CollectionInfo> infoList = collectionInfoMapper.selectByMap(new HashMap<String, Object>() {{
- put("user_id", userInfo.getId());
- put("customer_id", id);
- }});
- if (infoList.isEmpty()){
- //保存收藏表
- CollectionInfo collectionInfo = new CollectionInfo();
- collectionInfo.setUserId(userInfo.getId());
- collectionInfo.setCollectionId(id);
- collectionInfoMapper.insert(collectionInfo);
- }
- return Response.success();
- }catch (Exception e){
- throw new CustomException("系统异常");
- }
- }
- /**
- * 取消收藏
- * @param userId 当前用户id
- * @param ids 商家id
- * @return
- */
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Response removeCollectionByIds(Long userId, Long[] ids) {
- try{
- for (Long id : ids) {
- collectionInfoMapper.deleteByMap(new HashMap<String, Object>(){{
- put("user_id",userId);
- put("customer_id",id);
- }});
- }
- return Response.success();
- }catch (Exception e){
- throw new CustomException("系统异常");
- }
- }
- /**
- * 通用收藏接口
- * @param userInfo
- * @param id
- * @param collectionType
- * @return
- */
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Response collectionOperation(UserInfo userInfo, Long id, String collectionType) {
- try{
- //保存收藏表
- CollectionInfo collectionInfo = new CollectionInfo();
- collectionInfo.setUserId(userInfo.getId());
- collectionInfo.setCollectionId(id);
- collectionInfo.setCollectionType(collectionType);
- collectionInfoMapper.insert(collectionInfo);
- return Response.success();
- }catch (Exception e){
- throw new CustomException("系统异常");
- }
- }
- }
|