123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- package com.qxgmat.service.inline;
- import com.github.pagehelper.Page;
- import com.nuliji.tools.AbstractService;
- import com.nuliji.tools.exception.ParameterException;
- import com.nuliji.tools.exception.SystemException;
- import com.nuliji.tools.mybatis.Example;
- import com.qxgmat.data.constants.enums.QuestionSubject;
- import com.qxgmat.data.constants.enums.TopicQuality;
- import com.qxgmat.data.constants.enums.status.DirectionStatus;
- import com.qxgmat.data.dao.TextbookTopicMapper;
- import com.qxgmat.data.dao.UserTextbookFeedbackMapper;
- import com.qxgmat.data.dao.entity.TextbookTopic;
- import com.qxgmat.data.dao.entity.UserTextbookFeedback;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.util.Arrays;
- import java.util.Collection;
- import java.util.List;
- import java.util.stream.Collectors;
- @Service
- public class TextbookTopicService extends AbstractService {
- private static final Logger logger = LoggerFactory.getLogger(TextbookTopicService.class);
- @Resource
- private TextbookTopicMapper textbookTopicMapper;
- public Page<TextbookTopic> listAdmin(int page, int pageSize, String questionType, Number libraryId, String keyword, TopicQuality quality, String order, DirectionStatus direction){
- Example example = new Example(TextbookTopic.class);
- if (questionType!=null){
- example.and(
- example.createCriteria()
- .andEqualTo("questionType", questionType)
- );
- }
- if (libraryId!=null){
- example.and(
- example.createCriteria()
- .andEqualTo("libraryId", libraryId)
- );
- }
- if (keyword!=null){
- example.and(
- example.createCriteria()
- .andLike("keyword", "%"+keyword+"%")
- );
- }
- if (quality!=null){
- example.and(
- example.createCriteria()
- .andEqualTo("quality", quality.key)
- );
- }
- if(order == null || order.isEmpty()) order = "id";
- switch(direction){
- case ASC:
- example.orderBy(order).asc();
- break;
- case DESC:
- default:
- example.orderBy(order).desc();
- }
- return select(textbookTopicMapper, example, page, pageSize);
- }
- /**
- * 获取换库表中的最后一题
- * @param libraryId
- * @return
- */
- public TextbookTopic lastByLibrary(Integer libraryId, String questionSubject){
- Example example = new Example(TextbookTopic.class);
- example.and(
- example.createCriteria()
- .andEqualTo("libraryId", libraryId)
- .andEqualTo("questionSubject", questionSubject)
- );
- example.orderBy("no").desc();
- return one(textbookTopicMapper, example);
- }
- public Page<TextbookTopic> list(int page, int size, Integer libraryId, QuestionSubject subject, String[] qualitys, Boolean isOld, String order, DirectionStatus direction){
- Example example = new Example(TextbookTopic.class);
- example.and(
- example.createCriteria()
- .andEqualTo("libraryId", libraryId)
- .andEqualTo("questionSubject", subject.key)
- );
- if (qualitys != null){
- example.and(
- example.createCriteria()
- .andIn("quality", Arrays.stream(qualitys).collect(Collectors.toList()))
- );
- }
- if (isOld != null){
- example.and(
- example.createCriteria()
- .andEqualTo("isOld", isOld ? 1 : 0)
- );
- }
- if(order==null||order.isEmpty()) order = "id";
- if (direction != null){
- switch(direction){
- case ASC:
- example.orderBy(order).asc();
- break;
- case DESC:
- default:
- example.orderBy(order).desc();
- }
- } else {
- example.orderBy(order).desc();
- }
- return select(textbookTopicMapper, example, page, size);
- }
- public TextbookTopic getByNo(Integer libraryId, String subject, Integer no){
- Example example = new Example(TextbookTopic.class);
- example.and(
- example.createCriteria()
- .andEqualTo("libraryId", libraryId)
- .andEqualTo("questionSubject", subject)
- .andEqualTo("no", no)
- );
- return one(textbookTopicMapper, example);
- }
- public TextbookTopic add(TextbookTopic ad){
- int result = insert(textbookTopicMapper, ad);
- ad = one(textbookTopicMapper, ad.getId());
- if(ad == null){
- throw new SystemException("记录添加失败");
- }
- return ad;
- }
- public TextbookTopic edit(TextbookTopic ad){
- TextbookTopic in = one(textbookTopicMapper, ad.getId());
- if(in == null){
- throw new ParameterException("记录不存在");
- }
- int result = update(textbookTopicMapper, ad);
- return ad;
- }
- public boolean delete(Number id){
- TextbookTopic in = one(textbookTopicMapper, id);
- if(in == null){
- throw new ParameterException("记录不存在");
- }
- int result = delete(textbookTopicMapper, id);
- return result > 0;
- }
- public TextbookTopic get(Number id){
- TextbookTopic in = one(textbookTopicMapper, id);
- if(in == null){
- throw new ParameterException("记录不存在");
- }
- return in;
- }
- public Page<TextbookTopic> select(int page, int pageSize){
- return select(textbookTopicMapper, page, pageSize);
- }
- public Page<TextbookTopic> select(Integer[] ids){
- return page(()->select(textbookTopicMapper, ids), 1, ids.length);
- }
- public List<TextbookTopic> select(Collection ids){
- return select(textbookTopicMapper, ids);
- }
- }
|