UserCollectExperienceService.java 5.7 KB

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