From 160e150009b51a39fa95d9462c3798ba28d51a09 Mon Sep 17 00:00:00 2001 From: lxw <810412026@qq.com> Date: 星期二, 15 八月 2023 08:49:47 +0800 Subject: [PATCH] 审批页面修改 --- src/main/java/com/whyc/controller/FaceController.java | 118 ++++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 72 insertions(+), 46 deletions(-) diff --git a/src/main/java/com/whyc/controller/FaceController.java b/src/main/java/com/whyc/controller/FaceController.java index 67502ad..48b254d 100644 --- a/src/main/java/com/whyc/controller/FaceController.java +++ b/src/main/java/com/whyc/controller/FaceController.java @@ -3,12 +3,10 @@ import com.arcsoft.face.FaceEngine; import com.arcsoft.face.toolkit.ImageFactory; import com.arcsoft.face.toolkit.ImageInfo; -import com.google.gson.reflect.TypeToken; import com.whyc.constant.YamlProperties; import com.whyc.dto.Response; import com.whyc.factory.FaceEngineFactory; import com.whyc.pojo.PermitGroup; -import com.whyc.pojo.UserFace; import com.whyc.pojo.UserInf; import com.whyc.service.FaceService; import com.whyc.service.PermitGroupUserService; @@ -17,7 +15,7 @@ import com.whyc.util.FaceIdentifyUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.assertj.core.util.Arrays; +import org.springframework.boot.system.ApplicationHome; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import sun.misc.BASE64Decoder; @@ -27,8 +25,8 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; -import java.util.HashMap; import java.util.List; +import java.util.Map; import static com.whyc.util.ActionUtil.getApplication; @@ -37,7 +35,7 @@ */ @RequestMapping("face") @RestController -@Api(tags = "浜鸿劯璇嗗埆") +@Api(tags = "鐢ㄦ埛绠$悊-浜鸿劯璇嗗埆") public class FaceController { @Resource @@ -53,8 +51,18 @@ @ApiOperation(value = "鍦ㄧ嚎婵�娲讳汉鑴歌瘑鍒紩鎿�",notes = "鍙渶瑕佸垰寮�濮嬫椂璋冪敤涓�娆�,浼氬鑷碼ppId涓庣‖浠惰澶囩粦瀹�,蹇呴』鏈夊閮ㄧ綉缁�,鍚﹀垯婵�娲讳細澶辫触!" + "鍚庣画浣跨敤鏃犻渶鍐嶈皟鐢ㄦ縺娲�,鍙互绂荤嚎浣跨敤") public Response activeOnline(){ - Response model = new Response(); - boolean b = FaceIdentifyUtil.activeOnline(); + boolean b = FaceIdentifyUtil.active(1); + if(b){ + return new Response().set(1,true,"寮曟搸婵�娲绘垚鍔�"); + }else{ + return new Response().set(1,false,"寮曟搸婵�娲诲け璐�,璇锋鏌ョ綉缁滄槸鍚︿负澶栫綉骞剁‘璁ppId鍜宬ey鏄惁姝g‘!"); + } + } + + @GetMapping("activeOffline") + @ApiOperation(value = "绂荤嚎婵�娲讳汉鑴歌瘑鍒紩鎿�,澧炲�肩増浣跨敤") + public Response activeOffline(){ + boolean b = FaceIdentifyUtil.active(2); if(b){ return new Response().set(1,true,"寮曟搸婵�娲绘垚鍔�"); }else{ @@ -64,7 +72,10 @@ @PostMapping @ApiOperation(value = "娣诲姞",notes = "娣诲姞鍒颁汉鑴稿簱") - public Response add(@RequestParam String fileData,String uName,Integer uId ){ + public Response add(@RequestBody Map<String,Object> paramMap ){ + String fileData = (String) paramMap.get("fileData"); + String uName = (String) paramMap.get("uName"); + Integer uId = Integer.parseInt((String)paramMap.get("uId")); //浼犲弬 uId,uName,fileData--鏂囦欢娴� fileData = fileData.replaceAll(" ", "+"); @@ -98,16 +109,16 @@ Response checkRes1 = FaceIdentifyUtil.orientAndPxDetect(faceEngine,imageInfo); if((boolean)checkRes1.getData()){ /*=========鍥剧墖淇濆瓨===========*/ - //鑾峰彇鍒皌omcat webapp缁濆璺緞 - String realPath = getApplication().getRealPath("/"); -// String[] split = realPath.split(File.separator); - String[] split = realPath.split("\\\\"); - String projectName = split[split.length - 1]; - - String webAppPath = realPath.substring(0, realPath.lastIndexOf(projectName)); + ApplicationHome applicationHome = new ApplicationHome(getClass()); + File jarFile = applicationHome.getDir(); //瀛樺偍浜鸿劯鍥剧墖鐨勬枃浠跺す - String fileDirName = webAppPath + projectName + "_photo"; + String fileDirName; + if(YamlProperties.runModel == 1) { + fileDirName = jarFile.getParentFile().toString() + File.separator + "fg_photo"; + }else{ + fileDirName = jarFile.toString() + File.separator + "fg_photo"; + } File file = new File(fileDirName); //涓嶅瓨鍦ㄥ垯鍒涘缓璇ユ枃浠跺す @@ -146,7 +157,7 @@ */ @PutMapping @ApiOperation(value = "鏇存柊") - public Response update(@RequestParam String fileData,String uName){ + public Response update(@RequestBody String fileData,@RequestParam String uName){ //浼犲弬,uName,fileData--鏂囦欢娴� //鐢变簬鍥剧墖瀛楃涓叉槸鐢眀ase64缂栫爜鐨�,瑙g爜鎴愬瓧鑺傛暟缁� @@ -174,15 +185,16 @@ Response checkRes1 = FaceIdentifyUtil.orientAndPxDetect(faceEngine, imageInfo); if ((boolean)checkRes1.getData()) { /*=========鍥剧墖淇濆瓨===========*/ - //鑾峰彇鍒皌omcat webapp缁濆璺緞 - String realPath = getApplication().getRealPath("/"); - String[] split = realPath.split(File.separator); - String projectName = split[split.length - 1]; - - String webAppPath = realPath.substring(0, realPath.lastIndexOf(projectName)); + ApplicationHome applicationHome = new ApplicationHome(getClass()); + File jarFile = applicationHome.getDir(); //瀛樺偍浜鸿劯鍥剧墖鐨勬枃浠跺す - String fileDirName = webAppPath + projectName + "_photo"; + String fileDirName; + if(YamlProperties.runModel == 1) { + fileDirName = jarFile.getParentFile().toString() + File.separator + "fg_photo"; + }else{ + fileDirName = jarFile.toString() + File.separator + "fg_photo"; + } File file = new File(fileDirName); //涓嶅瓨鍦ㄥ垯鍒涘缓璇ユ枃浠跺す @@ -217,14 +229,14 @@ @ApiOperation(value = "鍒犻櫎") @Transactional public Response delete(@RequestParam Integer uId,@RequestParam Integer faceId, - @RequestParam String uName){ + @RequestParam String uName,HttpServletRequest request){ //鏇存柊user_inf鍜宖ace琛� service.update(uId,faceId); //鍒犻櫎鍥剧墖 //鑾峰彇鍒板浘鐗囨墍鍦ㄦ枃浠跺す鐨勫叏璺緞 - String fileName = findFileDirPath(); + String fileName = findFileDirPath(request); //鑾峰彇鍥剧墖鐨勫叏璺緞 File file = new File(fileName+File.separator+uName+".jpg"); if(file.exists()){ @@ -234,18 +246,13 @@ return new Response().setII(1,"鍒犻櫎鎴愬姛"); } - /**鑾峰彇鍥剧墖鏂囦欢澶瑰叏璺緞*/ - private String findFileDirPath() { - String realPath = getApplication().getRealPath("/"); - String[] split = realPath.split("\\\\"); - String projectName = split[split.length - 1]; - - String webAppPath = realPath.substring(0, realPath.lastIndexOf(projectName)); - - //瀛樺偍浜鸿劯鍥剧墖鐨勬枃浠跺す - String fileDirName = webAppPath + "\\" + projectName + "_photo"; - - return fileDirName; + /**鑾峰彇鍥剧墖鏂囦欢澶瑰叏璺緞 + * @param request*/ + private String findFileDirPath(HttpServletRequest request) { + ApplicationHome applicationHome = new ApplicationHome(getClass()); + File jarFile = applicationHome.getDir(); + //鍦╦ar鍖呮墍鍦ㄧ洰褰曚笅鐢熸垚涓�涓猽pload鏂囦欢澶圭敤鏉ュ瓨鍌ㄤ笂浼犵殑鍥剧墖 + return jarFile.getParentFile().toString()+File.separator+"fg_photo"; } /**鑾峰彇鍥剧墖鐨刪ttp鍔犺浇url*/ @@ -253,7 +260,8 @@ HttpServletRequest request = ActionUtil.getRequest(); //鑾峰彇椤圭洰鍚嶇О String realPath = ActionUtil.getApplication().getRealPath("/"); - String[] split = realPath.split("/"); + //String[] split = realPath.split("/"); + String[] split = realPath.split(File.separator); String projectName = split[split.length - 1]; //鍥剧墖淇濆瓨璺緞,閲囧彇ip+port璁块棶褰㈠紡鑰岄潪纭洏褰㈠紡,鏂逛究鍥剧墖鍔犺浇 String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+"/"+projectName+"_photo/"+uName+".jpg"; @@ -267,9 +275,9 @@ */ @GetMapping("info") @ApiOperation(value = "鏌ヨ浜鸿劯淇℃伅") - public Response getInfo(){ + public Response getInfo(HttpServletRequest request){ //浼犲叆pageNum,pageSize - UserInf userInf = (UserInf) ActionUtil.getSession().getAttribute("user"); + UserInf userInf = (UserInf) request.getSession().getAttribute("user"); UserInf user = service.getInfo(userInf.getUId()); return new Response().set(1,user); @@ -280,8 +288,14 @@ */ @PostMapping("faceCompare2N") @ApiOperation(value = "浜鸿劯璇嗗埆瀵规瘮") - public Response faceCompare2N(@RequestParam String fileData){ + public Response faceCompare2N(@RequestBody String fileData,@RequestParam String uKeyId){ Response res = new Response(); + //鍏堥獙璇乽KeyId瀵瑰簲鐨勭敤鎴� + UserInf userByUKeyId = userService.getUserByUKeyId(uKeyId); + if (userByUKeyId == null){ + return res.set(1,false,"Ukey娌℃湁缁戝畾鐢ㄦ埛"); + } + /*====鑾峰彇鍥剧墖骞舵牎楠屾椿浣�,瑙掑害,鍍忕礌澶у皬====*/ //鐢变簬鍥剧墖瀛楃涓叉槸鐢眀ase64缂栫爜鐨�,瑙g爜鎴愬瓧鑺傛暟缁� fileData = fileData.replaceAll(" ", "+"); @@ -310,10 +324,21 @@ }else{ for (UserInf temp:userInfList){ String filePath = temp.getFace().getUrl(); - ImageInfo imageInfo2 = ImageFactory.getRGBData(new File(filePath)); - Response res3 = FaceIdentifyUtil.faceCompare(faceEngine, imageInfo, imageInfo2); + File file = new File(filePath); + //涓嶅瓨鍦ㄥ垯涓嶇户缁墽琛� + if(!file.exists()){ + continue; + } + ImageInfo imageInfo2 = ImageFactory.getRGBData(file); + res = FaceIdentifyUtil.faceCompare(faceEngine, imageInfo, imageInfo2); //瀵规瘮鎴愬姛,璁板綍鐢ㄦ埛鐧诲綍淇℃伅 - if(res3.getCode()==1){ + if(res.getCode()==1){ + //Ukey瀵瑰簲鐢ㄦ埛鍜屼汉鑴稿搴旂敤鎴烽獙璇� + if(!temp.getUId().equals(userByUKeyId.getUId())){ + return res.set(1,false,"UKey瀵瑰簲鐢ㄦ埛鍜屽綋鍓嶄汉鑴稿搴旂敤鎴蜂笉鍖归厤"); + } + res.setData2(temp); + // 灏嗙櫥闄嗘垚鍔熺殑鐢ㄦ埛瀛樺叆session ActionUtil.getSession().setAttribute("user", temp); @@ -324,7 +349,8 @@ if (permitList!=null && permitList.size()!=0) { ActionUtil.getSession().setAttribute("permits", permitList); } else { - res.setCode(0); + res.setCode(1); + res.setData(false); res.setMsg("杩樻湭鍒嗛厤鏉冮檺"); } //灏嗘柊鐧诲綍鐨勭敤鎴峰瓨鍏pplication -- Gitblit v1.9.1