过滤无滞纳金已标记用户
This commit is contained in:
parent
474999b3fb
commit
accff30f46
|
@ -30,6 +30,7 @@ func UserList(c *gin.Context) {
|
|||
NameKey string `json:"nameKey"` // 昵称搜索
|
||||
SortField string `json:"sort_field"` //排序字段
|
||||
SortType string `json:"sort_type"` //排序类型
|
||||
Filter bool `json:"filter"` //是否过滤无滞纳金已标记用户
|
||||
}{
|
||||
Page: 1,
|
||||
PageSize: 10,
|
||||
|
@ -61,7 +62,7 @@ func UserList(c *gin.Context) {
|
|||
//req.SysUid = fmt.Sprintf("%.0f", sysUid)
|
||||
|
||||
userList, _, count, err := models.GetUserList(req.Page, req.PageSize, req.Uid, req.MemberLevel, req.StoreId,
|
||||
req.UserType, req.CooperativeBusinessId, req.Tel, req.StartTime, req.EndTime, req.NameKey, req.SortField, req.SortType)
|
||||
req.UserType, req.CooperativeBusinessId, req.Tel, req.StartTime, req.EndTime, req.NameKey, req.SortField, req.SortType, req.Filter)
|
||||
if err != nil {
|
||||
logger.Errorf("err:", err)
|
||||
app.Error(c, http.StatusInternalServerError, err, "查询失败")
|
||||
|
|
|
@ -61,7 +61,7 @@ type UserInfo struct {
|
|||
Mark int8 `json:"mark"` //标记
|
||||
|
||||
Store *Store `json:"store" gorm:"-"`
|
||||
OrderCards []OrderCard `json:"order_cards" gorm:"-"`
|
||||
OrderCards []OrderCard `json:"order_cards" gorm:"foreignKey:uid;references:uid"`
|
||||
ForfeitPenalty int `json:"forfeit_penalty" gorm:"-"` //滞纳金
|
||||
}
|
||||
|
||||
|
@ -214,7 +214,7 @@ type U struct {
|
|||
MemberExpireDays uint32 `json:"member_expire_days"` //会员过期天数
|
||||
}
|
||||
|
||||
func GetUserList(page, pageSize, uid, memberLevel, storeId, userType, cooperativeBusinessId int, tel, startTime, endTime, nameKey, sortFiled, sortType string) ([]U, uint32, uint32, error) {
|
||||
func GetUserList(page, pageSize, uid, memberLevel, storeId, userType, cooperativeBusinessId int, tel, startTime, endTime, nameKey, sortFiled, sortType string, filter bool) ([]U, uint32, uint32, error) {
|
||||
var (
|
||||
users = make([]U, 0)
|
||||
totalPage uint32
|
||||
|
@ -284,6 +284,25 @@ func GetUserList(page, pageSize, uid, memberLevel, storeId, userType, cooperativ
|
|||
|
||||
//计算过期天数
|
||||
qs = qs.Select("*, CASE WHEN (member_level IN (2, 4, 5) AND member_expire < ?) THEN DATEDIFF(?,member_expire) ELSE 0 END AS member_expire_days", currentTime, currentTime)
|
||||
|
||||
if filter {
|
||||
|
||||
qs = orm.Eloquent.Table("(?) as a", qs)
|
||||
//qs = qs.Preload("OrderCards", func(db *gorm.DB) *gorm.DB {
|
||||
// return db.Where("pay_status = ? AND card_status IN (?)", 2, []int{1, 2, 3}).
|
||||
// Group("uid").
|
||||
// Having("count(uid) > 0")
|
||||
//})
|
||||
|
||||
qs = qs.Select("a.*").
|
||||
Joins("inner join order_card as oc on a.uid=oc.uid").
|
||||
Where("pay_status = ? AND card_status IN (?)", 2, []int{1, 2, 3}).
|
||||
Group("oc.uid").
|
||||
Having("count(oc.uid) > 0")
|
||||
|
||||
qs = qs.Where("member_expire_days > 0").Where("mark = ?", UNMARK)
|
||||
}
|
||||
|
||||
err = qs.Order(fmt.Sprintf("%s %s", sortFiled, sortType)).Offset(page * pageSize).Limit(pageSize).Find(&users).Error
|
||||
if err != nil && err != RecordNotFound {
|
||||
logger.Errorf("err:", err)
|
||||
|
|
Loading…
Reference in New Issue
Block a user