2022-03-31初始化

This commit is contained in:
djz236
2022-03-31 16:51:44 +08:00
commit 8fe9b95f86
98 changed files with 8758 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>yyd-log</artifactId>
<groupId>com.yyd</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>yyd-log-biz</artifactId>
<dependencies>
<dependency>
<groupId>com.yyd</groupId>
<artifactId>yyd-base-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.yyd</groupId>
<artifactId>yyd-base-jdbc</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>net.dongliu</groupId>
<artifactId>apk-parser</artifactId>
<version>2.6.10</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.yyd</groupId>
<artifactId>yyd-log-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,30 @@
package com.yyd.log;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication(scanBasePackages = {
"com.yyd.log.*"
})
@EnableDiscoveryClient
@EnableFeignClients(basePackages = {"com.yyd.log.*","com.yyd.base.*"})
public class LogApplication {
public static void main(String[] args) {
SpringApplication.run(LogApplication.class, args);
}
}

View File

@@ -0,0 +1,67 @@
package com.yyd.log.biz;
import com.alibaba.fastjson.JSONObject;
import com.yyd.log.api.SystemLog;
import lombok.extern.slf4j.Slf4j;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.kafka.support.Acknowledgment;
import org.springframework.stereotype.Component;
/**
* KafkaConsumerService
*/
@Slf4j
@Component
public class KafkaConsumerService {
@Autowired
private SystemLogService systemLogService;
@KafkaListener(groupId = "group02", topics = "kafka_log_topic")
public void onMessage(ConsumerRecord<String, Object> record, Acknowledgment acknowledgment, Consumer<?, ?> consumer) {
// log.info("消费端接收消息: {}", record.value());
JSONObject jsonObject = JSONObject.parseObject( record.value().toString());
JSONObject message=null;
try{
message = JSONObject.parseObject(jsonObject.get("message").toString());
SystemLog log=new SystemLog();
if(message.get("routeId")!=null){
log.setEventName(message.get("routeId").toString());
}else {
log.setEventName("");
}
/* log.setEventContent(jsonObject.get("heads").toString());*/
if(message.get("params")!=null){
log.setEventContent(message.get("params").toString());
}else{
log.setEventContent("");
}
if(message.get("uri")!=null){
log.setEventUrl(message.get("uri").toString());
}else{
log.setEventUrl("");
}
if(message.get("userName")!=null){
log.setUserName(message.get("userName").toString());
}else{
log.setUserName("");
}
if(message.get("ip")!=null){
log.setUserIp(message.get("ip").toString());
}else{
log.setUserIp("");
}
systemLogService.save(log);
}catch (Exception e){
message=new JSONObject();
}
// 手工签收机制
acknowledgment.acknowledge();
}
}

View File

@@ -0,0 +1,40 @@
package com.yyd.log.biz;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yyd.log.api.SystemLog;
import com.yyd.log.api.SystemLogVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SystemLogMapper.java <br/>
* Class: com.yxt.anrui.portal.biz.systemlog.SystemLogMapper <br/>
* Description: 系统日志表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:30 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface SystemLogMapper extends BaseMapper<SystemLog> {
//@Update("update system_log set name=#{msg} where id=#{id}")
//IPage<SystemLogVo> voPage(IPage<SystemLog> page, @Param(Constants.WRAPPER) QueryWrapper<SystemLog> qw);
IPage<SystemLogVo> selectPageVo(IPage<SystemLog> page, @Param(Constants.WRAPPER) Wrapper<SystemLog> qw);
List<SystemLogVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<SystemLog> qw);
@Select("select * from system_log")
List<SystemLogVo> selectListVo();
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yyd.log.consumer.systemlog.biz.SystemLogMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yyd.log.consumer.systemlog.api.SystemLogVo">
SELECT * FROM system_log <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yyd.log.consumer.systemlog.api.SystemLogVo">
SELECT * FROM system_log <where> ${ew.sqlSegment} </where>
</select>
</mapper>

View File

