过滤无滞纳金已标记用户
This commit is contained in:
parent
474999b3fb
commit
accff30f46
|
@ -30,6 +30,7 @@ func UserList(c *gin.Context) {
|
||||||
NameKey string `json:"nameKey"` // 昵称搜索
|
NameKey string `json:"nameKey"` // 昵称搜索
|
||||||
SortField string `json:"sort_field"` //排序字段
|
SortField string `json:"sort_field"` //排序字段
|
||||||
SortType string `json:"sort_type"` //排序类型
|
SortType string `json:"sort_type"` //排序类型
|
||||||
|
Filter bool `json:"filter"` //是否过滤无滞纳金已标记用户
|
||||||
}{
|
}{
|
||||||
Page: 1,
|
Page: 1,
|
||||||
PageSize: 10,
|
PageSize: 10,
|
||||||
|
@ -61,7 +62,7 @@ func UserList(c *gin.Context) {
|
||||||
//req.SysUid = fmt.Sprintf("%.0f", sysUid)
|
//req.SysUid = fmt.Sprintf("%.0f", sysUid)
|
||||||
|
|
||||||
userList, _, count, err := models.GetUserList(req.Page, req.PageSize, req.Uid, req.MemberLevel, req.StoreId,
|
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 {
|
if err != nil {
|
||||||
logger.Errorf("err:", err)
|
logger.Errorf("err:", err)
|
||||||
app.Error(c, http.StatusInternalServerError, err, "查询失败")
|
app.Error(c, http.StatusInternalServerError, err, "查询失败")
|
||||||
|
|
|
@ -61,7 +61,7 @@ type UserInfo struct {
|
||||||
Mark int8 `json:"mark"` //标记
|
Mark int8 `json:"mark"` //标记
|
||||||
|
|
||||||
Store *Store `json:"store" gorm:"-"`
|
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:"-"` //滞纳金
|
ForfeitPenalty int `json:"forfeit_penalty" gorm:"-"` //滞纳金
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -214,7 +214,7 @@ type U struct {
|
||||||
MemberExpireDays uint32 `json:"member_expire_days"` //会员过期天数
|
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 (
|
var (
|
||||||
users = make([]U, 0)
|
users = make([]U, 0)
|
||||||
totalPage uint32
|
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)
|
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
|
err = qs.Order(fmt.Sprintf("%s %s", sortFiled, sortType)).Offset(page * pageSize).Limit(pageSize).Find(&users).Error
|
||||||
if err != nil && err != RecordNotFound {
|
if err != nil && err != RecordNotFound {
|
||||||
logger.Errorf("err:", err)
|
logger.Errorf("err:", err)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user