diff --git a/internal/v2/controller/manage/jyy/withdrawal.go b/internal/v2/controller/manage/jyy/withdrawal.go new file mode 100644 index 0000000..66bbb9a --- /dev/null +++ b/internal/v2/controller/manage/jyy/withdrawal.go @@ -0,0 +1,26 @@ +package jyy + +import ( + "recook/internal/back" + "recook/internal/libs/bean" + "recook/internal/v2/lib/common" + "recook/internal/v2/logic/manage/jyy" + "recook/tools" + + "github.com/gin-gonic/gin" +) + +func (o Proxy) WithdrawalList(c *gin.Context) { + var args jyy.ArgsWithdrawal + if err := tools.Params(&args, c); err != nil { + back.Fail(c, err.Error()) + return + } + mu, _ := common.GetManageUser(c) + args.ManageUserID = int(mu.Id) + data, total := jyy.Logic.WithdrawalList(args) + back.Suc(c, "ok", bean.ResultLists{ + List: data, + Total: int(total), + }) +} diff --git a/internal/v2/logic/app/jyy/jyy.go b/internal/v2/logic/app/jyy/jyy.go index 5fc488c..beb4f8c 100644 --- a/internal/v2/logic/app/jyy/jyy.go +++ b/internal/v2/logic/app/jyy/jyy.go @@ -681,5 +681,8 @@ func (o logic) CompanyApply(args company.Apply) error { if args.Amount.GreaterThan(wallet.Balance) { return errors.New("提现过多") } + var company company.Info + mysql.Db.First(&company, "user_id = ?", args.UserID) + args.CompanyID = int(company.ID) return mysql.Db.Create(&args).Error } diff --git a/internal/v2/logic/manage/jyy/withdrawal.go b/internal/v2/logic/manage/jyy/withdrawal.go new file mode 100644 index 0000000..43bd101 --- /dev/null +++ b/internal/v2/logic/manage/jyy/withdrawal.go @@ -0,0 +1,47 @@ +package jyy + +import ( + "fmt" + "recook/internal/libs/bean" + "recook/internal/v2/model/company" + "time" + + "git.oa00.com/go/mysql" +) + +type ArgsWithdrawal struct { + bean.Page + Name string `json:"name"` + Tax int `json:"tax"` + Start *time.Time `json:"start"` + End *time.Time `json:"end"` + ManageUserID int `json:"manage_user_id"` + State int `json:"state"` +} + +func (o logic) WithdrawalList(args ArgsWithdrawal) (data []company.Apply, total int64) { + query := mysql.Db.Table((&company.Apply{}).TableName()) + { + if args.Name != "" { + sub := mysql.Db.Model(&company.Info{}). + Select("user_id"). + Where("company_name like ?", fmt.Sprintf("%%%s%%", args.Name)) + query = query.Where("user_id in ?", sub) + } + if args.Tax != 0 { + query = query.Where("tax = ?", args.Tax) + } + if args.Start != nil { + query = query.Where("created_at > ?", args.Start) + } + if args.End != nil { + query = query.Where("created_at < ?", args.End) + } + if args.State != 0 { + query = query.Where("state = ?", args.State) + } + } + query.Count(&total) + query.Preload("Company").Limit(args.GetLimit()).Offset(args.GetStart()).Order("id desc").Find(&data) + return +} diff --git a/internal/v2/model/company/company.go b/internal/v2/model/company/company.go index a6927b4..c13191b 100644 --- a/internal/v2/model/company/company.go +++ b/internal/v2/model/company/company.go @@ -131,7 +131,9 @@ type Apply struct { Tax int `json:"tax" validate:"oneof=1 2"` LogisticsName string `json:"logistics_name"` WaybillCode string `json:"waybill_code"` - ManageUserID int `json:"-" gorm:"<-:update"` + ManageUserID int `json:"-"` + CompanyID int `json:"-"` + Company Info `json:"company" gorm:"foreignKey:CompanyID"` } func (o Apply) TableName() string { diff --git a/internal/v2/router/manage.go b/internal/v2/router/manage.go index cb09493..f74f1bc 100644 --- a/internal/v2/router/manage.go +++ b/internal/v2/router/manage.go @@ -867,4 +867,14 @@ func routerManage(manageRouter *gin.RouterGroup) { } } } + { + companyWithdrawal := manageRouter.Group("withdrawal", authorize) + { + proxy := jyy.Proxy{} + { + companyWithdrawal.POST("list", proxy.WithdrawalList) + + } + } + } }