123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- 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.UserNoteQuestionMapper;
- 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.dao.entity.UserNoteQuestion;
- import com.qxgmat.data.relation.UserNoteQuestionRelationMapper;
- import com.qxgmat.data.relation.entity.UserNoteQuestionRelation;
- 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.Date;
- import java.util.List;
- @Service
- public class UserNoteQuestionService extends AbstractService {
- private static final Logger logger = LoggerFactory.getLogger(UserNoteQuestionService.class);
- @Resource
- private UserNoteQuestionMapper userNoteQuestionMapper;
- @Resource
- private UserNoteQuestionRelationMapper userNoteQuestionRelationMapper;
- /**
- * 获取用户笔记列表
- * @param page
- * @param size
- * @param userId
- * @param questionTypes
- * @param structIds
- * @param startTime
- * @param endTime
- * @param order
- * @param direction
- * @return
- */
- public Page<UserNoteQuestion> listExercise(int page, int size, Integer userId, String keyword, String[] questionTypes, Integer[] structIds, String startTime, String endTime, String order){
- Page<UserNoteQuestion> p = page(()->{
- userNoteQuestionRelationMapper.listExercise(userId, keyword, questionTypes, structIds, startTime, endTime, order);
- }, page, size);
- Collection ids = Transform.getIds(p, UserNoteQuestion.class, "id");
- // 获取详细数据
- List<UserNoteQuestion> list = select(ids);
- Transform.replace(p, list, UserNoteQuestion.class, "id");
- return p;
- }
- /**
- * 获取用户笔记列表
- * @param page
- * @param size
- * @param userId
- * @param questionTypes
- * @param structIds
- * @param startTime
- * @param endTime
- * @param order
- * @param direction
- * @return
- */
- public Page<UserNoteQuestion> listExamination(int page, int size, Integer userId, String keyword, String[] questionTypes, Integer[] structIds, Integer libraryId, String year, String startTime, String endTime, String order){
- Page<UserNoteQuestion> p = page(()->{
- userNoteQuestionRelationMapper.listExamination(userId, keyword, questionTypes, structIds, libraryId, year, startTime, endTime, order);
- }, page, size);
- Collection ids = Transform.getIds(p, UserNoteQuestion.class, "id");
- // 获取详细数据
- List<UserNoteQuestion> list = select(ids);
- Transform.replace(p, list, UserNoteQuestion.class, "id");
- return p;
- }
- /**
- * 查询用户笔记情况
- * @param userId
- * @param questionId
- * @return
- */
- public UserNoteQuestion getByUserAndQuestion(Integer userId, Integer questionId){
- Example example = new Example(UserNoteQuestion.class);
- example.and(
- example.createCriteria()
- .andEqualTo("userId", userId)
- .andEqualTo("questionId", questionId)
- );
- UserNoteQuestion in = one(userNoteQuestionMapper, example);
- return in;
- }
- /**
- * 查询用户笔记情况:批量
- * @param userId
- * @param ids
- * @return
- */
- public List<UserNoteQuestion> listByUserAndQuestions(Integer userId, Collection ids){
- Example example = new Example(UserNoteQuestion.class);
- example.and(
- example.createCriteria()
- .andEqualTo("userId", userId)
- .andEqualTo("questionId", ids)
- );
- return select(userNoteQuestionMapper, example);
- }
- /**
- * 更新用户笔记:没有则添加
- * @param note
- * @return
- */
- @Transactional
- public UserNoteQuestion update(UserNoteQuestion note){
- Example example = new Example(UserNoteQuestion.class);
- example.and(
- example.createCriteria()
- .andEqualTo("userId", note.getUserId())
- .andEqualTo("questionModule", note.getQuestionModule())
- );
- example.and(
- example.createCriteria()
- .orEqualTo("questionId", note.getQuestionId())
- .orEqualTo("questionNoId", note.getQuestionNoId())
- );
- UserNoteQuestion in = one(userNoteQuestionMapper, example);
- Date now = new Date();
- if(in == null){
- // 按实际更新更改更新时间
- if (!note.getQuestionContent().isEmpty()){
- note.setQuestionTime(now);
- }
- if (!note.getOfficialContent().isEmpty()){
- note.setOfficialTime(now);
- }
- if (!note.getQxContent().isEmpty()){
- note.setQxTime(now);
- }
- if (!note.getAssociationContent().isEmpty()){
- note.setAssociationTime(now);
- }
- if (!note.getQaContent().isEmpty()){
- note.setQaTime(now);
- }
- return add(note);
- }else{
- note.setId(in.getId());
- // 按实际更新更改更新时间
- if (!note.getQuestionContent().equals(in.getQuestionContent())){
- note.setQuestionTime(now);
- }
- if (!note.getOfficialContent().equals(in.getOfficialContent())){
- note.setOfficialTime(now);
- }
- if (!note.getQxContent().equals(in.getQxContent())){
- note.setQxTime(now);
- }
- if (!note.getAssociationContent().equals(in.getAssociationContent())){
- note.setAssociationTime(now);
- }
- if (!note.getQaContent().equals(in.getQaContent())){
- note.setQaTime(now);
- }
- return edit(note);
- }
- }
- public UserNoteQuestion add(UserNoteQuestion note){
- int result = insert(userNoteQuestionMapper, note);
- note = one(userNoteQuestionMapper, note.getId());
- if(note == null){
- throw new SystemException("笔记添加失败");
- }
- return note;
- }
- public UserNoteQuestion edit(UserNoteQuestion note){
- UserNoteQuestion in = one(userNoteQuestionMapper, note.getId());
- if(in == null){
- throw new ParameterException("笔记不存在");
- }
- int result = update(userNoteQuestionMapper, note);
- return note;
- }
- public boolean delete(Number id){
- UserNoteQuestion in = one(userNoteQuestionMapper, id);
- if(in == null){
- throw new ParameterException("笔记不存在");
- }
- int result = delete(userNoteQuestionMapper, id);
- return result > 0;
- }
- public UserNoteQuestion get(Number id){
- UserNoteQuestion in = one(userNoteQuestionMapper, id);
- if(in == null){
- throw new ParameterException("笔记不存在");
- }
- return in;
- }
- public Page<UserNoteQuestion> select(int page, int pageSize){
- return select(userNoteQuestionMapper, page, pageSize);
- }
- public Page<UserNoteQuestion> select(Integer[] ids){
- return page(()->select(userNoteQuestionMapper, ids), 1, ids.length);
- }
- public List<UserNoteQuestion> select(Collection ids){
- return select(userNoteQuestionMapper, ids);
- }
- }
|