123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- package com.qxgmat.service;
- import com.github.pagehelper.Page;
- import com.nuliji.tools.AbstractService;
- import com.nuliji.tools.PageResult;
- import com.nuliji.tools.Transform;
- import com.nuliji.tools.exception.ParameterException;
- import com.nuliji.tools.exception.SystemException;
- import com.nuliji.tools.mybatis.Example;
- import com.qxgmat.data.constants.enums.QuestionType;
- import com.qxgmat.data.constants.enums.module.QuestionModule;
- import com.qxgmat.data.constants.enums.status.DirectionStatus;
- import com.qxgmat.data.dao.UserCollectQuestionMapper;
- import com.qxgmat.data.dao.entity.Question;
- import com.qxgmat.data.dao.entity.QuestionNo;
- import com.qxgmat.data.dao.entity.UserCollectQuestion;
- import com.qxgmat.data.relation.UserCollectQuestionRelationMapper;
- import com.qxgmat.data.relation.entity.UserCollectQuestionRelation;
- import com.qxgmat.service.inline.QuestionNoService;
- import com.qxgmat.service.inline.QuestionService;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import javax.annotation.Resource;
- import java.util.Collection;
- import java.util.List;
- @Service
- public class UserCollectQuestionService extends AbstractService {
- private static final Logger logger = LoggerFactory.getLogger(UserCollectQuestionService.class);
- @Resource
- private UserCollectQuestionMapper userCollectQuestionMapper;
- @Resource
- private UserCollectQuestionRelationMapper userCollectQuestionRelationMapper;
- /**
- * 获取用户题目收藏列表
- * @param page
- * @param size
- * @param userId
- * @param type
- * @return
- */
- public PageResult<UserCollectQuestionRelation> listQuestion(int page, int size, Integer userId, QuestionModule module, QuestionType type, String startTime, String endTime, String order, DirectionStatus direction){
- String moduleKey = module == null ? null : module.key;
- String typeKey = type == null ? null : type.key;
- Page<UserCollectQuestion> p = page(()->{
- userCollectQuestionRelationMapper.list(userId, moduleKey, typeKey, startTime, endTime, order, direction.key);
- }, page, size);
- Collection ids = Transform.getIds(p, UserCollectQuestion.class, "id");
- // 获取详细数据
- List<UserCollectQuestion> list = select(ids);
- List<UserCollectQuestionRelation> pr = Transform.convert(list, UserCollectQuestionRelation.class);
- return new PageResult<>(pr, p.getTotal());
- }
- /**
- * 查询用户收藏情况
- * @param userId
- * @param questionId
- * @return
- */
- public UserCollectQuestion getByUserAndQuestion(Integer userId, Integer questionId){
- Example example = new Example(UserCollectQuestion.class);
- example.and(
- example.createCriteria()
- .andEqualTo("userId", userId)
- .andEqualTo("questionId", questionId)
- );
- UserCollectQuestion in = one(userCollectQuestionMapper, example);
- return in;
- }
- /**
- * 收藏题目编号:包含题目id
- * @param entity
- * @return
- */
- @Transactional
- public UserCollectQuestion addQuestion(UserCollectQuestion entity){
- Example example = new Example(UserCollectQuestion.class);
- example.and(
- example.createCriteria()
- .andEqualTo("userId", entity.getUserId())
- .andEqualTo("questionModule", entity.getQuestionModule())
- .andEqualTo("questionNoId", entity.getQuestionNoId())
- );
- UserCollectQuestion in = one(userCollectQuestionMapper, example);
- if (in != null){
- return in;
- }
- int result = insert(userCollectQuestionMapper, entity);
- return entity;
- }
- /**
- * 取消收藏题目编号
- * @param userId
- * @param questionNoId
- * @return
- */
- @Transactional
- public boolean deleteQuestion(Integer userId, QuestionModule module, Integer questionNoId){
- Example example = new Example(UserCollectQuestion.class);
- example.and(
- example.createCriteria()
- .andEqualTo("userId", userId)
- .andEqualTo("questionModule", module.key)
- .andEqualTo("questionNoId", questionNoId)
- );
- UserCollectQuestion in = one(userCollectQuestionMapper, example);
- if (in == null){
- return true;
- }
- int result = delete(userCollectQuestionMapper, example);
- return result > 0;
- }
- public UserCollectQuestion add(UserCollectQuestion collect){
- int result = insert(userCollectQuestionMapper, collect);
- collect = one(userCollectQuestionMapper, collect.getId());
- if(collect == null){
- throw new SystemException("收藏添加失败");
- }
- return collect;
- }
- public UserCollectQuestion edit(UserCollectQuestion collect){
- UserCollectQuestion in = one(userCollectQuestionMapper, collect.getId());
- if(in == null){
- throw new ParameterException("收藏不存在");
- }
- int result = update(userCollectQuestionMapper, collect);
- return collect;
- }
- public boolean delete(Number id){
- UserCollectQuestion in = one(userCollectQuestionMapper, id);
- if(in == null){
- throw new ParameterException("收藏不存在");
- }
- int result = delete(userCollectQuestionMapper, id);
- return result > 0;
- }
- public UserCollectQuestion get(Number id){
- UserCollectQuestion in = one(userCollectQuestionMapper, id);
- if(in == null){
- throw new ParameterException("收藏不存在");
- }
- return in;
- }
- public Page<UserCollectQuestion> select(int page, int pageSize){
- return select(userCollectQuestionMapper, page, pageSize);
- }
- public List<UserCollectQuestion> select(Collection ids){
- return select(userCollectQuestionMapper, ids);
- }
- }
|