Showing
2 changed files
with
17 additions
and
8 deletions
... | @@ -128,15 +128,15 @@ def verify(): | ... | @@ -128,15 +128,15 @@ def verify(): |
128 | if verified_id != None: | 128 | if verified_id != None: |
129 | sql = "SELECT DATE(attendance_time) FROM student_attendance WHERE (lecture_id=%s) AND (student_id=%s) AND (DATE(attendance_time) = CURDATE());" | 129 | sql = "SELECT DATE(attendance_time) FROM student_attendance WHERE (lecture_id=%s) AND (student_id=%s) AND (DATE(attendance_time) = CURDATE());" |
130 | cursor.execute(sql, ('0', verified_id)) | 130 | cursor.execute(sql, ('0', verified_id)) |
131 | + sql = "SELECT student_name FROM student WHERE student_id = %s" | ||
132 | + cursor.execute(sql, (verified_id)) | ||
133 | + row_data = cursor.fetchone() | ||
134 | + verified_name = row_data['student_name'] | ||
131 | if cursor.rowcount == 0: | 135 | if cursor.rowcount == 0: |
132 | sql = "INSERT INTO student_attendance(lecture_id, student_id, status) VALUES (%s, %s, %s)" | 136 | sql = "INSERT INTO student_attendance(lecture_id, student_id, status) VALUES (%s, %s, %s)" |
133 | # TODO: attend / late 처리 | 137 | # TODO: attend / late 처리 |
134 | cursor.execute(sql, ('0', verified_id, 'attend')) | 138 | cursor.execute(sql, ('0', verified_id, 'attend')) |
135 | attendance_db.commit() | 139 | attendance_db.commit() |
136 | - sql = "SELECT student_name FROM student WHERE student_id = %s" | ||
137 | - cursor.execute(sql, (verified_id)) | ||
138 | - row_data = cursor.fetchone() | ||
139 | - verified_name = row_data['student_name'] | ||
140 | # log 작성 | 140 | # log 작성 |
141 | msg='[{id}] verification success'.format(id=verified_id) | 141 | msg='[{id}] verification success'.format(id=verified_id) |
142 | print(msg) | 142 | print(msg) |
... | @@ -144,7 +144,7 @@ def verify(): | ... | @@ -144,7 +144,7 @@ def verify(): |
144 | else: | 144 | else: |
145 | msg='[{id}] verification failed: already verified'.format(id=verified_id) | 145 | msg='[{id}] verification failed: already verified'.format(id=verified_id) |
146 | print(msg) | 146 | print(msg) |
147 | - send = jsonify({'status': 'already', 'student_id': verified_id}) | 147 | + send = jsonify({'status': 'already', 'student_id': verified_id, 'student_name': verified_name}) |
148 | else: | 148 | else: |
149 | # 인증 실패 | 149 | # 인증 실패 |
150 | msg='[0000000000] verification failed' | 150 | msg='[0000000000] verification failed' | ... | ... |
... | @@ -105,6 +105,7 @@ function processVideo() { | ... | @@ -105,6 +105,7 @@ function processVideo() { |
105 | let msize = new cv.Size(120, 120); | 105 | let msize = new cv.Size(120, 120); |
106 | classifier.detectMultiScale(gray, faces, 1.1, 3, 0, msize); | 106 | classifier.detectMultiScale(gray, faces, 1.1, 3, 0, msize); |
107 | // draw faces. | 107 | // draw faces. |
108 | + console.log('draw faces'); | ||
108 | for (let i = 0; i < faces.size(); ++i) { | 109 | for (let i = 0; i < faces.size(); ++i) { |
109 | let face = faces.get(i); | 110 | let face = faces.get(i); |
110 | let point1 = new cv.Point(face.x, face.y); | 111 | let point1 = new cv.Point(face.x, face.y); |
... | @@ -115,26 +116,34 @@ function processVideo() { | ... | @@ -115,26 +116,34 @@ function processVideo() { |
115 | cropped = src.roi(rect); | 116 | cropped = src.roi(rect); |
116 | let tempCanvas = document.createElement("canvas"); | 117 | let tempCanvas = document.createElement("canvas"); |
117 | cv.imshow(tempCanvas,cropped); | 118 | cv.imshow(tempCanvas,cropped); |
119 | + console.log('b64encode'); | ||
118 | if (tracker.register(face.x, face.y, face.width, face.height, Date.now())){ | 120 | if (tracker.register(face.x, face.y, face.width, face.height, Date.now())){ |
119 | let b64encoded = tempCanvas.toDataURL("image/jpeg", 1.0); | 121 | let b64encoded = tempCanvas.toDataURL("image/jpeg", 1.0); |
120 | b64encoded = b64encoded.replace('data:image/jpeg;base64,', '') | 122 | b64encoded = b64encoded.replace('data:image/jpeg;base64,', '') |
123 | + console.log('ajax post'); | ||
121 | $.ajax({ | 124 | $.ajax({ |
122 | type: "POST", | 125 | type: "POST", |
123 | url: "/verify", | 126 | url: "/verify", |
124 | dataType: "json", | 127 | dataType: "json", |
125 | data: {'image':b64encoded}, | 128 | data: {'image':b64encoded}, |
126 | success: function(data){ | 129 | success: function(data){ |
127 | - if (data.status == "success"){ | 130 | + if (data.status == "attend"){ |
128 | var newDiv = document.createElement("div"); | 131 | var newDiv = document.createElement("div"); |
129 | - var newContent = document.createTextNode("출석"); | 132 | + var newContent = document.createTextNode('[' + data.student_id + '/' + data.student_name + ']' + "출석"); |
130 | newDiv.appendChild(newContent); | 133 | newDiv.appendChild(newContent); |
131 | document.body.appendChild(newDiv); | 134 | document.body.appendChild(newDiv); |
132 | } | 135 | } |
136 | + else if (data.status == "already"){ | ||
137 | + var newDiv = document.createElement("div"); | ||
138 | + var newContent = document.createTextNode('[' + data.student_id + '/' + data.student_name + ']' + "이미 출석처리 되었습니다."); | ||
139 | + newDiv.appendChild(newContent); | ||
140 | + document.body.appendChild(newDiv); | ||
141 | + } | ||
133 | else{ | 142 | else{ |
134 | var newDiv = document.createElement("div"); | 143 | var newDiv = document.createElement("div"); |
135 | var newContent = document.createTextNode("실패"); | 144 | var newContent = document.createTextNode("실패"); |
136 | newDiv.appendChild(newContent); | 145 | newDiv.appendChild(newContent); |
137 | - document.body.appendChild(newDiv); | 146 | + document.body.appendChild(newDiv); |
138 | } | 147 | } |
139 | } | 148 | } |
140 | }); | 149 | }); | ... | ... |
-
Please register or login to post a comment