package com.template.controller; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.template.annotation.DESRespondSecret; import com.template.annotation.PassToken; import com.template.api.SmartFaceDiscernTestControllerAPI; import com.template.common.utils.MultipartFileUtils; import com.template.model.pojo.SmartDevice; import com.template.model.pojo.SmartFaceDiscernTest; import com.template.model.pojo.SmartUser; import com.template.services.SmartDeviceService; import com.template.services.SmartFaceDiscernTestService; import com.template.services.SmartUploadService; import com.template.services.SmartUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Date; /** *

* 前端控制器 *

* * @author ceshi * @since 2024-05-20 */ @RestController public class SmartFaceDiscernTestController implements SmartFaceDiscernTestControllerAPI { @Autowired SmartFaceDiscernTestService smartFaceDiscernTestService; @Autowired SmartUserService smartUserService; @Autowired SmartDeviceService smartDeviceService; @Autowired SmartUploadService smartUploadService; @Override @PassToken @DESRespondSecret(validated = false) public String callBack(HttpServletRequest request, HttpServletResponse response) { try { BufferedReader streamReader = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8")); StringBuilder responseStrBuilder = new StringBuilder(); String inputStr; while ((inputStr = streamReader.readLine()) != null) { responseStrBuilder.append(inputStr); } JSONObject jsonObject = JSONObject.parseObject(responseStrBuilder.toString()); // 比对结果 Integer resultStatus = jsonObject.getInteger("resultStatus"); if (0!=resultStatus) { JSONObject r = new JSONObject(); r.put("message","Success"); r.put("result",0); return r.toJSONString(); } // 抓拍的照片 base64字符串 String scenePhoto = jsonObject.getString("scenePhoto"); System.out.println("scenePhoto = " + scenePhoto.substring(0,100)); // base64转文件 MultipartFile multipartFile = MultipartFileUtils.base64ToMultipartFile(scenePhoto); // 上传到cos桶,并生成图片地址 String image = smartUploadService.upload(new MultipartFile[]{multipartFile}); // 设备mac String mac = jsonObject.getString("mac"); SmartDevice smartDevice = smartDeviceService.getNum(mac); String address=""; String type=""; if (ObjectUtils.isNotEmpty(smartDevice)) { // 地点 address = smartDevice.getAddress(); // 类型 type = smartDevice.getName(); } // 名字 String name = jsonObject.getString("name"); // 身份证号 String idNum = jsonObject.getString("idNum"); SmartUser user = smartUserService.getCard(idNum); Integer userId=0; if (ObjectUtils.isNotEmpty(user)) { userId = user.getId(); }else { userId=0; } SmartFaceDiscernTest smartFaceDiscernTest = new SmartFaceDiscernTest(); smartFaceDiscernTest.setImage(image); smartFaceDiscernTest.setName(name); smartFaceDiscernTest.setLocation(address); smartFaceDiscernTest.setType(type); smartFaceDiscernTest.setUserId(userId); smartFaceDiscernTest.setDateTime(new Date()); smartFaceDiscernTestService.save(smartFaceDiscernTest); }catch (Exception e){ e.printStackTrace(); } JSONObject r = new JSONObject(); r.put("message","Success"); r.put("result",0); return r.toJSONString(); } }