Merge branch 'dev/dev_xp' into dev/dev

# Conflicts:
#	src/main/java/com/ai/da/model/vo/AccountLoginVO.java
#	src/main/java/com/ai/da/service/impl/AccountServiceImpl.java
This commit is contained in:
2024-12-18 14:02:06 +08:00
58 changed files with 2659 additions and 403 deletions

View File

@@ -0,0 +1,31 @@
package com.ai.da.model.dto;
import lombok.Data;
@Data
public class AffiliateEmailParamsDTO {
private String username;
private String promotionMethod;
private String totalProgramRevenue;
private String newApprovedAffiliates;
private String unpaidEarnings;
private String paidEarnings;
public AffiliateEmailParamsDTO() {
}
public AffiliateEmailParamsDTO(String username) {
this.username = username;
}
public AffiliateEmailParamsDTO(String username, String promotionMethod) {
this.username = username;
this.promotionMethod = promotionMethod;
}
}

View File

@@ -0,0 +1,31 @@
package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel("查询affiliate列表")
public class AffiliateQueryDTO extends TimeQueryBaseDTO{
@ApiModelProperty("Active活跃 || Inactive过期 || Pending待审批 || Refused(拒绝)")
private String status;
@ApiModelProperty("推广者id")
private Long affiliateId;
@ApiModelProperty("按时间 DESC 降序 || ASC 升序")
private String order = "ASC";
@Override
public String toString() {
return "AffiliateQueryDTO{" +
"status='" + status + '\'' + ' ' +
"startTime='" + super.getStartTime() + '\'' + ' ' +
"endTime='" + super.getEndTime() + '\'' + ' ' +
"page='" + super.getPage() + '\'' + ' ' +
"size='" + super.getSize() + '\'' + ' ' +
'}';
}
}

View File

@@ -12,49 +12,50 @@ import javax.validation.constraints.NotNull;
public class GenerateThroughImageTextDTO {
@NotNull(message = "userId cannot be empty")
@ApiModelProperty("用户id")
Long userId;
private Long userId;
@ApiModelProperty("caption | prompt")
String text;
private String text;
@ApiModelProperty("图片在t_collection_element表中的id")
Long collectionElementId;
private Long collectionElementId;
// todo 后续取消这个字段的传输,由后端自行判断相关参数是否有值
// @NotBlank(message = "you have to choose the generate type")
@ApiModelProperty("text image text-image")
String generateType;
private String generateType;
@ApiModelProperty("图片来源update从library中选择,从toProductImage结果中选择 collection || library || productImage")
String designType;
private String designType;
@NotBlank(message = "level1Type cannot be empty!")
@ApiModelProperty("Moodboard Printboard Sketchboard MarketingSketch")
String level1Type;
private String level1Type;
@ApiModelProperty("Outwear Dress Blouse Skirt Trousers || Logo Slogan Pattern")
String level2Type;
private String level2Type;
@ApiModelProperty("性别")
String gender;
private String gender;
@ApiModelProperty("选择的模型名")
String version;
@ApiModelProperty("选择的模型名 high || fast")
private String version;
@NotBlank(message = "timeZone cannot be empty!")
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
String timeZone;
private String timeZone;
@ApiModelProperty("唯一id用于保持消息唯一性")
String uniqueId;
private String uniqueId;
@NotNull(message = "Please check if the required fields are empty.(isTestUser)")
@ApiModelProperty("是否是测试用户")
Boolean isTestUser;
private Boolean isTestUser;
@ApiModelProperty("页面上用户设计的slogan所截的图片")
String sloganBase64;
private String sloganBase64;
@ApiModelProperty("种子 取值范围 0~500")
String seed;
private String seed;
}

View File

@@ -0,0 +1,30 @@
package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
@ApiModel("购买产品DTO")
public class ProductPurchaseDTO {
@ApiModelProperty("购买数量")
private int quantity;
// http://example.com
@NotBlank(message = "return url cannot be empty")
@ApiModelProperty("购买完成后返回页面地址")
private String returnUrl;
@NotBlank(message = "product name cannot be empty")
@ApiModelProperty("产品名 CreditsPurchase || Subscription")
private String productName;
@ApiModelProperty("Month || Year")
private String subscribeType;
@ApiModelProperty("是否自动续订 one_time || recurring")
private Boolean autoRenewal;
}

View File

@@ -0,0 +1,54 @@
package com.ai.da.model.dto;
import lombok.Data;
@Data
public class SubscriptionEmailParamsDTO {
// 用户名
private String username;
// t_payment_info id每次支付对于用户来说是一笔新订单
private String orderId;
// 订单支付创建日期
private String createDate;
// 购买数量
private String quantity;
// 费用
private String totalFee;
// 当前订阅开始时间
private String lastOrderDate;
// 当前订阅结束时间
private String endOfPrepaidTerm;
// 付款方式
private String paymentMethod;
private String last4;
// 订阅Id
private String subscriptionId;
// 订阅方式
private String subscriptionType;
// 订阅开始时间
private String startDate;
// 下一个支付日期
private String nextPayDate;
// 下次付款时间reminder
private String renewalTime;
// 付款失败原因
private String failMessage;
private String accountPageRef;
}

View File

@@ -0,0 +1,19 @@
package com.ai.da.model.dto;
import com.ai.da.model.vo.PageQueryBaseVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel("按时间查询")
public class TimeQueryBaseDTO extends PageQueryBaseVo {
@ApiModelProperty("按时间区间查询 区间起点")
private String startTime;
@ApiModelProperty("按时间区间查询 区间终点")
private String endTime;
}

View File

@@ -46,4 +46,22 @@ public class AccountLoginVO {
private String Language;
// 订阅id(stripe提供)
private String subscriptionId;
// 订阅状态
private String status;
// 订阅过期时间
private String expireTime;
// 订阅类型 month || year
private String subscriptionType;
// 是否自动续订
private boolean isAutoRenewal;
// 是否是affiliate
private boolean isAffiliate = false;
}

View File

@@ -0,0 +1,25 @@
package com.ai.da.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AffiliateInvitationDetailsVO {
private Long accountId;
private String username;
private Float firstSubscriptionPaymentAmount;
private Float commission;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private LocalDateTime time;
}

View File

@@ -0,0 +1,15 @@
package com.ai.da.model.vo;
import com.ai.da.mapper.primary.entity.Affiliate;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AffiliateVO extends Affiliate {
private Long linkViewCount;
}

View File

@@ -0,0 +1,29 @@
package com.ai.da.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 用于订单列表展示(展示的是所有支付信息)
*/
@Data
public class OrderListVO {
private Long id;
private Float amount;
private String paymentMethod;
private String state;
private String orderType;
private String invoiceLink;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private LocalDateTime createTime;
}