123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- package model
- import (
- "fmt"
- "github.com/jmoiron/sqlx"
- "strconv"
- "trading-go/common"
- "trading-go/response"
- "trading-go/util"
- )
- type User struct {
- Uid uint `db:"uid" json:"uid,string"`
- Vid string `db:"vid" json:"vid"`
- Name string `db:"name" json:"name"`
- Avatar string `db:"avatar" json:"avatar"`
- Phone string `db:"phone" json:"phone"`
- Sign string `db:"sign" json:"sign"`
- }
- type UserJson struct {
- Uid string `json:"uid,string"`
- Vid string `json:"vid"`
- Name string `json:"name"`
- Avatar string `json:"avatar"`
- Phone string `json:"phone"`
- Sign string `json:"sign"`
- }
- func (u UserJson) Change() User {
- uid, _ := strconv.Atoi(u.Uid)
- return User{
- Uid: uint(uid),
- Vid: u.Vid,
- Name: u.Name,
- Avatar: u.Avatar,
- Phone: u.Phone,
- Sign: u.Sign,
- }
- }
- func (u User) Register() error {
- db := common.DB
- sqlStr := "INSERT INTO users(uid, vid,name, avatar, phone, sign) values (:uid, :vid, :name, :avatar, :phone, :sign)"
- exec, err := db.NamedExec(sqlStr, u)
- if err != nil {
- return err
- }
- affected, err := exec.RowsAffected()
- if err != nil {
- return err
- }
- if affected != 1 {
- return util.InsertFailError
- }
- return nil
- }
- func (u User) Login() (err error, nu User) {
- db := common.DB
- sqlStr := "SELECT * FROM users WHERE vid = ?"
- err = db.Get(&nu, sqlStr, u.Vid)
- return
- }
- // SPhone 查找电话号码
- func (u User) SPhone() error {
- var nu User
- db := common.DB
- fmt.Println(u.Phone)
- sqlStr := "SELECT * FROM users WHERE phone = ?"
- err := db.Get(&nu, sqlStr, u.Phone)
- if err != nil && err.Error() == "sql: no rows in result set" {
- return nil
- } else if err != nil {
- return err
- }
- return util.PhoneBeUsed
- }
- // Modify 修改信息
- func (u User) Modify(old *User) (User, error) {
- var user User
- db := common.DB
- if u.Name == "" {
- u.Name = old.Name
- }
- if u.Avatar == "" {
- u.Avatar = old.Avatar
- }
- if u.Phone == "" {
- u.Phone = old.Phone
- }
- if u.Sign == "" {
- u.Sign = old.Sign
- }
- sqlStr := "UPDATE users set name = ?,avatar = ?, phone = ?, sign = ? WHERE uid = ?"
- exec, err := db.Exec(sqlStr, u.Name, u.Avatar, u.Phone, u.Sign, u.Uid)
- if err != nil {
- return User{}, err
- }
- affected, err := exec.RowsAffected()
- if err != nil {
- return User{}, err
- }
- if affected != 1 {
- return User{}, util.UpdateFailError
- }
- sqlStr = "SELECT * FROM users WHERE uid = ?"
- err = db.Get(&user, sqlStr, u.Uid)
- if err != nil {
- return User{}, err
- }
- return user, nil
- }
- func (u User) FindByIds(ids []uint) (users []User, err error) {
- db := common.DB
- sqlStr := "SELECT * FROM users WHERE uid = ?"
- for i := 0; i < len(ids); i++ {
- err := db.Get(&users[i], sqlStr, ids[i])
- if err != nil {
- return nil, err
- }
- }
- return
- }
- // Info 获取用户信息
- func (u User) Info() (nu User, err error) {
- db := common.DB
- sqlStr := "SELECT * FROM users WHERE uid = ?"
- err = db.Get(&nu, sqlStr, u.Uid)
- return
- }
- func (u User) GetPaged(page, pageSize int) (rsp response.PageResponse, err error) {
- var users []User
- db := common.DB
- sqlStr := "SELECT * FROM users LIMIT ?,?"
- rsp.Page = page
- rsp.PageSize = pageSize
- err = db.Select(&users, sqlStr, (page-1)*pageSize, pageSize)
- rsp.Data = users
- return
- }
- func (u User) GetCnt() (cnt int, err error) {
- db := common.DB
- sqlStr := "SELECT COUNT(1) FROM users"
- err = db.Get(&cnt, sqlStr)
- return
- }
- func (u User) CheckVid() bool {
- db := common.DB
- sqlStr := "SELECT COUNT(1) FROM users WHERE vid = ?"
- cnt := 0
- _ = db.Get(&cnt, sqlStr, u.Vid)
- return cnt == 0
- }
- func (u User) GetUser() (user User) {
- db := common.DB
- sqlStr := "SELECT * FROM users WHERE uid = ?"
- _ = db.Get(&user, sqlStr, u.Uid)
- return
- }
- func (u User) GetUserList(uid []string) (users []User, err error) {
- db := common.DB
- sqlStr := "SELECT * FROM users WHERE uid IN (?)"
- query, args, err := sqlx.In(sqlStr, uid)
- if err != nil {
- return nil, err
- }
- err = db.Select(&users, query, args...)
- return
- }
|