refactor: xuqm-log-service → xuqm-bugcollect-service

- 目录/包名/API路径/数据库/容器名全部重命名
- 26个Java文件包名 com.xuqm.log → com.xuqm.bugcollect
- API前缀 /log/v1/ → /bugcollect/v1/
- mvn compile 通过

Co-Authored-By: Claude <noreply@anthropic.com>
这个提交包含在:
XuqmGroup 2026-06-16 17:39:13 +08:00
父节点 e7702fb443
当前提交 5b020525ac
共有 33 个文件被更改,包括 63 次插入63 次删除

查看文件

@ -17,7 +17,7 @@ COPY update-service/pom.xml ./update-service/pom.xml
COPY demo-service/pom.xml ./demo-service/pom.xml COPY demo-service/pom.xml ./demo-service/pom.xml
COPY file-service/pom.xml ./file-service/pom.xml COPY file-service/pom.xml ./file-service/pom.xml
COPY license-service/pom.xml ./license-service/pom.xml COPY license-service/pom.xml ./license-service/pom.xml
COPY xuqm-log-service/pom.xml ./xuqm-log-service/pom.xml COPY xuqm-bugcollect-service/pom.xml ./xuqm-bugcollect-service/pom.xml
# Pre-download dependencies using BuildKit cache mount — persisted across builds # Pre-download dependencies using BuildKit cache mount — persisted across builds
RUN --mount=type=cache,target=/root/.m2 \ RUN --mount=type=cache,target=/root/.m2 \
@ -34,7 +34,7 @@ COPY update-service ./update-service
COPY demo-service ./demo-service COPY demo-service ./demo-service
COPY file-service ./file-service COPY file-service ./file-service
COPY license-service ./license-service COPY license-service ./license-service
COPY xuqm-log-service ./xuqm-log-service COPY xuqm-bugcollect-service ./xuqm-bugcollect-service
RUN --mount=type=cache,target=/root/.m2 \ RUN --mount=type=cache,target=/root/.m2 \
mvn -s /workspace/maven-settings.xml -pl ${SERVICE_MODULE} -am -DskipTests package mvn -s /workspace/maven-settings.xml -pl ${SERVICE_MODULE} -am -DskipTests package

6
Jenkinsfile vendored
查看文件

