UserCollectExperienceService.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. package com.qxgmat.service;
  2. import com.github.pagehelper.Page;
  3. import com.nuliji.tools.AbstractService;
  4. import com.nuliji.tools.exception.ParameterException;
  5. import com.nuliji.tools.exception.SystemException;
  6. import com.nuliji.tools.mybatis.Example;
  7. import com.qxgmat.data.dao.UserCollectExperienceMapper;
  8. import com.qxgmat.data.dao.entity.UserCollectExperience;
  9. import com.qxgmat.service.inline.CourseExperienceService;
  10. import org.slf4j.Logger;
  11. import org.slf4j.LoggerFactory;
  12. import org.springframework.stereotype.Service;
  13. import org.springframework.transaction.annotation.Transactional;
  14. import javax.annotation.Resource;
  15. import java.util.ArrayList;
  16. import java.util.Collection;
  17. import java.util.List;
  18. @Service
  19. public class UserCollectExperienceService extends AbstractService {
  20. private static final Logger logger = LoggerFactory.getLogger(UserCollectExperienceService.class);
  21. @Resource
  22. private UserCollectExperienceMapper userCollectExperienceMapper;
  23. @Resource
  24. private CourseExperienceService courseExperienceService;
  25. /**
  26. * 查询用户收藏情况
  27. * @param userId
  28. * @param experienceId
  29. * @return
  30. */
  31. public UserCollectExperience getByUserAndExperience(Integer userId, Integer experienceId){
  32. Example example = new Example(UserCollectExperience.class);
  33. example.and(
  34. example.createCriteria()
  35. .andEqualTo("userId", userId)
  36. .andEqualTo("experienceId", experienceId)
  37. );
  38. UserCollectExperience in = one(userCollectExperienceMapper, example);
  39. return in;
  40. }
  41. /**
  42. * 查询用户收藏情况:批量
  43. * @param userId
  44. * @param ids
  45. * @return
  46. */
  47. public List<UserCollectExperience> listByUserAndExperiences(Integer userId, Collection ids){
  48. if (ids == null || ids.size() == 0) return new ArrayList<>();
  49. Example example = new Example(UserCollectExperience.class);
  50. example.and(
  51. example.createCriteria()
  52. .andEqualTo("userId", userId)
  53. .andEqualTo("experienceId", ids)
  54. );
  55. return select(userCollectExperienceMapper, example);
  56. }
  57. /**
  58. * 收藏题目编号:包含题目id
  59. * @param entity
  60. * @return
  61. */
  62. @Transactional
  63. public UserCollectExperience addExperience(UserCollectExperience entity){
  64. Example example = new Example(UserCollectExperience.class);
  65. example.and(
  66. example.createCriteria()
  67. .andEqualTo("userId", entity.getUserId())
  68. .andEqualTo("experienceId", entity.getExperienceId())
  69. );
  70. UserCollectExperience in = one(userCollectExperienceMapper, example);
  71. if (in != null){
  72. return in;
  73. }
  74. int result = insert(userCollectExperienceMapper, entity);
  75. courseExperienceService.accumulation(entity.getExperienceId(), 0, 1);
  76. return entity;
  77. }
  78. /**
  79. * 取消收藏题目编号
  80. * @param userId
  81. * @param experienceId
  82. * @return
  83. */
  84. @Transactional
  85. public boolean deleteExperience(Integer userId, Integer experienceId){
  86. Example example = new Example(UserCollectExperience.class);
  87. example.and(
  88. example.createCriteria()
  89. .andEqualTo("userId", userId)
  90. .andEqualTo("experienceId", experienceId)
  91. );
  92. UserCollectExperience in = one(userCollectExperienceMapper, example);
  93. if (in == null){
  94. return true;
  95. }
  96. int result = delete(userCollectExperienceMapper, example);
  97. courseExperienceService.accumulation(in.getExperienceId(), 0, -1);
  98. return result > 0;
  99. }
  100. public UserCollectExperience add(UserCollectExperience collect){
  101. int result = insert(userCollectExperienceMapper, collect);
  102. collect = one(userCollectExperienceMapper, collect.getId());
  103. if(collect == null){
  104. throw new SystemException("收藏添加失败");
  105. }
  106. return collect;
  107. }
  108. public UserCollectExperience edit(UserCollectExperience collect){
  109. UserCollectExperience in = one(userCollectExperienceMapper, collect.getId());
  110. if(in == null){
  111. throw new ParameterException("收藏不存在");
  112. }
  113. int result = update(userCollectExperienceMapper, collect);
  114. return collect;
  115. }
  116. public boolean delete(Number id){
  117. UserCollectExperience in = one(userCollectExperienceMapper, id);
  118. if(in == null){
  119. throw new ParameterException("收藏不存在");
  120. }
  121. int result = delete(userCollectExperienceMapper, id);
  122. return result > 0;
  123. }
  124. public UserCollectExperience get(Number id){
  125. UserCollectExperience in = one(userCollectExperienceMapper, id);
  126. if(in == null){
  127. throw new ParameterException("收藏不存在");
  128. }
  129. return in;
  130. }
  131. public Page<UserCollectExperience> select(int page, int pageSize){
  132. return select(userCollectExperienceMapper, page, pageSize);
  133. }
  134. public Page<UserCollectExperience> select(Integer[] ids){
  135. return page(()->select(userCollectExperienceMapper, ids), 1, ids.length);
  136. }
  137. public List<UserCollectExperience> select(Collection ids){
  138. return select(userCollectExperienceMapper, ids);
  139. }
  140. }