package com.zcloud.controller.eduApp; import com.zcloud.controller.base.BaseController; import com.zcloud.mapper.dsno3.eduStudy.StudentMapper; import com.zcloud.service.eduArchives.ArchivesStudentService; import com.zcloud.service.eduStudy.FaceImgLogService; import com.zcloud.mapper.dsno3.eduSystem.BaseFactoryMapper; import com.zcloud.service.eduSystem.UsersCacheService; import com.zcloud.entity.Page; import com.zcloud.entity.PageData; import com.zcloud.entity.Response; import com.zcloud.plugins.websocketFace.FaceServerPool; import com.zcloud.util.*; import net.sf.json.JSONObject; import org.apache.commons.io.FileUtils; import org.java_websocket.WebSocket; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import ws.schild.jave.MultimediaInfo; import ws.schild.jave.MultimediaObject; import javax.annotation.Resource; import java.io.File; import java.util.*; /** * 说明:app用户处理 * 作者:guoyuepeng * 官网:www.qdkjchina.com */ @RestController @RequestMapping("/app/user") public class AppUsersCacheController extends BaseController { @Resource private UsersCacheService usersCacheService; @Resource private InitPageDataUtil initPageDataUtil; @Resource private BaseFactoryMapper baseFactoryMapper; @Resource private StudentMapper studentMapper; @Resource private Smb smb; @Resource private FaceImgLogService faceImgLogService; @Autowired private ArchivesStudentService archivesstudentService; //@RequestMapping("/getUser") public Response getUser() throws Exception { Response response = Response.getResponse(); try { PageData request = this.getPageData(); PageData info = usersCacheService.getStudentInfo(request); response.put("info", info); } catch (Exception e) { e.printStackTrace(); return response.errorMessage(e.getMessage()); } return response.OK(); } /** * descritpion: 临时查询用户信息方法 * 悦哥说临时使用 * * @return * @throws Exception */ @RequestMapping("/getUser") public Response temporaryGetUser() throws Exception { Response response = Response.getResponse(); try { PageData request = this.getPageData(); List info = usersCacheService.getTemporaryStudentInfo(request); Optional new_info = info.stream().max(Comparator.comparing(o -> DateUtil.getDate(o.getString("CREATTIME")))); response.put("pd", new_info.orElse(null)); } catch (Exception e) { e.printStackTrace(); return response.errorMessage(e.getMessage()); } return response.OK(); } @RequestMapping("/serialize") public Response serialize() throws Exception { Response response = Response.getResponse(); return response.OK(); } @RequestMapping("/editUserPwd") public Response editUserPwd() throws Exception { Response response = Response.getResponse(); try { PageData request = this.getPageData(); usersCacheService.resetPassword(request); return response.OK(); } catch (Exception e) { e.printStackTrace(); return response.errorMessage(e.getMessage()); } } /** * 用户人脸 * * @return * @throws Exception */ @RequestMapping(value = "/editUserFace") @ResponseBody public Object editUserFace() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); PageData faceBase64 = new PageData(); // PageData oldStudent = usersService.findStuById(pd); if (pd.get("USERAVATARURL") != null && !pd.getString("USERAVATARURL").equals("")) { String USERAVATARURL64 = ImageAnd64Binary.zipBase64(pd.getString("USERAVATARURL")); try { FaceUtil.compareFace(pd.getString("USERAVATARURL"), pd.getString("USERAVATARURL")); } catch (Exception e) { map.put("result", "error"); map.put("msg", "人脸图像不符合要求 请重新上传!"); return map; } faceBase64.put("BASE", USERAVATARURL64); } else { map.put("result", "error"); map.put("msg", "未上传人脸识别照片,请先认证人脸!"); return map; } initPageDataUtil.initSaveApp(faceBase64, pd.getString("USER_ID")); faceBase64.put("BASE_FACTORY_ID", this.get32UUID()); faceBase64.put("TABLE_NAME", "SYS_USER"); faceBase64.put("COLUMN_NAME", "USER_ID"); faceBase64.put("USERAVATARPREFIX", pd.getString("USERAVATARPREFIX")); faceBase64.put("FOREIGN_KEY", pd.get("USER_ID")); faceBase64.put("TYPE", "1"); baseFactoryMapper.deleteByForeign(faceBase64); baseFactoryMapper.save(faceBase64); initPageDataUtil.initEditApp(pd, pd.getString("USER_ID")); pd.put("AUTHENTICATION", "1"); usersCacheService.editAuthentication(pd); PageData user = new PageData(); user.put("USER_ID", pd.get("USER_ID")); MultipartFile file = BASE64DecodedMultipartFile.base64ToMultipart(pd.getString("USERAVATARPREFIX") + pd.getString("USERAVATARURL")); String ffile = DateUtil.getDays(); String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); smb.sshSftp(file, fileName, Const.FILEPATHFACE + ffile); user.put("PORTRAIT", Const.FILEPATHFACE + ffile + "/" + fileName); initPageDataUtil.initEditApp(user, pd.getString("USER_ID")); usersCacheService.editUser(user); map.put("result", errInfo); return map; } /** * 用户人脸 * * @return * @throws Exception */ @RequestMapping(value = "/compareFace") @ResponseBody public Object compareFace() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("TYPE", "1"); pd.put("FOREIGN_KEY", pd.get("USER_ID")); PageData user = baseFactoryMapper.findByKeyType(pd); if (user == null || user.get("BASE") == null || user.get("BASE") == "") { map.put("result", "error"); map.put("msg", "用户未录入人脸信息,无法验证"); return map; } String USERAVATARURL = ImageAnd64Binary.upZip(user.getString("BASE")); try { String confidence = FaceUtil.compareFace(pd.getString("USERAVATARURL"), USERAVATARURL); if (Double.valueOf(confidence) < 75) { map.put("result", "error"); map.put("msg", "与本人不符"); // 记录 0 正常 1失败 // faceImg.put("IS_SUCCESS", 1); // faceImgLogService.save(faceImg); return map; } else { PageData student = studentMapper.findById(pd); MultipartFile file = BASE64DecodedMultipartFile.base64ToMultipart(pd.getString("USERAVATARPREFIX") + pd.getString("USERAVATARURL")); String ffile = DateUtil.getDays(); String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); smb.sshSftp(file, fileName, Const.FILEPATHFACE + student.get("CORPINFO_ID") + "/" + ffile); PageData faceImg = new PageData(); faceImg.put("FACEIMGLOG_ID", this.get32UUID()); faceImg.put("ENTERPRISE_ID", student.get("ENTERPRISE_ID")); faceImg.put("CORPINFO_ID", student.get("CORPINFO_ID")); faceImg.put("STUDENT_ID", student.get("STUDENT_ID")); faceImg.put("USER_ID", pd.get("USER_ID")); faceImg.put("FILEPATH", Const.FILEPATHFACE + student.get("CORPINFO_ID") + "/" + ffile + "/" + fileName); faceImg.put("CLASS_ID", pd.get("CLASS_ID")); faceImg.put("CURRICULUM_ID", pd.get("CURRICULUM_ID")); faceImg.put("CHAPTER_ID", pd.get("CHAPTER_ID")); faceImg.put("VIDEOCOURSEWARE_ID", pd.get("VIDEOCOURSEWARE_ID")); initPageDataUtil.initSaveApp(faceImg, pd.getString("USER_ID")); // faceImg.put("IS_SUCCESS", 0); faceImgLogService.save(faceImg); map.put("result", errInfo); } return map; } catch (Exception e) { System.out.println("----------" + e.getMessage()); map.put("result", "error"); map.put("msg", "未检测到人脸"); return map; } } /** * 用户人脸 * * @return * @throws Exception */ @RequestMapping(value = "/compareFaceForH5") @ResponseBody public Object compareFaceForH5() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("TYPE", "1"); pd.put("FOREIGN_KEY", pd.get("USER_ID")); PageData user = baseFactoryMapper.findByKeyType(pd); if (user == null || user.get("BASE") == null || user.get("BASE") == "") { map.put("result", "error"); map.put("msg", "用户未录入人脸信息,无法验证"); return map; } String USERAVATARURL = ImageAnd64Binary.upZip(user.getString("BASE")); try { String confidence = FaceUtil.compareFace(pd.getString("USERAVATARURL"), USERAVATARURL); if (Double.valueOf(confidence) < 75) { map.put("result", "error"); map.put("msg", "与本人不符"); // faceImg.put("IS_SUCCESS", 1); 移除 失败记录 // faceImgLogService.save(faceImg); return map; } else { PageData student = studentMapper.findById(pd); MultipartFile file = BASE64DecodedMultipartFile.base64ToMultipart(pd.getString("USERAVATARPREFIX") + pd.getString("USERAVATARURL")); String ffile = DateUtil.getDays(); String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); smb.sshSftp(file, fileName, Const.FILEPATHFACE + student.get("CORPINFO_ID") + "/" + ffile); PageData faceImg = new PageData(); faceImg.put("FACEIMGLOG_ID", this.get32UUID()); faceImg.put("ENTERPRISE_ID", student.get("ENTERPRISE_ID")); faceImg.put("CORPINFO_ID", student.get("CORPINFO_ID")); faceImg.put("STUDENT_ID", student.get("STUDENT_ID")); faceImg.put("USER_ID", pd.get("USER_ID")); faceImg.put("FILEPATH", Const.FILEPATHFACE + student.get("CORPINFO_ID") + "/" + ffile + "/" + fileName); faceImg.put("CLASS_ID", student.get("CLASS_ID")); faceImg.put("CURRICULUM_ID", student.get("CURRICULUM_ID")); faceImg.put("CHAPTER_ID", student.get("CHAPTER_ID")); faceImg.put("VIDEOCOURSEWARE_ID", pd.get("VIDEOCOURSEWARE_ID")); initPageDataUtil.initSaveApp(faceImg, pd.getString("USER_ID")); // faceImg.put("IS_SUCCESS", 0); 移除 失败记录 faceImgLogService.save(faceImg); } } catch (Exception e) { System.out.println("----------" + e.getMessage()); map.put("result", "error"); map.put("msg", "未检测到人脸"); return map; } JSONObject result = new JSONObject(); result.element("type", "success"); WebSocket conn = FaceServerPool.getWebSocketByUser(pd.getString("USER_ID")); FaceServerPool.sendMessageToUser(conn, result.toString()); map.put("result", errInfo); return map; } /** * 用户人脸 * * @return * @throws Exception */ @RequestMapping(value = "/compareVideoFaceForH5") public Object compareVideoFaceForH5(@RequestParam(value = "FFILE") MultipartFile videoFile) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("TYPE", "1"); pd.put("FOREIGN_KEY", pd.get("USER_ID")); PageData user = baseFactoryMapper.findByKeyType(pd); if (user == null || user.get("BASE") == null || user.get("BASE") == "") { map.put("result", "error"); map.put("msg", "用户未录入人脸信息,无法验证"); return map; } // 获取时长 File video = FileUtil.MultipartFileToFile(videoFile); MultimediaObject instance = new MultimediaObject(video); MultimediaInfo multimediaInfo = instance.getInfo(); double videoTime = (double) multimediaInfo.getDuration() / 1000; if (videoTime < 3) { map.put("result", "error"); map.put("msg", "视频过短,请上传2S以上的视频"); return map; } else if (videoTime > 10) { map.put("result", "error"); map.put("msg", "视频过大,请上传10S内的视频"); return map; } List picBase64List = FileUtil.fetchVideoToBase64List(video, 10); if (picBase64List != null && picBase64List.size() > 0) { String USERAVATARURL = ImageAnd64Binary.upZip(user.getString("BASE")); for (PageData base64 : picBase64List) { try { String imgfile = new String(); if (base64.getString("rotate_old") != null && !base64.getString("rotate_old").isEmpty()) { int rotate = Integer.parseInt(base64.getString("rotate_old")); //获取旋转角度 MultipartFile file = BASE64DecodedMultipartFile.base64ToMultipart("data:image/jpg;base64," + base64.getString("picBase64")); ; //base64转文件 String ffile = DateUtil.getSdfTimesSSS(); File fileName = new File(PathUtil.getProjectpath() + Const.FILEPATHFILE + ffile + ".jpg"); FileUtils.copyInputStreamToFile(file.getInputStream(), fileName); //base64转成文件图片,暂存到本地 imgfile = FileUtil.rotatePhonePhoto(PathUtil.getProjectpath() + Const.FILEPATHFILE + ffile + ".jpg", rotate); //旋转图片 } String strImg = ImageAnd64Binary.getImageStr(imgfile); //将旋转过得图片转成base64 String confidence = FaceUtil.compareFace(strImg, USERAVATARURL); if (Double.valueOf(confidence) >= 75) { PageData student = studentMapper.findById(pd); MultipartFile file = BASE64DecodedMultipartFile.base64ToMultipart("data:image/jpeg;base64," + strImg); String ffile = DateUtil.getDays(); String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); smb.sshSftp(file, fileName, Const.FILEPATHFACE + student.get("CORPINFO_ID") + "/" + ffile); PageData faceImg = new PageData(); faceImg.put("FACEIMGLOG_ID", this.get32UUID()); faceImg.put("ENTERPRISE_ID", student.get("ENTERPRISE_ID")); faceImg.put("CORPINFO_ID", student.get("CORPINFO_ID")); faceImg.put("STUDENT_ID", student.get("STUDENT_ID")); faceImg.put("USER_ID", pd.get("USER_ID")); faceImg.put("FILEPATH", Const.FILEPATHFACE + student.get("CORPINFO_ID") + "/" + ffile + "/" + fileName); faceImg.put("CLASS_ID", student.get("CLASS_ID")); faceImg.put("CURRICULUM_ID", student.get("CURRICULUM_ID")); faceImg.put("CHAPTER_ID", student.get("CHAPTER_ID")); faceImg.put("VIDEOCOURSEWARE_ID", pd.get("VIDEOCOURSEWARE_ID")); initPageDataUtil.initSaveApp(faceImg, pd.getString("USER_ID")); // faceImg.put("IS_SUCCESS", 0); 移除 失败记录 faceImgLogService.save(faceImg); map.put("result", errInfo); return map; } } catch (Exception e) { System.out.println("----------" + e.getMessage()); map.put("result", "error"); map.put("msg", "未检测到人脸"); return map; } } // 所有照片都不符合时,返回这个 map.put("result", "error"); map.put("msg", "与本人不符"); // faceImg.put("IS_SUCCESS", 1); 移除 失败记录 // faceImgLogService.save(faceImg); return map; } JSONObject result = new JSONObject(); result.element("type", "success"); WebSocket conn = FaceServerPool.getWebSocketByUser(pd.getString("USER_ID")); FaceServerPool.sendMessageToUser(conn, result.toString()); map.put("result", errInfo); return map; } /** * 用户人脸 * * @return * @throws Exception */ @RequestMapping(value = "/editUserVideoFace") public Object editUserVideoFace(@RequestParam(value = "FFILE") MultipartFile videoFile) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); // 获取时长 File video = FileUtil.MultipartFileToFile(videoFile); MultimediaObject instance = new MultimediaObject(video); MultimediaInfo result = instance.getInfo(); double videoTime = (double) result.getDuration() / 1000; if (videoTime < 3) { map.put("result", "error"); map.put("msg", "视频过短,请上传2S以上的视频"); return map; } else if (videoTime > 10) { map.put("result", "error"); map.put("msg", "视频过大,请上传10S内的视频"); return map; } PageData faceBase64 = new PageData(); List picBase64List = FileUtil.fetchVideoToBase64List(video, 10); if (picBase64List != null && picBase64List.size() > 0) { for (PageData base64 : picBase64List) { try { FaceUtil.compareFace(base64.getString("picBase64"), base64.getString("picBase64")); String imgfile = new String(); if (base64.getString("rotate_old") != null && !base64.getString("rotate_old").isEmpty()) { int rotate = Integer.parseInt(base64.getString("rotate_old")); //获取旋转角度 MultipartFile file = BASE64DecodedMultipartFile.base64ToMultipart("data:image/jpg;base64," + base64.getString("picBase64")); ; //base64转文件 String ffile = DateUtil.getSdfTimesSSS(); File fileName = new File(PathUtil.getProjectpath() + Const.FILEPATHFILE + ffile + ".jpg"); FileUtils.copyInputStreamToFile(file.getInputStream(), fileName); //base64转成文件图片,暂存到本地 imgfile = FileUtil.rotatePhonePhoto(PathUtil.getProjectpath() + Const.FILEPATHFILE + ffile + ".jpg", rotate); //旋转图片 } String strImg = ImageAnd64Binary.getImageStr(imgfile); //将旋转过得图片转成base64 String USERAVATARURL64 = ImageAnd64Binary.zipBase64(strImg); faceBase64.put("BASE", USERAVATARURL64); initPageDataUtil.initSaveApp(faceBase64, pd.getString("USER_ID")); faceBase64.put("BASE_FACTORY_ID", this.get32UUID()); faceBase64.put("TABLE_NAME", "SYS_USER"); faceBase64.put("COLUMN_NAME", "USER_ID"); faceBase64.put("USERAVATARPREFIX", "data:image/jpeg;base64,"); faceBase64.put("FOREIGN_KEY", pd.get("USER_ID")); faceBase64.put("TYPE", "1"); baseFactoryMapper.deleteByForeign(faceBase64); baseFactoryMapper.save(faceBase64); initPageDataUtil.initEditApp(pd, pd.getString("USER_ID")); pd.put("AUTHENTICATION", "1"); usersCacheService.editAuthentication(pd); PageData user = new PageData(); user.put("USER_ID", pd.get("USER_ID")); MultipartFile file = BASE64DecodedMultipartFile.base64ToMultipart("data:image/jpeg;base64," + strImg); String ffile = DateUtil.getDays(); String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); smb.sshSftp(file, fileName, Const.FILEPATHFACE + ffile); user.put("PORTRAIT", Const.FILEPATHFACE + ffile + "/" + fileName); initPageDataUtil.initEditApp(user, pd.getString("USER_ID")); usersCacheService.editUser(user); map.put("result", errInfo); return map; } catch (Exception e) { System.out.println("----------" + e.getMessage()); System.out.println("人脸图像不符合要求 请重新上传!"); } } // 所有照片都不符合时,返回这个 map.put("result", "error"); map.put("msg", "人脸图像不符合要求 请重新上传!"); // faceImg.put("IS_SUCCESS", 1); 移除 失败记录 // faceImgLogService.save(faceImg); return map; } return map; } /** * 用户人脸(上传视频) * * @return * @throws Exception */ @RequestMapping(value = "/compareVideoFace") public Object compareVideoFace(@RequestParam(value = "FFILE") MultipartFile videoFile) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("TYPE", "1"); pd.put("FOREIGN_KEY", pd.get("USER_ID")); PageData user = baseFactoryMapper.findByKeyType(pd); if (user == null || user.get("BASE") == null || user.get("BASE") == "") { map.put("result", "error"); map.put("msg", "用户未录入人脸信息,无法验证"); return map; } // 获取时长 File video = FileUtil.MultipartFileToFile(videoFile); MultimediaObject instance = new MultimediaObject(video); MultimediaInfo result = instance.getInfo(); double videoTime = (double) result.getDuration() / 1000; if (videoTime < 3) { map.put("result", "error"); map.put("msg", "视频过短,请上传2S以上的视频"); return map; } else if (videoTime > 10) { map.put("result", "error"); map.put("msg", "视频过大,请上传10S内的视频"); return map; } List picBase64List = FileUtil.fetchVideoToBase64List(video, 10); if (picBase64List != null && picBase64List.size() > 0) { String USERAVATARURL = ImageAnd64Binary.upZip(user.getString("BASE")); for (PageData base64 : picBase64List) { try { String imgfile = new String(); if (base64.getString("rotate_old") != null && !base64.getString("rotate_old").isEmpty()) { int rotate = Integer.parseInt(base64.getString("rotate_old")); //获取旋转角度 MultipartFile file = BASE64DecodedMultipartFile.base64ToMultipart("data:image/jpg;base64," + base64.getString("picBase64")); ; //base64转文件 String ffile = DateUtil.getSdfTimesSSS(); File fileName = new File(PathUtil.getProjectpath() + Const.FILEPATHFILE + ffile + ".jpg"); FileUtils.copyInputStreamToFile(file.getInputStream(), fileName); //base64转成文件图片,暂存到本地 imgfile = FileUtil.rotatePhonePhoto(PathUtil.getProjectpath() + Const.FILEPATHFILE + ffile + ".jpg", rotate); //旋转图片 } String strImg = ImageAnd64Binary.getImageStr(imgfile); //将旋转过得图片转成base64 String confidence = FaceUtil.compareFace(strImg, USERAVATARURL); if (Double.valueOf(confidence) >= 75) { PageData student = studentMapper.findById(pd); MultipartFile file = BASE64DecodedMultipartFile.base64ToMultipart("data:image/jpeg;base64," + strImg); String ffile = DateUtil.getDays(); String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); smb.sshSftp(file, fileName, Const.FILEPATHFACE + student.get("CORPINFO_ID") + "/" + ffile); PageData faceImg = new PageData(); faceImg.put("FACEIMGLOG_ID", this.get32UUID()); faceImg.put("ENTERPRISE_ID", student.get("ENTERPRISE_ID")); faceImg.put("CORPINFO_ID", student.get("CORPINFO_ID")); faceImg.put("STUDENT_ID", student.get("STUDENT_ID")); faceImg.put("USER_ID", pd.get("USER_ID")); faceImg.put("FILEPATH", Const.FILEPATHFACE + student.get("CORPINFO_ID") + "/" + ffile + "/" + fileName); faceImg.put("CLASS_ID", pd.get("CLASS_ID")); faceImg.put("CURRICULUM_ID", pd.get("CURRICULUM_ID")); faceImg.put("CHAPTER_ID", pd.get("CHAPTER_ID")); faceImg.put("VIDEOCOURSEWARE_ID", pd.get("VIDEOCOURSEWARE_ID")); initPageDataUtil.initSaveApp(faceImg, pd.getString("USER_ID")); // faceImg.put("IS_SUCCESS", 0); faceImgLogService.save(faceImg); map.put("result", errInfo); return map; } } catch (Exception e) { System.out.println("----------" + e.getMessage()); map.put("result", "error"); map.put("msg", "未检测到人脸"); return map; } } // 所有照片都不符合时,返回这个 map.put("result", "error"); map.put("msg", "与本人不符"); // faceImg.put("IS_SUCCESS", 1); 移除 失败记录 // faceImgLogService.save(faceImg); return map; } map.put("result", errInfo); return map; } /** * 保存用户证件照 * * @param * @throws Exception */ @RequestMapping(value = "/updateUserIdFile") @ResponseBody @Transactional public Object updateUserIdFile( @RequestParam(value = "FFILE", required = false) MultipartFile[] files ) throws Exception { Map map = new HashMap(); String errInfo = "success"; String msg = ""; PageData pd = new PageData(); pd = this.getPageData(); PageData user = usersCacheService.findById(pd); if (null == user) { errInfo = "error"; msg = "未找到用户信息,请刷新后再次尝试!"; } if (files != null && files.length > 0) { MultipartFile file = files[0]; String ffile = DateUtil.getDays(); String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); smb.sshSftp(file, fileName, Const.FILEPATHFILE + ffile); pd.put("ID_PHOTO", Const.FILEPATHFILE + ffile + "/" + fileName); pd.put("USER_ID", user.getString("USER_ID")); initPageDataUtil.initEditApp(pd, user.getString("USER_ID")); usersCacheService.editPhoto(pd); } map.put("result", errInfo); map.put("FILE_PATH", pd.get("ID_PHOTO")); return map; } /** * 保存用户签字信息 * * @param * @throws Exception */ @RequestMapping(value = "/updateUserSign") @ResponseBody @Transactional public Object updateUserSign( @RequestParam(value = "FFILE", required = false) MultipartFile[] files ) throws Exception { Map map = new HashMap(); String errInfo = "success"; String msg = ""; PageData pd = new PageData(); pd = this.getPageData(); PageData user = usersCacheService.findById(pd); if (null == user) { errInfo = "error"; msg = "未找到用户信息,请刷新后再次尝试!"; } if (files != null && files.length > 0) { MultipartFile file = files[0]; String ffile = DateUtil.getDays(); String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); smb.sshSftp(file, fileName, Const.FILEPATH_USER_SIGN + "/" + ffile); pd.put("SIGNATURE_FILE_PATH", Const.FILEPATH_USER_SIGN + "/" + ffile + "/" + fileName); pd.put("USER_ID", user.getString("USER_ID")); initPageDataUtil.initEditApp(pd, user.getString("USER_ID")); usersCacheService.editPhoto(pd); } map.put("result", errInfo); return map; } /** * 获取学员信息 * * @param * @throws Exception */ @RequestMapping(value = "/goEditUser") @ResponseBody public Object goEditUser() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); PageData stu = archivesstudentService.getUserInfo(pd); pd = archivesstudentService.findById(pd); //根据ID读取 if (pd != null) { stu.putAll(pd); } String year = stu.getString("USER_ID_CARD").substring(6).substring(0, 4);// 得到年份 String month = stu.getString("USER_ID_CARD").substring(10).substring(0, 2);// 得到月份 String day = stu.getString("USER_ID_CARD").substring(12).substring(0, 2);// 得到日 stu.put("DATE_OF_BIRTH", year + "-" + month + "-" + day); // 出生年月 map.put("pd", stu); map.put("result", errInfo); return map; } /** * 获取学员所在单位列表 * * @param * @throws Exception */ @RequestMapping(value = "/getUserEnterprise") @ResponseBody public Object getUserEnterprise(Page page) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); page.setPd(pd); List entList = usersCacheService.getUserEnterprise(page); map.put("varList", entList); map.put("page", page); map.put("result", errInfo); return map; } }