|
@@ -86,6 +86,9 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
|
|
|
@Autowired
|
|
|
private IStudyCountLogService iStudyCountLogService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IClassGradeUserService iClassGradeUserService;
|
|
|
+
|
|
|
@Override
|
|
|
public ClassGradeUserVo queryById(Long id){
|
|
|
ClassGradeUser db = this.baseMapper.selectById(id);
|
|
@@ -244,6 +247,71 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取单个用户的最新审核状态并更新
|
|
|
+ * @param bo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Boolean updateUserPeriodStatus(ClassGradeUserQueryBo bo) {
|
|
|
+ ClassPeriodStudentVo classPeriodStudentVo = baseMapper.getUserPeriodStatus(bo);
|
|
|
+ Long secLong = 0L;
|
|
|
+ Long studyLong = 0L;
|
|
|
+
|
|
|
+ SubjectStudyRecordQueryBo subjectStudyRecordQueryBo = new SubjectStudyRecordQueryBo();
|
|
|
+ subjectStudyRecordQueryBo.setGoodsId(classPeriodStudentVo.getGoodsId());
|
|
|
+ subjectStudyRecordQueryBo.setUserId(classPeriodStudentVo.getUserId());
|
|
|
+ subjectStudyRecordQueryBo.setGradeId(bo.getGradeId());
|
|
|
+ List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listSubject(subjectStudyRecordQueryBo);
|
|
|
+ for (SubjectStudyRecordVo subjectStudyRecordVo : subjectStudyRecordVos) {
|
|
|
+ secLong = new BigDecimal(secLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getSectionNum().toString())).longValue();
|
|
|
+ studyLong = new BigDecimal(studyLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getRecordNum().toString())).longValue();
|
|
|
+
|
|
|
+ }
|
|
|
+ //BigDecimal divide = new BigDecimal(studyLong.toString()).divide(new BigDecimal(secLong.toString()),2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ //classGradeStudentVo.setStudyNum(divide.multiply(new BigDecimal("100")).longValue());
|
|
|
+ //总节数
|
|
|
+ classPeriodStudentVo.setSecAllNum(secLong);
|
|
|
+ //学习节数
|
|
|
+ classPeriodStudentVo.setStuAllNum(studyLong);
|
|
|
+
|
|
|
+ //总的审核状态按照策划规则
|
|
|
+ ClassGradeUserQueryBo classGradeUserQueryBo = new ClassGradeUserQueryBo();
|
|
|
+ classGradeUserQueryBo.setGradeId(bo.getGradeId());
|
|
|
+ classGradeUserQueryBo.setUserId(classPeriodStudentVo.getUserId());
|
|
|
+ classGradeUserQueryBo.setGoodsId(classPeriodStudentVo.getGoodsId());
|
|
|
+ List<ClassPeriodUserVo> classPeriodUserVos1 = baseMapper.listPeriod(classGradeUserQueryBo);
|
|
|
+ ClassPeriodUserVo classPeriodUserVos = classPeriodUserVos1.get(0);
|
|
|
+ classPeriodUserVos.setPending(classPeriodStudentVo.getSecAllNum()-classPeriodUserVos.getPass()-classPeriodUserVos.getCheat());
|
|
|
+ classPeriodUserVos.setExamPending(classPeriodUserVos.getExamNum()-classPeriodUserVos.getExamPass()-classPeriodUserVos.getExamCheat());
|
|
|
+ //當前班級學員審核狀態 -1不可审核 0待審 1未通过 2通过
|
|
|
+ Integer gradePeriodStatus = 0; //班级里的审核状态字段,保持一致 0 未通过 1通过 2待审核 -1 不可审核
|
|
|
+ if (classPeriodStudentVo.getStuAllNum().equals(classPeriodStudentVo.getSecAllNum()) && classPeriodStudentVo.getExamNum().equals(classPeriodStudentVo.getRecordNum())){
|
|
|
+ if (classPeriodUserVos.getPending() != 0 || classPeriodUserVos.getExamPending() != 0){
|
|
|
+ classPeriodStudentVo.setAllStatus(0);
|
|
|
+ gradePeriodStatus = 2;
|
|
|
+ }else if (classPeriodUserVos.getCheat() != 0 || classPeriodUserVos.getExamCheat() != 0){
|
|
|
+ classPeriodStudentVo.setAllStatus(1);
|
|
|
+ gradePeriodStatus = 0;
|
|
|
+ }else {
|
|
|
+ classPeriodStudentVo.setAllStatus(2);
|
|
|
+ gradePeriodStatus = 1;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ classPeriodStudentVo.setAllStatus(-1);
|
|
|
+ gradePeriodStatus = -1;
|
|
|
+ }
|
|
|
+ LambdaQueryWrapper<ClassGradeUser> classGradeUser = Wrappers.lambdaQuery();
|
|
|
+ classGradeUser.eq(ClassGradeUser::getUserId, bo.getUserId());
|
|
|
+ classGradeUser.eq(ClassGradeUser::getGradeId, bo.getGradeId());
|
|
|
+ ClassGradeUser classGradeUser1 = new ClassGradeUser();
|
|
|
+ classGradeUser1.setPeriodStatus(gradePeriodStatus);
|
|
|
+ classGradeUser1.setPeriodWaitTime(DateUtils.getNowTime());
|
|
|
+ classGradeUser1.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ iClassGradeUserService.update(classGradeUser1, classGradeUser);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public Boolean updateByEditBo(ClassGradeUserEditBo bo) {
|
|
|
for (Long aLong : bo.getId()) {
|
|
@@ -326,17 +394,43 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
|
|
|
classPeriodUserVos.setPending(classPeriodStudentVo.getSecAllNum()-classPeriodUserVos.getPass()-classPeriodUserVos.getCheat());
|
|
|
classPeriodUserVos.setExamPending(classPeriodUserVos.getExamNum()-classPeriodUserVos.getExamPass()-classPeriodUserVos.getExamCheat());
|
|
|
//當前班級學員審核狀態 -1不可审核 0待審 1未通过 2通过
|
|
|
+ Integer gradePeriodStatus = 0; //班级里的审核状态字段,保持一致 0 未通过 1通过 2待审核 -1 不可审核
|
|
|
if (classPeriodStudentVo.getStuAllNum().equals(classPeriodStudentVo.getSecAllNum()) && classPeriodStudentVo.getExamNum().equals(classPeriodStudentVo.getRecordNum())){
|
|
|
if (classPeriodUserVos.getPending() != 0 || classPeriodUserVos.getExamPending() != 0){
|
|
|
classPeriodStudentVo.setAllStatus(0);
|
|
|
+ gradePeriodStatus = 2;
|
|
|
}else if (classPeriodUserVos.getCheat() != 0 || classPeriodUserVos.getExamCheat() != 0){
|
|
|
classPeriodStudentVo.setAllStatus(1);
|
|
|
+ gradePeriodStatus = 0;
|
|
|
}else {
|
|
|
classPeriodStudentVo.setAllStatus(2);
|
|
|
+ gradePeriodStatus = 1;
|
|
|
}
|
|
|
}else {
|
|
|
classPeriodStudentVo.setAllStatus(-1);
|
|
|
+ gradePeriodStatus = -1;
|
|
|
+ }
|
|
|
+ if(gradePeriodStatus.equals(classPeriodStudentVo.getPeriodStatus())){
|
|
|
+ LambdaQueryWrapper<ClassGradeUser> classGradeUser = Wrappers.lambdaQuery();
|
|
|
+ classGradeUser.eq(ClassGradeUser::getUserId, bo.getUserId());
|
|
|
+ classGradeUser.eq(ClassGradeUser::getGradeId, bo.getGradeId());
|
|
|
+ ClassGradeUser classGradeUser1 = new ClassGradeUser();
|
|
|
+ classGradeUser1.setPeriodStatus(gradePeriodStatus);
|
|
|
+ classGradeUser1.setPeriodWaitTime(DateUtils.getNowTime());
|
|
|
+ classGradeUser1.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ iClassGradeUserService.update(classGradeUser1, classGradeUser);
|
|
|
}
|
|
|
+ /* if (classPeriodStudentVo.getStuAllNum().equals(classPeriodStudentVo.getSecAllNum()) && classPeriodStudentVo.getExamNum().equals(classPeriodStudentVo.getRecordNum())){
|
|
|
+ if (classPeriodUserVos.getPending() != 0 || classPeriodUserVos.getExamPending() != 0){
|
|
|
+ classPeriodStudentVo.setAllStatus(0);
|
|
|
+ }else if (classPeriodUserVos.getCheat() != 0 || classPeriodUserVos.getExamCheat() != 0){
|
|
|
+ classPeriodStudentVo.setAllStatus(1);
|
|
|
+ }else {
|
|
|
+ classPeriodStudentVo.setAllStatus(2);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ classPeriodStudentVo.setAllStatus(-1);
|
|
|
+ }*/
|
|
|
classPeriodStudentVo.setWaitRebuildNum(classPeriodUserVos.getCheat()+classPeriodUserVos.getExamCheat());
|
|
|
if (!CollectionUtils.isEmpty(baseMapper.selectStart(classPeriodStudentVo.getUserId(),classPeriodStudentVo.getGoodsId(),classPeriodStudentVo.getGradeId()))) {
|
|
|
//查找开始学习时间
|