| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483 |
- package com.xjrsoft.module.assessment.service.impl;
- import cn.dev33.satoken.stp.StpUtil;
- import cn.hutool.core.bean.BeanUtil;
- import cn.hutool.core.util.IdUtil;
- import cn.hutool.core.util.StrUtil;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.github.yulichang.base.MPJBaseServiceImpl;
- import com.github.yulichang.wrapper.MPJLambdaWrapper;
- import com.xjrsoft.common.enums.DeleteMark;
- import com.xjrsoft.common.utils.VoToColumnUtil;
- import com.xjrsoft.config.CommonPropertiesConfig;
- import com.xjrsoft.module.assessment.dto.AddAssessmentTemplatePlanDto;
- import com.xjrsoft.module.assessment.dto.AssessmentPlanAnswerPageDto;
- import com.xjrsoft.module.assessment.dto.AssessmentPlanAnswerStudentDto;
- import com.xjrsoft.module.assessment.dto.AssessmentPlanAnswerSubmitDto;
- import com.xjrsoft.module.assessment.dto.AssessmentPlanSubmitDto;
- import com.xjrsoft.module.assessment.dto.AssessmentQuestionResultDto;
- import com.xjrsoft.module.assessment.dto.AssessmentTemplatePlanPageDto;
- import com.xjrsoft.module.assessment.dto.AssessmentTemplatePlanSureDto;
- import com.xjrsoft.module.assessment.dto.UpdateAssessmentTemplatePlanDto;
- import com.xjrsoft.module.assessment.dto.UpdateAssessmentTemplatePlanTimeDto;
- import com.xjrsoft.module.assessment.entity.AssessmentPlanAnswerClass;
- import com.xjrsoft.module.assessment.entity.AssessmentPlanAnswerResult;
- import com.xjrsoft.module.assessment.entity.AssessmentPlanAnswerStudent;
- import com.xjrsoft.module.assessment.entity.AssessmentPlanQuestion;
- import com.xjrsoft.module.assessment.entity.AssessmentQuestion;
- import com.xjrsoft.module.assessment.entity.AssessmentTemplate;
- import com.xjrsoft.module.assessment.entity.AssessmentTemplatePlan;
- import com.xjrsoft.module.assessment.mapper.AssessmentPlanAnswerClassMapper;
- import com.xjrsoft.module.assessment.mapper.AssessmentPlanAnswerResultMapper;
- import com.xjrsoft.module.assessment.mapper.AssessmentPlanAnswerStudentMapper;
- import com.xjrsoft.module.assessment.mapper.AssessmentPlanQuestionMapper;
- import com.xjrsoft.module.assessment.mapper.AssessmentQuestionMapper;
- import com.xjrsoft.module.assessment.mapper.AssessmentTemplateMapper;
- import com.xjrsoft.module.assessment.mapper.AssessmentTemplatePlanMapper;
- import com.xjrsoft.module.assessment.service.IAssessmentTemplatePlanService;
- import com.xjrsoft.module.assessment.vo.AssessmentPlanAnswerClassResultVo;
- import com.xjrsoft.module.assessment.vo.AssessmentPlanAnswerDetailVo;
- import com.xjrsoft.module.assessment.vo.AssessmentPlanAnswerStudentPageVo;
- import com.xjrsoft.module.assessment.vo.AssessmentPlanAnswerStudentVo;
- import com.xjrsoft.module.assessment.vo.AssessmentPlanAnswerTeacherPageVo;
- import com.xjrsoft.module.assessment.vo.AssessmentQuestionResultVo;
- import com.xjrsoft.module.assessment.vo.AssessmentQuestionVo;
- import com.xjrsoft.module.assessment.vo.AssessmentTemplatePlanPageVo;
- import com.xjrsoft.module.assessment.vo.AssessmentTemplatePlanQuestionVo;
- import com.xjrsoft.module.base.entity.BaseClass;
- import com.xjrsoft.module.base.mapper.BaseClassMapper;
- import com.xjrsoft.module.organization.dto.WeChatSendMessageDto;
- import com.xjrsoft.module.organization.service.IWeChatService;
- import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
- import com.xjrsoft.module.teacher.entity.XjrUser;
- import com.xjrsoft.module.teacher.mapper.XjrUserMapper;
- import lombok.AllArgsConstructor;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.Random;
- /**
- * @title: 考核计划
- * @Author dzx
- * @Date: 2024-04-01
- * @Version 1.0
- */
- @Service
- @AllArgsConstructor
- public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<AssessmentTemplatePlanMapper, AssessmentTemplatePlan> implements IAssessmentTemplatePlanService {
- private final AssessmentTemplatePlanMapper templatePlanMapper;
- private final AssessmentPlanQuestionMapper planQuestionMapper;
- private final AssessmentPlanAnswerClassMapper answerClassMapper;
- private final AssessmentPlanAnswerStudentMapper studentMapper;
- private final AssessmentTemplateMapper assessmentTemplateMapper;
- private final AssessmentQuestionMapper questionMapper;
- private final AssessmentPlanAnswerResultMapper resultMapper;
- private final XjrUserMapper xjrUserMapper;
- private final IWeChatService weChatService;
- private final CommonPropertiesConfig commonPropertiesConfig;
- private final BaseClassMapper baseClassMapper;
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean add(AddAssessmentTemplatePlanDto dto) {
- AssessmentTemplate template = assessmentTemplateMapper.selectById(dto.getAssessmentTemplateId());
- AssessmentTemplatePlan assessmentTemplatePlan = BeanUtil.toBean(dto, AssessmentTemplatePlan.class);
- assessmentTemplatePlan.setScore(template.getScore());
- templatePlanMapper.insert(assessmentTemplatePlan);
- //查询模板下面的题目信息
- List<AssessmentQuestion> questionList = questionMapper.selectList(
- new QueryWrapper<AssessmentQuestion>().lambda()
- .eq(AssessmentQuestion::getDeleteMark, DeleteMark.NODELETE.getCode())
- .eq(AssessmentQuestion::getAssessmentTemplateId, dto.getAssessmentTemplateId())
- );
- Map<Long, Long> parentMap = new HashMap<>();
- for (AssessmentQuestion assessmentQuestion : questionList) {
- parentMap.put(assessmentQuestion.getId(), IdUtil.getSnowflakeNextId());
- }
- for (AssessmentQuestion assessmentQuestion : questionList) {
- AssessmentPlanQuestion planQuestion = BeanUtil.toBean(assessmentQuestion, AssessmentPlanQuestion.class);
- planQuestion.setId(parentMap.get(assessmentQuestion.getId()));
- planQuestion.setParentId(parentMap.get(assessmentQuestion.getParentId()));
- planQuestion.setAssessmentTemplatePlanId(assessmentTemplatePlan.getId());
- planQuestionMapper.insert(planQuestion);
- }
- List<BaseClass> classList = baseClassMapper.selectList(
- new QueryWrapper<BaseClass>().lambda()
- .eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode())
- .eq(BaseClass::getIsGraduate, 1)
- );
- List<Long> classIds = new ArrayList<>();
- if("all".equals(dto.getType())){
- for (BaseClass baseClass : classList) {
- classIds.add(baseClass.getId());
- }
- }else if("random".equals(dto.getType())){
- List<Integer> randomList = new ArrayList<>();
- Random random = new Random();
- while(randomList.size() < dto.getRandomNumber()){
- int nextInt = random.nextInt(classList.size());
- if(!randomList.contains(nextInt) && nextInt >= 0){
- randomList.add(nextInt);
- }
- }
- for (Integer i : randomList) {
- classIds.add(classList.get(i).getId());
- }
- }
- //存入班级,并根据选人方式存入答题学生
- for (Long classId : dto.getClassIds()) {
- AssessmentPlanAnswerClass answerClass = new AssessmentPlanAnswerClass();
- answerClass.setAssessmentTemplatePlanId(assessmentTemplatePlan.getId());
- answerClass.setClassId(classId);
- answerClassMapper.insert(answerClass);
- MPJLambdaWrapper<XjrUser> query = new MPJLambdaWrapper<>();
- query.leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, XjrUser::getId)
- .eq(BaseStudentSchoolRoll::getClassId, classId);
- List<XjrUser> studentList = xjrUserMapper.selectJoinList(XjrUser.class, query);
- for (XjrUser xjrUser : studentList) {
- AssessmentPlanAnswerStudent answer = new AssessmentPlanAnswerStudent();
- answer.setAssessmentTemplatePlanId(assessmentTemplatePlan.getId());
- answer.setStudentUserId(xjrUser.getId());
- studentMapper.insert(answer);
- }
- }
- return true;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean update(UpdateAssessmentTemplatePlanDto dto) {
- AssessmentTemplate template = assessmentTemplateMapper.selectById(dto.getAssessmentTemplateId());
- AssessmentTemplatePlan assessmentTemplatePlan = BeanUtil.toBean(dto, AssessmentTemplatePlan.class);
- assessmentTemplatePlan.setScore(template.getScore());
- templatePlanMapper.updateById(assessmentTemplatePlan);
- //删除以前的题目
- planQuestionMapper.deleteByPlanId(assessmentTemplatePlan.getId(), StpUtil.getLoginIdAsLong());
- //查询模板下面的题目信息
- List<AssessmentQuestion> questionList = questionMapper.selectList(
- new QueryWrapper<AssessmentQuestion>().lambda()
- .eq(AssessmentQuestion::getDeleteMark, DeleteMark.NODELETE.getCode())
- .eq(AssessmentQuestion::getAssessmentTemplateId, dto.getAssessmentTemplateId())
- .orderByAsc(AssessmentQuestion::getCategory)
- );
- Map<Long, Long> parentMap = new HashMap<>();
- for (AssessmentQuestion assessmentQuestion : questionList) {
- parentMap.put(assessmentQuestion.getId(), IdUtil.getSnowflakeNextId());
- }
- for (AssessmentQuestion assessmentQuestion : questionList) {
- AssessmentPlanQuestion planQuestion = BeanUtil.toBean(assessmentQuestion, AssessmentPlanQuestion.class);
- planQuestion.setId(parentMap.get(assessmentQuestion.getId()));
- planQuestion.setParentId(parentMap.get(assessmentQuestion.getParentId()));
- planQuestion.setAssessmentTemplatePlanId(assessmentTemplatePlan.getId());
- planQuestionMapper.insert(planQuestion);
- }
- //删除班级和学生
- answerClassMapper.deleteByPlanId(assessmentTemplatePlan.getId(), StpUtil.getLoginIdAsLong());
- studentMapper.deleteByPlanId(assessmentTemplatePlan.getId(), StpUtil.getLoginIdAsLong());
- List<BaseClass> classList = baseClassMapper.selectList(
- new QueryWrapper<BaseClass>().lambda()
- .eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode())
- .eq(BaseClass::getIsGraduate, 1)
- );
- List<Long> classIds = new ArrayList<>();
- if("all".equals(dto.getType())){
- for (BaseClass baseClass : classList) {
- classIds.add(baseClass.getId());
- }
- }else if("random".equals(dto.getType())){
- List<Integer> randomList = new ArrayList<>();
- Random random = new Random();
- while(randomList.size() < dto.getRandomNumber()){
- int nextInt = random.nextInt(classList.size());
- if(!randomList.contains(nextInt) && nextInt >= 0){
- randomList.add(nextInt);
- }
- }
- for (Integer i : randomList) {
- classIds.add(classList.get(i).getId());
- }
- }
- //存入班级,并根据选人方式存入答题学生
- for (Long classId : dto.getClassIds()) {
- AssessmentPlanAnswerClass answerClass = new AssessmentPlanAnswerClass();
- answerClass.setAssessmentTemplatePlanId(assessmentTemplatePlan.getId());
- answerClass.setClassId(classId);
- answerClassMapper.insert(answerClass);
- MPJLambdaWrapper<XjrUser> query = new MPJLambdaWrapper<>();
- query.leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, XjrUser::getId)
- .eq(BaseStudentSchoolRoll::getClassId, classId);
- List<XjrUser> studentList = xjrUserMapper.selectJoinList(XjrUser.class, query);
- for (XjrUser xjrUser : studentList) {
- AssessmentPlanAnswerStudent answer = new AssessmentPlanAnswerStudent();
- answer.setAssessmentTemplatePlanId(assessmentTemplatePlan.getId());
- answer.setStudentUserId(xjrUser.getId());
- studentMapper.insert(answer);
- }
- }
- return true;
- }
- @Override
- public Boolean updateTime(UpdateAssessmentTemplatePlanTimeDto dto) {
- AssessmentTemplatePlan assessmentTemplatePlan = BeanUtil.toBean(dto, AssessmentTemplatePlan.class);
- templatePlanMapper.updateById(assessmentTemplatePlan);
- return true;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean delete(List<Long> ids) {
- templatePlanMapper.deleteBatchIds(ids);
- planQuestionMapper.delete(Wrappers.lambdaQuery(AssessmentPlanQuestion.class).in(AssessmentPlanQuestion::getAssessmentTemplatePlanId, ids));
- answerClassMapper.delete(Wrappers.lambdaQuery(AssessmentPlanAnswerClass.class).in(AssessmentPlanAnswerClass::getAssessmentTemplatePlanId, ids));
- studentMapper.delete(Wrappers.lambdaQuery(AssessmentPlanAnswerStudent.class).in(AssessmentPlanAnswerStudent::getAssessmentTemplatePlanId, ids));
- return true;
- }
- @Override
- public Page<AssessmentTemplatePlanPageVo> getPage(Page<AssessmentTemplatePlanPageVo> page, AssessmentTemplatePlanPageDto dto) {
- return templatePlanMapper.getPage(page, dto);
- }
- @Override
- public Page<AssessmentPlanAnswerStudentPageVo> getStudentPage(Page<AssessmentPlanAnswerStudentPageVo> page, AssessmentPlanAnswerPageDto dto) {
- return templatePlanMapper.getStudentPage(page, dto);
- }
- @Override
- public Page<AssessmentPlanAnswerTeacherPageVo> getTeacherPage(Page<AssessmentPlanAnswerTeacherPageVo> page, AssessmentPlanAnswerPageDto dto) {
- return templatePlanMapper.getTeacherPage(page, dto);
- }
- @Override
- public Boolean sure(AssessmentTemplatePlanSureDto dto) {
- long teacherId = StpUtil.getLoginIdAsLong();
- answerClassMapper.sure(dto, teacherId);
- studentMapper.sure(dto, teacherId);
- return true;
- }
- @Override
- public AssessmentTemplatePlanQuestionVo getQuestionsById(Long id) {
- AssessmentTemplatePlan templatePlan = templatePlanMapper.selectById(id);
- AssessmentTemplatePlanQuestionVo vo = BeanUtil.toBean(templatePlan, AssessmentTemplatePlanQuestionVo.class);
- List<AssessmentPlanQuestion> questionList = planQuestionMapper.selectList(
- new QueryWrapper<AssessmentPlanQuestion>().lambda()
- .eq(AssessmentPlanQuestion::getDeleteMark, DeleteMark.NODELETE.getCode())
- .eq(AssessmentPlanQuestion::getAssessmentTemplatePlanId, id)
- );
- Integer submitStatus = studentMapper.getSubmitStatus(id, StpUtil.getLoginIdAsLong());
- vo.setSubmitStatus(submitStatus);
- AssessmentQuestionResultDto resultDto = new AssessmentQuestionResultDto();
- resultDto.setAssessmentTemplatePlanId(id);
- resultDto.setUserId(StpUtil.getLoginIdAsLong());
- List<AssessmentQuestionResultVo> resultList = resultMapper.getResultList(resultDto);
- Map<Long, String> resultMap = new HashMap<>();
- for (AssessmentQuestionResultVo resultVo : resultList) {
- resultMap.put(resultVo.getQuestionId(), resultVo.getAnswer());
- }
- //循环大题
- List<AssessmentQuestionVo> oneList = new ArrayList<>();
- for (AssessmentPlanQuestion assessmentQuestion : questionList) {
- if(assessmentQuestion.getCategory() == 1){
- oneList.add(BeanUtil.toBean(assessmentQuestion, AssessmentQuestionVo.class));
- }
- }
- //循环小题
- for (AssessmentQuestionVo oneQuestion : oneList) {
- List<AssessmentQuestionVo> twoList = new ArrayList<>();
- for (AssessmentPlanQuestion assessmentQuestion : questionList) {
- if(assessmentQuestion.getCategory() == 2 && assessmentQuestion.getParentId().equals(oneQuestion.getId())){
- AssessmentQuestionVo questionVo = BeanUtil.toBean(assessmentQuestion, AssessmentQuestionVo.class);
- questionVo.setValue(resultMap.get(questionVo.getId()));
- twoList.add(questionVo);
- }
- }
- oneQuestion.setChildren(twoList);
- }
- //循环选项
- for (AssessmentQuestionVo oneQuestion : oneList) {
- for (AssessmentQuestionVo twoQuestion : oneQuestion.getChildren()) {
- List<AssessmentQuestionVo> optionList = new ArrayList<>();
- for (AssessmentPlanQuestion assessmentQuestion : questionList) {
- if(assessmentQuestion.getCategory() == 3 && assessmentQuestion.getParentId().equals(twoQuestion.getId())){
- optionList.add(BeanUtil.toBean(assessmentQuestion, AssessmentQuestionVo.class));
- }
- }
- twoQuestion.setOptions(optionList);
- }
- }
- vo.setChildren(oneList);
- return vo;
- }
- @Override
- public Boolean saveAnswer(AssessmentPlanSubmitDto dto) {
- long studentUserId = StpUtil.getLoginIdAsLong();
- Date date = new Date();
- // 学生提交
- studentMapper.submitAnswer(dto.getAssessmentTemplatePlanId(), studentUserId);
- for (AssessmentPlanAnswerSubmitDto answerSubmitDto : dto.getAnswerList()) {
- AssessmentPlanAnswerResult answerStudent = new AssessmentPlanAnswerResult();
- answerStudent.setAssessmentTemplatePlanId(dto.getAssessmentTemplatePlanId());
- answerStudent.setStudentUserId(studentUserId);
- answerStudent.setCreateDate(date);
- answerStudent.setQuestionId(answerSubmitDto.getQuestionId());
- answerStudent.setAnswerId(answerSubmitDto.getAnswerId());
- resultMapper.insert(answerStudent);
- }
- return true;
- }
- @Override
- public List<AssessmentTemplatePlanPageVo> getMobilePage(AssessmentTemplatePlanPageDto dto) {
- return templatePlanMapper.getMobilePage(dto);
- }
- @Override
- public List<AssessmentPlanAnswerStudentVo> getAnswerStudent(AssessmentPlanAnswerStudentDto dto) {
- List<String> roleList = StpUtil.getRoleList();
- if(roleList.size() == 2 && roleList.contains("CLASSTE") && roleList.contains("TEACHER")){
- dto.setTeacherId(StpUtil.getLoginIdAsLong());
- }
- return templatePlanMapper.getAnswerStudent(dto);
- }
- @Override
- public List<Long> getSemesterClass(Long id) {
- return templatePlanMapper.getSemesterClass(id);
- }
- @Override
- public List<AssessmentPlanAnswerClassResultVo> getClassResult(Long id) {
- return resultMapper.getClassResult(id);
- }
- @Override
- public AssessmentTemplatePlanQuestionVo getQuestionResult(Long id) {
- AssessmentTemplatePlan templatePlan = templatePlanMapper.selectById(id);
- AssessmentTemplatePlanQuestionVo vo = BeanUtil.toBean(templatePlan, AssessmentTemplatePlanQuestionVo.class);
- vo.setStudentCount(studentMapper.getStudentCount(id));
- List<AssessmentPlanQuestion> questionList = planQuestionMapper.selectList(
- new QueryWrapper<AssessmentPlanQuestion>().lambda()
- .eq(AssessmentPlanQuestion::getDeleteMark, DeleteMark.NODELETE.getCode())
- .eq(AssessmentPlanQuestion::getAssessmentTemplatePlanId, id)
- );
- List<AssessmentPlanAnswerDetailVo> questionResult = resultMapper.getQuestionResult(id);
- Map<String, Integer> answerCountMap = new HashMap<>();
- for (AssessmentPlanAnswerDetailVo countVo : questionResult) {
- answerCountMap.put(countVo.getQuestionId().toString() + countVo.getAnswerId(), countVo.getChooseCount());
- }
- //循环大题
- List<AssessmentQuestionVo> oneList = new ArrayList<>();
- for (AssessmentPlanQuestion assessmentQuestion : questionList) {
- if(assessmentQuestion.getCategory() == 1){
- oneList.add(BeanUtil.toBean(assessmentQuestion, AssessmentQuestionVo.class));
- }
- }
- //循环小题
- for (AssessmentQuestionVo oneQuestion : oneList) {
- List<AssessmentQuestionVo> twoList = new ArrayList<>();
- for (AssessmentPlanQuestion assessmentQuestion : questionList) {
- if(assessmentQuestion.getCategory() == 2 && assessmentQuestion.getParentId().equals(oneQuestion.getId())){
- AssessmentQuestionVo questionVo = BeanUtil.toBean(assessmentQuestion, AssessmentQuestionVo.class);
- twoList.add(questionVo);
- }
- }
- oneQuestion.setChildren(twoList);
- }
- //循环选项
- for (AssessmentQuestionVo oneQuestion : oneList) {
- for (AssessmentQuestionVo twoQuestion : oneQuestion.getChildren()) {
- List<AssessmentQuestionVo> optionList = new ArrayList<>();
- for (AssessmentPlanQuestion assessmentQuestion : questionList) {
- if(assessmentQuestion.getCategory() == 3 && assessmentQuestion.getParentId().equals(twoQuestion.getId())){
- AssessmentQuestionVo questionVo = BeanUtil.toBean(assessmentQuestion, AssessmentQuestionVo.class);
- questionVo.setChooseCount(answerCountMap.get(assessmentQuestion.getParentId().toString() + assessmentQuestion.getId().toString()));
- optionList.add(questionVo);
- }
- if(assessmentQuestion.getCategory() == 2 && "judge_question".equals(assessmentQuestion.getType())){
- optionList.add(new AssessmentQuestionVo(){{
- setId(1L);
- setChooseCount(answerCountMap.get(assessmentQuestion.getId().toString() + "1"));
- }});
- optionList.add(new AssessmentQuestionVo(){{
- setId(2L);
- setChooseCount(answerCountMap.get(assessmentQuestion.getId().toString() + "2"));
- }});
- }
- }
- twoQuestion.setOptions(optionList);
- }
- }
- vo.setChildren(oneList);
- return vo;
- }
- @Override
- public Boolean sendMsg(AssessmentTemplatePlanSureDto dto) {
- //先查询班上的所有学生
- MPJLambdaWrapper<XjrUser> queryWrapper = new MPJLambdaWrapper<>();
- queryWrapper
- .select(XjrUser.class, x -> VoToColumnUtil.fieldsToColumns(XjrUser.class).contains(x.getProperty()))
- .innerJoin(AssessmentPlanAnswerStudent.class, AssessmentPlanAnswerStudent::getStudentUserId,XjrUser::getId)
- .innerJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId,XjrUser::getId)
- .eq(BaseStudentSchoolRoll::getClassId , dto.getClassId())
- .eq(AssessmentPlanAnswerStudent::getAssessmentTemplatePlanId , dto.getId())
- .disableSubLogicDel();
- List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class, queryWrapper);
- AssessmentTemplatePlan templatePlan = templatePlanMapper.selectById(dto.getId());
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
- for (XjrUser user : userList) {
- WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();
- weChatSendMessageDto.setUserId(user.getOpenId());
- weChatSendMessageDto.setTemplateId("ehYfXni7exZUmt6dJX4Ukbm9ETarFfKLfXVYwNnjKMc");
- weChatSendMessageDto.setUrl(StrUtil.format("{}/pages/student/canteen/evaluate?id={}", commonPropertiesConfig.getDomainApp(), dto.getId()));
- weChatSendMessageDto.setMsgId(dto.getId().toString());
- JSONObject data = new JSONObject();
- data.put("thing1.DATA", templatePlan.getName());
- data.put("time2.DATA", sdf.format(templatePlan.getStartTime()));
- data.put("time3.DATA", sdf.format(templatePlan.getEndTime()));
- data.put("thing5.DATA", "test");
- data.put("thing8.DATA", "test");
- weChatSendMessageDto.setContent(data);
- weChatService.sendTemplateMessage(weChatSendMessageDto);
- }
- return true;
- }
- }
|