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 file-service/pom.xml ./file-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
RUN --mount=type=cache,target=/root/.m2 \
@ -34,7 +34,7 @@ COPY update-service ./update-service
COPY demo-service ./demo-service
COPY file-service ./file-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 \
mvn -s /workspace/maven-settings.xml -pl ${SERVICE_MODULE} -am -DskipTests package

6
Jenkinsfile vendored
查看文件

@ -4,7 +4,7 @@ pipeline {
parameters {
choice(
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 = 全部,每个服务独立版本号)'
)
}
@ -41,7 +41,7 @@ pipeline {
stage('Resolve Versions') {
steps {
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
def jobService = env.JOB_NAME.tokenize('/').last()
@ -118,7 +118,7 @@ pipeline {
// 合并更新 versions.json只改动本次构建涉及的服务,不覆盖其它服务或 web 条目)
def releasedAt = new Date().format("yyyy-MM-dd'T'HH:mm:ss'Z'", TimeZone.getTimeZone('UTC'))
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 = """\
import json, os
path = '${env.VERSIONS_FILE}'

查看文件

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

查看文件

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

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log;
package com.xuqm.bugcollect;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@ -6,7 +6,7 @@ import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication
@ComponentScan(basePackages = {"com.xuqm.log", "com.xuqm.common"})
@ComponentScan(basePackages = {"com.xuqm.bugcollect", "com.xuqm.common"})
@EnableAsync
public class LogServiceApplication {
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.Configuration;
@ -18,7 +18,7 @@ public class SecurityConfig {
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.authorizeHttpRequests(auth -> auth
.requestMatchers("/actuator/**").permitAll()
.requestMatchers("/log/**").permitAll()
.requestMatchers("/bugcollect/**").permitAll()
.anyRequest().permitAll()
);
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.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.PageResult;
import com.xuqm.log.dto.*;
import com.xuqm.log.service.LogService;
import com.xuqm.log.service.SourcemapService;
import com.xuqm.log.service.WebhookService;
import com.xuqm.bugcollect.dto.*;
import com.xuqm.bugcollect.service.LogService;
import com.xuqm.bugcollect.service.SourcemapService;
import com.xuqm.bugcollect.service.WebhookService;
import jakarta.validation.Valid;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;
@ -15,7 +15,7 @@ import java.io.IOException;
import java.util.List;
@RestController
@RequestMapping("/log/v1")
@RequestMapping("/bugcollect/v1")
public class LogController {
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 jakarta.validation.constraints.NotBlank;

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.dto;
package com.xuqm.bugcollect.dto;
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 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 java.time.LocalDateTime;

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.dto;
package com.xuqm.bugcollect.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
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 java.util.List;

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.dto;
package com.xuqm.bugcollect.dto;
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 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 java.time.LocalDateTime;

查看文件

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

查看文件

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

查看文件

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

查看文件

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

查看文件

@ -1,4 +1,4 @@
package com.xuqm.log.entity;
package com.xuqm.bugcollect.entity;
import jakarta.persistence.*;
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.Pageable;
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.Pageable;
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.Pageable;
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 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 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.databind.ObjectMapper;
import com.xuqm.log.dto.*;
import com.xuqm.log.entity.*;
import com.xuqm.log.repository.*;
import com.xuqm.bugcollect.dto.*;
import com.xuqm.bugcollect.entity.*;
import com.xuqm.bugcollect.repository.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.log.entity.LogSourcemapEntity;
import com.xuqm.log.repository.LogSourcemapRepository;
import com.xuqm.bugcollect.dto.SourcemapUploadResponse;
import com.xuqm.bugcollect.entity.LogSourcemapEntity;
import com.xuqm.bugcollect.repository.LogSourcemapRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
@ -23,7 +23,7 @@ public class SourcemapService {
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;
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.xuqm.log.dto.WebhookRequest;
import com.xuqm.log.dto.WebhookResponse;
import com.xuqm.log.entity.LogIssueEntity;
import com.xuqm.log.entity.LogWebhookEntity;
import com.xuqm.log.repository.LogWebhookRepository;
import com.xuqm.bugcollect.dto.WebhookRequest;
import com.xuqm.bugcollect.dto.WebhookResponse;
import com.xuqm.bugcollect.entity.LogIssueEntity;
import com.xuqm.bugcollect.entity.LogWebhookEntity;
import com.xuqm.bugcollect.repository.LogWebhookRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.redis.core.StringRedisTemplate;

查看文件

@ -3,9 +3,9 @@ server:
spring:
application:
name: xuqm-log-service
name: xuqm-bugcollect-service
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
password: Xuqm@2026
driver-class-name: com.mysql.cj.jdbc.Driver
@ -50,9 +50,9 @@ spring:
max-file-size: 50MB
max-request-size: 50MB
log-service:
bugcollect-service:
sourcemap:
storage-dir: ${LOG_SOURCEMAP_DIR:/data/log-service/sourcemaps}
storage-dir: ${LOG_SOURCEMAP_DIR:/data/bugcollect-service/sourcemaps}
webhook:
connect-timeout-ms: 3000
read-timeout-ms: 5000