Commit eda18c424b84b43669891b97649ef0475996ec52
1 parent
f06e2b0e
Exists in
master
晨检机器人移动端接口初步完成
Showing
23 changed files
with
460 additions
and
72 deletions
Show diff stats
springboot/morning-check/src/main/java/com/sincere/morningcheck/MorningCheckApplication.java
1 | 1 | package com.sincere.morningcheck; |
2 | 2 | |
3 | -import org.mybatis.spring.annotation.MapperScan; | |
4 | 3 | import org.springframework.boot.SpringApplication; |
5 | -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; | |
6 | 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; |
7 | 5 | import org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration; |
8 | 6 | import org.springframework.context.annotation.Bean; | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/common/MD5.java
... | ... | @@ -30,6 +30,7 @@ public class MD5 { |
30 | 30 | public static boolean verify(String text, String key, String md5) throws Exception { |
31 | 31 | //根据传入的密钥进行验证 |
32 | 32 | String md5Text = md5(text, key); |
33 | + System.out.println("签名:"+md5Text); | |
33 | 34 | if(md5Text.equalsIgnoreCase(md5)) |
34 | 35 | { |
35 | 36 | return true; | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/config/CustomConfiguration.java
0 → 100644
... | ... | @@ -0,0 +1,18 @@ |
1 | +package com.sincere.morningcheck.config; | |
2 | + | |
3 | + | |
4 | +import org.springframework.beans.factory.annotation.Autowired; | |
5 | +import org.springframework.context.annotation.Configuration; | |
6 | +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; | |
7 | +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; | |
8 | + | |
9 | +@Configuration | |
10 | +public class CustomConfiguration implements WebMvcConfigurer { | |
11 | + @Autowired | |
12 | + private MessageProperties config; //用来获取file-message.properties配置文件中的信息 | |
13 | + public void addResourceHandlers(ResourceHandlerRegistry registry) { | |
14 | + //上传的图片在D盘下的E:/MorningRobot/UploadData/images/目录下,访问路径如:http://localhost:8081/images/1.jpg | |
15 | + //其中images表示访问的前缀。"file:E:/MorningRobot/UploadData/images/"是文件真实的存储路径 | |
16 | + registry.addResourceHandler("/images/**").addResourceLocations("file:"+config.getUpPath()); | |
17 | + } | |
18 | +} | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/config/Swagger2.java
... | ... | @@ -28,7 +28,7 @@ public class Swagger2 { |
28 | 28 | private ApiInfo apiInfo() { |
29 | 29 | return new ApiInfoBuilder() |
30 | 30 | .title("晨检机使用的WebApi说明文档") |
31 | - .contact(new Contact("Ziv","localhost:8080/swagger-ui.html","")) | |
31 | + .contact(new Contact("Ziv","localhost:8999/swagger-ui.html","")) | |
32 | 32 | .description("") |
33 | 33 | .termsOfServiceUrl("") |
34 | 34 | .version("2.0") | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/controller/CheckReportController.java
0 → 100644
... | ... | @@ -0,0 +1,34 @@ |
1 | +package com.sincere.morningcheck.controller; | |
2 | + | |
3 | +import com.sincere.morningcheck.common.ServerResponse; | |
4 | +import com.sincere.morningcheck.model.ApiStudentCheckReport; | |
5 | +import com.sincere.morningcheck.service.StudentCheckReportService; | |
6 | +import io.swagger.annotations.Api; | |
7 | +import io.swagger.annotations.ApiImplicitParam; | |
8 | +import io.swagger.annotations.ApiOperation; | |
9 | + | |
10 | +import org.springframework.beans.factory.annotation.Autowired; | |
11 | +import org.springframework.web.bind.annotation.GetMapping; | |
12 | +import org.springframework.web.bind.annotation.RequestMapping; | |
13 | +import org.springframework.web.bind.annotation.RequestParam; | |
14 | +import org.springframework.web.bind.annotation.RestController; | |
15 | + | |
16 | + | |
17 | +@RestController | |
18 | +@RequestMapping("check_report") | |
19 | +@Api(value = "CheckReportController",tags = "晨检机检查报告接口") | |
20 | +public class CheckReportController { | |
21 | + | |
22 | + | |
23 | + @Autowired | |
24 | + StudentCheckReportService studentCheckReportService; | |
25 | + @ApiOperation(value = "根据学生的用户ID获取学生晨检报告") | |
26 | + @ApiImplicitParam(name="stuUserId",value = "学生用户ID",required = true) | |
27 | + @GetMapping("getCheckReport") | |
28 | + public ServerResponse<ApiStudentCheckReport> getCheckReport(@RequestParam String stuUserId){ | |
29 | + | |
30 | + return studentCheckReportService.getCheckReport(stuUserId); | |
31 | + } | |
32 | + | |
33 | + | |
34 | +} | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/controller/MorningCheckController.java
... | ... | @@ -5,8 +5,10 @@ import com.sincere.morningcheck.common.MD5; |
5 | 5 | import com.sincere.morningcheck.common.ServerResponse; |
6 | 6 | import com.sincere.morningcheck.model.School; |
7 | 7 | import com.sincere.morningcheck.model.Student; |
8 | +import com.sincere.morningcheck.model.StudentCheckReport; | |
8 | 9 | import com.sincere.morningcheck.model.User; |
9 | 10 | import com.sincere.morningcheck.service.FileUpAndDownService; |
11 | +import com.sincere.morningcheck.service.StudentCheckReportService; | |
10 | 12 | import com.sincere.morningcheck.service.StudentService; |
11 | 13 | import com.sincere.morningcheck.service.UserServer; |
12 | 14 | import com.sincere.morningcheck.service.impl.FileUpAndDownServiceImpl; |
... | ... | @@ -22,6 +24,9 @@ import org.springframework.beans.factory.annotation.Value; |
22 | 24 | import org.springframework.web.bind.annotation.*; |
23 | 25 | import org.springframework.web.multipart.MultipartFile; |
24 | 26 | |
27 | +import javax.servlet.http.HttpServletRequest; | |
28 | +import javax.servlet.http.HttpServletResponse; | |
29 | +import javax.servlet.http.HttpSession; | |
25 | 30 | import java.text.ParseException; |
26 | 31 | import java.text.SimpleDateFormat; |
27 | 32 | import java.util.Calendar; |
... | ... | @@ -39,7 +44,6 @@ public class MorningCheckController { |
39 | 44 | @Value("${salt}") |
40 | 45 | private String salt; |
41 | 46 | |
42 | - EhcacheUtil ehcacheUtil = new EhcacheUtil(); | |
43 | 47 | @Autowired |
44 | 48 | UserServer userServer; |
45 | 49 | |
... | ... | @@ -49,6 +53,9 @@ public class MorningCheckController { |
49 | 53 | @Autowired |
50 | 54 | FileUpAndDownService fileUpAndDownService; |
51 | 55 | |
56 | + @Autowired | |
57 | + StudentCheckReportService studentCheckReportService; | |
58 | + | |
52 | 59 | @ApiOperation("设备请求登陆接口") |
53 | 60 | @ApiImplicitParams ({ |
54 | 61 | @ApiImplicitParam(name = "deviceNo", value = "设备号", dataType = "String",required = true,paramType = "query"), |
... | ... | @@ -56,9 +63,8 @@ public class MorningCheckController { |
56 | 63 | @ApiImplicitParam(name = "authSign", value = "签名", dataType = "String",required = true,paramType = "query"), |
57 | 64 | }) |
58 | 65 | @PostMapping("login") |
59 | - public ServerResponse login(@RequestParam String deviceNo, @RequestParam String password,@RequestParam String authSign){ | |
66 | + public ServerResponse login(HttpServletRequest request,@RequestParam String deviceNo, @RequestParam String password,@RequestParam String authSign){ | |
60 | 67 | |
61 | -// System.out.println("传入的参数:设备号"+deviceNo+",密码:"+password+",签名"+authSign); | |
62 | 68 | ServerResponse serverResponse = null; |
63 | 69 | |
64 | 70 | Map map = new HashMap(); |
... | ... | @@ -72,14 +78,15 @@ public class MorningCheckController { |
72 | 78 | System.out.println(signUrl); |
73 | 79 | // String md5 = MD5.md5(signUrl, salt); |
74 | 80 | boolean verify = MD5.verify(signUrl,salt,authSign); |
75 | - System.out.println("签名是否正确"+verify); | |
76 | 81 | |
77 | 82 | if(verify) { |
78 | 83 | |
79 | 84 | User user = userServer.getDeviceUser(deviceNo); |
80 | 85 | user.setParameter("0"); |
81 | 86 | user.setToken(token); |
82 | - ehcacheUtil.set("deviceId",user.getDeviceId()); | |
87 | + HttpSession session = request.getSession(); | |
88 | + session.setAttribute("deviceId",user.getDeviceId()); | |
89 | + session.setMaxInactiveInterval(-1);//从不过期 | |
83 | 90 | serverResponse = ServerResponse.createBySuccess("success",user); |
84 | 91 | |
85 | 92 | }else{ |
... | ... | @@ -148,9 +155,8 @@ public class MorningCheckController { |
148 | 155 | "时间格式为 : yyyy-MM-dd-HH-mm-ss", dataType = "String",paramType = "query") |
149 | 156 | }) |
150 | 157 | @PostMapping("signByCard") |
151 | - public ServerResponse swipeCard(@RequestParam String token,@RequestParam String cardNo,@RequestParam Integer imageId,@RequestParam String authSign,@RequestParam(required = false) String date){ | |
158 | + public ServerResponse swipeCard(HttpServletRequest request,@RequestParam String token,@RequestParam String cardNo,@RequestParam Integer imageId,@RequestParam String authSign,@RequestParam(required = false) String date){ | |
152 | 159 | |
153 | -// System.out.println("刷卡签到传入的参数:卡号"+cardNo+",图片ID:"+imageId+",签名"+authSign); | |
154 | 160 | LogUtil.printInfoLog("刷卡签到传入的参数:卡号"+cardNo+",图片ID:"+imageId+",签名"+authSign); |
155 | 161 | ServerResponse serverResponse = null; |
156 | 162 | |
... | ... | @@ -185,21 +191,16 @@ public class MorningCheckController { |
185 | 191 | boolean verify = MD5.verify(signUrl,salt,authSign); |
186 | 192 | System.out.println("签名是否正确"+verify); |
187 | 193 | if(verify) { |
188 | - int index = imageId -1; | |
189 | - if(FileUpAndDownServiceImpl.globalFileEntities.size()>0) { | |
190 | - System.out.println("对应图像地址:" + FileUpAndDownServiceImpl.globalFileEntities.get(index).getImgObPath()); | |
191 | - } | |
192 | - //卡号,图片,刷卡时间(如果没有, 当前时间),设备号 | |
193 | - System.out.println("卡号:"+cardNo+",图片ID"+imageId+",设备标识:"+ehcacheUtil.get("deviceId")+",当前时间"+date+",刷进设备的卡号是:"+card); | |
194 | - | |
194 | + HttpSession session = request.getSession(); | |
195 | + String deviceId = session.getAttribute("deviceId").toString(); | |
195 | 196 | Map<String,Object> hashMap = new HashMap<>(); |
196 | 197 | //设备编号 |
197 | - hashMap.put("att_id",ehcacheUtil.get("deviceId")); | |
198 | + hashMap.put("att_id",deviceId); | |
198 | 199 | hashMap.put("card_num",card); |
199 | 200 | hashMap.put("func_no","08"); |
200 | 201 | hashMap.put("flag",0); |
201 | 202 | hashMap.put("intime",dateIn); |
202 | - System.out.println(dateIn); | |
203 | + System.out.println(deviceId); | |
203 | 204 | |
204 | 205 | studentService.swipeCard(hashMap); |
205 | 206 | System.out.println("集合数量:"+hashMap.size()); |
... | ... | @@ -232,9 +233,8 @@ public class MorningCheckController { |
232 | 233 | @ApiImplicitParam(name = "authSign", value = "签名", dataType = "String",required = true,paramType = "query") |
233 | 234 | }) |
234 | 235 | @PostMapping("signOutByCard") |
235 | - public ServerResponse signOutByCard(@RequestParam String token,@RequestParam String cardNo,@RequestParam Integer imageId,@RequestParam String authSign){ | |
236 | + public ServerResponse signOutByCard(HttpServletRequest request,@RequestParam String token,@RequestParam String cardNo,@RequestParam Integer imageId,@RequestParam String authSign){ | |
236 | 237 | |
237 | -// System.out.println("离园签到传入的参数:卡号"+cardNo+",图片ID:"+imageId+",签名"+authSign); | |
238 | 238 | ServerResponse serverResponse = null; |
239 | 239 | LogUtil.printInfoLog("离园签到传入的参数:卡号"+cardNo+",图片ID:"+imageId+",签名"+authSign); |
240 | 240 | |
... | ... | @@ -251,15 +251,10 @@ public class MorningCheckController { |
251 | 251 | boolean verify = MD5.verify(signUrl,salt,authSign); |
252 | 252 | System.out.println("签名是否正确"+verify); |
253 | 253 | if(verify) { |
254 | - | |
255 | - int index = imageId -1; | |
256 | - if(FileUpAndDownServiceImpl.globalFileEntities.size()>0) { | |
257 | - System.out.println("对应图像地址:" + FileUpAndDownServiceImpl.globalFileEntities.get(index).getImgObPath()); | |
258 | - } | |
259 | - //卡号,图片,刷卡时间(如果没有, 当前时间),设备号 | |
260 | - System.out.println("卡号:"+cardNo+",图片ID"+imageId+",设备标识:"+ehcacheUtil.get("deviceId")+",刷进设备的卡号是:"+card); | |
254 | + HttpSession session = request.getSession(); | |
255 | + String deviceId = session.getAttribute("deviceId").toString(); | |
261 | 256 | Map<String,Object> hashMap = new HashMap<>(); |
262 | - hashMap.put("att_id",ehcacheUtil.get("deviceId")); | |
257 | + hashMap.put("att_id",deviceId); | |
263 | 258 | hashMap.put("card_num",card); |
264 | 259 | hashMap.put("func_no","08"); |
265 | 260 | hashMap.put("flag",0); |
... | ... | @@ -272,8 +267,7 @@ public class MorningCheckController { |
272 | 267 | String msg = String.format("学生%s你好",student.getStuName()); |
273 | 268 | serverResponse = ServerResponse.createBySuccessMessage(msg); |
274 | 269 | }else{ |
275 | - | |
276 | - serverResponse = ServerResponse.createByErrorMessage("签名失败"); | |
270 | + serverResponse = ServerResponse.createByErrorMessage("签名校验失败"); | |
277 | 271 | } |
278 | 272 | } |
279 | 273 | catch (Exception ex){ |
... | ... | @@ -293,11 +287,7 @@ public class MorningCheckController { |
293 | 287 | }) |
294 | 288 | public ServerResponse moreFileUpload(@RequestParam(value = "file", required = false) MultipartFile[] file, @RequestParam(value = "token") String token, @RequestParam(value="type") String type,@RequestParam String authSign) { |
295 | 289 | |
296 | - | |
297 | 290 | LogUtil.printInfoLog("上传多个文件传入的类型:"+type+",签名:"+authSign); |
298 | -// System.out.println("上传多个文件传入的类型:"+type+",签名:"+authSign); | |
299 | - | |
300 | - System.out.println("文件数量:"+file.length); | |
301 | 291 | |
302 | 292 | ServerResponse serverResponse = null; |
303 | 293 | Map map = new HashMap(); |
... | ... | @@ -306,24 +296,22 @@ public class MorningCheckController { |
306 | 296 | |
307 | 297 | String[] fileNames = type.split("_"); |
308 | 298 | if(fileNames.length != file.length){ |
309 | - System.out.println("类型数量和文件数量不一致,程序中断"); | |
310 | 299 | return ServerResponse.createByErrorMessage("类型数量和文件数量不一致,程序中断"); |
311 | - }else { | |
312 | - System.out.println("类型数量和文件数量一致,文件已经上传"); | |
313 | 300 | } |
301 | + | |
314 | 302 | String queryUrl = DataConvertHelper.mapAscSortToUrl(map); |
315 | 303 | try { |
316 | 304 | String signUrl = queryUrl.replace("&",""); |
317 | 305 | // String md5 = MD5.md5(signUrl, salt); |
318 | 306 | boolean verify = MD5.verify(signUrl,salt,authSign); |
319 | - System.out.println("签名是否正确"+verify); | |
320 | 307 | if(verify) { |
321 | 308 | try { |
322 | 309 | serverResponse = fileUpAndDownService.uploadPicture(file,fileNames); |
323 | 310 | } catch (Exception e) { |
324 | - System.out.println(">>>>>>图片上传异常,ex="+e.getMessage()); | |
325 | 311 | serverResponse = ServerResponse.createByErrorMessage(String.format(">>>>>>图片上传异常,e=%s", e.getMessage())); |
326 | 312 | } |
313 | + }else{ | |
314 | + serverResponse = ServerResponse.createByErrorMessage("签名校验失败"); | |
327 | 315 | } |
328 | 316 | } |
329 | 317 | catch (Exception ex){ |
... | ... | @@ -351,14 +339,9 @@ public class MorningCheckController { |
351 | 339 | @PostMapping("uploadCheckReport") |
352 | 340 | public ServerResponse uploadCheckReport(@RequestParam String token,@RequestParam String cardNo,@RequestParam String result,@RequestParam String robotResult,@RequestParam String access,@RequestParam String temperature,@RequestParam(required = false) String handImgId,@RequestParam(required = false) String mouthImgId,@RequestParam(required = false) String eyeImgId,@RequestParam String authSign){ |
353 | 341 | |
354 | -// System.out.println("传入的参数:卡号"+cardNo+",检查结果:"+result+",检查机判断结果:"+robotResult+",签名"+authSign); | |
355 | - LogUtil.printInfoLog("传入的参数:卡号"+cardNo+",检查结果:"+result+",检查机判断结果:"+robotResult+",签名"+authSign); | |
356 | - System.out.println("嘴部异常图片ID:"+mouthImgId); | |
357 | - System.out.println("手部异常图片ID:"+handImgId); | |
358 | - System.out.println("眼部异常图片ID:"+eyeImgId); | |
359 | - System.out.println("入园许可。 Y : 入园 N:离园:入园情况:"+access); | |
342 | + LogUtil.printInfoLog("传入的参数:卡号"+cardNo+",检查结果:"+result+",检查机判断结果:"+robotResult+",签名"+authSign+"入园许可。 Y : 入园 N:离园:入园情况:"+access); | |
360 | 343 | |
361 | - ServerResponse serverResponse = null; | |
344 | + ServerResponse serverResponse; | |
362 | 345 | |
363 | 346 | String card = DataConvertHelper.distToX(Long.valueOf(cardNo)); |
364 | 347 | |
... | ... | @@ -377,20 +360,26 @@ public class MorningCheckController { |
377 | 360 | try { |
378 | 361 | String signUrl = queryUrl.replace("&",""); |
379 | 362 | boolean verify = MD5.verify(signUrl,salt,authSign); |
380 | - System.out.println("签名是否正确"+verify); | |
381 | 363 | if(verify) { |
364 | + StudentCheckReport studentCheckReport = new StudentCheckReport(); | |
365 | + studentCheckReport.setAccess(access); | |
366 | + studentCheckReport.setCardNo(card); | |
367 | + studentCheckReport.setCheckResult(result); | |
368 | + studentCheckReport.setRobotResult(robotResult); | |
369 | + java.sql.Date checkDate = new java.sql.Date(new Date().getTime()); | |
370 | + studentCheckReport.setCheckTime(checkDate); | |
371 | + studentCheckReport.setInTime(checkDate); | |
372 | + studentCheckReport.setTemperature(temperature); | |
373 | + studentCheckReport.setEyeImgId(eyeImgId); | |
374 | + studentCheckReport.setHandImgId(handImgId); | |
375 | + studentCheckReport.setMouthImgId(mouthImgId); | |
382 | 376 | |
383 | -// int index = handImgId -1; | |
384 | -// System.out.println("手部异常图像地址:"+FileUpAndDownServiceImpl.globalFileEntities.get(index).getImgObPath()); | |
385 | -// index = mouthImgId -1; | |
386 | -// System.out.println("嘴部异常图像地址:"+FileUpAndDownServiceImpl.globalFileEntities.get(index).getImgObPath()); | |
387 | -// index = eyeImgId -1; | |
388 | -// System.out.println("眼部异常图像地址:"+FileUpAndDownServiceImpl.globalFileEntities.get(index).getImgObPath()); | |
389 | - //卡号,图片,刷卡时间(如果没有, 当前时间),设备号 | |
390 | - System.out.println("卡号:"+cardNo+",图片ID"+handImgId+",设备标识:"+ehcacheUtil.get("deviceId")+",刷进设备的卡号是:"+card); | |
391 | 377 | //message: 学生姓名你好 |
392 | 378 | Student student = studentService.getStudentByCardNo(card); |
393 | 379 | String msg = String.format("学生%s你好,你的晨检报告已经自动生成",student.getStuName()); |
380 | + studentCheckReport.setStudent_id(student.getStuId()); | |
381 | + studentCheckReportService.insert(studentCheckReport); | |
382 | + | |
394 | 383 | serverResponse = ServerResponse.createBySuccessMessage(msg); |
395 | 384 | }else{ |
396 | 385 | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/FileDao.java
0 → 100644
... | ... | @@ -0,0 +1,12 @@ |
1 | +package com.sincere.morningcheck.dao; | |
2 | + | |
3 | +import com.sincere.morningcheck.model.FileEntity; | |
4 | +import org.apache.ibatis.annotations.Mapper; | |
5 | +import org.springframework.stereotype.Repository; | |
6 | + | |
7 | +@Mapper | |
8 | +@Repository | |
9 | +public interface FileDao { | |
10 | + | |
11 | + int insert(FileEntity fileEntity); | |
12 | +} | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/StudentCheckReportDao.java
0 → 100644
... | ... | @@ -0,0 +1,15 @@ |
1 | +package com.sincere.morningcheck.dao; | |
2 | + | |
3 | +import com.sincere.morningcheck.model.StudentCheckReport; | |
4 | +import org.apache.ibatis.annotations.Mapper; | |
5 | +import org.apache.ibatis.annotations.Param; | |
6 | +import org.springframework.stereotype.Repository; | |
7 | + | |
8 | +@Mapper | |
9 | +@Repository | |
10 | +public interface StudentCheckReportDao { | |
11 | + | |
12 | + int insert(StudentCheckReport studentCheckReport); | |
13 | + | |
14 | + StudentCheckReport getCheckReport(@Param("studentId") Integer studentId); | |
15 | +} | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/StudentDao.java
springboot/morning-check/src/main/java/com/sincere/morningcheck/model/ApiStudentCheckReport.java
0 → 100644
... | ... | @@ -0,0 +1,36 @@ |
1 | +package com.sincere.morningcheck.model; | |
2 | + | |
3 | +import io.swagger.annotations.ApiModel; | |
4 | +import io.swagger.annotations.ApiModelProperty; | |
5 | +import lombok.Data; | |
6 | + | |
7 | +import java.sql.Date; | |
8 | + | |
9 | +/** | |
10 | + * 接口使用类 检查报告 | |
11 | + */ | |
12 | +@Data | |
13 | +@ApiModel | |
14 | +public class ApiStudentCheckReport { | |
15 | + | |
16 | + @ApiModelProperty(name="id",value = "检查报告标识") | |
17 | + private Integer id; | |
18 | + | |
19 | + @ApiModelProperty(name="isMorningCheck",value = "判断是否有晨检") | |
20 | + private Boolean isMorningCheck; | |
21 | + | |
22 | + @ApiModelProperty(name="student_id",value = "学生标识") | |
23 | + private Integer student_id; | |
24 | + | |
25 | + @ApiModelProperty(name="cardNo",value = "学生卡号") | |
26 | + private String cardNo; | |
27 | + | |
28 | + @ApiModelProperty(name="temperature",value = "温度") | |
29 | + private String temperature; //json字符串 | |
30 | + | |
31 | + @ApiModelProperty(name="CheckTime",value = "检查报告时间") | |
32 | + private String checkTime; | |
33 | + | |
34 | + @ApiModelProperty(name="checkResultObj",value = "检查报告") | |
35 | + private CheckResult checkResultObj; | |
36 | +} | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/model/CheckResult.java
0 → 100644
... | ... | @@ -0,0 +1,49 @@ |
1 | +package com.sincere.morningcheck.model; | |
2 | + | |
3 | +import io.swagger.annotations.ApiModel; | |
4 | +import io.swagger.annotations.ApiModelProperty; | |
5 | +import lombok.Data; | |
6 | + | |
7 | +/** | |
8 | + * 人为判断结果 | |
9 | + */ | |
10 | +@Data | |
11 | +@ApiModel | |
12 | +public class CheckResult { | |
13 | + | |
14 | + @ApiModelProperty(name = "handNoEx",value = "00位,手足是否正常,true正常,false不正常") | |
15 | + private Boolean handNoEx; | |
16 | + | |
17 | + @ApiModelProperty(name = "mouthNoEx",value = "01位,口腔是否正常,true正常,false不正常") | |
18 | + private Boolean mouthNoEx; | |
19 | + | |
20 | + @ApiModelProperty(name = "noRedEye",value = "02位,true正常,false红眼") | |
21 | + private Boolean noRedEye; | |
22 | + | |
23 | + @ApiModelProperty(name = "noFever",value = "03位,true正常,false发烧") | |
24 | + private Boolean noFever; | |
25 | + | |
26 | + @ApiModelProperty(name = "noCrotchBig",value = "04位,true正常,false腮部肿大") | |
27 | + private Boolean noCrotchBig; | |
28 | + | |
29 | + @ApiModelProperty(name = "noPoorSpirit",value = "05,true正常,false精神不佳") | |
30 | + private Boolean noPoorSpirit; | |
31 | + | |
32 | + @ApiModelProperty(name = "noPharyngitis",value = "06,true正常,false咽炎") | |
33 | + private Boolean noPharyngitis; | |
34 | + | |
35 | + @ApiModelProperty(name = "noTrauma",value = "07,true正常,false外伤") | |
36 | + private Boolean noTrauma; | |
37 | + | |
38 | + @ApiModelProperty(name = "noCough",value = "08,true正常,false咳嗽") | |
39 | + private Boolean noCough; | |
40 | + | |
41 | + @ApiModelProperty(name = "noNail",value = "09,true正常,false过长") | |
42 | + private Boolean noNail; | |
43 | + | |
44 | + @ApiModelProperty(name = "noToothDecay",value = "10,true正常,false蛀牙") | |
45 | + private Boolean noToothDecay; | |
46 | + | |
47 | + @ApiModelProperty(name = "other",value = "true正常,false不正常") | |
48 | + private Boolean other; | |
49 | +} | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/model/FileEntity.java
... | ... | @@ -3,6 +3,8 @@ package com.sincere.morningcheck.model; |
3 | 3 | import com.sincere.morningcheck.common.ImgType; |
4 | 4 | import lombok.Data; |
5 | 5 | |
6 | +import java.sql.Date; | |
7 | + | |
6 | 8 | @Data |
7 | 9 | public class FileEntity { |
8 | 10 | |
... | ... | @@ -11,9 +13,9 @@ public class FileEntity { |
11 | 13 | */ |
12 | 14 | private Integer photoId; |
13 | 15 | /** |
14 | - * 头像存储的位置(绝对路径) | |
16 | + * 头像存储的位置(相对路径) | |
15 | 17 | */ |
16 | - private String imgObPath; | |
18 | + private String imgRePath; | |
17 | 19 | /** |
18 | 20 | * 文件新名称 |
19 | 21 | */ |
... | ... | @@ -26,4 +28,6 @@ public class FileEntity { |
26 | 28 | * 文件旧名称 |
27 | 29 | */ |
28 | 30 | private String oldFileName; |
31 | + | |
32 | + private Date inTime; | |
29 | 33 | } | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/model/StudentCheckReport.java
0 → 100644
... | ... | @@ -0,0 +1,41 @@ |
1 | +package com.sincere.morningcheck.model; | |
2 | + | |
3 | +import lombok.Data; | |
4 | + | |
5 | +import java.sql.Date; | |
6 | + | |
7 | +@Data | |
8 | +public class StudentCheckReport { | |
9 | + | |
10 | + | |
11 | + private Integer id; | |
12 | + | |
13 | + private Integer student_id; | |
14 | + | |
15 | + private String cardNo; | |
16 | + | |
17 | + /** | |
18 | + * 人为判别结果 | |
19 | + */ | |
20 | + private String checkResult; //json字符串 | |
21 | + | |
22 | + /** | |
23 | + * 机器判别结果 | |
24 | + */ | |
25 | + private String robotResult; //json字符串 | |
26 | + | |
27 | + private Date checkTime; | |
28 | + | |
29 | + private Date inTime; | |
30 | + | |
31 | + private String access; | |
32 | + | |
33 | + private String temperature; | |
34 | + | |
35 | + private String handImgId; | |
36 | + | |
37 | + private String mouthImgId; | |
38 | + | |
39 | + private String eyeImgId; | |
40 | + | |
41 | +} | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/service/FileUpAndDownService.java
1 | 1 | package com.sincere.morningcheck.service; |
2 | 2 | |
3 | 3 | import com.sincere.morningcheck.common.ServerResponse; |
4 | +import com.sincere.morningcheck.model.FileEntity; | |
4 | 5 | import org.springframework.web.multipart.MultipartFile; |
5 | 6 | |
6 | 7 | |
7 | 8 | public interface FileUpAndDownService { |
8 | 9 | |
9 | 10 | ServerResponse uploadPicture(MultipartFile[] file, String[] file_Types) throws Exception; |
11 | + | |
12 | + ServerResponse<Integer> insert(FileEntity fileEntity); | |
10 | 13 | } | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/service/StudentCheckReportService.java
0 → 100644
... | ... | @@ -0,0 +1,13 @@ |
1 | +package com.sincere.morningcheck.service; | |
2 | + | |
3 | + | |
4 | +import com.sincere.morningcheck.common.ServerResponse; | |
5 | +import com.sincere.morningcheck.model.ApiStudentCheckReport; | |
6 | +import com.sincere.morningcheck.model.StudentCheckReport; | |
7 | + | |
8 | +public interface StudentCheckReportService { | |
9 | + | |
10 | + int insert(StudentCheckReport studentCheckReport); | |
11 | + | |
12 | + ServerResponse<ApiStudentCheckReport> getCheckReport(String stuUserId); | |
13 | +} | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/service/impl/FileUpAndDownServiceImpl.java
... | ... | @@ -3,6 +3,7 @@ package com.sincere.morningcheck.service.impl; |
3 | 3 | import com.sincere.morningcheck.common.ImgType; |
4 | 4 | import com.sincere.morningcheck.common.ServerResponse; |
5 | 5 | import com.sincere.morningcheck.config.MessageProperties; |
6 | +import com.sincere.morningcheck.dao.FileDao; | |
6 | 7 | import com.sincere.morningcheck.model.FileEntity; |
7 | 8 | import com.sincere.morningcheck.model.Photo; |
8 | 9 | import com.sincere.morningcheck.service.FileUpAndDownService; |
... | ... | @@ -21,19 +22,19 @@ public class FileUpAndDownServiceImpl implements FileUpAndDownService { |
21 | 22 | @Autowired |
22 | 23 | private MessageProperties config; //用来获取file-message.properties配置文件中的信息 |
23 | 24 | |
24 | - static Integer photoId = 0; | |
25 | - public static List<FileEntity> globalFileEntities = new LinkedList<>(); | |
25 | + @Autowired | |
26 | + private FileDao fileDao; | |
27 | + | |
26 | 28 | @Override |
27 | 29 | public ServerResponse uploadPicture(MultipartFile[] files, String[] file_types) throws Exception { |
28 | 30 | |
29 | - System.out.println("进入上传文件方法。"); | |
30 | 31 | List<FileEntity> fileEntities = new LinkedList<>(); |
31 | 32 | int i = 0; |
32 | 33 | for(MultipartFile file : files) { |
33 | 34 | System.out.println(file.getOriginalFilename()); |
34 | 35 | |
35 | 36 | try { |
36 | - photoId++; //每进一次方法自增一次,模拟主键自增 | |
37 | + | |
37 | 38 | Map<String, Object> resMap = new HashMap<>(); |
38 | 39 | String[] IMAGE_TYPE = config.getImageType().split(","); |
39 | 40 | String path = null; |
... | ... | @@ -54,11 +55,13 @@ public class FileUpAndDownServiceImpl implements FileUpAndDownService { |
54 | 55 | String suffix = oldFileName.substring(oldFileName.lastIndexOf("."));//带逗号,不带逗号加1 |
55 | 56 | // 新名称 |
56 | 57 | String imgType = file_types[i]; |
57 | - String newFileName = imgType + "_photoId"+photoId+suffix; | |
58 | + UUID uuid = UUID.randomUUID(); | |
59 | + String newFileName = imgType+ "_" + uuid.toString().replace("-","") +suffix; | |
58 | 60 | i++; |
59 | 61 | // 年月日文件夹 |
60 | 62 | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); |
61 | 63 | String basedir = sdf.format(new Date()); |
64 | + String rePath = "/images/" + basedir + "/" + newFileName; | |
62 | 65 | // 进行压缩(大于4M) |
63 | 66 | if (file.getSize() > config.getFileSize()) { |
64 | 67 | path = config.getUpPath() + "/" + basedir + "/" + newFileName; |
... | ... | @@ -82,16 +85,18 @@ public class FileUpAndDownServiceImpl implements FileUpAndDownService { |
82 | 85 | } |
83 | 86 | |
84 | 87 | FileEntity fileEntity = new FileEntity(); |
85 | - fileEntity.setPhotoId(photoId); | |
88 | + | |
86 | 89 | fileEntity.setFileName(newFileName); |
87 | - fileEntity.setImgObPath(path); | |
90 | + fileEntity.setImgRePath(rePath); | |
88 | 91 | fileEntity.setOldFileName(oldFileName); |
89 | 92 | fileEntity.setImgType(ImgType.valueOf(imgType)); |
90 | 93 | |
94 | + fileEntity.setInTime( new java.sql.Date(new Date().getTime())); | |
95 | + fileEntity.setPhotoId(0); | |
96 | + insert(fileEntity); | |
91 | 97 | fileEntities.add(fileEntity); |
92 | 98 | |
93 | 99 | } else { |
94 | - System.out.println("result:图片格式不正确,支持png|jpg|jpeg"); | |
95 | 100 | return ServerResponse.createByErrorMessage("result:图片格式不正确,支持png|jpg|jpeg"); |
96 | 101 | } |
97 | 102 | } catch (Exception e) { |
... | ... | @@ -99,7 +104,8 @@ public class FileUpAndDownServiceImpl implements FileUpAndDownService { |
99 | 104 | throw new Exception(e.getMessage()); |
100 | 105 | } |
101 | 106 | } |
102 | - globalFileEntities.addAll(fileEntities); | |
107 | + | |
108 | + //返回结果 | |
103 | 109 | Map<String,Object> map = new HashMap<>(); |
104 | 110 | |
105 | 111 | List<Photo> photoIds = new ArrayList<>(); |
... | ... | @@ -112,4 +118,12 @@ public class FileUpAndDownServiceImpl implements FileUpAndDownService { |
112 | 118 | map.put("photoIds",photoIds); |
113 | 119 | return ServerResponse.createBySuccess(map); |
114 | 120 | } |
121 | + | |
122 | + @Override | |
123 | + public ServerResponse<Integer> insert(FileEntity fileEntity) { | |
124 | + | |
125 | + int result = fileDao.insert(fileEntity); | |
126 | + return ServerResponse.createBySuccess(result); | |
127 | + } | |
128 | + | |
115 | 129 | } | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/service/impl/StudentCheckReportServiceImpl.java
0 → 100644
... | ... | @@ -0,0 +1,86 @@ |
1 | +package com.sincere.morningcheck.service.impl; | |
2 | + | |
3 | +import com.sincere.morningcheck.common.ServerResponse; | |
4 | +import com.sincere.morningcheck.dao.StudentCheckReportDao; | |
5 | +import com.sincere.morningcheck.dao.StudentDao; | |
6 | +import com.sincere.morningcheck.model.ApiStudentCheckReport; | |
7 | +import com.sincere.morningcheck.model.CheckResult; | |
8 | +import com.sincere.morningcheck.model.Student; | |
9 | +import com.sincere.morningcheck.model.StudentCheckReport; | |
10 | +import com.sincere.morningcheck.service.StudentCheckReportService; | |
11 | +import org.springframework.beans.factory.annotation.Autowired; | |
12 | +import org.springframework.stereotype.Service; | |
13 | + | |
14 | +import java.text.SimpleDateFormat; | |
15 | + | |
16 | +@Service | |
17 | +public class StudentCheckReportServiceImpl implements StudentCheckReportService { | |
18 | + | |
19 | + @Autowired | |
20 | + StudentCheckReportDao studentCheckReportDao; | |
21 | + | |
22 | + @Autowired | |
23 | + StudentDao studentDao; | |
24 | + | |
25 | + @Override | |
26 | + public int insert(StudentCheckReport studentCheckReport) { | |
27 | + return studentCheckReportDao.insert(studentCheckReport); | |
28 | + } | |
29 | + | |
30 | + @Override | |
31 | + public ServerResponse<ApiStudentCheckReport> getCheckReport(String stuUserId) { | |
32 | + | |
33 | + StudentCheckReport studentCheckReport; | |
34 | + | |
35 | + Student student = studentDao.getStudentByStuUserId(stuUserId); | |
36 | + studentCheckReport = studentCheckReportDao.getCheckReport(student.getStuId()); | |
37 | + Boolean isMorningCheck; | |
38 | + if(studentCheckReport == null){ | |
39 | + isMorningCheck = false; | |
40 | + }else{ | |
41 | + isMorningCheck = true; | |
42 | + } | |
43 | + | |
44 | + ApiStudentCheckReport apiStudentCheckReport = getApiStudentReport(studentCheckReport,isMorningCheck); | |
45 | + return ServerResponse.createBySuccess(apiStudentCheckReport); | |
46 | + } | |
47 | + | |
48 | + private ApiStudentCheckReport getApiStudentReport(StudentCheckReport studentCheckReport,Boolean isMorningCheck){ | |
49 | + | |
50 | + ApiStudentCheckReport apiStudentCheckReport = new ApiStudentCheckReport(); | |
51 | + if(isMorningCheck) { | |
52 | + apiStudentCheckReport.setCardNo(studentCheckReport.getCardNo()); | |
53 | + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); | |
54 | + apiStudentCheckReport.setCheckTime(simpleDateFormat.format(studentCheckReport.getCheckTime())); | |
55 | + apiStudentCheckReport.setStudent_id(studentCheckReport.getStudent_id()); | |
56 | + apiStudentCheckReport.setTemperature(studentCheckReport.getTemperature()); | |
57 | + char[] chs = studentCheckReport.getCheckResult().toCharArray(); | |
58 | + CheckResult checkResult = new CheckResult(); | |
59 | + | |
60 | + //前12位 | |
61 | + checkResult.setHandNoEx(isJudge(Character.toString(chs[0]))); | |
62 | + checkResult.setMouthNoEx(isJudge(Character.toString(chs[1]))); | |
63 | + checkResult.setNoRedEye(isJudge(Character.toString(chs[2]))); | |
64 | + checkResult.setNoFever(isJudge(Character.toString(chs[3]))); | |
65 | + checkResult.setNoCrotchBig(isJudge(Character.toString(chs[4]))); | |
66 | + checkResult.setNoPoorSpirit(isJudge(Character.toString(chs[5]))); | |
67 | + checkResult.setNoPharyngitis(isJudge(Character.toString(chs[6]))); | |
68 | + checkResult.setNoTrauma(isJudge(Character.toString(chs[7]))); | |
69 | + checkResult.setNoCough(isJudge(Character.toString(chs[8]))); | |
70 | + checkResult.setNoNail(isJudge(Character.toString(chs[9]))); | |
71 | + checkResult.setNoToothDecay(isJudge(Character.toString(chs[10]))); | |
72 | + checkResult.setOther(isJudge(Character.toString(chs[11]))); | |
73 | + apiStudentCheckReport.setCheckResultObj(checkResult); | |
74 | + } | |
75 | + apiStudentCheckReport.setIsMorningCheck(isMorningCheck); | |
76 | + return apiStudentCheckReport; | |
77 | + } | |
78 | + | |
79 | + private Boolean isJudge(String yesOrNo){ | |
80 | + | |
81 | + if(yesOrNo.equals("Y")){ | |
82 | + return true; | |
83 | + } | |
84 | + return false; | |
85 | + } | |
86 | +} | ... | ... |
springboot/morning-check/src/main/resources/application.properties
... | ... | @@ -2,9 +2,15 @@ salt = sincere |
2 | 2 | |
3 | 3 | server.port=8999 |
4 | 4 | |
5 | -spring.datasource.username=szjxtuser | |
6 | -spring.datasource.password=RQminVCJota3H1u8bBYH | |
7 | -spring.datasource.url=jdbc:sqlserver://116.62.155.137:33419;database=smartcampus | |
5 | +#正式站点数据库 | |
6 | +#spring.datasource.username=szjxtuser | |
7 | +#spring.datasource.password=RQminVCJota3H1u8bBYH | |
8 | +#spring.datasource.url=jdbc:sqlserver://116.62.155.137:33419;database=smartcampus | |
9 | + | |
10 | +#测试站点数据库 | |
11 | +spring.datasource.username=SZJXTUSER | |
12 | +spring.datasource.password=xst200919 | |
13 | +spring.datasource.url=jdbc:sqlserver://60.190.202.57:14333;Database=SmartCampusSZ | |
8 | 14 | spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver |
9 | 15 | |
10 | 16 | mybatis.mapper-locations=classpath:/mapper/*.xml | ... | ... |
springboot/morning-check/src/main/resources/file-message.properties
springboot/morning-check/src/main/resources/mapper/StudentCheckReport.xml
0 → 100644
... | ... | @@ -0,0 +1,37 @@ |
1 | +<?xml version="1.0" encoding="UTF-8" ?> | |
2 | +<!DOCTYPE mapper | |
3 | + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |
4 | + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
5 | +<mapper namespace="com.sincere.morningcheck.dao.StudentCheckReportDao"> | |
6 | + | |
7 | + <!--声明返回结果参数--> | |
8 | + <resultMap id="BaseResultMap" type="com.sincere.morningcheck.model.StudentCheckReport"> | |
9 | + <!-- id:指定查询列中的唯 一标识,即主键,可配置多个--> | |
10 | + <id column="student_id" property="student_id" jdbcType="INTEGER" javaType="java.lang.Integer"/> | |
11 | + <result column="cardNo" property="cardNo" jdbcType="VARCHAR" javaType="java.lang.String"/> | |
12 | + <result column="checkResult" property="checkResult" jdbcType="VARCHAR" javaType="java.lang.String"/> | |
13 | + <result column="robotResult" property="robotResult" jdbcType="VARCHAR" javaType="java.lang.String"/> | |
14 | + <result column="String" property="String" jdbcType="VARCHAR" javaType="java.lang.String"/> | |
15 | + <result column="intime" property="inTime" jdbcType="DATE" javaType="java.sql.Date"/> | |
16 | + <result column="checkTime" property="checkTime" jdbcType="DATE" javaType="java.sql.Date"/> | |
17 | + <result column="temperature" property="temperature" jdbcType="VARCHAR" javaType="java.lang.String"/> | |
18 | + <result column="handImgId" property="handImgId" jdbcType="VARCHAR" javaType="java.lang.String"/> | |
19 | + <result column="mouthImgId" property="mouthImgId" jdbcType="VARCHAR" javaType="java.lang.String"/> | |
20 | + <result column="eyeImgId" property="eyeImgId" jdbcType="VARCHAR" javaType="java.lang.String"/> | |
21 | + </resultMap> | |
22 | + | |
23 | + <sql id="Base_Column_List"> | |
24 | + student_id,cardNo,checkTime,checkResult,robotResult,intime,access,temperature,handImgId,mouthImgId,eyeImgId | |
25 | + </sql> | |
26 | + | |
27 | + <insert id="insert" parameterType="com.sincere.morningcheck.model.StudentCheckReport" > | |
28 | + insert xiaoan.dbo.SZ_StudentCheckReport(student_id,cardNo,checkResult,robotResult,intime,checkTime,access,temperature,handImgId,mouthImgId,eyeImgId) | |
29 | +values(#{student_id,jdbcType=VARCHAR}, #{cardNo,jdbcType=VARCHAR}, #{checkResult,jdbcType=VARCHAR}, #{robotResult,jdbcType=VARCHAR},#{inTime,jdbcType=DATE},#{checkTime,jdbcType=DATE},#{access,jdbcType=VARCHAR},#{temperature,jdbcType=VARCHAR},#{handImgId,jdbcType=VARCHAR},#{mouthImgId,jdbcType=VARCHAR},#{eyeImgId,jdbcType=VARCHAR}) | |
30 | +</insert> | |
31 | + | |
32 | + <select id="getCheckReport" resultMap="BaseResultMap"> | |
33 | + select <include refid="Base_Column_List"/> from xiaoan.[dbo].[SZ_StudentCheckReport] | |
34 | + where student_id = #{studentId} and CONVERT(varchar(10),checkTime,23) = CONVERT(varchar(10),getdate(),23) | |
35 | + </select> | |
36 | + | |
37 | +</mapper> | |
0 | 38 | \ No newline at end of file | ... | ... |
springboot/morning-check/src/main/resources/mapper/filemapper.xml
0 → 100644
... | ... | @@ -0,0 +1,25 @@ |
1 | +<?xml version="1.0" encoding="UTF-8" ?> | |
2 | +<!DOCTYPE mapper | |
3 | + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |
4 | + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
5 | +<mapper namespace="com.sincere.morningcheck.dao.FileDao"> | |
6 | + | |
7 | + <!--声明返回结果参数--> | |
8 | + <resultMap id="BaseResultMap" type="com.sincere.morningcheck.model.FileEntity"> | |
9 | + <!-- id:指定查询列中的唯 一标识,即主键,可配置多个--> | |
10 | + <id column="id" property="photoId" jdbcType="INTEGER" javaType="java.lang.Integer"/> | |
11 | + <result column="imgRePath" property="imgRePath" jdbcType="VARCHAR" javaType="java.lang.String"/> | |
12 | + <result column="fileName" property="fileName" jdbcType="INTEGER" javaType="java.lang.Integer"/> | |
13 | + <result column="imgType" property="imgType" jdbcType="VARCHAR" javaType="com.sincere.morningcheck.common.ImgType"/> | |
14 | + <result column="oldFileName" property="oldFileName" jdbcType="VARCHAR" javaType="java.lang.String"/> | |
15 | + <result column="intime" property="inTime" jdbcType="DATE" javaType="java.sql.Date"/> | |
16 | + </resultMap> | |
17 | + | |
18 | + | |
19 | +<!--useGeneratedKeys="true" keyProperty="photoId" 配置属性是用来获取插入返回的--> | |
20 | +<insert id="insert" useGeneratedKeys="true" keyProperty="photoId" parameterType="com.sincere.morningcheck.model.FileEntity" > | |
21 | + insert xiaoan.dbo.SZ_MorningCheckFile(imgRePath,fileName,imgType,oldFileName,intime) | |
22 | +values(#{imgRePath,jdbcType=VARCHAR}, #{fileName,jdbcType=VARCHAR}, #{imgType,jdbcType=VARCHAR}, #{oldFileName,jdbcType=VARCHAR},#{inTime,jdbcType=DATE}) | |
23 | +</insert> | |
24 | + | |
25 | +</mapper> | |
0 | 26 | \ No newline at end of file | ... | ... |
springboot/morning-check/src/main/resources/mapper/studentmapper.xml
... | ... | @@ -33,6 +33,11 @@ |
33 | 33 | where vs.role_state=1 |
34 | 34 | </select> |
35 | 35 | |
36 | + <select id="getStudentByStuUserId" resultMap="BaseResultMap"> | |
37 | + select top 1 vs.name,vs.student_id,vs.class_id,vs.class_name,Cards=vs.student_num from SZ_V_School_Student vs | |
38 | + where user_id=#{sUserId} | |
39 | + </select> | |
40 | + | |
36 | 41 | <select id="swipeCard" statementType="CALLABLE" resultType="java.util.Map"> |
37 | 42 | {call xiaoan.dbo.AttendanceService( |
38 | 43 | #{att_id, mode=IN}, | ... | ... |
springboot/src/main/java/com/sincre/springboot/controller/TuYaYunController.java
... | ... | @@ -465,7 +465,7 @@ public class TuYaYunController { |
465 | 465 | return ServerResponse.createByErrorCodeMessage(400,"参数错误"); |
466 | 466 | } |
467 | 467 | else{ |
468 | - if(StringUtils.isBlank(tuYaAirCondition.getRemote_id())||StringUtils.isBlank(tuYaAirCondition.getRemote_index())){ | |
468 | + if(StringUtils.isBlank(tuYaAirCondition.getRemote_index())){ | |
469 | 469 | return ServerResponse.createByErrorCodeMessage(400,"参数错误"); |
470 | 470 | } |
471 | 471 | } | ... | ... |