feat(integral-external): 新增寄卖外部免认证三件套页面

This commit is contained in:
danaisuiyuan
2026-05-02 06:13:41 +08:00
parent 49900919c6
commit d8ad6cde20
35 changed files with 3369 additions and 14 deletions

View File

@@ -0,0 +1,33 @@
package com.zbkj.common.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* 今日抢单用户列表 查询请求(外部免认证)
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
* +----------------------------------------------------------------------
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "ExternalGrabUserRequest 对象", description = "今日抢单用户列表查询请求")
public class ExternalGrabUserRequest implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "用户ID精确")
private Integer uid;
@ApiModelProperty(value = "联系方式(模糊匹配 mobile / username")
private String mobile;
@ApiModelProperty(value = "上级ID精确")
private Integer pid;
}

View File

@@ -0,0 +1,37 @@
package com.zbkj.common.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
/**
* 团队每日对账日报 查询请求(外部免认证)
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
* +----------------------------------------------------------------------
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "TeamDailyReportRequest 对象", description = "团队每日对账查询请求")
public class TeamDailyReportRequest implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "团队长 IDwa_users.id为空时按团队长分组返回所有团队")
private Integer leaderId;
@ApiModelProperty(value = "查询日期 Dyyyy-MM-dd缺省为昨天")
private String date;
@ApiModelProperty(value = "是否包含禁用成员,默认 false")
private Boolean includeDisabled = Boolean.FALSE;
@ApiModelProperty(value = "限定成员 ID 列表(前端勾选过滤)")
private List<Integer> memberIds;
}

View File

@@ -0,0 +1,115 @@
package com.zbkj.common.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 今日抢单用户列表 响应对象(外部免认证)
* 字段保留 3 位小数(与上传参考图一致),由 Service 层格式化为字符串。
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
* +----------------------------------------------------------------------
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "ExternalGrabUserResponse 对象", description = "今日抢单用户列表响应")
public class ExternalGrabUserResponse implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "用户ID")
private Integer id;
@ApiModelProperty(value = "账号 / 用户名")
private String username;
@ApiModelProperty(value = "昵称")
private String nickname;
@ApiModelProperty(value = "手机号 / 联系方式")
private String mobile;
@ApiModelProperty(value = "合同 URL为空表示未上传")
private String contract;
@ApiModelProperty(value = "上级ID")
private Integer pid;
@ApiModelProperty(value = "最高可抢单数")
private Integer maxOrder;
@ApiModelProperty(value = "用户等级(数值)")
private Integer level;
@ApiModelProperty(value = "用户等级文案")
private String levelName;
@ApiModelProperty(value = "余额(保留 3 位小数)")
private String money;
@ApiModelProperty(value = "优惠券(保留 3 位小数)")
private String coupon;
@ApiModelProperty(value = "个人奖金(保留 3 位小数)")
private String selfBonus;
@ApiModelProperty(value = "推广奖金(保留 3 位小数)")
private String shareBonus;
@ApiModelProperty(value = "状态0=禁用1=正常")
private Integer status;
@ApiModelProperty(value = "状态文案")
private String statusStr;
@ApiModelProperty(value = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date updatedAt;
@ApiModelProperty(value = "今日购买总金额(保留 3 位小数)")
private String todayBuyAmount;
@ApiModelProperty(value = "今日卖出总金额(保留 3 位小数)")
private String todaySellAmount;
@ApiModelProperty(value = "今日买单数")
private Integer todayBuyCnt;
@ApiModelProperty(value = "昨日卖单数")
private Integer prevSellCnt;
/** 内部使用SQL 聚合后由 Service 二次处理为格式化字符串;不输出到 JSON */
@JsonIgnore
@ApiModelProperty(hidden = true)
private BigDecimal todayBuyAmountRaw;
@JsonIgnore
@ApiModelProperty(hidden = true)
private BigDecimal todaySellAmountRaw;
@JsonIgnore
@ApiModelProperty(hidden = true)
private BigDecimal moneyRaw;
@JsonIgnore
@ApiModelProperty(hidden = true)
private BigDecimal couponRaw;
@JsonIgnore
@ApiModelProperty(hidden = true)
private BigDecimal selfBonusRaw;
@JsonIgnore
@ApiModelProperty(hidden = true)
private BigDecimal shareBonusRaw;
}

View File

