|
|
@@ -47,6 +47,8 @@ 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;
|
|
|
@@ -84,6 +86,7 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
|
|
|
private final XjrUserMapper xjrUserMapper;
|
|
|
private final IWeChatService weChatService;
|
|
|
private final CommonPropertiesConfig commonPropertiesConfig;
|
|
|
+ private final BaseClassMapper baseClassMapper;
|
|
|
|
|
|
|
|
|
@Override
|
|
|
@@ -111,6 +114,30 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
|
|
|
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()) {
|
|
|
@@ -123,29 +150,7 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
|
|
|
query.leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, XjrUser::getId)
|
|
|
.eq(BaseStudentSchoolRoll::getClassId, classId);
|
|
|
List<XjrUser> studentList = xjrUserMapper.selectJoinList(XjrUser.class, query);
|
|
|
- List<XjrUser> needStudentList = new ArrayList<>();
|
|
|
- if("all".equals(dto.getType())){
|
|
|
- needStudentList.addAll(studentList);
|
|
|
- }else if("random".equals(dto.getType())){
|
|
|
- int maxCount = studentList.size();//班级最大人数
|
|
|
- if(dto.getRandomNumber() > maxCount){
|
|
|
- needStudentList.addAll(studentList);
|
|
|
- }else{
|
|
|
- List<Integer> randomList = new ArrayList<>();
|
|
|
- Random random = new Random();
|
|
|
- while(randomList.size() < dto.getRandomNumber()){
|
|
|
- int nextInt = random.nextInt(studentList.size());
|
|
|
- if(!randomList.contains(nextInt) && nextInt >= 0){
|
|
|
- randomList.add(nextInt);
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- for (Integer i : randomList) {
|
|
|
- needStudentList.add(studentList.get(i));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- for (XjrUser xjrUser : needStudentList) {
|
|
|
+ for (XjrUser xjrUser : studentList) {
|
|
|
AssessmentPlanAnswerStudent answer = new AssessmentPlanAnswerStudent();
|
|
|
answer.setAssessmentTemplatePlanId(assessmentTemplatePlan.getId());
|
|
|
answer.setStudentUserId(xjrUser.getId());
|
|
|
@@ -187,6 +192,31 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
|
|
|
//删除班级和学生
|
|
|
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();
|
|
|
@@ -198,29 +228,7 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
|
|
|
query.leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, XjrUser::getId)
|
|
|
.eq(BaseStudentSchoolRoll::getClassId, classId);
|
|
|
List<XjrUser> studentList = xjrUserMapper.selectJoinList(XjrUser.class, query);
|
|
|
- List<XjrUser> needStudentList = new ArrayList<>();
|
|
|
- if("all".equals(dto.getType())){
|
|
|
- needStudentList.addAll(studentList);
|
|
|
- }else if("random".equals(dto.getType())){
|
|
|
- int maxCount = studentList.size();//班级最大人数
|
|
|
- if(dto.getRandomNumber() > maxCount){
|
|
|
- needStudentList.addAll(studentList);
|
|
|
- }else{
|
|
|
- List<Integer> randomList = new ArrayList<>();
|
|
|
- Random random = new Random();
|
|
|
- while(randomList.size() < dto.getRandomNumber()){
|
|
|
- int nextInt = random.nextInt(studentList.size());
|
|
|
- if(!randomList.contains(nextInt) && nextInt >= 0){
|
|
|
- randomList.add(nextInt);
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- for (Integer i : randomList) {
|
|
|
- needStudentList.add(studentList.get(i));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- for (XjrUser xjrUser : needStudentList) {
|
|
|
+ for (XjrUser xjrUser : studentList) {
|
|
|
AssessmentPlanAnswerStudent answer = new AssessmentPlanAnswerStudent();
|
|
|
answer.setAssessmentTemplatePlanId(assessmentTemplatePlan.getId());
|
|
|
answer.setStudentUserId(xjrUser.getId());
|