增加资金出款按操作人筛选
This commit is contained in:
@@ -271,6 +271,13 @@ func (r *Repository) applyDisbursementFilters(db *gorm.DB, query DisbursementQue
|
||||
db = db.Where(`(d.business_no LIKE ? OR d.payee_name LIKE ? OR d.payee_phone LIKE ?
|
||||
OR d.uploader_name LIKE ? OR d.account_name LIKE ? OR d.account_no LIKE ?)`, like, like, like, like, like, like)
|
||||
}
|
||||
if query.Operator != "" {
|
||||
like := "%" + query.Operator + "%"
|
||||
db = db.Where("(d.operator_name LIKE ? OR CAST(d.operator_id AS CHAR) LIKE ?)", like, like)
|
||||
}
|
||||
if query.OperatorID > 0 {
|
||||
db = db.Where("d.operator_id = ?", query.OperatorID)
|
||||
}
|
||||
if !query.StartDate.IsZero() && !query.EndDate.IsZero() {
|
||||
if query.DateType == "paid" {
|
||||
db = db.Where("d.paid_at >= ? AND d.paid_at <= ?", query.StartDate, query.EndDate)
|
||||
|
||||
@@ -203,4 +203,24 @@ func TestDisbursementListCombinesPlatformSettlementsAndWithdrawals(t *testing.T)
|
||||
if paidWithdrawals.Total != 1 || paidWithdrawals.Items[0].WithdrawalID != 10 {
|
||||
t.Fatalf("按打款日期查询结果 = %+v", paidWithdrawals.Items)
|
||||
}
|
||||
|
||||
operatorFiltered, err := repo.Disbursements(t.Context(), DisbursementQuery{
|
||||
Operator: "财务甲",
|
||||
DateType: "created",
|
||||
StartDate: at(1),
|
||||
EndDate: time.Date(2026, 7, 10, 23, 59, 59, 0, loc),
|
||||
Page: 1,
|
||||
PageSize: 20,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("按操作人查询出款失败: %v", err)
|
||||
}
|
||||
if operatorFiltered.Total != 7 || len(operatorFiltered.Items) != 7 {
|
||||
t.Fatalf("按操作人查询结果 = %+v", operatorFiltered.Items)
|
||||
}
|
||||
for _, item := range operatorFiltered.Items {
|
||||
if item.OperatorName != "财务甲" {
|
||||
t.Fatalf("操作人筛选返回了其他操作人: %+v", item)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,8 @@ type DisbursementQuery struct {
|
||||
DateType string
|
||||
BusinessNo string
|
||||
Keyword string
|
||||
Operator string
|
||||
OperatorID uint64
|
||||
UserID uint64
|
||||
StartDate time.Time
|
||||
EndDate time.Time
|
||||
|
||||
@@ -222,9 +222,13 @@ func parseDisbursementQuery(c *gin.Context) (DisbursementQuery, bool) {
|
||||
DateType: c.DefaultQuery("date_type", "created"),
|
||||
BusinessNo: strings.TrimSpace(c.Query("business_no")),
|
||||
Keyword: strings.TrimSpace(c.Query("keyword")),
|
||||
Operator: strings.TrimSpace(c.Query("operator")),
|
||||
StartDate: start,
|
||||
EndDate: end,
|
||||
}
|
||||
if query.Operator == "" {
|
||||
query.Operator = strings.TrimSpace(c.Query("operator_name"))
|
||||
}
|
||||
if query.SourceType != "" && query.SourceType != "platform_managed" && query.SourceType != "pickup" && query.SourceType != "pickup_adjustment" && query.SourceType != "withdrawal" && query.SourceType != "manual_offline" {
|
||||
response.BadRequest(c, "出款类型不正确")
|
||||
return query, false
|
||||
@@ -237,6 +241,14 @@ func parseDisbursementQuery(c *gin.Context) (DisbursementQuery, bool) {
|
||||
response.BadRequest(c, "日期类型不正确")
|
||||
return query, false
|
||||
}
|
||||
if raw := c.Query("operator_id"); raw != "" {
|
||||
value, err := strconv.ParseUint(raw, 10, 64)
|
||||
if err != nil || value == 0 {
|
||||
response.BadRequest(c, "操作人 ID 不正确")
|
||||
return query, false
|
||||
}
|
||||
query.OperatorID = value
|
||||
}
|
||||
if raw := c.Query("user_id"); raw != "" {
|
||||
value, err := strconv.ParseUint(raw, 10, 64)
|
||||
if err != nil || value == 0 {
|
||||
|
||||
Reference in New Issue
Block a user