SubjectUserServiceImpl.java 3.14 KB
package com.bsth.service.subject.impl;
 
import com.bsth.data.schedule.DayOfSchedule;
import com.bsth.entity.Line;
import com.bsth.entity.realcontrol.ScheduleRealInfo;
import com.bsth.entity.subject.SubjectUser;
import com.bsth.entity.sys.SysUser;
import com.bsth.repository.LineRepository;
import com.bsth.repository.subject.SubjectUserRepository;
import com.bsth.security.util.SecurityUtils;
import com.bsth.service.impl.BaseServiceImpl; 
import com.bsth.service.subject.SubjectUserService;
import com.bsth.util.subject.subEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;

@Service
public class SubjectUserServiceImpl extends BaseServiceImpl<SubjectUser, Integer> implements SubjectUserService {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    
    @Autowired
    SubjectUserRepository subjectUserRepository;
    @Autowired
    LineRepository lineRepository;
    @Autowired
    DayOfSchedule dayOfSchedule;

    public List<SubjectUser> userAll(){
        SysUser user = SecurityUtils.getCurrentUser();
        Integer userId = user.getId();
        
        String ksstatus = user.getKsstatus();//判断今天有没有考试
        String rq = sdf.format(new Date());
        List list = subjectUserRepository.userAll(rq,userId);
        return list;
    }


    public String determine(Integer id){
        
        //当前题目
        Optional<SubjectUser> subjectUser = subjectUserRepository.findById(id);
        SubjectUser sur = subjectUser.isPresent() ? subjectUser.get() : null;
        
        //线路编号 A线+用户id组成的
        SysUser user = SecurityUtils.getCurrentUser();
        String xlName = "A线-"+user.getUserName();
        Line line = lineRepository.findLineName(xlName);
        //缓存查看排班
        List<ScheduleRealInfo> sch =  dayOfSchedule.findByLineCode(line.getLineCode());
        
        
        //答题是否正确
       // String result = result(sur,sch) == true ? "0" : "1";

        //类型
        String type = sur.getSubjectId().getType();
        //判断答题是否正确
        subEnum sjm = subEnum.valueOf(type);
        String result;
        if (sur.getSubjectId().getSchStatus().equals("0")){
            List<ScheduleRealInfo> sh = sch.stream().filter(s -> s.getXlDir().equals(sur.getSubjectId().getDir())).collect(Collectors.toList());
             result = sjm.run(sur,sh) == true ? "0" : "1";
        }else {
             result = sjm.run(sur,sch) == true ? "0" : "1";
        }
   
        SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        // 修改日期
        String updateDate = formatter.format(date);
        
        //修改答案
        int status  = subjectUserRepository.updates(result,user.getId(),date,id);
        //List list = subjectUserRepository.userAll(sur.getRq(),sur.getUserId());
       // map.put("result",result);
        //map.put("list",list);
        if (status == 1){
            return result;
        }
        return null;
    }


   
           
     
}