From 590e17bbe23b115b13778a670cc748337b6aaac3 Mon Sep 17 00:00:00 2001 From: hejiayang <296714699@qq.com> Date: Thu, 16 Oct 2025 16:33:03 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E8=B0=83=E6=95=B4:=2010.59.235.137=20=E5=85=AD?= =?UTF-8?q?=E5=8E=82=E7=8E=B0=E5=9C=A8=E7=9A=84=E5=9B=BA=E5=AE=9Aip=20?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=BA=E8=84=B8=E7=89=B9=E5=BE=81=E7=A0=81?= =?UTF-8?q?=E5=8A=9F=E8=83=BD:=20=E6=A0=B9=E6=8D=AE=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E9=87=8D=E6=96=B0=E8=8E=B7=E5=8F=96=E4=BA=BA?= =?UTF-8?q?=E8=84=B8=E7=89=B9=E5=BE=81=E7=A0=81=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SwUserFaceimgController.java | 10 +++ .../system/service/ISwUserFaceimgService.java | 2 + .../impl/SwUserFaceimgServiceImpl.java | 71 +++++++++++++++++-- .../src/main/resources/application-prod.yml | 20 +++--- 4 files changed, 89 insertions(+), 14 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/system/controller/SwUserFaceimgController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/system/controller/SwUserFaceimgController.java index dfefaf4..a7172db 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/system/controller/SwUserFaceimgController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/system/controller/SwUserFaceimgController.java @@ -322,6 +322,16 @@ public class SwUserFaceimgController extends JeecgController updateAllUserFaceImg(@RequestParam(name = "type", required = false,defaultValue = "0") Integer type){ + return Result.OK(swUserFaceimgService.updateAllUserFaceImg(type)); + } + public Result saveFaceImgSubLocalUpload(@RequestBody Map map) { String userId = map.get("userId").toString(); String img = map.get("imgSrc").toString(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/system/service/ISwUserFaceimgService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/system/service/ISwUserFaceimgService.java index 0b1ac14..dc64069 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/system/service/ISwUserFaceimgService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/system/service/ISwUserFaceimgService.java @@ -45,4 +45,6 @@ public interface ISwUserFaceimgService extends IService { * @param userId isConfirm= true需要确认 ,根据userId确认 */ void sendPaymentGateUserInfo(UserFaceInfo userFaceInfo, Integer type, Boolean isConfirm, String userId) ; + + String updateAllUserFaceImg(Integer type); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/system/service/impl/SwUserFaceimgServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/system/service/impl/SwUserFaceimgServiceImpl.java index 8d8a115..74016a4 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/system/service/impl/SwUserFaceimgServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/system/service/impl/SwUserFaceimgServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.arcsoft.face.FaceInfo; import com.arcsoft.face.toolkit.ImageFactory; import com.arcsoft.face.toolkit.ImageInfo; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; @@ -19,11 +20,9 @@ import org.jeecg.face.service.FaceEngineService; import org.jeecg.system.mapper.SwUserFaceimgMapper; import org.jeecg.system.service.IStUserFaceimgSubIncremInfoService; import org.jeecg.system.service.ISwUserFaceimgService; +import org.jeecg.system.service.ISwUserFaceimgSubService; import org.jeecg.system.service.UserFaceCacheService; -import org.jeecg.user.entity.StUserFaceimgSubIncremInfo; -import org.jeecg.user.entity.SwUserFaceimg; -import org.jeecg.user.entity.SysUser; -import org.jeecg.user.entity.SysUserSub; +import org.jeecg.user.entity.*; import org.jeecg.user.vo.UserCompareInfo; import org.jeecg.user.vo.UserFaceInfo; import org.springframework.beans.factory.annotation.Autowired; @@ -66,6 +65,8 @@ public class SwUserFaceimgServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.isNotNull("face_img"); + queryWrapper.ne("face_img",""); + queryWrapper.isNotNull("face_feature_data"); + queryWrapper.eq("face_status","1"); + List list = this.list(queryWrapper); + + if(CollectionUtils.isNotEmpty(list)){ + for (SwUserFaceimg swUserFaceimg : list) { + String img = FileShowUtil.getShowUrl(swUserFaceimg.getFaceImg()); + log.error(img); + String imgSrc = "data:image/png;base64," + Base64Util.netImageToBase64(img); + //图片转base64 + ImageInfo rgbData = ImageFactory.getRGBData(Base64Util.base64ToBytes(imgSrc)); + //生成人脸特征码 + List faceInfoList = faceEngineService.detectFaces(rgbData); + if (CollectionUtils.isNotEmpty(faceInfoList)) { + for (FaceInfo faceInfo : faceInfoList) { + byte[] feature = faceEngineService.extractFaceFeature(rgbData, faceInfo); + swUserFaceimg.setFaceFeatureData(feature); + } + } + } + this.updateBatchById(list); + } + return "此次操作更新人脸主表数据"+ list.size()+"条数据"; + }else { + //子用户 + //正式员工人脸表 + QueryWrapper subQueryWrapper = new QueryWrapper<>(); + subQueryWrapper.isNotNull("face_img"); + subQueryWrapper.ne("face_img",""); + subQueryWrapper.isNotNull("face_feature_data"); + subQueryWrapper.eq("face_status","1"); + List subList = swUserFaceimgSubService.list(subQueryWrapper); + if(CollectionUtils.isNotEmpty(subList)){ + for (SwUserFaceimgSub faceimgSub : subList) { + String img = FileShowUtil.getShowUrl(faceimgSub.getFaceImg()); + log.error(img); + String imgSrc = "data:image/png;base64," + Base64Util.netImageToBase64(img); + //图片转base64 + ImageInfo rgbData = ImageFactory.getRGBData(Base64Util.base64ToBytes(imgSrc)); + //生成人脸特征码 + List faceInfoList = faceEngineService.detectFaces(rgbData); + if (CollectionUtils.isNotEmpty(faceInfoList)) { + for (FaceInfo faceInfo : faceInfoList) { + byte[] feature = faceEngineService.extractFaceFeature(rgbData, faceInfo); + faceimgSub.setFaceFeatureData(feature); + } + } + } + swUserFaceimgSubService.updateBatchById(subList); + } + return "此次操作更新人脸子表数据"+subList.size()+"条数据"; + } + } } diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml b/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml index 52b5365..74b8cd2 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml +++ b/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml @@ -35,7 +35,7 @@ spring: downloadPath: #内网 # intranet: http://192.168.10.223:8888/ - intranet: http://192.168.10.6:8888/ + intranet: http://10.59.235.137:8888/ #外网 == 暂时没有用 outernet: https://vip.shuziweidao.com/appPackage/ #配置freemarker @@ -97,7 +97,7 @@ spring: connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 datasource: master: - url: jdbc:mysql://192.168.10.6:3306/zhst_finance?Unicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://10.59.235.137:3306/zhst_finance?Unicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: root password: 123qwe!@#P@ssw0rd driver-class-name: com.mysql.cj.jdbc.Driver @@ -110,7 +110,7 @@ spring: #redis 配置 redis: database: 2 - host: 192.168.10.6 + host: 10.59.235.137 port: 6379 password: 123qwe!@#P@ssw0rd #mybatis plus 设置 @@ -132,7 +132,7 @@ mybatis-plus: #消息队列配置 activemq: device: - brokerUrl: failover:(tcp://device.shuziweidao.com:1883,tcp://192.168.10.6:61616)?randomize=false&priorityBackup=true&maxReconnectDelay=1000&startupMaxReconnectAttempts=3 + brokerUrl: failover:(tcp://device.shuziweidao.com:1883,tcp://10.59.235.137:61616)?randomize=false&priorityBackup=true&maxReconnectDelay=1000&startupMaxReconnectAttempts=3 username: sw_mqtt password: 150326sw@ @@ -159,7 +159,7 @@ jeecg: #服务部署的外网ip端口、域名地址:用于下载文件 serverPublicIp: # 文件访问地址 需配置 - ip: http://192.168.10.6:2333 + ip: http://10.59.235.137:2333 path: #文件上传根目录 设置 需配置 upload: /opt/upFiles @@ -176,10 +176,10 @@ jeecg: # ElasticSearch 6设置 elasticsearch: cluster-name: jeecg-ES - cluster-nodes: 192.168.10.6:9200 + cluster-nodes: 10.59.235.137:9200 check-enabled: false # 在线预览文件服务器地址配置 - file-view-domain: 192.168.10.6:8012 + file-view-domain: 10.59.235.137:8012 # minio文件上传 minio: minio_url: http://minio.jeecg.com @@ -198,11 +198,11 @@ jeecg: #xxl-job配置 xxljob: enabled: false - adminAddresses: http://192.168.10.6:9080/xxl-job-admin + adminAddresses: http://10.59.235.137:9080/xxl-job-admin appname: ${spring.application.name} accessToken: '' - address: 192.168.10.6:30007 - ip: 192.168.10.6 + address: 10.59.235.137:30007 + ip: 10.59.235.137 port: 30007 logPath: logs/jeecg/job/jobhandler/ logRetentionDays: 30