chore: initialize qiming workspace repository
This commit is contained in:
@@ -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>
|
||||
@@ -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;
|
||||
}
|
||||
Binary file not shown.
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
Binary file not shown.
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
Binary file not shown.
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user