diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java index f9523a6..0c5da7a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java @@ -16,7 +16,7 @@ List addVisitorApplyBatch(List results); - int addVisitorApply(VisitorApply visitorApply); + Object addVisitorApply(VisitorApply visitorApply); int updateVisitorApply(VisitorApply visitorApply); diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java index f9523a6..0c5da7a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java @@ -16,7 +16,7 @@ List addVisitorApplyBatch(List results); - int addVisitorApply(VisitorApply visitorApply); + Object addVisitorApply(VisitorApply visitorApply); int updateVisitorApply(VisitorApply visitorApply); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java index 2580187..f370c06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -125,7 +126,7 @@ @Override public Object updateBlackInfo(BlackInfo blackInfo) { FaceSingleAddOrUpdateRequest faceSingleAddOrUpdateRequest = new FaceSingleAddOrUpdateRequest(); - faceSingleAddOrUpdateRequest.setFaceGroupIndexCode(blackInfo.getFaceGroupIndexCode()); + faceSingleAddOrUpdateRequest.setIndexCode(blackInfo.getIndexCode()); FaceInfo faceInfo = new FaceInfo(); faceInfo.setName(blackInfo.getBlackName()); faceInfo.setSex(blackInfo.getBlackSex()); @@ -133,8 +134,10 @@ faceInfo.setCertificateNum(blackInfo.getIdCardNo()); faceSingleAddOrUpdateRequest.setFaceInfo(faceInfo); FacePic facePic = new FacePic(); - facePic.setFaceBinaryData(blackInfo.getPicture()); - faceSingleAddOrUpdateRequest.setFacePic(facePic); + if(StringUtils.isNotEmpty(blackInfo.getPicture())){ + String substringPicture = blackInfo.getPicture().substring(blackInfo.getPicture().indexOf(",") + 1); + facePic.setFaceBinaryData(substringPicture); + } faceSingleAddOrUpdateRequest.setFacePic(facePic); String body = JSONObject.toJSONString(faceSingleAddOrUpdateRequest); String resultStr = HikUtil.hikApi(HikUri.FACE_SINGLE_UPDATE, body); @@ -143,6 +146,27 @@ log.error("请求海康,单个修改人脸失败,海康response:{}", resultStr); return ResponseData.error("单个修改人脸失败"); } + //海康更新接口不返回人脸url,需单独请求人脸图片接口获取 + FaceRequest request = new FaceRequest(); + List list = new ArrayList<>(); + list.add(blackInfo.getIndexCode()); + request.setIndexCodes(list); + String body1 = JSONObject.toJSONString(request); + String resultStr1 = HikUtil.hikApi("/api/frs/v1/face", body1); + JSONObject resultJson1 = (JSONObject)JSONObject.parse(resultStr1); + if (!"0".equals(resultJson1.get("code"))){ + log.error("请求海康,获取人脸图片失败,海康response:{}", resultStr1); + return ResponseData.error("单个修改人脸失败"); + } + JSONObject dataJson = (JSONObject)resultJson1.get("data"); + JSONArray dataArray = (JSONArray) dataJson.get("list"); + if(0 == dataArray.size()){ + return ResponseData.error("黑名单人员更新失败!"); + } + JSONObject jsonObject = (JSONObject) dataArray.get(0); + JSONObject facePicObject = jsonObject.getJSONObject("facePic"); + String faceUrl = facePicObject.getString("faceUrl"); + blackInfo.setPicture(faceUrl); if(blackInfoMapper.updateById(blackInfo) > 0){ return ResponseData.success(); } diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java index f9523a6..0c5da7a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java @@ -16,7 +16,7 @@ List addVisitorApplyBatch(List results); - int addVisitorApply(VisitorApply visitorApply); + Object addVisitorApply(VisitorApply visitorApply); int updateVisitorApply(VisitorApply visitorApply); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java index 2580187..f370c06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -125,7 +126,7 @@ @Override public Object updateBlackInfo(BlackInfo blackInfo) { FaceSingleAddOrUpdateRequest faceSingleAddOrUpdateRequest = new FaceSingleAddOrUpdateRequest(); - faceSingleAddOrUpdateRequest.setFaceGroupIndexCode(blackInfo.getFaceGroupIndexCode()); + faceSingleAddOrUpdateRequest.setIndexCode(blackInfo.getIndexCode()); FaceInfo faceInfo = new FaceInfo(); faceInfo.setName(blackInfo.getBlackName()); faceInfo.setSex(blackInfo.getBlackSex()); @@ -133,8 +134,10 @@ faceInfo.setCertificateNum(blackInfo.getIdCardNo()); faceSingleAddOrUpdateRequest.setFaceInfo(faceInfo); FacePic facePic = new FacePic(); - facePic.setFaceBinaryData(blackInfo.getPicture()); - faceSingleAddOrUpdateRequest.setFacePic(facePic); + if(StringUtils.isNotEmpty(blackInfo.getPicture())){ + String substringPicture = blackInfo.getPicture().substring(blackInfo.getPicture().indexOf(",") + 1); + facePic.setFaceBinaryData(substringPicture); + } faceSingleAddOrUpdateRequest.setFacePic(facePic); String body = JSONObject.toJSONString(faceSingleAddOrUpdateRequest); String resultStr = HikUtil.hikApi(HikUri.FACE_SINGLE_UPDATE, body); @@ -143,6 +146,27 @@ log.error("请求海康,单个修改人脸失败,海康response:{}", resultStr); return ResponseData.error("单个修改人脸失败"); } + //海康更新接口不返回人脸url,需单独请求人脸图片接口获取 + FaceRequest request = new FaceRequest(); + List list = new ArrayList<>(); + list.add(blackInfo.getIndexCode()); + request.setIndexCodes(list); + String body1 = JSONObject.toJSONString(request); + String resultStr1 = HikUtil.hikApi("/api/frs/v1/face", body1); + JSONObject resultJson1 = (JSONObject)JSONObject.parse(resultStr1); + if (!"0".equals(resultJson1.get("code"))){ + log.error("请求海康,获取人脸图片失败,海康response:{}", resultStr1); + return ResponseData.error("单个修改人脸失败"); + } + JSONObject dataJson = (JSONObject)resultJson1.get("data"); + JSONArray dataArray = (JSONArray) dataJson.get("list"); + if(0 == dataArray.size()){ + return ResponseData.error("黑名单人员更新失败!"); + } + JSONObject jsonObject = (JSONObject) dataArray.get(0); + JSONObject facePicObject = jsonObject.getJSONObject("facePic"); + String faceUrl = facePicObject.getString("faceUrl"); + blackInfo.setPicture(faceUrl); if(blackInfoMapper.updateById(blackInfo) > 0){ return ResponseData.success(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java index e3dff1f..d311677 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java @@ -133,17 +133,6 @@ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); busConcentrator.setExpireDate(dateFormat.format(new Date())); } - if (StrUtil.isNotEmpty(busConcentrator.getQualityDate())) { - try { - new SimpleDateFormat("yyyy-MM-dd").parse(busConcentrator.getQualityDate()); - } catch (Exception e) { - list.add(" 第" + index[0] + "行,时间格式不正确"); - return; - } - } else { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - busConcentrator.setProductDate(dateFormat.format(new Date())); - } }); if (CollectionUtil.isNotEmpty(list)) { return list; diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java index f9523a6..0c5da7a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java @@ -16,7 +16,7 @@ List addVisitorApplyBatch(List results); - int addVisitorApply(VisitorApply visitorApply); + Object addVisitorApply(VisitorApply visitorApply); int updateVisitorApply(VisitorApply visitorApply); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java index 2580187..f370c06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -125,7 +126,7 @@ @Override public Object updateBlackInfo(BlackInfo blackInfo) { FaceSingleAddOrUpdateRequest faceSingleAddOrUpdateRequest = new FaceSingleAddOrUpdateRequest(); - faceSingleAddOrUpdateRequest.setFaceGroupIndexCode(blackInfo.getFaceGroupIndexCode()); + faceSingleAddOrUpdateRequest.setIndexCode(blackInfo.getIndexCode()); FaceInfo faceInfo = new FaceInfo(); faceInfo.setName(blackInfo.getBlackName()); faceInfo.setSex(blackInfo.getBlackSex()); @@ -133,8 +134,10 @@ faceInfo.setCertificateNum(blackInfo.getIdCardNo()); faceSingleAddOrUpdateRequest.setFaceInfo(faceInfo); FacePic facePic = new FacePic(); - facePic.setFaceBinaryData(blackInfo.getPicture()); - faceSingleAddOrUpdateRequest.setFacePic(facePic); + if(StringUtils.isNotEmpty(blackInfo.getPicture())){ + String substringPicture = blackInfo.getPicture().substring(blackInfo.getPicture().indexOf(",") + 1); + facePic.setFaceBinaryData(substringPicture); + } faceSingleAddOrUpdateRequest.setFacePic(facePic); String body = JSONObject.toJSONString(faceSingleAddOrUpdateRequest); String resultStr = HikUtil.hikApi(HikUri.FACE_SINGLE_UPDATE, body); @@ -143,6 +146,27 @@ log.error("请求海康,单个修改人脸失败,海康response:{}", resultStr); return ResponseData.error("单个修改人脸失败"); } + //海康更新接口不返回人脸url,需单独请求人脸图片接口获取 + FaceRequest request = new FaceRequest(); + List list = new ArrayList<>(); + list.add(blackInfo.getIndexCode()); + request.setIndexCodes(list); + String body1 = JSONObject.toJSONString(request); + String resultStr1 = HikUtil.hikApi("/api/frs/v1/face", body1); + JSONObject resultJson1 = (JSONObject)JSONObject.parse(resultStr1); + if (!"0".equals(resultJson1.get("code"))){ + log.error("请求海康,获取人脸图片失败,海康response:{}", resultStr1); + return ResponseData.error("单个修改人脸失败"); + } + JSONObject dataJson = (JSONObject)resultJson1.get("data"); + JSONArray dataArray = (JSONArray) dataJson.get("list"); + if(0 == dataArray.size()){ + return ResponseData.error("黑名单人员更新失败!"); + } + JSONObject jsonObject = (JSONObject) dataArray.get(0); + JSONObject facePicObject = jsonObject.getJSONObject("facePic"); + String faceUrl = facePicObject.getString("faceUrl"); + blackInfo.setPicture(faceUrl); if(blackInfoMapper.updateById(blackInfo) > 0){ return ResponseData.success(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java index e3dff1f..d311677 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java @@ -133,17 +133,6 @@ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); busConcentrator.setExpireDate(dateFormat.format(new Date())); } - if (StrUtil.isNotEmpty(busConcentrator.getQualityDate())) { - try { - new SimpleDateFormat("yyyy-MM-dd").parse(busConcentrator.getQualityDate()); - } catch (Exception e) { - list.add(" 第" + index[0] + "行,时间格式不正确"); - return; - } - } else { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - busConcentrator.setProductDate(dateFormat.format(new Date())); - } }); if (CollectionUtil.isNotEmpty(list)) { return list; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java index c399a7f..d29d38d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java @@ -75,6 +75,7 @@ caseInfo.setIsKeyArea(deviceInfo.getIsKeyArea()); caseInfo.setDetailLocation(deviceInfo.getDetailLocation()); caseInfo.setDrawNo(deviceInfo.getDrawNo()); //图纸编号 + caseInfo.setDescription("黑名单识别事件"); //变更描述 return caseInfo; } diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java index f9523a6..0c5da7a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java @@ -16,7 +16,7 @@ List addVisitorApplyBatch(List results); - int addVisitorApply(VisitorApply visitorApply); + Object addVisitorApply(VisitorApply visitorApply); int updateVisitorApply(VisitorApply visitorApply); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java index 2580187..f370c06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -125,7 +126,7 @@ @Override public Object updateBlackInfo(BlackInfo blackInfo) { FaceSingleAddOrUpdateRequest faceSingleAddOrUpdateRequest = new FaceSingleAddOrUpdateRequest(); - faceSingleAddOrUpdateRequest.setFaceGroupIndexCode(blackInfo.getFaceGroupIndexCode()); + faceSingleAddOrUpdateRequest.setIndexCode(blackInfo.getIndexCode()); FaceInfo faceInfo = new FaceInfo(); faceInfo.setName(blackInfo.getBlackName()); faceInfo.setSex(blackInfo.getBlackSex()); @@ -133,8 +134,10 @@ faceInfo.setCertificateNum(blackInfo.getIdCardNo()); faceSingleAddOrUpdateRequest.setFaceInfo(faceInfo); FacePic facePic = new FacePic(); - facePic.setFaceBinaryData(blackInfo.getPicture()); - faceSingleAddOrUpdateRequest.setFacePic(facePic); + if(StringUtils.isNotEmpty(blackInfo.getPicture())){ + String substringPicture = blackInfo.getPicture().substring(blackInfo.getPicture().indexOf(",") + 1); + facePic.setFaceBinaryData(substringPicture); + } faceSingleAddOrUpdateRequest.setFacePic(facePic); String body = JSONObject.toJSONString(faceSingleAddOrUpdateRequest); String resultStr = HikUtil.hikApi(HikUri.FACE_SINGLE_UPDATE, body); @@ -143,6 +146,27 @@ log.error("请求海康,单个修改人脸失败,海康response:{}", resultStr); return ResponseData.error("单个修改人脸失败"); } + //海康更新接口不返回人脸url,需单独请求人脸图片接口获取 + FaceRequest request = new FaceRequest(); + List list = new ArrayList<>(); + list.add(blackInfo.getIndexCode()); + request.setIndexCodes(list); + String body1 = JSONObject.toJSONString(request); + String resultStr1 = HikUtil.hikApi("/api/frs/v1/face", body1); + JSONObject resultJson1 = (JSONObject)JSONObject.parse(resultStr1); + if (!"0".equals(resultJson1.get("code"))){ + log.error("请求海康,获取人脸图片失败,海康response:{}", resultStr1); + return ResponseData.error("单个修改人脸失败"); + } + JSONObject dataJson = (JSONObject)resultJson1.get("data"); + JSONArray dataArray = (JSONArray) dataJson.get("list"); + if(0 == dataArray.size()){ + return ResponseData.error("黑名单人员更新失败!"); + } + JSONObject jsonObject = (JSONObject) dataArray.get(0); + JSONObject facePicObject = jsonObject.getJSONObject("facePic"); + String faceUrl = facePicObject.getString("faceUrl"); + blackInfo.setPicture(faceUrl); if(blackInfoMapper.updateById(blackInfo) > 0){ return ResponseData.success(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java index e3dff1f..d311677 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java @@ -133,17 +133,6 @@ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); busConcentrator.setExpireDate(dateFormat.format(new Date())); } - if (StrUtil.isNotEmpty(busConcentrator.getQualityDate())) { - try { - new SimpleDateFormat("yyyy-MM-dd").parse(busConcentrator.getQualityDate()); - } catch (Exception e) { - list.add(" 第" + index[0] + "行,时间格式不正确"); - return; - } - } else { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - busConcentrator.setProductDate(dateFormat.format(new Date())); - } }); if (CollectionUtil.isNotEmpty(list)) { return list; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java index c399a7f..d29d38d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java @@ -75,6 +75,7 @@ caseInfo.setIsKeyArea(deviceInfo.getIsKeyArea()); caseInfo.setDetailLocation(deviceInfo.getDetailLocation()); caseInfo.setDrawNo(deviceInfo.getDrawNo()); //图纸编号 + caseInfo.setDescription("黑名单识别事件"); //变更描述 return caseInfo; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java index 4427f19..06f8bf3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java @@ -163,15 +163,23 @@ resultList.add(preMonthOrWeekCaseDTO); } } else { + List finalList = new ArrayList<>(); for (String date : dateList) { - List collect = resultList.stream().map(PreMonthOrWeekCaseDTO::getDimension).collect(Collectors.toList()); - if (!collect.contains(date)) { + Integer flag = 0; + for (PreMonthOrWeekCaseDTO dto : resultList) { + if(dto.getDimension().equals(date)){ + finalList.add(dto); + flag = 1; + } + } + if(flag == 0){ PreMonthOrWeekCaseDTO preMonthOrWeekCaseDTO = new PreMonthOrWeekCaseDTO(); preMonthOrWeekCaseDTO.setDimension(date); preMonthOrWeekCaseDTO.setQuantity(0); - resultList.add(preMonthOrWeekCaseDTO); + finalList.add(preMonthOrWeekCaseDTO); } } + return ResponseData.success(finalList); } return ResponseData.success(resultList); } diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java index f9523a6..0c5da7a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java @@ -16,7 +16,7 @@ List addVisitorApplyBatch(List results); - int addVisitorApply(VisitorApply visitorApply); + Object addVisitorApply(VisitorApply visitorApply); int updateVisitorApply(VisitorApply visitorApply); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java index 2580187..f370c06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -125,7 +126,7 @@ @Override public Object updateBlackInfo(BlackInfo blackInfo) { FaceSingleAddOrUpdateRequest faceSingleAddOrUpdateRequest = new FaceSingleAddOrUpdateRequest(); - faceSingleAddOrUpdateRequest.setFaceGroupIndexCode(blackInfo.getFaceGroupIndexCode()); + faceSingleAddOrUpdateRequest.setIndexCode(blackInfo.getIndexCode()); FaceInfo faceInfo = new FaceInfo(); faceInfo.setName(blackInfo.getBlackName()); faceInfo.setSex(blackInfo.getBlackSex()); @@ -133,8 +134,10 @@ faceInfo.setCertificateNum(blackInfo.getIdCardNo()); faceSingleAddOrUpdateRequest.setFaceInfo(faceInfo); FacePic facePic = new FacePic(); - facePic.setFaceBinaryData(blackInfo.getPicture()); - faceSingleAddOrUpdateRequest.setFacePic(facePic); + if(StringUtils.isNotEmpty(blackInfo.getPicture())){ + String substringPicture = blackInfo.getPicture().substring(blackInfo.getPicture().indexOf(",") + 1); + facePic.setFaceBinaryData(substringPicture); + } faceSingleAddOrUpdateRequest.setFacePic(facePic); String body = JSONObject.toJSONString(faceSingleAddOrUpdateRequest); String resultStr = HikUtil.hikApi(HikUri.FACE_SINGLE_UPDATE, body); @@ -143,6 +146,27 @@ log.error("请求海康,单个修改人脸失败,海康response:{}", resultStr); return ResponseData.error("单个修改人脸失败"); } + //海康更新接口不返回人脸url,需单独请求人脸图片接口获取 + FaceRequest request = new FaceRequest(); + List list = new ArrayList<>(); + list.add(blackInfo.getIndexCode()); + request.setIndexCodes(list); + String body1 = JSONObject.toJSONString(request); + String resultStr1 = HikUtil.hikApi("/api/frs/v1/face", body1); + JSONObject resultJson1 = (JSONObject)JSONObject.parse(resultStr1); + if (!"0".equals(resultJson1.get("code"))){ + log.error("请求海康,获取人脸图片失败,海康response:{}", resultStr1); + return ResponseData.error("单个修改人脸失败"); + } + JSONObject dataJson = (JSONObject)resultJson1.get("data"); + JSONArray dataArray = (JSONArray) dataJson.get("list"); + if(0 == dataArray.size()){ + return ResponseData.error("黑名单人员更新失败!"); + } + JSONObject jsonObject = (JSONObject) dataArray.get(0); + JSONObject facePicObject = jsonObject.getJSONObject("facePic"); + String faceUrl = facePicObject.getString("faceUrl"); + blackInfo.setPicture(faceUrl); if(blackInfoMapper.updateById(blackInfo) > 0){ return ResponseData.success(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java index e3dff1f..d311677 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java @@ -133,17 +133,6 @@ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); busConcentrator.setExpireDate(dateFormat.format(new Date())); } - if (StrUtil.isNotEmpty(busConcentrator.getQualityDate())) { - try { - new SimpleDateFormat("yyyy-MM-dd").parse(busConcentrator.getQualityDate()); - } catch (Exception e) { - list.add(" 第" + index[0] + "行,时间格式不正确"); - return; - } - } else { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - busConcentrator.setProductDate(dateFormat.format(new Date())); - } }); if (CollectionUtil.isNotEmpty(list)) { return list; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java index c399a7f..d29d38d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java @@ -75,6 +75,7 @@ caseInfo.setIsKeyArea(deviceInfo.getIsKeyArea()); caseInfo.setDetailLocation(deviceInfo.getDetailLocation()); caseInfo.setDrawNo(deviceInfo.getDrawNo()); //图纸编号 + caseInfo.setDescription("黑名单识别事件"); //变更描述 return caseInfo; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java index 4427f19..06f8bf3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java @@ -163,15 +163,23 @@ resultList.add(preMonthOrWeekCaseDTO); } } else { + List finalList = new ArrayList<>(); for (String date : dateList) { - List collect = resultList.stream().map(PreMonthOrWeekCaseDTO::getDimension).collect(Collectors.toList()); - if (!collect.contains(date)) { + Integer flag = 0; + for (PreMonthOrWeekCaseDTO dto : resultList) { + if(dto.getDimension().equals(date)){ + finalList.add(dto); + flag = 1; + } + } + if(flag == 0){ PreMonthOrWeekCaseDTO preMonthOrWeekCaseDTO = new PreMonthOrWeekCaseDTO(); preMonthOrWeekCaseDTO.setDimension(date); preMonthOrWeekCaseDTO.setQuantity(0); - resultList.add(preMonthOrWeekCaseDTO); + finalList.add(preMonthOrWeekCaseDTO); } } + return ResponseData.success(finalList); } return ResponseData.success(resultList); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java index 2c66ec1..97ed308 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java @@ -57,7 +57,7 @@ public List staffInfoListPage(Page page, StaffInfoRequest staffInfoRequest) { try { List pageList = staffInfoMapper.getStaffInfoListPage(page, staffInfoRequest); - pageList.parallelStream().forEach(staffInfo -> { + pageList.stream().forEach(staffInfo -> { staffInfo.setStaffTypeName(dictService.getDictNameByCode(SecurityEventDict.STAFF_TYPE, staffInfo.getStaffType())); staffInfo.setPicture(getPictureFromHik(staffInfo.getStaffCode())); }); @@ -86,7 +86,10 @@ personSingleAddOrUpdateRequest.setJobNo(staffInfo.getStaffCode()); List faces = new ArrayList<>(); PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(staffInfo.getPicture()); + if(StringUtils.isNotEmpty(staffInfo.getPicture())){ + String substringPicture = staffInfo.getPicture().substring(staffInfo.getPicture().indexOf(",") + 1); + faceData.setFaceData(substringPicture); + } faces.add(faceData); personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); @@ -137,6 +140,7 @@ log.error("请求海康,单个修改人员失败,海康response:{}", resultStr); return ResponseData.error("单个修改人员失败"); } + staffInfo.setPicture(""); if(staffInfoMapper.updateById(staffInfo) > 0){ return ResponseData.success(); } @@ -232,11 +236,11 @@ personSingleAddOrUpdateRequest.setPhoneNo(busConcentrator.getPhone()); personSingleAddOrUpdateRequest.setOrgIndexCode(busConcentrator.getStaffType()); personSingleAddOrUpdateRequest.setJobNo(busConcentrator.getStaffCode()); - List faces = new ArrayList<>(); - PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(busConcentrator.getPicture()); - faces.add(faceData); - personSingleAddOrUpdateRequest.setFaces(faces); +// List faces = new ArrayList<>(); +// PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); +// faceData.setFaceData(busConcentrator.getPicture()); +// faces.add(faceData); +// personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); personSingleAddOrUpdateRequest.setCertificateNo(busConcentrator.getStaffIdCard()); personList.add(personSingleAddOrUpdateRequest); @@ -336,8 +340,12 @@ if(0 == dataArray.size()){ return ""; } + log.info("请求海康,根据人员唯一字段获取人员详细信息response:{}", resultStr); JSONObject jsonObject = (JSONObject) dataArray.get(0); JSONArray personPhoto = (JSONArray) jsonObject.get("personPhoto"); + if(0 == personPhoto.size()){ + return ""; + } JSONObject photo = (JSONObject) personPhoto.get(0); String picUri = photo.getString("picUri"); String serverIndexCode = photo.getString("serverIndexCode"); diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java index f9523a6..0c5da7a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java @@ -16,7 +16,7 @@ List addVisitorApplyBatch(List results); - int addVisitorApply(VisitorApply visitorApply); + Object addVisitorApply(VisitorApply visitorApply); int updateVisitorApply(VisitorApply visitorApply); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java index 2580187..f370c06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -125,7 +126,7 @@ @Override public Object updateBlackInfo(BlackInfo blackInfo) { FaceSingleAddOrUpdateRequest faceSingleAddOrUpdateRequest = new FaceSingleAddOrUpdateRequest(); - faceSingleAddOrUpdateRequest.setFaceGroupIndexCode(blackInfo.getFaceGroupIndexCode()); + faceSingleAddOrUpdateRequest.setIndexCode(blackInfo.getIndexCode()); FaceInfo faceInfo = new FaceInfo(); faceInfo.setName(blackInfo.getBlackName()); faceInfo.setSex(blackInfo.getBlackSex()); @@ -133,8 +134,10 @@ faceInfo.setCertificateNum(blackInfo.getIdCardNo()); faceSingleAddOrUpdateRequest.setFaceInfo(faceInfo); FacePic facePic = new FacePic(); - facePic.setFaceBinaryData(blackInfo.getPicture()); - faceSingleAddOrUpdateRequest.setFacePic(facePic); + if(StringUtils.isNotEmpty(blackInfo.getPicture())){ + String substringPicture = blackInfo.getPicture().substring(blackInfo.getPicture().indexOf(",") + 1); + facePic.setFaceBinaryData(substringPicture); + } faceSingleAddOrUpdateRequest.setFacePic(facePic); String body = JSONObject.toJSONString(faceSingleAddOrUpdateRequest); String resultStr = HikUtil.hikApi(HikUri.FACE_SINGLE_UPDATE, body); @@ -143,6 +146,27 @@ log.error("请求海康,单个修改人脸失败,海康response:{}", resultStr); return ResponseData.error("单个修改人脸失败"); } + //海康更新接口不返回人脸url,需单独请求人脸图片接口获取 + FaceRequest request = new FaceRequest(); + List list = new ArrayList<>(); + list.add(blackInfo.getIndexCode()); + request.setIndexCodes(list); + String body1 = JSONObject.toJSONString(request); + String resultStr1 = HikUtil.hikApi("/api/frs/v1/face", body1); + JSONObject resultJson1 = (JSONObject)JSONObject.parse(resultStr1); + if (!"0".equals(resultJson1.get("code"))){ + log.error("请求海康,获取人脸图片失败,海康response:{}", resultStr1); + return ResponseData.error("单个修改人脸失败"); + } + JSONObject dataJson = (JSONObject)resultJson1.get("data"); + JSONArray dataArray = (JSONArray) dataJson.get("list"); + if(0 == dataArray.size()){ + return ResponseData.error("黑名单人员更新失败!"); + } + JSONObject jsonObject = (JSONObject) dataArray.get(0); + JSONObject facePicObject = jsonObject.getJSONObject("facePic"); + String faceUrl = facePicObject.getString("faceUrl"); + blackInfo.setPicture(faceUrl); if(blackInfoMapper.updateById(blackInfo) > 0){ return ResponseData.success(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java index e3dff1f..d311677 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java @@ -133,17 +133,6 @@ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); busConcentrator.setExpireDate(dateFormat.format(new Date())); } - if (StrUtil.isNotEmpty(busConcentrator.getQualityDate())) { - try { - new SimpleDateFormat("yyyy-MM-dd").parse(busConcentrator.getQualityDate()); - } catch (Exception e) { - list.add(" 第" + index[0] + "行,时间格式不正确"); - return; - } - } else { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - busConcentrator.setProductDate(dateFormat.format(new Date())); - } }); if (CollectionUtil.isNotEmpty(list)) { return list; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java index c399a7f..d29d38d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java @@ -75,6 +75,7 @@ caseInfo.setIsKeyArea(deviceInfo.getIsKeyArea()); caseInfo.setDetailLocation(deviceInfo.getDetailLocation()); caseInfo.setDrawNo(deviceInfo.getDrawNo()); //图纸编号 + caseInfo.setDescription("黑名单识别事件"); //变更描述 return caseInfo; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java index 4427f19..06f8bf3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java @@ -163,15 +163,23 @@ resultList.add(preMonthOrWeekCaseDTO); } } else { + List finalList = new ArrayList<>(); for (String date : dateList) { - List collect = resultList.stream().map(PreMonthOrWeekCaseDTO::getDimension).collect(Collectors.toList()); - if (!collect.contains(date)) { + Integer flag = 0; + for (PreMonthOrWeekCaseDTO dto : resultList) { + if(dto.getDimension().equals(date)){ + finalList.add(dto); + flag = 1; + } + } + if(flag == 0){ PreMonthOrWeekCaseDTO preMonthOrWeekCaseDTO = new PreMonthOrWeekCaseDTO(); preMonthOrWeekCaseDTO.setDimension(date); preMonthOrWeekCaseDTO.setQuantity(0); - resultList.add(preMonthOrWeekCaseDTO); + finalList.add(preMonthOrWeekCaseDTO); } } + return ResponseData.success(finalList); } return ResponseData.success(resultList); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java index 2c66ec1..97ed308 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java @@ -57,7 +57,7 @@ public List staffInfoListPage(Page page, StaffInfoRequest staffInfoRequest) { try { List pageList = staffInfoMapper.getStaffInfoListPage(page, staffInfoRequest); - pageList.parallelStream().forEach(staffInfo -> { + pageList.stream().forEach(staffInfo -> { staffInfo.setStaffTypeName(dictService.getDictNameByCode(SecurityEventDict.STAFF_TYPE, staffInfo.getStaffType())); staffInfo.setPicture(getPictureFromHik(staffInfo.getStaffCode())); }); @@ -86,7 +86,10 @@ personSingleAddOrUpdateRequest.setJobNo(staffInfo.getStaffCode()); List faces = new ArrayList<>(); PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(staffInfo.getPicture()); + if(StringUtils.isNotEmpty(staffInfo.getPicture())){ + String substringPicture = staffInfo.getPicture().substring(staffInfo.getPicture().indexOf(",") + 1); + faceData.setFaceData(substringPicture); + } faces.add(faceData); personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); @@ -137,6 +140,7 @@ log.error("请求海康,单个修改人员失败,海康response:{}", resultStr); return ResponseData.error("单个修改人员失败"); } + staffInfo.setPicture(""); if(staffInfoMapper.updateById(staffInfo) > 0){ return ResponseData.success(); } @@ -232,11 +236,11 @@ personSingleAddOrUpdateRequest.setPhoneNo(busConcentrator.getPhone()); personSingleAddOrUpdateRequest.setOrgIndexCode(busConcentrator.getStaffType()); personSingleAddOrUpdateRequest.setJobNo(busConcentrator.getStaffCode()); - List faces = new ArrayList<>(); - PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(busConcentrator.getPicture()); - faces.add(faceData); - personSingleAddOrUpdateRequest.setFaces(faces); +// List faces = new ArrayList<>(); +// PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); +// faceData.setFaceData(busConcentrator.getPicture()); +// faces.add(faceData); +// personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); personSingleAddOrUpdateRequest.setCertificateNo(busConcentrator.getStaffIdCard()); personList.add(personSingleAddOrUpdateRequest); @@ -336,8 +340,12 @@ if(0 == dataArray.size()){ return ""; } + log.info("请求海康,根据人员唯一字段获取人员详细信息response:{}", resultStr); JSONObject jsonObject = (JSONObject) dataArray.get(0); JSONArray personPhoto = (JSONArray) jsonObject.get("personPhoto"); + if(0 == personPhoto.size()){ + return ""; + } JSONObject photo = (JSONObject) personPhoto.get(0); String picUri = photo.getString("picUri"); String serverIndexCode = photo.getString("serverIndexCode"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java index aa23547..f6756ce 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.dao.VisitorApplyMapper; import com.casic.missiles.modular.dto.VisitorApplyRequest; import com.casic.missiles.modular.dto.hik.AppointmentFreeRegisterRequest; @@ -71,7 +72,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public int addVisitorApply(VisitorApply visitorApply) { + public Object addVisitorApply(VisitorApply visitorApply) { //无需判重,可预约多个时间段 AppointmentFreeRegisterRequest appointmentFreeRegisterRequest = new AppointmentFreeRegisterRequest(); //将时间转换为海康ISO8601格式 @@ -107,7 +108,7 @@ JSONObject resultJson = (JSONObject)JSONObject.parse(resultStr); if(!"0".equals(resultJson.get("code"))){ log.error("请求海康,预约免登记失败,海康response:{}", resultStr); - return 0; + return ResponseData.error(resultJson.getString("msg")); } JSONObject jsonData = (JSONObject)resultJson.get("data"); String appointRecordId = String.valueOf(jsonData.get("appointRecordId")); @@ -118,7 +119,11 @@ visitorApply.setOrderId(orderId); visitorApply.setPicUri(picUri); visitorApply.setServerIndexCode(svrIndexCode); - return visitorApplyMapper.insert(visitorApply); + if(visitorApplyMapper.insert(visitorApply) > 0){ + return ResponseData.success(); + }else{ + return ResponseData.error("新增访问申请异常"); + } } @Override @@ -189,7 +194,7 @@ } }else{ log.error("该访客:{},未在海康进行预约成功,无法取消预约", visitorApply.getVisitorName()); - return 0; + return visitorApplyMapper.deleteById(visitorApply.getId()); } return visitorApplyMapper.deleteById(visitorApply.getId()); } diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java index f9523a6..0c5da7a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java @@ -16,7 +16,7 @@ List addVisitorApplyBatch(List results); - int addVisitorApply(VisitorApply visitorApply); + Object addVisitorApply(VisitorApply visitorApply); int updateVisitorApply(VisitorApply visitorApply); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java index 2580187..f370c06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -125,7 +126,7 @@ @Override public Object updateBlackInfo(BlackInfo blackInfo) { FaceSingleAddOrUpdateRequest faceSingleAddOrUpdateRequest = new FaceSingleAddOrUpdateRequest(); - faceSingleAddOrUpdateRequest.setFaceGroupIndexCode(blackInfo.getFaceGroupIndexCode()); + faceSingleAddOrUpdateRequest.setIndexCode(blackInfo.getIndexCode()); FaceInfo faceInfo = new FaceInfo(); faceInfo.setName(blackInfo.getBlackName()); faceInfo.setSex(blackInfo.getBlackSex()); @@ -133,8 +134,10 @@ faceInfo.setCertificateNum(blackInfo.getIdCardNo()); faceSingleAddOrUpdateRequest.setFaceInfo(faceInfo); FacePic facePic = new FacePic(); - facePic.setFaceBinaryData(blackInfo.getPicture()); - faceSingleAddOrUpdateRequest.setFacePic(facePic); + if(StringUtils.isNotEmpty(blackInfo.getPicture())){ + String substringPicture = blackInfo.getPicture().substring(blackInfo.getPicture().indexOf(",") + 1); + facePic.setFaceBinaryData(substringPicture); + } faceSingleAddOrUpdateRequest.setFacePic(facePic); String body = JSONObject.toJSONString(faceSingleAddOrUpdateRequest); String resultStr = HikUtil.hikApi(HikUri.FACE_SINGLE_UPDATE, body); @@ -143,6 +146,27 @@ log.error("请求海康,单个修改人脸失败,海康response:{}", resultStr); return ResponseData.error("单个修改人脸失败"); } + //海康更新接口不返回人脸url,需单独请求人脸图片接口获取 + FaceRequest request = new FaceRequest(); + List list = new ArrayList<>(); + list.add(blackInfo.getIndexCode()); + request.setIndexCodes(list); + String body1 = JSONObject.toJSONString(request); + String resultStr1 = HikUtil.hikApi("/api/frs/v1/face", body1); + JSONObject resultJson1 = (JSONObject)JSONObject.parse(resultStr1); + if (!"0".equals(resultJson1.get("code"))){ + log.error("请求海康,获取人脸图片失败,海康response:{}", resultStr1); + return ResponseData.error("单个修改人脸失败"); + } + JSONObject dataJson = (JSONObject)resultJson1.get("data"); + JSONArray dataArray = (JSONArray) dataJson.get("list"); + if(0 == dataArray.size()){ + return ResponseData.error("黑名单人员更新失败!"); + } + JSONObject jsonObject = (JSONObject) dataArray.get(0); + JSONObject facePicObject = jsonObject.getJSONObject("facePic"); + String faceUrl = facePicObject.getString("faceUrl"); + blackInfo.setPicture(faceUrl); if(blackInfoMapper.updateById(blackInfo) > 0){ return ResponseData.success(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java index e3dff1f..d311677 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java @@ -133,17 +133,6 @@ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); busConcentrator.setExpireDate(dateFormat.format(new Date())); } - if (StrUtil.isNotEmpty(busConcentrator.getQualityDate())) { - try { - new SimpleDateFormat("yyyy-MM-dd").parse(busConcentrator.getQualityDate()); - } catch (Exception e) { - list.add(" 第" + index[0] + "行,时间格式不正确"); - return; - } - } else { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - busConcentrator.setProductDate(dateFormat.format(new Date())); - } }); if (CollectionUtil.isNotEmpty(list)) { return list; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java index c399a7f..d29d38d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java @@ -75,6 +75,7 @@ caseInfo.setIsKeyArea(deviceInfo.getIsKeyArea()); caseInfo.setDetailLocation(deviceInfo.getDetailLocation()); caseInfo.setDrawNo(deviceInfo.getDrawNo()); //图纸编号 + caseInfo.setDescription("黑名单识别事件"); //变更描述 return caseInfo; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java index 4427f19..06f8bf3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java @@ -163,15 +163,23 @@ resultList.add(preMonthOrWeekCaseDTO); } } else { + List finalList = new ArrayList<>(); for (String date : dateList) { - List collect = resultList.stream().map(PreMonthOrWeekCaseDTO::getDimension).collect(Collectors.toList()); - if (!collect.contains(date)) { + Integer flag = 0; + for (PreMonthOrWeekCaseDTO dto : resultList) { + if(dto.getDimension().equals(date)){ + finalList.add(dto); + flag = 1; + } + } + if(flag == 0){ PreMonthOrWeekCaseDTO preMonthOrWeekCaseDTO = new PreMonthOrWeekCaseDTO(); preMonthOrWeekCaseDTO.setDimension(date); preMonthOrWeekCaseDTO.setQuantity(0); - resultList.add(preMonthOrWeekCaseDTO); + finalList.add(preMonthOrWeekCaseDTO); } } + return ResponseData.success(finalList); } return ResponseData.success(resultList); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java index 2c66ec1..97ed308 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java @@ -57,7 +57,7 @@ public List staffInfoListPage(Page page, StaffInfoRequest staffInfoRequest) { try { List pageList = staffInfoMapper.getStaffInfoListPage(page, staffInfoRequest); - pageList.parallelStream().forEach(staffInfo -> { + pageList.stream().forEach(staffInfo -> { staffInfo.setStaffTypeName(dictService.getDictNameByCode(SecurityEventDict.STAFF_TYPE, staffInfo.getStaffType())); staffInfo.setPicture(getPictureFromHik(staffInfo.getStaffCode())); }); @@ -86,7 +86,10 @@ personSingleAddOrUpdateRequest.setJobNo(staffInfo.getStaffCode()); List faces = new ArrayList<>(); PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(staffInfo.getPicture()); + if(StringUtils.isNotEmpty(staffInfo.getPicture())){ + String substringPicture = staffInfo.getPicture().substring(staffInfo.getPicture().indexOf(",") + 1); + faceData.setFaceData(substringPicture); + } faces.add(faceData); personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); @@ -137,6 +140,7 @@ log.error("请求海康,单个修改人员失败,海康response:{}", resultStr); return ResponseData.error("单个修改人员失败"); } + staffInfo.setPicture(""); if(staffInfoMapper.updateById(staffInfo) > 0){ return ResponseData.success(); } @@ -232,11 +236,11 @@ personSingleAddOrUpdateRequest.setPhoneNo(busConcentrator.getPhone()); personSingleAddOrUpdateRequest.setOrgIndexCode(busConcentrator.getStaffType()); personSingleAddOrUpdateRequest.setJobNo(busConcentrator.getStaffCode()); - List faces = new ArrayList<>(); - PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(busConcentrator.getPicture()); - faces.add(faceData); - personSingleAddOrUpdateRequest.setFaces(faces); +// List faces = new ArrayList<>(); +// PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); +// faceData.setFaceData(busConcentrator.getPicture()); +// faces.add(faceData); +// personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); personSingleAddOrUpdateRequest.setCertificateNo(busConcentrator.getStaffIdCard()); personList.add(personSingleAddOrUpdateRequest); @@ -336,8 +340,12 @@ if(0 == dataArray.size()){ return ""; } + log.info("请求海康,根据人员唯一字段获取人员详细信息response:{}", resultStr); JSONObject jsonObject = (JSONObject) dataArray.get(0); JSONArray personPhoto = (JSONArray) jsonObject.get("personPhoto"); + if(0 == personPhoto.size()){ + return ""; + } JSONObject photo = (JSONObject) personPhoto.get(0); String picUri = photo.getString("picUri"); String serverIndexCode = photo.getString("serverIndexCode"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java index aa23547..f6756ce 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.dao.VisitorApplyMapper; import com.casic.missiles.modular.dto.VisitorApplyRequest; import com.casic.missiles.modular.dto.hik.AppointmentFreeRegisterRequest; @@ -71,7 +72,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public int addVisitorApply(VisitorApply visitorApply) { + public Object addVisitorApply(VisitorApply visitorApply) { //无需判重,可预约多个时间段 AppointmentFreeRegisterRequest appointmentFreeRegisterRequest = new AppointmentFreeRegisterRequest(); //将时间转换为海康ISO8601格式 @@ -107,7 +108,7 @@ JSONObject resultJson = (JSONObject)JSONObject.parse(resultStr); if(!"0".equals(resultJson.get("code"))){ log.error("请求海康,预约免登记失败,海康response:{}", resultStr); - return 0; + return ResponseData.error(resultJson.getString("msg")); } JSONObject jsonData = (JSONObject)resultJson.get("data"); String appointRecordId = String.valueOf(jsonData.get("appointRecordId")); @@ -118,7 +119,11 @@ visitorApply.setOrderId(orderId); visitorApply.setPicUri(picUri); visitorApply.setServerIndexCode(svrIndexCode); - return visitorApplyMapper.insert(visitorApply); + if(visitorApplyMapper.insert(visitorApply) > 0){ + return ResponseData.success(); + }else{ + return ResponseData.error("新增访问申请异常"); + } } @Override @@ -189,7 +194,7 @@ } }else{ log.error("该访客:{},未在海康进行预约成功,无法取消预约", visitorApply.getVisitorName()); - return 0; + return visitorApplyMapper.deleteById(visitorApply.getId()); } return visitorApplyMapper.deleteById(visitorApply.getId()); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java index 269e3b0..937a9de 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java @@ -147,7 +147,7 @@ result.add(sdf.format(tempStart.getTime())); tempStart.add(Calendar.DAY_OF_YEAR, 1); } - result.add(endTime); + result.add(endTime.substring(0, endTime.indexOf(" "))); return result; } diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java index f9523a6..0c5da7a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java @@ -16,7 +16,7 @@ List addVisitorApplyBatch(List results); - int addVisitorApply(VisitorApply visitorApply); + Object addVisitorApply(VisitorApply visitorApply); int updateVisitorApply(VisitorApply visitorApply); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java index 2580187..f370c06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -125,7 +126,7 @@ @Override public Object updateBlackInfo(BlackInfo blackInfo) { FaceSingleAddOrUpdateRequest faceSingleAddOrUpdateRequest = new FaceSingleAddOrUpdateRequest(); - faceSingleAddOrUpdateRequest.setFaceGroupIndexCode(blackInfo.getFaceGroupIndexCode()); + faceSingleAddOrUpdateRequest.setIndexCode(blackInfo.getIndexCode()); FaceInfo faceInfo = new FaceInfo(); faceInfo.setName(blackInfo.getBlackName()); faceInfo.setSex(blackInfo.getBlackSex()); @@ -133,8 +134,10 @@ faceInfo.setCertificateNum(blackInfo.getIdCardNo()); faceSingleAddOrUpdateRequest.setFaceInfo(faceInfo); FacePic facePic = new FacePic(); - facePic.setFaceBinaryData(blackInfo.getPicture()); - faceSingleAddOrUpdateRequest.setFacePic(facePic); + if(StringUtils.isNotEmpty(blackInfo.getPicture())){ + String substringPicture = blackInfo.getPicture().substring(blackInfo.getPicture().indexOf(",") + 1); + facePic.setFaceBinaryData(substringPicture); + } faceSingleAddOrUpdateRequest.setFacePic(facePic); String body = JSONObject.toJSONString(faceSingleAddOrUpdateRequest); String resultStr = HikUtil.hikApi(HikUri.FACE_SINGLE_UPDATE, body); @@ -143,6 +146,27 @@ log.error("请求海康,单个修改人脸失败,海康response:{}", resultStr); return ResponseData.error("单个修改人脸失败"); } + //海康更新接口不返回人脸url,需单独请求人脸图片接口获取 + FaceRequest request = new FaceRequest(); + List list = new ArrayList<>(); + list.add(blackInfo.getIndexCode()); + request.setIndexCodes(list); + String body1 = JSONObject.toJSONString(request); + String resultStr1 = HikUtil.hikApi("/api/frs/v1/face", body1); + JSONObject resultJson1 = (JSONObject)JSONObject.parse(resultStr1); + if (!"0".equals(resultJson1.get("code"))){ + log.error("请求海康,获取人脸图片失败,海康response:{}", resultStr1); + return ResponseData.error("单个修改人脸失败"); + } + JSONObject dataJson = (JSONObject)resultJson1.get("data"); + JSONArray dataArray = (JSONArray) dataJson.get("list"); + if(0 == dataArray.size()){ + return ResponseData.error("黑名单人员更新失败!"); + } + JSONObject jsonObject = (JSONObject) dataArray.get(0); + JSONObject facePicObject = jsonObject.getJSONObject("facePic"); + String faceUrl = facePicObject.getString("faceUrl"); + blackInfo.setPicture(faceUrl); if(blackInfoMapper.updateById(blackInfo) > 0){ return ResponseData.success(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java index e3dff1f..d311677 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java @@ -133,17 +133,6 @@ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); busConcentrator.setExpireDate(dateFormat.format(new Date())); } - if (StrUtil.isNotEmpty(busConcentrator.getQualityDate())) { - try { - new SimpleDateFormat("yyyy-MM-dd").parse(busConcentrator.getQualityDate()); - } catch (Exception e) { - list.add(" 第" + index[0] + "行,时间格式不正确"); - return; - } - } else { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - busConcentrator.setProductDate(dateFormat.format(new Date())); - } }); if (CollectionUtil.isNotEmpty(list)) { return list; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java index c399a7f..d29d38d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java @@ -75,6 +75,7 @@ caseInfo.setIsKeyArea(deviceInfo.getIsKeyArea()); caseInfo.setDetailLocation(deviceInfo.getDetailLocation()); caseInfo.setDrawNo(deviceInfo.getDrawNo()); //图纸编号 + caseInfo.setDescription("黑名单识别事件"); //变更描述 return caseInfo; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java index 4427f19..06f8bf3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java @@ -163,15 +163,23 @@ resultList.add(preMonthOrWeekCaseDTO); } } else { + List finalList = new ArrayList<>(); for (String date : dateList) { - List collect = resultList.stream().map(PreMonthOrWeekCaseDTO::getDimension).collect(Collectors.toList()); - if (!collect.contains(date)) { + Integer flag = 0; + for (PreMonthOrWeekCaseDTO dto : resultList) { + if(dto.getDimension().equals(date)){ + finalList.add(dto); + flag = 1; + } + } + if(flag == 0){ PreMonthOrWeekCaseDTO preMonthOrWeekCaseDTO = new PreMonthOrWeekCaseDTO(); preMonthOrWeekCaseDTO.setDimension(date); preMonthOrWeekCaseDTO.setQuantity(0); - resultList.add(preMonthOrWeekCaseDTO); + finalList.add(preMonthOrWeekCaseDTO); } } + return ResponseData.success(finalList); } return ResponseData.success(resultList); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java index 2c66ec1..97ed308 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java @@ -57,7 +57,7 @@ public List staffInfoListPage(Page page, StaffInfoRequest staffInfoRequest) { try { List pageList = staffInfoMapper.getStaffInfoListPage(page, staffInfoRequest); - pageList.parallelStream().forEach(staffInfo -> { + pageList.stream().forEach(staffInfo -> { staffInfo.setStaffTypeName(dictService.getDictNameByCode(SecurityEventDict.STAFF_TYPE, staffInfo.getStaffType())); staffInfo.setPicture(getPictureFromHik(staffInfo.getStaffCode())); }); @@ -86,7 +86,10 @@ personSingleAddOrUpdateRequest.setJobNo(staffInfo.getStaffCode()); List faces = new ArrayList<>(); PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(staffInfo.getPicture()); + if(StringUtils.isNotEmpty(staffInfo.getPicture())){ + String substringPicture = staffInfo.getPicture().substring(staffInfo.getPicture().indexOf(",") + 1); + faceData.setFaceData(substringPicture); + } faces.add(faceData); personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); @@ -137,6 +140,7 @@ log.error("请求海康,单个修改人员失败,海康response:{}", resultStr); return ResponseData.error("单个修改人员失败"); } + staffInfo.setPicture(""); if(staffInfoMapper.updateById(staffInfo) > 0){ return ResponseData.success(); } @@ -232,11 +236,11 @@ personSingleAddOrUpdateRequest.setPhoneNo(busConcentrator.getPhone()); personSingleAddOrUpdateRequest.setOrgIndexCode(busConcentrator.getStaffType()); personSingleAddOrUpdateRequest.setJobNo(busConcentrator.getStaffCode()); - List faces = new ArrayList<>(); - PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(busConcentrator.getPicture()); - faces.add(faceData); - personSingleAddOrUpdateRequest.setFaces(faces); +// List faces = new ArrayList<>(); +// PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); +// faceData.setFaceData(busConcentrator.getPicture()); +// faces.add(faceData); +// personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); personSingleAddOrUpdateRequest.setCertificateNo(busConcentrator.getStaffIdCard()); personList.add(personSingleAddOrUpdateRequest); @@ -336,8 +340,12 @@ if(0 == dataArray.size()){ return ""; } + log.info("请求海康,根据人员唯一字段获取人员详细信息response:{}", resultStr); JSONObject jsonObject = (JSONObject) dataArray.get(0); JSONArray personPhoto = (JSONArray) jsonObject.get("personPhoto"); + if(0 == personPhoto.size()){ + return ""; + } JSONObject photo = (JSONObject) personPhoto.get(0); String picUri = photo.getString("picUri"); String serverIndexCode = photo.getString("serverIndexCode"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java index aa23547..f6756ce 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.dao.VisitorApplyMapper; import com.casic.missiles.modular.dto.VisitorApplyRequest; import com.casic.missiles.modular.dto.hik.AppointmentFreeRegisterRequest; @@ -71,7 +72,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public int addVisitorApply(VisitorApply visitorApply) { + public Object addVisitorApply(VisitorApply visitorApply) { //无需判重,可预约多个时间段 AppointmentFreeRegisterRequest appointmentFreeRegisterRequest = new AppointmentFreeRegisterRequest(); //将时间转换为海康ISO8601格式 @@ -107,7 +108,7 @@ JSONObject resultJson = (JSONObject)JSONObject.parse(resultStr); if(!"0".equals(resultJson.get("code"))){ log.error("请求海康,预约免登记失败,海康response:{}", resultStr); - return 0; + return ResponseData.error(resultJson.getString("msg")); } JSONObject jsonData = (JSONObject)resultJson.get("data"); String appointRecordId = String.valueOf(jsonData.get("appointRecordId")); @@ -118,7 +119,11 @@ visitorApply.setOrderId(orderId); visitorApply.setPicUri(picUri); visitorApply.setServerIndexCode(svrIndexCode); - return visitorApplyMapper.insert(visitorApply); + if(visitorApplyMapper.insert(visitorApply) > 0){ + return ResponseData.success(); + }else{ + return ResponseData.error("新增访问申请异常"); + } } @Override @@ -189,7 +194,7 @@ } }else{ log.error("该访客:{},未在海康进行预约成功,无法取消预约", visitorApply.getVisitorName()); - return 0; + return visitorApplyMapper.deleteById(visitorApply.getId()); } return visitorApplyMapper.deleteById(visitorApply.getId()); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java index 269e3b0..937a9de 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java @@ -147,7 +147,7 @@ result.add(sdf.format(tempStart.getTime())); tempStart.add(Calendar.DAY_OF_YEAR, 1); } - result.add(endTime); + result.add(endTime.substring(0, endTime.indexOf(" "))); return result; } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 26e049d..86cefa6 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -93,12 +93,6 @@ mysql-connector-java ${mysql.driver.version} - - - com.dameng - DmJdbcDriver18 - 1.8 - com.casic casic-area-starter diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java index f9523a6..0c5da7a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java @@ -16,7 +16,7 @@ List addVisitorApplyBatch(List results); - int addVisitorApply(VisitorApply visitorApply); + Object addVisitorApply(VisitorApply visitorApply); int updateVisitorApply(VisitorApply visitorApply); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java index 2580187..f370c06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -125,7 +126,7 @@ @Override public Object updateBlackInfo(BlackInfo blackInfo) { FaceSingleAddOrUpdateRequest faceSingleAddOrUpdateRequest = new FaceSingleAddOrUpdateRequest(); - faceSingleAddOrUpdateRequest.setFaceGroupIndexCode(blackInfo.getFaceGroupIndexCode()); + faceSingleAddOrUpdateRequest.setIndexCode(blackInfo.getIndexCode()); FaceInfo faceInfo = new FaceInfo(); faceInfo.setName(blackInfo.getBlackName()); faceInfo.setSex(blackInfo.getBlackSex()); @@ -133,8 +134,10 @@ faceInfo.setCertificateNum(blackInfo.getIdCardNo()); faceSingleAddOrUpdateRequest.setFaceInfo(faceInfo); FacePic facePic = new FacePic(); - facePic.setFaceBinaryData(blackInfo.getPicture()); - faceSingleAddOrUpdateRequest.setFacePic(facePic); + if(StringUtils.isNotEmpty(blackInfo.getPicture())){ + String substringPicture = blackInfo.getPicture().substring(blackInfo.getPicture().indexOf(",") + 1); + facePic.setFaceBinaryData(substringPicture); + } faceSingleAddOrUpdateRequest.setFacePic(facePic); String body = JSONObject.toJSONString(faceSingleAddOrUpdateRequest); String resultStr = HikUtil.hikApi(HikUri.FACE_SINGLE_UPDATE, body); @@ -143,6 +146,27 @@ log.error("请求海康,单个修改人脸失败,海康response:{}", resultStr); return ResponseData.error("单个修改人脸失败"); } + //海康更新接口不返回人脸url,需单独请求人脸图片接口获取 + FaceRequest request = new FaceRequest(); + List list = new ArrayList<>(); + list.add(blackInfo.getIndexCode()); + request.setIndexCodes(list); + String body1 = JSONObject.toJSONString(request); + String resultStr1 = HikUtil.hikApi("/api/frs/v1/face", body1); + JSONObject resultJson1 = (JSONObject)JSONObject.parse(resultStr1); + if (!"0".equals(resultJson1.get("code"))){ + log.error("请求海康,获取人脸图片失败,海康response:{}", resultStr1); + return ResponseData.error("单个修改人脸失败"); + } + JSONObject dataJson = (JSONObject)resultJson1.get("data"); + JSONArray dataArray = (JSONArray) dataJson.get("list"); + if(0 == dataArray.size()){ + return ResponseData.error("黑名单人员更新失败!"); + } + JSONObject jsonObject = (JSONObject) dataArray.get(0); + JSONObject facePicObject = jsonObject.getJSONObject("facePic"); + String faceUrl = facePicObject.getString("faceUrl"); + blackInfo.setPicture(faceUrl); if(blackInfoMapper.updateById(blackInfo) > 0){ return ResponseData.success(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java index e3dff1f..d311677 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java @@ -133,17 +133,6 @@ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); busConcentrator.setExpireDate(dateFormat.format(new Date())); } - if (StrUtil.isNotEmpty(busConcentrator.getQualityDate())) { - try { - new SimpleDateFormat("yyyy-MM-dd").parse(busConcentrator.getQualityDate()); - } catch (Exception e) { - list.add(" 第" + index[0] + "行,时间格式不正确"); - return; - } - } else { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - busConcentrator.setProductDate(dateFormat.format(new Date())); - } }); if (CollectionUtil.isNotEmpty(list)) { return list; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java index c399a7f..d29d38d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java @@ -75,6 +75,7 @@ caseInfo.setIsKeyArea(deviceInfo.getIsKeyArea()); caseInfo.setDetailLocation(deviceInfo.getDetailLocation()); caseInfo.setDrawNo(deviceInfo.getDrawNo()); //图纸编号 + caseInfo.setDescription("黑名单识别事件"); //变更描述 return caseInfo; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java index 4427f19..06f8bf3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java @@ -163,15 +163,23 @@ resultList.add(preMonthOrWeekCaseDTO); } } else { + List finalList = new ArrayList<>(); for (String date : dateList) { - List collect = resultList.stream().map(PreMonthOrWeekCaseDTO::getDimension).collect(Collectors.toList()); - if (!collect.contains(date)) { + Integer flag = 0; + for (PreMonthOrWeekCaseDTO dto : resultList) { + if(dto.getDimension().equals(date)){ + finalList.add(dto); + flag = 1; + } + } + if(flag == 0){ PreMonthOrWeekCaseDTO preMonthOrWeekCaseDTO = new PreMonthOrWeekCaseDTO(); preMonthOrWeekCaseDTO.setDimension(date); preMonthOrWeekCaseDTO.setQuantity(0); - resultList.add(preMonthOrWeekCaseDTO); + finalList.add(preMonthOrWeekCaseDTO); } } + return ResponseData.success(finalList); } return ResponseData.success(resultList); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java index 2c66ec1..97ed308 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java @@ -57,7 +57,7 @@ public List staffInfoListPage(Page page, StaffInfoRequest staffInfoRequest) { try { List pageList = staffInfoMapper.getStaffInfoListPage(page, staffInfoRequest); - pageList.parallelStream().forEach(staffInfo -> { + pageList.stream().forEach(staffInfo -> { staffInfo.setStaffTypeName(dictService.getDictNameByCode(SecurityEventDict.STAFF_TYPE, staffInfo.getStaffType())); staffInfo.setPicture(getPictureFromHik(staffInfo.getStaffCode())); }); @@ -86,7 +86,10 @@ personSingleAddOrUpdateRequest.setJobNo(staffInfo.getStaffCode()); List faces = new ArrayList<>(); PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(staffInfo.getPicture()); + if(StringUtils.isNotEmpty(staffInfo.getPicture())){ + String substringPicture = staffInfo.getPicture().substring(staffInfo.getPicture().indexOf(",") + 1); + faceData.setFaceData(substringPicture); + } faces.add(faceData); personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); @@ -137,6 +140,7 @@ log.error("请求海康,单个修改人员失败,海康response:{}", resultStr); return ResponseData.error("单个修改人员失败"); } + staffInfo.setPicture(""); if(staffInfoMapper.updateById(staffInfo) > 0){ return ResponseData.success(); } @@ -232,11 +236,11 @@ personSingleAddOrUpdateRequest.setPhoneNo(busConcentrator.getPhone()); personSingleAddOrUpdateRequest.setOrgIndexCode(busConcentrator.getStaffType()); personSingleAddOrUpdateRequest.setJobNo(busConcentrator.getStaffCode()); - List faces = new ArrayList<>(); - PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(busConcentrator.getPicture()); - faces.add(faceData); - personSingleAddOrUpdateRequest.setFaces(faces); +// List faces = new ArrayList<>(); +// PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); +// faceData.setFaceData(busConcentrator.getPicture()); +// faces.add(faceData); +// personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); personSingleAddOrUpdateRequest.setCertificateNo(busConcentrator.getStaffIdCard()); personList.add(personSingleAddOrUpdateRequest); @@ -336,8 +340,12 @@ if(0 == dataArray.size()){ return ""; } + log.info("请求海康,根据人员唯一字段获取人员详细信息response:{}", resultStr); JSONObject jsonObject = (JSONObject) dataArray.get(0); JSONArray personPhoto = (JSONArray) jsonObject.get("personPhoto"); + if(0 == personPhoto.size()){ + return ""; + } JSONObject photo = (JSONObject) personPhoto.get(0); String picUri = photo.getString("picUri"); String serverIndexCode = photo.getString("serverIndexCode"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java index aa23547..f6756ce 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.dao.VisitorApplyMapper; import com.casic.missiles.modular.dto.VisitorApplyRequest; import com.casic.missiles.modular.dto.hik.AppointmentFreeRegisterRequest; @@ -71,7 +72,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public int addVisitorApply(VisitorApply visitorApply) { + public Object addVisitorApply(VisitorApply visitorApply) { //无需判重,可预约多个时间段 AppointmentFreeRegisterRequest appointmentFreeRegisterRequest = new AppointmentFreeRegisterRequest(); //将时间转换为海康ISO8601格式 @@ -107,7 +108,7 @@ JSONObject resultJson = (JSONObject)JSONObject.parse(resultStr); if(!"0".equals(resultJson.get("code"))){ log.error("请求海康,预约免登记失败,海康response:{}", resultStr); - return 0; + return ResponseData.error(resultJson.getString("msg")); } JSONObject jsonData = (JSONObject)resultJson.get("data"); String appointRecordId = String.valueOf(jsonData.get("appointRecordId")); @@ -118,7 +119,11 @@ visitorApply.setOrderId(orderId); visitorApply.setPicUri(picUri); visitorApply.setServerIndexCode(svrIndexCode); - return visitorApplyMapper.insert(visitorApply); + if(visitorApplyMapper.insert(visitorApply) > 0){ + return ResponseData.success(); + }else{ + return ResponseData.error("新增访问申请异常"); + } } @Override @@ -189,7 +194,7 @@ } }else{ log.error("该访客:{},未在海康进行预约成功,无法取消预约", visitorApply.getVisitorName()); - return 0; + return visitorApplyMapper.deleteById(visitorApply.getId()); } return visitorApplyMapper.deleteById(visitorApply.getId()); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java index 269e3b0..937a9de 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java @@ -147,7 +147,7 @@ result.add(sdf.format(tempStart.getTime())); tempStart.add(Calendar.DAY_OF_YEAR, 1); } - result.add(endTime); + result.add(endTime.substring(0, endTime.indexOf(" "))); return result; } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 26e049d..86cefa6 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -93,12 +93,6 @@ mysql-connector-java ${mysql.driver.version} - - - com.dameng - DmJdbcDriver18 - 1.8 - com.casic casic-area-starter diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index 9588e28..7289258 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -11,8 +11,6 @@ /** * SpringBoot方式启动类 * - * @author lwh - * @Date 2021/06/06 12:06 */ @SpringBootApplication @EnableCaching diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java index f9523a6..0c5da7a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java @@ -16,7 +16,7 @@ List addVisitorApplyBatch(List results); - int addVisitorApply(VisitorApply visitorApply); + Object addVisitorApply(VisitorApply visitorApply); int updateVisitorApply(VisitorApply visitorApply); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java index 2580187..f370c06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -125,7 +126,7 @@ @Override public Object updateBlackInfo(BlackInfo blackInfo) { FaceSingleAddOrUpdateRequest faceSingleAddOrUpdateRequest = new FaceSingleAddOrUpdateRequest(); - faceSingleAddOrUpdateRequest.setFaceGroupIndexCode(blackInfo.getFaceGroupIndexCode()); + faceSingleAddOrUpdateRequest.setIndexCode(blackInfo.getIndexCode()); FaceInfo faceInfo = new FaceInfo(); faceInfo.setName(blackInfo.getBlackName()); faceInfo.setSex(blackInfo.getBlackSex()); @@ -133,8 +134,10 @@ faceInfo.setCertificateNum(blackInfo.getIdCardNo()); faceSingleAddOrUpdateRequest.setFaceInfo(faceInfo); FacePic facePic = new FacePic(); - facePic.setFaceBinaryData(blackInfo.getPicture()); - faceSingleAddOrUpdateRequest.setFacePic(facePic); + if(StringUtils.isNotEmpty(blackInfo.getPicture())){ + String substringPicture = blackInfo.getPicture().substring(blackInfo.getPicture().indexOf(",") + 1); + facePic.setFaceBinaryData(substringPicture); + } faceSingleAddOrUpdateRequest.setFacePic(facePic); String body = JSONObject.toJSONString(faceSingleAddOrUpdateRequest); String resultStr = HikUtil.hikApi(HikUri.FACE_SINGLE_UPDATE, body); @@ -143,6 +146,27 @@ log.error("请求海康,单个修改人脸失败,海康response:{}", resultStr); return ResponseData.error("单个修改人脸失败"); } + //海康更新接口不返回人脸url,需单独请求人脸图片接口获取 + FaceRequest request = new FaceRequest(); + List list = new ArrayList<>(); + list.add(blackInfo.getIndexCode()); + request.setIndexCodes(list); + String body1 = JSONObject.toJSONString(request); + String resultStr1 = HikUtil.hikApi("/api/frs/v1/face", body1); + JSONObject resultJson1 = (JSONObject)JSONObject.parse(resultStr1); + if (!"0".equals(resultJson1.get("code"))){ + log.error("请求海康,获取人脸图片失败,海康response:{}", resultStr1); + return ResponseData.error("单个修改人脸失败"); + } + JSONObject dataJson = (JSONObject)resultJson1.get("data"); + JSONArray dataArray = (JSONArray) dataJson.get("list"); + if(0 == dataArray.size()){ + return ResponseData.error("黑名单人员更新失败!"); + } + JSONObject jsonObject = (JSONObject) dataArray.get(0); + JSONObject facePicObject = jsonObject.getJSONObject("facePic"); + String faceUrl = facePicObject.getString("faceUrl"); + blackInfo.setPicture(faceUrl); if(blackInfoMapper.updateById(blackInfo) > 0){ return ResponseData.success(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java index e3dff1f..d311677 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java @@ -133,17 +133,6 @@ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); busConcentrator.setExpireDate(dateFormat.format(new Date())); } - if (StrUtil.isNotEmpty(busConcentrator.getQualityDate())) { - try { - new SimpleDateFormat("yyyy-MM-dd").parse(busConcentrator.getQualityDate()); - } catch (Exception e) { - list.add(" 第" + index[0] + "行,时间格式不正确"); - return; - } - } else { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - busConcentrator.setProductDate(dateFormat.format(new Date())); - } }); if (CollectionUtil.isNotEmpty(list)) { return list; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java index c399a7f..d29d38d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java @@ -75,6 +75,7 @@ caseInfo.setIsKeyArea(deviceInfo.getIsKeyArea()); caseInfo.setDetailLocation(deviceInfo.getDetailLocation()); caseInfo.setDrawNo(deviceInfo.getDrawNo()); //图纸编号 + caseInfo.setDescription("黑名单识别事件"); //变更描述 return caseInfo; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java index 4427f19..06f8bf3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java @@ -163,15 +163,23 @@ resultList.add(preMonthOrWeekCaseDTO); } } else { + List finalList = new ArrayList<>(); for (String date : dateList) { - List collect = resultList.stream().map(PreMonthOrWeekCaseDTO::getDimension).collect(Collectors.toList()); - if (!collect.contains(date)) { + Integer flag = 0; + for (PreMonthOrWeekCaseDTO dto : resultList) { + if(dto.getDimension().equals(date)){ + finalList.add(dto); + flag = 1; + } + } + if(flag == 0){ PreMonthOrWeekCaseDTO preMonthOrWeekCaseDTO = new PreMonthOrWeekCaseDTO(); preMonthOrWeekCaseDTO.setDimension(date); preMonthOrWeekCaseDTO.setQuantity(0); - resultList.add(preMonthOrWeekCaseDTO); + finalList.add(preMonthOrWeekCaseDTO); } } + return ResponseData.success(finalList); } return ResponseData.success(resultList); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java index 2c66ec1..97ed308 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java @@ -57,7 +57,7 @@ public List staffInfoListPage(Page page, StaffInfoRequest staffInfoRequest) { try { List pageList = staffInfoMapper.getStaffInfoListPage(page, staffInfoRequest); - pageList.parallelStream().forEach(staffInfo -> { + pageList.stream().forEach(staffInfo -> { staffInfo.setStaffTypeName(dictService.getDictNameByCode(SecurityEventDict.STAFF_TYPE, staffInfo.getStaffType())); staffInfo.setPicture(getPictureFromHik(staffInfo.getStaffCode())); }); @@ -86,7 +86,10 @@ personSingleAddOrUpdateRequest.setJobNo(staffInfo.getStaffCode()); List faces = new ArrayList<>(); PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(staffInfo.getPicture()); + if(StringUtils.isNotEmpty(staffInfo.getPicture())){ + String substringPicture = staffInfo.getPicture().substring(staffInfo.getPicture().indexOf(",") + 1); + faceData.setFaceData(substringPicture); + } faces.add(faceData); personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); @@ -137,6 +140,7 @@ log.error("请求海康,单个修改人员失败,海康response:{}", resultStr); return ResponseData.error("单个修改人员失败"); } + staffInfo.setPicture(""); if(staffInfoMapper.updateById(staffInfo) > 0){ return ResponseData.success(); } @@ -232,11 +236,11 @@ personSingleAddOrUpdateRequest.setPhoneNo(busConcentrator.getPhone()); personSingleAddOrUpdateRequest.setOrgIndexCode(busConcentrator.getStaffType()); personSingleAddOrUpdateRequest.setJobNo(busConcentrator.getStaffCode()); - List faces = new ArrayList<>(); - PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(busConcentrator.getPicture()); - faces.add(faceData); - personSingleAddOrUpdateRequest.setFaces(faces); +// List faces = new ArrayList<>(); +// PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); +// faceData.setFaceData(busConcentrator.getPicture()); +// faces.add(faceData); +// personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); personSingleAddOrUpdateRequest.setCertificateNo(busConcentrator.getStaffIdCard()); personList.add(personSingleAddOrUpdateRequest); @@ -336,8 +340,12 @@ if(0 == dataArray.size()){ return ""; } + log.info("请求海康,根据人员唯一字段获取人员详细信息response:{}", resultStr); JSONObject jsonObject = (JSONObject) dataArray.get(0); JSONArray personPhoto = (JSONArray) jsonObject.get("personPhoto"); + if(0 == personPhoto.size()){ + return ""; + } JSONObject photo = (JSONObject) personPhoto.get(0); String picUri = photo.getString("picUri"); String serverIndexCode = photo.getString("serverIndexCode"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java index aa23547..f6756ce 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.dao.VisitorApplyMapper; import com.casic.missiles.modular.dto.VisitorApplyRequest; import com.casic.missiles.modular.dto.hik.AppointmentFreeRegisterRequest; @@ -71,7 +72,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public int addVisitorApply(VisitorApply visitorApply) { + public Object addVisitorApply(VisitorApply visitorApply) { //无需判重,可预约多个时间段 AppointmentFreeRegisterRequest appointmentFreeRegisterRequest = new AppointmentFreeRegisterRequest(); //将时间转换为海康ISO8601格式 @@ -107,7 +108,7 @@ JSONObject resultJson = (JSONObject)JSONObject.parse(resultStr); if(!"0".equals(resultJson.get("code"))){ log.error("请求海康,预约免登记失败,海康response:{}", resultStr); - return 0; + return ResponseData.error(resultJson.getString("msg")); } JSONObject jsonData = (JSONObject)resultJson.get("data"); String appointRecordId = String.valueOf(jsonData.get("appointRecordId")); @@ -118,7 +119,11 @@ visitorApply.setOrderId(orderId); visitorApply.setPicUri(picUri); visitorApply.setServerIndexCode(svrIndexCode); - return visitorApplyMapper.insert(visitorApply); + if(visitorApplyMapper.insert(visitorApply) > 0){ + return ResponseData.success(); + }else{ + return ResponseData.error("新增访问申请异常"); + } } @Override @@ -189,7 +194,7 @@ } }else{ log.error("该访客:{},未在海康进行预约成功,无法取消预约", visitorApply.getVisitorName()); - return 0; + return visitorApplyMapper.deleteById(visitorApply.getId()); } return visitorApplyMapper.deleteById(visitorApply.getId()); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java index 269e3b0..937a9de 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java @@ -147,7 +147,7 @@ result.add(sdf.format(tempStart.getTime())); tempStart.add(Calendar.DAY_OF_YEAR, 1); } - result.add(endTime); + result.add(endTime.substring(0, endTime.indexOf(" "))); return result; } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 26e049d..86cefa6 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -93,12 +93,6 @@ mysql-connector-java ${mysql.driver.version} - - - com.dameng - DmJdbcDriver18 - 1.8 - com.casic casic-area-starter diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index 9588e28..7289258 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -11,8 +11,6 @@ /** * SpringBoot方式启动类 * - * @author lwh - * @Date 2021/06/06 12:06 */ @SpringBootApplication @EnableCaching diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 939e753..f19ec0f 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -18,7 +18,7 @@ casic: kaptcha-open: false #是否开启登录时验证码 (true/false) - no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved #flowable数据源和多数据源配置 db: init: diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java index f9523a6..0c5da7a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java @@ -16,7 +16,7 @@ List addVisitorApplyBatch(List results); - int addVisitorApply(VisitorApply visitorApply); + Object addVisitorApply(VisitorApply visitorApply); int updateVisitorApply(VisitorApply visitorApply); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java index 2580187..f370c06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -125,7 +126,7 @@ @Override public Object updateBlackInfo(BlackInfo blackInfo) { FaceSingleAddOrUpdateRequest faceSingleAddOrUpdateRequest = new FaceSingleAddOrUpdateRequest(); - faceSingleAddOrUpdateRequest.setFaceGroupIndexCode(blackInfo.getFaceGroupIndexCode()); + faceSingleAddOrUpdateRequest.setIndexCode(blackInfo.getIndexCode()); FaceInfo faceInfo = new FaceInfo(); faceInfo.setName(blackInfo.getBlackName()); faceInfo.setSex(blackInfo.getBlackSex()); @@ -133,8 +134,10 @@ faceInfo.setCertificateNum(blackInfo.getIdCardNo()); faceSingleAddOrUpdateRequest.setFaceInfo(faceInfo); FacePic facePic = new FacePic(); - facePic.setFaceBinaryData(blackInfo.getPicture()); - faceSingleAddOrUpdateRequest.setFacePic(facePic); + if(StringUtils.isNotEmpty(blackInfo.getPicture())){ + String substringPicture = blackInfo.getPicture().substring(blackInfo.getPicture().indexOf(",") + 1); + facePic.setFaceBinaryData(substringPicture); + } faceSingleAddOrUpdateRequest.setFacePic(facePic); String body = JSONObject.toJSONString(faceSingleAddOrUpdateRequest); String resultStr = HikUtil.hikApi(HikUri.FACE_SINGLE_UPDATE, body); @@ -143,6 +146,27 @@ log.error("请求海康,单个修改人脸失败,海康response:{}", resultStr); return ResponseData.error("单个修改人脸失败"); } + //海康更新接口不返回人脸url,需单独请求人脸图片接口获取 + FaceRequest request = new FaceRequest(); + List list = new ArrayList<>(); + list.add(blackInfo.getIndexCode()); + request.setIndexCodes(list); + String body1 = JSONObject.toJSONString(request); + String resultStr1 = HikUtil.hikApi("/api/frs/v1/face", body1); + JSONObject resultJson1 = (JSONObject)JSONObject.parse(resultStr1); + if (!"0".equals(resultJson1.get("code"))){ + log.error("请求海康,获取人脸图片失败,海康response:{}", resultStr1); + return ResponseData.error("单个修改人脸失败"); + } + JSONObject dataJson = (JSONObject)resultJson1.get("data"); + JSONArray dataArray = (JSONArray) dataJson.get("list"); + if(0 == dataArray.size()){ + return ResponseData.error("黑名单人员更新失败!"); + } + JSONObject jsonObject = (JSONObject) dataArray.get(0); + JSONObject facePicObject = jsonObject.getJSONObject("facePic"); + String faceUrl = facePicObject.getString("faceUrl"); + blackInfo.setPicture(faceUrl); if(blackInfoMapper.updateById(blackInfo) > 0){ return ResponseData.success(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java index e3dff1f..d311677 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java @@ -133,17 +133,6 @@ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); busConcentrator.setExpireDate(dateFormat.format(new Date())); } - if (StrUtil.isNotEmpty(busConcentrator.getQualityDate())) { - try { - new SimpleDateFormat("yyyy-MM-dd").parse(busConcentrator.getQualityDate()); - } catch (Exception e) { - list.add(" 第" + index[0] + "行,时间格式不正确"); - return; - } - } else { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - busConcentrator.setProductDate(dateFormat.format(new Date())); - } }); if (CollectionUtil.isNotEmpty(list)) { return list; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java index c399a7f..d29d38d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java @@ -75,6 +75,7 @@ caseInfo.setIsKeyArea(deviceInfo.getIsKeyArea()); caseInfo.setDetailLocation(deviceInfo.getDetailLocation()); caseInfo.setDrawNo(deviceInfo.getDrawNo()); //图纸编号 + caseInfo.setDescription("黑名单识别事件"); //变更描述 return caseInfo; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java index 4427f19..06f8bf3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java @@ -163,15 +163,23 @@ resultList.add(preMonthOrWeekCaseDTO); } } else { + List finalList = new ArrayList<>(); for (String date : dateList) { - List collect = resultList.stream().map(PreMonthOrWeekCaseDTO::getDimension).collect(Collectors.toList()); - if (!collect.contains(date)) { + Integer flag = 0; + for (PreMonthOrWeekCaseDTO dto : resultList) { + if(dto.getDimension().equals(date)){ + finalList.add(dto); + flag = 1; + } + } + if(flag == 0){ PreMonthOrWeekCaseDTO preMonthOrWeekCaseDTO = new PreMonthOrWeekCaseDTO(); preMonthOrWeekCaseDTO.setDimension(date); preMonthOrWeekCaseDTO.setQuantity(0); - resultList.add(preMonthOrWeekCaseDTO); + finalList.add(preMonthOrWeekCaseDTO); } } + return ResponseData.success(finalList); } return ResponseData.success(resultList); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java index 2c66ec1..97ed308 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java @@ -57,7 +57,7 @@ public List staffInfoListPage(Page page, StaffInfoRequest staffInfoRequest) { try { List pageList = staffInfoMapper.getStaffInfoListPage(page, staffInfoRequest); - pageList.parallelStream().forEach(staffInfo -> { + pageList.stream().forEach(staffInfo -> { staffInfo.setStaffTypeName(dictService.getDictNameByCode(SecurityEventDict.STAFF_TYPE, staffInfo.getStaffType())); staffInfo.setPicture(getPictureFromHik(staffInfo.getStaffCode())); }); @@ -86,7 +86,10 @@ personSingleAddOrUpdateRequest.setJobNo(staffInfo.getStaffCode()); List faces = new ArrayList<>(); PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(staffInfo.getPicture()); + if(StringUtils.isNotEmpty(staffInfo.getPicture())){ + String substringPicture = staffInfo.getPicture().substring(staffInfo.getPicture().indexOf(",") + 1); + faceData.setFaceData(substringPicture); + } faces.add(faceData); personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); @@ -137,6 +140,7 @@ log.error("请求海康,单个修改人员失败,海康response:{}", resultStr); return ResponseData.error("单个修改人员失败"); } + staffInfo.setPicture(""); if(staffInfoMapper.updateById(staffInfo) > 0){ return ResponseData.success(); } @@ -232,11 +236,11 @@ personSingleAddOrUpdateRequest.setPhoneNo(busConcentrator.getPhone()); personSingleAddOrUpdateRequest.setOrgIndexCode(busConcentrator.getStaffType()); personSingleAddOrUpdateRequest.setJobNo(busConcentrator.getStaffCode()); - List faces = new ArrayList<>(); - PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(busConcentrator.getPicture()); - faces.add(faceData); - personSingleAddOrUpdateRequest.setFaces(faces); +// List faces = new ArrayList<>(); +// PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); +// faceData.setFaceData(busConcentrator.getPicture()); +// faces.add(faceData); +// personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); personSingleAddOrUpdateRequest.setCertificateNo(busConcentrator.getStaffIdCard()); personList.add(personSingleAddOrUpdateRequest); @@ -336,8 +340,12 @@ if(0 == dataArray.size()){ return ""; } + log.info("请求海康,根据人员唯一字段获取人员详细信息response:{}", resultStr); JSONObject jsonObject = (JSONObject) dataArray.get(0); JSONArray personPhoto = (JSONArray) jsonObject.get("personPhoto"); + if(0 == personPhoto.size()){ + return ""; + } JSONObject photo = (JSONObject) personPhoto.get(0); String picUri = photo.getString("picUri"); String serverIndexCode = photo.getString("serverIndexCode"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java index aa23547..f6756ce 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.dao.VisitorApplyMapper; import com.casic.missiles.modular.dto.VisitorApplyRequest; import com.casic.missiles.modular.dto.hik.AppointmentFreeRegisterRequest; @@ -71,7 +72,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public int addVisitorApply(VisitorApply visitorApply) { + public Object addVisitorApply(VisitorApply visitorApply) { //无需判重,可预约多个时间段 AppointmentFreeRegisterRequest appointmentFreeRegisterRequest = new AppointmentFreeRegisterRequest(); //将时间转换为海康ISO8601格式 @@ -107,7 +108,7 @@ JSONObject resultJson = (JSONObject)JSONObject.parse(resultStr); if(!"0".equals(resultJson.get("code"))){ log.error("请求海康,预约免登记失败,海康response:{}", resultStr); - return 0; + return ResponseData.error(resultJson.getString("msg")); } JSONObject jsonData = (JSONObject)resultJson.get("data"); String appointRecordId = String.valueOf(jsonData.get("appointRecordId")); @@ -118,7 +119,11 @@ visitorApply.setOrderId(orderId); visitorApply.setPicUri(picUri); visitorApply.setServerIndexCode(svrIndexCode); - return visitorApplyMapper.insert(visitorApply); + if(visitorApplyMapper.insert(visitorApply) > 0){ + return ResponseData.success(); + }else{ + return ResponseData.error("新增访问申请异常"); + } } @Override @@ -189,7 +194,7 @@ } }else{ log.error("该访客:{},未在海康进行预约成功,无法取消预约", visitorApply.getVisitorName()); - return 0; + return visitorApplyMapper.deleteById(visitorApply.getId()); } return visitorApplyMapper.deleteById(visitorApply.getId()); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java index 269e3b0..937a9de 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java @@ -147,7 +147,7 @@ result.add(sdf.format(tempStart.getTime())); tempStart.add(Calendar.DAY_OF_YEAR, 1); } - result.add(endTime); + result.add(endTime.substring(0, endTime.indexOf(" "))); return result; } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 26e049d..86cefa6 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -93,12 +93,6 @@ mysql-connector-java ${mysql.driver.version} - - - com.dameng - DmJdbcDriver18 - 1.8 - com.casic casic-area-starter diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index 9588e28..7289258 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -11,8 +11,6 @@ /** * SpringBoot方式启动类 * - * @author lwh - * @Date 2021/06/06 12:06 */ @SpringBootApplication @EnableCaching diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 939e753..f19ec0f 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -18,7 +18,7 @@ casic: kaptcha-open: false #是否开启登录时验证码 (true/false) - no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved #flowable数据源和多数据源配置 db: init: diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml index 3a787b1..1c0bb6c 100644 --- a/casic-web/src/main/resources/config/application-test.yml +++ b/casic-web/src/main/resources/config/application-test.yml @@ -26,5 +26,4 @@ logging: level.root: info level.com.casic: debug - path: logs/ - file: missiles.log \ No newline at end of file + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java index f9523a6..0c5da7a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java @@ -16,7 +16,7 @@ List addVisitorApplyBatch(List results); - int addVisitorApply(VisitorApply visitorApply); + Object addVisitorApply(VisitorApply visitorApply); int updateVisitorApply(VisitorApply visitorApply); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java index 2580187..f370c06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -125,7 +126,7 @@ @Override public Object updateBlackInfo(BlackInfo blackInfo) { FaceSingleAddOrUpdateRequest faceSingleAddOrUpdateRequest = new FaceSingleAddOrUpdateRequest(); - faceSingleAddOrUpdateRequest.setFaceGroupIndexCode(blackInfo.getFaceGroupIndexCode()); + faceSingleAddOrUpdateRequest.setIndexCode(blackInfo.getIndexCode()); FaceInfo faceInfo = new FaceInfo(); faceInfo.setName(blackInfo.getBlackName()); faceInfo.setSex(blackInfo.getBlackSex()); @@ -133,8 +134,10 @@ faceInfo.setCertificateNum(blackInfo.getIdCardNo()); faceSingleAddOrUpdateRequest.setFaceInfo(faceInfo); FacePic facePic = new FacePic(); - facePic.setFaceBinaryData(blackInfo.getPicture()); - faceSingleAddOrUpdateRequest.setFacePic(facePic); + if(StringUtils.isNotEmpty(blackInfo.getPicture())){ + String substringPicture = blackInfo.getPicture().substring(blackInfo.getPicture().indexOf(",") + 1); + facePic.setFaceBinaryData(substringPicture); + } faceSingleAddOrUpdateRequest.setFacePic(facePic); String body = JSONObject.toJSONString(faceSingleAddOrUpdateRequest); String resultStr = HikUtil.hikApi(HikUri.FACE_SINGLE_UPDATE, body); @@ -143,6 +146,27 @@ log.error("请求海康,单个修改人脸失败,海康response:{}", resultStr); return ResponseData.error("单个修改人脸失败"); } + //海康更新接口不返回人脸url,需单独请求人脸图片接口获取 + FaceRequest request = new FaceRequest(); + List list = new ArrayList<>(); + list.add(blackInfo.getIndexCode()); + request.setIndexCodes(list); + String body1 = JSONObject.toJSONString(request); + String resultStr1 = HikUtil.hikApi("/api/frs/v1/face", body1); + JSONObject resultJson1 = (JSONObject)JSONObject.parse(resultStr1); + if (!"0".equals(resultJson1.get("code"))){ + log.error("请求海康,获取人脸图片失败,海康response:{}", resultStr1); + return ResponseData.error("单个修改人脸失败"); + } + JSONObject dataJson = (JSONObject)resultJson1.get("data"); + JSONArray dataArray = (JSONArray) dataJson.get("list"); + if(0 == dataArray.size()){ + return ResponseData.error("黑名单人员更新失败!"); + } + JSONObject jsonObject = (JSONObject) dataArray.get(0); + JSONObject facePicObject = jsonObject.getJSONObject("facePic"); + String faceUrl = facePicObject.getString("faceUrl"); + blackInfo.setPicture(faceUrl); if(blackInfoMapper.updateById(blackInfo) > 0){ return ResponseData.success(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java index e3dff1f..d311677 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java @@ -133,17 +133,6 @@ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); busConcentrator.setExpireDate(dateFormat.format(new Date())); } - if (StrUtil.isNotEmpty(busConcentrator.getQualityDate())) { - try { - new SimpleDateFormat("yyyy-MM-dd").parse(busConcentrator.getQualityDate()); - } catch (Exception e) { - list.add(" 第" + index[0] + "行,时间格式不正确"); - return; - } - } else { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - busConcentrator.setProductDate(dateFormat.format(new Date())); - } }); if (CollectionUtil.isNotEmpty(list)) { return list; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java index c399a7f..d29d38d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java @@ -75,6 +75,7 @@ caseInfo.setIsKeyArea(deviceInfo.getIsKeyArea()); caseInfo.setDetailLocation(deviceInfo.getDetailLocation()); caseInfo.setDrawNo(deviceInfo.getDrawNo()); //图纸编号 + caseInfo.setDescription("黑名单识别事件"); //变更描述 return caseInfo; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java index 4427f19..06f8bf3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java @@ -163,15 +163,23 @@ resultList.add(preMonthOrWeekCaseDTO); } } else { + List finalList = new ArrayList<>(); for (String date : dateList) { - List collect = resultList.stream().map(PreMonthOrWeekCaseDTO::getDimension).collect(Collectors.toList()); - if (!collect.contains(date)) { + Integer flag = 0; + for (PreMonthOrWeekCaseDTO dto : resultList) { + if(dto.getDimension().equals(date)){ + finalList.add(dto); + flag = 1; + } + } + if(flag == 0){ PreMonthOrWeekCaseDTO preMonthOrWeekCaseDTO = new PreMonthOrWeekCaseDTO(); preMonthOrWeekCaseDTO.setDimension(date); preMonthOrWeekCaseDTO.setQuantity(0); - resultList.add(preMonthOrWeekCaseDTO); + finalList.add(preMonthOrWeekCaseDTO); } } + return ResponseData.success(finalList); } return ResponseData.success(resultList); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java index 2c66ec1..97ed308 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java @@ -57,7 +57,7 @@ public List staffInfoListPage(Page page, StaffInfoRequest staffInfoRequest) { try { List pageList = staffInfoMapper.getStaffInfoListPage(page, staffInfoRequest); - pageList.parallelStream().forEach(staffInfo -> { + pageList.stream().forEach(staffInfo -> { staffInfo.setStaffTypeName(dictService.getDictNameByCode(SecurityEventDict.STAFF_TYPE, staffInfo.getStaffType())); staffInfo.setPicture(getPictureFromHik(staffInfo.getStaffCode())); }); @@ -86,7 +86,10 @@ personSingleAddOrUpdateRequest.setJobNo(staffInfo.getStaffCode()); List faces = new ArrayList<>(); PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(staffInfo.getPicture()); + if(StringUtils.isNotEmpty(staffInfo.getPicture())){ + String substringPicture = staffInfo.getPicture().substring(staffInfo.getPicture().indexOf(",") + 1); + faceData.setFaceData(substringPicture); + } faces.add(faceData); personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); @@ -137,6 +140,7 @@ log.error("请求海康,单个修改人员失败,海康response:{}", resultStr); return ResponseData.error("单个修改人员失败"); } + staffInfo.setPicture(""); if(staffInfoMapper.updateById(staffInfo) > 0){ return ResponseData.success(); } @@ -232,11 +236,11 @@ personSingleAddOrUpdateRequest.setPhoneNo(busConcentrator.getPhone()); personSingleAddOrUpdateRequest.setOrgIndexCode(busConcentrator.getStaffType()); personSingleAddOrUpdateRequest.setJobNo(busConcentrator.getStaffCode()); - List faces = new ArrayList<>(); - PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(busConcentrator.getPicture()); - faces.add(faceData); - personSingleAddOrUpdateRequest.setFaces(faces); +// List faces = new ArrayList<>(); +// PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); +// faceData.setFaceData(busConcentrator.getPicture()); +// faces.add(faceData); +// personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); personSingleAddOrUpdateRequest.setCertificateNo(busConcentrator.getStaffIdCard()); personList.add(personSingleAddOrUpdateRequest); @@ -336,8 +340,12 @@ if(0 == dataArray.size()){ return ""; } + log.info("请求海康,根据人员唯一字段获取人员详细信息response:{}", resultStr); JSONObject jsonObject = (JSONObject) dataArray.get(0); JSONArray personPhoto = (JSONArray) jsonObject.get("personPhoto"); + if(0 == personPhoto.size()){ + return ""; + } JSONObject photo = (JSONObject) personPhoto.get(0); String picUri = photo.getString("picUri"); String serverIndexCode = photo.getString("serverIndexCode"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java index aa23547..f6756ce 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.dao.VisitorApplyMapper; import com.casic.missiles.modular.dto.VisitorApplyRequest; import com.casic.missiles.modular.dto.hik.AppointmentFreeRegisterRequest; @@ -71,7 +72,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public int addVisitorApply(VisitorApply visitorApply) { + public Object addVisitorApply(VisitorApply visitorApply) { //无需判重,可预约多个时间段 AppointmentFreeRegisterRequest appointmentFreeRegisterRequest = new AppointmentFreeRegisterRequest(); //将时间转换为海康ISO8601格式 @@ -107,7 +108,7 @@ JSONObject resultJson = (JSONObject)JSONObject.parse(resultStr); if(!"0".equals(resultJson.get("code"))){ log.error("请求海康,预约免登记失败,海康response:{}", resultStr); - return 0; + return ResponseData.error(resultJson.getString("msg")); } JSONObject jsonData = (JSONObject)resultJson.get("data"); String appointRecordId = String.valueOf(jsonData.get("appointRecordId")); @@ -118,7 +119,11 @@ visitorApply.setOrderId(orderId); visitorApply.setPicUri(picUri); visitorApply.setServerIndexCode(svrIndexCode); - return visitorApplyMapper.insert(visitorApply); + if(visitorApplyMapper.insert(visitorApply) > 0){ + return ResponseData.success(); + }else{ + return ResponseData.error("新增访问申请异常"); + } } @Override @@ -189,7 +194,7 @@ } }else{ log.error("该访客:{},未在海康进行预约成功,无法取消预约", visitorApply.getVisitorName()); - return 0; + return visitorApplyMapper.deleteById(visitorApply.getId()); } return visitorApplyMapper.deleteById(visitorApply.getId()); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java index 269e3b0..937a9de 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java @@ -147,7 +147,7 @@ result.add(sdf.format(tempStart.getTime())); tempStart.add(Calendar.DAY_OF_YEAR, 1); } - result.add(endTime); + result.add(endTime.substring(0, endTime.indexOf(" "))); return result; } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 26e049d..86cefa6 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -93,12 +93,6 @@ mysql-connector-java ${mysql.driver.version} - - - com.dameng - DmJdbcDriver18 - 1.8 - com.casic casic-area-starter diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index 9588e28..7289258 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -11,8 +11,6 @@ /** * SpringBoot方式启动类 * - * @author lwh - * @Date 2021/06/06 12:06 */ @SpringBootApplication @EnableCaching diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 939e753..f19ec0f 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -18,7 +18,7 @@ casic: kaptcha-open: false #是否开启登录时验证码 (true/false) - no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved #flowable数据源和多数据源配置 db: init: diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml index 3a787b1..1c0bb6c 100644 --- a/casic-web/src/main/resources/config/application-test.yml +++ b/casic-web/src/main/resources/config/application-test.yml @@ -26,5 +26,4 @@ logging: level.root: info level.com.casic: debug - path: logs/ - file: missiles.log \ No newline at end of file + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 9dc8566..d410e56 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dev + active: prod servlet: multipart: max-file-size: 50MB diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java index f9523a6..0c5da7a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java @@ -16,7 +16,7 @@ List addVisitorApplyBatch(List results); - int addVisitorApply(VisitorApply visitorApply); + Object addVisitorApply(VisitorApply visitorApply); int updateVisitorApply(VisitorApply visitorApply); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java index 2580187..f370c06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -125,7 +126,7 @@ @Override public Object updateBlackInfo(BlackInfo blackInfo) { FaceSingleAddOrUpdateRequest faceSingleAddOrUpdateRequest = new FaceSingleAddOrUpdateRequest(); - faceSingleAddOrUpdateRequest.setFaceGroupIndexCode(blackInfo.getFaceGroupIndexCode()); + faceSingleAddOrUpdateRequest.setIndexCode(blackInfo.getIndexCode()); FaceInfo faceInfo = new FaceInfo(); faceInfo.setName(blackInfo.getBlackName()); faceInfo.setSex(blackInfo.getBlackSex()); @@ -133,8 +134,10 @@ faceInfo.setCertificateNum(blackInfo.getIdCardNo()); faceSingleAddOrUpdateRequest.setFaceInfo(faceInfo); FacePic facePic = new FacePic(); - facePic.setFaceBinaryData(blackInfo.getPicture()); - faceSingleAddOrUpdateRequest.setFacePic(facePic); + if(StringUtils.isNotEmpty(blackInfo.getPicture())){ + String substringPicture = blackInfo.getPicture().substring(blackInfo.getPicture().indexOf(",") + 1); + facePic.setFaceBinaryData(substringPicture); + } faceSingleAddOrUpdateRequest.setFacePic(facePic); String body = JSONObject.toJSONString(faceSingleAddOrUpdateRequest); String resultStr = HikUtil.hikApi(HikUri.FACE_SINGLE_UPDATE, body); @@ -143,6 +146,27 @@ log.error("请求海康,单个修改人脸失败,海康response:{}", resultStr); return ResponseData.error("单个修改人脸失败"); } + //海康更新接口不返回人脸url,需单独请求人脸图片接口获取 + FaceRequest request = new FaceRequest(); + List list = new ArrayList<>(); + list.add(blackInfo.getIndexCode()); + request.setIndexCodes(list); + String body1 = JSONObject.toJSONString(request); + String resultStr1 = HikUtil.hikApi("/api/frs/v1/face", body1); + JSONObject resultJson1 = (JSONObject)JSONObject.parse(resultStr1); + if (!"0".equals(resultJson1.get("code"))){ + log.error("请求海康,获取人脸图片失败,海康response:{}", resultStr1); + return ResponseData.error("单个修改人脸失败"); + } + JSONObject dataJson = (JSONObject)resultJson1.get("data"); + JSONArray dataArray = (JSONArray) dataJson.get("list"); + if(0 == dataArray.size()){ + return ResponseData.error("黑名单人员更新失败!"); + } + JSONObject jsonObject = (JSONObject) dataArray.get(0); + JSONObject facePicObject = jsonObject.getJSONObject("facePic"); + String faceUrl = facePicObject.getString("faceUrl"); + blackInfo.setPicture(faceUrl); if(blackInfoMapper.updateById(blackInfo) > 0){ return ResponseData.success(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java index e3dff1f..d311677 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java @@ -133,17 +133,6 @@ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); busConcentrator.setExpireDate(dateFormat.format(new Date())); } - if (StrUtil.isNotEmpty(busConcentrator.getQualityDate())) { - try { - new SimpleDateFormat("yyyy-MM-dd").parse(busConcentrator.getQualityDate()); - } catch (Exception e) { - list.add(" 第" + index[0] + "行,时间格式不正确"); - return; - } - } else { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - busConcentrator.setProductDate(dateFormat.format(new Date())); - } }); if (CollectionUtil.isNotEmpty(list)) { return list; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java index c399a7f..d29d38d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java @@ -75,6 +75,7 @@ caseInfo.setIsKeyArea(deviceInfo.getIsKeyArea()); caseInfo.setDetailLocation(deviceInfo.getDetailLocation()); caseInfo.setDrawNo(deviceInfo.getDrawNo()); //图纸编号 + caseInfo.setDescription("黑名单识别事件"); //变更描述 return caseInfo; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java index 4427f19..06f8bf3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java @@ -163,15 +163,23 @@ resultList.add(preMonthOrWeekCaseDTO); } } else { + List finalList = new ArrayList<>(); for (String date : dateList) { - List collect = resultList.stream().map(PreMonthOrWeekCaseDTO::getDimension).collect(Collectors.toList()); - if (!collect.contains(date)) { + Integer flag = 0; + for (PreMonthOrWeekCaseDTO dto : resultList) { + if(dto.getDimension().equals(date)){ + finalList.add(dto); + flag = 1; + } + } + if(flag == 0){ PreMonthOrWeekCaseDTO preMonthOrWeekCaseDTO = new PreMonthOrWeekCaseDTO(); preMonthOrWeekCaseDTO.setDimension(date); preMonthOrWeekCaseDTO.setQuantity(0); - resultList.add(preMonthOrWeekCaseDTO); + finalList.add(preMonthOrWeekCaseDTO); } } + return ResponseData.success(finalList); } return ResponseData.success(resultList); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java index 2c66ec1..97ed308 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java @@ -57,7 +57,7 @@ public List staffInfoListPage(Page page, StaffInfoRequest staffInfoRequest) { try { List pageList = staffInfoMapper.getStaffInfoListPage(page, staffInfoRequest); - pageList.parallelStream().forEach(staffInfo -> { + pageList.stream().forEach(staffInfo -> { staffInfo.setStaffTypeName(dictService.getDictNameByCode(SecurityEventDict.STAFF_TYPE, staffInfo.getStaffType())); staffInfo.setPicture(getPictureFromHik(staffInfo.getStaffCode())); }); @@ -86,7 +86,10 @@ personSingleAddOrUpdateRequest.setJobNo(staffInfo.getStaffCode()); List faces = new ArrayList<>(); PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(staffInfo.getPicture()); + if(StringUtils.isNotEmpty(staffInfo.getPicture())){ + String substringPicture = staffInfo.getPicture().substring(staffInfo.getPicture().indexOf(",") + 1); + faceData.setFaceData(substringPicture); + } faces.add(faceData); personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); @@ -137,6 +140,7 @@ log.error("请求海康,单个修改人员失败,海康response:{}", resultStr); return ResponseData.error("单个修改人员失败"); } + staffInfo.setPicture(""); if(staffInfoMapper.updateById(staffInfo) > 0){ return ResponseData.success(); } @@ -232,11 +236,11 @@ personSingleAddOrUpdateRequest.setPhoneNo(busConcentrator.getPhone()); personSingleAddOrUpdateRequest.setOrgIndexCode(busConcentrator.getStaffType()); personSingleAddOrUpdateRequest.setJobNo(busConcentrator.getStaffCode()); - List faces = new ArrayList<>(); - PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(busConcentrator.getPicture()); - faces.add(faceData); - personSingleAddOrUpdateRequest.setFaces(faces); +// List faces = new ArrayList<>(); +// PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); +// faceData.setFaceData(busConcentrator.getPicture()); +// faces.add(faceData); +// personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); personSingleAddOrUpdateRequest.setCertificateNo(busConcentrator.getStaffIdCard()); personList.add(personSingleAddOrUpdateRequest); @@ -336,8 +340,12 @@ if(0 == dataArray.size()){ return ""; } + log.info("请求海康,根据人员唯一字段获取人员详细信息response:{}", resultStr); JSONObject jsonObject = (JSONObject) dataArray.get(0); JSONArray personPhoto = (JSONArray) jsonObject.get("personPhoto"); + if(0 == personPhoto.size()){ + return ""; + } JSONObject photo = (JSONObject) personPhoto.get(0); String picUri = photo.getString("picUri"); String serverIndexCode = photo.getString("serverIndexCode"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java index aa23547..f6756ce 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.dao.VisitorApplyMapper; import com.casic.missiles.modular.dto.VisitorApplyRequest; import com.casic.missiles.modular.dto.hik.AppointmentFreeRegisterRequest; @@ -71,7 +72,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public int addVisitorApply(VisitorApply visitorApply) { + public Object addVisitorApply(VisitorApply visitorApply) { //无需判重,可预约多个时间段 AppointmentFreeRegisterRequest appointmentFreeRegisterRequest = new AppointmentFreeRegisterRequest(); //将时间转换为海康ISO8601格式 @@ -107,7 +108,7 @@ JSONObject resultJson = (JSONObject)JSONObject.parse(resultStr); if(!"0".equals(resultJson.get("code"))){ log.error("请求海康,预约免登记失败,海康response:{}", resultStr); - return 0; + return ResponseData.error(resultJson.getString("msg")); } JSONObject jsonData = (JSONObject)resultJson.get("data"); String appointRecordId = String.valueOf(jsonData.get("appointRecordId")); @@ -118,7 +119,11 @@ visitorApply.setOrderId(orderId); visitorApply.setPicUri(picUri); visitorApply.setServerIndexCode(svrIndexCode); - return visitorApplyMapper.insert(visitorApply); + if(visitorApplyMapper.insert(visitorApply) > 0){ + return ResponseData.success(); + }else{ + return ResponseData.error("新增访问申请异常"); + } } @Override @@ -189,7 +194,7 @@ } }else{ log.error("该访客:{},未在海康进行预约成功,无法取消预约", visitorApply.getVisitorName()); - return 0; + return visitorApplyMapper.deleteById(visitorApply.getId()); } return visitorApplyMapper.deleteById(visitorApply.getId()); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java index 269e3b0..937a9de 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java @@ -147,7 +147,7 @@ result.add(sdf.format(tempStart.getTime())); tempStart.add(Calendar.DAY_OF_YEAR, 1); } - result.add(endTime); + result.add(endTime.substring(0, endTime.indexOf(" "))); return result; } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 26e049d..86cefa6 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -93,12 +93,6 @@ mysql-connector-java ${mysql.driver.version} - - - com.dameng - DmJdbcDriver18 - 1.8 - com.casic casic-area-starter diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index 9588e28..7289258 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -11,8 +11,6 @@ /** * SpringBoot方式启动类 * - * @author lwh - * @Date 2021/06/06 12:06 */ @SpringBootApplication @EnableCaching diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 939e753..f19ec0f 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -18,7 +18,7 @@ casic: kaptcha-open: false #是否开启登录时验证码 (true/false) - no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved #flowable数据源和多数据源配置 db: init: diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml index 3a787b1..1c0bb6c 100644 --- a/casic-web/src/main/resources/config/application-test.yml +++ b/casic-web/src/main/resources/config/application-test.yml @@ -26,5 +26,4 @@ logging: level.root: info level.com.casic: debug - path: logs/ - file: missiles.log \ No newline at end of file + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 9dc8566..d410e56 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dev + active: prod servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/DeviceTemp.xlsx b/casic-web/src/main/resources/config/export/DeviceTemp.xlsx index fd4233f..6bd0b54 100644 --- a/casic-web/src/main/resources/config/export/DeviceTemp.xlsx +++ b/casic-web/src/main/resources/config/export/DeviceTemp.xlsx Binary files differ diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java index f9523a6..0c5da7a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java @@ -16,7 +16,7 @@ List addVisitorApplyBatch(List results); - int addVisitorApply(VisitorApply visitorApply); + Object addVisitorApply(VisitorApply visitorApply); int updateVisitorApply(VisitorApply visitorApply); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java index 2580187..f370c06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -125,7 +126,7 @@ @Override public Object updateBlackInfo(BlackInfo blackInfo) { FaceSingleAddOrUpdateRequest faceSingleAddOrUpdateRequest = new FaceSingleAddOrUpdateRequest(); - faceSingleAddOrUpdateRequest.setFaceGroupIndexCode(blackInfo.getFaceGroupIndexCode()); + faceSingleAddOrUpdateRequest.setIndexCode(blackInfo.getIndexCode()); FaceInfo faceInfo = new FaceInfo(); faceInfo.setName(blackInfo.getBlackName()); faceInfo.setSex(blackInfo.getBlackSex()); @@ -133,8 +134,10 @@ faceInfo.setCertificateNum(blackInfo.getIdCardNo()); faceSingleAddOrUpdateRequest.setFaceInfo(faceInfo); FacePic facePic = new FacePic(); - facePic.setFaceBinaryData(blackInfo.getPicture()); - faceSingleAddOrUpdateRequest.setFacePic(facePic); + if(StringUtils.isNotEmpty(blackInfo.getPicture())){ + String substringPicture = blackInfo.getPicture().substring(blackInfo.getPicture().indexOf(",") + 1); + facePic.setFaceBinaryData(substringPicture); + } faceSingleAddOrUpdateRequest.setFacePic(facePic); String body = JSONObject.toJSONString(faceSingleAddOrUpdateRequest); String resultStr = HikUtil.hikApi(HikUri.FACE_SINGLE_UPDATE, body); @@ -143,6 +146,27 @@ log.error("请求海康,单个修改人脸失败,海康response:{}", resultStr); return ResponseData.error("单个修改人脸失败"); } + //海康更新接口不返回人脸url,需单独请求人脸图片接口获取 + FaceRequest request = new FaceRequest(); + List list = new ArrayList<>(); + list.add(blackInfo.getIndexCode()); + request.setIndexCodes(list); + String body1 = JSONObject.toJSONString(request); + String resultStr1 = HikUtil.hikApi("/api/frs/v1/face", body1); + JSONObject resultJson1 = (JSONObject)JSONObject.parse(resultStr1); + if (!"0".equals(resultJson1.get("code"))){ + log.error("请求海康,获取人脸图片失败,海康response:{}", resultStr1); + return ResponseData.error("单个修改人脸失败"); + } + JSONObject dataJson = (JSONObject)resultJson1.get("data"); + JSONArray dataArray = (JSONArray) dataJson.get("list"); + if(0 == dataArray.size()){ + return ResponseData.error("黑名单人员更新失败!"); + } + JSONObject jsonObject = (JSONObject) dataArray.get(0); + JSONObject facePicObject = jsonObject.getJSONObject("facePic"); + String faceUrl = facePicObject.getString("faceUrl"); + blackInfo.setPicture(faceUrl); if(blackInfoMapper.updateById(blackInfo) > 0){ return ResponseData.success(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java index e3dff1f..d311677 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java @@ -133,17 +133,6 @@ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); busConcentrator.setExpireDate(dateFormat.format(new Date())); } - if (StrUtil.isNotEmpty(busConcentrator.getQualityDate())) { - try { - new SimpleDateFormat("yyyy-MM-dd").parse(busConcentrator.getQualityDate()); - } catch (Exception e) { - list.add(" 第" + index[0] + "行,时间格式不正确"); - return; - } - } else { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - busConcentrator.setProductDate(dateFormat.format(new Date())); - } }); if (CollectionUtil.isNotEmpty(list)) { return list; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java index c399a7f..d29d38d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java @@ -75,6 +75,7 @@ caseInfo.setIsKeyArea(deviceInfo.getIsKeyArea()); caseInfo.setDetailLocation(deviceInfo.getDetailLocation()); caseInfo.setDrawNo(deviceInfo.getDrawNo()); //图纸编号 + caseInfo.setDescription("黑名单识别事件"); //变更描述 return caseInfo; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java index 4427f19..06f8bf3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java @@ -163,15 +163,23 @@ resultList.add(preMonthOrWeekCaseDTO); } } else { + List finalList = new ArrayList<>(); for (String date : dateList) { - List collect = resultList.stream().map(PreMonthOrWeekCaseDTO::getDimension).collect(Collectors.toList()); - if (!collect.contains(date)) { + Integer flag = 0; + for (PreMonthOrWeekCaseDTO dto : resultList) { + if(dto.getDimension().equals(date)){ + finalList.add(dto); + flag = 1; + } + } + if(flag == 0){ PreMonthOrWeekCaseDTO preMonthOrWeekCaseDTO = new PreMonthOrWeekCaseDTO(); preMonthOrWeekCaseDTO.setDimension(date); preMonthOrWeekCaseDTO.setQuantity(0); - resultList.add(preMonthOrWeekCaseDTO); + finalList.add(preMonthOrWeekCaseDTO); } } + return ResponseData.success(finalList); } return ResponseData.success(resultList); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java index 2c66ec1..97ed308 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java @@ -57,7 +57,7 @@ public List staffInfoListPage(Page page, StaffInfoRequest staffInfoRequest) { try { List pageList = staffInfoMapper.getStaffInfoListPage(page, staffInfoRequest); - pageList.parallelStream().forEach(staffInfo -> { + pageList.stream().forEach(staffInfo -> { staffInfo.setStaffTypeName(dictService.getDictNameByCode(SecurityEventDict.STAFF_TYPE, staffInfo.getStaffType())); staffInfo.setPicture(getPictureFromHik(staffInfo.getStaffCode())); }); @@ -86,7 +86,10 @@ personSingleAddOrUpdateRequest.setJobNo(staffInfo.getStaffCode()); List faces = new ArrayList<>(); PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(staffInfo.getPicture()); + if(StringUtils.isNotEmpty(staffInfo.getPicture())){ + String substringPicture = staffInfo.getPicture().substring(staffInfo.getPicture().indexOf(",") + 1); + faceData.setFaceData(substringPicture); + } faces.add(faceData); personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); @@ -137,6 +140,7 @@ log.error("请求海康,单个修改人员失败,海康response:{}", resultStr); return ResponseData.error("单个修改人员失败"); } + staffInfo.setPicture(""); if(staffInfoMapper.updateById(staffInfo) > 0){ return ResponseData.success(); } @@ -232,11 +236,11 @@ personSingleAddOrUpdateRequest.setPhoneNo(busConcentrator.getPhone()); personSingleAddOrUpdateRequest.setOrgIndexCode(busConcentrator.getStaffType()); personSingleAddOrUpdateRequest.setJobNo(busConcentrator.getStaffCode()); - List faces = new ArrayList<>(); - PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(busConcentrator.getPicture()); - faces.add(faceData); - personSingleAddOrUpdateRequest.setFaces(faces); +// List faces = new ArrayList<>(); +// PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); +// faceData.setFaceData(busConcentrator.getPicture()); +// faces.add(faceData); +// personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); personSingleAddOrUpdateRequest.setCertificateNo(busConcentrator.getStaffIdCard()); personList.add(personSingleAddOrUpdateRequest); @@ -336,8 +340,12 @@ if(0 == dataArray.size()){ return ""; } + log.info("请求海康,根据人员唯一字段获取人员详细信息response:{}", resultStr); JSONObject jsonObject = (JSONObject) dataArray.get(0); JSONArray personPhoto = (JSONArray) jsonObject.get("personPhoto"); + if(0 == personPhoto.size()){ + return ""; + } JSONObject photo = (JSONObject) personPhoto.get(0); String picUri = photo.getString("picUri"); String serverIndexCode = photo.getString("serverIndexCode"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java index aa23547..f6756ce 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.dao.VisitorApplyMapper; import com.casic.missiles.modular.dto.VisitorApplyRequest; import com.casic.missiles.modular.dto.hik.AppointmentFreeRegisterRequest; @@ -71,7 +72,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public int addVisitorApply(VisitorApply visitorApply) { + public Object addVisitorApply(VisitorApply visitorApply) { //无需判重,可预约多个时间段 AppointmentFreeRegisterRequest appointmentFreeRegisterRequest = new AppointmentFreeRegisterRequest(); //将时间转换为海康ISO8601格式 @@ -107,7 +108,7 @@ JSONObject resultJson = (JSONObject)JSONObject.parse(resultStr); if(!"0".equals(resultJson.get("code"))){ log.error("请求海康,预约免登记失败,海康response:{}", resultStr); - return 0; + return ResponseData.error(resultJson.getString("msg")); } JSONObject jsonData = (JSONObject)resultJson.get("data"); String appointRecordId = String.valueOf(jsonData.get("appointRecordId")); @@ -118,7 +119,11 @@ visitorApply.setOrderId(orderId); visitorApply.setPicUri(picUri); visitorApply.setServerIndexCode(svrIndexCode); - return visitorApplyMapper.insert(visitorApply); + if(visitorApplyMapper.insert(visitorApply) > 0){ + return ResponseData.success(); + }else{ + return ResponseData.error("新增访问申请异常"); + } } @Override @@ -189,7 +194,7 @@ } }else{ log.error("该访客:{},未在海康进行预约成功,无法取消预约", visitorApply.getVisitorName()); - return 0; + return visitorApplyMapper.deleteById(visitorApply.getId()); } return visitorApplyMapper.deleteById(visitorApply.getId()); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java index 269e3b0..937a9de 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java @@ -147,7 +147,7 @@ result.add(sdf.format(tempStart.getTime())); tempStart.add(Calendar.DAY_OF_YEAR, 1); } - result.add(endTime); + result.add(endTime.substring(0, endTime.indexOf(" "))); return result; } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 26e049d..86cefa6 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -93,12 +93,6 @@ mysql-connector-java ${mysql.driver.version} - - - com.dameng - DmJdbcDriver18 - 1.8 - com.casic casic-area-starter diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index 9588e28..7289258 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -11,8 +11,6 @@ /** * SpringBoot方式启动类 * - * @author lwh - * @Date 2021/06/06 12:06 */ @SpringBootApplication @EnableCaching diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 939e753..f19ec0f 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -18,7 +18,7 @@ casic: kaptcha-open: false #是否开启登录时验证码 (true/false) - no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved #flowable数据源和多数据源配置 db: init: diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml index 3a787b1..1c0bb6c 100644 --- a/casic-web/src/main/resources/config/application-test.yml +++ b/casic-web/src/main/resources/config/application-test.yml @@ -26,5 +26,4 @@ logging: level.root: info level.com.casic: debug - path: logs/ - file: missiles.log \ No newline at end of file + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 9dc8566..d410e56 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dev + active: prod servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/DeviceTemp.xlsx b/casic-web/src/main/resources/config/export/DeviceTemp.xlsx index fd4233f..6bd0b54 100644 --- a/casic-web/src/main/resources/config/export/DeviceTemp.xlsx +++ b/casic-web/src/main/resources/config/export/DeviceTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/FireEquipTemp.xlsx b/casic-web/src/main/resources/config/export/FireEquipTemp.xlsx index 8a89b14..05a2fc2 100644 --- a/casic-web/src/main/resources/config/export/FireEquipTemp.xlsx +++ b/casic-web/src/main/resources/config/export/FireEquipTemp.xlsx Binary files differ diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java index f9523a6..0c5da7a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java @@ -16,7 +16,7 @@ List addVisitorApplyBatch(List results); - int addVisitorApply(VisitorApply visitorApply); + Object addVisitorApply(VisitorApply visitorApply); int updateVisitorApply(VisitorApply visitorApply); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java index 2580187..f370c06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -125,7 +126,7 @@ @Override public Object updateBlackInfo(BlackInfo blackInfo) { FaceSingleAddOrUpdateRequest faceSingleAddOrUpdateRequest = new FaceSingleAddOrUpdateRequest(); - faceSingleAddOrUpdateRequest.setFaceGroupIndexCode(blackInfo.getFaceGroupIndexCode()); + faceSingleAddOrUpdateRequest.setIndexCode(blackInfo.getIndexCode()); FaceInfo faceInfo = new FaceInfo(); faceInfo.setName(blackInfo.getBlackName()); faceInfo.setSex(blackInfo.getBlackSex()); @@ -133,8 +134,10 @@ faceInfo.setCertificateNum(blackInfo.getIdCardNo()); faceSingleAddOrUpdateRequest.setFaceInfo(faceInfo); FacePic facePic = new FacePic(); - facePic.setFaceBinaryData(blackInfo.getPicture()); - faceSingleAddOrUpdateRequest.setFacePic(facePic); + if(StringUtils.isNotEmpty(blackInfo.getPicture())){ + String substringPicture = blackInfo.getPicture().substring(blackInfo.getPicture().indexOf(",") + 1); + facePic.setFaceBinaryData(substringPicture); + } faceSingleAddOrUpdateRequest.setFacePic(facePic); String body = JSONObject.toJSONString(faceSingleAddOrUpdateRequest); String resultStr = HikUtil.hikApi(HikUri.FACE_SINGLE_UPDATE, body); @@ -143,6 +146,27 @@ log.error("请求海康,单个修改人脸失败,海康response:{}", resultStr); return ResponseData.error("单个修改人脸失败"); } + //海康更新接口不返回人脸url,需单独请求人脸图片接口获取 + FaceRequest request = new FaceRequest(); + List list = new ArrayList<>(); + list.add(blackInfo.getIndexCode()); + request.setIndexCodes(list); + String body1 = JSONObject.toJSONString(request); + String resultStr1 = HikUtil.hikApi("/api/frs/v1/face", body1); + JSONObject resultJson1 = (JSONObject)JSONObject.parse(resultStr1); + if (!"0".equals(resultJson1.get("code"))){ + log.error("请求海康,获取人脸图片失败,海康response:{}", resultStr1); + return ResponseData.error("单个修改人脸失败"); + } + JSONObject dataJson = (JSONObject)resultJson1.get("data"); + JSONArray dataArray = (JSONArray) dataJson.get("list"); + if(0 == dataArray.size()){ + return ResponseData.error("黑名单人员更新失败!"); + } + JSONObject jsonObject = (JSONObject) dataArray.get(0); + JSONObject facePicObject = jsonObject.getJSONObject("facePic"); + String faceUrl = facePicObject.getString("faceUrl"); + blackInfo.setPicture(faceUrl); if(blackInfoMapper.updateById(blackInfo) > 0){ return ResponseData.success(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java index e3dff1f..d311677 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java @@ -133,17 +133,6 @@ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); busConcentrator.setExpireDate(dateFormat.format(new Date())); } - if (StrUtil.isNotEmpty(busConcentrator.getQualityDate())) { - try { - new SimpleDateFormat("yyyy-MM-dd").parse(busConcentrator.getQualityDate()); - } catch (Exception e) { - list.add(" 第" + index[0] + "行,时间格式不正确"); - return; - } - } else { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - busConcentrator.setProductDate(dateFormat.format(new Date())); - } }); if (CollectionUtil.isNotEmpty(list)) { return list; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java index c399a7f..d29d38d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java @@ -75,6 +75,7 @@ caseInfo.setIsKeyArea(deviceInfo.getIsKeyArea()); caseInfo.setDetailLocation(deviceInfo.getDetailLocation()); caseInfo.setDrawNo(deviceInfo.getDrawNo()); //图纸编号 + caseInfo.setDescription("黑名单识别事件"); //变更描述 return caseInfo; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java index 4427f19..06f8bf3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java @@ -163,15 +163,23 @@ resultList.add(preMonthOrWeekCaseDTO); } } else { + List finalList = new ArrayList<>(); for (String date : dateList) { - List collect = resultList.stream().map(PreMonthOrWeekCaseDTO::getDimension).collect(Collectors.toList()); - if (!collect.contains(date)) { + Integer flag = 0; + for (PreMonthOrWeekCaseDTO dto : resultList) { + if(dto.getDimension().equals(date)){ + finalList.add(dto); + flag = 1; + } + } + if(flag == 0){ PreMonthOrWeekCaseDTO preMonthOrWeekCaseDTO = new PreMonthOrWeekCaseDTO(); preMonthOrWeekCaseDTO.setDimension(date); preMonthOrWeekCaseDTO.setQuantity(0); - resultList.add(preMonthOrWeekCaseDTO); + finalList.add(preMonthOrWeekCaseDTO); } } + return ResponseData.success(finalList); } return ResponseData.success(resultList); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java index 2c66ec1..97ed308 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java @@ -57,7 +57,7 @@ public List staffInfoListPage(Page page, StaffInfoRequest staffInfoRequest) { try { List pageList = staffInfoMapper.getStaffInfoListPage(page, staffInfoRequest); - pageList.parallelStream().forEach(staffInfo -> { + pageList.stream().forEach(staffInfo -> { staffInfo.setStaffTypeName(dictService.getDictNameByCode(SecurityEventDict.STAFF_TYPE, staffInfo.getStaffType())); staffInfo.setPicture(getPictureFromHik(staffInfo.getStaffCode())); }); @@ -86,7 +86,10 @@ personSingleAddOrUpdateRequest.setJobNo(staffInfo.getStaffCode()); List faces = new ArrayList<>(); PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(staffInfo.getPicture()); + if(StringUtils.isNotEmpty(staffInfo.getPicture())){ + String substringPicture = staffInfo.getPicture().substring(staffInfo.getPicture().indexOf(",") + 1); + faceData.setFaceData(substringPicture); + } faces.add(faceData); personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); @@ -137,6 +140,7 @@ log.error("请求海康,单个修改人员失败,海康response:{}", resultStr); return ResponseData.error("单个修改人员失败"); } + staffInfo.setPicture(""); if(staffInfoMapper.updateById(staffInfo) > 0){ return ResponseData.success(); } @@ -232,11 +236,11 @@ personSingleAddOrUpdateRequest.setPhoneNo(busConcentrator.getPhone()); personSingleAddOrUpdateRequest.setOrgIndexCode(busConcentrator.getStaffType()); personSingleAddOrUpdateRequest.setJobNo(busConcentrator.getStaffCode()); - List faces = new ArrayList<>(); - PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(busConcentrator.getPicture()); - faces.add(faceData); - personSingleAddOrUpdateRequest.setFaces(faces); +// List faces = new ArrayList<>(); +// PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); +// faceData.setFaceData(busConcentrator.getPicture()); +// faces.add(faceData); +// personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); personSingleAddOrUpdateRequest.setCertificateNo(busConcentrator.getStaffIdCard()); personList.add(personSingleAddOrUpdateRequest); @@ -336,8 +340,12 @@ if(0 == dataArray.size()){ return ""; } + log.info("请求海康,根据人员唯一字段获取人员详细信息response:{}", resultStr); JSONObject jsonObject = (JSONObject) dataArray.get(0); JSONArray personPhoto = (JSONArray) jsonObject.get("personPhoto"); + if(0 == personPhoto.size()){ + return ""; + } JSONObject photo = (JSONObject) personPhoto.get(0); String picUri = photo.getString("picUri"); String serverIndexCode = photo.getString("serverIndexCode"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java index aa23547..f6756ce 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.dao.VisitorApplyMapper; import com.casic.missiles.modular.dto.VisitorApplyRequest; import com.casic.missiles.modular.dto.hik.AppointmentFreeRegisterRequest; @@ -71,7 +72,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public int addVisitorApply(VisitorApply visitorApply) { + public Object addVisitorApply(VisitorApply visitorApply) { //无需判重,可预约多个时间段 AppointmentFreeRegisterRequest appointmentFreeRegisterRequest = new AppointmentFreeRegisterRequest(); //将时间转换为海康ISO8601格式 @@ -107,7 +108,7 @@ JSONObject resultJson = (JSONObject)JSONObject.parse(resultStr); if(!"0".equals(resultJson.get("code"))){ log.error("请求海康,预约免登记失败,海康response:{}", resultStr); - return 0; + return ResponseData.error(resultJson.getString("msg")); } JSONObject jsonData = (JSONObject)resultJson.get("data"); String appointRecordId = String.valueOf(jsonData.get("appointRecordId")); @@ -118,7 +119,11 @@ visitorApply.setOrderId(orderId); visitorApply.setPicUri(picUri); visitorApply.setServerIndexCode(svrIndexCode); - return visitorApplyMapper.insert(visitorApply); + if(visitorApplyMapper.insert(visitorApply) > 0){ + return ResponseData.success(); + }else{ + return ResponseData.error("新增访问申请异常"); + } } @Override @@ -189,7 +194,7 @@ } }else{ log.error("该访客:{},未在海康进行预约成功,无法取消预约", visitorApply.getVisitorName()); - return 0; + return visitorApplyMapper.deleteById(visitorApply.getId()); } return visitorApplyMapper.deleteById(visitorApply.getId()); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java index 269e3b0..937a9de 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java @@ -147,7 +147,7 @@ result.add(sdf.format(tempStart.getTime())); tempStart.add(Calendar.DAY_OF_YEAR, 1); } - result.add(endTime); + result.add(endTime.substring(0, endTime.indexOf(" "))); return result; } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 26e049d..86cefa6 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -93,12 +93,6 @@ mysql-connector-java ${mysql.driver.version} - - - com.dameng - DmJdbcDriver18 - 1.8 - com.casic casic-area-starter diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index 9588e28..7289258 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -11,8 +11,6 @@ /** * SpringBoot方式启动类 * - * @author lwh - * @Date 2021/06/06 12:06 */ @SpringBootApplication @EnableCaching diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 939e753..f19ec0f 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -18,7 +18,7 @@ casic: kaptcha-open: false #是否开启登录时验证码 (true/false) - no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved #flowable数据源和多数据源配置 db: init: diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml index 3a787b1..1c0bb6c 100644 --- a/casic-web/src/main/resources/config/application-test.yml +++ b/casic-web/src/main/resources/config/application-test.yml @@ -26,5 +26,4 @@ logging: level.root: info level.com.casic: debug - path: logs/ - file: missiles.log \ No newline at end of file + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 9dc8566..d410e56 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dev + active: prod servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/DeviceTemp.xlsx b/casic-web/src/main/resources/config/export/DeviceTemp.xlsx index fd4233f..6bd0b54 100644 --- a/casic-web/src/main/resources/config/export/DeviceTemp.xlsx +++ b/casic-web/src/main/resources/config/export/DeviceTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/FireEquipTemp.xlsx b/casic-web/src/main/resources/config/export/FireEquipTemp.xlsx index 8a89b14..05a2fc2 100644 --- a/casic-web/src/main/resources/config/export/FireEquipTemp.xlsx +++ b/casic-web/src/main/resources/config/export/FireEquipTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/StaffTemp.xlsx b/casic-web/src/main/resources/config/export/StaffTemp.xlsx index 12fe6cb..550b04a 100644 --- a/casic-web/src/main/resources/config/export/StaffTemp.xlsx +++ b/casic-web/src/main/resources/config/export/StaffTemp.xlsx Binary files differ diff --git a/casic-mini/pom.xml b/casic-mini/pom.xml new file mode 100644 index 0000000..5f96ca4 --- /dev/null +++ b/casic-mini/pom.xml @@ -0,0 +1,170 @@ + + + + casic-security-cockpit + com.casic + 2.0.0 + + 4.0.0 + + casic-mini + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-core + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-devtools + runtime + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-core + ${admin.version} + + + io.springfox + springfox-swagger-ui + + + + + com.casic + casic-admin-support + ${admin.version} + + + mysql + mysql-connector-java + ${mysql.driver.version} + + + com.casic + casic-area-starter + ${admin.version} + + + + com.casic + casic-server + ${pro.version} + + + com.casic + casic-file-support + ${admin.version} + + + + com.casic + casic-file + ${admin.version} + + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + /config/*-*.yml + **/MockController.class + + + + com.casic.missiles.CasicApplication + true + ./ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven.assembly.plugin.version} + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + true + true + + + + + + src/main/resources + + + /config/*/* + /config/*-*.yml + + true + + + src/main/java + + **/*.xml + + true + + + + \ No newline at end of file diff --git a/casic-mini/src/main/build/bin/start.sh b/casic-mini/src/main/build/bin/start.sh new file mode 100644 index 0000000..03e8d4a --- /dev/null +++ b/casic-mini/src/main/build/bin/start.sh @@ -0,0 +1 @@ +nohup java -jar ./lib/casic-web-2.0.0.jar > /dev/null 2>&1 & \ No newline at end of file diff --git a/casic-mini/src/main/build/package.xml b/casic-mini/src/main/build/package.xml new file mode 100644 index 0000000..6085832 --- /dev/null +++ b/casic-mini/src/main/build/package.xml @@ -0,0 +1,43 @@ + + + package + + zip + tar.gz + + true + + + + + true + true + lib + runtime + + + + + src/main/build/bin + + start.sh + + true + 0744 + / + + + src/main/resources/config + true + + *.yml + /*/* + + /config + + + src/main/resources/i18n + / + + + \ No newline at end of file diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java new file mode 100644 index 0000000..7289258 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicApplication.java @@ -0,0 +1,28 @@ +package com.casic.missiles; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * SpringBoot方式启动类 + * + */ +@SpringBootApplication +@EnableCaching +@EnableTransactionManagement(proxyTargetClass = true) +@EnableAsync +@Slf4j +@MapperScan("com.casic.missiles.modular.dao") +public class CasicApplication { + public static void main(String[] args) { + SpringApplication.run(CasicApplication.class, args); + + log.info("CasicApplication is success!"); + } + +} diff --git a/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java new file mode 100644 index 0000000..e30585b --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/CasicServletInitializer.java @@ -0,0 +1,18 @@ +package com.casic.missiles; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Guns Web程序启动类 + * + * @author fengshuonan + * @date 2017-05-21 9:43 + */ +public class CasicServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(CasicApplication.class); + } +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java new file mode 100644 index 0000000..e6c24e1 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MIniController.java @@ -0,0 +1,10 @@ +package com.casic.missiles.controller; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2022/11/8 14:39 + */ +public class MIniController { + //Controller写在casic-mini模块,其它模块引用casic-server模块,打包放在5904端口 +} diff --git a/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java new file mode 100644 index 0000000..eae6c54 --- /dev/null +++ b/casic-mini/src/main/java/com/casic/missiles/controller/MockController.java @@ -0,0 +1,82 @@ +package com.casic.missiles.controller; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.enums.LoginType; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.model.auth.CasicCustomToken; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.domain.constants.PermissionConstants; +import com.casic.missiles.modular.interfaces.log.LogManager; +import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; +import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static com.casic.missiles.core.util.HttpContext.getIp; + + +/** + * 仅为mock登录使用 + * + * @author lenovo + */ +@Controller +@RequestMapping("/route") +@Slf4j +public class MockController extends BaseController { + + /** + * 获取mockToken + */ + @GetMapping("/mockToken") + @ResponseBody + public Object mockToken(String username, String password) { + super.getSession().setAttribute(PermissionConstants.IS_APP, false); + SuccessResponseData resultData = new SuccessResponseData(); + if (StrUtil.hasEmpty(username, password)) { + username = "admin"; + password = "111111"; + } + Subject currentUser = ShiroKit.getSubject(); + + try { + Map key = RSAUtils.genKeyPair(); + ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey)); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + //token自定义 + CasicCustomToken token = new CasicCustomToken(username, password); + token.setType(LoginType.PASSWORD); + token.setRememberMe(false); + + try { + currentUser.login(token); + } catch (Exception e) { + e.printStackTrace(); + } + AuthUser shiroUser = ShiroKit.getUser(); + super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); + super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId()); + + LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); + + ShiroKit.getSession().setAttribute("sessionFlag", true); + resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null)); + resultData.setMessage("登录成功"); + return resultData; + } +} diff --git a/casic-mini/src/main/resources/config/application-dev.yml b/casic-mini/src/main/resources/config/application-dev.yml new file mode 100644 index 0000000..3f62737 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-dev.yml @@ -0,0 +1,36 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://111.198.10.15:11336/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +# session: +# store-type: redis + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-prod.yml b/casic-mini/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000..4403faf --- /dev/null +++ b/casic-mini/src/main/resources/config/application-prod.yml @@ -0,0 +1,34 @@ +server: + port: 5904 +# context-path: /callcenter/api +################### spring配置 ################### +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.10.6:3306/casic_security_cockpit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + username: root + password: Casic203 + redis: + host: 192.168.10.6 + port: 6379 + password: Casic203 + database: 1 + serializer: org.springframework.data.redis.serializer.StringRedisSerializer + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + +casic: + kaptcha-open: false #是否开启登录时验证码 (true/false) + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved + #flowable数据源和多数据源配置 + db: + init: + enable: false + #图片下载本地地址 + file: + uploadPath: D:\tmp\ + commponentType: disk + +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application-test.yml b/casic-mini/src/main/resources/config/application-test.yml new file mode 100644 index 0000000..9f1d195 --- /dev/null +++ b/casic-mini/src/main/resources/config/application-test.yml @@ -0,0 +1,29 @@ +server: + port: 5904 +################### spring配置 ################### +spring: + datasource: + url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! + initial-size: 2 + min-idle: 1 + jms: + pub-sub-domain: true +# session: +# store-type: redis +casic: + # kaptcha-open: false #是否开启登录时验证码 (true/false) + nologin-urls: /websocket/**,/user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/** + #flowable数据源和多数据源配置 + flowable: + datasource: + url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + username: root + password: Casic203! +flowable: + checkProcessDefinitions: false #不校验process文件 +logging: + level.root: info + level.com.casic: debug + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-mini/src/main/resources/config/application.yml b/casic-mini/src/main/resources/config/application.yml new file mode 100644 index 0000000..d410e56 --- /dev/null +++ b/casic-mini/src/main/resources/config/application.yml @@ -0,0 +1,36 @@ +########################################################## +################## 所有profile共有的配置 ################# +########################################################## +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 50MB + max-request-size: 80MB +#mybatis-plus: +# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector +################### mybatis-plus配置 ################### +mybatis-plus: + global-config: + #字段策略 0:"所有字段都更新和插入" 1:"只更新和插入非NULL值" 2:"只更新和插入非NULL值且非空字符串" + field-strategy: 1 + enable-sql-runner: true + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 + map-underscore-to-camel-case: true +################### guns配置 ################### +casic: + swagger-open: false #是否开启swagger (true/false) + kaptcha-open: false #是否开启登录时验证码 (true/false) + muti-datasource-open: false #是否开启多数据源(true/false) + spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) + session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 + session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken + file: + uploadPath: D:\tmp\ +# config: +# export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ +# config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file diff --git a/casic-mini/src/main/resources/logback-spring.xml b/casic-mini/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..c0c7ac9 --- /dev/null +++ b/casic-mini/src/main/resources/logback-spring.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf-8 + + + + + + + + ${LOG_PATH}/missiles_error.log + + + + + + ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + error + ACCEPT + DENY + + + + + + + + ${LOG_PATH}/missiles_total.log + + + + + + ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + + true + + + + ${FILE_LOG_PATTERN} + utf-8 + + + + + + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java index 5845762..f5b21d7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/StaffController.java @@ -90,6 +90,7 @@ /** * 批量导入 + * 批量上传员工时的照片问题,海康的批量接口不能上传照片,要在海康平台单独上传所有图片 */ @PostMapping("/batchImport") @ResponseBody diff --git a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java index 974553d..83045f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/controller/VisitorApplyController.java @@ -48,10 +48,7 @@ @ResponseBody public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody VisitorApply visitorApply) { if(OperateTypeEnum.ADD.getOperateType().equals(operateType)){ - if(visitorApplyService.addVisitorApply(visitorApply) > 0){ - return ResponseData.success(); - } - return ResponseData.error("新增访问申请异常"); + return visitorApplyService.addVisitorApply(visitorApply); }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){ if(visitorApplyService.updateVisitorApply(visitorApply) > 0){ return ResponseData.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml index c1993e0..2b3dfd5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/BlackInfoMapper.xml @@ -13,5 +13,6 @@ and black_reason = #{blackInfoRequest.blackReason} + order by create_time DESC \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml index 043a3c2..9ec3467 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceInfoMapper.xml @@ -15,8 +15,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} @@ -27,6 +27,9 @@ and bus_device_info.position = #{deviceInfoRequest.position} + + and bus_device_info.area = #{deviceInfoRequest.area} + ORDER by create_time DESC @@ -43,8 +46,8 @@ and dev_type = #{deviceInfoRequest.devType} - - and ip = #{deviceInfoRequest.IP} + + and ip = #{deviceInfoRequest.ip} and status = #{deviceInfoRequest.status} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml index 4e39921..214be25 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/DeviceRepairLogMapper.xml @@ -9,7 +9,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") @@ -26,7 +26,7 @@ and device_code = #{deviceRepairRequest.devCode} - and device_name = #{deviceRepairRequest.devName} + and device_name like concat('%',#{deviceRepairRequest.devName},'%') and DATE_FORMAT(create_time,"%y%m%d") = DATE_FORMAT(#{deviceRepairRequest.createTime},"%y%m%d") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml index 9aef589..fc5b6ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/dao/mapping/StaffInfoMapper.xml @@ -14,7 +14,7 @@ and staff_type = #{staffInfoRequest.staffType} - and phone = #{staffInfoRequest.phone} + and phone like concat('%',#{staffInfoRequest.phone},'%') ORDER by create_time DESC diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java index 4fdbfde..736c8e1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/DeviceInfoRequest.java @@ -17,4 +17,5 @@ private String status; private String isKeyArea; private String position; + private String area; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java index 261ddd7..cb6829a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/dto/hik/FaceSingleAddOrUpdateRequest.java @@ -11,6 +11,7 @@ public class FaceSingleAddOrUpdateRequest { //人脸分组的唯一标识 private String faceGroupIndexCode; + private String indexCode; private FaceInfo faceInfo; private FacePic facePic; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java index 7a02cc4..a902479 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/enums/HikUri.java @@ -31,7 +31,7 @@ //单个添加人员 String PERSON_SINGLE_ADD = "/api/resource/v2/person/single/add"; //批量添加人员 - String PERSON_BATCH_ADD = "/api/resource/v2/person/batch/add"; + String PERSON_BATCH_ADD = "/api/resource/v1/person/batch/add"; //单个修改人员 String PERSON_SINGLE_UPDATE = "/api/resource/v1/person/single/update"; //批量删除人员 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java index f9523a6..0c5da7a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/VisitorApplyService.java @@ -16,7 +16,7 @@ List addVisitorApplyBatch(List results); - int addVisitorApply(VisitorApply visitorApply); + Object addVisitorApply(VisitorApply visitorApply); int updateVisitorApply(VisitorApply visitorApply); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java index 2580187..f370c06 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/BlackInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -125,7 +126,7 @@ @Override public Object updateBlackInfo(BlackInfo blackInfo) { FaceSingleAddOrUpdateRequest faceSingleAddOrUpdateRequest = new FaceSingleAddOrUpdateRequest(); - faceSingleAddOrUpdateRequest.setFaceGroupIndexCode(blackInfo.getFaceGroupIndexCode()); + faceSingleAddOrUpdateRequest.setIndexCode(blackInfo.getIndexCode()); FaceInfo faceInfo = new FaceInfo(); faceInfo.setName(blackInfo.getBlackName()); faceInfo.setSex(blackInfo.getBlackSex()); @@ -133,8 +134,10 @@ faceInfo.setCertificateNum(blackInfo.getIdCardNo()); faceSingleAddOrUpdateRequest.setFaceInfo(faceInfo); FacePic facePic = new FacePic(); - facePic.setFaceBinaryData(blackInfo.getPicture()); - faceSingleAddOrUpdateRequest.setFacePic(facePic); + if(StringUtils.isNotEmpty(blackInfo.getPicture())){ + String substringPicture = blackInfo.getPicture().substring(blackInfo.getPicture().indexOf(",") + 1); + facePic.setFaceBinaryData(substringPicture); + } faceSingleAddOrUpdateRequest.setFacePic(facePic); String body = JSONObject.toJSONString(faceSingleAddOrUpdateRequest); String resultStr = HikUtil.hikApi(HikUri.FACE_SINGLE_UPDATE, body); @@ -143,6 +146,27 @@ log.error("请求海康,单个修改人脸失败,海康response:{}", resultStr); return ResponseData.error("单个修改人脸失败"); } + //海康更新接口不返回人脸url,需单独请求人脸图片接口获取 + FaceRequest request = new FaceRequest(); + List list = new ArrayList<>(); + list.add(blackInfo.getIndexCode()); + request.setIndexCodes(list); + String body1 = JSONObject.toJSONString(request); + String resultStr1 = HikUtil.hikApi("/api/frs/v1/face", body1); + JSONObject resultJson1 = (JSONObject)JSONObject.parse(resultStr1); + if (!"0".equals(resultJson1.get("code"))){ + log.error("请求海康,获取人脸图片失败,海康response:{}", resultStr1); + return ResponseData.error("单个修改人脸失败"); + } + JSONObject dataJson = (JSONObject)resultJson1.get("data"); + JSONArray dataArray = (JSONArray) dataJson.get("list"); + if(0 == dataArray.size()){ + return ResponseData.error("黑名单人员更新失败!"); + } + JSONObject jsonObject = (JSONObject) dataArray.get(0); + JSONObject facePicObject = jsonObject.getJSONObject("facePic"); + String faceUrl = facePicObject.getString("faceUrl"); + blackInfo.setPicture(faceUrl); if(blackInfoMapper.updateById(blackInfo) > 0){ return ResponseData.success(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java index e3dff1f..d311677 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/FireEquipServiceImpl.java @@ -133,17 +133,6 @@ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); busConcentrator.setExpireDate(dateFormat.format(new Date())); } - if (StrUtil.isNotEmpty(busConcentrator.getQualityDate())) { - try { - new SimpleDateFormat("yyyy-MM-dd").parse(busConcentrator.getQualityDate()); - } catch (Exception e) { - list.add(" 第" + index[0] + "行,时间格式不正确"); - return; - } - } else { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - busConcentrator.setProductDate(dateFormat.format(new Date())); - } }); if (CollectionUtil.isNotEmpty(list)) { return list; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java index c399a7f..d29d38d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/HikServiceImpl.java @@ -75,6 +75,7 @@ caseInfo.setIsKeyArea(deviceInfo.getIsKeyArea()); caseInfo.setDetailLocation(deviceInfo.getDetailLocation()); caseInfo.setDrawNo(deviceInfo.getDrawNo()); //图纸编号 + caseInfo.setDescription("黑名单识别事件"); //变更描述 return caseInfo; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java index 4427f19..06f8bf3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/PropertyManageServiceImpl.java @@ -163,15 +163,23 @@ resultList.add(preMonthOrWeekCaseDTO); } } else { + List finalList = new ArrayList<>(); for (String date : dateList) { - List collect = resultList.stream().map(PreMonthOrWeekCaseDTO::getDimension).collect(Collectors.toList()); - if (!collect.contains(date)) { + Integer flag = 0; + for (PreMonthOrWeekCaseDTO dto : resultList) { + if(dto.getDimension().equals(date)){ + finalList.add(dto); + flag = 1; + } + } + if(flag == 0){ PreMonthOrWeekCaseDTO preMonthOrWeekCaseDTO = new PreMonthOrWeekCaseDTO(); preMonthOrWeekCaseDTO.setDimension(date); preMonthOrWeekCaseDTO.setQuantity(0); - resultList.add(preMonthOrWeekCaseDTO); + finalList.add(preMonthOrWeekCaseDTO); } } + return ResponseData.success(finalList); } return ResponseData.success(resultList); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java index 2c66ec1..97ed308 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/StaffInfoServiceImpl.java @@ -57,7 +57,7 @@ public List staffInfoListPage(Page page, StaffInfoRequest staffInfoRequest) { try { List pageList = staffInfoMapper.getStaffInfoListPage(page, staffInfoRequest); - pageList.parallelStream().forEach(staffInfo -> { + pageList.stream().forEach(staffInfo -> { staffInfo.setStaffTypeName(dictService.getDictNameByCode(SecurityEventDict.STAFF_TYPE, staffInfo.getStaffType())); staffInfo.setPicture(getPictureFromHik(staffInfo.getStaffCode())); }); @@ -86,7 +86,10 @@ personSingleAddOrUpdateRequest.setJobNo(staffInfo.getStaffCode()); List faces = new ArrayList<>(); PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(staffInfo.getPicture()); + if(StringUtils.isNotEmpty(staffInfo.getPicture())){ + String substringPicture = staffInfo.getPicture().substring(staffInfo.getPicture().indexOf(",") + 1); + faceData.setFaceData(substringPicture); + } faces.add(faceData); personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); @@ -137,6 +140,7 @@ log.error("请求海康,单个修改人员失败,海康response:{}", resultStr); return ResponseData.error("单个修改人员失败"); } + staffInfo.setPicture(""); if(staffInfoMapper.updateById(staffInfo) > 0){ return ResponseData.success(); } @@ -232,11 +236,11 @@ personSingleAddOrUpdateRequest.setPhoneNo(busConcentrator.getPhone()); personSingleAddOrUpdateRequest.setOrgIndexCode(busConcentrator.getStaffType()); personSingleAddOrUpdateRequest.setJobNo(busConcentrator.getStaffCode()); - List faces = new ArrayList<>(); - PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); - faceData.setFaceData(busConcentrator.getPicture()); - faces.add(faceData); - personSingleAddOrUpdateRequest.setFaces(faces); +// List faces = new ArrayList<>(); +// PersonSingleAddOrUpdateRequest.FaceData faceData = new PersonSingleAddOrUpdateRequest.FaceData(); +// faceData.setFaceData(busConcentrator.getPicture()); +// faces.add(faceData); +// personSingleAddOrUpdateRequest.setFaces(faces); personSingleAddOrUpdateRequest.setCertificateType("111"); personSingleAddOrUpdateRequest.setCertificateNo(busConcentrator.getStaffIdCard()); personList.add(personSingleAddOrUpdateRequest); @@ -336,8 +340,12 @@ if(0 == dataArray.size()){ return ""; } + log.info("请求海康,根据人员唯一字段获取人员详细信息response:{}", resultStr); JSONObject jsonObject = (JSONObject) dataArray.get(0); JSONArray personPhoto = (JSONArray) jsonObject.get("personPhoto"); + if(0 == personPhoto.size()){ + return ""; + } JSONObject photo = (JSONObject) personPhoto.get(0); String picUri = photo.getString("picUri"); String serverIndexCode = photo.getString("serverIndexCode"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java index aa23547..f6756ce 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/service/impl/VisitorApplyServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.dao.VisitorApplyMapper; import com.casic.missiles.modular.dto.VisitorApplyRequest; import com.casic.missiles.modular.dto.hik.AppointmentFreeRegisterRequest; @@ -71,7 +72,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public int addVisitorApply(VisitorApply visitorApply) { + public Object addVisitorApply(VisitorApply visitorApply) { //无需判重,可预约多个时间段 AppointmentFreeRegisterRequest appointmentFreeRegisterRequest = new AppointmentFreeRegisterRequest(); //将时间转换为海康ISO8601格式 @@ -107,7 +108,7 @@ JSONObject resultJson = (JSONObject)JSONObject.parse(resultStr); if(!"0".equals(resultJson.get("code"))){ log.error("请求海康,预约免登记失败,海康response:{}", resultStr); - return 0; + return ResponseData.error(resultJson.getString("msg")); } JSONObject jsonData = (JSONObject)resultJson.get("data"); String appointRecordId = String.valueOf(jsonData.get("appointRecordId")); @@ -118,7 +119,11 @@ visitorApply.setOrderId(orderId); visitorApply.setPicUri(picUri); visitorApply.setServerIndexCode(svrIndexCode); - return visitorApplyMapper.insert(visitorApply); + if(visitorApplyMapper.insert(visitorApply) > 0){ + return ResponseData.success(); + }else{ + return ResponseData.error("新增访问申请异常"); + } } @Override @@ -189,7 +194,7 @@ } }else{ log.error("该访客:{},未在海康进行预约成功,无法取消预约", visitorApply.getVisitorName()); - return 0; + return visitorApplyMapper.deleteById(visitorApply.getId()); } return visitorApplyMapper.deleteById(visitorApply.getId()); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java index 269e3b0..937a9de 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java @@ -147,7 +147,7 @@ result.add(sdf.format(tempStart.getTime())); tempStart.add(Calendar.DAY_OF_YEAR, 1); } - result.add(endTime); + result.add(endTime.substring(0, endTime.indexOf(" "))); return result; } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 26e049d..86cefa6 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -93,12 +93,6 @@ mysql-connector-java ${mysql.driver.version} - - - com.dameng - DmJdbcDriver18 - 1.8 - com.casic casic-area-starter diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index 9588e28..7289258 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -11,8 +11,6 @@ /** * SpringBoot方式启动类 * - * @author lwh - * @Date 2021/06/06 12:06 */ @SpringBootApplication @EnableCaching diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 939e753..f19ec0f 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -18,7 +18,7 @@ casic: kaptcha-open: false #是否开启登录时验证码 (true/false) - no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/** + no-login-urls: /websocket/**,${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/cockpit/**,/propertyManage/**,/eventRcv/**,/hik/**,/staffInfo/**,/**/listPage,/**/list,/**/drawNo,/socket/repost,/caseInfo/update,/**/list/unResolved,/last/drawNo,/multiScore/**,/caseInfo/oneClickSolved #flowable数据源和多数据源配置 db: init: diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml index 3a787b1..1c0bb6c 100644 --- a/casic-web/src/main/resources/config/application-test.yml +++ b/casic-web/src/main/resources/config/application-test.yml @@ -26,5 +26,4 @@ logging: level.root: info level.com.casic: debug - path: logs/ - file: missiles.log \ No newline at end of file + level.org.springframework.web: info \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 9dc8566..d410e56 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dev + active: prod servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/DeviceTemp.xlsx b/casic-web/src/main/resources/config/export/DeviceTemp.xlsx index fd4233f..6bd0b54 100644 --- a/casic-web/src/main/resources/config/export/DeviceTemp.xlsx +++ b/casic-web/src/main/resources/config/export/DeviceTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/FireEquipTemp.xlsx b/casic-web/src/main/resources/config/export/FireEquipTemp.xlsx index 8a89b14..05a2fc2 100644 --- a/casic-web/src/main/resources/config/export/FireEquipTemp.xlsx +++ b/casic-web/src/main/resources/config/export/FireEquipTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/StaffTemp.xlsx b/casic-web/src/main/resources/config/export/StaffTemp.xlsx index 12fe6cb..550b04a 100644 --- a/casic-web/src/main/resources/config/export/StaffTemp.xlsx +++ b/casic-web/src/main/resources/config/export/StaffTemp.xlsx Binary files differ diff --git a/pom.xml b/pom.xml index ec30791..e8eee66 100644 --- a/pom.xml +++ b/pom.xml @@ -9,6 +9,7 @@ casic-web casic-server + casic-mini com.casic