123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- package dal
- import (
- "database/sql"
- "errors"
- "fmt"
- "xiaoniaokuaiyan.com/xiaoniao/entity"
- "xiaoniaokuaiyan.com/xiaoniao/util"
- )
- type User struct {
- }
- func (u *User) Get(account string) (*entity.UserDB, error) {
- db := util.GetSqlDB()
- strSql := "select id, mobile, password, password_salt, extra, account_type,avatar from t_custom where mobile = ? limit 1"
- var user entity.UserDB
- err := db.Get(&user, strSql, account)
- if err != nil {
- if err == sql.ErrNoRows {
- return nil, DBRECORD_NOT_EXISTS_ERROR
- }
- return nil, err
- }
- return &user, nil
- }
- func (u *User) Save(params map[string]interface{}) (interface{}, error) {
- db := util.GetWriteSqlDB()
- var sqlStr = util.GenerateInsertSql("t_custom", params)
- result, err := db.NamedExec(sqlStr, params)
- if err != nil {
- return nil, errors.New("db error")
- }
- aid, err := result.LastInsertId()
- if err != nil {
- if id, ok := params["id"]; ok {
- return id, nil
- } else {
- return nil, nil
- }
- }
- return aid, nil
- }
- func (u *User) Update(user *entity.User) (*entity.User, error) {
- if user.Id == 0 && user.Mobile == "" {
- return nil, errors.New("错误的请求")
- }
- db := util.GetWriteSqlDB()
- var whereStr string
- if user.Id == 0 {
- whereStr = " where mobile = :mobile"
- } else {
- whereStr = " where id = :id"
- }
- sqlStr, kvm := util.GenerateUpdateSqlFromStruct("t_custom", user, whereStr)
- result, err := db.NamedExec(sqlStr, kvm)
- if err != nil {
- return nil, err
- }
- _, err = result.RowsAffected()
- if err != nil {
- return nil, err
- }
- /*if ra <= 0 {
- return nil, errors.New("404::update failed(can not found user)")
- }*/
- return user, nil
- }
- func (u *User) GetNotice(mobile string) ([]entity.QueueNotice, error) {
- db := util.GetSqlDB()
- qlist := []entity.QueueNotice{}
- err := db.Select(&qlist, "select * from t_custom_queue where custom_mobile = ? and isallnotice = 'N'", mobile)
- return qlist, err
- }
- func (u *User) UpdateNotice(notice *entity.QueueNotice) (bool, error) {
- if notice.Id == 0 {
- return false, errors.New("can not find info")
- }
- db := util.GetWriteSqlDB()
- sqlStr, kvm := util.GenerateUpdateSqlFromStruct("t_custom_queue", notice, " where id = :id")
- result, err := db.NamedExec(sqlStr, kvm)
- if err != nil {
- return false, err
- }
- ra, err := result.RowsAffected()
- if err != nil {
- return false, err
- }
- if ra <= 0 {
- return false, errors.New("404::update failed(can not found info)")
- }
- return true, nil
- }
- // 根据openid 查询用户
- func (u *User) GetUserByOpenid(openid string) (*entity.UserDB, error) {
- db := util.GetSqlDB()
- strSql := "select id, mobile, password, password_salt, extra, account_type,avatar from t_custom where instr(extra,?)>0 limit 1"
- var user entity.UserDB
- err := db.Get(&user, strSql, openid)
- if err != nil {
- if err == sql.ErrNoRows {
- return nil, DBRECORD_NOT_EXISTS_ERROR
- }
- return nil, err
- }
- return &user, nil
- }
- func (u *User) GetUserByUnionid(unionid string) (*entity.UserDB, error) {
- if unionid == "" {
- return nil, fmt.Errorf("unionid is empty")
- }
- db := util.GetSqlDB()
- strSql := "select id, mobile, password, password_salt, extra, account_type,avatar from t_custom where unionid = ? limit 1"
- var user entity.UserDB
- err := db.Get(&user, strSql, unionid)
- if err != nil {
- if err == sql.ErrNoRows {
- return nil, DBRECORD_NOT_EXISTS_ERROR
- }
- return nil, err
- }
- return &user, nil
- }
- func (u *User) GetUserByUserId(zfbUserId string) (*entity.UserDB, error) {
- db := util.GetSqlDB()
- strSql := "select id, mobile, password, password_salt, extra, account_type,avatar from t_custom where extra like ? limit 1"
- var user entity.UserDB
- err := db.Get(&user, strSql, "%"+zfbUserId+"%")
- if err != nil {
- if err == sql.ErrNoRows {
- return nil, DBRECORD_NOT_EXISTS_ERROR
- }
- return nil, err
- }
- return &user, nil
- }
- var DefaultUserDal = &User{}
|