@@ -0,0 +1,103 @@
package com.yyd.log.biz;
import com.yyd.base.common.query.PagerQuery;
import com.yyd.base.common.result.ResultBean;
import com.yyd.base.common.vo.PagerVo;
import com.yyd.log.api.SystemLogDto;
import com.yyd.log.api.SystemLogFeign;
import com.yyd.log.api.SystemLogQuery;
import com.yyd.log.api.SystemLogVo;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SystemLogFeignFallback.java <br/>
* Class: com.yxt.anrui.portal.biz.systemlog.SystemLogRest <br/>
* Description: 系统日志表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:30 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "系统日志表")
@RestController
@RequestMapping("v1/systemlog")
public class SystemLogRest implements SystemLogFeign {
@Resource
private SystemLogService systemLogService;
@Override
public ResultBean<PagerVo<SystemLogVo>> listPage(@RequestBody PagerQuery<SystemLogQuery> pq){
/*SystemLogDto systemLogDto = SystemLogDto.builder()
.userIp(WebUtil.getIp())
.eventContent("日志列表查询")
.eventName("日志列表查询")
.eventUrl("/v1/systemlog/listPage")
.userName("")
.userSid("")
.build();*/
/*systemLogService.saveOrUpdateDto(systemLogDto);*/
/* SystemLog log=new SystemLog();
log.setEventName("日志列表查询");
log.setEventContent("日志列表查询");
log.setUserName("");
log.setUserIp("0.0.0.0");
systemLogService.save(log);*/
ResultBean rb = ResultBean.fireFail();
PagerVo<SystemLogVo> pv = systemLogService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<List<SystemLogVo>> listAll(@RequestBody SystemLogQuery query){
ResultBean rb = ResultBean.fireFail();
List<SystemLogVo> list = systemLogService.listAllVo(query);
return rb.success().setData(list);
}
@Override
public ResultBean<List<SystemLogVo>> list(){
ResultBean rb = ResultBean.fireFail();
List<SystemLogVo> list = systemLogService.listVo();
return rb.success().setData(list);
}
@Override
public ResultBean save(SystemLogDto dto){
ResultBean rb = ResultBean.fireFail();
systemLogService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
public ResultBean update(SystemLogDto dto,String sid){
ResultBean rb = ResultBean.fireFail();
systemLogService.updateBySid(dto.toMap(),sid);
return rb.success();
}
@Override
public ResultBean del(String ids){
ResultBean rb = ResultBean.fireFail();
systemLogService.delByIds(ids);
return rb.success();
}
@Override
public ResultBean<SystemLogVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
SystemLogVo vo = systemLogService.fetchByIdVo(id);
return rb.success().setData(vo);
}
}

View File

@@ -0,0 +1,109 @@
package com.yyd.log.biz;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yyd.base.common.query.PagerQuery;
import com.yyd.base.common.utils.PagerUtil;
import com.yyd.base.common.vo.PagerVo;
import com.yyd.base.jdbc.service.MybatisBaseService;
import com.yyd.log.api.SystemLog;
import com.yyd.log.api.SystemLogDto;
import com.yyd.log.api.SystemLogQuery;
import com.yyd.log.api.SystemLogVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SystemLogService.java <br/>
* Class: com.yxt.anrui.portal.biz.systemlog.SystemLogService <br/>
* Description: 系统日志表 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:30 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class SystemLogService extends MybatisBaseService<SystemLogMapper, SystemLog> {
public PagerVo<SystemLog> listPage(PagerQuery<SystemLogQuery> pq) {
SystemLogQuery query = pq.getParams();
QueryWrapper<SystemLog> qw = createQueryWrapper(query);
IPage<SystemLog> page = PagerUtil.queryToPage(pq);
IPage<SystemLog> pagging = baseMapper.selectPage(page, qw);
PagerVo<SystemLog> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SystemLog> listAll(SystemLogQuery query) {
QueryWrapper<SystemLog> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<SystemLog> createQueryWrapper(SystemLogQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<SystemLog> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getEventName())) {
qw.eq("eventName", query.getEventName());
}
if (StringUtils.isNotBlank(query.getEventContent())) {
qw.eq("eventContent", query.getEventContent());
}
if (StringUtils.isNotBlank(query.getEventUrl())) {
qw.eq("eventUrl", query.getEventUrl());
}
if (StringUtils.isNotBlank(query.getUserSid())) {
qw.eq("userSid", query.getUserSid());
}
if (StringUtils.isNotBlank(query.getUserName())) {
qw.eq("userName", query.getUserName());
}
if (StringUtils.isNotBlank(query.getUserIp())) {
qw.eq("userIp", query.getUserIp());
}
return qw;
}
public PagerVo<SystemLogVo> listPageVo(PagerQuery<SystemLogQuery> pq) {
SystemLogQuery query = pq.getParams();
QueryWrapper<SystemLog> qw = createQueryWrapper(query);
IPage<SystemLog> page = PagerUtil.queryToPage(pq);
IPage<SystemLogVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<SystemLogVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<SystemLogVo> listAllVo(SystemLogQuery query) {
QueryWrapper<SystemLog> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<SystemLogVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(SystemLogDto dto){
SystemLog entity = new SystemLog();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public SystemLogVo fetchByIdVo(String id){
SystemLog entity = this.fetchById(id);
SystemLogVo vo = new SystemLogVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
}

View File

@@ -0,0 +1,32 @@
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/anrui_portal?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
username: root
password: root
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
redis:
database: 3 # Redis数据库索引默认为0
host: 127.0.0.1
jedis:
pool:
max-active: -1 #连接池最大连接数(使用负值表示没有限制)
max-idle: 8 #连接池中的最大空闲连接
max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
min-idle: 0 # 连接池中的最小空闲连接
password: 123456
port: 6379
timeout: 0 # 连接超时时间(毫秒)
image:
upload:
path: D:\\anrui\\upload\\
url:
prefix: http://127.0.0.1:7003/upload/
login:
path: D:\\images\\pic-click

View File

@@ -0,0 +1,30 @@
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://120.46.131.15:3306/anrui_portal?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
username: root
password: anrui_@root
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
redis:
database: 3 # Redis数据库索引默认为0
host: 127.0.0.1
jedis:
pool:
max-active: -1 #连接池最大连接数(使用负值表示没有限制)
max-idle: 8 #连接池中的最大空闲连接
max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
min-idle: 0 # 连接池中的最小空闲连接
password: 123456
port: 6379
timeout: 0 # 连接超时时间(毫秒)
image:
upload:
path: D:\anrui\upload\
url:
prefix: http://120.46.131.15:8111/upload/
login:
path: D:\images\pic-click

View File

@@ -0,0 +1,30 @@
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://39.104.142.192:3306/anrui_portal?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
username: root
password: 123456
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
redis:
database: 3 # Redis数据库索引默认为0
host: 127.0.0.1
jedis:
pool:
max-active: -1 #连接池最大连接数(使用负值表示没有限制)
max-idle: 8 #连接池中的最大空闲连接
max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
min-idle: 0 # 连接池中的最小空闲连接
password:
port: 6379
timeout: 0 # 连接超时时间(毫秒)
image:
upload:
path: D:\\anrui\\upload\\
url:
prefix: http://127.0.0.1:7003/upload/
login:
path: D:\\images\\pic-click

View File

@@ -0,0 +1,55 @@
spring:
application:
name: yyd-log
profiles:
active: devv
messages:
# 国际化资源文件路径
basename: i18n/messages
servlet:
#上传文件
multipart:
max-file-size: 50MB
max-request-size: 100MB
devtools:
restart:
# 热部署开关
enabled: true
mvc:
async:
request-timeout: 20000
kafka:
bootstrap-servers: 127.0.0.1:9092
listener:
missing-topics-fatal: false
ack-mode: manual
concurrency: 5
consumer:
enable-auto-commit: false
auto-offset-reset: earliest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
server:
port: 8002
servlet:
context-path: /consumser
max-http-header-size: 102400
undertow:
max-http-post-size: -1
#mybatis
mybatis-plus:
# 配置mapper的扫描找到所有的mapper.xml映射文件
mapper-locations: classpath*:**Mapper.xml
global-config:
refresh: true
db-config:
#定义生成ID的类型
id-type: Auto
db-type: mysql
configuration:
map-underscore-to-camel-case: false
cache-enabled: true
call-setters-on-nulls: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="log.base" value="logs/yyd-demo" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符
|%blue(%thread) 线程 如 DiscoveryClient-CacheRefreshExecutor-0-->
<!--<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>-->
<pattern>%yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-5level) |%green(%logger:%line) |%blue(%msg%n)
</pattern>
<!--<charset>UTF-8</charset> -->
</encoder>
</appender>
<!-- 彩色日志 -->
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<appender name="FILEOUT"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.base}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.base}.%d{yyyyMMdd}.%i.log.zip
</fileNamePattern>
<!-- 当文件大小超过10MB时触发滚动 -->
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>1MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<!--<pattern>%date [%thread] %-5level %logger{35} - %msg%n</pattern>-->
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}
-%msg%n</Pattern>
<!--<charset>UTF-8</charset> -->
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILEOUT" />
</root>
</configuration>