123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- package com.qxgmat.service.inline;
- import com.github.pagehelper.Page;
- import com.nuliji.tools.AbstractService;
- import com.nuliji.tools.Tools;
- 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.ExperienceDayRange;
- import com.qxgmat.data.constants.enums.ExperienceScoreRange;
- 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 com.qxgmat.data.dao.entity.User;
- import com.qxgmat.data.relation.CourseExperienceRelationMapper;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.util.Collection;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- @Service
- public class CourseExperienceService extends AbstractService {
- private static final Logger logger = LoggerFactory.getLogger(CourseExperienceService.class);
- @Resource
- private CourseExperienceMapper courseExperienceMapper;
- @Resource
- private CourseExperienceRelationMapper courseExperienceRelationMapper;
- private Map<String, String> adminMap = new HashMap<String, String>(){{
- put("", "ce");
- }};
- public Page<CourseExperience> listWithUser(int page, int size, Integer userId, String startTime, String endTime, String order, DirectionStatus direction){
- if(order == null || order.isEmpty()){
- order = "id";
- }
- if(adminMap.containsKey(order)){
- order = adminMap.get(order)+".`"+Tools.underscoreName(order)+"`";
- }else{
- order = adminMap.get("")+".`"+Tools.underscoreName(order)+"`";
- }
- if (direction == null){
- direction = DirectionStatus.DESC;
- }
- String finalOrder = order;
- DirectionStatus finalDirection = direction;
- Page<CourseExperience> p = page(
- ()-> courseExperienceRelationMapper.listWithUser(userId, startTime, endTime, finalOrder, finalDirection.key)
- , page, size);
- Collection ids = Transform.getIds(p, CourseExperience.class, "id");
- Transform.replace(p, select(ids), CourseExperience.class, "id");
- return p;
- }
- public Page<CourseExperience> listAdmin(int page, int size, Integer userId, String keyword, String prepareStatus, ExperienceScoreRange experienceScore, ExperienceDayRange experienceDay, String experiencePercent, 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 (prepareStatus != null){
- example.and(
- example.createCriteria()
- .andEqualTo("prepareStatus", prepareStatus)
- );
- }
- if (experienceScore != null){
- example.and(
- example.createCriteria()
- .andGreaterThanOrEqualTo("experienceScore", experienceScore.min)
- .andLessThan("experienceScore", experienceScore.max)
- );
- }
- if (experienceDay != null){
- example.and(
- example.createCriteria()
- .andGreaterThanOrEqualTo("experienceDay", experienceDay.min)
- .andLessThan("experienceDay", experienceDay.max)
- );
- }
- 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 Page<CourseExperience> list(int page, int size,String prepareStatus, ExperienceScoreRange experienceScore, ExperienceDayRange experienceDay, String experiencePercent, String order, DirectionStatus direction){
- Example example = new Example(CourseExperience.class);
- if(prepareStatus != null){
- example.and(
- example.createCriteria()
- .andEqualTo("prepareStatus", prepareStatus)
- );
- }
- if(experienceDay != null){
- example.and(
- example.createCriteria()
- .andGreaterThanOrEqualTo("experienceDay", experienceDay.min)
- .andLessThan("experienceDay", experienceDay.max)
- );
- }
- if(experienceScore != null){
- example.and(
- example.createCriteria()
- .andGreaterThanOrEqualTo("experienceScore", experienceScore.min)
- .andLessThan("experienceScore", experienceScore.max)
- );
- }
- 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);
- }
- /**
- * 累加收藏记录,访问记录
- * @param view
- * @param collect
- */
- public void accumulation(Integer experienceId, int view, int collect){
- courseExperienceRelationMapper.accumulation(experienceId, view, collect);
- }
- /**
- * 替换comment的用户信息为真实用户信息
- * @param experiences
- * @param users
- */
- public void replaceUser(List<CourseExperience> experiences, List<User> users){
- Map userMap = Transform.getMap(users, User.class, "id");
- for(CourseExperience experience : experiences){
- if (experience.getUserId() == 0) {
- continue;
- }
- User user = (User)userMap.get(experience.getUserId());
- if (user == null){
- continue;
- }
- experience.setNickname(user.getNickname());
- }
- }
- 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);
- }
- }
|