|
@@ -2,6 +2,7 @@ package service
|
|
|
|
|
|
import (
|
|
|
"errors"
|
|
|
+ "fmt"
|
|
|
"github.com/gin-gonic/gin"
|
|
|
"go.uber.org/zap"
|
|
|
"gorm.io/gorm"
|
|
@@ -13,6 +14,7 @@ import (
|
|
|
"sfis/model"
|
|
|
"sfis/model/response"
|
|
|
"strconv"
|
|
|
+ "strings"
|
|
|
"sync"
|
|
|
"time"
|
|
|
)
|
|
@@ -189,3 +191,43 @@ func CreateUser(user model.User) (model.User, error) {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+// 查询用户
|
|
|
+func ListUser(condMap map[string]interface{}, page int, limit int) ([]map[string]interface{}, int64, error) {
|
|
|
+ // 拼查询sql
|
|
|
+ var key []string
|
|
|
+ var param []interface{}
|
|
|
+ for k, v := range condMap {
|
|
|
+ if v == "" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ var kStr string
|
|
|
+ kStr = fmt.Sprintf("%s like ?", k)
|
|
|
+ v = "%" + v.(string) + "%"
|
|
|
+ key = append(key, kStr)
|
|
|
+ param = append(param, v)
|
|
|
+ }
|
|
|
+ whereSql := strings.Join(key, " and ")
|
|
|
+ var totalCount int64
|
|
|
+ var userInfo []map[string]interface{}
|
|
|
+ err := db.GetSFISDB().Table("user").Where(whereSql, param...).Where("delete_at is null").Count(&totalCount).Error
|
|
|
+ if err != nil {
|
|
|
+ return nil, 0, errors.New("查询失败")
|
|
|
+ }
|
|
|
+ if totalCount == 0 {
|
|
|
+ return userInfo, 0, nil
|
|
|
+ }
|
|
|
+ if whereSql != ""{
|
|
|
+ whereSql = " and " + whereSql
|
|
|
+ }
|
|
|
+ sql := "select user.app_id,user.name,user.phone,user.secret_key,user.ip_white_list,user.create_at,money from user LEFT JOIN user_account on user.app_id=user_account.app_id where user.delete_at is Null " + whereSql
|
|
|
+ if limit != 0 && page > 0 {
|
|
|
+ sql += fmt.Sprintf(" limit %d ,%d", (page-1)*limit, limit)
|
|
|
+ }
|
|
|
+ result := db.GetSFISDB().Raw(sql, param...).Scan(&userInfo)
|
|
|
+
|
|
|
+ if result.Error != nil {
|
|
|
+ return nil, 0, errors.New("查询失败")
|
|
|
+ }
|
|
|
+ return userInfo, totalCount, nil
|
|
|
+}
|