ClassDictServiceImpl.java 5.69 KB
package com.subsidy.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.dto.classDict.AddClassDTO;
import com.subsidy.dto.classDict.AddMemberToClassDTO;
import com.subsidy.dto.classDict.GetSpareMembersDTO;
import com.subsidy.mapper.ClassDictMapper;
import com.subsidy.mapper.ClassMemberMappingMapper;
import com.subsidy.mapper.ClassNoticeMapper;
import com.subsidy.mapper.CompanyDictMapper;
import com.subsidy.mapper.CourseDictMapper;
import com.subsidy.mapper.RoleAdministerMappingMapper;
import com.subsidy.model.ClassDictDO;
import com.subsidy.model.ClassMemberMappingDO;
import com.subsidy.model.ClassNoticeDO;
import com.subsidy.model.CompanyDictDO;
import com.subsidy.model.CourseDictDO;
import com.subsidy.model.MemberDO;
import com.subsidy.model.RoleAdministerMappingDO;
import com.subsidy.service.ClassDictService;
import com.subsidy.util.ConstantUtils;
import com.subsidy.util.SMSUtils;
import com.subsidy.vo.classdict.GetAllClassesVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * <p>
 * 班级id 服务实现类
 * </p>
 *
 * @author DengMin
 * @since 2021-10-12
 */
@Service
public class ClassDictServiceImpl extends ServiceImpl<ClassDictMapper, ClassDictDO> implements ClassDictService {

    @Autowired
    private ClassMemberMappingMapper classMemberMappingMapper;

    @Autowired
    private CourseDictMapper courseDictMapper;

    @Autowired
    private CompanyDictMapper companyDictMapper;

    @Autowired
    private ClassNoticeMapper classNoticeMapper;


    public List<GetAllClassesVO> getAllClasses(ClassDictDO classDictDO) {
        return this.baseMapper.getAllClasses(classDictDO);
    }

    @Transactional
    public String deleteClasses(ClassDictDO classDictDO) {
        this.baseMapper.deleteById(classDictDO.getId());

        classMemberMappingMapper.delete(new QueryWrapper<ClassMemberMappingDO>()
                .lambda()
                .eq(ClassMemberMappingDO::getClassId, classDictDO.getId()));
        return ConstantUtils.DELETE_SUCCESS;
    }

    public String addClass(AddClassDTO addClassDTO) {

        //新建一个班级
        ClassDictDO classDictDO = new ClassDictDO();
        BeanUtils.copyProperties(addClassDTO,classDictDO);
        this.baseMapper.insert(classDictDO);

        //班级里添加成员
        List<Long> memberIds = addClassDTO.getMemberIds();
        for (Long lg : memberIds){
            ClassMemberMappingDO classMemberMappingDO = new ClassMemberMappingDO();
            classMemberMappingDO.setMemberId(lg);
            classMemberMappingDO.setClassId(classDictDO.getId());
        }

        //添加通知
        List<ClassNoticeDO> classNoticeDOS = addClassDTO.getClassNoticeDOS();
        for (ClassNoticeDO classNoticeDO :classNoticeDOS){
            classNoticeDO.setClassId(classDictDO.getId());
            classNoticeMapper.insert(classNoticeDO);
        }
        return ConstantUtils.ADD_SUCCESS;
    }

    public String updateClass(ClassDictDO classDictDO) {
        this.baseMapper.updateById(classDictDO);
        return ConstantUtils.SET_SUCCESS;
    }

    public ClassDictDO classDetail(ClassDictDO classDictDO) {
        return this.baseMapper.selectById(classDictDO.getId());
    }

    public String removeMember(ClassMemberMappingDO classMemberMappingDO) {
        classMemberMappingMapper.delete(new QueryWrapper<ClassMemberMappingDO>()
                .lambda()
                .eq(ClassMemberMappingDO::getClassId, classMemberMappingDO.getClassId())
                .eq(ClassMemberMappingDO::getMemberId, classMemberMappingDO.getMemberId()));
        return ConstantUtils.DELETE_SUCCESS;
    }

    public List<MemberDO> getSpareMembers(GetSpareMembersDTO getSpareMembersDTO){
        return this.baseMapper.getSpareMembers(getSpareMembersDTO);
    }

    public String addMemberToClass(AddMemberToClassDTO addMemberToClassDTO){

        List<Long> memberIds = addMemberToClassDTO.getMemberIds();

        for (Long lg : memberIds){
            ClassMemberMappingDO classMemberMappingDO = new ClassMemberMappingDO();
            classMemberMappingDO.setClassId(addMemberToClassDTO.getClassId());
            classMemberMappingDO.setMemberId(lg);
            classMemberMappingMapper.insert(classMemberMappingDO);
        }
        return ConstantUtils.ADD_SUCCESS;
    }

    public String batchSms(ClassDictDO classDictDO){

        ClassDictDO classDictDO1 = this.baseMapper.selectById(classDictDO.getId());
        CourseDictDO courseDictDO = courseDictMapper.selectById(classDictDO1.getCourseId());
        CompanyDictDO companyDictDO = companyDictMapper.selectById(classDictDO1.getCompanyId());

        //查找这个班级里的学员的手机号
        List<MemberDO> memberDOS = this.baseMapper.classMembers(classDictDO.getId());

        StringBuilder telephone = new StringBuilder();
        String param = "{\"company\":\""+companyDictDO.getCompanyName()+ "\",\"course\":\""+courseDictDO.getCourseName()+ "\",\"startDate\":\""+classDictDO1.getStartDate() +"\",\"endDate\":\""+classDictDO1.getEndDate() +"\"}";
        if (memberDOS.size()>0){
            for (int i = 0 ;i< memberDOS.size();i++){
                telephone.append(memberDOS.get(i).getTelephone());
                if (i!=memberDOS.size()-1){
                    telephone.append(",");
                }
            }
            SMSUtils.sendNoticeSMS("SMS_228137810",telephone.toString(),param);
        }
        return ConstantUtils.SUCCESS_SEND_OUT;
    }

}