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.status.DirectionStatus; import com.qxgmat.data.constants.enums.user.DataType; import com.qxgmat.data.dao.CourseDataMapper; import com.qxgmat.data.dao.CourseExperienceMapper; import com.qxgmat.data.dao.entity.CourseData; import com.qxgmat.data.dao.entity.CourseExperience; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Collection; import java.util.List; @Service public class CourseExperienceService extends AbstractService { private static final Logger logger = LoggerFactory.getLogger(CourseExperienceService.class); @Resource private CourseExperienceMapper courseExperienceMapper; public Page<CourseExperience> listAdmin(int page, int size, Integer userId, String keyword, String order, DirectionStatus direction){ Example example = new Example(CourseExperience.class); if(userId != null){ example.and( example.createCriteria() .andEqualTo("userId", userId) ); } if(keyword != null){ example.and( example.createCriteria() .orLike("title", "%"+keyword+"%") .orLike("content", "%"+keyword+"%") ); } 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(courseExperienceMapper, example, page, size); } public Page<CourseExperience> list(int page, int size, String prepareStatus, String prepareExaminationTime, String experienceScore, String experiencePercent, String order, DirectionStatus direction){ Example example = new Example(CourseExperience.class); if(prepareStatus != null){ example.and( example.createCriteria() .andEqualTo("prepareStatus", prepareStatus) ); } if(prepareExaminationTime != null){ example.and( example.createCriteria() .andEqualTo("prepareExaminationTime", prepareExaminationTime) ); } if(experienceScore != null){ example.and( example.createCriteria() .andEqualTo("experienceScore", experienceScore) ); } if(experiencePercent != null){ example.and( example.createCriteria() .andEqualTo("experiencePercent", experiencePercent) ); } 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(courseExperienceMapper, example, page, size); } public CourseExperience add(CourseExperience courseData){ int result = insert(courseExperienceMapper, courseData); courseData = one(courseExperienceMapper, courseData.getId()); if(courseData == null){ throw new SystemException("心经添加失败"); } return courseData; } public CourseExperience edit(CourseExperience courseData){ CourseExperience in = one(courseExperienceMapper, courseData.getId()); if(in == null){ throw new ParameterException("心经不存在"); } int result = update(courseExperienceMapper, courseData); return courseData; } public boolean delete(Number id){ CourseExperience in = one(courseExperienceMapper, id); if(in == null){ throw new ParameterException("心经不存在"); } int result = delete(courseExperienceMapper, id); return result > 0; } public CourseExperience get(Number id){ CourseExperience in = one(courseExperienceMapper, id); if(in == null){ throw new ParameterException("心经不存在"); } return in; } public Page<CourseExperience> select(int page, int pageSize){ return select(courseExperienceMapper, page, pageSize); } public Page<CourseExperience> select(Integer[] ids){ return page(()->select(courseExperienceMapper, ids), 1, ids.length); } public List<CourseExperience> select(Collection ids){ return select(courseExperienceMapper, ids); } }