@@ -0,0 +1,71 @@
package com.zbkj.common.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 团队每日对账日报 - 单成员行
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
* +----------------------------------------------------------------------
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "TeamDailyMemberRow 对象", description = "团队每日对账 - 单成员行")
public class TeamDailyMemberRow implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "成员用户 ID")
private Integer userId;
@ApiModelProperty(value = "成员昵称")
private String nickname;
@ApiModelProperty(value = "团队代号")
private String teamCode;
@ApiModelProperty(value = "成员状态1=启用0=禁用")
private Integer status;
/** 内部使用:所属团队长 ID即 wa_users.pid不输出到 JSON */
@JsonIgnore
@ApiModelProperty(hidden = true)
private Integer leaderId;
@ApiModelProperty(value = "D-1 买单合计")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal prevBuy;
@ApiModelProperty(value = "D 卖单合计")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal todaySell;
@ApiModelProperty(value = "D 买单合计")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal todayBuy;
@ApiModelProperty(value = "服务费 = D买单 × service_rate")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal serviceFee;
@ApiModelProperty(value = "E 积分 = D买单 × e_score_rate")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal eScore;
@ApiModelProperty(value = "实际收付 = D卖单 D买单 服务费 E积分")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal actual;
@ApiModelProperty(value = "备注(前端会话级,非持久化)")
private String remark;
}

View File

@@ -0,0 +1,59 @@
package com.zbkj.common.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* 团队每日对账日报 — 多团队聚合响应(外部免认证)。
*
* 当前端不传 leaderId 时返回此结构,按团队长分组列出全部团队的报表,
* 并附带跨团队的总计。当 leaderId 传入时 teams 仅含 1 项。
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
* +----------------------------------------------------------------------
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "TeamDailyMultiReportResponse 对象", description = "多团队每日对账响应")
public class TeamDailyMultiReportResponse implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("查询日期 Dyyyy-MM-dd")
private String date;
@ApiModelProperty("D-1 日期yyyy-MM-dd")
private String previousDate;
@ApiModelProperty("服务费率")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal serviceRate;
@ApiModelProperty("E 积分率")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal eScoreRate;
@ApiModelProperty("团队数")
private Integer teamCount;
@ApiModelProperty("成员合计(跨团队)")
private Integer totalMemberCount;
@ApiModelProperty("各团队报表(按 leaderId 分组)")
private List<TeamDailyReportResponse> teams;
@ApiModelProperty("跨团队总计")
private TeamDailySummary grandSummary;
@ApiModelProperty("警告信息(如非法 memberIds")
private List<String> warnings;
}

View File

@@ -0,0 +1,62 @@
package com.zbkj.common.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* 团队每日对账日报 响应(外部免认证)
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
* +----------------------------------------------------------------------
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "TeamDailyReportResponse 对象", description = "团队每日对账日报响应")
public class TeamDailyReportResponse implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("团队长 ID")
private Integer leaderId;
@ApiModelProperty("团队长昵称")
private String leaderNickname;
@ApiModelProperty("团队代号")
private String teamCode;
@ApiModelProperty("成员人数")
private Integer memberCount;
@ApiModelProperty("查询日期 Dyyyy-MM-dd")
private String date;
@ApiModelProperty("D-1 日期yyyy-MM-dd")
private String previousDate;
@ApiModelProperty("服务费率")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal serviceRate;
@ApiModelProperty("E 积分率")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal eScoreRate;
@ApiModelProperty("成员行")
private List<TeamDailyMemberRow> rows;
@ApiModelProperty("小计")
private TeamDailySummary summary;
@ApiModelProperty("警告信息(如非法 memberIds")
private List<String> warnings;
}

View File

@@ -0,0 +1,50 @@
package com.zbkj.common.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 团队每日对账日报 - 小计
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
* +----------------------------------------------------------------------
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "TeamDailySummary 对象", description = "团队每日对账 - 小计")
public class TeamDailySummary implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("D-1 买单合计")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal prevBuy = BigDecimal.ZERO;
@ApiModelProperty("D 卖单合计")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal todaySell = BigDecimal.ZERO;
@ApiModelProperty("D 买单合计")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal todayBuy = BigDecimal.ZERO;
@ApiModelProperty("服务费合计")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal serviceFee = BigDecimal.ZERO;
@ApiModelProperty("E 积分合计")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal eScore = BigDecimal.ZERO;
@ApiModelProperty("实际收付合计")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal actual = BigDecimal.ZERO;
}

View File

@@ -93,6 +93,12 @@ public class WaOrderResponse implements Serializable {
@ApiModelProperty(value = "寄售商品ID")
private Integer merchandiseId;
@ApiModelProperty(value = "寄售商品标题")
private String merchandiseTitle;
@ApiModelProperty(value = "寄售商品图片")
private String merchandiseImage;
@ApiModelProperty(value = "确认收货时间")
private Date confirmTime;