a
This commit is contained in:
@@ -114,6 +114,112 @@ func GetUsers(db *DaoDB, userType int, keyword, popUser string, userIDs, userID2
|
||||
return userList, totalCount, err
|
||||
}
|
||||
|
||||
func GetUsers2(db *DaoDB, keyword string, userID string, pop int, mobile string, fromTime, toTime time.Time, timeType int, cityCodes, consumeTypes []int, offset, pageSize int) (pageInfo *model.PagedInfo, err error) {
|
||||
var (
|
||||
userList []*model.User
|
||||
)
|
||||
offset = jxutils.FormalizePageOffset(offset)
|
||||
pageSize = jxutils.FormalizePageSize(pageSize)
|
||||
sqlParams := []interface{}{}
|
||||
sql := `
|
||||
SELECT SQL_CALC_FOUND_ROWS
|
||||
a.*
|
||||
FROM user a`
|
||||
for _, v := range consumeTypes {
|
||||
switch v {
|
||||
case model.ConsumeTypePublishJob:
|
||||
sql += " JOIN job b ON b.user_id = a.user_id"
|
||||
if fromTime != utils.ZeroTimeValue {
|
||||
if timeType == 2 {
|
||||
sql += " AND b.created_at > ?"
|
||||
sqlParams = append(sqlParams, fromTime)
|
||||
}
|
||||
}
|
||||
if toTime != utils.ZeroTimeValue {
|
||||
if timeType == 2 {
|
||||
sql += " AND b.created_at < ?"
|
||||
sqlParams = append(sqlParams, toTime)
|
||||
}
|
||||
}
|
||||
case model.ConsumeTypeMember:
|
||||
sql += " JOIN user_member c ON c.user_id = a.user_id"
|
||||
if fromTime != utils.ZeroTimeValue {
|
||||
if timeType == 2 {
|
||||
sql += " AND c.created_at > ?"
|
||||
sqlParams = append(sqlParams, fromTime)
|
||||
}
|
||||
}
|
||||
if toTime != utils.ZeroTimeValue {
|
||||
if timeType == 2 {
|
||||
sql += " AND c.created_at < ?"
|
||||
sqlParams = append(sqlParams, toTime)
|
||||
}
|
||||
}
|
||||
case model.ConsumeTypeDelivery:
|
||||
sql += " JOIN delivery_order d ON d.user_id = a.user_id"
|
||||
if fromTime != utils.ZeroTimeValue {
|
||||
if timeType == 2 {
|
||||
sql += " AND d.created_at > ?"
|
||||
sqlParams = append(sqlParams, fromTime)
|
||||
}
|
||||
}
|
||||
if toTime != utils.ZeroTimeValue {
|
||||
if timeType == 2 {
|
||||
sql += " AND d.created_at < ?"
|
||||
sqlParams = append(sqlParams, toTime)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
sql += `
|
||||
WHERE a.status = 1 AND a.deleted_at = ?`
|
||||
sqlParams = append(sqlParams, utils.DefaultTimeValue)
|
||||
if userID != "" {
|
||||
sql += " AND a.user_id = ?"
|
||||
sqlParams = append(sqlParams, userID)
|
||||
if pop == 1 {
|
||||
sql += " AND a.pop_user = ?"
|
||||
sqlParams = append(sqlParams, userID)
|
||||
}
|
||||
}
|
||||
if len(cityCodes) > 0 {
|
||||
sql += " AND a.city_code IN (" + GenQuestionMarks(len(cityCodes)) + ")"
|
||||
sqlParams = append(sqlParams, cityCodes)
|
||||
}
|
||||
if mobile != "" {
|
||||
sql += " AND a.mobile = ?"
|
||||
sqlParams = append(sqlParams, mobile)
|
||||
}
|
||||
if keyword != "" {
|
||||
keywordLike := "%" + keyword + "%"
|
||||
sql += " AND (a.user_id LIKE ? OR a.mobile LIKE ? OR a.email LIKE ? OR a.name LIKE ?)"
|
||||
sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike, keywordLike)
|
||||
}
|
||||
if fromTime != utils.ZeroTimeValue {
|
||||
if timeType == 1 {
|
||||
sql += " AND a.created_at > ?"
|
||||
sqlParams = append(sqlParams, fromTime)
|
||||
}
|
||||
}
|
||||
if toTime != utils.ZeroTimeValue {
|
||||
if timeType == 1 {
|
||||
sql += " AND a.created_at < ?"
|
||||
sqlParams = append(sqlParams, toTime)
|
||||
}
|
||||
}
|
||||
sql += " LIMIT ? OFFSET ?"
|
||||
sqlParams = append(sqlParams, pageSize, offset)
|
||||
Begin(db)
|
||||
defer Commit(db)
|
||||
if err = GetRows(db, &userList, sql, sqlParams...); err == nil {
|
||||
pageInfo = &model.PagedInfo{
|
||||
TotalCount: GetLastTotalRowCount(db),
|
||||
Data: userList,
|
||||
}
|
||||
}
|
||||
return pageInfo, err
|
||||
}
|
||||
|
||||
func GetUser(db *DaoDB, userID string) (user *model.GetUserResult, err error) {
|
||||
sqlParams := []interface{}{}
|
||||
sql := `
|
||||
|
||||
Reference in New Issue
Block a user