package com.mindskip.xzs.service.impl;
|
|
import com.mindskip.xzs.domain.Classes;
|
import com.mindskip.xzs.domain.ClassesUser;
|
import com.mindskip.xzs.domain.User;
|
import com.mindskip.xzs.domain.classes.ClassesUserInfo;
|
import com.mindskip.xzs.domain.other.KeyValue;
|
import com.mindskip.xzs.repository.ClassesMapper;
|
import com.mindskip.xzs.repository.ClassesUserMapper;
|
import com.mindskip.xzs.service.ClassesService;
|
import com.mindskip.xzs.service.enums.ResultEnum;
|
import com.mindskip.xzs.viewmodel.teacher.classes.ClassesPageRequestVM;
|
import com.mindskip.xzs.viewmodel.teacher.classes.ClassesUserPageRequestVM;
|
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import lombok.AllArgsConstructor;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.Date;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
@Service
|
@AllArgsConstructor
|
public class ClassesServiceImpl implements ClassesService {
|
|
private final ClassesMapper classesMapper;
|
private final ClassesUserMapper classesUserMapper;
|
|
@Override
|
public Classes selectById(Integer id) {
|
return classesMapper.selectByPrimaryKey(id);
|
}
|
|
@Override
|
public int insertByFilter(Classes record) {
|
return classesMapper.insertSelective(record);
|
}
|
|
@Override
|
public int updateByIdFilter(Classes record) {
|
return classesMapper.updateByPrimaryKeySelective(record);
|
}
|
|
@Override
|
public PageInfo<Classes> page(ClassesPageRequestVM requestVM) {
|
return PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "id desc").doSelectPageInfo(() ->
|
classesMapper.page(requestVM)
|
);
|
}
|
|
@Override
|
public Classes selectClassesByUid(String uid) {
|
return classesMapper.selectClassesByUid(uid);
|
}
|
|
@Override
|
@Transactional
|
public ResultEnum joinClasses(User user, Classes classes) {
|
ClassesUser classesUser = classesUserMapper.getClassesUser(user.getId(), classes.getId());
|
if (null == classesUser) {
|
ClassesUser newClassesUser = new ClassesUser();
|
newClassesUser.setClassesId(classes.getId());
|
newClassesUser.setUserId(user.getId());
|
newClassesUser.setDeleted(false);
|
newClassesUser.setCreateTime(new Date());
|
newClassesUser.setClassesName(classes.getName());
|
classesUserMapper.insertSelective(newClassesUser);
|
classesMapper.classesNumAdd(classes.getId());
|
return ResultEnum.SUCCESS;
|
}
|
return ResultEnum.FAIL;
|
}
|
|
@Override
|
public List<Classes> getClassesByCreate(Integer createId) {
|
return classesMapper.getClassesByCreate(createId);
|
}
|
|
@Override
|
public List<Integer> getClassesIdByCreate(Integer createId) {
|
List<Classes> classes = getClassesByCreate(createId);
|
return classes.stream().map(c -> c.getId()).collect(Collectors.toList());
|
}
|
|
@Override
|
public Classes getClasses(Integer userId, String name) {
|
return classesMapper.getClasses(userId, name);
|
}
|
|
@Override
|
public PageInfo<ClassesUserInfo> classesUserPageList(ClassesUserPageRequestVM requestVM) {
|
return PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "id desc").doSelectPageInfo(() ->
|
classesUserMapper.classesUserPageList(requestVM)
|
);
|
}
|
|
@Override
|
public List<ClassesUser> getJoinClasses(Integer uid) {
|
return classesUserMapper.getJoinClasses(uid);
|
}
|
|
@Override
|
public List<KeyValue> getClassCount(List<Integer> classIds) {
|
return classesUserMapper.getClassCount(classIds);
|
}
|
|
@Override
|
@Transactional
|
public void removeOutUser(Integer id) {
|
ClassesUser classesUser = classesUserMapper.selectByPrimaryKey(id);
|
classesUser.setDeleted(true);
|
classesUserMapper.updateByPrimaryKeySelective(classesUser);
|
classesMapper.classesNumSub(classesUser.getClassesId());
|
}
|
|
}
|