CollectionInfoServiceImpl.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. package com.miaxis.collection.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4. import com.miaxis.collection.domain.CollectionInfo;
  5. import com.miaxis.collection.mapper.CollectionInfoMapper;
  6. import com.miaxis.collection.service.ICollectionInfoService;
  7. import com.miaxis.collection.strategy.BaseStrategy;
  8. import com.miaxis.collection.vo.AppletCollectionVo;
  9. import com.miaxis.common.core.domain.Response;
  10. import com.miaxis.common.core.domain.entity.UserInfo;
  11. import com.miaxis.common.exception.CustomException;
  12. import com.miaxis.common.strategy.StrategyManager;
  13. import lombok.RequiredArgsConstructor;
  14. import lombok.SneakyThrows;
  15. import org.springframework.stereotype.Service;
  16. import org.springframework.transaction.annotation.Transactional;
  17. import java.util.ArrayList;
  18. import java.util.HashMap;
  19. import java.util.List;
  20. /**
  21. * @Author wwl
  22. * @Date 2021/3/15
  23. * @Version 1.0
  24. */
  25. @Service
  26. @RequiredArgsConstructor
  27. public class CollectionInfoServiceImpl extends ServiceImpl<CollectionInfoMapper, CollectionInfo> implements ICollectionInfoService {
  28. private final CollectionInfoMapper collectionInfoMapper;
  29. /**
  30. * 查询用户收藏列表
  31. *
  32. * @param userInfo
  33. * @param collectionType
  34. * @return
  35. */
  36. @Override
  37. @SneakyThrows
  38. public Response collectionList(UserInfo userInfo,String collectionType) {
  39. //返回list
  40. ArrayList<AppletCollectionVo> collectionVos = new ArrayList<>();
  41. //根据收藏列表list
  42. List<CollectionInfo> collectionInfos;
  43. if ("1".equals(collectionType)){
  44. collectionInfos = collectionInfoMapper
  45. .selectList(new QueryWrapper<CollectionInfo>()
  46. .eq("user_id", userInfo.getId()));
  47. }else{
  48. collectionInfos = collectionInfoMapper
  49. .selectList(new QueryWrapper<CollectionInfo>()
  50. .eq("user_id", userInfo.getId())
  51. .eq("collection_type",collectionType));
  52. }
  53. for (CollectionInfo collectionInfo : collectionInfos) {
  54. //获取对应策略
  55. BaseStrategy baseStrategy = (BaseStrategy) StrategyManager.getInstance().getStrategy(collectionInfo.getCollectionType());
  56. //策略不存在
  57. if (baseStrategy == null) continue;
  58. AppletCollectionVo collectionVo = baseStrategy.getCollectionVo(collectionInfo.getId(),collectionInfo.getCollectionId());
  59. collectionVos.add(collectionVo);
  60. }
  61. return Response.success(collectionVos);
  62. }
  63. /**
  64. * applet
  65. * 收藏商家
  66. * @param userInfo 当前用户
  67. * @param id 商家id
  68. * @return
  69. */
  70. @Override
  71. @Transactional(rollbackFor = Exception.class)
  72. public Response collectionBusiness(UserInfo userInfo, Long id) {
  73. try{
  74. List<CollectionInfo> infoList = collectionInfoMapper.selectByMap(new HashMap<String, Object>() {{
  75. put("user_id", userInfo.getId());
  76. put("customer_id", id);
  77. }});
  78. if (infoList.isEmpty()){
  79. //保存收藏表
  80. CollectionInfo collectionInfo = new CollectionInfo();
  81. collectionInfo.setUserId(userInfo.getId());
  82. collectionInfo.setCollectionId(id);
  83. collectionInfoMapper.insert(collectionInfo);
  84. }
  85. return Response.success();
  86. }catch (Exception e){
  87. throw new CustomException("系统异常");
  88. }
  89. }
  90. /**
  91. * 取消收藏
  92. * @param userId 当前用户id
  93. * @param ids 商家id
  94. * @return
  95. */
  96. @Override
  97. @Transactional(rollbackFor = Exception.class)
  98. public Response removeCollectionByIds(Long userId, Long[] ids) {
  99. try{
  100. for (Long id : ids) {
  101. collectionInfoMapper.deleteByMap(new HashMap<String, Object>(){{
  102. put("user_id",userId);
  103. put("customer_id",id);
  104. }});
  105. }
  106. return Response.success();
  107. }catch (Exception e){
  108. throw new CustomException("系统异常");
  109. }
  110. }
  111. /**
  112. * 通用收藏接口
  113. * @param userInfo
  114. * @param id
  115. * @param collectionType
  116. * @return
  117. */
  118. @Override
  119. @Transactional(rollbackFor = Exception.class)
  120. public Response collectionOperation(UserInfo userInfo, Long id, String collectionType) {
  121. try{
  122. //保存收藏表
  123. CollectionInfo collectionInfo = new CollectionInfo();
  124. collectionInfo.setUserId(userInfo.getId());
  125. collectionInfo.setCollectionId(id);
  126. collectionInfo.setCollectionType(collectionType);
  127. collectionInfoMapper.insert(collectionInfo);
  128. return Response.success();
  129. }catch (Exception e){
  130. throw new CustomException("系统异常");
  131. }
  132. }
  133. }