Commit 6aafb9d3 by Jinxiao Zhang

add qbjc-ack

parent c7923da1
Pipeline #85 failed with stage
in 1 second
# Getting Started
### Reference Documentation
For further reference, please consider the following sections:
* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html)
pipeline {
agent any
stages {
stage('build') {
when { branch 'dev' }
steps {
sh '/apache-maven-3.6.3/bin/mvn clean package -Dmaven.test.skip=true -U'
}
post {
success {
sh "/usr/local/bin/workwechatctl -p ${env.JOB_NAME} -n 沈涛 -c 项目编译成功进行下一阶段"
}
failure {
step([$class: 'Mailer',
notifyEveryUnstableBuild: true,
recipients: "shentao@zhiweidata.com",
sendToIndividuals: true])
}
}
}
stage('build image') {
when { branch 'dev' }
steps {
sh "sudo docker build -t harbor.docker.zhiweireach.com/application/qbjc:${env.BUILD_NUMBER} . "
}
post {
success {
sh "/usr/local/bin/workwechatctl -p ${env.JOB_NAME} -n 张金晓 -c 镜像构建成功进行下一阶段"
}
}
}
stage('push image') {
when { branch 'dev' }
steps {
sh "sudo docker login --username admin --password JinxiaoZhang...701 harbor.docker.zhiweireach.com"
sh "sudo docker push harbor.docker.zhiweireach.com/application/qbjc:${env.BUILD_NUMBER}"
}
post {
success {
sh "/usr/local/bin/workwechatctl -p ${env.JOB_NAME} -n 张金晓 -c 镜像push成功进行下一阶段"
}
}
}
stage('deploy') {
when { branch 'dev' }
steps {
sh "/usr/local/bin/kubectl version"
sh "/usr/local/bin/kubectl set image deployment/qbjc-background qbjc-background=harbor.docker.zhiweireach.com/application/qbjc:${env.BUILD_NUMBER} --record"
}
post {
success {
sh "/usr/local/bin/workwechatctl -p ${env.JOB_NAME} -n 张金晓 -c k8spod已部署更新成功"
}
}
}
}
}
# qbjcback - 知微舆情监测后端web项目
---
## 介绍项目
知微舆情监测后端web项目,支持负载均衡
### 子系统
[qbjc-messageflow](http://git.zhiweidata.top/shentao/qbjc-messageflow)-知微舆情监测消息流 独立支持定向、情报消息流,支持负载
[qbjc-mission](http://git.zhiweidata.top/shentao/qbjc-mission)-知微舆情监测-任务处理系统 独立处理高性能、定时任务,支持负载
[qbjc-frame](http://git.zhiweidata.top/shentao/qbjc-frame)-知微舆情监测帧实项目 独立子web提供镜像信息帧实页 独立登录鉴权,支持负载
---
## 项目文档地址
项目文档采用swagge2形式,具体接口文档可以访问(swagger-ui.html),启动后改为自己本机ip地址即可查看
### 文档
> [监测系统接口文档(swagger2 文档)](http://192.168.0.247:11000/swagger-ui.html#/)
---
## 项目运行的服务器及目录
> 项目位置: /usr/local/tomcats/qbjcbackPhoenixGit
> 服务器地址:
> 内网地址:192.168.0.34 192.168.0.36
> 外网地址:115.236.59.88 115.236.59.87
#!/bin/bash
COMMITTER=$(git log -1 --format=%cE)
echo ${COMMITTER}
if [ $? -eq 0 ]; then
echo "do something for auto_test here."
echo "auto_test over."
fi
\ No newline at end of file
#!/bin/bash
mvn --batch-mode sonar:sonar \
-Dsonar.host.url=http://192.168.0.51:9000 \
-Dsonar.login=admin \
-Dsonar.password=admin \
-Dsonar.issuesReport.html.enable=true \
-Dsonar.analysis.mode=preview \
-Dsonar.preview.excludePlugins=issueassign,scmstats
if [ $? -eq 0 ]; then
echo "sonarqube code-analyze over."
fi
\ No newline at end of file
#!/bin/bash
mvn --batch-mode verify sonar:sonar \
-Dsonar.host.url=http://192.168.0.51:9000 \
-Dsonar.login=admin \
-Dsonar.password=admin \
-Dsonar.analysis.mode=preview \
-Dsonar.gitlab.project_id=$CI_PROJECT_ID \
-Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA \
-Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME \
clean install
if [ $? -eq 0 ]; then
echo "sonarqube code-analyze-preview over."
fi
\ No newline at end of file
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
echo Found %WRAPPER_JAR%
) else (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
echo Finished downloading %WRAPPER_JAR%
)
@REM End of extension
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.1.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.1.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.1.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.1.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.1.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.1.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.1.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.1.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.11.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.11.2" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.26" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.1.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.1.8.RELEASE" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.23" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.springframework.boot:spring-boot-devtools:2.1.6.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.1.6.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.1.6.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.1.6.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.26" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.11.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:2.23.4" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.9.13" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.9.13" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.1.8.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.6.2" level="project" />
</component>
</module>
\ No newline at end of file
package com.zhiwei.qbjc;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
* QbjcBack启动类
*
* @ClassName: QbjcBackApplication
* @Description:QbjcBack启动类
* @author shentao
* @date 2019年7月8日 下午5:10:00
*/
@SpringBootApplication(exclude = { MongoAutoConfiguration.class, MongoDataAutoConfiguration.class })
@EnableScheduling
@EnableAsync
public class QbjcBackApplication extends SpringBootServletInitializer {
public final static Logger log = LogManager.getLogger(QbjcBackApplication.class);
public static void main(String[] args) {
/**
* 添加elasticsearch之后发生异常的解决方案 Springboot整合Elasticsearch 在项目启动前设置一下的属性,防止报错
* 解决netty冲突后初始化client时会抛出异常 java.lang.IllegalStateException:
* availableProcessors is already set to [4], rejecting [4]
*/
System.setProperty("es.set.netty.runtime.available.processors", "false");
SpringApplication.run(QbjcBackApplication.class, args);
// 启动打印,声明版本
log.info("qbjc-back 版本:2020/4/22 17:31");
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(QbjcBackApplication.class);
}
}
package com.zhiwei.qbjc.config;
import com.zhiwei.qbjc.pojo.entity.*;
import java.util.List;
import java.util.Map;
/**
* 全局类
*
* @ClassName: GlobalPojo
* @Description: 全局类
* @author shentao
* @date 2019年6月4日 下午6:30:12
*/
public class GlobalPojo {
/** tx公益标签 复制用 **/
public static Map<String,Object> TX_TAGS;
/** 微博金V 显示 复制用 **/
public static List<String> WEIBO_VERIFIED_TYPE_EXT;
/** TEMPLATE_HEADERS 采集模板头部 **/
public static List<TemplateHeader> TEMPLATE_HEADERS;
/** MESSAGE_PLATFORMS 固定消息流平台 **/
public static List<MessagePlatform> MESSAGE_PLATFORMS;
/** DIRECT_PLATFORMS 定向平台 **/
public static List<DirectPlatform> DIRECT_PLATFORMS;
/** DIRECT_PLATFORMS 定向平台 **/
public static List<DirectPlatform> WAP_PLATFORMS;
/** 渠道信息总和 **/
public static List<ChannelInfo> CHANNEL_INFOS;
/** 移动端渠道信息总和 **/
public static List<WapChannelInfo> WAP_CHANNEL_INFOS;
}
package com.zhiwei.qbjc.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* @ClassName: MiddlewareConfig
* @Description: 中间件配置
* @author shentao
* @date 2019年7月16日 下午7:08:07
*/
@Component
public class MiddlewareConfig {
public static String REGISTRY;
public static String MARK_GROUP;
public static String CLEAN_FILTER_GROUP;
public static String AUTOMARK_GROUP;
public static String AUTH_GROUP;
public static String CHANNEL_GROUP;
public static String WEIBOBUS_GROUP;
@Value("${zookeeper.registry}")
public void setRegistry(String registry) {
REGISTRY = registry;
System.out.println("REGISTRY:" + REGISTRY);
}
@Value("${dubbo.mark.group}")
public void setGroup(String group) {
MARK_GROUP = group;
System.out.println("MARK_GROUP:" + MARK_GROUP);
}
@Value("${dubbo.filter.group}")
public void setCleanFilterGroup(String group) {
CLEAN_FILTER_GROUP = group;
System.out.println("CLEAN_FILTER_GROUP:" + CLEAN_FILTER_GROUP);
}
@Value("${dubbo.automark.group}")
public void setAutoMarkGroup(String group) {
AUTOMARK_GROUP = group;
System.out.println("AUTOMARK_GROUP:" + AUTOMARK_GROUP);
}
@Value("${dubbo.auth.group}")
public void setAuthGroup(String group) {
AUTH_GROUP = group;
System.out.println("AUTH_GROUP:" + AUTH_GROUP);
}
@Value("${dubbo.channel.group}")
public void setChannelGroup(String group) {
CHANNEL_GROUP = group;
System.out.println("CHANNEL_GROUP:" + CHANNEL_GROUP);
}
@Value("${dubbo.weibobus.group}")
public void setWeiboBusGroup(String group){
WEIBOBUS_GROUP = group;
System.out.println("WEIBOBUS_GROUP:" + WEIBOBUS_GROUP);
}
}
package com.zhiwei.qbjc.config;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoClientURI;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
import org.springframework.data.mongodb.core.convert.DbRefResolver;
import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver;
import org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper;
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
/**
* mongo配置类
*
* @ClassName: MongoConfig
* @Description: mongo配置类
* @author shentao
* @date 2019年7月8日 下午5:13:49
*/
@Configuration
public class MongoConfig {
public final static Logger log = LogManager.getLogger(MongoConfig.class);
@Value("${mongo.connectionsPerHost}")
private int connectionsPerHost;
@Value("${mongo.threadsAllowedToBlockForConnectionMultiplier}")
private int threadsAllowedToBlockForConnectionMultiplier;
@Value("${mongo.connectTimeout}")
private int connectTimeout;
@Value("${mongo.maxWaitTime}")
private int maxWaitTime;
@Value("${mongo.autoConnectRetry}")
private boolean autoConnectRetry;
@Value("${mongo.socketKeepAlive}")
private boolean socketKeepAlive;
@Value("${mongo.socketTimeout}")
private int socketTimeout;
@Value("${mongo.slaveOk}")
private boolean slaveOk;
@Value("${primary.uri}")
private String uri;
private MongoDbFactory mongoDbFactory() {
MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
builder.connectionsPerHost(connectionsPerHost);
builder.connectTimeout(connectTimeout);
builder.threadsAllowedToBlockForConnectionMultiplier(threadsAllowedToBlockForConnectionMultiplier);
builder.maxWaitTime(maxWaitTime);
return new SimpleMongoDbFactory(new MongoClientURI(uri, builder));
}
@Primary
@Bean(name = "primaryMongoTemplate")
public MongoTemplate getMongoTemplate() {
log.info("@Primary");
MongoDbFactory mongoDbFactory = mongoDbFactory();
DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory);
MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, new MongoMappingContext());
// 不插入_class
converter.setTypeMapper(new DefaultMongoTypeMapper(null));
return new MongoTemplate(mongoDbFactory(), converter);
}
@Value("${secondary.uri}")
private String uri2;
private MongoDbFactory mongoDbFactory2() {
MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
builder.connectionsPerHost(connectionsPerHost);
builder.connectTimeout(connectTimeout);
builder.threadsAllowedToBlockForConnectionMultiplier(threadsAllowedToBlockForConnectionMultiplier);
builder.maxWaitTime(maxWaitTime);
return new SimpleMongoDbFactory(new MongoClientURI(uri2, builder));
}
@Bean
@Qualifier("secondaryMongoTemplate")
public MongoTemplate mongoTemplate2() {
log.info("@Secondary");
MongoDbFactory mongoDbFactory = mongoDbFactory2();
DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory);
MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, new MongoMappingContext());
// 不插入_class
converter.setTypeMapper(new DefaultMongoTypeMapper(null));
return new MongoTemplate(mongoDbFactory2(), converter);
}
@Value("${thirdary.uri}")
private String uri3;
private MongoDbFactory mongoDbFactory3() {
MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
builder.connectionsPerHost(connectionsPerHost);
builder.connectTimeout(connectTimeout);
builder.threadsAllowedToBlockForConnectionMultiplier(threadsAllowedToBlockForConnectionMultiplier);
builder.maxWaitTime(maxWaitTime);
return new SimpleMongoDbFactory(new MongoClientURI(uri3,builder));
}
@Bean
@Qualifier("thirdaryMongoTemplate")
public MongoTemplate mongoTemplate3() {
log.info("@Thirdary");
MongoDbFactory mongoDbFactory = mongoDbFactory3();
DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory);
MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, new MongoMappingContext());
// 不插入_class
converter.setTypeMapper(new DefaultMongoTypeMapper(null));
return new MongoTemplate(mongoDbFactory3(), converter);
}
@Value("${fourth.uri}")
private String uri4;
private MongoDbFactory mongoDbFactory4() {
MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
builder.connectionsPerHost(connectionsPerHost);
builder.connectTimeout(connectTimeout);
builder.threadsAllowedToBlockForConnectionMultiplier(threadsAllowedToBlockForConnectionMultiplier);
builder.maxWaitTime(maxWaitTime);
return new SimpleMongoDbFactory(new MongoClientURI(uri4, builder));
}
@Bean
@Qualifier("fourthMongoTemplate")
public MongoTemplate mongoTemplate4() throws Exception {
log.info("@Fourth");
MongoDbFactory mongoDbFactory = mongoDbFactory4();
DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory);
MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, new MongoMappingContext());
// 不插入_class
converter.setTypeMapper(new DefaultMongoTypeMapper(null));
return new MongoTemplate(mongoDbFactory4(), converter);
}
}
package com.zhiwei.qbjc.config;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* Swagger2Config
*
* @ClassName: 192.168.0.241:110002Config
* @Description: Swagger2Config
* @author shentao
* @date 2019年7月8日 下午5:14:57
*/
@Configuration
@EnableAutoConfiguration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
.apis(RequestHandlerSelectors.basePackage("com.zhiwei.qbjc")).paths(PathSelectors.any()).build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("知微舆情监测后端web项目接口").description("知微舆情监测后端web项目测试")
.termsOfServiceUrl("192.168.0.241:11000").version("1.0").build();
}
}
\ No newline at end of file
package com.zhiwei.qbjc.config;
import org.apache.catalina.connector.Connector;
import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* Description:
*
* @author LiuMingHuan
* @classname TomcatIllegaArgumentConfig
* @date 2019/10/22
*/
@Configuration
public class TomcatIllegaArgumentConfig {
/**
*  * 解决异常信息:
*  *  java.lang.IllegalArgumentException:
*  *      Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
*  * @return
*  
*/
@Bean
public ConfigurableServletWebServerFactory webServerFactory() {
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
connector.setProperty("relaxedQueryChars", "|{}[]");
}
});
return factory;
}
}
\ No newline at end of file
package com.zhiwei.qbjc.config;
import javax.annotation.Resource;
import com.zhiwei.qbjc.interceptor.*;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 统一拦截器配置
* @ClassName: WebAppConfig
* @Description: 统一拦截器配置
* @author shentao
* @date 2019年5月23日 上午9:16:30
*/
@Configuration
public class WebAppConfig implements WebMvcConfigurer{
@Resource
private FlowInterceptor flowInterceptor;
@Resource
private WapInterceptor wapInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 自定义拦截器,添加拦截路径和排除拦截路径
registry.addInterceptor(flowInterceptor).addPathPatterns("/qbjcbackPhoenix/app/**","/qbjcbackPhoenix/admin/**")
.excludePathPatterns("/qbjcbackPhoenix/app/frame/**","/qbjcbackPhoenix/app/download/integra/**",
"/qbjcbackPhoenix/app/setting/noiserules/**");
// 暂时移除噪音的权限判断
registry.addInterceptor(wapInterceptor).addPathPatterns("/qbjcbackPhoenix/wap/**").excludePathPatterns("/qbjcbackPhoenix/wap/login");
}
}
package com.zhiwei.qbjc.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.mvc.condition.PatternsRequestCondition;
import org.springframework.web.servlet.mvc.condition.RequestMethodsRequestCondition;
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* CommonController
*
* @ClassName: CommonController
* @Description: CommonController
* @author shentao
* @date 2019年7月8日 下午5:17:05
*/
@RestController
@RequestMapping("/qbjcbackPhoenix")
@Api(tags = "Main")
public class CommonController {
final WebApplicationContext applicationContext;
public CommonController(WebApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
@ApiOperation("Main-url")
@GetMapping(value = "/url")
public Object getAllUrl() {
RequestMappingHandlerMapping mapping = applicationContext.getBean(RequestMappingHandlerMapping.class);
// 获取url与类和方法的对应信息
Map<RequestMappingInfo, HandlerMethod> map = mapping.getHandlerMethods();
List<String> urlList = new ArrayList<>();
List<Map<String, String>> list = new ArrayList<>();
for (Map.Entry<RequestMappingInfo, HandlerMethod> m : map.entrySet()) {
Map<String, String> map1 = new HashMap<>();
RequestMappingInfo info = m.getKey();
HandlerMethod method = m.getValue();
PatternsRequestCondition p = info.getPatternsCondition();
for (String url : p.getPatterns()) {
map1.put("url", url);
System.out.println(url);
urlList.add(url);
}
// 类名
map1.put("className", method.getMethod().getDeclaringClass().getName());
// 方法名
map1.put("method", method.getMethod().getName());
RequestMethodsRequestCondition methodsCondition = info.getMethodsCondition();
for (RequestMethod requestMethod : methodsCondition.getMethods()) {
map1.put("type", requestMethod.toString());
System.out.println(requestMethod.toString());
}
list.add(map1);
}
System.out.println(urlList.size());
return list;
}
}
package com.zhiwei.qbjc.controller;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.pojo.entity.UserBehavior;
import com.zhiwei.qbjc.redis.RedisTools;
import com.zhiwei.qbjc.service.ProjectService;
import com.zhiwei.qbjc.service.UserService;
import com.zhiwei.qbjc.util.JwtUtil;
import com.zhiwei.qbjc.util.Tools;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 登陆Controller
*
* @ClassName: LoginController
* @Description: 登陆Controller
* @author shentao
* @date 2019年7月8日 下午5:01:44
*/
@RestController
@RequestMapping("/qbjcbackPhoenix")
@Api(tags = "登陆")
public class LoginController{
public final static Logger log = LogManager.getLogger(LoginController.class);
@Autowired
private UserService userService;
@Autowired
private ProjectService projectService;
@Autowired
private RedisTools redisTools;
@ApiOperation("测试接口是否可通")
@GetMapping(value = "/test")
public String test() {
return "test success!welcome to qbjc world! 版本:2020/4/2";
}
@ApiOperation("测试Admin接口权限验证")
@GetMapping(value = "/admin/test")
public String testAdmin() {
return "test Admin! 有权限";
}
@GetMapping(value = "/getk")
public String getRedisKey() {
String info = redisTools.get("Direct:UserRsid:Admin-京东");
return info;
}
@ApiOperation("系统登陆")
@PostMapping(value = "/app/login")
public ReturnData appLogin(@RequestBody String info, HttpServletResponse resp, HttpServletRequest req) {
try {
JSONObject jsonlogin = JSON.parseObject(info);
String user = jsonlogin.getString("user").trim();
String password = jsonlogin.getString("password").trim();
String group = jsonlogin.getString("group").trim();
if (projectService.containProject(group)) {
User curUser = userService.validLogin(user, password, group);
if (Tools.isNull(curUser)) {
new ReturnData(false, "登陆失败,账号密码错误");
} else {
// 用户行为统计
UserBehavior.Builder builder = UserBehavior.builder().withId(null).withProject(curUser.getProject())
.withSubmitter(curUser.getUsername()).withCreateAt(System.currentTimeMillis())
.withFunctionModule("登陆记录").withBehavior_name("登陆");
userService.saveBehavior(builder.build());
String token = JwtUtil.sign(curUser, 365 * 24 * 3600 * 1000L);
// 缓存用户rsid
userService.cacheUserRsid(curUser.getUsername(), curUser.getProject());
// 缓存direct rsid
userService.cacheDirectRsid(curUser.getUsername(), curUser.getProject());
return new ReturnData(true, "登录成功", userService.returnLoginData(curUser, token, "情报监测"));
}
} else {
return new ReturnData(false, "登陆失败,请输入正确项目名");
}
return new ReturnData(false, "登陆失败,用户验证出错");
} catch (Exception e) {
log.error("登陆失败", e);
return new ReturnData(false, "登陆失败");
}
}
@ApiOperation("后台系统登陆")
@PostMapping(value = "/admin/login")
public ReturnData adminLogin(@RequestBody String info, HttpServletResponse resp, HttpServletRequest req) {
try {
JSONObject jsonlogin = JSON.parseObject(info);
String user = jsonlogin.getString("user").trim();
String password = jsonlogin.getString("password").trim();
String role = jsonlogin.getString("group").trim();
User curUser = userService.validAdminLogin(user, password, role);
if (Tools.isNull(curUser)) {
new ReturnData(false, "后台登陆失败,账号密码错误");
} else {
String token = JwtUtil.sign(curUser, 365 * 24 * 3600 * 1000L);
if (!Tools.isNull(token)) {
Map<String, Object> login = new HashMap<>(3);
login.put("user", user);
login.put("group", role);
login.put("token", token);
return new ReturnData(true, "后台登陆成功", login);
}
}
return new ReturnData(false, "后台登陆失败,用户验证出错");
} catch (Exception e) {
log.error("后台登陆失败", e);
return new ReturnData(false, "后台登陆失败");
}
}
@ApiOperation("外部-系统登陆")
@PostMapping(value = "/login")
public ReturnData login(@RequestBody String info, HttpServletResponse resp, HttpServletRequest req) {
try {
JSONObject jsonlogin = JSON.parseObject(info);
String user = jsonlogin.getString("user").trim();
String password = jsonlogin.getString("password").trim();
String group = jsonlogin.getString("group").trim();
if (projectService.containProject(group)) {
User curUser = userService.validLogin(user, password, group);
if (Tools.isNull(curUser)) {
new ReturnData(false, "登陆失败,账号密码错误");
} else {
String token = JwtUtil.sign(curUser, 365 * 24 * 3600 * 1000L);
return new ReturnData(true, "登录成功", userService.returnLoginData(curUser, token, "情报监测"));
}
} else {
return new ReturnData(false, "登陆失败,请输入正确项目名");
}
return new ReturnData(false, "登陆失败,用户验证出错");
} catch (Exception e) {
log.error("登陆失败", e);
return new ReturnData(false, "登陆失败");
}
}
}
package com.zhiwei.qbjc.controller.admin;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.zhiwei.qbjc.config.GenericAttribute;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.Project;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.service.ProjectService;
import com.zhiwei.qbjc.service.UserService;
import com.zhiwei.qbjc.util.Tools;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 后台-项目管理Controller
*
* @ClassName: ProjectController
* @Description: 后台-项目管理Controller
* @author shentao
* @date 2019年7月8日 下午5:17:24
*/
@RestController
@RequestMapping("/qbjcbackPhoenix/admin/projectmanager")
@Api(tags = "后台-项目管理")
public class ProjectController {
public final static Logger log = LogManager.getLogger(ProjectController.class);
@Autowired
private ProjectService projectService;
@Autowired
private UserService userService;
@ApiOperation("后台-项目管理-删除项目")
@DeleteMapping("/{id}")
public ReturnData deleteProject(@RequestBody Project project, @PathVariable String id, HttpServletRequest req) {
try {
projectService.deleteProject(id, project);
return new ReturnData(true, "项目管理-删除项目成功");
} catch (Exception e) {
log.error("项目管理-删除项目失败", e);
return new ReturnData(false, "项目管理-删除项目失败");
}
}
@ApiOperation("后台-项目管理-修改项目")
@PutMapping("/{id}")
public ReturnData modifyProject(@RequestBody Project project, @PathVariable String id, HttpServletRequest req) {
try {
project.setCreateAt(System.currentTimeMillis());
projectService.modifyProject(id, project);
return new ReturnData(true, "项目管理-修改项目成功");
} catch (Exception e) {
log.error("项目管理-修改项目失败", e);
return new ReturnData(false, "项目管理-修改项目失败");
}
}
@ApiOperation("后台-项目管理-添加项目")
@PostMapping
public ReturnData addProject(@RequestBody Project project, HttpServletRequest req) {
try {
User admin = userService.adminCookieInfo(req.getCookies());
String submitter = admin.getUsername();
if (projectService.containProject(project.getProjectName())) {
return new ReturnData(false, "已存在重复项目名,创建项目失败");
} else {
return projectService.addProject(project, submitter);
}
} catch (Exception e) {
log.error("项目管理-添加项目失败", e);
return new ReturnData(false, "项目管理-添加项目失败");
}
}
@ApiOperation("后台-项目管理-列表")
@GetMapping
public ReturnData getProjects(@RequestParam(value = "page") String page,
@RequestParam(value = "department", required = false, defaultValue = "") String department,
HttpServletRequest req) {
try {
Map<String, Object> data = new HashMap<>(3);
if (Tools.isEmpty(department)) {
List<Project> list = projectService.getProjectsByPageAndPageSize(Integer.parseInt(page),
GenericAttribute.PROJECT_LIMIT);
long total = projectService.totalProjects();
// (总记录数+每页行数-1)/每页行数
int totalpage = (int) (total + GenericAttribute.PROJECT_LIMIT - 1) / GenericAttribute.PROJECT_LIMIT;
data.put("list", list);
data.put("page", Integer.parseInt(page));
data.put("total", totalpage);
} else {
List<Project> list = projectService.getProjects(department, Integer.parseInt(page),
GenericAttribute.PROJECT_LIMIT);
long total = projectService.totalProjects(department);
// (总记录数+每页行数-1)/每页行数
int totalpage = (int) (total + GenericAttribute.PROJECT_LIMIT - 1) / GenericAttribute.PROJECT_LIMIT;
data.put("list", list);
data.put("page", Integer.parseInt(page));
data.put("total", totalpage);
}
return new ReturnData(true, "项目管理-获取列表成功", data);
} catch (Exception e) {
log.error("项目管理-获取列表失败", e);
return new ReturnData(false, "项目管理-获取列表失败");
}
}
@ApiOperation("后台-项目管理-部门列表")
@GetMapping("/department")
public ReturnData getProjectsDepartment(HttpServletRequest req) {
try {
List<String> list = Arrays.asList("腾讯项目部", "美团项目部", "京东项目部", "金融项目部", "LP项目部", "H&B项目部", "其他","停用");
Map<String, Object> data = new HashMap<>(1);
data.put("list", list);
return new ReturnData(true, "项目管理-获取部门列表成功", data);
} catch (Exception e) {
log.error("项目管理-获取部门列表失败", e);
return new ReturnData(false, "项目管理-获取部门列表失败");
}
}
}
package com.zhiwei.qbjc.controller.admin;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.zhiwei.qbjc.config.GenericAttribute;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.SystemLog;
import com.zhiwei.qbjc.service.ProjectService;
import com.zhiwei.qbjc.service.SystemService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 后台-系统日志Controller
*
* @ClassName: SystemLogController
* @Description: 后台-系统日志Controller
* @author shentao
* @date 2019年7月8日 下午5:18:09
*/
@RestController
@RequestMapping("/qbjcbackPhoenix/admin/systemlog")
@Api(tags = "后台-系统日志")
public class SystemLogController {
public final static Logger log = LogManager.getLogger(SystemLogController.class);
@Autowired
private SystemService systemService;
@Autowired
private ProjectService projectService;
@ApiOperation("后台-系统日志-日志模块下拉菜单")
@GetMapping("/modules")
public ReturnData getModule(HttpServletRequest req) {
try {
Map<String, Object> data = new HashMap<>(1);
data.put("list", GenericAttribute.MODULE_LIST);
return new ReturnData(true, "系统日志-获取模块成功", data);
} catch (Exception e) {
log.error("系统日志-获取模块失败", e);
return new ReturnData(false, "系统日志-获取模块失败");
}
}
@ApiOperation("后台-系统日志-日志项目下拉菜单")
@GetMapping("/projects")
public ReturnData getPorject(HttpServletRequest req) {
try {
Map<String, Object> data = new HashMap<>(1);
data.put("list", projectService.getAllProject());
return new ReturnData(true, "系统日志-获取项目成功", data);
} catch (Exception e) {
log.error("系统日志-获取项目失败", e);
return new ReturnData(false, "系统日志-获取项目失败");
}
}
@ApiOperation("后台-系统日志-日志列表")
@GetMapping
public ReturnData getSystemLog(@RequestParam(value = "page") String page,
@RequestParam(value = "project", required = false, defaultValue = "") String project,
@RequestParam(value = "module", required = false, defaultValue = "") String module,
HttpServletRequest req) {
try {
List<SystemLog> list = systemService.getSystemLogsByPageAndPageLimitAndProjectAndModule(
Integer.parseInt(page), GenericAttribute.SL_LIMIT, project, module);
long total = systemService.totalSystemLogsByProjectAndModule(project, module);
// (总记录数+每页行数-1)/每页行数
int totalpage = (int) (total + GenericAttribute.SL_LIMIT - 1) / GenericAttribute.SL_LIMIT;
Map<String, Object> data = new HashMap<>(3);
data.put("list", list);
data.put("page", Integer.parseInt(page));
data.put("total", totalpage);
return new ReturnData(true, "系统日志-获取日志列表成功", data);
} catch (Exception e) {
log.error("系统日志-获取日志列表失败", e);
return new ReturnData(false, "系统日志-获取日志列表失败");
}
}
}
package com.zhiwei.qbjc.controller.admin;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.zhiwei.qbjc.config.GenericAttribute;
import com.zhiwei.qbjc.controller.app.AuthController;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 后台-用户管理Controller
*
* @ClassName: UserManagerController
* @Description: 后台-用户管理Controller
* @author shentao
* @date 2019年7月8日 下午5:08:51
*/
@RestController
@RequestMapping("/qbjcbackPhoenix/admin/usermanager")
@Api(tags = "后台-用户管理")
public class UserManagerController {
public final static Logger log = LogManager.getLogger(AuthController.class);
@Autowired
private UserService userService;
@ApiOperation("后台-用户管理列表")
@GetMapping
public ReturnData getUserManagerList(@RequestParam(value = "page") int page,
@RequestParam(value = "project", required = false, defaultValue = "") String project,
HttpServletRequest req) {
try {
List<User> list = userService.getUsersByPageAndPageSizeAndProject(page, GenericAttribute.USER_LIMIT,
project);
long total = userService.totalUserByPorject(project);
// (总记录数+每页行数-1)/每页行数
int totalpage = (int) (total + GenericAttribute.USER_LIMIT - 1) / GenericAttribute.USER_LIMIT;
Map<String, Object> data = new HashMap<>(3);
data.put("list", list);
data.put("page", page);
data.put("total", totalpage);
return new ReturnData(true, "获取用户管理列表成功", data);
} catch (Exception e) {
log.error("获取用户管理列表出错", e);
return new ReturnData(false, "获取用户管理列表出错");
}
}
@ApiOperation("后台-用户添加")
@PostMapping
public ReturnData addUser(@RequestBody User user, HttpServletRequest req) {
try {
User admin = userService.adminCookieInfo(req.getCookies());
user.setSubmitter(admin.getUsername());
return userService.addUser(user);
} catch (Exception e) {
log.error("后台-用户添加出错", e);
return new ReturnData(false, "后台-用户添加出错");
}
}
@ApiOperation("后台-用户修改")
@PutMapping("/{id}")
public ReturnData modifyUser(@RequestBody User user, @PathVariable String id, HttpServletRequest req) {
try {
User admin = userService.adminCookieInfo(req.getCookies());
user.setId(Long.parseLong(id));
user.setSubmitter(admin.getUsername());
return userService.modifyUser(user);
} catch (Exception e) {
log.error("后台-用户修改出错", e);
return new ReturnData(false, "后台-用户修改出错");
}
}
@ApiOperation("后台-用户删除")
@DeleteMapping("/{id}")
public ReturnData deleteUser(@PathVariable String id, HttpServletRequest req) {
try {
User admin = userService.adminCookieInfo(req.getCookies());
User user = userService.getUserById(Long.parseLong(id));
user.setSubmitter(admin.getUsername());
return userService.deleteUser(user);
} catch (Exception e) {
log.error("后台-用户修改出错", e);
return new ReturnData(false, "后台-用户修改出错");
}
}
}
package com.zhiwei.qbjc.controller.app;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.qbjc.dubbo.DubboClient;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.DownloadInfos;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.pojo.entity.UserBehavior;
import com.zhiwei.qbjc.service.DownloadIntegrationService;
import com.zhiwei.qbjc.service.ProjectService;
import com.zhiwei.qbjc.service.UserService;
import com.zhiwei.qbjc.util.EscapeUnescape;
import com.zhiwei.qbjc.util.Tools;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
* 权限Controller
*
* @ClassName: AuthController
* @Description: 权限Controller 此
* @author shentao
* @date 2019年7月8日 下午5:18:42
*/
@RestController
@RequestMapping("/qbjcbackPhoenix/auth")
@Api(tags = "权限")
public class AuthController {
public final static Logger log = LogManager.getLogger(AuthController.class);
private final UserService userService;
private final ProjectService projectService;
private final DubboClient dubboClient;
private final DownloadIntegrationService integrationService;
public AuthController(UserService userService, ProjectService projectService, DubboClient dubboClient, DownloadIntegrationService integrationService) {
this.userService = userService;
this.projectService = projectService;
this.dubboClient = dubboClient;
this.integrationService = integrationService;
}
@ApiOperation("用户行为记录")
@PostMapping(value = "/user/behavior")
public ReturnData setUserBehavior(@RequestBody String info, HttpServletRequest req) {
try {
JSONObject jsonInfo = JSON.parseObject(info);
UserBehavior behavior = JSONObject.parseObject(jsonInfo.getString("behavior"), UserBehavior.class);
userService.rebuild(behavior);
userService.saveBehavior(behavior);
return new ReturnData(true, "行为记录获取成功");
} catch (Exception e) {
log.error("行为记录获取出错", e);
return new ReturnData(false, "行为记录获取出错");
}
}
@ApiOperation("获取项目权限")
@GetMapping(value = "/hasPermission")
public ReturnData hasPermission(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Map<String, Object> data = projectService.getProjectPermissions(user.getProject());
return new ReturnData(true, "获取项目权限成功", data);
} catch (Exception e) {
log.error("获取项目权限出错", e);
return new ReturnData(false, "获取项目权限出错");
}
}
@ApiOperation("获取用户登录起始消息流位置")
@PostMapping(value = "/rsid")
public ReturnData cacheUserRsid(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
// 缓存用户rsid
userService.cacheUserRsid(user.getUsername(), user.getProject());
// 缓存direct rsid
userService.cacheDirectRsid(user.getUsername(), user.getProject());
return new ReturnData(true, "获取用户登录起始消息流位置成功");
} catch (Exception e) {
log.error("获取用户登录起始消息流位置出错", e);
return new ReturnData(false, "获取用户登录起始消息流位置出错");
}
}
@ApiOperation("获取用户聚合信息")
@PostMapping(value = "/aggregation/{userId}")
public ReturnData monitorAggregationProject(@PathVariable String userId) {
try {
return new ReturnData(true, "获取用户聚合信息成功" , dubboClient.monitorAggregationProject(userId));
} catch (Exception e) {
log.error("获取用户聚合信息出错", e);
return new ReturnData(false, "获取用户聚合信息出错");
}
}
@ApiOperation("验证用户下载权限")
@PostMapping(value = "/download")
public ReturnData auth(HttpServletRequest req, @RequestBody String info) {
try {
JSONObject json = JSONObject.parseObject(info);
String taglist = json.getString("taglist");
if(!Tools.isEmpty(taglist)){
json.put("taglist","");
}
info = EscapeUnescape.unescape(json.toJSONString());
info = EscapeUnescape.unescape(info);
String userId = req.getHeader("User-Id");
String project = req.getHeader("Project");
String department = req.getHeader("Department");
String nickName = req.getHeader("Nickname");
JSONObject jsonInfo = JSONObject.parseObject(info);
String url = jsonInfo.getString("uri");
String method = jsonInfo.getString("method");
method = method.toUpperCase();
project = EscapeUnescape.unescape(project);
department = EscapeUnescape.unescape(department);
nickName = EscapeUnescape.unescape(nickName);
log.info("验证用户下载权限,userId:{};project:{};department:{};url:{};method:{}",userId, project, department, url, method);
if (dubboClient.authUserPermissionAggregation(userId, project, department, url, method)) {
DownloadInfos downloadInfos = new DownloadInfos(info, taglist, project, nickName);
String id = integrationService.insertDownloadInfos(downloadInfos);
return new ReturnData(true, "验证用户下载权限成功", id);
} else {
return new ReturnData(false, "验证用户下载权限失败,无权限");
}
} catch (Exception e) {
log.error("验证用户下载权限出错", e);
return new ReturnData(false, "验证用户下载权限出错");
}
}
}
package com.zhiwei.qbjc.controller.app.serve;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.MarkDownloadInfo;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.service.AutoMarkService;
import com.zhiwei.qbjc.service.MarkService;
import com.zhiwei.qbjc.service.UserService;
import com.zhiwei.qbjc.util.EscapeUnescape;
import com.zhiwei.qbjc.util.PoiUtil;
import com.zhiwei.qbjc.util.Tools;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;
/**
* 数据-自动标注Controller
*
* @ClassName: AutoMarkController
* @Description: 数据-自动标注Controller
* @author shentao
* @date 2019年7月8日 下午5:19:32
*/
@RestController
@RequestMapping("/qbjcbackPhoenix/app/automark")
@Api(tags = "数据-自动标注")
public class AutoMarkController {
public final static Logger log = LogManager.getLogger(AutoMarkController.class);
@Autowired
private UserService userService;
@Autowired
private AutoMarkService autoMarkService;
@Autowired
private MarkService markService;
@ApiOperation("数据-自动标注-获取模板")
@GetMapping(value = "/auto")
public ReturnData getAuto(@RequestParam(value = "startTime") long startTime,
@RequestParam(value = "endTime") long endTime, @RequestParam(value = "tags") String tagsStr,
@RequestParam(value = "searchInfo") String searchInfo, @RequestParam(value = "pageLimit") int pageLimit,
@RequestParam(value = "page") int page, @RequestParam(value = "orderField") String orderField,
@RequestParam(value = "isAsc") Boolean isAsc, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Map<String, Object> data = autoMarkService.getAuto(startTime, endTime, tagsStr, searchInfo, pageLimit, page,
orderField, isAsc, user.getProject());
return new ReturnData(true, "数据-自动标注-获取成功", data);
} catch (Exception e) {
log.error("数据-自动标注-获取出错", e);
return new ReturnData(false, "数据-自动标注-获取出错");
}
}
@ApiOperation("数据-自动标注-修改模板")
@PostMapping(value = "/auto")
public ReturnData updateAuto(
@ApiParam(name = "info", value = "数据-自动标注-修改模板-json:{\"tags\":\"\",\"title\":\"\"}", required = true) @RequestBody String info,
HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
JSONObject jsonInfo = JSONObject.parseObject(info);
String tagsStr = jsonInfo.getString("tags");
String title = jsonInfo.getString("title");
if (autoMarkService.updateAuto(tagsStr, title, user.getProject())) {
return new ReturnData(true, "数据-自动标注-修改模板成功");
} else {
return new ReturnData(false, "数据-自动标注-修改模板失败");
}
} catch (Exception e) {
log.error("数据-自动标注-修改模板出错", e);
return new ReturnData(false, "数据-自动标注-修改模板出错");
}
}
@ApiOperation("数据-自动标注-模板下载")
@PostMapping(value = "/download/file")
public String downLoadAuto(@RequestParam(name = "templateTitle") String templateTitle,
@RequestParam(name = "project") String project,
HttpServletResponse response) {
try {
templateTitle = EscapeUnescape.unescape(templateTitle);
project = EscapeUnescape.unescape(project);
//User user = userService.userCookieInfo(req.getCookies());
// User user = userService.userHeaderInfo(req);
List<List<String>> heads = markService.getUploadHeads(project);
//自动化获取数据
List<MarkDownloadInfo> infos = markService.getAutoMarkDownloadInfos(project, templateTitle);
//定义文件名
String fileName = templateTitle + "_" + System.currentTimeMillis() + ".xlsx";
try (OutputStream out = PoiUtil.formDataOutputStream(response, fileName)) {
ExcelWriter writer = PoiUtil.getAutoMarkDownload(response.getOutputStream(), heads, infos);
writer.finish();
out.flush();
} catch (Exception e) {
log.error("数据-自动标注-模板下载出错-表格生成阶段", e);
return "数据-自动标注-模板下载出错-表格生成阶段";
}
return "数据-自动标注-模板下载成功";
}catch (Exception e){
log.error("数据-自动标注-模板下载出错", e);
return "数据-自动标注-模板下载出错";
}
}
@ApiOperation("数据-自动标注-获取父标题")
@GetMapping("/auto/parent")
public ReturnData getParentTemplateTitle(@RequestParam(name = "templateTitle") String templateTitle,@RequestParam(name = "mupdate")String mupdate ,HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Map<String, Object> res = autoMarkService.getParentTemplateTitle(user.getProject(), templateTitle, mupdate);
if(Tools.isEmpty(res)){
return new ReturnData(false,"数据-自动标注-父标题不存在");
}
return new ReturnData(true,"数据-自动标注-父标题不存在", res);
}catch (Exception e){
log.error("数据-自动标注-获取父标题失败");
return new ReturnData(false, "数据-自动标注-获取父标题失败");
}
}
}
package com.zhiwei.qbjc.controller.app.serve;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.DirectGroup;
import com.zhiwei.qbjc.pojo.entity.MessageFlowEntity;
import com.zhiwei.qbjc.pojo.entity.Tag;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.redis.RedisTools;
import com.zhiwei.qbjc.service.DirectService;
import com.zhiwei.qbjc.service.TagService;
import com.zhiwei.qbjc.service.UserService;
import com.zhiwei.qbjc.service.impl.MessageServiceImpl;
import com.zhiwei.qbjc.util.EscapeUnescape;
import com.zhiwei.qbjc.util.Tools;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 监测-定向监测Controller
*
* @ClassName: DirectMonitorController
* @Description: 监测-定向监测Controller
* @author shentao
* @date 2019年7月8日 下午5:19:50
*/
@RestController
@RequestMapping("/qbjcbackPhoenix/app/direct/monitor")
@Api(tags = "监测-定向监测")
public class DirectMonitorController {
public final static Logger log = LogManager.getLogger(DirectMonitorController.class);
@Autowired
private UserService userService;
@Autowired
private DirectService directService;
@Autowired
private RedisTools redisTools;
@Autowired
private MessageServiceImpl messageService;
@Autowired
private TagService tagService;
@ApiOperation("定向监测-nav")
@GetMapping(value = "/nav")
public ReturnData getNav(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Map<String, Object> data = directService.getNav(user.getProject());
return new ReturnData(true, "定向监测-nav成功", data);
} catch (Exception e) {
log.error("定向监测-nav出错", e);
return new ReturnData(false, "定向监测-nav出错");
}
}
@ApiOperation("定向监测-Monitor")
@GetMapping
public ReturnData getMonitor(@RequestParam(value = "groupId") String groupId,
@RequestParam(value = "page") int page, @RequestParam(value = "pageSize") int pageSize,
HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
DirectGroup directGroup = directService.getDirectGroupByid(groupId);
String directKey = redisTools.getDirectKey(user.getProject(), directGroup.getName());
String userRsidKey = redisTools.getDirectRsidKey(user.getUsername(), user.getProject());
long oldrsid = redisTools.getDirectOldRsid(userRsidKey, directGroup.getName());
int newDataCount = page == 1 ? 0 : redisTools.getNewCount(directKey, oldrsid);
List<String> infos = redisTools.getMonitor(directKey, page, pageSize, newDataCount);
long bmid = redisTools.getDirectBookMarkId(user.getProject(), directGroup.getName());
List<Tag> tags = directGroup.getTag() ? tagService.getIsShowTags(user.getProject()) : null;
List<MessageFlowEntity> list = messageService.matchDirectInfo(infos, bmid, tags, directGroup);
Map<String, Object> data = new HashMap<>(8);
if (page == 1) {
long endrsid = redisTools.getEndRsid(infos);
redisTools.setDirectEndRsid(userRsidKey, endrsid, directGroup.getName());
data.put("endrsid", endrsid);
data.put("oldrsid", oldrsid);
}
data.put("list", list);
data.put("page", page);
data.put("bmid", bmid);
long totalCount = redisTools.countSortSet(directKey);
int total = Tools.totalPage(totalCount, pageSize);
data.put("total", total);
data = directGroup.getTag() ? messageService.getMarkTagInfo(data, tags) : data;
return new ReturnData(true, "定向监测-消息流获取成功", data);
} catch (Exception e) {
log.error("定向监测-消息流获取出错", e);
return new ReturnData(false, "定向监测-消息流获取出错");
}
}
@ApiOperation("定向监测-气泡值")
@GetMapping(value = "/getNewAll")
public ReturnData getNewCountAll(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Map<String, Object> data = directService.getNewCountAll(user.getUsername(), user.getProject());
return new ReturnData(true, "定向监测-气泡值获取成功", data);
} catch (Exception e) {
log.error("定向监测-气泡值获取出错", e);
return new ReturnData(false, "定向监测-气泡值获取出错");
}
}
@ApiOperation("定向监测-红条值")
@GetMapping(value = "/getNew")
public ReturnData getNewCount(@RequestParam(value = "groupName") String groupName, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
groupName = EscapeUnescape.unescape(groupName);
Map<String, Object> data = directService.getNewCount(groupName, user.getUsername(), user.getProject());
return new ReturnData(true, "定向监测-红条值获取成功", data);
} catch (Exception e) {
log.error("定向监测-红条值获取出错", e);
return new ReturnData(false, "定向监测-红条值获取出错");
}
}
@ApiOperation("定向监测-单个书签添加")
@GetMapping(value = "/bookmark/single")
public ReturnData addbookmark(@RequestParam(value = "groupName") String groupName,
@RequestParam(value = "gid") String gid, HttpServletRequest req) {
StringBuilder msg = new StringBuilder().append("定向监测-添加").append(groupName);
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
directService.addbookmark(groupName, gid, user.getProject());
return new ReturnData(true, msg.append("书签成功").toString());
} catch (Exception e) {
log.error("定向监测-添加{}书签出错", groupName, e);
return new ReturnData(false, msg.append("书签出错").toString());
}
}
@ApiOperation("定向监测-全部书签添加")
@GetMapping(value = "/bookmark")
public ReturnData addbookmarks(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
directService.addbookmarks(user.getUsername(), user.getProject());
return new ReturnData(true, "定向监测-添加书签s成功");
} catch (Exception e) {
log.error("定向监测-添加书签s出错", e);
return new ReturnData(false, "定向监测-添加书签s出错");
}
}
}
package com.zhiwei.qbjc.controller.app.serve;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.DownloadInfos;
import com.zhiwei.qbjc.pojo.enums.DownloadUris;
import com.zhiwei.qbjc.service.DownloadIntegrationService;
import com.zhiwei.qbjc.util.Tools;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import static com.zhiwei.qbjc.pojo.enums.DownloadUris.create;
/**
* Description:
*
* @author LiuMingHuan
* @classname DownloadIntegraController
* @date 2020/2/4
*/
@RestController
@RequestMapping(value = "/qbjcbackPhoenix/app/download/integra")
@Api(tags = "数据-下载接口整合")
public class DownloadIntegrationController {
private static final Logger log = LogManager.getLogger(DownloadIntegrationController.class);
private final DownloadIntegrationService integrationService;
public DownloadIntegrationController(DownloadIntegrationService integrationService) {
this.integrationService = integrationService;
}
@PostMapping("/{id}")
@ApiOperation("数据-下载接口整合-下载")
public String downloadIntegration(@PathVariable String id, HttpServletResponse response) {
try {
DownloadInfos downloadInfos = integrationService.getDownloadInfosById(id);
String uri = downloadInfos.getUri();
String notice = "";
DownloadUris download = create(uri);
if (!Tools.isNull(download)) {
switch (download) {
case AUTO_MARK:
notice = integrationService.getAutoMarkDownloadWriter(downloadInfos, response);
break;
case EVENT_DEFAULT_FORM:
notice = integrationService.getEventDefaultFormWriter(downloadInfos, response);
break;
case EVENT:
notice = integrationService.getEventDownloadsZip(downloadInfos, response);
break;
case EVENT_FORM:
notice = integrationService.getDownloadEventsWriter(downloadInfos, response);
break;
case EVENT_BATCH:
notice = integrationService.getEventBatchDownload(downloadInfos, response);
break;
case EVENT_COLLECTION_RECORD:
notice = integrationService.getEventRecordCollectionDownload(downloadInfos, response);
break;
case EVENT_COLLECTION:
notice = integrationService.getEventCollectionDownload(downloadInfos, response);
break;
case EVENT_COLLECTION_CHECKED_FORM:
notice = integrationService.getOriginEventCollectionDownloads(downloadInfos, response);
break;
case DIRECT_MEMBER:
notice = integrationService.getMemberDownloadsWriter(downloadInfos, response);
break;
case NOISE_COLLECTION:
notice =integrationService.getNoiseCollectionDownloadWriter(downloadInfos,response);
break;
case FLOW_COUNT:
notice = integrationService.getFlowCountWriter(downloadInfos, response);
break;
case DIRECT_KEYWORD:
notice = integrationService.getDirectKeywordWriter(downloadInfos, response);
break;
case KEYWORD:
notice = integrationService.getKeywordWriter(downloadInfos, response);
break;
case MARK_DOWNLOAD:
notice = integrationService.getMarkDownloadsZip(downloadInfos, response);
break;
case FAST_MARK_DOWNLOAD:
notice = integrationService.getFastDownloadWriter(downloadInfos, response);
break;
case UPLOAD_FORM:
notice = integrationService.getMarkUploadForm(downloadInfos, response);
break;
case UPLOAD_DEFAULT_FORM:
notice = integrationService.getUploadDefaultFormWriter(downloadInfos, response);
break;
case BRIEF_REPORT_TASK:
notice = integrationService.getBriefReportTaskDoc(downloadInfos, response);
break;
case SEARCH_OUTPUT:
notice = integrationService.getSearchOutputForm(downloadInfos, response);
break;
case SUPPLY_COLLECTION:
notice = integrationService.getSupplyCollectionForm(downloadInfos,response);
break;
case SUPPLY_COLLECTION_RECORD:
notice = integrationService.getSupplyCollectionRecordForm(downloadInfos, response);
default:
break;
}
//返回值整合
ReturnData returnData = JSONObject.parseObject(notice, ReturnData.class);
if (returnData.isStatus()) {
return returnData.getMessage();
} else {
throw new Exception(returnData.getMessage());
}
} else {
return "数据-下载接口整合-下载-uri有误";
}
} catch (Exception e) {
log.error(e.getMessage(), e);
return e.getMessage();
}
}
}
package com.zhiwei.qbjc.controller.app.serve;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.Frame;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.service.UserService;
import com.zhiwei.qbjc.service.impl.MessageServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
/**
* Description:
*
* @author LiuMingHuan
* @classname ShotPageCollectionController
* @date 2019/12/2
*/
@RestController
@RequestMapping("/qbjcbackPhoenix/app/frame")
@Api(tags = "简报-帧实收藏")
public class FrameController {
public final static Logger log = LogManager.getLogger(FrameController.class);
private final UserService userService;
private final MessageServiceImpl messageService;
public FrameController(UserService userService, MessageServiceImpl messageService) {
this.userService = userService;
this.messageService = messageService;
}
@ApiOperation("简报-帧实-收藏")
@PostMapping("/{id}")
public ReturnData saveShotPage(@PathVariable String id, @ApiParam(name = "info", value = "快照收藏内容-json: {'title':,'url':,'keyword':,'source':,'content':,'time':} ")
@RequestBody String info, HttpServletRequest req) {
try {
//用户信息获取
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
messageService.saveShotPage(id, user.getProject(), user.getUsername(),info);
return new ReturnData(true, "帧实-收藏成功");
} catch (Exception e) {
log.error("帧实-收藏出错", e);
return new ReturnData(false, "帧实-收藏出错");
}
}
@ApiOperation("简报-帧实-编辑")
@PutMapping
public ReturnData editShotPage(@RequestBody Frame frame, HttpServletRequest req) {
try {
//用户信息获取
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
messageService.editShotPage(frame, user.getUsername());
return new ReturnData(true, "帧实-编辑成功");
} catch (Exception e) {
log.error("帧实-编辑出错", e);
return new ReturnData(false, "帧实-编辑出错");
}
}
@ApiOperation("简报-帧实-获取列表")
@GetMapping
public ReturnData getShotPages(@RequestParam(defaultValue = "1") int page,@RequestParam(defaultValue = "15") int pageSize, @RequestParam(defaultValue = "") String searchInfo,
Long startTime, Long endTime, HttpServletRequest req) {
try {
//用户信息获取
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Map<String,Object> res = messageService.getShotPages(user.getProject(), page, pageSize, searchInfo, startTime, endTime);
return new ReturnData(true, "帧实-获取列表成功", res);
} catch (Exception e) {
log.error("帧实-获取列表出错", e);
return new ReturnData(false, "帧实-获取列表出错");
}
}
@ApiOperation("简报-帧实-删除")
@DeleteMapping("/{id}")
public ReturnData deleteShotPages(@PathVariable String id) {
try {
messageService.removeShotPage(id);
return new ReturnData(true, "帧实-删除成功");
} catch (Exception e) {
log.error("帧实-删除出错", e);
return new ReturnData(false, "帧实-删除出错");
}
}
@ApiOperation("简报-帧实-获取详情")
@GetMapping("/{id}")
public ReturnData getShotPage(@PathVariable String id) {
try {
Frame frame = messageService.getShotPageById(id);
return new ReturnData(true, "帧实-获取详情成功", frame);
} catch (Exception e) {
log.error("帧实-获取详情出错", e);
return new ReturnData(false, "帧实-获取详情出错");
}
}
}
package com.zhiwei.qbjc.controller.app.serve;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.MessageFlowEntity;
import com.zhiwei.qbjc.pojo.entity.Tag;
import com.zhiwei.qbjc.pojo.entity.TrackRule;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.redis.RedisTools;
import com.zhiwei.qbjc.service.KeywordService;
import com.zhiwei.qbjc.service.MonitorService;
import com.zhiwei.qbjc.service.TagService;
import com.zhiwei.qbjc.service.TrackRuleService;
import com.zhiwei.qbjc.service.UserService;
import com.zhiwei.qbjc.service.impl.MessageServiceImpl;
import com.zhiwei.qbjc.util.EscapeUnescape;
import com.zhiwei.qbjc.util.Tools;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 监测-情报监测
*
* @ClassName: MonitorController
* @Description: 监测-情报监测
* @author shentao
* @date 2019年6月29日 上午9:52:33
*/
@RestController
@RequestMapping("/qbjcbackPhoenix/app/monitor")
@Api(tags = "监测-情报监测")
public class MonitorController {
public final static Logger log = LogManager.getLogger(MonitorController.class);
private final RedisTools redisTools;
private final MessageServiceImpl messageService;
private final UserService userService;
private final TagService tagService;
private final MonitorService monitorService;
private final KeywordService keywordService;
private final TrackRuleService trackRuleService;
public MonitorController(RedisTools redisTools, MessageServiceImpl messageService, UserService userService, TagService tagService, MonitorService monitorService, KeywordService keywordService, TrackRuleService trackRuleService) {
this.redisTools = redisTools;
this.messageService = messageService;
this.userService = userService;
this.tagService = tagService;
this.monitorService = monitorService;
this.keywordService = keywordService;
this.trackRuleService = trackRuleService;
}
@ApiOperation("情报监测-nav")
@GetMapping(value = "/nav")
public ReturnData getNav(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Map<String, Object> data = monitorService.getNav(user.getProject());
return new ReturnData(true, "情报监测-nav成功", data);
} catch (Exception e) {
log.error("情报监测-nav出错", e);
return new ReturnData(false, "情报监测-nav出错");
}
}
@ApiOperation("情报监测-Monitor")
@GetMapping
public ReturnData getMonitor(@RequestParam(value = "pt") String pt, @RequestParam(value = "keyWord") String keyWord,
@RequestParam(value = "page") int page, @RequestParam(value = "pageSize") int pageSize,
HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
pt = EscapeUnescape.unescape(pt);
keyWord = EscapeUnescape.unescape(keyWord);
String infoKey = redisTools.getInfoKey(pt, keyWord, user.getProject());
String userRsidKey = redisTools.getRsidKey(user.getUsername(), user.getProject());
long oldrsid = redisTools.getOldRsid(userRsidKey, keyWord, pt);
int newDataCount = page == 1 ? 0 : redisTools.getNewCount(infoKey, oldrsid);
List<String> infos = redisTools.getMonitor(infoKey, page, pageSize, newDataCount);
long bmid = redisTools.getBookMarkId(user.getProject(), pt);
List<Tag> tags = tagService.getIsShowTags(user.getProject());
List<TrackRule> trackRules = trackRuleService.getTrackRulesByProject(user.getProject());
List<MessageFlowEntity> list = messageService.matchInfo(infos, bmid, tags, trackRules, pt,
user.getProject());
Map<String, Object> data = new HashMap<>(8);
if (page == 1) {
long endrsid = redisTools.getEndRsid(infos);
redisTools.setEndRsid(userRsidKey, endrsid, keyWord, pt);
data.put("endrsid", endrsid);
data.put("oldrsid", oldrsid);
}
data.put("list", list);
data.put("page", page);
data.put("bmid", bmid);
long totalCount = redisTools.countSortSet(infoKey);
int total = Tools.totalPage(totalCount, pageSize);
data.put("total", total);
data = messageService.getMarkTagInfo(data, tags);
return new ReturnData(true, "情报监测-消息流获取成功", data);
} catch (Exception e) {
log.error("情报监测-消息流获取出错", e);
return new ReturnData(false, "情报监测-消息流获取出错");
}
}
@ApiOperation("情报监测-气泡值")
@GetMapping(value = "/getNewAll")
public ReturnData getNewCountAll(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Map<String, Object> data = monitorService.getNewCountAll(user.getUsername(), user.getProject());
return new ReturnData(true, "情报监测-气泡值获取成功", data);
} catch (Exception e) {
log.error("情报监测-气泡值获取出错", e);
return new ReturnData(false, "情报监测-气泡值获取出错");
}
}
@ApiOperation("情报监测-红条值")
@GetMapping(value = "/getNew")
public ReturnData getNewCount(@RequestParam(value = "pt") String pt,
@RequestParam(value = "keyWord") String keyWord, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
pt = EscapeUnescape.unescape(pt);
keyWord = EscapeUnescape.unescape(keyWord);
Map<String, Object> data = monitorService.getNewCount(pt, keyWord, user.getUsername(), user.getProject());
return new ReturnData(true, "情报监测-红条值获取成功", data);
} catch (Exception e) {
log.error("情报监测-红条值获取出错", e);
return new ReturnData(false, "情报监测-红条值获取出错");
}
}
@ApiOperation("情报监测-单个书签添加")
@GetMapping(value = "/bookmark/single")
public ReturnData addbookmark(@RequestParam(value = "pt") String pt, @RequestParam(value = "gid") String gid,
HttpServletRequest req) {
StringBuilder msg = new StringBuilder().append("情报监测-添加").append(pt);
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
monitorService.addbookmark(pt, gid, user.getProject());
return new ReturnData(true, msg.append("书签成功").toString());
} catch (Exception e) {
log.error("情报监测-添加{}书签出错", pt, e);
return new ReturnData(false, msg.append("书签出错").toString());
}
}
@ApiOperation("情报监测-全部书签添加")
@GetMapping(value = "/bookmark")
public ReturnData addbookmarks(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
monitorService.addbookmarks(user.getUsername(), user.getProject());
return new ReturnData(true, "情报监测-添加书签s成功");
} catch (Exception e) {
log.error("情报监测-添加书签s出错", e);
return new ReturnData(false, "情报监测-添加书签s出错");
}
}
@ApiOperation("情报监测-高亮关键词")
@GetMapping(value = "/keywords")
public ReturnData getHighLightKeyword(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
List<JSONObject> data = keywordService.getHighLightKeyWordsByProject(user.getProject());
return new ReturnData(true, "情报监测-获取keyword成功", data);
} catch (Exception e) {
log.error("情报监测-获取keyword出错", e);
return new ReturnData(false, "情报监测-获取keyword出错");
}
}
}
package com.zhiwei.qbjc.controller.app.serve;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.MessagePlatform;
import com.zhiwei.qbjc.pojo.entity.Tag;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.pojo.entity.UserBehavior;
import com.zhiwei.qbjc.pojo.vo.SearchSeniorVO;
import com.zhiwei.qbjc.pojo.vo.SearchVO;
import com.zhiwei.qbjc.service.PlatformService;
import com.zhiwei.qbjc.service.SearchService;
import com.zhiwei.qbjc.service.TagService;
import com.zhiwei.qbjc.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 搜索Controller
*
* @ClassName: SearchController
* @Description: 搜索Controller
* @author shentao
* @date 2019年7月8日 下午5:20:49
*/
@RestController
@RequestMapping("/qbjcbackPhoenix/app/search")
@Api(tags = "搜索")
public class SearchController {
public final static Logger log = LogManager.getLogger(SearchController.class);
/** 侧边栏 **/
private static String FUNCTIONMODULE = "情报搜索";
@Autowired
private UserService userService;
@Autowired
private PlatformService platformService;
@Autowired
private SearchService searchService;
@Autowired
private TagService tagService;
@ApiOperation("普通搜索")
@PostMapping
public ReturnData normalSearch(@RequestBody SearchVO search, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
List<MessagePlatform> platforms = platformService.getPlatformByIds(search.getPt());
List<Tag> tags = tagService.getIsShowTags(user.getProject());
Map<String, Object> data = searchService.normalSearch(search, platforms, tags, user);
// 用户行为统计
if (1 == search.getPage()) {
UserBehavior.Builder builder = UserBehavior.builder().withId(null).withProject(user.getProject())
.withSubmitter(user.getUsername()).withCreateAt(System.currentTimeMillis())
.withFunctionModule(FUNCTIONMODULE).withBehavior_name("普通搜索")
.withBehavior_property_one(search.getSearch())
.withBehavior_property_two(JSONObject.toJSONString(search.getPt()))
.withBehavior_property_three(search.getSort())
.withBehavior_property_four(String.valueOf(search.getStartTime()))
.withBehavior_property_five(String.valueOf(search.getEndTime()))
.withBehavior_property_six(String.valueOf(data.get("total")));
userService.saveBehavior(builder.build());
}
return new ReturnData(true, "普通搜索成功", data);
} catch (Exception e) {
log.error("普通搜索出错", e);
return new ReturnData(false, "普通搜索出错");
}
}
@ApiOperation("高级搜索")
@PostMapping("/senior")
public ReturnData seniorSearch(@RequestBody SearchSeniorVO search, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
List<MessagePlatform> platforms = platformService.getPlatformByIds(search.getPt());
List<Tag> tags = tagService.getIsShowTags(user.getProject());
Map<String, Object> data = searchService.seniorSearch(search, platforms, tags, user);
// 用户行为统计
if (1 == search.getPage()) {
UserBehavior.Builder builder = UserBehavior.builder().withId(null).withProject(user.getProject())
.withSubmitter(user.getUsername()).withCreateAt(System.currentTimeMillis())
.withFunctionModule(FUNCTIONMODULE).withBehavior_name("高级搜索")
.withBehavior_property_one(search.getSearch()).withBehavior_property_two(search.getMatchType())
.withBehavior_property_three(search.getSort())
.withBehavior_property_four(String.valueOf(search.getStartTime()))
.withBehavior_property_five(String.valueOf(search.getEndTime()))
.withBehavior_property_six(String.valueOf(data.get("total")))
.withBehavior_property_seven("allWords-" + search.getAllWords() + "|anyWords-"
+ search.getAnyWords() + "|notWords-" + search.getNotWords())
.withBehavior_property_eight(JSONObject.toJSONString(search.getPt()))
.withBehavior_property_nine("articleTimePts-old")
.withBehavior_property_ten("url-" + search.getUrl())
.withBehavior_property_eleven("source-" + search.getSource())
.withBehavior_property_twelve("cname-" + search.getCname())
.withBehavior_property_thirteen("timeType-" + search.getTimeType())
.withBehavior_property_fourteen("saveTimePts-old")
.withBehavior_property_fifteen("matchType-" + search.getMatchType());
userService.saveBehavior(builder.build());
}
return new ReturnData(true, "高级搜索成功", data);
} catch (Exception e) {
log.error("高级搜索出错", e);
return new ReturnData(false, "高级搜索出错");
}
}
}
package com.zhiwei.qbjc.controller.app.setting;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.CopyStyle;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.service.CopyStyleService;
import com.zhiwei.qbjc.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
/**
* 情报设置-样式设置Controller
*
* @ClassName: CopyStyleController
* @Description: 情报设置-样式设置Controller
* @author shentao
* @date 2019年7月8日 上午10:02:55
*/
@RestController
@RequestMapping("/qbjcbackPhoenix/app/setting/copystyle")
@Api(tags = "情报设置-样式设置")
public class CopyStyleController {
public final static Logger log = LogManager.getLogger(CopyStyleController.class);
private final UserService userService;
private final CopyStyleService copyStyleService;
public CopyStyleController(UserService userService, CopyStyleService copyStyleService) {
this.userService = userService;
this.copyStyleService = copyStyleService;
}
@ApiOperation("情报设置-样式设置-订阅样式")
@PostMapping("/use")
public ReturnData useCopyStyle(
@RequestBody @ApiParam(name = "info", value = "样式设置-use-json:{\"id\":\"\"}", required = true) String info,
HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
JSONObject jsonInfo = JSON.parseObject(info);
String id = jsonInfo.getString("id");
CopyStyle oldCopyStyle = copyStyleService.getCopyStyleByProject(user.getProject());
CopyStyle copyStyle = copyStyleService.getCopyStyleById(id);
copyStyleService.useCopyStyle(oldCopyStyle, copyStyle, user.getProject());
return new ReturnData(true, "样式设置-订阅样式成功");
} catch (Exception e) {
log.error("样式设置-订阅样式出错", e);
return new ReturnData(false, "样式设置-订阅样式出错");
}
}
@ApiOperation("情报设置-样式设置-修改样式")
@PutMapping
public ReturnData modifyCopyStyle(@RequestBody CopyStyle copyStyle, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
CopyStyle oldCopyStyle = copyStyleService.getCopyStyleById(copyStyle.getId());
if (!oldCopyStyle.getProject().contains(user.getProject())) {
return new ReturnData(false, "项目权限不足,无法修改默认模板和非自身项目创建的模板");
}else {
copyStyle.setProject(user.getProject());
copyStyle.setSubmitter(user.getUsername());
copyStyle.setUpdateAt(System.currentTimeMillis());
copyStyle.setUseProjects(oldCopyStyle.getUseProjects());
copyStyleService.modifyCopyStyle(copyStyle);
}
return new ReturnData(true, "样式设置-修改样式成功");
} catch (Exception e) {
log.error("样式设置-修改样式出错", e);
return new ReturnData(false, "样式设置-修改样式出错");
}
}
@ApiOperation("情报设置-样式设置-新增样式(并由提交项目订阅")
@PostMapping
public ReturnData addAndUseCopyStyle(@RequestBody CopyStyle copyStyle, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
long now = System.currentTimeMillis();
copyStyle.setId(null);
copyStyle.setProject(user.getProject());
copyStyle.setSubmitter(user.getUsername());
copyStyle.setCreateAt(now);
copyStyle.setUpdateAt(now);
copyStyle.setUseProjects(new ArrayList<>(Collections.singletonList(user.getProject())));
CopyStyle oldCopyStyle = copyStyleService.getCopyStyleByProject(user.getProject());
copyStyle = copyStyleService.addCopyStyle(copyStyle);
copyStyleService.useCopyStyle(oldCopyStyle, copyStyle, user.getProject());
return new ReturnData(true, "样式设置-新增样式成功");
} catch (Exception e) {
log.error("样式设置-新增样式出错", e);
return new ReturnData(false, "样式设置-新增样式出错");
}
}
@ApiOperation("情报设置-样式设置-列表")
@GetMapping("/list")
public ReturnData getCopyStyles(@RequestParam(value = "page") int page, @RequestParam(value = "pageSize") int size,
HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Map<String, Object> data = copyStyleService.getCopyStyleList(page, size, user.getProject());
return new ReturnData(true, "样式设置-列表获取成功", data);
} catch (Exception e) {
log.error("样式设置-列表获取出错", e);
return new ReturnData(false, "样式设置-列表获取出错");
}
}
@ApiOperation("情报设置-样式设置-当前复制样式")
@GetMapping
public ReturnData getCopyStyle(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
CopyStyle copyStyle = copyStyleService.getCopyStyleByProject(user.getProject());
Map<String, Object> data = new HashMap<>(1);
data.put("copyStyle", copyStyle);
return new ReturnData(true, "当前复制样式获取成功", data);
} catch (Exception e) {
log.error("当前复制样式获取出错", e);
return new ReturnData(false, "当前复制样式获取出错");
}
}
}
package com.zhiwei.qbjc.controller.app.setting;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.excel.ExcelWriter;
import com.zhiwei.qbjc.pojo.dto.FlowCountLogDTO;
import com.zhiwei.qbjc.pojo.dto.SimpleFlowCountLogDTO;
import com.zhiwei.qbjc.pojo.entity.UserBehavior;
import com.zhiwei.qbjc.service.impl.MessageServiceImpl;
import com.zhiwei.qbjc.util.EscapeUnescape;
import com.zhiwei.qbjc.util.PoiUtil;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.bind.annotation.*;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.service.ProjectService;
import com.zhiwei.qbjc.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/**
* @author shentao
* @ClassName: DataSourceController
* @Description: 平台订阅数据源Controller
* @date 2019年7月9日 下午7:21:59
*/
@RestController
@RequestMapping("/qbjcbackPhoenix/app/setting/dataSource")
@Api(tags = "情报设置-数据源")
public class DataSourceController {
public final static Logger log = LogManager.getLogger(DataSourceController.class);
private final UserService userService;
private final ProjectService projectService;
private final MessageServiceImpl messageService;
public DataSourceController(UserService userService, ProjectService projectService, MessageServiceImpl messageService) {
this.userService = userService;
this.projectService = projectService;
this.messageService = messageService;
}
@ApiOperation("消息流-计量表格导出")
@PostMapping("/count/download/file")
public String getFlowCountExcel(HttpServletResponse response, @RequestParam(value = "type") String type, @RequestParam(value = "timeType") String timeType,
@RequestParam(value = "startTime") long startTime, @RequestParam(value = "endTime") long endTime,@RequestParam(value = "project") String project) {
try {
// User user = userService.userHeaderInfo(req);
project = EscapeUnescape.unescape(project);
JSONObject res = messageService.getFlowCountLog(type, project, startTime, endTime, timeType);
String fileName = project + ("flow".equals(type) ? "_普通_消息流统计" : "_定向_消息流统计") + System.currentTimeMillis() + ".xlsx";
List<String> platforms = res.getJSONArray("platforms").toJavaList(String.class);
List<List<String>> heads = messageService.getFlowCountHeads(platforms);
List<FlowCountLogDTO> list = res.getJSONArray("list").toJavaList(FlowCountLogDTO.class);
List<SimpleFlowCountLogDTO> originList = res.getJSONArray("originList").toJavaList(SimpleFlowCountLogDTO.class);
try (OutputStream out = PoiUtil.formDataOutputStream(response, fileName)) {
ExcelWriter writer = PoiUtil.getFlowCountWriter(out, list, originList, heads);
writer.finish();
out.flush();
} catch (Exception e) {
log.error("消息流-计量表格-生成表格失败");
}
} catch (Exception e) {
log.error("消息流-计量表格导出出错", e);
return "消息流-计量表格导出出错";
}
return "消息流-计量表格导出成功";
}
@ApiOperation("数据源-平台")
@GetMapping
public ReturnData getDataSource(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Map<String, Object> data = projectService.getDataSource(user.getProject());
return new ReturnData(true, "数据源-平台获取成功", data);
} catch (Exception e) {
log.error("数据源-平台获取出错", e);
return new ReturnData(false, "数据源-平台获取出错");
}
}
@ApiOperation("数据源-平台订阅")
@PostMapping
public ReturnData subscribeDataSource(
@ApiParam(name = "info", value = "数据源-平台订阅-json:{\"id\":\"\"}", required = true) @RequestBody String info,
HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
JSONObject jsonInfo = JSON.parseObject(info);
String id = jsonInfo.getString("id");
projectService.subscribeDataSource(id, user.getProject());
// 用户行为统计
UserBehavior.Builder builder = UserBehavior.builder().withId(null).withProject(user.getProject())
.withSubmitter(user.getUsername()).withCreateAt(System.currentTimeMillis())
.withFunctionModule("情报设置").withBehavior_name("数据源")
.withBehavior_property_one("平台订阅")
.withBehavior_property_two(id);
userService.saveBehavior(builder.build());
return new ReturnData(true, "数据源-平台订阅成功");
} catch (Exception e) {
log.error("数据源-平台订阅出错", e);
return new ReturnData(false, "数据源-平台订阅出错");
}
}
@ApiOperation("数据源-取消订阅")
@DeleteMapping
public ReturnData unsubscribeDataSource(
@ApiParam(name = "info", value = "数据源-取消订阅-json:{\"id\":\"\"}", required = true) @RequestBody String info,
HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
JSONObject jsonInfo = JSON.parseObject(info);
String id = jsonInfo.getString("id");
projectService.unsubscribeDataSource(id, user.getProject());
UserBehavior.Builder builder = UserBehavior.builder().withId(null).withProject(user.getProject())
.withSubmitter(user.getUsername()).withCreateAt(System.currentTimeMillis())
.withFunctionModule("情报设置").withBehavior_name("数据源")
.withBehavior_property_one("取消订阅")
.withBehavior_property_two(id);
userService.saveBehavior(builder.build());
return new ReturnData(true, "数据源-取消订阅成功");
} catch (Exception e) {
log.error("数据源-取消订阅出错", e);
return new ReturnData(false, "数据源-取消订阅出错");
}
}
}
package com.zhiwei.qbjc.controller.app.setting;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.pojo.entity.UserMail;
import com.zhiwei.qbjc.pojo.entity.UserWechat;
import com.zhiwei.qbjc.service.MailService;
import com.zhiwei.qbjc.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/**
* 情报设置-预警Controller
*
* @author shentao
* @ClassName: EarlyWarningController
* @Description: 情报设置-预警Controller
* @date 2019年7月8日 下午5:07:32
*/
@RestController
@RequestMapping("/qbjcbackPhoenix/app/setting/earlywarning")
@Api(tags = "情报设置-预警")
public class EarlyWarningController {
public final static Logger log = LogManager.getLogger(EarlyWarningController.class);
@Autowired
private UserService userService;
@Autowired
private MailService mailService;
@ApiOperation("情报设置-预警-获取微信预警用户")
@GetMapping("/wechat")
public ReturnData getEarlywarningWechat(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
List<UserWechat> list = userService.findUserWechatByProject(user.getProject());
Map<String, Object> data = new HashMap<>(1);
data.put("wechatList", list);
return new ReturnData(true, "预警-获取微信预警用户-获取成功", data);
} catch (Exception e) {
log.error("预警-获取微信预警用户出错", e);
return new ReturnData(false, "预警-获取微信预警用户出错");
}
}
@ApiOperation("情报设置-预警-删除邮箱地址")
@DeleteMapping("/{id}")
public ReturnData deleteEarlywarningMail(@PathVariable String id) {
try {
mailService.deleteMail(id);
return new ReturnData(true, "预警-删除邮箱地址成功");
} catch (Exception e) {
log.error("预警-删除邮箱地址出错", e);
return new ReturnData(false, "预警-删除邮箱地址出错");
}
}
@ApiOperation("情报设置-预警-添加邮箱地址")
@PostMapping("/email")
public ReturnData addEarlywarningMail(
@RequestBody @ApiParam(name = "info", value = "预警-添加邮箱-json:{\"email\":\"\"}", required = true) String info,
HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
if (mailService.isOutOfMailLimit(user.getProject())) {
return new ReturnData(false, "添加邮箱已达到邮箱上限");
} else {
JSONObject jsonEmail = JSON.parseObject(info);
String mail = jsonEmail.getString("email");
int addres = mailService.addMail(mail, user.getProject());
// 返回类型 -1,已存在;0,添加失败;1,添加成功
if (addres == 1) {
return new ReturnData(true, "预警-添加邮箱地址成功");
} else if (addres == -1) {
return new ReturnData(false, "该邮箱已存在");
} else {
return new ReturnData(false, "预警-添加邮箱地址出错");
}
}
} catch (Exception e) {
log.error("预警-添加邮箱地址出错", e);
return new ReturnData(false, "预警-添加邮箱地址出错");
}
}
@ApiOperation("情报设置-预警-邮箱地址列表")
@GetMapping
public ReturnData getEarlywarningMail(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
List<UserMail> list = mailService.findMailByProject(user.getProject());
Map<String, Object> data = new HashMap<>(1);
data.put("email", list);
return new ReturnData(true, "预警-邮箱地址列表-获取成功", data);
} catch (Exception e) {
log.error("预警-邮箱地址列表-获取出错", e);
return new ReturnData(false, "预警-邮箱地址列表-获取出错");
}
}
}
package com.zhiwei.qbjc.controller.app.setting;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.qbjc.config.GenericAttribute;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.EventTag;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.service.TagService;
import com.zhiwei.qbjc.service.UserService;
import com.zhiwei.qbjc.util.Tools;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/**
* 情报设置-标签设置-事件标签Controller
*
* @ClassName: EventTagController
* @Description:情报设置-标签设置-事件标签Controller
* @author shentao
* @date 2019年7月8日 上午11:13:02
*/
@RestController
@RequestMapping("/qbjcbackPhoenix/app/setting/eventTagmanage")
@Api(tags = "情报设置-标签设置-事件标签")
public class EventTagController {
public final static Logger log = LogManager.getLogger(EventTagController.class);
@Autowired
private UserService userService;
@Autowired
private TagService tagService;
@ApiOperation("情报设置-标签设置-事件标签-删除")
@DeleteMapping("/{groupId}/{tagId}")
public ReturnData deleteTag(@PathVariable String groupId, @PathVariable String tagId, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
EventTag tag = tagService.getEventTagByid(Long.parseLong(tagId));
if (tagService.isDefaultEventTag(tag)) {
return new ReturnData(false, GenericAttribute.EVENTSTATUS + "正负中标签不能被修改或删除");
}
tagService.deleteEventTag(tag, user.getUsername(), user.getProject());
return new ReturnData(true, "事件标签-删除成功");
} catch (Exception e) {
log.error("事件标签-删除出错", e);
return new ReturnData(false, "事件标签-删除出错");
}
}
@ApiOperation("情报设置-标签设置-事件标签-修改")
@PutMapping("/{groupId}/{tagId}")
public ReturnData modifyTag(
@RequestBody @ApiParam(name = "info", value = "事件标签-修改-json:{\"details\":\"\"}", required = true) String info,
@PathVariable String groupId, @PathVariable String tagId, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
JSONObject jsonInfo = JSON.parseObject(info);
String detail = jsonInfo.getString("details");
EventTag tag = tagService.getEventTagByid(Long.parseLong(tagId));
if (tagService.isDefaultEventTag(tag)) {
return new ReturnData(false, GenericAttribute.EVENTSTATUS + "正负中标签不能被修改或删除");
}
tagService.modifyEventTag(tag, detail, user.getUsername(), user.getProject());
return new ReturnData(true, "事件标签-修改成功");
} catch (Exception e) {
log.error("事件标签-修改出错", e);
return new ReturnData(false, "事件标签-修改出错");
}
}
@ApiOperation("情报设置-标签设置-事件标签-添加")
@PutMapping
public ReturnData addTag(
@RequestBody @ApiParam(name = "info", value = "事件标签-添加-json:{\"id\":\"\",\"tagName\":\"\",\"details\":[]}", required = true) String info,
HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
JSONObject jsonInfo = JSON.parseObject(info);
List<String> details = JSON.parseArray(jsonInfo.getString("details"), String.class);
long id = jsonInfo.getIntValue("id");
if (details.stream().anyMatch(a -> a.trim().equals(""))) {
return new ReturnData(false, "标签不能为空,请将多余的【|】去除!");
} else {
tagService.addEventTag(id, details, user.getUsername(), user.getProject());
}
return new ReturnData(true, "事件标签-添加成功");
} catch (Exception e) {
log.error("事件标签-添加出错", e);
return new ReturnData(false, "事件标签-添加出错");
}
}
@ApiOperation("情报设置-标签设置-事件标签组-删除")
@DeleteMapping("/{id}")
public ReturnData deleteTagGroup(@PathVariable String id, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
List<EventTag> tags = tagService.getEventTagsByGroupId(Long.parseLong(id));
if (tagService.isDefaultEventTagGroup(tags)) {
return new ReturnData(false, GenericAttribute.EVENTSTATUS + "不能被修改");
}
tagService.deleteEventTagGroup(tags, user.getUsername(), user.getProject());
return new ReturnData(true, "事件标签组-删除成功");
} catch (Exception e) {
log.error("事件标签组-删除出错", e);
return new ReturnData(false, "事件标签组-删除出错");
}
}
@ApiOperation("情报设置-标签设置-事件标签组-修改")
@PutMapping("/{id}")
public ReturnData modifyTagGroup(@PathVariable String id,
@RequestBody @ApiParam(name = "info", value = "事件标签组-修改-json:{\"isShow\":\"\",\"tagName\":\"\"}", required = true) String info,
HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
JSONObject jsonInfo = JSON.parseObject(info);
String name = Tools.isNull(jsonInfo.getString("tagName")) ? null : jsonInfo.getString("tagName");
Boolean isShow = Tools.isNull(jsonInfo.getBoolean("isShow")) ? null : jsonInfo.getBoolean("isShow");
List<EventTag> tags = tagService.getEventTagsByGroupId(Long.parseLong(id));
if (tagService.isDefaultEventTagGroup(tags)) {
return new ReturnData(false, GenericAttribute.EVENTSTATUS + "不能被修改");
}
tagService.modifyEventTagGroup(tags, name, isShow, user.getUsername(), user.getProject());
return new ReturnData(true, "事件标签组-修改成功");
} catch (Exception e) {
log.error("事件标签组-修改出错", e);
return new ReturnData(false, "事件标签组-修改出错");
}
}
@ApiOperation("情报设置-标签设置-事件标签组-添加")
@PostMapping
public ReturnData addTagGroup(
@RequestBody @ApiParam(name = "info", value = "事件标签组-添加-json:{\"tagName\":\"\"}", required = true) String info,
HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
JSONObject jsonInfo = JSON.parseObject(info);
String name = jsonInfo.getString("tagName");
if (tagService.containsEventTagGroup(name, user.getProject())) {
return new ReturnData(false, "添加标签组失败,重复标签组名");
} else {
tagService.addEventTagGroup(name, user.getUsername(), user.getProject());
}
return new ReturnData(true, "事件标签组-添加成功");
} catch (Exception e) {
log.error("事件标签组-添加出错", e);
return new ReturnData(false, "事件标签组-添加出错");
}
}
@ApiOperation("情报设置-标签设置-事件标签-获取")
@GetMapping
public ReturnData getTagInfo(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Map<String, Object> data = tagService.getEventTagInfo(user.getProject());
return new ReturnData(true, "事件标签-获取成功", data);
} catch (Exception e) {
log.error("事件标签-获取出错", e);
return new ReturnData(false, "事件标签-获取出错");
}
}
}
package com.zhiwei.qbjc.controller.app.setting;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.qbjc.config.GenericAttribute;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.NoiseRule;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.service.NoiseRuleService;
import com.zhiwei.qbjc.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/**
* 情报设置-数据规则-去噪Controller
*
* @ClassName: NoiseRuleController
* @Description: 情报设置-数据规则-去噪Controller
* @author shentao
* @date 2019年7月8日 上午11:22:03
*/
@RestController
@RequestMapping("/qbjcbackPhoenix/app/setting/noiserules")
@Api(tags = "情报设置-数据规则-去噪")
public class NoiseRuleController {
public final static Logger log = LogManager.getLogger(NoiseRuleController.class);
@Autowired
private UserService userService;
@Autowired
private NoiseRuleService noiseRuleService;
@ApiOperation("情报设置-去噪规则-获取已追踪渠道规则")
@GetMapping("/addAlready")
public ReturnData getNoiserulesQdAlready(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
List<NoiseRule> nlist = noiseRuleService.findNoiserulesTypeChannelByProject(user.getProject());
Map<String, Object> data = new HashMap<>(1);
data.put("list", nlist);
return new ReturnData(true, "去噪规则-获取已追踪渠道规则成功", data);
} catch (Exception e) {
log.error("去噪规则-获取已追踪渠道规则出错", e);
return new ReturnData(false, "去噪规则-获取已追踪渠道规则出错");
}
}
@ApiOperation("情报设置-去噪规则-获取单条")
@GetMapping("/{id}")
public ReturnData getNoiserule(@PathVariable String id, HttpServletRequest req) {
try {
NoiseRule noiserule = noiseRuleService.findNoiseruleById(Long.parseLong(id));
Map<String, Object> data = new HashMap<>(1);
data.put("noiserule", noiserule);
return new ReturnData(true, "去噪规则-获取单条成功", data);
} catch (Exception e) {
log.error("去噪规则-获取单条出错", e);
return new ReturnData(false, "去噪规则-获取单条出错");
}
}
@ApiOperation("情报设置-去噪规则-开关")
@PutMapping("/isUsed")
public ReturnData isUsedNoiserules(
@RequestBody @ApiParam(name = "info", value = "去噪规则-use-json:{\"id\":\"\",\"isUsed\":\"\"}", required = true) String info,
HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
JSONObject jsonInfo = JSON.parseObject(info);
String id = jsonInfo.getString("id");
Boolean isUsed = jsonInfo.getBoolean("isUsed");
if (isUsed && noiseRuleService.isOutOfRuleLimit(user.getProject())) {
return new ReturnData(false, "噪音已使用到上限,该条规则未启用");
} else {
noiseRuleService.isUsedNoiserule(Long.parseLong(id), isUsed, user.getUsername(), user.getProject());
}
return isUsed ? new ReturnData(true, "去噪规则-使用成功") : new ReturnData(true, "去噪规则-不使用成功");
} catch (Exception e) {
log.error("出错", e);
return new ReturnData(false, "出错");
}
}
@ApiOperation("情报设置-去噪规则-删除")
@DeleteMapping("/{id}")
public ReturnData deleteNoiserules(@PathVariable String id, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
noiseRuleService.deleteNoiserule(Long.parseLong(id), user.getUsername(), user.getProject());
return new ReturnData(true, "去噪规则-删除成功");
} catch (Exception e) {
log.error("去噪规则-删除出错", e);
return new ReturnData(false, "去噪规则-删除出错");
}
}
@ApiOperation("情报设置-去噪规则-修改")
@PutMapping("/{id}")
public ReturnData modifyNoiserules(@RequestBody NoiseRule noiserule, @PathVariable String id,
HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
NoiseRule old = noiseRuleService.findNoiseruleById(Long.parseLong(id));
noiserule.setSubmitter(user.getUsername());
noiserule.setProject(user.getProject());
noiserule.setId(old.getId());
noiserule.setEffectNum(0L);
noiserule.setEffectNumWeek(new ArrayList<>());
noiserule.setUsed(old.getUsed());
noiseRuleService.modifyNoiserule(noiserule);
return new ReturnData(true, "去噪规则-修改成功");
} catch (Exception e) {
log.error("去噪规则-修改出错", e);
return new ReturnData(false, "去噪规则-修改出错");
}
}
@ApiOperation("情报设置-去噪规则-添加")
@PostMapping
public ReturnData addNoiserules(@RequestBody NoiseRule noiserule, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
noiserule.setSubmitter(user.getUsername());
noiserule.setProject(user.getProject());
noiserule.setId(null);
noiserule.setEffectNum(0L);
noiserule.setEffectNumWeek(new ArrayList<>());
noiserule.setCreateAt(System.currentTimeMillis());
StringBuilder msg = new StringBuilder("去噪规则-添加成功");
if (noiseRuleService.isOutOfRuleLimit(user.getProject())) {
noiserule.setUsed(false);
msg.append(",噪音已使用到上限,该条规则未启用");
} else {
noiserule.setUsed(true);
}
noiseRuleService.addNoiseRule(noiserule);
return new ReturnData(true, msg.toString());
} catch (Exception e) {
log.error("去噪规则-添加出错", e);
return new ReturnData(false, "去噪规则-添加出错");
}
}
@ApiOperation("情报设置-去噪规则-获取列表")
@GetMapping
public ReturnData getNoiserules(@RequestParam(value = "page") int page, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Map<String, Object> data = noiseRuleService.getNoiserules(page, GenericAttribute.NOISE_LIMIT,
user.getProject());
return new ReturnData(true, "去噪规则-获取列表成功", data);
} catch (Exception e) {
log.error("去噪规则-获取列表出错", e);
return new ReturnData(false, "去噪规则-获取列表出错");
}
}
}
package com.zhiwei.qbjc.controller.app.setting;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.PushStyleInfo;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.service.CopyStyleService;
import com.zhiwei.qbjc.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
* Description:
*
* @author LiuMingHuan
* @classname PushStyleController
* @date 2020/3/4
*/
@RestController
@Api(tags = "情报设置-推送样式设置")
@RequestMapping("/qbjcbackPhoenix/app/setting/pushstyle")
public class PushStyleController {
private static final Logger log = LogManager.getLogger(PushStyleController.class);
private final CopyStyleService copyStyleService;
private final UserService userService;
public PushStyleController(CopyStyleService copyStyleService, UserService userService) {
this.copyStyleService = copyStyleService;
this.userService = userService;
}
@ApiOperation("情报设置-推送样式设置-获取推送模板列表")
@GetMapping("/all")
public ReturnData getAllPushStyles(HttpServletRequest request, @RequestParam(name = "page", defaultValue = "1") int page, @RequestParam(name = "page", defaultValue = "10") int pageSize) {
try {
User user = userService.userHeaderInfo(request);
Map<String, Object> res = copyStyleService.getAllPushStyle(page, pageSize, user.getProject());
return new ReturnData(true, "情报设置-推送样式设置-获取推送模板列表成功", res);
}catch (Exception e){
log.error("情报设置-推送样式设置-获取推送模板列表成功", e);
return new ReturnData(false, "情报设置-推送样式设置-获取推送模板列表成功");
}
}
@ApiOperation("情报设置-推送样式设置-获取子模版")
@GetMapping("/{id}")
public ReturnData getPushStyleInfo(@PathVariable(name = "id") String id){
try {
PushStyleInfo info = copyStyleService.getPushStyleInfoById(id);
return new ReturnData(true, "情报设置-推送样式设置-获取子模版成功", info);
}catch (Exception e){
log.error("情报设置-推送样式设置-获取子模版出错", e);
return new ReturnData(false, "情报设置-推送样式设置-获取子模版出错");
}
}
@ApiOperation("情报设置-推送样式设置-新增")
@PostMapping("/pushstyle")
public ReturnData addPushStyles(HttpServletRequest request, @RequestBody @ApiParam(name = "info",value = "情报设置-推送样式设置-新增-json:{name:,pt:,title:,description:,parentId:}") String info){
try {
User user = userService.userHeaderInfo(request);
JSONObject json = JSONObject.parseObject(info);
String name = json.getString("name");
String pt = json.getString("pt");
String title = json.getString("title");
String description = json.getString("description");
String parentId = json.getString("parentId");
Long createAt = System.currentTimeMillis();
copyStyleService.addPushStyleInfo(new PushStyleInfo(null, name, pt, title, description, createAt, createAt, user.getUsername(), parentId));
return new ReturnData(true,"情报设置-推送样式设置-添加成功");
}catch (Exception e){
log.error("情报设置-推送样式设置-添加出错", e);
return new ReturnData(false, "情报设置-推送样式设置-添加出错");
}
}
@ApiOperation("情报设置-推送样式-推送")
@PostMapping
public ReturnData pushMessage(HttpServletRequest request, @RequestBody @ApiParam(name = "info",value = "情报设置-推送样式-推送-json:{title:拼接后的标题,description:拼接后的描述,url:消息链接(问题是questionurl,回答是answerurl),tag:当前项目组推送标签}") String info){
try {
User user = userService.userHeaderInfo(request);
JSONObject json = JSONObject.parseObject(info);
String title = json.getString("title");
String description = json.getString("description");
String url = json.getString("url");
String tag = json.getString("tag");
if ("暂无".equals(tag)) {
return new ReturnData(false, "当前项目组无法推送");
}
JSONObject result = copyStyleService.pushContent(title, description, url, tag, user.getProject());
if (!"0".equals(result.getString("errcode"))) {
log.error("情报设置-推送样式-推送出错{}",result.toJSONString());
return new ReturnData(false, "情报设置-推送样式-推送出错");
}
return new ReturnData(true,"情报设置-推送样式-推送成功");
}catch (Exception e){
log.error("情报设置-推送样式-推送出错", e);
return new ReturnData(false, "情报设置-推送样式-推送出错");
}
}
}
package com.zhiwei.qbjc.controller.app.setting;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.qbjc.config.GenericAttribute;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.Tag;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.service.TagService;
import com.zhiwei.qbjc.service.UserService;
import com.zhiwei.qbjc.util.Tools;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/**
* 情报设置-标签设置-消息流标签Controller
*
* @ClassName: TagController
* @Description: 情报设置-标签设置-消息流标签Controller
* @author shentao
* @date 2019年7月8日 上午11:23:08
*/
@RestController
@RequestMapping("/qbjcbackPhoenix/app/setting/tagmanage")
@Api(tags = "情报设置-标签设置-消息流标签")
public class TagController {
public final static Logger log = LogManager.getLogger(TagController.class);
@Autowired
private UserService userService;
@Autowired
private TagService tagService;
@ApiOperation("情报设置-标签设置-消息流标签-删除")
@DeleteMapping("/{groupId}/{tagId}")
public ReturnData deleteTag(@PathVariable String groupId, @PathVariable String tagId, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Tag tag = tagService.getTagByid(Long.parseLong(tagId));
if (tagService.isDefaultTag(tag)) {
return new ReturnData(false, "情感倾向正负中标签不能被修改或删除");
}
tagService.deleteTag(tag, user.getUsername(), user.getProject());
return new ReturnData(true, "消息流标签-删除成功");
} catch (Exception e) {
log.error("消息流标签-删除出错", e);
return new ReturnData(false, "消息流标签-删除出错");
}
}
@ApiOperation("情报设置-标签设置-消息流标签-修改")
@PutMapping("/{groupId}/{tagId}")
public ReturnData modifyTag(
@RequestBody @ApiParam(name = "info", value = "消息流标签-修改-json:{\"details\":\"\"}", required = true) String info,
@PathVariable String groupId, @PathVariable String tagId, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
JSONObject jsonInfo = JSON.parseObject(info);
String detail = jsonInfo.getString("details");
Tag tag = tagService.getTagByid(Long.parseLong(tagId));
if (tagService.isDefaultTag(tag)) {
return new ReturnData(false, "情感倾向正负中标签不能被修改或删除");
}
tagService.modifyTag(tag, detail, user.getUsername(), user.getProject());
return new ReturnData(false, "消息流标签-修改成功");
} catch (Exception e) {
log.error("消息流标签-修改出错", e);
return new ReturnData(false, "消息流标签-修改出错");
}
}
@ApiOperation("情报设置-标签设置-消息流标签-添加")
@PostMapping("/tagName")
public ReturnData addTag(
@RequestBody @ApiParam(name = "info", value = "消息流标签-添加-json:{\"id\":\"\",\"tagName\":\"\",\"details\":[]}", required = true) String info,
HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
JSONObject jsonInfo = JSON.parseObject(info);
List<String> details = JSON.parseArray(jsonInfo.getString("details"), String.class);
long id = jsonInfo.getIntValue("id");
if (details.stream().anyMatch(a -> a.trim().equals(""))) {
return new ReturnData(false, "标签不能为空,请将多余的【|】去除!");
} else {
tagService.addTag(id, details, user.getUsername(), user.getProject());
}
return new ReturnData(true, "消息流标签-添加成功");
} catch (Exception e) {
log.error("消息流标签-添加出错", e);
return new ReturnData(false, "消息流标签-添加出错");
}
}
@ApiOperation("情报设置-标签设置-消息流标签组-删除")
@DeleteMapping("/{id}")
public ReturnData deleteTagGroup(@PathVariable String id, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
List<Tag> tags = tagService.getTagsByGroupId(Long.parseLong(id));
if (tagService.isDefaultTagGroup(tags)) {
return new ReturnData(false, "情感倾向不能被修改");
}
tagService.deleteTagGroup(tags, user.getUsername(), user.getProject());
return new ReturnData(true, "消息流标签组-删除成功");
} catch (Exception e) {
log.error("消息流标签组-删除出错", e);
return new ReturnData(false, "消息流标签组-删除出错");
}
}
@ApiOperation("情报设置-标签设置-消息流标签组-修改")
@PutMapping("/{id}")
public ReturnData modifyTagGroup(@PathVariable String id,
@RequestBody @ApiParam(name = "info", value = "消息流标签组-修改-json:{\"isShow\":\"\",\"tagName\":\"\"}", required = true) String info,
HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
JSONObject jsonInfo = JSON.parseObject(info);
String name = Tools.isNull(jsonInfo.getString("tagName")) ? null : jsonInfo.getString("tagName");
Boolean isShow = Tools.isNull(jsonInfo.getBoolean("isShow")) ? null : jsonInfo.getBoolean("isShow");
List<Tag> tags = tagService.getTagsByGroupId(Long.parseLong(id));
if (tagService.isDefaultTagGroup(tags)) {
return new ReturnData(false, "情感倾向不能被修改");
}
tagService.modifyTagGroup(tags, name, isShow, user.getUsername(), user.getProject());
return new ReturnData(true, "消息流标签组-修改成功");
} catch (Exception e) {
log.error("消息流标签组-修改出错", e);
return new ReturnData(false, "消息流标签组-修改出错");
}
}
@ApiOperation("情报设置-标签设置-消息流标签组-添加")
@PostMapping
public ReturnData addTagGroup(
@RequestBody @ApiParam(name = "info", value = "消息流标签组-添加-json:{\"tagName\":\"\"}", required = true) String info,
HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
JSONObject jsonInfo = JSON.parseObject(info);
String name = jsonInfo.getString("tagName");
if (tagService.containsTagGroup(name, user.getProject())) {
return new ReturnData(false, "添加标签组失败,重复标签组名");
} else {
tagService.addTagGroup(name, user.getUsername(), user.getProject());
}
return new ReturnData(true, "消息流标签组-添加成功");
} catch (Exception e) {
log.error("消息流标签组-添加出错", e);
return new ReturnData(false, "消息流标签组-添加出错");
}
}
@ApiOperation("情报设置-标签设置-消息流标签-获取")
@GetMapping
public ReturnData getTagInfo(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Map<String, Object> data = tagService.getTagInfo(user.getProject());
return new ReturnData(true, "消息流标签-获取成功", data);
} catch (Exception e) {
log.error("消息流标签-获取出错", e);
return new ReturnData(false, "消息流标签-获取出错");
}
}
}
package com.zhiwei.qbjc.controller.app.setting;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.qbjc.config.GenericAttribute;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.TrackRule;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.service.TrackRuleService;
import com.zhiwei.qbjc.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
* 情报设置-追踪规则Controller
*
* @ClassName: TrackRuleController
* @Description: 情报设置-追踪规则Controller
* @author shentao
* @date 2019年7月8日 上午11:24:45
*/
@RestController
@RequestMapping("/qbjcbackPhoenix/app/setting/trackrule")
@Api(tags = "情报设置-追踪规则")
public class TrackRuleController {
public final static Logger log = LogManager.getLogger(TrackRuleController.class);
@Autowired
private UserService userService;
@Autowired
private TrackRuleService trackRuleService;
@ApiOperation("情报设置-追踪规则-开关")
@PutMapping(value = "/isUsed")
public ReturnData isUsedTrackRule(
@RequestBody @ApiParam(name = "info", value = "追踪规则-used-json:{\"id\":\"\",\"isUsed\":\"\"}", required = true) String info,
HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
JSONObject jsonInfo = JSON.parseObject(info);
String id = jsonInfo.getString("id");
boolean isUsed = jsonInfo.getBooleanValue("isUsed");
if (isUsed && trackRuleService.isOutOfLimit(user.getProject())) {
return new ReturnData(false, "开启追踪规则失败,达到追踪规则上限");
} else {
trackRuleService.isUsedTrackRule(id, isUsed, user.getUsername());
}
return isUsed ? new ReturnData(true, "开启追踪规则成功") : new ReturnData(true, "关闭追踪规则成功");
} catch (Exception e) {
log.error("追踪规则-开关出错", e);
return new ReturnData(false, "追踪规则-开关出错");
}
}
@ApiOperation("情报设置-追踪规则-修改")
@PutMapping
public ReturnData modifyTrackRule(@RequestBody TrackRule info, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
info.setSubmitter(user.getSubmitter());
info.setProject(user.getProject());
trackRuleService.modifyTrackRule(info);
return new ReturnData(true, "追踪规则-修改成功");
} catch (Exception e) {
log.error("追踪规则-修改出错", e);
return new ReturnData(false, "追踪规则-修改出错");
}
}
@ApiOperation("情报设置-追踪规则-添加")
@PostMapping
public ReturnData addTrackRule(@RequestBody TrackRule info, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
boolean isOutOfLimit = trackRuleService.isOutOfLimit(user.getProject());
info.setSubmitter(user.getUsername());
info.setProject(user.getProject());
trackRuleService.addTrackRule(info, !isOutOfLimit);
return isOutOfLimit ? new ReturnData(true, "追踪规则-添加成功,使用到达上限") : new ReturnData(true, "追踪规则-添加");
} catch (Exception e) {
log.error("追踪规则-添加出错", e);
return new ReturnData(false, "追踪规则-添加出错");
}
}
@ApiOperation("情报设置-追踪规则-获取")
@GetMapping
public ReturnData getTrackRule(@RequestParam(value = "page") String pageNum, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Map<String, Object> data = trackRuleService.getTrackRule(Integer.parseInt(pageNum),
GenericAttribute.TRACK_LIMIT, user.getProject());
return new ReturnData(true, "追踪规则-获取成功", data);
} catch (Exception e) {
log.error("追踪规则-获取出错", e);
return new ReturnData(false, "追踪规则-获取出错");
}
}
@ApiOperation("情报设置-追踪规则-获取被追踪消息")
@GetMapping("/hasTrack/{id}")
public ReturnData getBeTrackedMessages(@PathVariable(value = "id") String id, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Map<String, Object> data = trackRuleService.getBeTrackedMessages(id, user.getProject());
return new ReturnData(true, "追踪规则-获取被追踪消息-获取成功", data);
} catch (Exception e) {
log.error("追踪规则-获取被追踪消息-获取出错", e);
return new ReturnData(false, "追踪规则-获取被追踪消息-获取出错");
}
}
}
package com.zhiwei.qbjc.controller.app.setting;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zhiwei.qbjc.config.GenericAttribute;
import com.zhiwei.qbjc.pojo.ReturnData;
import com.zhiwei.qbjc.pojo.entity.User;
import com.zhiwei.qbjc.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 情报设置-用户Controller
*
* @ClassName: UserManageController
* @Description: 情报设置-用户Controller
* @author shentao
* @date 2019年7月8日 上午11:26:15
*/
@RestController
@RequestMapping("/qbjcbackPhoenix/app/setting")
@Api(tags = "情报设置-用户")
public class UserManageController {
public final static Logger log = LogManager.getLogger(UserManageController.class);
@Autowired
private UserService userService;
@ApiOperation("情报设置-个人设置-修改用户")
@PutMapping("/personsetting/{id}")
public ReturnData updateUserByOwn(@RequestBody User info, @PathVariable String id, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
info.setId(Long.parseLong(id));
info.setRole(user.getRole());
info.setProject(user.getProject());
info.setSubmitter(user.getUsername());
return userService.modifyUser(info);
} catch (Exception e) {
log.error("个人设置-修改用户出错", e);
return new ReturnData(false, "个人设置-修改用户出错");
}
}
@ApiOperation("情报设置-个人设置-获取")
@GetMapping("/personsetting")
public ReturnData getUserByOwn(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Map<String, Object> data = userService.getUserByOwn(user.getUsername(), user.getProject());
return new ReturnData(true, "个人设置-获取成功", data);
} catch (Exception e) {
log.error("个人设置-获取出错", e);
return new ReturnData(false, "个人设置-获取出错");
}
}
@ApiOperation("情报设置-用户设置-删除用户")
@DeleteMapping("/usermanage/{id}")
public ReturnData deleteUserByMannager(@PathVariable String id, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
User info = userService.getUserById(Long.parseLong(id));
info.setSubmitter(user.getUsername());
info.setProject(user.getProject());
return userService.deleteUser(info);
} catch (Exception e) {
log.error("出错", e);
return new ReturnData(false, "出错");
}
}
@ApiOperation("情报设置-用户设置-修改用户")
@PutMapping("/usermanage/{id}")
public ReturnData modifyUserByMannager(@RequestBody User info, @PathVariable String id, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
info.setId(Long.parseLong(id));
info.setProject(user.getProject());
info.setSubmitter(user.getUsername());
return userService.modifyUser(info);
} catch (Exception e) {
log.error("用户设置-修改用户出错", e);
return new ReturnData(false, "用户设置-修改用户出错");
}
}
@ApiOperation("情报设置-用户设置-添加用户")
@PostMapping("/usermanage")
public ReturnData addUserByMannager(@RequestBody User info, HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
info.setProject(user.getProject());
info.setSubmitter(user.getUsername());
return userService.addUser(info);
} catch (Exception e) {
log.error("用户设置-添加用户出错", e);
return new ReturnData(false, "用户设置-添加用户出错");
}
}
@ApiOperation("情报设置-用户设置-获取用户列表")
@GetMapping("/usermanage")
public ReturnData getUserByManager(HttpServletRequest req) {
try {
//User user = userService.userCookieInfo(req.getCookies());
User user = userService.userHeaderInfo(req);
Map<String, Object> data = userService.getUsers(user.getProject());
return new ReturnData(true, "用户设置-获取用户列表成功", data);
} catch (Exception e) {
log.error("用户设置-获取用户列表出错", e);
return new ReturnData(false, "用户设置-获取用户列表出错");
}
}
}
package com.zhiwei.qbjc.dao;
import java.util.List;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import com.zhiwei.qbjc.pojo.entity.BriefReport;
/**
* BriefReportDao-interface
*
* @ClassName: BriefReportDao
* @Description: BriefReportDao-interface
* @author shentao
* @date 2019年7月8日 下午5:21:32
*/
public interface BriefReportDao {
/**
* 按条件获取单个BriefReport
*
* @Title: findOneByQuery
* @Description: 按条件获取单个BriefReport
* @param @param query
* @param @return 设定文件
* @return BriefReport 返回类型
*/
BriefReport findOneByQuery(Query query);
/**
* 添加BriefReport
*
* @param report
* @return void
*/
void insert(BriefReport report);
/**
* 更新首个BriefReport
*
* @param query
* @param update
* @return void
*/
void updateFirst(Query query, Update update);
/**
* 按条件删除BriefReport
*
* @param query
* @return void
*/
void removeByQuery(Query query);
/**
* 按条件获取多个BriefReport
*
* @param query
* @return List<BriefReport>
*/
List<BriefReport> findManyByQuery(Query query);
}
package com.zhiwei.qbjc.dao;
import java.util.List;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import com.zhiwei.qbjc.pojo.entity.BriefReportDivision;
/**
* BriefReportDivisionDao-interface
*
* @ClassName: BriefReportDivisionDao
* @Description: BriefReportDivisionDao-interface
* @author shentao
* @date 2019年7月8日 下午5:21:52
*/
public interface BriefReportDivisionDao {
/**
* 按条件获取多个BriefReportDivision
*
* @param query
*
* @return List<BriefReportDivision>
*/
List<BriefReportDivision> findManyByQuery(Query query);
/**
* 插入单个BriefReportDivision
*
* @param division
*
* @return void
*/
void insert(BriefReportDivision division);
/**
* 更新首个BriefReportDivision
*
* @param query
* @param update
*
* @return void
*/
void updateFirst(Query query, Update update);
/**
* 按条件 删除BriefReportDivision
*
* @param query
*
* @return void
*/
void removeByQuery(Query query);
/**
* 按条件获取单个BriefReportDivision
*
* @param query
*
* @return BriefReportDivision
*/
BriefReportDivision findOneByQuery(Query query);
}
package com.zhiwei.qbjc.dao;
import java.util.List;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import com.zhiwei.qbjc.pojo.entity.BriefReportMsg;
/**
* @ClassName: BriefReportMsgDao
* @Description: BriefReportMsgDao-interface
* @author shentao
* @date 2019年7月9日 下午2:39:36
*/
public interface BriefReportMsgDao {
/**
* 按条件查询多个BriefReportMsg
*
* @param query
* @return List<BriefReportMsg>
*/
List<BriefReportMsg> findManyByQuery(Query query);
/**
* 按条件统计BriefReportMsg量
*
* @param query
* @return long
*/
long countByQuery(Query query);
/**
* 插入BriefReportMsg
*
* @param msg
* @return void
*/
void insert(BriefReportMsg msg);
/**
* 更新首个BriefReportMsg
*
* @param query
* @param update
* @return void
*/
void updateFirst(Query query, Update update);
/**
* 按条件删除BriefReportMsg
*
* @param query
*
* @return void
*/
void removeByQuery(Query query);
/**
* 按条件获取单个BriefReportMsg
*
* @param query
*
* @return BriefReportMsg
*/
BriefReportMsg findOneByQuery(Query query);
}
package com.zhiwei.qbjc.dao;
import com.zhiwei.qbjc.pojo.entity.BriefReportPush;
import org.springframework.data.mongodb.core.query.Query;
/**
* Description:
*
* @author LiuMingHuan
* @classname BriefReportPush
* @date 2019/12/25
*/
public interface BriefReportPushDao {
/**
* 查询单条简报推送预设信息
* @param query
* @return
*/
BriefReportPush findOne(Query query);
/**
* 插入单条简报推送预设信息
* @param briefReportPush
*/
void insert(BriefReportPush briefReportPush);
}
package com.zhiwei.qbjc.dao;
import java.util.List;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import com.zhiwei.qbjc.pojo.entity.BriefReportStencil;
/**
* BriefReportStencilDao-interface
*
* @ClassName: BriefReportStencilDao
* @Description: BriefReportStencilDao-interface
* @author shentao
* @date 2019年7月8日 下午4:53:27
*/
public interface BriefReportStencilDao {
/**
* 按条件获取单个BriefReportStencil
*
* @Title: findOneByQuery
* @Description: 按条件获取单个BriefReportStencil
* @param @param query
* @param @return 设定文件
* @return BriefReportStencil 返回类型
*/
BriefReportStencil findOneByQuery(Query query);
/**
* 添加
*
* @Title: insert
* @Description: 添加
* @param @param stencil 设定文件
* @return void 返回类型
*/
void insert(BriefReportStencil stencil);
/**
* 按条件更新
*
* @Title: updateFirst
* @Description: 按条件更新
* @param @param query
* @param @param update 设定文件
* @return void 返回类型
*/
void updateFirst(Query query, Update update);
/**
* 按条件获取多个BriefReportStencils
*
* @Title: findManyByQuery
* @Description: 按条件获取多个BriefReportStencils
* @param @param query
* @param @return 设定文件
* @return List<BriefReportStencil> 返回类型
*/
List<BriefReportStencil> findManyByQuery(Query query);
/**
* 按条件统计数量
*
* @Title: countByQuery
* @Description: 按条件统计数量
* @param @param query
* @param @return 设定文件
* @return long 返回类型
*/
long countByQuery(Query query);
}
package com.zhiwei.qbjc.dao;
import java.util.List;
import org.springframework.data.mongodb.core.query.Query;
import com.zhiwei.qbjc.pojo.entity.BriefReportStencilModule;
/**
* BriefReportStencilModuleDao-interface
*
* @ClassName: BriefReportStencilModuleDao
* @Description: BriefReportStencilModuleDao-interface
* @author shentao
* @date 2019年7月8日 下午5:22:18
*/
public interface BriefReportStencilModuleDao {
/**
* 按条件查找多个BriefReportStencilModule
*
* @Title: findManyByQuery
* @Description: 按条件查找多个BriefReportStencilModule
* @param @param query
* @param @return 设定文件
* @return List<BriefReportStencilModule> 返回类型
*/
List<BriefReportStencilModule> findManyByQuery(Query query);
/**
* 按条件删除
*
* @Title: removeByQuery
* @Description: 按条件删除
* @param @param query 设定文件
* @return void 返回类型
*/
void removeByQuery(Query query);
/**
* 批量添加
*
* @Title: insertMany
* @Description: 批量添加
* @param @param modules 设定文件
* @return void 返回类型
*/
void insertMany(List<BriefReportStencilModule> modules);
}
package com.zhiwei.qbjc.dao;
import java.util.List;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import com.zhiwei.qbjc.pojo.entity.BriefReportTask;
/**
* BriefReportTaskDao-interface
*
* @ClassName: BriefReportTaskDao
* @Description: BriefReportTaskDao-interface
* @author shentao
* @date 2019年7月8日 下午4:53:59
*/
public interface BriefReportTaskDao {
/**
* 按条件查找单个BriefReportTask
*
* @Title: findOneByQuery
* @Description: 按条件查找单个BriefReportTask
* @param @param query
* @param @return 设定文件
* @return BriefReportTask 返回类型
*/
BriefReportTask findOneByQuery(Query query);
/**
* 按条件删除BriefReportTask
*
* @Title: removeByQuery
* @Description: 按条件删除BriefReportTask
* @param @param query 设定文件
* @return void 返回类型
*/
void removeByQuery(Query query);
/**
* 按条件查找多个BriefReportTask
*
* @Title: findManyByQuery
* @Description: 按条件查找多个BriefReportTask
* @param @param query
* @param @return 设定文件
* @return List<BriefReportTask> 返回类型
*/
List<BriefReportTask> findManyByQuery(Query query);
/**
* 按条件统计数量BriefReportTask
*
* @Title: countByQuery
* @Description: 按条件统计数量BriefReportTask
* @param @param query
* @param @return 设定文件
* @return long 返回类型
*/
long countByQuery(Query query);
/**
* 更新第一符合条件BriefReportTask
*
* @Title: updateFirst
* @Description: 更新第一符合条件BriefReportTask
* @param @param query
* @param @param update 设定文件
* @return void 返回类型
*/
void updateFirst(Query query, Update update);
/**
* 插入BriefReportTask
*
* @param task
*
* @return void
*/
void insert(BriefReportTask task);
}
package com.zhiwei.qbjc.dao;
import com.zhiwei.qbjc.pojo.entity.BriefReportWebStencil;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
/**
* @Description: BriefReportWebStencil 简报web模板dao
* @Author: shentao
* @Date: 2020/2/7 14:22
*/
public interface BriefReportWebStencilDao {
/**
* 插入单条BriefReportWebStencil
* @param stencil
*/
void insert(BriefReportWebStencil stencil);
/**
* 按条件获取单个BriefReportWebStencil
* @param query
* @return BriefReportWebStencil
*/
BriefReportWebStencil findOneByQuery(Query query);
/**
* 插入或更新 单个BriefReportWebStencil
* @param query
* @param update
*/
void upsert(Query query, Update update);
}
package com.zhiwei.qbjc.dao;
import com.zhiwei.qbjc.pojo.entity.BriefReportWebTask;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import java.util.List;
/**
* @Description: Web简报任务Dao
* @Author: shentao
* @Date: 2020/2/7 15:19
*/
public interface BriefReportWebTaskDao {
/**
* 插入单条BriefReportWebTask
* @param task
*/
void insert(BriefReportWebTask task);
/**
* 按条件返回多条BriefReportWebTask
* @param query
* @return list
*/
List<BriefReportWebTask> findManyByQuery(Query query);
/**
* 按条件更新单个
* @param query
* @param update
*/
void modifyOne(Query query, Update update);
/**
* 按条件移除
* @param query
*/
void removeByQuery(Query query);
/**
* 按条件获取单个BriefReportWebTask
* @param query
* @return BriefReportWebTask
*/
BriefReportWebTask findOneByQuery(Query query);
/**
* 按条件统计个数
*
* @param query
* @return long
*/
long countByQuery(Query query);
}
package com.zhiwei.qbjc.dao;
import com.zhiwei.qbjc.pojo.entity.CopyCollection;
/**
* Description:
*
* @author LiuMingHuan
* @classname CopyCollectionDao
* @date 2019/10/28
*/
public interface CopyCollectionDao {
/**
* 新增 CopyCollectionDao
* @param copyCollection
*/
void insert(CopyCollection copyCollection);
}
package com.zhiwei.qbjc.dao;
import java.util.List;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import com.zhiwei.qbjc.pojo.entity.CopyStyle;
/**
* CopyStyleDao-interface
*
* @ClassName: CopyStyleDao
* @Description: CopyStyleDao-interface
* @author shentao
* @date 2019年7月8日 下午5:22:37
*/
public interface CopyStyleDao {
/**
* 按条件获取单个CopyStyle
*
* @Title: findOneByQuery
* @Description: 按条件获取单个CopyStyle
* @param @param query
* @param @return 设定文件
* @return CopyStyle 返回类型
*/
CopyStyle findOneByQuery(Query query);
/**
* 按条件获取多个CopyStyle
*
* @Title: findManyByQuery
* @Description: 按条件获取多个CopyStyle
* @param @param query
* @param @return 设定文件
* @return List<CopyStyle> 返回类型
*/
List<CopyStyle> findManyByQuery(Query query);
/**
* 按条件统计数量
*
* @Title: countByQuery
* @Description:按条件统计数量
* @param @param query
* @param @return 设定文件
* @return int 返回类型
*/
long countByQuery(Query query);
/**
* 添加CopyStyle
*
* @Title: insert
* @Description: 添加CopyStyle
* @param @param copyStyle 设定文件
* @return CopyStyle 返回类型
*/
CopyStyle insert(CopyStyle copyStyle);
/**
* 按条件更新第一个
*
* @Title: updateFirst
* @Description: 按条件更新第一个
* @param @param query
* @param @param update 设定文件
* @return void 返回类型
*/
void updateFirst(Query query, Update update);
}
package com.zhiwei.qbjc.dao;
import com.zhiwei.qbjc.pojo.entity.DirectChannel;
import com.zhiwei.qbjc.pojo.entity.DirectChannelPackage;
import com.zhiwei.qbjc.pojo.entity.DirectGroup;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import java.util.List;
/**
* DirectGroupDao-interface
*
* @ClassName: DirectGroupDao
* @Description: DirectGroupDao-interface
* @author shentao
* @date 2019年7月8日 下午5:22:59
*/
public interface DirectGroupDao {
/**
* 获取多个DirectGroup按条件
*
* @Title: findManyByQuery
* @Description: 获取多个DirectGroup按条件
* @param @param query
* @param @return 设定文件
* @return List<DirectGroup> 返回类型
*/
List<DirectGroup> findManyByQuery(Query query);
/**
* 按条件获取单个DirectGroup
*
* @Title: findOneByQuery
* @Description: 按条件获取单个DirectGroup
* @param @param query
* @param @return 设定文件
* @return DirectGroup 返回类型
*/
DirectGroup findOneByQuery(Query query);
/**
* 按条件统计DirectGroup量
*
* @Title: countByQuery
* @Description: 按条件统计DirectGroup量
* @param @param query
* @param @return 设定文件
* @return long 返回类型
*/
long countByQuery(Query query);
/**
* 添加DirectGroup
*
* @Title: insert
* @Description: 添加DirectGroup
* @param @param directGroup 设定文件
* @return void 返回类型
*/
void insert(DirectGroup directGroup);
/**
* 更新一个DirectGroup
*
* @Title: updateFirst
* @Description: 更新一个DirectGroup
* @param @param query
* @param @param update 设定文件
* @return void 返回类型
*/
void updateFirst(Query query, Update update);
/**
* 删除DirectGroup
*
* @Title: removeByQuery
* @Description: 删除DirectGroup
* @param @param query 设定文件
* @return void 返回类型
*/
void removeByQuery(Query query);
/**
* 聚合查询渠道包清单
* @param aggregation
* @return
*/
List<DirectChannelPackage> findChannelPackages(Aggregation aggregation);
/**
* 更新渠道包(用于中间件渠道包)
* @param query
* @param update
*/
void updateChannelPackage(Query query, Update update);
/**
* 查找单个渠道包
* @param query
* @return
*/
DirectChannelPackage findOneChannnelPackage(Query query);
/**
* 查找多个渠道
* @param query
* @return
*/
List<DirectChannel> findChannels(Query query);
}
package com.zhiwei.qbjc.dao;
import com.zhiwei.qbjc.pojo.entity.DownloadInfos;
import org.springframework.data.mongodb.core.query.Query;
/**
* Description:
*
* @author LiuMingHuan
* @classname DownloadInfosDao
* @date 2020/2/4
*/
public interface DownloadInfosDao {
/**
* 查询单条
* @param query
* @return
*/
DownloadInfos findOne(Query query);
/**
* 插入单条,返回id
* @param downloadInfos
* @return
*/
String insert(DownloadInfos downloadInfos);
}
package com.zhiwei.qbjc.dao;
import java.util.List;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import com.zhiwei.qbjc.pojo.entity.EventCollection;
/**
* @ClassName: EventCollectionDao
* @Description: 事件采集dao
* @author shentao
* @date 2019年7月19日 下午4:32:48
*/
public interface EventCollectionDao {
/**
* 插入eventCollection
*
* @param eventCollection
*
* @return void
*/
void insert(EventCollection eventCollection);
/**
* 按条件统计数量
*
* @param query
*
* @return long
*/
long countByQuery(Query query);
/**
* 按条件获取多个EventCollection
*
* @param query
*
* @return List<EventCollection>
*/
List<EventCollection> findManyByQuery(Query query);
/**
* 更新首个
*
* @param query
* @param update
*
* @return void
*/
void updateFirst(Query query, Update update);
/**
* 按条件获取单个
*
* @param query
*
* @return EventCollection
*/
EventCollection findOneByQuery(Query query);
/**
* 按条件移除
*
* @param query
*
* @return void
*/
void removeByQuery(Query query);
}
package com.zhiwei.qbjc.dao;
import com.zhiwei.qbjc.pojo.entity.EventCollectionRecord;
import org.springframework.data.mongodb.core.query.Query;
import java.util.List;
/**
* Description:
*
* @author LiuMingHuan
* @classname EventCollectionRecordDao
* @date 2019/9/17
*/
public interface EventCollectionRecordDao {
/**
* 插入record
*
* @param record
*/
void insert(EventCollectionRecord record);
/**
* 获取总量
* @param query
* @return
*/
long countByQuery(Query query);
/**
* 获取记录集合
* @param query
* @return
*/
List<EventCollectionRecord> findManyByQuery(Query query);
/**
* 按id查找获取任务记录
* @param query
* @return
*/
EventCollectionRecord findOneByQuery(Query query);
/**
* 移除归档记录
* @param query
*/
void removeEventRecord(Query query);
}
package com.zhiwei.qbjc.dao;
import com.zhiwei.qbjc.pojo.entity.Event;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import java.util.List;
/**
* @ClassName: EventDao
* @Description: 事件dao
* @author shentao
* @date 2019年7月19日 下午6:27:37
*/
public interface EventDao {
/**
* 添加Event
*
* @param event
*
* @return void
*/
void insert(Event event);
/**
* 按条件获取多个Event
*
* @param query
*
* @return List<Event>
*/
List<Event> findManyByQuery(Query query);
/**
* 按条件统计Event
*
* @param query
*
* @return long
*/
long countByQuery(Query query);
/**
* 按条件获取单个Event
*
* @param query
*
* @return Event
*/
Event findOneByQuery(Query query);
/**
* 更新首个Event
*
* @param query
* @param update
*
* @return void
*/
void updateFirst(Query query, Update update);
/**
* 按条件删除Event
*
* @param query
*
* @return void
*/
void removeByQuery(Query query);
}
package com.zhiwei.qbjc.dao;
import java.util.List;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import com.zhiwei.qbjc.pojo.entity.EventDownload;
/**
* @ClassName: EventDownloadDao
* @Description: 事件下载任务Dao
* @author shentao
* @date 2019年8月6日 上午10:04:10
*/
public interface EventDownloadDao {
/**
* 插入单个
*
* @param eventDownload
*
* @return void
*/
void insert(EventDownload eventDownload);
/**
* 更新首个
*
* @param query
* @param update
*
* @return void
*/
void updateFirst(Query query, Update update);
/**
* 按条件获取单个EventDownload
*
* @param query
*
* @return EventDownload
*/
EventDownload findOneByQuery(Query query);
/**
* 按条件删除EventDownload
*
* @param query
*
* @return void
*/
void removeByQuery(Query query);
/**
* 按条件获取个数
*
* @param query
*
* @return long
*/
long countByQuery(Query query);
/**
* 按条件获取多个
*
* @param query
*
* @return List<EventDownload>
*/
List<EventDownload> findManyByQuery(Query query);
}
package com.zhiwei.qbjc.dao;
import java.util.List;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import com.zhiwei.qbjc.pojo.entity.EventTag;
/**
* EventTagDao-interface
*
* @ClassName: EventTagDao
* @Description: EventTagDao-interface
* @author shentao
* @date 2019年7月8日 下午5:23:34
*/
public interface EventTagDao {
/**
* 按条件获取单个EventTag
*
* @Title: findOneByQuery
* @Description: 按条件获取单个EventTag
* @param @param query
* @param @return 设定文件
* @return EventTag 返回类型
*/
EventTag findOneByQuery(Query query);
/**
* 添加EventTag
*
* @Title: insert
* @Description: 添加EventTag
* @param @param eTag 设定文件
* @return void 返回类型
*/
void insert(EventTag eTag);
/**
* 按条件获取多个EventTag
*
* @Title: findManyByQuery
* @Description: 按条件获取多个EventTag
* @param @param query
* @param @return 设定文件
* @return List<EventTag> 返回类型
*/
List<EventTag> findManyByQuery(Query query);
/**
* 按条件修改第一条EventTag
*
* @Title: updateFirst
* @Description: 按条件修改第一条EventTag
* @param @param query
* @param @param bean2Update 设定文件
* @return void 返回类型
*/
void updateFirst(Query query, Update bean2Update);
}
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment