diff --git a/base-manager-ui/admin/vue.config.js b/base-manager-ui/admin/vue.config.js index b5d243305e45a97a2f509816d09ec878da897ced..5b02dd7ec308768bd73e134bf21ddcdd66e4bf5c 100644 --- a/base-manager-ui/admin/vue.config.js +++ b/base-manager-ui/admin/vue.config.js @@ -8,6 +8,7 @@ const CompressionWebpackPlugin = require("compression-webpack-plugin"); const productionGzipExtensions = ["js", "css"]; const isProd = process.env.NODE_ENV === "production"; + const assetsCDN = { // webpack build externals // externals: { @@ -33,6 +34,17 @@ const assetsCDN = { ], }; +const HardSourceWebpackPlugin = require('hard-source-webpack-plugin'); +const devPlugins = [ + new HardSourceWebpackPlugin(), + new HardSourceWebpackPlugin.ExcludeModulePlugin([ + { + test: /mini-css-extract-plugin[\\/]dist[\\/]loader/ + } + ]) +]; + +const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin module.exports = { devServer: { disableHostCheck: true, @@ -56,6 +68,13 @@ module.exports = { }, }, configureWebpack: (config) => { + config.plugin('webpack-report').use(BundleAnalyzerPlugin, [ + { + analyzerMode: 'static' + } + ]) + plugins: process.env.NODE_ENV === "production" ? [] : [...devPlugins]; + config.entry.app = ["babel-polyfill", "whatwg-fetch", "./src/main.js"]; config.performance = { hints: false, diff --git a/base-manager/doc/api.md b/base-manager/doc/api.md index aaf115b2aa2aafcfd5d3196f9aab162215104601..f4aeebdb28378a69ee03197faeb9399f1d90c8d1 100644 --- a/base-manager/doc/api.md +++ b/base-manager/doc/api.md @@ -1577,6 +1577,275 @@ msg|String|娑堟伅|- ``` +## 涓婚 + +### 鏌ヨ涓婚鍒楄〃 + +**璇锋眰URL:** site/theme/list + +**璇锋眰鏂瑰紡:** POST + +**鍐呭绫诲瀷:** application/json;charset=utf-8 + +**绠€瑕佹弿杩�:** 鏌ヨ涓婚 + +**璇锋眰鍙傛暟:** + +鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪 +:---|:---|:---|:------ +page|Integer|鍚褰撳墠椤� +size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰� +siteId|Long|鍚绔欑偣id +userType|String|鍚鏈嶅姟绫诲瀷缂栧彿,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ +themeCode|String|鍚涓婚缂栧彿,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ +themeName|String|鍚涓婚鍚嶇О,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ + +**璇锋眰鏍蜂緥:** +``` + { + "siteId":9425, + "userType":"6mu82c", + "themeCode":"w7vxfs", + "themeName":"a9jq7j", + "page":1, + "size":10 + } + +``` +**鍝嶅簲鍙傛暟:** + +鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪 +:---|:---|:------ +code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛� +msg|String|娑堟伅 +data|object|鏁版嵁瀵硅薄 + per_page|Integer|姣忛〉鏉℃暟 + total|Integer|鎬绘潯鏁� + last_page|Integer|鎬婚〉鏁� + current_page|Integer|褰撳墠椤� + data|array|缁撴灉闆嗗垪琛▅鏁扮粍 +  id|Long|id鍙� +  siteId|Long|绔欑偣id +  userType|String|鏈嶅姟绫诲瀷缂栧彿 +  themeCode|String|涓婚缂栧彿 +  themeName|String|涓婚鍚嶇О +  createTime|Date|鍒涘缓鏃堕棿 +  createUserId|Long|鍒涘缓鐢ㄦ埛id +  updateTime|Date|鏇存柊鏃堕棿 +dict|object|瀛楀吀瀵硅薄 + +**鍝嶅簲娑堟伅鏍蜂緥:** +``` +{ + "code":1, + "data":{ + } +} +``` + +### 鏌ョ湅涓婚 + +**璇锋眰URL:** site/theme/info + +**璇锋眰鏂瑰紡:** GET + +**鍐呭绫诲瀷:** application/json;charset=utf-8 + +**绠€瑕佹弿杩�:** 鏌ョ湅涓婚锛岃繑鍥炲疄渚嬭缁嗕俊鎭� + +**璇锋眰鍙傛暟:** + +鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪 +:---|:---|:---|:------ +id|Long|鏄瘄ID + +**璇锋眰鏍蜂緥:** +``` + http://localhost/site/theme/info?id=549 +``` +**鍝嶅簲鍙傛暟:** + +鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪 +:---|:---|:------- +code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛� +msg|String|娑堟伅 +data|object|鏁版嵁瀵硅薄 + id|Long|id鍙� + siteId|Long|绔欑偣id + userType|String|鏈嶅姟绫诲瀷缂栧彿 + themeCode|String|涓婚缂栧彿 + themeName|String|涓婚鍚嶇О + createTime|Date|鍒涘缓鏃堕棿 + createUserId|Long|鍒涘缓鐢ㄦ埛id + updateTime|Date|鏇存柊鏃堕棿 +dict|object|瀛楀吀瀵硅薄 + +**鍝嶅簲娑堟伅鏍蜂緥:** +``` +{ + "code": 1, + "data": { + "id":539, + "siteId":4859, + "userType":"ewybhk", + "themeCode":"27cygo", + "themeName":"qu6dep", + "createTime":"2023-01-28", + "createUserId":1565, + "updateTime":"2023-01-28" + } +} +``` + +## 绔欑偣涓婚浜嬮」 + +### 鏌ヨ绔欑偣涓婚浜嬮」鍒楄〃 + +**璇锋眰URL:** site/theme/matter/list + +**璇锋眰鏂瑰紡:** POST + +**鍐呭绫诲瀷:** application/json;charset=utf-8 + +**绠€瑕佹弿杩�:** 鏌ヨ绔欑偣涓婚浜嬮」 + +**璇锋眰鍙傛暟:** + +鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪 +:---|:---|:---|:------ +page|Integer|鍚褰撳墠椤� +size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰� +siteId|Long|鍚绔欑偣ID +siteName|String|鍚绔欑偣鍚嶇О,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ +matterId|Long|鍚浜嬮」ID +matterName|String|鍚浜嬮」鍚嶇О,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ +matterCode|String|鍚浜嬮」缂栫爜,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ +userType|String|鍚鏈嶅姟绫诲瀷锛�1.鍏叡鏈嶅姟锛�2.涓汉鏈嶅姟锛�3.娉曚汉鏈嶅姟锛�,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ +themeCode|String|鍚涓婚缂栫爜,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ +themeName|String|鍚涓婚鍚嶇О,瀛楁鍓嶅悗娣诲姞%%妯$硦鏌ヨ +source|Integer|鍚浜嬮」鏉ユ簮 + +**璇锋眰鏍蜂緥:** +``` + { + "siteId":2334, + "siteName":"j1sn8h", + "matterId":5032, + "matterName":"xnn17d", + "matterCode":"5c6fxz", + "userType":"9c8tar", + "themeCode":"ztkpff", + "themeName":"hyfa7h", + "source":3642, + "page":1, + "size":10 + } + +``` +**鍝嶅簲鍙傛暟:** + +鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪 +:---|:---|:------ +code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛� +msg|String|娑堟伅 +data|object|鏁版嵁瀵硅薄 + per_page|Integer|姣忛〉鏉℃暟 + total|Integer|鎬绘潯鏁� + last_page|Integer|鎬婚〉鏁� + current_page|Integer|褰撳墠椤� + data|array|缁撴灉闆嗗垪琛▅鏁扮粍 +  id|Long|搴忓彿锛屼富閿紝鑷闀� +  siteId|Long|绔欑偣ID +  siteName|String|绔欑偣鍚嶇О +  matterId|Long|浜嬮」ID +  matterName|String|浜嬮」鍚嶇О +  matterCode|String|浜嬮」缂栫爜 +  userType|String|鏈嶅姟绫诲瀷锛�1.鍏叡鏈嶅姟锛�2.涓汉鏈嶅姟锛�3.娉曚汉鏈嶅姟锛� +  themeCode|String|涓婚缂栫爜 +  themeName|String|涓婚鍚嶇О +  source|Integer|浜嬮」鏉ユ簮 +  createTime|Date|鍒涘缓鏃堕棿 +  createUserId|Long|鍒涘缓鐢ㄦ埛 +  updateTime|Date|淇敼鏃堕棿 +dict|object|瀛楀吀瀵硅薄 + userType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍 + +**鍝嶅簲娑堟伅鏍蜂緥:** +``` +{ + "code":1, + "data":{ + } +} +``` + +### 鏌ョ湅绔欑偣涓婚浜嬮」 + +**璇锋眰URL:** site/theme/matter/info + +**璇锋眰鏂瑰紡:** GET + +**鍐呭绫诲瀷:** application/json;charset=utf-8 + +**绠€瑕佹弿杩�:** 鏌ョ湅绔欑偣涓婚浜嬮」锛岃繑鍥炲疄渚嬭缁嗕俊鎭� + +**璇锋眰鍙傛暟:** + +鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪 +:---|:---|:---|:------ +id|Long|鏄瘄ID + +**璇锋眰鏍蜂緥:** +``` + http://localhost/site/theme/matter/info?id=549 +``` +**鍝嶅簲鍙傛暟:** + +鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪 +:---|:---|:------- +code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛� +msg|String|娑堟伅 +data|object|鏁版嵁瀵硅薄 + id|Long|搴忓彿锛屼富閿紝鑷闀� + siteId|Long|绔欑偣ID + siteName|String|绔欑偣鍚嶇О + matterId|Long|浜嬮」ID + matterName|String|浜嬮」鍚嶇О + matterCode|String|浜嬮」缂栫爜 + userType|String|鏈嶅姟绫诲瀷锛�1.鍏叡鏈嶅姟锛�2.涓汉鏈嶅姟锛�3.娉曚汉鏈嶅姟锛� + themeCode|String|涓婚缂栫爜 + themeName|String|涓婚鍚嶇О + source|Integer|浜嬮」鏉ユ簮 + createTime|Date|鍒涘缓鏃堕棿 + createUserId|Long|鍒涘缓鐢ㄦ埛 + updateTime|Date|淇敼鏃堕棿 +dict|object|瀛楀吀瀵硅薄 + userType|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍 + +**鍝嶅簲娑堟伅鏍蜂緥:** +``` +{ + "code": 1, + "data": { + "id":6517, + "siteId":8377, + "siteName":"wnnjis", + "matterId":5970, + "matterName":"b5c0l3", + "matterCode":"y3yyz4", + "userType":"sr07tk", + "themeCode":"s1az2z", + "themeName":"isyo83", + "source":7309, + "createTime":"2023-01-28", + "createUserId":2157, + "updateTime":"2023-01-28" + } +} +``` + + + ## 涓氬姟 ### 鏌ヨ绔欑偣涓氬姟鍒楄〃 @@ -9264,6 +9533,8 @@ data|object|鏁版嵁瀵硅薄   updateUserId|Long|鏇存柊鐢ㄦ埛   updateTime|Date|鏇存柊鏃堕棿   serviceApi|String|鏈嶅姟鎺ュ彛鍦板潃 +  custUrl|String|鑷富搴旂敤鍓嶇璁块棶鍦板潃 +  appIconUrl|String|鑷富搴旂敤鍓嶇鍥炬爣鍦板潃 dict|object|瀛楀吀瀵硅薄  type|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍  shelves|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍 @@ -9334,6 +9605,8 @@ data|object|鏁版嵁瀵硅薄  updateUserId|Long|鏇存柊鐢ㄦ埛  updateTime|Date|鏇存柊鏃堕棿  serviceApi|String|鏈嶅姟鎺ュ彛鍦板潃 + custUrl|String|鑷富搴旂敤鍓嶇璁块棶鍦板潃 + appIconUrl|String|鑷富搴旂敤鍓嶇鍥炬爣鍦板潃 dict|object|瀛楀吀瀵硅薄  type|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍  shelves|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍 diff --git a/base-manager/pom.xml b/base-manager/pom.xml index f1d017c6e593766fd624d66e4643ddb9ef1acdad..466e39cc65c449bb79ac1550932ece8721d0e30b 100644 --- a/base-manager/pom.xml +++ b/base-manager/pom.xml @@ -38,7 +38,7 @@ <profiles.log.path>/home/mortals/app/logs</profiles.log.path> <profiles.log.level>INFO</profiles.log.level> <package.environment>test</package.environment> - <skipDeploy>false</skipDeploy> + <skipUi>false</skipUi> </properties> </profile> <profile> @@ -58,7 +58,7 @@ <profiles.log.path>/home/mortals/app/logs</profiles.log.path> <profiles.log.level>INFO</profiles.log.level> <package.environment>test</package.environment> - <skipDeploy>false</skipDeploy> + <skipUi>true</skipUi> </properties> </profile> <profile> @@ -78,7 +78,7 @@ <profiles.log.path>/home/mortals/app/logs</profiles.log.path> <profiles.log.level>INFO</profiles.log.level> <package.environment>build</package.environment> - <skipDeploy>false</skipDeploy> + <skipUi>true</skipUi> </properties> </profile> @@ -88,21 +88,22 @@ <profiles.active>yibin</profiles.active> <profiles.server.path>/base</profiles.server.path> <profiles.publish.path>/home/publish</profiles.publish.path> - <profiles.rabbitmq.host>127.0.0.1</profiles.rabbitmq.host> + <profiles.rabbitmq.host>172.15.28.115</profiles.rabbitmq.host> <profiles.rabbitmq.port>5672</profiles.rabbitmq.port> <profiles.rabbitmq.username>taxi_mq</profiles.rabbitmq.username> <profiles.rabbitmq.password>admin@2020</profiles.rabbitmq.password> <profiles.rabbitmq.virtualhost>/</profiles.rabbitmq.virtualhost> - <profiles.nacos.server-addr>127.0.0.1:8848</profiles.nacos.server-addr> + <profiles.nacos.server-addr>172.15.28.120:8848</profiles.nacos.server-addr> <profiles.nacos.group>DEFAULT_GROUP</profiles.nacos.group> <profiles.nacos.namespace>smart-gov</profiles.nacos.namespace> <profiles.log.path>/home/mortals/app/logs</profiles.log.path> <profiles.filepath>/home/mortals/app/data</profiles.filepath> <profiles.log.level>INFO</profiles.log.level> <package.environment>yibin</package.environment> - <skipDeploy>false</skipDeploy> + <skipUi>true</skipUi> </properties> </profile> + </profiles> <dependencies> @@ -190,11 +191,11 @@ </dependency> <!-- 铏硅蒋浜鸿劯瑙f瀽 --> - <dependency> +<!-- <dependency> <groupId>com.arcsoft.face</groupId> <artifactId>arcsoft-sdk-face</artifactId> <version>3.0.0.0</version> - </dependency> + </dependency>--> <dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</artifactId> @@ -295,7 +296,7 @@ <artifactId>exec-maven-plugin</artifactId> <version>1.6.0</version> <configuration> - <skip>${skipDeploy}</skip> + <skip>${skipUi}</skip> </configuration> <executions> <execution> @@ -358,7 +359,7 @@ <goal>single</goal> </goals> <configuration> - <skipAssembly>${skipDeploy}</skipAssembly> + <skipAssembly>${skipUi}</skipAssembly> <finalName>${project.artifactId}-ui</finalName> <appendAssemblyId>false</appendAssemblyId> <descriptors> diff --git a/base-manager/src/main/java/com/mortals/xhx/base/framework/aspect/WebLogAspect.java b/base-manager/src/main/java/com/mortals/xhx/base/framework/aspect/WebLogAspect.java index 67e7a06bfbb87ffed0aec40a85bd6b8f99e36402..9610924573279fc6326004081b8a1db37adab1ef 100644 --- a/base-manager/src/main/java/com/mortals/xhx/base/framework/aspect/WebLogAspect.java +++ b/base-manager/src/main/java/com/mortals/xhx/base/framework/aspect/WebLogAspect.java @@ -37,8 +37,8 @@ import java.util.Map; * @author: zxfei * @date: 2022/4/20 9:24 */ -//@Aspect -//@Component +@Aspect +@Component @Slf4j //@Order(1) @Profile({"default", "develop", "test"}) diff --git a/base-manager/src/main/java/com/mortals/xhx/base/system/param/service/impl/ParamServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/base/system/param/service/impl/ParamServiceImpl.java index ce963f0e63d0ba7d8f1434e230b7d5a9d32a9d14..9f0c82dd47085ca14816326b313d34b07ebec24d 100644 --- a/base-manager/src/main/java/com/mortals/xhx/base/system/param/service/impl/ParamServiceImpl.java +++ b/base-manager/src/main/java/com/mortals/xhx/base/system/param/service/impl/ParamServiceImpl.java @@ -1,6 +1,8 @@ package com.mortals.xhx.base.system.param.service.impl; +import cn.hutool.core.util.StrUtil; import com.mortals.framework.exception.AppException; +import com.mortals.framework.model.Context; import com.mortals.framework.service.IParam; import com.mortals.framework.service.impl.AbstractCRUDCacheServiceImpl; import com.mortals.framework.util.DataUtil; @@ -32,6 +34,20 @@ public class ParamServiceImpl extends AbstractCRUDCacheServiceImpl<ParamDao, Par return "ParamEntity.paramKey"; } + + /** + * @param entity + * @param context + * @throws AppException + */ + @Override + protected void saveBefore(ParamEntity entity, Context context) throws AppException { + //杩囨护鎹㈣绗� + entity.setParamKey(StrUtil.removeAllLineBreaks(entity.getParamKey())); + entity.setParamValue(StrUtil.removeAllLineBreaks(entity.getParamValue())); + super.saveBefore(entity, context); + } + @Override public String getValueByKey(String key) { List<ParamEntity> list = this.getCacheList(); diff --git a/base-manager/src/main/java/com/mortals/xhx/common/code/JointInfoShowEnum.java b/base-manager/src/main/java/com/mortals/xhx/common/code/JointInfoShowEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..cc08610f716352c96f9ef1451b33aa5d3c5282e2 --- /dev/null +++ b/base-manager/src/main/java/com/mortals/xhx/common/code/JointInfoShowEnum.java @@ -0,0 +1,60 @@ +package com.mortals.xhx.common.code; + +import java.util.LinkedHashMap; +import java.util.Map; +public enum JointInfoShowEnum { + 鍏叡鏈嶅姟閮�("鍏叡鏈嶅姟閮�", "鍏叡鏈嶅姟閮�"), + 鍏氭斂寤鸿閮�("鍏氭斂寤鸿閮�", "鍏氭斂寤鸿閮�"), + 缃戠粶鐞嗘斂閮�("缃戠粶鐞嗘斂閮�", "缃戠粶鐞嗘斂閮�"); + private String value; + private String desc; + + JointInfoShowEnum(String value, String desc) { + this.value = value; + this.desc = desc; + } + + public String getValue() { + return this.value; + } + + public String getDesc() { + return this.desc; + } + + public static JointInfoShowEnum getByValue(String value) { + for (JointInfoShowEnum isLackEnum : JointInfoShowEnum.values()) { + if (isLackEnum.getValue() == value) { + return isLackEnum; + } + } + return null; + } + + /** + * 鑾峰彇Map闆嗗悎 + * + * @param eItem 涓嶅寘鍚」 + * @return + */ + public static Map<String, String> getEnumMap(String... eItem) { + Map<String, String> resultMap = new LinkedHashMap<>(); + for (JointInfoShowEnum item : JointInfoShowEnum.values()) { + try { + boolean hasE = false; + for (String e : eItem) { + if (item.getValue() == e) { + hasE = true; + break; + } + } + if (!hasE) { + resultMap.put(item.getValue() + "", item.getDesc()); + } + } catch (Exception ex) { + + } + } + return resultMap; + } +} \ No newline at end of file diff --git a/base-manager/src/main/java/com/mortals/xhx/common/utils/FaceUtil.java b/base-manager/src/main/java/com/mortals/xhx/common/utils/FaceUtil.java index efb7753650688c6f8b09d15c4ca9f9e6cbdcfc75..d869065882021af3f3c4a2e02ffd1f14dd427127 100644 --- a/base-manager/src/main/java/com/mortals/xhx/common/utils/FaceUtil.java +++ b/base-manager/src/main/java/com/mortals/xhx/common/utils/FaceUtil.java @@ -1,110 +1,110 @@ -package com.mortals.xhx.common.utils; - -import com.arcsoft.face.*; -import com.arcsoft.face.enums.DetectMode; -import com.arcsoft.face.enums.DetectOrient; -import com.arcsoft.face.enums.ErrorInfo; -import com.arcsoft.face.toolkit.ImageInfo; -import com.mortals.framework.exception.AppException; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.List; - -import static com.arcsoft.face.toolkit.ImageFactory.getRGBData; - -@Slf4j -@Component -public class FaceUtil { - - public FaceEngine initFace(String appId, String sdkKey) { - FaceEngine faceEngine = new FaceEngine(getClass().getResource(getOsName()).getPath()); - //婵€娲诲紩鎿� - int errorCode = faceEngine.activeOnline(appId, sdkKey); - isTrue(!(errorCode != ErrorInfo.MOK.getValue() && errorCode != ErrorInfo.MERR_ASF_ALREADY_ACTIVATED.getValue()), "寮曟搸婵€娲诲け璐�"); - ActiveFileInfo activeFileInfo = new ActiveFileInfo(); - errorCode = faceEngine.getActiveFileInfo(activeFileInfo); - isTrue(!(errorCode != ErrorInfo.MOK.getValue() && errorCode != ErrorInfo.MERR_ASF_ALREADY_ACTIVATED.getValue()), "鑾峰彇婵€娲绘枃浠朵俊鎭け璐�"); - //寮曟搸閰嶇疆 - EngineConfiguration engineConfiguration = new EngineConfiguration(); - engineConfiguration.setDetectMode(DetectMode.ASF_DETECT_MODE_IMAGE); - engineConfiguration.setDetectFaceOrientPriority(DetectOrient.ASF_OP_ALL_OUT); - engineConfiguration.setDetectFaceMaxNum(10); - engineConfiguration.setDetectFaceScaleVal(16); - //鍔熻兘閰嶇疆 - FunctionConfiguration functionConfiguration = new FunctionConfiguration(); - functionConfiguration.setSupportAge(true); - functionConfiguration.setSupportFace3dAngle(true); - functionConfiguration.setSupportFaceDetect(true); - functionConfiguration.setSupportFaceRecognition(true); - functionConfiguration.setSupportGender(true); - functionConfiguration.setSupportLiveness(true); - functionConfiguration.setSupportIRLiveness(true); - engineConfiguration.setFunctionConfiguration(functionConfiguration); - //鍒濆鍖栧紩鎿� - errorCode = faceEngine.init(engineConfiguration); - isTrue(errorCode == ErrorInfo.MOK.getValue(), "鍒濆鍖栧紩鎿庡け璐�"); - return faceEngine; - } - - - /** - * 浜鸿劯妫€娴嬨€佺壒寰佹彁鍙� - * - * @param faceEngine - * @param bytes - * @return - */ - public byte[] featureData(FaceEngine faceEngine, byte[] bytes) { - //浜鸿劯妫€娴� - ImageInfo imageInfo = getRGBData(bytes); - List<FaceInfo> faceInfoList = new ArrayList<FaceInfo>(); - faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList); - //鐗瑰緛鎻愬彇 - FaceFeature faceFeature = new FaceFeature(); - faceEngine.extractFaceFeature(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList.get(0), faceFeature); - return faceFeature.getFeatureData(); - } - - - /** - * 鐗瑰緛姣斿 - * - * @param targeFace - * @param sourceFace - * @return - */ - public boolean featureComparison(FaceEngine faceEngine, byte[] targeFace, byte[] sourceFace) { - //鐗瑰緛姣斿 - FaceFeature targetFaceFeature = new FaceFeature(); - targetFaceFeature.setFeatureData(targeFace); - FaceFeature sourceFaceFeature = new FaceFeature(); - sourceFaceFeature.setFeatureData(sourceFace); - FaceSimilar faceSimilar = new FaceSimilar(); - faceEngine.compareFaceFeature(targetFaceFeature, sourceFaceFeature, faceSimilar); - float score = faceSimilar.getScore(); - if (score > 0.8) { - return true; - } - return false; - } - - public void unInit(FaceEngine faceEngine) { - faceEngine.unInit(); - } - - public String getOsName() { - String os = System.getProperty("os.name"); - String osName = os.toLowerCase().startsWith("win") ? "/face_lib/win64" : "/face_lib/linux"; - return osName; - } - - - private void isTrue(boolean b, String errorMsg) { - if (!b) { - throw new AppException(errorMsg); - } - } - -} +//package com.mortals.xhx.common.utils; +// +//import com.arcsoft.face.*; +//import com.arcsoft.face.enums.DetectMode; +//import com.arcsoft.face.enums.DetectOrient; +//import com.arcsoft.face.enums.ErrorInfo; +//import com.arcsoft.face.toolkit.ImageInfo; +//import com.mortals.framework.exception.AppException; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.stereotype.Component; +// +//import java.util.ArrayList; +//import java.util.List; +// +//import static com.arcsoft.face.toolkit.ImageFactory.getRGBData; +// +//@Slf4j +//@Component +//public class FaceUtil { +// +// public FaceEngine initFace(String appId, String sdkKey) { +// FaceEngine faceEngine = new FaceEngine(getClass().getResource(getOsName()).getPath()); +// //婵€娲诲紩鎿� +// int errorCode = faceEngine.activeOnline(appId, sdkKey); +// isTrue(!(errorCode != ErrorInfo.MOK.getValue() && errorCode != ErrorInfo.MERR_ASF_ALREADY_ACTIVATED.getValue()), "寮曟搸婵€娲诲け璐�"); +// ActiveFileInfo activeFileInfo = new ActiveFileInfo(); +// errorCode = faceEngine.getActiveFileInfo(activeFileInfo); +// isTrue(!(errorCode != ErrorInfo.MOK.getValue() && errorCode != ErrorInfo.MERR_ASF_ALREADY_ACTIVATED.getValue()), "鑾峰彇婵€娲绘枃浠朵俊鎭け璐�"); +// //寮曟搸閰嶇疆 +// EngineConfiguration engineConfiguration = new EngineConfiguration(); +// engineConfiguration.setDetectMode(DetectMode.ASF_DETECT_MODE_IMAGE); +// engineConfiguration.setDetectFaceOrientPriority(DetectOrient.ASF_OP_ALL_OUT); +// engineConfiguration.setDetectFaceMaxNum(10); +// engineConfiguration.setDetectFaceScaleVal(16); +// //鍔熻兘閰嶇疆 +// FunctionConfiguration functionConfiguration = new FunctionConfiguration(); +// functionConfiguration.setSupportAge(true); +// functionConfiguration.setSupportFace3dAngle(true); +// functionConfiguration.setSupportFaceDetect(true); +// functionConfiguration.setSupportFaceRecognition(true); +// functionConfiguration.setSupportGender(true); +// functionConfiguration.setSupportLiveness(true); +// functionConfiguration.setSupportIRLiveness(true); +// engineConfiguration.setFunctionConfiguration(functionConfiguration); +// //鍒濆鍖栧紩鎿� +// errorCode = faceEngine.init(engineConfiguration); +// isTrue(errorCode == ErrorInfo.MOK.getValue(), "鍒濆鍖栧紩鎿庡け璐�"); +// return faceEngine; +// } +// +// +// /** +// * 浜鸿劯妫€娴嬨€佺壒寰佹彁鍙� +// * +// * @param faceEngine +// * @param bytes +// * @return +// */ +// public byte[] featureData(FaceEngine faceEngine, byte[] bytes) { +// //浜鸿劯妫€娴� +// ImageInfo imageInfo = getRGBData(bytes); +// List<FaceInfo> faceInfoList = new ArrayList<FaceInfo>(); +// faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList); +// //鐗瑰緛鎻愬彇 +// FaceFeature faceFeature = new FaceFeature(); +// faceEngine.extractFaceFeature(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList.get(0), faceFeature); +// return faceFeature.getFeatureData(); +// } +// +// +// /** +// * 鐗瑰緛姣斿 +// * +// * @param targeFace +// * @param sourceFace +// * @return +// */ +// public boolean featureComparison(FaceEngine faceEngine, byte[] targeFace, byte[] sourceFace) { +// //鐗瑰緛姣斿 +// FaceFeature targetFaceFeature = new FaceFeature(); +// targetFaceFeature.setFeatureData(targeFace); +// FaceFeature sourceFaceFeature = new FaceFeature(); +// sourceFaceFeature.setFeatureData(sourceFace); +// FaceSimilar faceSimilar = new FaceSimilar(); +// faceEngine.compareFaceFeature(targetFaceFeature, sourceFaceFeature, faceSimilar); +// float score = faceSimilar.getScore(); +// if (score > 0.8) { +// return true; +// } +// return false; +// } +// +// public void unInit(FaceEngine faceEngine) { +// faceEngine.unInit(); +// } +// +// public String getOsName() { +// String os = System.getProperty("os.name"); +// String osName = os.toLowerCase().startsWith("win") ? "/face_lib/win64" : "/face_lib/linux"; +// return osName; +// } +// +// +// private void isTrue(boolean b, String errorMsg) { +// if (!b) { +// throw new AppException(errorMsg); +// } +// } +// +//} diff --git a/base-manager/src/main/java/com/mortals/xhx/common/utils/SyncGovMatterDetailThread.java b/base-manager/src/main/java/com/mortals/xhx/common/utils/SyncGovMatterDetailThread.java index 0957b78dc38a1ad7517a3e8ec288973c7ceed3ff..9e1b3b02bda8a58f30b2db1f723e2c9d6e9abf4d 100644 --- a/base-manager/src/main/java/com/mortals/xhx/common/utils/SyncGovMatterDetailThread.java +++ b/base-manager/src/main/java/com/mortals/xhx/common/utils/SyncGovMatterDetailThread.java @@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSON; import com.mortals.framework.common.Rest; import com.mortals.framework.model.Context; import com.mortals.framework.service.ICacheService; -import com.mortals.xhx.ManagerBaseApplication; import com.mortals.xhx.common.code.DxTypeEnum; import com.mortals.xhx.common.code.SourceEnum; import com.mortals.xhx.common.code.YesNoEnum; @@ -24,12 +23,8 @@ import com.mortals.xhx.module.site.service.SiteService; import com.mortals.xhx.module.site.service.SiteThemeMatterService; import com.mortals.xhx.module.site.service.SiteThemeService; import com.mortals.xhx.utils.SpringUtils; -import lombok.AllArgsConstructor; -import lombok.CustomLog; import lombok.extern.apachecommons.CommonsLog; -import lombok.extern.slf4j.Slf4j; -import javax.xml.transform.Source; import java.util.List; import java.util.stream.Collectors; @@ -91,7 +86,7 @@ public class SyncGovMatterDetailThread implements Runnable { //閲嶆柊娣诲姞 for (SiteEntity site : siteEntities) { List<SiteMatterEntity> siteMatterList = matterEntityList.stream().map(item -> { - return matterService.switchMatterToSiteMatterr(item, site, context).getData(); + return matterService.switchMatterToSiteMatter(item, site, context).getData(); }).filter(f -> f != null).collect(Collectors.toList()); List<List<SiteMatterEntity>> partition = ListUtil.partition(siteMatterList, 100); diff --git a/base-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DemoStartedService.java b/base-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DemoStartedService.java index e50af4fc8c72d262a19a589f215cf814e090476c..fef10b16b96559985513e98105147105e3da11b4 100644 --- a/base-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DemoStartedService.java +++ b/base-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DemoStartedService.java @@ -55,7 +55,15 @@ public class DemoStartedService implements IApplicationStartedService { SyncTreeSiteThread syncTreeSiteThread = new SyncTreeSiteThread(contextTemp); ThreadPool.getInstance().execute(syncTreeSiteThread); - if(ObjectUtils.isEmpty(userFeign)){ + + userService.find(new UserQuery()).forEach(user->{ + Context context = new Context(); + context.setUser(user); + ThreadPool.getInstance().execute(new SyncTreeSiteThread(context)); + }); + + +/* if(ObjectUtils.isEmpty(userFeign)){ logger.info("userFeign鏈姞杞�,鍔犺浇鏈湴鐢ㄦ埛"); userService.find(new UserQuery()).forEach(user->{ Context context = new Context(); @@ -64,9 +72,9 @@ public class DemoStartedService implements IApplicationStartedService { }); return; - } + }*/ - userFeign.list(new UserPdu()).getData().getData().stream().forEach(userPdu->{ +/* userFeign.list(new UserPdu()).getData().getData().stream().forEach(userPdu->{ Context context = new Context(); UserEntity entity = new UserEntity(); @@ -75,7 +83,7 @@ public class DemoStartedService implements IApplicationStartedService { context.setUser(entity); ThreadPool.getInstance().execute(new SyncTreeSiteThread(context)); - }); + });*/ } @Override diff --git a/base-manager/src/main/java/com/mortals/xhx/face/ArcsoftFaceUtil.java b/base-manager/src/main/java/com/mortals/xhx/face/ArcsoftFaceUtil.java index 455525ed92a73825419f2b1513a0e9890995a74e..b024a438dcd1e8653c3fef6b4ce7e32db5afa5c9 100644 --- a/base-manager/src/main/java/com/mortals/xhx/face/ArcsoftFaceUtil.java +++ b/base-manager/src/main/java/com/mortals/xhx/face/ArcsoftFaceUtil.java @@ -1,236 +1,236 @@ -package com.mortals.xhx.face; - -import com.arcsoft.face.*; -import com.arcsoft.face.toolkit.ImageInfo; -import com.google.common.collect.Lists; -import com.mortals.xhx.face.factory.FaceEnginePoolFactory; -import com.mortals.xhx.module.identity.model.SysFaceEntity; -import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.pool2.impl.AbandonedConfig; -import org.apache.commons.pool2.impl.GenericObjectPool; -import org.apache.commons.pool2.impl.GenericObjectPoolConfig; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -import javax.imageio.ImageIO; -import java.awt.image.BufferedImage; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; - -import static com.arcsoft.face.toolkit.ImageFactory.getRGBData; - -@Slf4j -@Component -public class ArcsoftFaceUtil { - - @Value(value = "${faceAppId}") - private String appId; - - @Value(value = "${winSdkKey}") - private String winSdkKey; - - @Value(value = "${linuxSdkkey}") - private String linuxSdkKey; - - - public Integer threadPoolSize=5; - - private GenericObjectPool<FaceEngine> faceEngineGenericObjectPool; - - public ArcsoftFaceUtil(){ - - String sdkLibPath = getClass().getResource(getOsName()).getPath(); - String sdkKey = getSdkKey(sdkLibPath); - // 瀵硅薄姹犲伐鍘� - FaceEnginePoolFactory personPoolFactory = new FaceEnginePoolFactory(appId,sdkKey,sdkLibPath); - // 瀵硅薄姹犻厤缃� - GenericObjectPoolConfig<FaceEngine> objectPoolConfig = new GenericObjectPoolConfig<>(); - objectPoolConfig.setMaxTotal(threadPoolSize); - AbandonedConfig abandonedConfig = new AbandonedConfig(); - //鍦∕aintenance鐨勬椂鍊欐鏌ユ槸鍚︽湁娉勬紡 - abandonedConfig.setRemoveAbandonedOnMaintenance(true); - //borrow 鐨勬椂鍊欐鏌ユ硠婕� - abandonedConfig.setRemoveAbandonedOnBorrow(true); - //濡傛灉涓€涓璞orrow涔嬪悗10绉掕繕娌℃湁杩旇繕缁檖ool锛岃涓烘槸娉勬紡鐨勫璞� - abandonedConfig.setRemoveAbandonedTimeout(10); - // 瀵硅薄姹� - faceEngineGenericObjectPool = new GenericObjectPool<>(personPoolFactory, objectPoolConfig); - faceEngineGenericObjectPool.setAbandonedConfig(abandonedConfig); - faceEngineGenericObjectPool.setTimeBetweenEvictionRunsMillis(5000); //5绉掕繍琛屼竴娆$淮鎶や换鍔� - log.info("寮曟搸姹犲紑鍚垚鍔�"); - } - - private String getOsName() { - String os = System.getProperty("os.name"); - String osName = os.toLowerCase().startsWith("win") ? "/face_lib/win64" : "/face_lib/linux"; - return osName; - } - - private String getSdkKey(String sdkLibPath) { - return sdkLibPath.equals("/face_lib/win64") ? winSdkKey : linuxSdkKey; - } - - /** - * 浜鸿劯妫€娴� - * - * @param fileInputStream - * @return - */ - public List<FaceInfo> faceFind(InputStream fileInputStream) throws IOException { - FaceEngine faceEngine = null; - try { - faceEngine = faceEngineGenericObjectPool.borrowObject(); - ImageInfo imageInfo = getRGBData(fileInputStream); - List<FaceInfo> faceInfoList = new ArrayList<FaceInfo>(); - int errorCode = faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList); - return faceInfoList; - } catch (Exception e) { - log.error("浜鸿劯妫€娴嬪嚭鐜颁簡寮傚父"); - e.printStackTrace(); - return new ArrayList<FaceInfo>(); - } finally { - fileInputStream.close(); - // 鍥炴敹瀵硅薄鍒板璞℃睜 - if (faceEngine != null) { - faceEngineGenericObjectPool.returnObject(faceEngine); - } - } - - } - - /** - * 浜鸿劯鎴彇 - * - * @param fileInputStream - * @param rect - * @return - */ - public String faceCrop(InputStream fileInputStream, Rect rect) { - try { - ByteArrayOutputStream stream = new ByteArrayOutputStream(); - BufferedImage bufImage = ImageIO.read(fileInputStream); - int height = bufImage.getHeight(); - int width = bufImage.getWidth(); - int top = rect.getTop(); - int bottom = rect.getBottom(); - int left = rect.getLeft(); - int right = rect.getRight(); - //System.out.println(top + "-" + bottom + "-" + left + "-" + right); - try { - BufferedImage subimage = bufImage.getSubimage(left, top, right - left, bottom - left); - ImageIO.write(subimage, "png", stream); - String base64 = Base64.encode(stream.toByteArray()); - return base64; - }catch (Exception e){ - return null; - }finally { - stream.close(); - fileInputStream.close(); - } - } catch (IOException e) { - e.printStackTrace(); - }finally { - - } - return null; - } - - /** - * 浜鸿劯鐗瑰緛鍊兼彁鍙� - */ - public byte[] faceFeature(byte[] bytes) { - FaceEngine faceEngine = null; - - try { - faceEngine = faceEngineGenericObjectPool.borrowObject(); - ImageInfo imageInfo = getRGBData(bytes); - //浜鸿劯妫€娴嬪緱鍒颁汉鑴稿垪琛� - List<FaceInfo> faceInfoList = new ArrayList<FaceInfo>(); - faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList); - FaceFeature faceFeature = new FaceFeature(); - faceEngine.extractFaceFeature(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList.get(0), faceFeature); - byte[] featureData = faceFeature.getFeatureData(); - return featureData; - } catch (Exception e) { - log.error("浜鸿劯鐗瑰緛鍊兼彁鍙栧嚭鐜颁簡寮傚父"); - e.printStackTrace(); - return new byte[0]; - } finally { - // 鍥炴敹瀵硅薄鍒板璞℃睜 - if (faceEngine != null) { - faceEngineGenericObjectPool.returnObject(faceEngine); - } - } - } - - /** - * 浜鸿劯瀵规瘮 - */ - public float faceCompared(byte [] source,byte [] des) throws IOException { - FaceEngine faceEngine = null; - try { - faceEngine = faceEngineGenericObjectPool.borrowObject(); - FaceFeature targetFaceFeature = new FaceFeature(); - targetFaceFeature.setFeatureData(source); - FaceFeature sourceFaceFeature = new FaceFeature(); - sourceFaceFeature.setFeatureData(des); - FaceSimilar faceSimilar = new FaceSimilar(); - faceEngine.compareFaceFeature(targetFaceFeature, sourceFaceFeature, faceSimilar); - float score = faceSimilar.getScore(); - return score; - } catch (Exception e) { - log.error("浜鸿劯瀵规瘮鍑虹幇浜嗗紓甯�"); - e.printStackTrace(); - return 0; - } finally { - // 鍥炴敹瀵硅薄鍒板璞℃睜 - if (faceEngine != null) { - faceEngineGenericObjectPool.returnObject(faceEngine); - } - } - } - - /** - * 浜鸿劯鎼滅储 - */ - public List<SysFaceEntity> faceSearch(FaceFeature targetFaceFeature,List<SysFaceEntity> sourceList) throws IOException { - FaceEngine faceEngine = null; - List<SysFaceEntity> resultFaceInfoList = Lists.newLinkedList();//璇嗗埆鍒扮殑浜鸿劯鍒楄〃 - try { - faceEngine = faceEngineGenericObjectPool.borrowObject(); - - for(SysFaceEntity faceUserInfo : sourceList) { - FaceFeature sourceFaceFeature = new FaceFeature(); - sourceFaceFeature.setFeatureData(faceUserInfo.getFaceFeature()); - FaceSimilar faceSimilar = new FaceSimilar(); - faceEngine.compareFaceFeature(targetFaceFeature, sourceFaceFeature, faceSimilar); - float score = faceSimilar.getScore(); - if(score > 0.8){ - faceUserInfo.setSimilarValue(plusHundred(score)); - resultFaceInfoList.add(faceUserInfo); - } - } - } catch (Exception e) { - log.error("浜鸿劯瀵规瘮鍑虹幇浜嗗紓甯�"); - e.printStackTrace(); - } finally { - // 鍥炴敹瀵硅薄鍒板璞℃睜 - if (faceEngine != null) { - faceEngineGenericObjectPool.returnObject(faceEngine); - } - } - return resultFaceInfoList; - } - - private int plusHundred(Float value) { - BigDecimal target = new BigDecimal(value); - BigDecimal hundred = new BigDecimal(100f); - return target.multiply(hundred).intValue(); - } - -} +//package com.mortals.xhx.face; +// +//import com.arcsoft.face.*; +//import com.arcsoft.face.toolkit.ImageInfo; +//import com.google.common.collect.Lists; +//import com.mortals.xhx.face.factory.FaceEnginePoolFactory; +//import com.mortals.xhx.module.identity.model.SysFaceEntity; +//import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; +//import lombok.extern.slf4j.Slf4j; +//import org.apache.commons.pool2.impl.AbandonedConfig; +//import org.apache.commons.pool2.impl.GenericObjectPool; +//import org.apache.commons.pool2.impl.GenericObjectPoolConfig; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.stereotype.Component; +// +//import javax.imageio.ImageIO; +//import java.awt.image.BufferedImage; +//import java.io.ByteArrayOutputStream; +//import java.io.IOException; +//import java.io.InputStream; +//import java.math.BigDecimal; +//import java.util.ArrayList; +//import java.util.List; +// +//import static com.arcsoft.face.toolkit.ImageFactory.getRGBData; +// +//@Slf4j +//@Component +//public class ArcsoftFaceUtil { +// +// @Value(value = "${faceAppId}") +// private String appId; +// +// @Value(value = "${winSdkKey}") +// private String winSdkKey; +// +// @Value(value = "${linuxSdkkey}") +// private String linuxSdkKey; +// +// +// public Integer threadPoolSize=5; +// +// private GenericObjectPool<FaceEngine> faceEngineGenericObjectPool; +// +// public ArcsoftFaceUtil(){ +// +// String sdkLibPath = getClass().getResource(getOsName()).getPath(); +// String sdkKey = getSdkKey(sdkLibPath); +// // 瀵硅薄姹犲伐鍘� +// FaceEnginePoolFactory personPoolFactory = new FaceEnginePoolFactory(appId,sdkKey,sdkLibPath); +// // 瀵硅薄姹犻厤缃� +// GenericObjectPoolConfig<FaceEngine> objectPoolConfig = new GenericObjectPoolConfig<>(); +// objectPoolConfig.setMaxTotal(threadPoolSize); +// AbandonedConfig abandonedConfig = new AbandonedConfig(); +// //鍦∕aintenance鐨勬椂鍊欐鏌ユ槸鍚︽湁娉勬紡 +// abandonedConfig.setRemoveAbandonedOnMaintenance(true); +// //borrow 鐨勬椂鍊欐鏌ユ硠婕� +// abandonedConfig.setRemoveAbandonedOnBorrow(true); +// //濡傛灉涓€涓璞orrow涔嬪悗10绉掕繕娌℃湁杩旇繕缁檖ool锛岃涓烘槸娉勬紡鐨勫璞� +// abandonedConfig.setRemoveAbandonedTimeout(10); +// // 瀵硅薄姹� +// faceEngineGenericObjectPool = new GenericObjectPool<>(personPoolFactory, objectPoolConfig); +// faceEngineGenericObjectPool.setAbandonedConfig(abandonedConfig); +// faceEngineGenericObjectPool.setTimeBetweenEvictionRunsMillis(5000); //5绉掕繍琛屼竴娆$淮鎶や换鍔� +// log.info("寮曟搸姹犲紑鍚垚鍔�"); +// } +// +// private String getOsName() { +// String os = System.getProperty("os.name"); +// String osName = os.toLowerCase().startsWith("win") ? "/face_lib/win64" : "/face_lib/linux"; +// return osName; +// } +// +// private String getSdkKey(String sdkLibPath) { +// return sdkLibPath.equals("/face_lib/win64") ? winSdkKey : linuxSdkKey; +// } +// +// /** +// * 浜鸿劯妫€娴� +// * +// * @param fileInputStream +// * @return +// */ +// public List<FaceInfo> faceFind(InputStream fileInputStream) throws IOException { +// FaceEngine faceEngine = null; +// try { +// faceEngine = faceEngineGenericObjectPool.borrowObject(); +// ImageInfo imageInfo = getRGBData(fileInputStream); +// List<FaceInfo> faceInfoList = new ArrayList<FaceInfo>(); +// int errorCode = faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList); +// return faceInfoList; +// } catch (Exception e) { +// log.error("浜鸿劯妫€娴嬪嚭鐜颁簡寮傚父"); +// e.printStackTrace(); +// return new ArrayList<FaceInfo>(); +// } finally { +// fileInputStream.close(); +// // 鍥炴敹瀵硅薄鍒板璞℃睜 +// if (faceEngine != null) { +// faceEngineGenericObjectPool.returnObject(faceEngine); +// } +// } +// +// } +// +// /** +// * 浜鸿劯鎴彇 +// * +// * @param fileInputStream +// * @param rect +// * @return +// */ +// public String faceCrop(InputStream fileInputStream, Rect rect) { +// try { +// ByteArrayOutputStream stream = new ByteArrayOutputStream(); +// BufferedImage bufImage = ImageIO.read(fileInputStream); +// int height = bufImage.getHeight(); +// int width = bufImage.getWidth(); +// int top = rect.getTop(); +// int bottom = rect.getBottom(); +// int left = rect.getLeft(); +// int right = rect.getRight(); +// //System.out.println(top + "-" + bottom + "-" + left + "-" + right); +// try { +// BufferedImage subimage = bufImage.getSubimage(left, top, right - left, bottom - left); +// ImageIO.write(subimage, "png", stream); +// String base64 = Base64.encode(stream.toByteArray()); +// return base64; +// }catch (Exception e){ +// return null; +// }finally { +// stream.close(); +// fileInputStream.close(); +// } +// } catch (IOException e) { +// e.printStackTrace(); +// }finally { +// +// } +// return null; +// } +// +// /** +// * 浜鸿劯鐗瑰緛鍊兼彁鍙� +// */ +// public byte[] faceFeature(byte[] bytes) { +// FaceEngine faceEngine = null; +// +// try { +// faceEngine = faceEngineGenericObjectPool.borrowObject(); +// ImageInfo imageInfo = getRGBData(bytes); +// //浜鸿劯妫€娴嬪緱鍒颁汉鑴稿垪琛� +// List<FaceInfo> faceInfoList = new ArrayList<FaceInfo>(); +// faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList); +// FaceFeature faceFeature = new FaceFeature(); +// faceEngine.extractFaceFeature(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList.get(0), faceFeature); +// byte[] featureData = faceFeature.getFeatureData(); +// return featureData; +// } catch (Exception e) { +// log.error("浜鸿劯鐗瑰緛鍊兼彁鍙栧嚭鐜颁簡寮傚父"); +// e.printStackTrace(); +// return new byte[0]; +// } finally { +// // 鍥炴敹瀵硅薄鍒板璞℃睜 +// if (faceEngine != null) { +// faceEngineGenericObjectPool.returnObject(faceEngine); +// } +// } +// } +// +// /** +// * 浜鸿劯瀵规瘮 +// */ +// public float faceCompared(byte [] source,byte [] des) throws IOException { +// FaceEngine faceEngine = null; +// try { +// faceEngine = faceEngineGenericObjectPool.borrowObject(); +// FaceFeature targetFaceFeature = new FaceFeature(); +// targetFaceFeature.setFeatureData(source); +// FaceFeature sourceFaceFeature = new FaceFeature(); +// sourceFaceFeature.setFeatureData(des); +// FaceSimilar faceSimilar = new FaceSimilar(); +// faceEngine.compareFaceFeature(targetFaceFeature, sourceFaceFeature, faceSimilar); +// float score = faceSimilar.getScore(); +// return score; +// } catch (Exception e) { +// log.error("浜鸿劯瀵规瘮鍑虹幇浜嗗紓甯�"); +// e.printStackTrace(); +// return 0; +// } finally { +// // 鍥炴敹瀵硅薄鍒板璞℃睜 +// if (faceEngine != null) { +// faceEngineGenericObjectPool.returnObject(faceEngine); +// } +// } +// } +// +// /** +// * 浜鸿劯鎼滅储 +// */ +// public List<SysFaceEntity> faceSearch(FaceFeature targetFaceFeature,List<SysFaceEntity> sourceList) throws IOException { +// FaceEngine faceEngine = null; +// List<SysFaceEntity> resultFaceInfoList = Lists.newLinkedList();//璇嗗埆鍒扮殑浜鸿劯鍒楄〃 +// try { +// faceEngine = faceEngineGenericObjectPool.borrowObject(); +// +// for(SysFaceEntity faceUserInfo : sourceList) { +// FaceFeature sourceFaceFeature = new FaceFeature(); +// sourceFaceFeature.setFeatureData(faceUserInfo.getFaceFeature()); +// FaceSimilar faceSimilar = new FaceSimilar(); +// faceEngine.compareFaceFeature(targetFaceFeature, sourceFaceFeature, faceSimilar); +// float score = faceSimilar.getScore(); +// if(score > 0.8){ +// faceUserInfo.setSimilarValue(plusHundred(score)); +// resultFaceInfoList.add(faceUserInfo); +// } +// } +// } catch (Exception e) { +// log.error("浜鸿劯瀵规瘮鍑虹幇浜嗗紓甯�"); +// e.printStackTrace(); +// } finally { +// // 鍥炴敹瀵硅薄鍒板璞℃睜 +// if (faceEngine != null) { +// faceEngineGenericObjectPool.returnObject(faceEngine); +// } +// } +// return resultFaceInfoList; +// } +// +// private int plusHundred(Float value) { +// BigDecimal target = new BigDecimal(value); +// BigDecimal hundred = new BigDecimal(100f); +// return target.multiply(hundred).intValue(); +// } +// +//} diff --git a/base-manager/src/main/java/com/mortals/xhx/face/factory/FaceEnginePoolFactory.java b/base-manager/src/main/java/com/mortals/xhx/face/factory/FaceEnginePoolFactory.java index b2c325d8d1be40e382c36ec70ae28bed0e88d4e7..81da120586dadd06794eb130a28d45d1e64541d0 100644 --- a/base-manager/src/main/java/com/mortals/xhx/face/factory/FaceEnginePoolFactory.java +++ b/base-manager/src/main/java/com/mortals/xhx/face/factory/FaceEnginePoolFactory.java @@ -1,121 +1,121 @@ -package com.mortals.xhx.face.factory; - -import com.arcsoft.face.ActiveFileInfo; -import com.arcsoft.face.EngineConfiguration; -import com.arcsoft.face.FaceEngine; -import com.arcsoft.face.FunctionConfiguration; -import com.arcsoft.face.enums.DetectMode; -import com.arcsoft.face.enums.DetectOrient; -import com.arcsoft.face.enums.ErrorInfo; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.pool2.BasePooledObjectFactory; -import org.apache.commons.pool2.PooledObject; -import org.apache.commons.pool2.impl.DefaultPooledObject; - -@Slf4j -public class FaceEnginePoolFactory extends BasePooledObjectFactory<FaceEngine> { - - private String appId; - private String sdkKey; - private String sdkLibPath; - - public FaceEnginePoolFactory(String appId, String sdkKey, String sdkLibPath) { - this.appId = appId; - this.sdkKey = sdkKey; - this.sdkLibPath = sdkLibPath; - //this.sdkLibPath = "D:\\face\\win64"; - } - - /** - * 鍦ㄥ璞℃睜涓垱寤哄璞� - * @return - * @throws Exception - */ - @Override - public FaceEngine create() throws Exception { - FaceEngine faceEngine = new FaceEngine(sdkLibPath); - //婵€娲诲紩鎿� - int errorCode = faceEngine.activeOnline(appId, sdkKey); - if (errorCode != ErrorInfo.MOK.getValue() && errorCode != ErrorInfo.MERR_ASF_ALREADY_ACTIVATED.getValue()) { - log.warn("寮曟搸婵€娲诲け璐�"); - } - ActiveFileInfo activeFileInfo=new ActiveFileInfo(); - errorCode = faceEngine.getActiveFileInfo(activeFileInfo); - if (errorCode != ErrorInfo.MOK.getValue() && errorCode != ErrorInfo.MERR_ASF_ALREADY_ACTIVATED.getValue()) { - log.warn("鑾峰彇婵€娲绘枃浠朵俊鎭け璐�"); - } - //寮曟搸閰嶇疆 - EngineConfiguration engineConfiguration = new EngineConfiguration(); - engineConfiguration.setDetectMode(DetectMode.ASF_DETECT_MODE_IMAGE); - engineConfiguration.setDetectFaceOrientPriority(DetectOrient.ASF_OP_ALL_OUT); - engineConfiguration.setDetectFaceMaxNum(10); - engineConfiguration.setDetectFaceScaleVal(16); - //鍔熻兘閰嶇疆 - FunctionConfiguration functionConfiguration = new FunctionConfiguration(); - functionConfiguration.setSupportAge(true); - functionConfiguration.setSupportFace3dAngle(true); - functionConfiguration.setSupportFaceDetect(true); - functionConfiguration.setSupportFaceRecognition(true); - functionConfiguration.setSupportGender(true); - functionConfiguration.setSupportLiveness(true); - functionConfiguration.setSupportIRLiveness(true); - engineConfiguration.setFunctionConfiguration(functionConfiguration); - //鍒濆鍖栧紩鎿� - errorCode = faceEngine.init(engineConfiguration); - - if (errorCode != ErrorInfo.MOK.getValue()) { - log.error("鍒濆鍖栧紩鎿庡け璐�"); - } - return faceEngine; - } - - /** - * 鍖呰瀵硅薄 - * @param faceEngine - * @return - */ - @Override - public PooledObject<FaceEngine> wrap(FaceEngine faceEngine) { - return new DefaultPooledObject<>(faceEngine); - } - /** - * 閿€姣佸璞� - * @param faceEngine 瀵硅薄姹� - * @throws Exception 寮傚父 - */ - @Override - public void destroyObject(PooledObject<FaceEngine> faceEngine) throws Exception { - super.destroyObject(faceEngine); - } - - /** - * 鏍¢獙瀵硅薄鏄惁鍙敤 - * @param faceEngine 瀵硅薄姹� - * @return 瀵硅薄鏄惁鍙敤缁撴灉锛宐oolean - */ - @Override - public boolean validateObject(PooledObject<FaceEngine> faceEngine) { - return super.validateObject(faceEngine); - } - - /** - * 婵€娲婚挐鍖栫殑瀵硅薄绯诲垪鎿嶄綔 - * @param faceEngine 瀵硅薄姹� - * @throws Exception 寮傚父淇℃伅 - */ - @Override - public void activateObject(PooledObject<FaceEngine> faceEngine) throws Exception { - super.activateObject(faceEngine); - } - - /** - * 閽濆寲鏈娇鐢ㄧ殑瀵硅薄 - * @param faceEngine 瀵硅薄姹� - * @throws Exception 寮傚父淇℃伅 - */ - @Override - public void passivateObject(PooledObject<FaceEngine> faceEngine) throws Exception { - super.passivateObject(faceEngine); - } - -} +//package com.mortals.xhx.face.factory; +// +//import com.arcsoft.face.ActiveFileInfo; +//import com.arcsoft.face.EngineConfiguration; +//import com.arcsoft.face.FaceEngine; +//import com.arcsoft.face.FunctionConfiguration; +//import com.arcsoft.face.enums.DetectMode; +//import com.arcsoft.face.enums.DetectOrient; +//import com.arcsoft.face.enums.ErrorInfo; +//import lombok.extern.slf4j.Slf4j; +//import org.apache.commons.pool2.BasePooledObjectFactory; +//import org.apache.commons.pool2.PooledObject; +//import org.apache.commons.pool2.impl.DefaultPooledObject; +// +//@Slf4j +//public class FaceEnginePoolFactory extends BasePooledObjectFactory<FaceEngine> { +// +// private String appId; +// private String sdkKey; +// private String sdkLibPath; +// +// public FaceEnginePoolFactory(String appId, String sdkKey, String sdkLibPath) { +// this.appId = appId; +// this.sdkKey = sdkKey; +// this.sdkLibPath = sdkLibPath; +// //this.sdkLibPath = "D:\\face\\win64"; +// } +// +// /** +// * 鍦ㄥ璞℃睜涓垱寤哄璞� +// * @return +// * @throws Exception +// */ +// @Override +// public FaceEngine create() throws Exception { +// FaceEngine faceEngine = new FaceEngine(sdkLibPath); +// //婵€娲诲紩鎿� +// int errorCode = faceEngine.activeOnline(appId, sdkKey); +// if (errorCode != ErrorInfo.MOK.getValue() && errorCode != ErrorInfo.MERR_ASF_ALREADY_ACTIVATED.getValue()) { +// log.warn("寮曟搸婵€娲诲け璐�"); +// } +// ActiveFileInfo activeFileInfo=new ActiveFileInfo(); +// errorCode = faceEngine.getActiveFileInfo(activeFileInfo); +// if (errorCode != ErrorInfo.MOK.getValue() && errorCode != ErrorInfo.MERR_ASF_ALREADY_ACTIVATED.getValue()) { +// log.warn("鑾峰彇婵€娲绘枃浠朵俊鎭け璐�"); +// } +// //寮曟搸閰嶇疆 +// EngineConfiguration engineConfiguration = new EngineConfiguration(); +// engineConfiguration.setDetectMode(DetectMode.ASF_DETECT_MODE_IMAGE); +// engineConfiguration.setDetectFaceOrientPriority(DetectOrient.ASF_OP_ALL_OUT); +// engineConfiguration.setDetectFaceMaxNum(10); +// engineConfiguration.setDetectFaceScaleVal(16); +// //鍔熻兘閰嶇疆 +// FunctionConfiguration functionConfiguration = new FunctionConfiguration(); +// functionConfiguration.setSupportAge(true); +// functionConfiguration.setSupportFace3dAngle(true); +// functionConfiguration.setSupportFaceDetect(true); +// functionConfiguration.setSupportFaceRecognition(true); +// functionConfiguration.setSupportGender(true); +// functionConfiguration.setSupportLiveness(true); +// functionConfiguration.setSupportIRLiveness(true); +// engineConfiguration.setFunctionConfiguration(functionConfiguration); +// //鍒濆鍖栧紩鎿� +// errorCode = faceEngine.init(engineConfiguration); +// +// if (errorCode != ErrorInfo.MOK.getValue()) { +// log.error("鍒濆鍖栧紩鎿庡け璐�"); +// } +// return faceEngine; +// } +// +// /** +// * 鍖呰瀵硅薄 +// * @param faceEngine +// * @return +// */ +// @Override +// public PooledObject<FaceEngine> wrap(FaceEngine faceEngine) { +// return new DefaultPooledObject<>(faceEngine); +// } +// /** +// * 閿€姣佸璞� +// * @param faceEngine 瀵硅薄姹� +// * @throws Exception 寮傚父 +// */ +// @Override +// public void destroyObject(PooledObject<FaceEngine> faceEngine) throws Exception { +// super.destroyObject(faceEngine); +// } +// +// /** +// * 鏍¢獙瀵硅薄鏄惁鍙敤 +// * @param faceEngine 瀵硅薄姹� +// * @return 瀵硅薄鏄惁鍙敤缁撴灉锛宐oolean +// */ +// @Override +// public boolean validateObject(PooledObject<FaceEngine> faceEngine) { +// return super.validateObject(faceEngine); +// } +// +// /** +// * 婵€娲婚挐鍖栫殑瀵硅薄绯诲垪鎿嶄綔 +// * @param faceEngine 瀵硅薄姹� +// * @throws Exception 寮傚父淇℃伅 +// */ +// @Override +// public void activateObject(PooledObject<FaceEngine> faceEngine) throws Exception { +// super.activateObject(faceEngine); +// } +// +// /** +// * 閽濆寲鏈娇鐢ㄧ殑瀵硅薄 +// * @param faceEngine 瀵硅薄姹� +// * @throws Exception 寮傚父淇℃伅 +// */ +// @Override +// public void passivateObject(PooledObject<FaceEngine> faceEngine) throws Exception { +// super.passivateObject(faceEngine); +// } +// +//} diff --git a/base-manager/src/main/java/com/mortals/xhx/module/app/model/vo/AppVo.java b/base-manager/src/main/java/com/mortals/xhx/module/app/model/vo/AppVo.java index a1b5f29244c03fcb60c3b527062e97afa26cd9f6..3fd5fc0fd7a6862b049b9fe00a8b9a25633a2a6c 100644 --- a/base-manager/src/main/java/com/mortals/xhx/module/app/model/vo/AppVo.java +++ b/base-manager/src/main/java/com/mortals/xhx/module/app/model/vo/AppVo.java @@ -27,5 +27,9 @@ public class AppVo extends BaseEntityLong { * 鑷富搴旂敤璁块棶鍦板潃 */ private String custUrl; + /** + * 鍥炬爣璁块棶鍦板潃 + */ + private String appIconUrl; } \ No newline at end of file diff --git a/base-manager/src/main/java/com/mortals/xhx/module/app/service/impl/AppServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/app/service/impl/AppServiceImpl.java index b283196f8db263690cb6fc6b3b20bcbb4838a3a3..098f8d04d4a00ce02746a24ed84a3e04391413c2 100644 --- a/base-manager/src/main/java/com/mortals/xhx/module/app/service/impl/AppServiceImpl.java +++ b/base-manager/src/main/java/com/mortals/xhx/module/app/service/impl/AppServiceImpl.java @@ -86,12 +86,11 @@ public class AppServiceImpl extends AbstractCRUDServiceImpl<AppDao, AppEntity, L List<AppEntity> appEntityList = this.find(new AppQuery().appCode(item.getAppCode()), context); item.setApplianceSiteScope(appEntityList.size()); item.setSiteIdList(appEntityList.stream().map(AppEntity::getSiteId).collect(Collectors.toList())); - //鏋勫缓璁块棶鍦板潃 SiteEntity siteEntity = siteService.getCache(item.getSiteId().toString()); + String domainUrl = GlobalSysInfo.getParamValue(Constant.PARAM_SERVER_HTTP_URL, "http://192.168.0.98:11078"); if (!ObjectUtils.isEmpty(siteEntity)) { //璇锋眰鍦板潃 http://domian/app/siteCode/appcode/html - String domainUrl = GlobalSysInfo.getParamValue(Constant.PARAM_SERVER_HTTP_URL, "http://192.168.0.98:11078"); item.setCustUrl(UrlBuilder.of(domainUrl) .addPath(CUSTAPP_ROOT_PATH) .addPath(siteEntity.getSiteCode()) @@ -101,10 +100,10 @@ public class AppServiceImpl extends AbstractCRUDServiceImpl<AppDao, AppEntity, L } else { item.setCustUrl(""); } - - + //鏋勫缓鍥炬爣鍦板潃 + item.setAppIconUrl(UrlBuilder.of(domainUrl) + .addPath(item.getAppIconPath()).build()); }); - super.findAfter(params, pageInfo, context, list); } diff --git a/base-manager/src/main/java/com/mortals/xhx/module/identity/service/impl/SysFaceServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/identity/service/impl/SysFaceServiceImpl.java index f817c1945d2eec5aab52a7940bb44c034b90759d..5da9ae29319bab01753895deb71bbd64ac59d657 100644 --- a/base-manager/src/main/java/com/mortals/xhx/module/identity/service/impl/SysFaceServiceImpl.java +++ b/base-manager/src/main/java/com/mortals/xhx/module/identity/service/impl/SysFaceServiceImpl.java @@ -1,248 +1,248 @@ -package com.mortals.xhx.module.identity.service.impl; - -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.img.Img; -import cn.hutool.core.util.IdUtil; -import com.arcsoft.face.FaceEngine; -import com.arcsoft.face.FaceFeature; -import com.arcsoft.face.FaceSimilar; -import com.google.common.collect.Lists; -import com.mortals.framework.exception.AppException; -import com.mortals.framework.model.Context; -import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; -import com.mortals.framework.util.StringUtils; -import com.mortals.xhx.common.utils.FaceUtil; -import com.mortals.xhx.face.ArcsoftFaceUtil; -import com.mortals.xhx.module.identity.dao.SysFaceDao; -import com.mortals.xhx.module.identity.model.SysFaceEntity; -import com.mortals.xhx.module.identity.model.SysIdentityEntity; -import com.mortals.xhx.module.identity.model.vo.FaceInfoResVO; -import com.mortals.xhx.module.identity.service.SysFaceService; -import com.mortals.xhx.module.identity.service.SysIdentityService; -import net.coobird.thumbnailator.Thumbnails; -import org.apache.commons.collections4.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.multipart.MultipartFile; - -import javax.annotation.PostConstruct; -import java.awt.image.BufferedImage; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.Base64; -import java.util.Date; -import java.util.List; -import java.util.concurrent.*; -import java.util.stream.Collectors; - -/** -* SysFaceService -* 浜鸿劯璇嗗埆淇℃伅 service瀹炵幇 -* -* @author zxfei -* @date 2022-08-03 -*/ -@Service("sysFaceService") -public class SysFaceServiceImpl extends AbstractCRUDServiceImpl<SysFaceDao, SysFaceEntity, String> implements SysFaceService { - - private Integer passRate = 80; - - public static final int WIDTH = 100; - public static final int HEIGHT = 100; - - @Value(value = "${faceAppId}") - private String appId; - - @Value(value = "${winSdkKey}") - private String winSdkKey; - - @Value(value = "${linuxSdkkey}") - private String linuxSdkKey; - - public Integer threadPoolSize = 5; - - @Autowired - private FaceUtil faceUtil; - - @Autowired - private SysIdentityService sysIdentityService; - - @Autowired - private ArcsoftFaceUtil arcsoftFaceUtil; - - private ExecutorService executorService; - - @PostConstruct - public void init() { - executorService = Executors.newFixedThreadPool(threadPoolSize); - } - - @Override - protected void saveBefore(SysFaceEntity entity, Context context) throws AppException { - //闈炵郴缁熻嚜澧烇紝闇€杩欓噷璁剧疆涓婚敭 - entity.setId(IdUtil.fastSimpleUUID()); - super.saveBefore(entity, context); - } - - @Override - public FaceInfoResVO uploadImage(MultipartFile multipartFile, String name, String idCard, String placeId, String placeName) throws AppException { - String clientName = multipartFile.getOriginalFilename(); - if(!(clientName.endsWith(".png") || clientName.endsWith(".jpg") || clientName.endsWith(".jpeg"))){ - throw new AppException("璇蜂笂浼犲浘鐗囨牸寮�(" + clientName + ")"); - } - FaceInfoResVO resVO = new FaceInfoResVO(); - SysIdentityEntity idEntityReqVO = new SysIdentityEntity(); - idEntityReqVO.setName(name); - idEntityReqVO.setIdCard(idCard); - String entityId = sysIdentityService.saveIdEntity(idEntityReqVO).getId(); - SysFaceEntity query = new SysFaceEntity(); - query.setIdCard(entityId); - List<SysFaceEntity> sysFaceList = dao.getList(query); - if(CollectionUtils.isNotEmpty(sysFaceList)){ - throw new AppException("璇ョ敤鎴�(" + idEntityReqVO.getName() + "_" + idEntityReqVO.getIdCard() + ")浜鸿劯鏁版嵁宸插瓨鍦�"); - } - - try { - byte[] file = multipartFile.getBytes(); - //婵€娲诲紩鎿� - FaceEngine faceEngine = faceUtil.initFace(appId, getSdkKey()); - byte[] featureData = faceUtil.featureData(faceEngine, file); - //鍒涘缓缂╃暐鍥� - BufferedImage image = Thumbnails.of(multipartFile.getInputStream()).size(WIDTH, HEIGHT).asBufferedImage(); - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - //姝ゆ柟娉曚細閫犳垚png鍥剧墖鏈夐槾褰� -// ImageIO.write(image, "jpg", byteArrayOutputStream); - Img.from(image).write(byteArrayOutputStream); - byteArrayOutputStream.flush(); - SysFaceEntity sysFace = new SysFaceEntity(); - sysFace.setId(IdUtil.fastSimpleUUID()); - sysFace.setFace(byteArrayOutputStream.toByteArray()); - sysFace.setFaceFeature(featureData); - sysFace.setIdCard(entityId); - sysFace.setPlaceId(placeId); - sysFace.setPlaceName(placeName); - sysFace.setCreateTime(new Date()); - sysFace.setUpdateTime(sysFace.getCreateTime()); - sysFace.setDeleted(0); - dao.insert(sysFace); - resVO.setFace(Base64.getEncoder().encodeToString(file)); - resVO.setFaceFeature(Base64.getEncoder().encodeToString(featureData)); - resVO.setIdCard(idCard); - resVO.setName(name); - resVO.setPhone(""); - resVO.setId(sysFace.getId()); - } catch (IOException e) { - log.error("鎻愬彇鐗瑰緛澶辫触:", e); - } - return resVO; - } - - @Override - public List<FaceInfoResVO> findFaceList(String placeId) throws AppException { - SysFaceEntity query = new SysFaceEntity(); - query.setPlaceId(placeId); - List<SysFaceEntity> sysFaceList = dao.getList(query); - if(CollectionUtils.isEmpty(sysFaceList)){ - throw new AppException("璇ュ満鎵€鏃犱汉鑴告暟鎹�"); - } - return sysFaceList.stream().map(o -> { - FaceInfoResVO resVO = new FaceInfoResVO(); - SysIdentityEntity resVO1 = sysIdentityService.findIdEntityDetail(o.getIdCard(), 1); - resVO.setId(o.getId()); - resVO.setPlaceId(o.getPlaceId()); - resVO.setPlaceName(o.getPlaceName()); - resVO.setCardId(resVO1.getId()); - resVO.setName(resVO1.getName()); - resVO.setPhone(resVO1.getPhone()); - resVO.setFace(Base64.getEncoder().encodeToString(o.getFace())); - resVO.setFaceFeature(Base64.getEncoder().encodeToString(o.getFaceFeature())); - return resVO; - }).collect(Collectors.toList()); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void batchAddFace(List<MultipartFile> files, String placeId, String placeName) { - for (int j = 0; j < files.size(); j++) { - String fileName = files.get(j).getOriginalFilename(); - if(StringUtils.isEmpty(fileName)){ - throw new AppException("鏂囦欢鍚嶇О(" + fileName + ")涓嶈兘涓虹┖锛�"); - } - String[] info = fileName.split("/"); - if(info.length != 2){ - throw new AppException("(" + fileName + ")鏂囦欢鍛藉悕閿欒锛岃鎸夌収瑙勫畾鏂囦欢妯$増涓婁紶锛�"); - } - String[] infos = info[1].split("\\."); - if(infos.length != 2){ - throw new AppException("(" + fileName + ")鏂囦欢鍛藉悕閿欒锛岃鎸夌収瑙勫畾鏂囦欢妯$増涓婁紶锛�"); - } - String[] strings = infos[0].split("_"); - if(strings.length != 2){ - throw new AppException("(" + fileName + ")鏂囦欢鍛藉悕閿欒锛岃鎸夌収瑙勫畾鏂囦欢妯$増涓婁紶锛�"); - } - uploadImage(files.get(j), strings[0], strings[1], placeId, placeName); - } - } - - private String getSdkKey() { - return faceUtil.getOsName().equals("/win") ? winSdkKey : linuxSdkKey; - } - - @Override - public List<FaceInfoResVO> searchUserByFace(byte[] bytes) throws InterruptedException, ExecutionException{ - List<SysFaceEntity> resultFaceInfoList = Lists.newLinkedList();//璇嗗埆鍒扮殑浜鸿劯鍒楄〃 - - byte[] faceFeature = arcsoftFaceUtil.faceFeature(bytes); - FaceFeature targetFaceFeature = new FaceFeature(); - targetFaceFeature.setFeatureData(faceFeature); - List<SysFaceEntity> faceInfoList = this.find(new SysFaceEntity()); - List<List<SysFaceEntity>> faceUserInfoPartList = Lists.partition(faceInfoList, 1000);//鍒嗘垚1000涓€缁勶紝澶氱嚎绋嬪鐞� - CompletionService<List<SysFaceEntity>> completionService = new ExecutorCompletionService(executorService); - for (List<SysFaceEntity> part : faceUserInfoPartList) { - completionService.submit(new CompareFaceTask(part, targetFaceFeature)); - } - for (int i = 0; i < faceUserInfoPartList.size(); i++) { - List<SysFaceEntity> faceUserInfoList = completionService.take().get(); - if (CollectionUtil.isNotEmpty(faceInfoList)) { - resultFaceInfoList.addAll(faceUserInfoList); - } - } - - resultFaceInfoList.sort((h1, h2) -> h2.getSimilarValue().compareTo(h1.getSimilarValue()));//浠庡ぇ鍒板皬鎺掑簭 - - return resultFaceInfoList.stream().map(o -> { - FaceInfoResVO resVO = new FaceInfoResVO(); - SysIdentityEntity resVO1 = sysIdentityService.findIdEntityDetail(o.getIdCard(), 1); - resVO.setId(o.getId()); - resVO.setPlaceId(o.getPlaceId()); - resVO.setPlaceName(o.getPlaceName()); - resVO.setCardId(resVO1.getId()); - resVO.setName(resVO1.getName()); - resVO.setPhone(resVO1.getPhone()); - resVO.setFace(Base64.getEncoder().encodeToString(o.getFace())); - resVO.setFaceFeature(Base64.getEncoder().encodeToString(o.getFaceFeature())); - return resVO; - }).collect(Collectors.toList()); - } - - private class CompareFaceTask implements Callable<List<SysFaceEntity>> { - - private List<SysFaceEntity> faceUserInfoList; - private FaceFeature targetFaceFeature; - - - public CompareFaceTask(List<SysFaceEntity> faceUserInfoList, FaceFeature targetFaceFeature) { - this.faceUserInfoList = faceUserInfoList; - this.targetFaceFeature = targetFaceFeature; - } - - @Override - public List<SysFaceEntity> call() throws Exception { - - return arcsoftFaceUtil.faceSearch(targetFaceFeature,faceUserInfoList); - } - - } -} \ No newline at end of file +//package com.mortals.xhx.module.identity.service.impl; +// +//import cn.hutool.core.collection.CollectionUtil; +//import cn.hutool.core.img.Img; +//import cn.hutool.core.util.IdUtil; +//import com.arcsoft.face.FaceEngine; +//import com.arcsoft.face.FaceFeature; +//import com.arcsoft.face.FaceSimilar; +//import com.google.common.collect.Lists; +//import com.mortals.framework.exception.AppException; +//import com.mortals.framework.model.Context; +//import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; +//import com.mortals.framework.util.StringUtils; +//import com.mortals.xhx.common.utils.FaceUtil; +//import com.mortals.xhx.face.ArcsoftFaceUtil; +//import com.mortals.xhx.module.identity.dao.SysFaceDao; +//import com.mortals.xhx.module.identity.model.SysFaceEntity; +//import com.mortals.xhx.module.identity.model.SysIdentityEntity; +//import com.mortals.xhx.module.identity.model.vo.FaceInfoResVO; +//import com.mortals.xhx.module.identity.service.SysFaceService; +//import com.mortals.xhx.module.identity.service.SysIdentityService; +//import net.coobird.thumbnailator.Thumbnails; +//import org.apache.commons.collections4.CollectionUtils; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.stereotype.Service; +//import org.springframework.transaction.annotation.Transactional; +//import org.springframework.web.multipart.MultipartFile; +// +//import javax.annotation.PostConstruct; +//import java.awt.image.BufferedImage; +//import java.io.ByteArrayOutputStream; +//import java.io.IOException; +//import java.util.Base64; +//import java.util.Date; +//import java.util.List; +//import java.util.concurrent.*; +//import java.util.stream.Collectors; +// +///** +//* SysFaceService +//* 浜鸿劯璇嗗埆淇℃伅 service瀹炵幇 +//* +//* @author zxfei +//* @date 2022-08-03 +//*/ +//@Service("sysFaceService") +//public class SysFaceServiceImpl extends AbstractCRUDServiceImpl<SysFaceDao, SysFaceEntity, String> implements SysFaceService { +// +// private Integer passRate = 80; +// +// public static final int WIDTH = 100; +// public static final int HEIGHT = 100; +// +// @Value(value = "${faceAppId}") +// private String appId; +// +// @Value(value = "${winSdkKey}") +// private String winSdkKey; +// +// @Value(value = "${linuxSdkkey}") +// private String linuxSdkKey; +// +// public Integer threadPoolSize = 5; +// +// @Autowired +// private FaceUtil faceUtil; +// +// @Autowired +// private SysIdentityService sysIdentityService; +// +// @Autowired +// private ArcsoftFaceUtil arcsoftFaceUtil; +// +// private ExecutorService executorService; +// +// @PostConstruct +// public void init() { +// executorService = Executors.newFixedThreadPool(threadPoolSize); +// } +// +// @Override +// protected void saveBefore(SysFaceEntity entity, Context context) throws AppException { +// //闈炵郴缁熻嚜澧烇紝闇€杩欓噷璁剧疆涓婚敭 +// entity.setId(IdUtil.fastSimpleUUID()); +// super.saveBefore(entity, context); +// } +// +// @Override +// public FaceInfoResVO uploadImage(MultipartFile multipartFile, String name, String idCard, String placeId, String placeName) throws AppException { +// String clientName = multipartFile.getOriginalFilename(); +// if(!(clientName.endsWith(".png") || clientName.endsWith(".jpg") || clientName.endsWith(".jpeg"))){ +// throw new AppException("璇蜂笂浼犲浘鐗囨牸寮�(" + clientName + ")"); +// } +// FaceInfoResVO resVO = new FaceInfoResVO(); +// SysIdentityEntity idEntityReqVO = new SysIdentityEntity(); +// idEntityReqVO.setName(name); +// idEntityReqVO.setIdCard(idCard); +// String entityId = sysIdentityService.saveIdEntity(idEntityReqVO).getId(); +// SysFaceEntity query = new SysFaceEntity(); +// query.setIdCard(entityId); +// List<SysFaceEntity> sysFaceList = dao.getList(query); +// if(CollectionUtils.isNotEmpty(sysFaceList)){ +// throw new AppException("璇ョ敤鎴�(" + idEntityReqVO.getName() + "_" + idEntityReqVO.getIdCard() + ")浜鸿劯鏁版嵁宸插瓨鍦�"); +// } +// +// try { +// byte[] file = multipartFile.getBytes(); +// //婵€娲诲紩鎿� +// FaceEngine faceEngine = faceUtil.initFace(appId, getSdkKey()); +// byte[] featureData = faceUtil.featureData(faceEngine, file); +// //鍒涘缓缂╃暐鍥� +// BufferedImage image = Thumbnails.of(multipartFile.getInputStream()).size(WIDTH, HEIGHT).asBufferedImage(); +// ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); +// //姝ゆ柟娉曚細閫犳垚png鍥剧墖鏈夐槾褰� +//// ImageIO.write(image, "jpg", byteArrayOutputStream); +// Img.from(image).write(byteArrayOutputStream); +// byteArrayOutputStream.flush(); +// SysFaceEntity sysFace = new SysFaceEntity(); +// sysFace.setId(IdUtil.fastSimpleUUID()); +// sysFace.setFace(byteArrayOutputStream.toByteArray()); +// sysFace.setFaceFeature(featureData); +// sysFace.setIdCard(entityId); +// sysFace.setPlaceId(placeId); +// sysFace.setPlaceName(placeName); +// sysFace.setCreateTime(new Date()); +// sysFace.setUpdateTime(sysFace.getCreateTime()); +// sysFace.setDeleted(0); +// dao.insert(sysFace); +// resVO.setFace(Base64.getEncoder().encodeToString(file)); +// resVO.setFaceFeature(Base64.getEncoder().encodeToString(featureData)); +// resVO.setIdCard(idCard); +// resVO.setName(name); +// resVO.setPhone(""); +// resVO.setId(sysFace.getId()); +// } catch (IOException e) { +// log.error("鎻愬彇鐗瑰緛澶辫触:", e); +// } +// return resVO; +// } +// +// @Override +// public List<FaceInfoResVO> findFaceList(String placeId) throws AppException { +// SysFaceEntity query = new SysFaceEntity(); +// query.setPlaceId(placeId); +// List<SysFaceEntity> sysFaceList = dao.getList(query); +// if(CollectionUtils.isEmpty(sysFaceList)){ +// throw new AppException("璇ュ満鎵€鏃犱汉鑴告暟鎹�"); +// } +// return sysFaceList.stream().map(o -> { +// FaceInfoResVO resVO = new FaceInfoResVO(); +// SysIdentityEntity resVO1 = sysIdentityService.findIdEntityDetail(o.getIdCard(), 1); +// resVO.setId(o.getId()); +// resVO.setPlaceId(o.getPlaceId()); +// resVO.setPlaceName(o.getPlaceName()); +// resVO.setCardId(resVO1.getId()); +// resVO.setName(resVO1.getName()); +// resVO.setPhone(resVO1.getPhone()); +// resVO.setFace(Base64.getEncoder().encodeToString(o.getFace())); +// resVO.setFaceFeature(Base64.getEncoder().encodeToString(o.getFaceFeature())); +// return resVO; +// }).collect(Collectors.toList()); +// } +// +// @Override +// @Transactional(rollbackFor = Exception.class) +// public void batchAddFace(List<MultipartFile> files, String placeId, String placeName) { +// for (int j = 0; j < files.size(); j++) { +// String fileName = files.get(j).getOriginalFilename(); +// if(StringUtils.isEmpty(fileName)){ +// throw new AppException("鏂囦欢鍚嶇О(" + fileName + ")涓嶈兘涓虹┖锛�"); +// } +// String[] info = fileName.split("/"); +// if(info.length != 2){ +// throw new AppException("(" + fileName + ")鏂囦欢鍛藉悕閿欒锛岃鎸夌収瑙勫畾鏂囦欢妯$増涓婁紶锛�"); +// } +// String[] infos = info[1].split("\\."); +// if(infos.length != 2){ +// throw new AppException("(" + fileName + ")鏂囦欢鍛藉悕閿欒锛岃鎸夌収瑙勫畾鏂囦欢妯$増涓婁紶锛�"); +// } +// String[] strings = infos[0].split("_"); +// if(strings.length != 2){ +// throw new AppException("(" + fileName + ")鏂囦欢鍛藉悕閿欒锛岃鎸夌収瑙勫畾鏂囦欢妯$増涓婁紶锛�"); +// } +// uploadImage(files.get(j), strings[0], strings[1], placeId, placeName); +// } +// } +// +// private String getSdkKey() { +// return faceUtil.getOsName().equals("/win") ? winSdkKey : linuxSdkKey; +// } +// +// @Override +// public List<FaceInfoResVO> searchUserByFace(byte[] bytes) throws InterruptedException, ExecutionException{ +// List<SysFaceEntity> resultFaceInfoList = Lists.newLinkedList();//璇嗗埆鍒扮殑浜鸿劯鍒楄〃 +// +// byte[] faceFeature = arcsoftFaceUtil.faceFeature(bytes); +// FaceFeature targetFaceFeature = new FaceFeature(); +// targetFaceFeature.setFeatureData(faceFeature); +// List<SysFaceEntity> faceInfoList = this.find(new SysFaceEntity()); +// List<List<SysFaceEntity>> faceUserInfoPartList = Lists.partition(faceInfoList, 1000);//鍒嗘垚1000涓€缁勶紝澶氱嚎绋嬪鐞� +// CompletionService<List<SysFaceEntity>> completionService = new ExecutorCompletionService(executorService); +// for (List<SysFaceEntity> part : faceUserInfoPartList) { +// completionService.submit(new CompareFaceTask(part, targetFaceFeature)); +// } +// for (int i = 0; i < faceUserInfoPartList.size(); i++) { +// List<SysFaceEntity> faceUserInfoList = completionService.take().get(); +// if (CollectionUtil.isNotEmpty(faceInfoList)) { +// resultFaceInfoList.addAll(faceUserInfoList); +// } +// } +// +// resultFaceInfoList.sort((h1, h2) -> h2.getSimilarValue().compareTo(h1.getSimilarValue()));//浠庡ぇ鍒板皬鎺掑簭 +// +// return resultFaceInfoList.stream().map(o -> { +// FaceInfoResVO resVO = new FaceInfoResVO(); +// SysIdentityEntity resVO1 = sysIdentityService.findIdEntityDetail(o.getIdCard(), 1); +// resVO.setId(o.getId()); +// resVO.setPlaceId(o.getPlaceId()); +// resVO.setPlaceName(o.getPlaceName()); +// resVO.setCardId(resVO1.getId()); +// resVO.setName(resVO1.getName()); +// resVO.setPhone(resVO1.getPhone()); +// resVO.setFace(Base64.getEncoder().encodeToString(o.getFace())); +// resVO.setFaceFeature(Base64.getEncoder().encodeToString(o.getFaceFeature())); +// return resVO; +// }).collect(Collectors.toList()); +// } +// +// private class CompareFaceTask implements Callable<List<SysFaceEntity>> { +// +// private List<SysFaceEntity> faceUserInfoList; +// private FaceFeature targetFaceFeature; +// +// +// public CompareFaceTask(List<SysFaceEntity> faceUserInfoList, FaceFeature targetFaceFeature) { +// this.faceUserInfoList = faceUserInfoList; +// this.targetFaceFeature = targetFaceFeature; +// } +// +// @Override +// public List<SysFaceEntity> call() throws Exception { +// +// return arcsoftFaceUtil.faceSearch(targetFaceFeature,faceUserInfoList); +// } +// +// } +//} \ No newline at end of file diff --git a/base-manager/src/main/java/com/mortals/xhx/module/identity/web/SysFaceController.java b/base-manager/src/main/java/com/mortals/xhx/module/identity/web/SysFaceController.java index b45bc6f96bee35d0c6d5c1fdca19d9af7826585e..dbe107d810c7fd2d04bc8d4b57cf846a94ece332 100644 --- a/base-manager/src/main/java/com/mortals/xhx/module/identity/web/SysFaceController.java +++ b/base-manager/src/main/java/com/mortals/xhx/module/identity/web/SysFaceController.java @@ -1,140 +1,140 @@ -package com.mortals.xhx.module.identity.web; - -import com.alibaba.fastjson.JSONObject; -import com.mortals.framework.annotation.UnAuth; -import com.mortals.framework.model.Context; -import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; -import com.mortals.xhx.module.identity.model.SysFaceEntity; -import com.mortals.xhx.module.identity.model.vo.FaceInfoResVO; -import com.mortals.xhx.module.identity.service.SysFaceService; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -/** -* -* 浜鸿劯璇嗗埆淇℃伅 -* -* @author zxfei -* @date 2022-08-03 -*/ -@RestController -@RequestMapping("face") -public class SysFaceController extends BaseCRUDJsonBodyMappingController<SysFaceService,SysFaceEntity,String> { - - public SysFaceController(){ - super.setModuleDesc( "浜鸿劯璇嗗埆淇℃伅"); - } - - @Override - protected void init(Map<String, Object> model, Context context) { - super.init(model, context); - } - - - - @PostMapping({"uploadImage"}) - @UnAuth - public String uploadImage(@RequestPart("file") MultipartFile file, - @RequestParam("name") String name, - @RequestParam("idCard") String idCard, - @RequestParam(value = "placeId") String placeId, - @RequestParam(value = "placeName") String placeName) { - Map<String, Object> model = new HashMap(); - JSONObject ret = new JSONObject(); - String busiDesc = "浜鸿劯鐗瑰緛瑙f瀽"; - Context context = this.getContext(); - - try { - FaceInfoResVO resVO = service.uploadImage(file, name, idCard, placeId, placeName); - model.put("data",resVO); - this.recordSysLog(this.request, busiDesc + " 銆愭垚鍔熴€�"); - } catch (Exception var8) { - this.doException(this.request, busiDesc, model, var8); - Object msg = model.get("message_info"); - return this.createFailJsonResp(msg == null ? "绯荤粺寮傚父" : msg.toString()); - } - - this.init(model, context); - ret.put("data", model.get("data")); - ret.put("code", 1); - ret.put("msg", model.remove("message_info")); - return ret.toJSONString(); - } - - @GetMapping({"findFaceList"}) - @UnAuth - public String findFaceList(@RequestParam("placeId") String placeId) { - Map<String, Object> model = new HashMap(); - JSONObject ret = new JSONObject(); - String busiDesc = "涓嬪彂浜鸿劯鍒楄〃"; - Context context = this.getContext(); - try { - List<FaceInfoResVO> list = service.findFaceList(placeId); - model.put("data",list); - this.recordSysLog(this.request, busiDesc + " 銆愭垚鍔熴€�"); - } catch (Exception var8) { - this.doException(this.request, busiDesc, model, var8); - Object msg = model.get("message_info"); - return this.createFailJsonResp(msg == null ? "绯荤粺寮傚父" : msg.toString()); - } - - this.init(model, context); - ret.put("data", model.get("data")); - ret.put("code", 1); - ret.put("msg", model.remove("message_info")); - return ret.toJSONString(); - } - - @PostMapping({"batchAddFace"}) - @UnAuth - public String batchAddFace(@RequestPart("files") List<MultipartFile> files, - @RequestParam("placeId") String placeId, - @RequestParam("placeName") String placeName) { - Map<String, Object> model = new HashMap(); - JSONObject ret = new JSONObject(); - String busiDesc = "鎵归噺涓婁紶浜鸿劯"; - Context context = this.getContext(); - - try { - service.batchAddFace(files, placeId, placeName); - this.recordSysLog(this.request, busiDesc + " 銆愭垚鍔熴€�"); - } catch (Exception var8) { - this.doException(this.request, busiDesc, model, var8); - Object msg = model.get("message_info"); - return this.createFailJsonResp(msg == null ? "绯荤粺寮傚父" : msg.toString()); - } - - this.init(model, context); - ret.put("data", null); - ret.put("code", 1); - ret.put("msg", model.remove("message_info")); - return ret.toJSONString(); - } - - @PostMapping({"search"}) - @UnAuth - public String search(@RequestPart("file") MultipartFile file) { - Map<String, Object> model = new HashMap(); - JSONObject ret = new JSONObject(); - String busiDesc = "浜鸿劯璇嗗埆"; - Context context = this.getContext(); - try { - List<FaceInfoResVO> list = service.searchUserByFace(file.getBytes()); - model.put("data",list); - this.recordSysLog(this.request, busiDesc + " 銆愭垚鍔熴€�"); - } catch (Exception var8) { - this.doException(this.request, busiDesc, model, var8); - Object msg = model.get("message_info"); - return this.createFailJsonResp(msg == null ? "绯荤粺寮傚父" : msg.toString()); - } - - this.init(model, context); - ret.put("data", model.get("data")); - ret.put("code", 1); - ret.put("msg", model.remove("message_info")); - return ret.toJSONString(); - } -} \ No newline at end of file +//package com.mortals.xhx.module.identity.web; +// +//import com.alibaba.fastjson.JSONObject; +//import com.mortals.framework.annotation.UnAuth; +//import com.mortals.framework.model.Context; +//import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; +//import com.mortals.xhx.module.identity.model.SysFaceEntity; +//import com.mortals.xhx.module.identity.model.vo.FaceInfoResVO; +//import com.mortals.xhx.module.identity.service.SysFaceService; +//import org.springframework.web.bind.annotation.*; +//import org.springframework.web.multipart.MultipartFile; +// +//import java.util.HashMap; +//import java.util.List; +//import java.util.Map; +///** +//* +//* 浜鸿劯璇嗗埆淇℃伅 +//* +//* @author zxfei +//* @date 2022-08-03 +//*/ +//@RestController +//@RequestMapping("face") +//public class SysFaceController extends BaseCRUDJsonBodyMappingController<SysFaceService,SysFaceEntity,String> { +// +// public SysFaceController(){ +// super.setModuleDesc( "浜鸿劯璇嗗埆淇℃伅"); +// } +// +// @Override +// protected void init(Map<String, Object> model, Context context) { +// super.init(model, context); +// } +// +// +// +// @PostMapping({"uploadImage"}) +// @UnAuth +// public String uploadImage(@RequestPart("file") MultipartFile file, +// @RequestParam("name") String name, +// @RequestParam("idCard") String idCard, +// @RequestParam(value = "placeId") String placeId, +// @RequestParam(value = "placeName") String placeName) { +// Map<String, Object> model = new HashMap(); +// JSONObject ret = new JSONObject(); +// String busiDesc = "浜鸿劯鐗瑰緛瑙f瀽"; +// Context context = this.getContext(); +// +// try { +// FaceInfoResVO resVO = service.uploadImage(file, name, idCard, placeId, placeName); +// model.put("data",resVO); +// this.recordSysLog(this.request, busiDesc + " 銆愭垚鍔熴€�"); +// } catch (Exception var8) { +// this.doException(this.request, busiDesc, model, var8); +// Object msg = model.get("message_info"); +// return this.createFailJsonResp(msg == null ? "绯荤粺寮傚父" : msg.toString()); +// } +// +// this.init(model, context); +// ret.put("data", model.get("data")); +// ret.put("code", 1); +// ret.put("msg", model.remove("message_info")); +// return ret.toJSONString(); +// } +// +// @GetMapping({"findFaceList"}) +// @UnAuth +// public String findFaceList(@RequestParam("placeId") String placeId) { +// Map<String, Object> model = new HashMap(); +// JSONObject ret = new JSONObject(); +// String busiDesc = "涓嬪彂浜鸿劯鍒楄〃"; +// Context context = this.getContext(); +// try { +// List<FaceInfoResVO> list = service.findFaceList(placeId); +// model.put("data",list); +// this.recordSysLog(this.request, busiDesc + " 銆愭垚鍔熴€�"); +// } catch (Exception var8) { +// this.doException(this.request, busiDesc, model, var8); +// Object msg = model.get("message_info"); +// return this.createFailJsonResp(msg == null ? "绯荤粺寮傚父" : msg.toString()); +// } +// +// this.init(model, context); +// ret.put("data", model.get("data")); +// ret.put("code", 1); +// ret.put("msg", model.remove("message_info")); +// return ret.toJSONString(); +// } +// +// @PostMapping({"batchAddFace"}) +// @UnAuth +// public String batchAddFace(@RequestPart("files") List<MultipartFile> files, +// @RequestParam("placeId") String placeId, +// @RequestParam("placeName") String placeName) { +// Map<String, Object> model = new HashMap(); +// JSONObject ret = new JSONObject(); +// String busiDesc = "鎵归噺涓婁紶浜鸿劯"; +// Context context = this.getContext(); +// +// try { +// service.batchAddFace(files, placeId, placeName); +// this.recordSysLog(this.request, busiDesc + " 銆愭垚鍔熴€�"); +// } catch (Exception var8) { +// this.doException(this.request, busiDesc, model, var8); +// Object msg = model.get("message_info"); +// return this.createFailJsonResp(msg == null ? "绯荤粺寮傚父" : msg.toString()); +// } +// +// this.init(model, context); +// ret.put("data", null); +// ret.put("code", 1); +// ret.put("msg", model.remove("message_info")); +// return ret.toJSONString(); +// } +// +// @PostMapping({"search"}) +// @UnAuth +// public String search(@RequestPart("file") MultipartFile file) { +// Map<String, Object> model = new HashMap(); +// JSONObject ret = new JSONObject(); +// String busiDesc = "浜鸿劯璇嗗埆"; +// Context context = this.getContext(); +// try { +// List<FaceInfoResVO> list = service.searchUserByFace(file.getBytes()); +// model.put("data",list); +// this.recordSysLog(this.request, busiDesc + " 銆愭垚鍔熴€�"); +// } catch (Exception var8) { +// this.doException(this.request, busiDesc, model, var8); +// Object msg = model.get("message_info"); +// return this.createFailJsonResp(msg == null ? "绯荤粺寮傚父" : msg.toString()); +// } +// +// this.init(model, context); +// ret.put("data", model.get("data")); +// ret.put("code", 1); +// ret.put("msg", model.remove("message_info")); +// return ret.toJSONString(); +// } +//} \ No newline at end of file diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/MatterService.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/MatterService.java index 37eefb1101a4f40bc05d95e922d74be9a4b6d623..df6ee7bd869e0526792353e92073581a1b5d3bde 100644 --- a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/MatterService.java +++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/MatterService.java @@ -5,16 +5,12 @@ import com.mortals.framework.exception.AppException; import com.mortals.framework.model.Context; import com.mortals.framework.model.PageInfo; import com.mortals.framework.model.Result; -import com.mortals.framework.service.ICRUDCacheService; import com.mortals.framework.service.ICRUDService; import com.mortals.xhx.module.matter.model.MatterEntity; import com.mortals.xhx.module.matter.model.MatterQuery; import com.mortals.xhx.module.matter.model.vo.MatterInfo; import com.mortals.xhx.module.site.model.SiteEntity; import com.mortals.xhx.module.site.model.SiteMatterEntity; -import com.mortals.xhx.module.site.model.SiteMatterQuery; -import org.apache.poi.ss.formula.functions.T; -import org.w3c.dom.Document; import java.util.Map; @@ -58,14 +54,21 @@ public interface MatterService extends ICRUDService<MatterEntity, Long> { Rest<String> buildMatterDetail(MatterEntity matterEntity, Context context); /** - * 娣诲姞涓氬姟鍒扮珯鐐� + * 娣诲姞浜嬮」鍒扮珯鐐逛簨椤� * * @param matterEntity * @param context */ - Rest<SiteMatterEntity> switchMatterToSiteMatterr(MatterEntity matterEntity, SiteEntity siteEntity, Context context); - + Rest<SiteMatterEntity> switchMatterToSiteMatter(MatterEntity matterEntity, SiteEntity siteEntity, Context context); + /** + * 鏌ユ壘宸泦瀛愰」 + * @param matterQuery + * @param pageInfo + * @param context + * @return + * @throws AppException + */ Result<MatterEntity> findSubList(MatterEntity matterQuery, PageInfo pageInfo, Context context) throws AppException; Result<MatterInfo> findMicroList(MatterQuery matterQuery, PageInfo pageInfo, Context context) throws AppException; diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterServiceImpl.java index 914f736267be69c5c20836e3775a4a7691eee6b7..c356679072ea9719be4f5314ade332c392fa53b8 100644 --- a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterServiceImpl.java +++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterServiceImpl.java @@ -11,7 +11,6 @@ import com.mortals.framework.exception.AppException; import com.mortals.framework.model.Context; import com.mortals.framework.model.PageInfo; import com.mortals.framework.model.Result; -import com.mortals.framework.service.impl.AbstractCRUDCacheServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.util.DataUtil; import com.mortals.xhx.base.framework.config.InterceptorConfig; @@ -32,11 +31,11 @@ import com.mortals.xhx.module.matters.model.MattersEntity; import com.mortals.xhx.module.matters.model.MattersQuery; import com.mortals.xhx.module.matters.service.MattersDetailService; import com.mortals.xhx.module.matters.service.MattersService; -import com.mortals.xhx.module.site.model.SiteEntity; -import com.mortals.xhx.module.site.model.SiteMatterEntity; -import com.mortals.xhx.module.site.model.SiteMatterQuery; +import com.mortals.xhx.module.site.model.*; import com.mortals.xhx.module.site.service.SiteMatterService; import com.mortals.xhx.module.site.service.SiteService; +import com.mortals.xhx.module.site.service.SiteThemeMatterService; +import com.mortals.xhx.module.site.service.SiteThemeService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jsoup.Jsoup; @@ -89,14 +88,52 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter private DeptService deptService; @Autowired private MatterExtService matterExtService; + @Autowired + private SiteThemeMatterService siteThemeMatterService; + @Autowired + private SiteThemeService siteThemeService; @Override protected void saveBefore(MatterEntity entity, Context context) throws AppException { + //鍒ゆ柇濡傛灉鏄嚜瀹氫箟浜嬮」锛岄渶瑕佹洿鏂板尯鍩熺紪鐮� + if (SourceEnum.鑷畾涔�.getValue().equals(entity.getSource())) { + if (!ObjectUtils.isEmpty(entity.getSiteId())) { + SiteEntity siteEntity = siteService.get(entity.getSiteId(), context); + entity.setAreaCode(siteEntity.getAreaCode()); + } + } super.saveBefore(entity, context); } + /** + * @param entity + * @param context + * @throws AppException + */ + @Override + protected void saveAfter(MatterEntity entity, Context context) throws AppException { + //涓婚娣诲姞鑷畾涔夊叧鑱� + if (!ObjectUtils.isEmpty(entity.getThemeCode())) { + SiteThemeEntity siteThemeEntity = siteThemeService.selectOne(new SiteThemeQuery().siteId(entity.getSiteId()).themeCode(entity.getThemeCode())); + SiteThemeMatterEntity siteThemeMatterEntity = new SiteThemeMatterEntity(); + siteThemeMatterEntity.initAttrValue(); + siteThemeMatterEntity.setThemeCode(entity.getThemeCode()); + siteThemeMatterEntity.setSiteId(entity.getSiteId()); + siteThemeMatterEntity.setSource(entity.getSource()); + siteThemeMatterEntity.setMatterId(entity.getId()); + siteThemeMatterEntity.setMatterCode(entity.getMatterNo()); + siteThemeMatterEntity.setMatterName(entity.getMatterName()); + siteThemeMatterEntity.setUserType(siteThemeEntity == null ? "2" : siteThemeEntity.getUserType()); + siteThemeMatterEntity.setCreateTime(new Date()); + siteThemeMatterEntity.setCreateUserId(this.getContextUserId(context)); + siteThemeMatterService.save(siteThemeMatterEntity, context); + } + + super.saveAfter(entity, context); + } + @Override protected void updateBefore(MatterEntity entity, Context context) throws AppException { @@ -169,7 +206,7 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter SiteMatterEntity siteMatterEntity = siteMatterService.selectOne(new SiteMatterQuery().siteId(siteId).matterId(item.getId())); if (ObjectUtils.isEmpty(siteMatterEntity)) { SiteEntity siteEntity = siteService.getCache(siteId.toString()); - Rest<SiteMatterEntity> rest = switchMatterToSiteMatterr(item, siteEntity, context); + Rest<SiteMatterEntity> rest = switchMatterToSiteMatter(item, siteEntity, context); if (rest.getCode() == YesNoEnum.YES.getValue()) { return rest.getData(); } @@ -178,7 +215,7 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter } @Override - public Rest<SiteMatterEntity> switchMatterToSiteMatterr(MatterEntity item, SiteEntity siteEntity, Context context) { + public Rest<SiteMatterEntity> switchMatterToSiteMatter(MatterEntity item, SiteEntity siteEntity, Context context) { try { DeptEntity deptEntity = deptService.getExtCache(item.getDeptCode()); SiteMatterEntity siteMatterEntity = new SiteMatterEntity(); diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterController.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterController.java index c71cfa625a15a401faa82b07eee23d9469ce4895..51fef9aa6b00b31c9498cf14780ad2252ab23342 100644 --- a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterController.java +++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterController.java @@ -12,8 +12,11 @@ import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BasePhpCRUDJsonMappingController; import com.mortals.xhx.base.framework.config.InterceptorConfig; import com.mortals.xhx.base.system.param.service.ParamService; +import com.mortals.xhx.common.code.JointInfoShowEnum; import com.mortals.xhx.module.matter.model.MatterEntity; import com.mortals.xhx.module.matter.service.MatterService; +import com.mortals.xhx.module.site.model.SiteThemeQuery; +import com.mortals.xhx.module.site.service.SiteThemeService; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.ObjectUtils; @@ -44,6 +47,8 @@ public class MatterController extends BaseCRUDJsonBodyMappingController<MatterSe @Autowired private InterceptorConfig interceptorConfig; + private SiteThemeService siteThemeService; + public MatterController() { super.setFormClass(MatterForm.class); super.setModuleDesc("鍩虹浜嬮」"); @@ -84,6 +89,7 @@ public class MatterController extends BaseCRUDJsonBodyMappingController<MatterSe this.addDict(model, "parson", paramService.getParamBySecondOrganize("Matter", "parson")); this.addDict(model, "lengal", paramService.getParamBySecondOrganize("Matter", "lengal")); this.addDict(model, "source", paramService.getParamBySecondOrganize("Matter", "source")); + this.addDict(model, "jointInfoShow", JointInfoShowEnum.getEnumMap()); Setting baseInfoSetting = interceptorConfig.getBaseInfoSetting(); Map<String, String> baseInfoMap = new HashMap<>(); @@ -102,7 +108,9 @@ public class MatterController extends BaseCRUDJsonBodyMappingController<MatterSe } }); this.addDict(model, "sqclInfo", sqclInfoMap); - + //theme + Map<String, String> themeMap = siteThemeService.find(new SiteThemeQuery()).stream().collect(Collectors.toMap(x -> x.getThemeCode(), y -> y.getThemeName(), (o, n) -> n)); + this.addDict(model, "theme", themeMap); super.init(model, context); } diff --git a/base-manager/src/main/java/com/mortals/xhx/module/skin/service/impl/SkinBaseServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/skin/service/impl/SkinBaseServiceImpl.java index cfc98db2918031cdcb4feff48dcf4f9a4a228132..ab3b4c2fede48bfb109467d5664244d246308b66 100644 --- a/base-manager/src/main/java/com/mortals/xhx/module/skin/service/impl/SkinBaseServiceImpl.java +++ b/base-manager/src/main/java/com/mortals/xhx/module/skin/service/impl/SkinBaseServiceImpl.java @@ -1,5 +1,6 @@ package com.mortals.xhx.module.skin.service.impl; +import cn.hutool.core.util.StrUtil; import com.mortals.framework.ap.GlobalSysInfo; import com.mortals.framework.exception.AppException; import com.mortals.framework.model.Context; @@ -81,10 +82,10 @@ public class SkinBaseServiceImpl extends AbstractCRUDServiceImpl<SkinBaseDao, Sk item.setSkinFieldList(skinFieldEntities); if (!ObjectUtils.isEmpty(item.getPreviewImagePath())) { - item.setPreviewImagePath(GlobalSysInfo.getParamValue(Constant.DOMAIN, "http://192.168.0.98:11071/") + item.getPreviewImagePath()); + item.setPreviewImagePath(StrUtil.removeAllLineBreaks(GlobalSysInfo.getParamValue(Constant.DOMAIN, "http://192.168.0.98:11071/") )+ item.getPreviewImagePath()); } if (!ObjectUtils.isEmpty(item.getCssFilePath())) { - item.setCssFilePath(GlobalSysInfo.getParamValue(Constant.DOMAIN, "http://192.168.0.98:11071/") + item.getCssFilePath()); + item.setCssFilePath(StrUtil.removeAllLineBreaks(GlobalSysInfo.getParamValue(Constant.DOMAIN, "http://192.168.0.98:11071/") )+ item.getCssFilePath()); } }); super.findAfter(entity, pageInfo, context, list); @@ -92,7 +93,7 @@ public class SkinBaseServiceImpl extends AbstractCRUDServiceImpl<SkinBaseDao, Sk private void updateUrl(SkinFieldEntity field) { if ("2".equals(field.getFieldType())) { - field.setFieldValue(GlobalSysInfo.getParamValue(Constant.DOMAIN, "http://192.168.0.98:11071/") + field.getFieldValue()); + field.setFieldValue(StrUtil.removeAllLineBreaks(GlobalSysInfo.getParamValue(Constant.DOMAIN, "http://192.168.0.98:11071/")) + field.getFieldValue()); } } diff --git a/base-manager/src/main/java/com/mortals/xhx/module/skin/web/SkinBaseController.java b/base-manager/src/main/java/com/mortals/xhx/module/skin/web/SkinBaseController.java index b01de64fa36af42b777e94bbc4670d99571f4988..ee665136df1e7c4035f22aa7a98b7809b9f022f1 100644 --- a/base-manager/src/main/java/com/mortals/xhx/module/skin/web/SkinBaseController.java +++ b/base-manager/src/main/java/com/mortals/xhx/module/skin/web/SkinBaseController.java @@ -1,4 +1,5 @@ package com.mortals.xhx.module.skin.web; +import cn.hutool.core.util.StrUtil; import com.mortals.framework.ap.GlobalSysInfo; import com.mortals.framework.exception.AppException; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; @@ -89,7 +90,7 @@ public class SkinBaseController extends BaseCRUDJsonBodyMappingController<SkinBa private void updateUrl(SkinFieldEntity field) { if ("2".equals(field.getFieldType())) { - field.setFieldValue(GlobalSysInfo.getParamValue(Constant.DOMAIN, "http://192.168.0.98:11071/") + field.getFieldValue()); + field.setFieldValue(StrUtil.removeAllLineBreaks(GlobalSysInfo.getParamValue(Constant.DOMAIN, "http://192.168.0.98:11071/")) + field.getFieldValue()); } } diff --git a/base-manager/src/main/resources/logback-spring.xml b/base-manager/src/main/resources/logback-spring.xml index 3c3c9481db59f3bcc117c1e91e2a2d1758de2902..5ca6fcda485befe1b5641306c9ed6e3f96e68e3f 100644 --- a/base-manager/src/main/resources/logback-spring.xml +++ b/base-manager/src/main/resources/logback-spring.xml @@ -56,13 +56,13 @@ <!-- level 鐢ㄦ潵璁剧疆鎵撳嵃绾у埆锛屽ぇ灏忓啓鏃犲叧锛歍RACE, DEBUG, INFO, WARN, ERROR, ALL 鍜� OFF锛岃繕鏈変竴涓壒淇楀€糏NHERITED鎴栬€呭悓涔夎瘝NULL锛屼唬琛ㄥ己鍒舵墽琛屼笂绾х殑绾у埆銆傚鏋滄湭璁剧疆姝ゅ睘鎬э紝閭d箞褰撳墠logger灏嗕細缁ф壙涓婄骇鐨勭骇鍒�--> <!-- additivity 鏄惁鍚戜笂绾ogger浼犻€掓墦鍗颁俊鎭€傞粯璁ゆ槸true銆俧alse锛氳〃绀哄彧鐢ㄥ綋鍓峫ogger鐨刟ppender-ref銆倀rue锛氳〃绀哄綋鍓峫ogger鐨刟ppender-ref鍜宺ootLogger鐨刟ppender-ref閮芥湁鏁堛€�--> - <logger name="com.mortals" level="INFO" additivity="false"> + <logger name="com.mortals" level="${logLevel}" additivity="false"> <appender-ref ref="console"/> <appender-ref ref="fileInfo"/> <appender-ref ref="fileError"/> </logger> - <logger name="com.mortals.xhx.module" level="debug" additivity="false"> + <logger name="com.mortals.xhx.module" level="${logLevel}" additivity="false"> <appender-ref ref="console"/> <appender-ref ref="fileInfo"/> <appender-ref ref="fileError"/> diff --git a/base-manager/src/test/java/com/mortals/httpclient/app/AppController.http b/base-manager/src/test/java/com/mortals/httpclient/app/AppController.http index 0e03b70d9a849dc153e21b6c69f384c85ef0ae08..1b345349002eb86c37d8432bd563b82755afeebd 100644 --- a/base-manager/src/test/java/com/mortals/httpclient/app/AppController.http +++ b/base-manager/src/test/java/com/mortals/httpclient/app/AppController.http @@ -15,11 +15,9 @@ client.global.set("authToken", JSON.parse(response.body).data.token); ###鑷姪缁堢搴旂敤鍒楄〃 POST {{baseUrl}}/app/list -Authorization: {{authToken}} Content-Type: application/json { - "idList":[19,22,20], "page":1, "size":-1 } diff --git a/base-manager/src/test/java/com/mortals/httpclient/business/BusinessMatterController.http b/base-manager/src/test/java/com/mortals/httpclient/business/BusinessMatterController.http index 95b8dd3ca4982d2432c4baf57fdd5359b1f7726f..d3273b808c3070f9972c4c3e1775887a32d7ee0c 100644 --- a/base-manager/src/test/java/com/mortals/httpclient/business/BusinessMatterController.http +++ b/base-manager/src/test/java/com/mortals/httpclient/business/BusinessMatterController.http @@ -5,7 +5,7 @@ Content-Type: application/json { "page": 1, - "siteBusinessName": "%涓嶅姩浜ф姷鎶肩櫥璁�%", + "matterId": 123, "siteId": 53, "size": 10 } diff --git a/base-manager/src/test/java/com/mortals/httpclient/matter/MatterController.http b/base-manager/src/test/java/com/mortals/httpclient/matter/MatterController.http index b0064db295feefa2b40531b7b4b2a5ccd50fe407..797ec69053fbb046c375c2021d69332cf2ffafe0 100644 --- a/base-manager/src/test/java/com/mortals/httpclient/matter/MatterController.http +++ b/base-manager/src/test/java/com/mortals/httpclient/matter/MatterController.http @@ -20,7 +20,9 @@ POST {{baseUrl}}/matter/list Content-Type: application/json { - "idList": [1,2], + "siteId": "", + "matterName": "%瀵瑰绌村崰鍦伴潰绉秴杩囨爣鍑嗙殑澶勭綒%", + "deptCode":"", "page": 1, "size": 10 } @@ -30,7 +32,7 @@ POST {{baseUrl}}/micro/matter/list Content-Type: application/json { - "idList": [1,2], + "matterName": "%瀵瑰绌村崰鍦伴潰绉秴杩囨爣鍑嗙殑澶勭綒%", "page": 1, "size": 10 } @@ -124,7 +126,7 @@ client.global.set("Matter_id", JSON.parse(response.body).data.id); %} ###鍩虹浜嬮」鏌ョ湅 -GET {{baseUrl}}/matter/info?id=1 +GET {{baseUrl}}/matter/info?id=5809 Accept: application/json ###鍩虹浜嬮」缂栬緫 diff --git a/base-manager/src/test/java/com/mortals/httpclient/site/SiteMatterController.http b/base-manager/src/test/java/com/mortals/httpclient/site/SiteMatterController.http index e255a08ed0fb84752897db2f5ba649a759bedc77..b5081bc9ea7c04e604bbb64e73b66c3c6b89a6bc 100644 --- a/base-manager/src/test/java/com/mortals/httpclient/site/SiteMatterController.http +++ b/base-manager/src/test/java/com/mortals/httpclient/site/SiteMatterController.http @@ -4,7 +4,8 @@ POST {{baseUrl}}/site/matter/list Content-Type: application/json { - "siteId":21 , + "siteId":35, + "matterId": 5809, "page":1, "size":10 } diff --git a/base-manager/src/test/java/com/mortals/httpclient/site/SiteThemeController.http b/base-manager/src/test/java/com/mortals/httpclient/site/SiteThemeController.http index 278e27b3ea237ee811afadcd3b01d434db88dab5..f9a1618f594c58d2fd472539560fa9ceaa03402c 100644 --- a/base-manager/src/test/java/com/mortals/httpclient/site/SiteThemeController.http +++ b/base-manager/src/test/java/com/mortals/httpclient/site/SiteThemeController.http @@ -15,15 +15,10 @@ client.global.set("authToken", JSON.parse(response.body).data.token); ###涓婚鍒楄〃 POST {{baseUrl}}/site/theme/list -Authorization: {{authToken}} Content-Type: application/json { - "siteId":149, - "userType":"0ee9bm", - "themeCode":"p2seel", - "themeName":"2unqht", - "updatetime":"1669132800000" + "siteId":3, "page":1, "size":10 } diff --git a/base-manager/src/test/java/com/mortals/httpclient/site/SiteThemeMatterController.http b/base-manager/src/test/java/com/mortals/httpclient/site/SiteThemeMatterController.http index 8da5835b71b08541f0740d14aa20f9a4cbac6952..adc8057b9b6b7395bad98bf93d082529cac1a06f 100644 --- a/base-manager/src/test/java/com/mortals/httpclient/site/SiteThemeMatterController.http +++ b/base-manager/src/test/java/com/mortals/httpclient/site/SiteThemeMatterController.http @@ -4,7 +4,7 @@ Content-Type: application/json { "loginName":"admin", -"password":"admin", +"password":"adsmile", "securityCode":"8888" } @@ -15,19 +15,11 @@ client.global.set("authToken", JSON.parse(response.body).data.token); ###绔欑偣涓婚浜嬮」鍒楄〃 POST {{baseUrl}}/site/theme/matter/list -Authorization: {{authToken}} Content-Type: application/json { - "siteId":41, - "siteName":"fzbhd9", - "matterId":736, - "matterName":"dhnjnq", - "matterCode":"g61fxt", - "userType":"xd2eec", - "themeCode":"60d2h2", - "themeName":"gcfnnz", - "source":261, + "siteId":3, + "matterId":5809, "page":1, "size":10 } @@ -55,7 +47,7 @@ client.global.set("SiteThemeMatter_id", JSON.parse(response.body).data.id); %} ###绔欑偣涓婚浜嬮」鏌ョ湅 -GET {{baseUrl}}/site/theme/matter/info?id={{SiteThemeMatter_id}} +GET {{baseUrl}}/site/theme/matter/info?id=52237 Authorization: {{authToken}} Accept: application/json diff --git a/deploy.sh b/deploy.sh index e5842fa9e0d076c36295b873ec6bd5d3833f75ea..b77312ebe470dfa93ed5d352cf5206bafc39af8b 100644 --- a/deploy.sh +++ b/deploy.sh @@ -272,8 +272,8 @@ socket=/tmp/mysql.sock #bin/mysqld --initialize-insecure --user=mysql --datadir=${MYSQL_DATA_PATH} --basedir=${MYSQL_EXECPATH} --socket=/tmp/mysql.sock #鍒涘缓杞繛鎺� - rm -m /etc/init.d/mysql - rm -m /usr/bin/mysql + rm -f /etc/init.d/mysql + rm -f /usr/bin/mysql ln -s ${MYSQL_EXECPATH}/support-files/mysql.server /etc/init.d/mysql ln -s ${MYSQL_EXECPATH}/bin/mysql /usr/bin/mysql # export PATH=$PATH:${MYSQL_EXECPATH}/bin @@ -282,6 +282,8 @@ socket=/tmp/mysql.sock # mysql -uroot -p123 <${BASEDIR}/soft/${MYSQL}/user.sql # sed -i "s/skip-grant-tables/#skip-grant-tables/g" ${MYSQL_CONF_PATH} #service mysql restart + + writelog $MYSQL_SERVICE echo" [Unit] Description=MySQL Server @@ -298,7 +300,7 @@ ExecReload= /etc/init.d/mysql restart LimitNOFILE = 5000 [Install] WantedBy=multi-user.target - ">${MYSQL_CONF_PATH} + ">${MYSQL_SERVICE} systemctl enable mysql systemctl daemon-reload diff --git a/pom.xml b/pom.xml index 9a8b6065659fc5400242c48cd29d94447282a8e3..a172b30e7d1a385b4a0db6053566e7d09c82edb7 100644 --- a/pom.xml +++ b/pom.xml @@ -25,6 +25,16 @@ <common-lib.version>0.0.1-SNAPSHOT</common-lib.version> </properties> + <repositories> + <repository> + <id>aliyun</id> + <name>aliyun Repository</name> + <url>https://maven.aliyun.com/repository/public</url> + + </repository> + + </repositories> + <dependencyManagement> <dependencies> <dependency> @@ -93,6 +103,15 @@ <useDefaultDelimiters>false</useDefaultDelimiters> </configuration> </plugin> + + <!-- 鎵撳寘璺宠繃娴嬭瘯 --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <skipTests>true</skipTests> + </configuration> + </plugin> </plugins> </build> </project> \ No newline at end of file diff --git a/portal-manager-ui/admin/package-lock.json b/portal-manager-ui/admin/package-lock.json index 2716c3109fc2181716d6c1fa223a487e7abb8360..da81a2cfb1893a4722cfe16734a94585baa5c618 100644 --- a/portal-manager-ui/admin/package-lock.json +++ b/portal-manager-ui/admin/package-lock.json @@ -19,6 +19,7 @@ "highlight.js": "^11.5.1", "js-export-excel": "^1.1.4", "lodash": "^4.17.21", + "moment": "^2.29.4", "qs": "^6.10.3", "vue": "^2.6.14", "vue-highlightjs": "^1.3.3", @@ -35,7 +36,8 @@ "less": "^4.0.0", "less-loader": "^8.0.0", "postcss": "^8.4.12", - "vue-template-compiler": "^2.6.14" + "vue-template-compiler": "^2.6.14", + "webpack-bundle-analyzer": "^4.7.0" } }, "node_modules/@achrinza/node-ipc": { diff --git a/portal-manager-ui/admin/package.json b/portal-manager-ui/admin/package.json index 1fdd3e789beb98b2d685c98d4729970112c1b883..6d4064b4015129dea8475bf2361b3055c655c7a2 100644 --- a/portal-manager-ui/admin/package.json +++ b/portal-manager-ui/admin/package.json @@ -38,7 +38,8 @@ "less": "^4.0.0", "less-loader": "^8.0.0", "postcss": "^8.4.12", - "vue-template-compiler": "^2.6.14" + "vue-template-compiler": "^2.6.14", + "webpack-bundle-analyzer": "^4.7.0" }, "browserslist": [ "> 1%", diff --git a/portal-manager/pom.xml b/portal-manager/pom.xml index 8ac5f6a3b8efd8d84919ae6e7c319ae428533b68..ed30790fdf4e6533021ac010d50d2819a94a59fa 100644 --- a/portal-manager/pom.xml +++ b/portal-manager/pom.xml @@ -34,7 +34,7 @@ <profiles.log.level>INFO</profiles.log.level> <profiles.log.path>/mortals/app/logs</profiles.log.path> <package.environment>test</package.environment> - <skipDeploy>false</skipDeploy> + <skipUi>false</skipUi> </properties> </profile> <profile> @@ -54,7 +54,7 @@ <profiles.log.level>INFO</profiles.log.level> <profiles.log.path>/home/mortals/app/logs</profiles.log.path> <package.environment>test</package.environment> - <skipDeploy>false</skipDeploy> + <skipUi>true</skipUi> </properties> </profile> <profile> @@ -74,30 +74,30 @@ <profiles.log.level>INFO</profiles.log.level> <profiles.log.path>/home/mortals/app/logs</profiles.log.path> <package.environment>build</package.environment> - <skipDeploy>false</skipDeploy> + <skipUi>true</skipUi> </properties> </profile> - <profile> <id>yibin</id> <properties> <profiles.active>yibin</profiles.active> <profiles.server.path>/zwfw</profiles.server.path> <profiles.publish.path>/home/publish</profiles.publish.path> - <profiles.rabbitmq.host>127.0.0.1</profiles.rabbitmq.host> + <profiles.rabbitmq.host>172.15.28.115</profiles.rabbitmq.host> <profiles.rabbitmq.port>5672</profiles.rabbitmq.port> - <profiles.rabbitmq.username>root_mq</profiles.rabbitmq.username> - <profiles.rabbitmq.password>xhx@2022</profiles.rabbitmq.password> + <profiles.rabbitmq.username>taxi_mq</profiles.rabbitmq.username> + <profiles.rabbitmq.password>admin@2020</profiles.rabbitmq.password> <profiles.rabbitmq.virtualhost>/</profiles.rabbitmq.virtualhost> - <profiles.nacos.server-addr>127.0.0.1:8848</profiles.nacos.server-addr> + <profiles.nacos.server-addr>172.15.28.120:8848</profiles.nacos.server-addr> <profiles.nacos.group>DEFAULT_GROUP</profiles.nacos.group> <profiles.nacos.namespace>smart-gov</profiles.nacos.namespace> <profiles.log.level>INFO</profiles.log.level> <profiles.log.path>/home/mortals/app/logs</profiles.log.path> <package.environment>yibin</package.environment> - <skipDeploy>false</skipDeploy> + <skipUi>true</skipUi> </properties> </profile> + </profiles> <properties> </properties> @@ -246,7 +246,7 @@ <artifactId>exec-maven-plugin</artifactId> <version>1.6.0</version> <configuration> - <skip>${skipDeploy}</skip> + <skip>${skipUi}</skip> </configuration> <executions> <execution> @@ -309,7 +309,7 @@ <goal>single</goal> </goals> <configuration> - <skipAssembly>${skipDeploy}</skipAssembly> + <skipAssembly>${skipUi}</skipAssembly> <finalName>${project.artifactId}-ui</finalName> <appendAssemblyId>false</appendAssemblyId> <descriptors> diff --git a/smart-gateway/pom.xml b/smart-gateway/pom.xml index ff6739561d516707a90ec308f4b5a24aa58ccff2..1e35b8700e00d32b39c2fcf04886eca76f30a9ce 100644 --- a/smart-gateway/pom.xml +++ b/smart-gateway/pom.xml @@ -88,20 +88,20 @@ <profiles.server.ip>192.168.2.144</profiles.server.ip> <profiles.server.port>17214</profiles.server.port> <profiles.nginx.port>11078</profiles.nginx.port> - <profiles.rabbitmq.host>127.0.0.1</profiles.rabbitmq.host> + <profiles.rabbitmq.host>172.15.28.115</profiles.rabbitmq.host> <profiles.rabbitmq.port>5672</profiles.rabbitmq.port> <profiles.rabbitmq.username>taxi_mq</profiles.rabbitmq.username> <profiles.rabbitmq.password>admin@2020</profiles.rabbitmq.password> <profiles.rabbitmq.virtualhost>/</profiles.rabbitmq.virtualhost> - <profiles.nacos.server-addr>127.0.0.1:8848</profiles.nacos.server-addr> + <profiles.nacos.server-addr>172.15.28.120:8848</profiles.nacos.server-addr> <profiles.nacos.group>DEFAULT_GROUP</profiles.nacos.group> <profiles.nacos.namespace>smart-gov</profiles.nacos.namespace> <profiles.log.level>INFO</profiles.log.level> <profiles.log.path>/home/mortals/app/logs</profiles.log.path> <profiles.publish.path>/home/publish</profiles.publish.path> - </properties> </profile> + </profiles> <properties>