用户列表新增字段
- 滞纳金 - 过期天数 - 未归还卡带信息
This commit is contained in:
parent
94e7a0a14a
commit
95a83d62bf
|
@ -23,11 +23,13 @@ func UserList(c *gin.Context) {
|
|||
Uid int `json:"uid"` // 用户id
|
||||
CooperativeBusinessId int `json:"cooperative_business_id"`
|
||||
MemberLevel int `json:"memberLevel"`
|
||||
StoreId int `json:"store_id"` // 门店id
|
||||
UserType int `json:"user_type"` // 用户类型 用户类型 1-普通用户 2-店员
|
||||
StartTime string `json:"startTime"` // 开始时间
|
||||
EndTime string `json:"endTime"` // 结束时间
|
||||
NameKey string `json:"nameKey"` // 昵称搜索
|
||||
StoreId int `json:"store_id"` // 门店id
|
||||
UserType int `json:"user_type"` // 用户类型 用户类型 1-普通用户 2-店员
|
||||
StartTime string `json:"startTime"` // 开始时间
|
||||
EndTime string `json:"endTime"` // 结束时间
|
||||
NameKey string `json:"nameKey"` // 昵称搜索
|
||||
SortField string `json:"sort_field"` //排序字段
|
||||
SortType string `json:"sort_type"` //排序类型
|
||||
}{
|
||||
Page: 1,
|
||||
PageSize: 10,
|
||||
|
@ -59,13 +61,35 @@ 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.UserType, req.CooperativeBusinessId, req.Tel, req.StartTime, req.EndTime, req.NameKey, req.SortField, req.SortType)
|
||||
if err != nil {
|
||||
logger.Errorf("err:", err)
|
||||
app.Error(c, http.StatusInternalServerError, err, "查询失败")
|
||||
return
|
||||
}
|
||||
|
||||
var uids []uint32
|
||||
for _, u := range userList {
|
||||
if u.MemberExpireDays > 0 {
|
||||
uids = append(uids, u.Uid)
|
||||
}
|
||||
}
|
||||
//未归还卡带
|
||||
cards, err := models.GetUserExpiredCards(uids)
|
||||
if err != nil {
|
||||
logger.Errorf("err:", err)
|
||||
app.Error(c, http.StatusInternalServerError, err, "查询失败")
|
||||
return
|
||||
}
|
||||
for i, u := range userList {
|
||||
c, ok := cards[u.Uid]
|
||||
if ok {
|
||||
userList[i].OrderCards = c
|
||||
//滞纳金 一个卡带一天2块钱
|
||||
userList[i].ForfeitPenalty = len(c) * 200 * int(userList[i].MemberExpireDays)
|
||||
}
|
||||
}
|
||||
|
||||
ret := map[string]interface{}{
|
||||
"count": count,
|
||||
"list": userList,
|
||||
|
|
|
@ -1449,3 +1449,27 @@ func (m *CooperativeOrderReq) List() ([]Order, int64, error) {
|
|||
|
||||
return orders, count, nil
|
||||
}
|
||||
|
||||
func GetUserExpiredCards(userId []uint32) (map[uint32][]OrderCard, error) {
|
||||
|
||||
var m = make(map[uint32][]OrderCard)
|
||||
|
||||
var oc []OrderCard
|
||||
err := orm.Eloquent.Table("order_card").
|
||||
Where("uid in (?)", userId).
|
||||
Where("pay_status = ?", 2).Where("card_status in ?", []int{1, 2, 3}).
|
||||
Find(&oc).Error
|
||||
if err != nil {
|
||||
return m, err
|
||||
}
|
||||
|
||||
for _, card := range oc {
|
||||
l, ok := m[card.Uid]
|
||||
if ok {
|
||||
m[card.Uid] = append(l, card)
|
||||
} else {
|
||||
m[card.Uid] = []OrderCard{card}
|
||||
}
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
|
|
@ -59,7 +59,9 @@ type UserInfo struct {
|
|||
RenewalTime time.Time `json:"renewal_time"`
|
||||
RenewalMemberLevel uint32 `json:"renewal_member_level"`
|
||||
|
||||
Store *Store `json:"store" gorm:"-"`
|
||||
Store *Store `json:"store" gorm:"-"`
|
||||
OrderCards []OrderCard `json:"order_cards" gorm:"-"`
|
||||
ForfeitPenalty int `json:"forfeit_penalty" gorm:"-"` //滞纳金
|
||||
}
|
||||
|
||||
func (m *UserInfo) TableName() string {
|
||||
|
@ -201,9 +203,14 @@ type OperationLog struct {
|
|||
Remark string `json:"remark"` // 备注
|
||||
}
|
||||
|
||||
func GetUserList(page, pageSize, uid, memberLevel, storeId, userType, cooperativeBusinessId int, tel, startTime, endTime, nameKey string) ([]UserInfo, uint32, uint32, error) {
|
||||
type U struct {
|
||||
UserInfo
|
||||
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) {
|
||||
var (
|
||||
users = make([]UserInfo, 0)
|
||||
users = make([]U, 0)
|
||||
totalPage uint32
|
||||
)
|
||||
fmt.Println("tel:", tel)
|
||||
|
@ -213,6 +220,12 @@ func GetUserList(page, pageSize, uid, memberLevel, storeId, userType, cooperativ
|
|||
if page < 0 {
|
||||
page = 0
|
||||
}
|
||||
if sortFiled == "" {
|
||||
sortFiled = "id"
|
||||
}
|
||||
if sortType == "" {
|
||||
sortType = "DESC"
|
||||
}
|
||||
user := &UserInfo{}
|
||||
qs := orm.Eloquent.Table(user.TableName()).Debug()
|
||||
|
||||
|
@ -261,7 +274,11 @@ func GetUserList(page, pageSize, uid, memberLevel, storeId, userType, cooperativ
|
|||
return users, 0, 0, err
|
||||
}
|
||||
|
||||
err = qs.Order("id DESC").Offset(page * pageSize).Limit(pageSize).Find(&users).Error
|
||||
currentTime := time.Now()
|
||||
|
||||
//计算过期天数
|
||||
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)
|
||||
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)
|
||||
return users, 0, 0, err
|
||||
|
|
Loading…
Reference in New Issue
Block a user