@ -4,7 +4,7 @@ pipeline {
parameters { parameters {
choice( choice(
name: 'SERVICE', name: 'SERVICE',
choices: ['all', 'tenant-service', 'im-service', 'push-service', 'update-service', 'file-service', 'license-service', 'demo-service', 'xuqm-log-service'], choices: ['all', 'tenant-service', 'im-service', 'push-service', 'update-service', 'file-service', 'license-service', 'demo-service', 'xuqm-bugcollect-service'],
description: '要构建的服务模块all = 全部,每个服务独立版本号)' description: '要构建的服务模块all = 全部,每个服务独立版本号)'
) )
} }
@ -41,7 +41,7 @@ pipeline {
stage('Resolve Versions') { stage('Resolve Versions') {
steps { steps {
script { script {
def allServices = ['tenant-service', 'im-service', 'push-service', 'update-service', 'file-service', 'license-service', 'demo-service', 'xuqm-log-service'] def allServices = ['tenant-service', 'im-service', 'push-service', 'update-service', 'file-service', 'license-service', 'demo-service', 'xuqm-bugcollect-service']
// 支持从 job 名自动推断服务(如 xuqmgroup-update-service → update-service // 支持从 job 名自动推断服务(如 xuqmgroup-update-service → update-service
def jobService = env.JOB_NAME.tokenize('/').last() def jobService = env.JOB_NAME.tokenize('/').last()
@ -118,7 +118,7 @@ pipeline {
// 合并更新 versions.json只改动本次构建涉及的服务,不覆盖其它服务或 web 条目) // 合并更新 versions.json只改动本次构建涉及的服务,不覆盖其它服务或 web 条目)
def releasedAt = new Date().format("yyyy-MM-dd'T'HH:mm:ss'Z'", TimeZone.getTimeZone('UTC')) def releasedAt = new Date().format("yyyy-MM-dd'T'HH:mm:ss'Z'", TimeZone.getTimeZone('UTC'))
def builtJson = groovy.json.JsonOutput.toJson(serviceVersions) def builtJson = groovy.json.JsonOutput.toJson(serviceVersions)
def allSvcsList = groovy.json.JsonOutput.toJson(['tenant-service', 'im-service', 'push-service', 'update-service', 'file-service', 'license-service', 'demo-service', 'xuqm-log-service']) def allSvcsList = groovy.json.JsonOutput.toJson(['tenant-service', 'im-service', 'push-service', 'update-service', 'file-service', 'license-service', 'demo-service', 'xuqm-bugcollect-service'])
def updateScript = """\ def updateScript = """\
import json, os import json, os
path = '${env.VERSIONS_FILE}' path = '${env.VERSIONS_FILE}'

查看文件

@ -21,7 +21,7 @@
<module>demo-service</module> <module>demo-service</module>
<module>file-service</module> <module>file-service</module>
<module>license-service</module> <module>license-service</module>
<module>xuqm-log-service</module> <module>xuqm-bugcollect-service</module>
</modules> </modules>
<properties> <properties>

查看文件

@ -11,9 +11,9 @@
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<artifactId>xuqm-log-service</artifactId> <artifactId>xuqm-bugcollect-service</artifactId>
<name>xuqm-log-service</name> <name>xuqm-bugcollect-service</name>
<description>Log collection, dedup, symbolication, webhook notification &amp; funnel analytics</description> <description>Bug collection, dedup, symbolication, webhook notification &amp; funnel analytics</description>
<dependencies> <dependencies>
<dependency> <dependency>

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log; package com.xuqm.bugcollect;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
@ -6,7 +6,7 @@ import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication @SpringBootApplication
@ComponentScan(basePackages = {"com.xuqm.log", "com.xuqm.common"}) @ComponentScan(basePackages = {"com.xuqm.bugcollect", "com.xuqm.common"})
@EnableAsync @EnableAsync
public class LogServiceApplication { public class LogServiceApplication {
public static void main(String[] args) { public static void main(String[] args) {

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.config; package com.xuqm.bugcollect.config;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -18,7 +18,7 @@ public class SecurityConfig {
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.authorizeHttpRequests(auth -> auth .authorizeHttpRequests(auth -> auth
.requestMatchers("/actuator/**").permitAll() .requestMatchers("/actuator/**").permitAll()
.requestMatchers("/log/**").permitAll() .requestMatchers("/bugcollect/**").permitAll()
.anyRequest().permitAll() .anyRequest().permitAll()
); );
return http.build(); return http.build();

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.controller; package com.xuqm.bugcollect.controller;
import com.xuqm.common.exception.BusinessException; import com.xuqm.common.exception.BusinessException;
import com.xuqm.common.model.ApiResponse; import com.xuqm.common.model.ApiResponse;

查看文件

@ -1,11 +1,11 @@
package com.xuqm.log.controller; package com.xuqm.bugcollect.controller;
import com.xuqm.common.model.ApiResponse; import com.xuqm.common.model.ApiResponse;
import com.xuqm.common.model.PageResult; import com.xuqm.common.model.PageResult;
import com.xuqm.log.dto.*; import com.xuqm.bugcollect.dto.*;
import com.xuqm.log.service.LogService; import com.xuqm.bugcollect.service.LogService;
import com.xuqm.log.service.SourcemapService; import com.xuqm.bugcollect.service.SourcemapService;
import com.xuqm.log.service.WebhookService; import com.xuqm.bugcollect.service.WebhookService;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -15,7 +15,7 @@ import java.io.IOException;
import java.util.List; import java.util.List;
@RestController @RestController
@RequestMapping("/log/v1") @RequestMapping("/bugcollect/v1")
public class LogController { public class LogController {
private final LogService logService; private final LogService logService;

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.dto; package com.xuqm.bugcollect.dto;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.dto; package com.xuqm.bugcollect.dto;
import java.util.List; import java.util.List;

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.dto; package com.xuqm.bugcollect.dto;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.dto; package com.xuqm.bugcollect.dto;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.time.LocalDateTime; import java.time.LocalDateTime;

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.dto; package com.xuqm.bugcollect.dto;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.time.LocalDateTime; import java.time.LocalDateTime;

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.dto; package com.xuqm.bugcollect.dto;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List; import java.util.List;

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.dto; package com.xuqm.bugcollect.dto;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.dto; package com.xuqm.bugcollect.dto;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.dto; package com.xuqm.bugcollect.dto;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.time.LocalDateTime; import java.time.LocalDateTime;

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.entity; package com.xuqm.bugcollect.entity;
import jakarta.persistence.*; import jakarta.persistence.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.entity; package com.xuqm.bugcollect.entity;
import jakarta.persistence.*; import jakarta.persistence.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.entity; package com.xuqm.bugcollect.entity;
import jakarta.persistence.*; import jakarta.persistence.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.entity; package com.xuqm.bugcollect.entity;
import jakarta.persistence.*; import jakarta.persistence.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.entity; package com.xuqm.bugcollect.entity;
import jakarta.persistence.*; import jakarta.persistence.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;

查看文件

@ -1,6 +1,6 @@
package com.xuqm.log.repository; package com.xuqm.bugcollect.repository;
import com.xuqm.log.entity.LogEventEntity; import com.xuqm.bugcollect.entity.LogEventEntity;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;

查看文件

@ -1,6 +1,6 @@
package com.xuqm.log.repository; package com.xuqm.bugcollect.repository;
import com.xuqm.log.entity.LogIssueEventEntity; import com.xuqm.bugcollect.entity.LogIssueEventEntity;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;

查看文件

@ -1,6 +1,6 @@
package com.xuqm.log.repository; package com.xuqm.bugcollect.repository;
import com.xuqm.log.entity.LogIssueEntity; import com.xuqm.bugcollect.entity.LogIssueEntity;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;

查看文件

@ -1,6 +1,6 @@
package com.xuqm.log.repository; package com.xuqm.bugcollect.repository;
import com.xuqm.log.entity.LogSourcemapEntity; import com.xuqm.bugcollect.entity.LogSourcemapEntity;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional; import java.util.Optional;

查看文件

@ -1,6 +1,6 @@
package com.xuqm.log.repository; package com.xuqm.bugcollect.repository;
import com.xuqm.log.entity.LogWebhookEntity; import com.xuqm.bugcollect.entity.LogWebhookEntity;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List; import java.util.List;

查看文件

@ -1,10 +1,10 @@
package com.xuqm.log.service; package com.xuqm.bugcollect.service;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.xuqm.log.dto.*; import com.xuqm.bugcollect.dto.*;
import com.xuqm.log.entity.*; import com.xuqm.bugcollect.entity.*;
import com.xuqm.log.repository.*; import com.xuqm.bugcollect.repository.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;

查看文件

@ -1,8 +1,8 @@
package com.xuqm.log.service; package com.xuqm.bugcollect.service;
import com.xuqm.log.dto.SourcemapUploadResponse; import com.xuqm.bugcollect.dto.SourcemapUploadResponse;
import com.xuqm.log.entity.LogSourcemapEntity; import com.xuqm.bugcollect.entity.LogSourcemapEntity;
import com.xuqm.log.repository.LogSourcemapRepository; import com.xuqm.bugcollect.repository.LogSourcemapRepository;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
@ -23,7 +23,7 @@ public class SourcemapService {
private final LogSourcemapRepository sourcemapRepository; private final LogSourcemapRepository sourcemapRepository;
@Value("${log-service.sourcemap.storage-dir:/data/log-service/sourcemaps}") @Value("${bugcollect-service.sourcemap.storage-dir:/data/bugcollect-service/sourcemaps}")
private String storageDir; private String storageDir;
public SourcemapService(LogSourcemapRepository sourcemapRepository) { public SourcemapService(LogSourcemapRepository sourcemapRepository) {

查看文件

@ -1,11 +1,11 @@
package com.xuqm.log.service; package com.xuqm.bugcollect.service;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.xuqm.log.dto.WebhookRequest; import com.xuqm.bugcollect.dto.WebhookRequest;
import com.xuqm.log.dto.WebhookResponse; import com.xuqm.bugcollect.dto.WebhookResponse;
import com.xuqm.log.entity.LogIssueEntity; import com.xuqm.bugcollect.entity.LogIssueEntity;
import com.xuqm.log.entity.LogWebhookEntity; import com.xuqm.bugcollect.entity.LogWebhookEntity;
import com.xuqm.log.repository.LogWebhookRepository; import com.xuqm.bugcollect.repository.LogWebhookRepository;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;

查看文件

@ -3,9 +3,9 @@ server:
spring: spring:
application: application:
name: xuqm-log-service name: xuqm-bugcollect-service
datasource: datasource:
url: jdbc:mysql://39.107.53.187:3306/xuqm_log?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true url: jdbc:mysql://39.107.53.187:3306/xuqm_bugcollect?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: xuqm username: xuqm
password: Xuqm@2026 password: Xuqm@2026
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
@ -50,9 +50,9 @@ spring:
max-file-size: 50MB max-file-size: 50MB
max-request-size: 50MB max-request-size: 50MB
log-service: bugcollect-service:
sourcemap: sourcemap:
storage-dir: ${LOG_SOURCEMAP_DIR:/data/log-service/sourcemaps} storage-dir: ${LOG_SOURCEMAP_DIR:/data/bugcollect-service/sourcemaps}
webhook: webhook:
connect-timeout-ms: 3000 connect-timeout-ms: 3000
read-timeout-ms: 5000 read-timeout-ms: 5000