package com.qxueyou.scc.admin.attendance.impl; import com.qxueyou.scc.admin.attendance.AttendanceService; import com.qxueyou.scc.base.model.Pager; import com.qxueyou.scc.base.model.Result; import com.qxueyou.scc.base.service.ICommonService; import com.qxueyou.scc.base.service.impl.CommonAppService; import com.qxueyou.scc.base.util.CollectionUtils; import com.qxueyou.scc.base.util.TraceUtils; import com.qxueyou.scc.teach.student.model.StuStudent; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @Service public class AttendanceServiceImpl extends CommonAppService implements AttendanceService { @Override public String attendanceUpAndAdd(String studentId, String subjectId) { String s=""; StringBuffer hql=new StringBuffer("from StuStudent where studentId=? and deleteFlag is false"); List args = CollectionUtils.newList(studentId); StuStudent stuStudent = findUnique(hql.toString(), args, StuStudent.class); try{ SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); //上课时间 String s1 = "9:00:00"; //如果上课时间(9点)>当前时间 String s2 = sdf.format(new Date()); int compareTo = s1.compareTo(s2); if(compareTo>0) { s="签到时间已过,本节课按照旷课处理"; stuStudent.setAttendanceStatus("旷课"); } else { String s3 = "8:50:00"; compareTo = s2.compareTo(s3); if(compareTo<0) { s="未到签到时间,请与上课时间前10分钟签到"; stuStudent.setAttendanceStatus("未打卡"); } else { if(stuStudent!=null && subjectId!=null){ stuStudent.setSubjectId(subjectId); stuStudent.setAttendanceStatus("已打卡"); s = "成功完成签到"; } } } } catch (Exception e) { e.printStackTrace(); } save(stuStudent); return s; } @Override public List findAttendanceList(Integer limit, Integer pageNum, String keyword, String subjectId) { StringBuffer hql=new StringBuffer("from StuStudent where name like ? and subjectId = ? and deleteFlag is false"); List args = CollectionUtils.newList(keyword + "%",subjectId); hql.append(" order by createTime desc"); List list = findList(hql.toString(), new Pager(limit, pageNum), args, StuStudent.class); return list; } @Override public Result updateAttendanceStatus(String studentId, String attendanceStatus) { StringBuffer hql=new StringBuffer("from StuStudent where studentId=? and deleteFlag is false"); List args = CollectionUtils.newList(studentId); StuStudent stuStudent = findUnique(hql.toString(), args, StuStudent.class); if(stuStudent!=null && attendanceStatus!=null){ stuStudent.setAttendanceStatus(attendanceStatus); save(stuStudent); return new Result(true); } return new Result(false); } @Override public int findAttendanceListCount(String keyword, String subjectId) { StringBuffer hql=new StringBuffer("from StuStudent where name like ? and subjectId = ? and deleteFlag is false"); List args = CollectionUtils.newList(keyword + "%",subjectId); return findCount(hql.toString(),args); } }