chore: initialize qiming workspace repository

This commit is contained in:
Codex
2026-05-29 14:22:48 +08:00
commit bfd67a0f2c
10750 changed files with 1885711 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
<?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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.xspaceagi</groupId>
<artifactId>app-platform-credit</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>app-platform-credit-sdk</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.xspaceagi</groupId>
<artifactId>app-platform-credit-spec</artifactId>
</dependency>
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-annotations</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,21 @@
package com.xspaceagi.credit.sdk.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
import java.util.Map;
@Data
@Schema(description = "用户积分批次添加请求")
public class CreditAddRequest extends CreditRequest {
@Schema(description = "过期时间,为空表示永不过期")
private Date expireTime;
@Schema(description = "备注")
private String remark;
@Schema(description = "扩展字段", hidden = true)
private Map<String, Object> extra;
}

View File

@@ -0,0 +1,15 @@
package com.xspaceagi.credit.sdk.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(description = "用户积分扣减请求")
public class CreditDeductRequest extends CreditRequest {
@Schema(description = "是否允许透支默认false")
private Boolean allowNegative = false;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,55 @@
package com.xspaceagi.credit.sdk.dto;
import com.xspaceagi.credit.spec.enums.CreditTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
@Schema(description = "积分流水信息")
public class CreditFlowDTO {
@Schema(description = "流水ID")
private Long id;
@Schema(description = "用户ID")
private Long userId;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "积分类型")
private CreditTypeEnum creditType;
@Schema(description = "积分类型名称")
private String creditTypeName;
@Schema(description = "操作类型1-增加2-扣减")
private Integer operationType;
@Schema(description = "操作类型名称")
private String operationTypeName;
@Schema(description = "积分数量")
private BigDecimal amount;
@Schema(description = "操作前积分")
private BigDecimal beforeAmount;
@Schema(description = "操作后积分")
private BigDecimal afterAmount;
@Schema(description = "业务单号")
private String bizNo;
@Schema(description = "创建时间")
private Date created;
@Schema(description = "备注")
private String remark;
@Schema(description = "用户信息")
private CreditUser user;
}

View File

@@ -0,0 +1,42 @@
package com.xspaceagi.credit.sdk.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
@Schema(description = "积分套餐信息")
public class CreditPackageDTO {
@Schema(description = "套餐ID")
private Long id;
@Schema(description = "套餐名称")
private String packageName;
@Schema(description = "积分数量")
private BigDecimal creditAmount;
@Schema(description = "价格")
private BigDecimal price;
@Schema(description = "排序")
private Integer sort;
@Schema(description = "状态0-禁用1-启用")
private Integer status;
@Schema(description = "创建时间")
private Date created;
@Schema(description = "有效期(月)")
private Integer period;
@Schema(description = "更新时间")
private Date modified;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,28 @@
package com.xspaceagi.credit.sdk.dto;
import com.xspaceagi.credit.spec.enums.CreditTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
@Schema(description = "用户积分请求")
public class CreditRequest implements Serializable {
@Schema(description = "租户ID", requiredMode = Schema.RequiredMode.REQUIRED)
private Long tenantId;
@Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED)
private Long userId;
@Schema(description = "积分类型SUBSCRIPTION-订阅积分PURCHASE-增购积分ACTIVITY-活动积分MANUAL-手动发放", requiredMode = Schema.RequiredMode.REQUIRED)
private CreditTypeEnum creditType;
@Schema(description = "积分数量", requiredMode = Schema.RequiredMode.REQUIRED)
private BigDecimal amount;
@Schema(description = "业务单号,用于幂等")
private String bizNo;
}

View File

@@ -0,0 +1,17 @@
package com.xspaceagi.credit.sdk.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
public class CreditUser {
private String username;
private String phone;
private String email;
}

View File

@@ -0,0 +1,53 @@
package com.xspaceagi.credit.sdk.dto;
import com.xspaceagi.credit.spec.enums.CreditTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;
@Data
@Schema(description = "用户积分批次信息")
public class UserCreditBatchDTO {
@Schema(description = "批次ID")
private Long id;
@Schema(description = "用户ID")
private Long userId;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "积分类型")
private CreditTypeEnum creditType;
@Schema(description = "积分类型名称")
private String creditTypeName;
@Schema(description = "总积分")
private BigDecimal totalAmount;
@Schema(description = "已使用积分")
private BigDecimal usedAmount;
@Schema(description = "剩余积分")
private BigDecimal remainAmount;
@Schema(description = "过期时间")
private Date expireTime;
@Schema(description = "是否已过期")
private Boolean expired;
@Schema(description = "创建时间")
private Date created;
@Schema(description = "备注")
private String remark;
@Schema(description = "扩展信息")
private Map<String, Object> extra;
}

View File

@@ -0,0 +1,35 @@
package com.xspaceagi.credit.sdk.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
@Data
@Schema(description = "用户积分汇总信息")
public class UserCreditSummary {
@Schema(description = "用户ID")
private Long userId;
@Schema(description = "总积分")
private BigDecimal totalCredit;
@Schema(description = "订阅积分")
private BigDecimal subscriptionCredit;
@Schema(description = "增购积分")
private BigDecimal purchaseCredit;
@Schema(description = "活动积分")
private BigDecimal activityCredit;
@Schema(description = "手动发放积分")
private BigDecimal manualCredit;
@Schema(description = "每日赠积分")
private BigDecimal dailyGiftCredit;
@Schema(description = "用户信息")
private CreditUser user;
}

View File

@@ -0,0 +1,24 @@
package com.xspaceagi.credit.sdk.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
@Schema(description = "用户积分汇总分页结果")
public class UserCreditSummaryPageDTO implements Serializable {
@Schema(description = "记录列表")
private List<UserCreditSummary> records;
@Schema(description = "总记录数")
private Long total;
@Schema(description = "页码")
private Integer pageNum;
@Schema(description = "每页大小")
private Integer pageSize;
}

View File

@@ -0,0 +1,14 @@
package com.xspaceagi.credit.sdk.rpc;
import com.xspaceagi.credit.sdk.dto.CreditAddRequest;
import com.xspaceagi.credit.sdk.dto.CreditDeductRequest;
import com.xspaceagi.credit.sdk.dto.UserCreditSummary;
public interface ICreditRpcService {
String addCredit(CreditAddRequest request);
boolean deductCredit(CreditDeductRequest request);
UserCreditSummary getUserCreditSummary(Long userId);
}