From 26780c533f2c2af6b9216306f649c1bcede94e4a Mon Sep 17 00:00:00 2001
From: yn147 <2270338776@qq.com>
Date: 星期五, 24 十一月 2023 16:43:37 +0800
Subject: [PATCH] 学生、课程

---
 src/main/java/com/qxueyou/scc/admin/attendance/impl/AttendanceServiceImpl.java |  114 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 80 insertions(+), 34 deletions(-)

diff --git a/src/main/java/com/qxueyou/scc/admin/attendance/impl/AttendanceServiceImpl.java b/src/main/java/com/qxueyou/scc/admin/attendance/impl/AttendanceServiceImpl.java
index f3ce5c1..f78e29a 100644
--- a/src/main/java/com/qxueyou/scc/admin/attendance/impl/AttendanceServiceImpl.java
+++ b/src/main/java/com/qxueyou/scc/admin/attendance/impl/AttendanceServiceImpl.java
@@ -1,12 +1,12 @@
 package com.qxueyou.scc.admin.attendance.impl;
 
 import com.qxueyou.scc.admin.attendance.AttendanceService;
-import com.qxueyou.scc.base.service.ICommonService;
+import com.qxueyou.scc.base.model.Pager;
+import com.qxueyou.scc.base.model.Result;
 import com.qxueyou.scc.base.service.impl.CommonAppService;
 import com.qxueyou.scc.base.util.CollectionUtils;
 import com.qxueyou.scc.teach.student.model.StuStudent;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
+import com.qxueyou.scc.teach.subject.model.Subject;
 import org.springframework.stereotype.Service;
 
 import java.text.SimpleDateFormat;
@@ -17,50 +17,52 @@
 public class AttendanceServiceImpl extends CommonAppService implements AttendanceService {
 
     @Override
-    public String attendanceUpAndAdd(String studentId, String subjectId) {
+    public String attendanceUpAndAdd(String userId, String subjectId, String subjectName) {
         String s="";
+
+        StringBuffer hql=new StringBuffer("from StuStudent where userId=? and deleteFlag is false");
+
+        List<Object> args = CollectionUtils.newList(userId);
+
+        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);
+            String hqlTwo = "from Subject where name = ?";
+            List<Object> argsTwo = CollectionUtils.newList(subjectName);
+            Subject subject = findUnique(hqlTwo,argsTwo,Subject.class);
+            //缁撴潫鏃堕棿
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String classTime = sdf.format(subject.getEndTime());
+            //褰撳墠鏃堕棿
+            String currentTime = sdf.format(new Date());
+            //娣诲姞subjectId
+            if(subject.getSubjectId() == subjectId){
+                stuStudent.setSubjectId(subjectId);
+            }else {
+                stuStudent.setSubjectId(subject.getSubjectId());
+            }
+            //缁撴潫鏃堕棿 >褰撳墠鏃堕棿
+            int compareTo = classTime.compareTo(currentTime);
             if(compareTo>0)
             {
-                s="签到时间已过,本节课按照旷课处理";
-                StringBuffer hql=new StringBuffer("from StuStudent where studentId=? and deleteFlag is false");
-
-                List<Object> args = CollectionUtils.newList(studentId);
-
-                StuStudent stuStudent = findUnique(hql.toString(), args, StuStudent.class);
-
-                if(stuStudent!=null && subjectId!=null){
-                    stuStudent.setSubjectId(subjectId);
-                    save(stuStudent);
-                    s = "成功完成签到";
-                }
+                s="绛惧埌鏃堕棿宸茶繃";
+                stuStudent.setAttendanceStatus(stuStudent.STATUS_TRUANCY);
             }
             else
             {
-                String s3 = "8:50:00";
-                compareTo = s2.compareTo(s3);
+                //鎵撳崱鏃堕棿
+                String clockTime = sdf.format(subject.getStartTime());
+                compareTo = currentTime.compareTo(clockTime);
                 if(compareTo<0)
                 {
-                    s="未到签到时间,请与上课时间前10分钟签到";
+                    s="鏈埌绛惧埌鏃堕棿";
+                    stuStudent.setAttendanceStatus(stuStudent.STATUS_NO_CLOCKING);
                 }
                 else
                 {
-                    StringBuffer hql=new StringBuffer("from StuStudent where studentId=? and deleteFlag is false");
-
-                    List<Object> args = CollectionUtils.newList(studentId);
-
-                    StuStudent stuStudent = findUnique(hql.toString(), args, StuStudent.class);
-
                     if(stuStudent!=null && subjectId!=null){
-                        stuStudent.setSubjectId(subjectId);
-                        save(stuStudent);
-                        return "成功完成签到";
+                        stuStudent.setAttendanceStatus(stuStudent.STATUS_PUNCHE);
+                        s = "鎴愬姛绛惧埌";
                     }
                 }
             }
@@ -69,6 +71,50 @@
         {
             e.printStackTrace();
         }
+        save(stuStudent);
         return s;
     }
+
+    @Override
+    public List<StuStudent> findAttendanceList(Integer limit, Integer pageNum, String keyword, String classId) {
+        StringBuffer hql=new StringBuffer("from StuStudent where name like ? and classId = ? and deleteFlag is false");
+
+        List<Object> args = CollectionUtils.newList(keyword + "%",classId);
+
+        hql.append(" order by createTime desc");
+
+        List<StuStudent> list = findList(hql.toString(), new Pager(limit, pageNum), args, StuStudent.class);
+
+        return list;
+    }
+
+    @Override
+    public Result updateAttendanceStatus(String[] studentId, String attendanceStatus) {
+        boolean pd = true;
+        for (String studentIds: studentId){
+            StringBuffer hql=new StringBuffer("from StuStudent where studentId=? and deleteFlag is false");
+
+            List<Object> args = CollectionUtils.newList(studentIds);
+
+            StuStudent stuStudent = findUnique(hql.toString(), args, StuStudent.class);
+
+            if(stuStudent!=null && attendanceStatus!=null){
+                stuStudent.setAttendanceStatus(attendanceStatus);
+                save(stuStudent);
+                pd = true;
+            }else {
+                pd = false;
+            }
+        }
+        return new Result(pd);
+    }
+
+    @Override
+    public int findAttendanceListCount(String keyword, String subjectId) {
+        StringBuffer hql=new StringBuffer("from StuStudent where name like ? and subjectId = ? and deleteFlag is false");
+
+        List<Object> args = CollectionUtils.newList(keyword + "%",subjectId);
+
+        return findCount(hql.toString(),args);
+    }
 }

--
Gitblit v1.8.0