|
- package db
-
- import (
- "applet/app/db/model"
- "applet/app/md"
- "applet/app/utils/logx"
- "errors"
- "xorm.io/xorm"
- )
-
- //UserProfileFindByArkID is get userprofile by arkid
- func UserProfileFindByArkID(Db *xorm.Engine, id interface{}) (*model.UserProfile, error) {
- var m model.UserProfile
- if has, err := Db.Where("arkid_uid = ?", id).Get(&m); err != nil || has == false {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- //UserProfileFindByInviteCode is get userprofile by InviteCode
- func UserProfileFindByInviteCode(Db *xorm.Engine, code string) (*model.UserProfile, error) {
- var m model.UserProfile
- if has, err := Db.Where("invite_code = ?", code).Get(&m); err != nil || has == false {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- //UserProfileFindByInviteCode is get userprofile by InviteCode
- func UserProfileFindByCustomInviteCode(Db *xorm.Engine, code string) (*model.UserProfile, error) {
- var m model.UserProfile
- if has, err := Db.Where("custom_invite_code = ?", code).Get(&m); err != nil || has == false {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- //UserProfileFindByInviteCodes is get userprofile by InviteCode
- func UserProfileFindByInviteCodes(Db *xorm.Engine, codes ...string) (*[]model.UserProfile, error) {
- var m []model.UserProfile
- if err := Db.In("invite_code", codes).Find(&m); err != nil {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- //UserProfileFindByCustomInviteCodes is get userprofile by CustomInviteCode
- func UserProfileFindByCustomInviteCodes(Db *xorm.Engine, codes ...string) (*[]model.UserProfile, error) {
- var m []model.UserProfile
- if err := Db.In("custom_invite_code", codes).Find(&m); err != nil {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- // UserProfileFindByID search user_profile by userid
- func UserProfileFindByID(Db *xorm.Engine, id interface{}) (*model.UserProfile, error) {
- var m model.UserProfile
- if has, err := Db.Where("uid = ?", id).Get(&m); err != nil || has == false {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- // UserProfileOrderByNew 找最新的记录
- func UserProfileOrderByNew(Db *xorm.Engine) (*model.UserProfile, error) {
- var m model.UserProfile
- if has, err := Db.Where("invite_code != ''").OrderBy("uid desc").Get(&m); err != nil || has == false {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- // UserProfileFindByTaobaoOpenID search user_profile ByTaobaoOpenID
- func UserProfileFindByTaobaoOpenID(Db *xorm.Engine, openid interface{}) (*model.UserProfile, error) {
- var m model.UserProfile
- if has, err := Db.Where("third_party_taobao_oid = ?", openid).Get(&m); err != nil || has == false {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- // UserProfileFindByQQOpenID search user_profile ByTaobaoOpenID
- func UserProfileFindByQQOpenID(Db *xorm.Engine, openid interface{}) (*model.UserProfile, error) {
- var m model.UserProfile
- if has, err := Db.Where("third_party_qq_openid = ?", openid).Get(&m); err != nil || has == false {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- // UserProfileFindByAppleToken search user_profile AppleToken
- func UserProfileFindByAppleToken(Db *xorm.Engine, token interface{}) (*model.UserProfile, error) {
- var m model.UserProfile
- if has, err := Db.Where("third_party_apple_token = ?", token).Get(&m); err != nil || has == false {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- // UserProfileFindByWeChatOpenID search user_profile By 微信openid
- func UserProfileFindByWeChatOpenID(Db *xorm.Engine, openid interface{}) (*model.UserProfile, error) {
- var m model.UserProfile
- if has, err := Db.Where("third_party_wechat_openid = ?", openid).Get(&m); err != nil || has == false {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- // UserProfileFindByWeChatMiniOpenID search user_profile By 小程序openid
- func UserProfileFindByWeChatMiniOpenID(Db *xorm.Engine, openid interface{}) (*model.UserProfile, error) {
- var m model.UserProfile
- if has, err := Db.Where("third_party_wechat_mini_openid = ?", openid).Get(&m); err != nil || has == false {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- // UserProfileFindByWeChatUnionID search user_profile By 微信唯一id
- func UserProfileFindByWeChatUnionID(Db *xorm.Engine, openid interface{}) (*model.UserProfile, error) {
- var m model.UserProfile
- if has, err := Db.Where("third_party_wechat_unionid = ?", openid).Get(&m); err != nil || has == false {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- // UserProfileisExistByTaobaoOpenID is exist by Taobao
- func UserProfileisExistByTaobaoOpenID(Db *xorm.Engine, openid string) (bool, error) {
- has, err := Db.Where("third_party_taobao_oid = ?", openid).Exist(&model.UserProfile{})
-
- if err != nil {
- return false, err
- }
- return has, nil
- }
-
- // UserProfileisExistByQQOpenID is exist by QQ openid
- func UserProfileisExistByQQOpenID(Db *xorm.Engine, openid string) (bool, error) {
- has, err := Db.Where("third_party_qq_openid = ?", openid).Exist(&model.UserProfile{})
-
- if err != nil {
- return false, err
- }
- return has, nil
- }
-
- // UserProfileisExistByAppleToken is exist by apple token
- func UserProfileisExistByAppleToken(Db *xorm.Engine, token string) (bool, error) {
- has, err := Db.Where("third_party_apple_token = ?", token).Exist(&model.UserProfile{})
-
- if err != nil {
- return false, err
- }
- return has, nil
- }
-
- // UserProfileisExistByWeChatOpenID is exist by Wecaht openid
- func UserProfileisExistByWeChatOpenID(Db *xorm.Engine, openid string) (bool, error) {
- has, err := Db.Where("third_party_wechat_openid = ?", openid).Exist(&model.UserProfile{})
-
- if err != nil {
- return false, err
- }
- return has, nil
- }
-
- // UserProfileisExistByWeChatMiniOpenID is exist by Wecaht openid
- func UserProfileisExistByWeChatMiniOpenID(Db *xorm.Engine, openid string) (bool, error) {
- has, err := Db.Where("third_party_wechat_mini_openid = ?", openid).Exist(&model.UserProfile{})
-
- if err != nil {
- return false, err
- }
- return has, nil
- }
-
- // UserProfileisExistByWeChatUnionID is exist by Wecaht openid
- func UserProfileisExistByWeChatUnionID(Db *xorm.Engine, openid string) (bool, error) {
- has, err := Db.Where("third_party_wechat_unionid = ?", openid).Exist(&model.UserProfile{})
-
- if err != nil {
- return false, err
- }
- return has, nil
- }
-
- // UserProfileisExistByRelationIDAndSpecialID is exist by RelationIdAndSpecialId
- func UserProfileisExistByRelationIDAndSpecialID(Db *xorm.Engine, SpecialID, RelationID int64) (bool, error) {
- has, err := Db.Where("acc_taobao_self_id = ? AND acc_taobao_share_id = ?", SpecialID, RelationID).Exist(&model.UserProfile{})
-
- if err != nil {
- return false, err
- }
- return has, nil
- }
-
- // UserProfileisExistBySpecialID is exist by SpecialId
- func UserProfileisExistBySpecialID(Db *xorm.Engine, SpecialID string) (bool, error) {
- has, err := Db.Where("acc_taobao_self_id = ? ", SpecialID).Exist(&model.UserProfile{})
-
- if err != nil {
- return false, err
- }
- return has, nil
- }
-
- // UserProfileCountByRelationID 统计relationID数量
- func UserProfileCountByRelationID(Db *xorm.Engine) (total int64, err error) {
- relate := new(model.UserProfile)
- total, err = Db.Where("acc_taobao_share_id > 0").Count(relate)
- return
- }
-
- // UserProfileCountByPUID 统计直推下级数量
- func UserProfileCountByPUID(Db *xorm.Engine, puid int) (total int64, err error) {
- relate := new(model.UserProfile)
- total, err = Db.Where("parent_uid = ?", puid).Count(relate)
- return
- }
-
- // UserProfileisExistByRelationID is exist by RelationID
- func UserProfileisExistByRelationID(Db *xorm.Engine, RelationID string) (bool, error) {
- has, err := Db.Where("acc_taobao_share_id = ? ", RelationID).Exist(&model.UserProfile{})
-
- if err != nil {
- return false, err
- }
- return has, nil
- }
-
- // UserProfileFindByIDs is in sql by ids
- func UserProfileFindByIDs(Db *xorm.Engine, uids ...int) (*[]model.UserProfile, error) {
- var m []model.UserProfile
- if err := Db.In("uid", uids).Find(&m); err != nil {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- // UserProfileByPuid search user_profile by parent_uid
- func UserProfileByPuid(Db *xorm.Engine, puid interface{}) (*[]model.UserProfile, error) {
- var m []model.UserProfile
- if err := Db.Where("parent_uid = ?", puid).Find(&m); err != nil {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- //UsersProfileInByIds is profiles by ids
- func UsersProfileInByIds(Db *xorm.Engine, ids []int, limit, start int) (*[]model.UserProfile, error) {
- var m []model.UserProfile
- if limit == 0 && start == 0 {
- if err := Db.In("uid", ids).Find(&m); err != nil {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
- if err := Db.In("uid", ids).Limit(limit, start).Find(&m); err != nil {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- // UsersProfileInByUIDByisVerify is In查询 以及是否是有效用户
- func UsersProfileInByUIDByisVerify(Db *xorm.Engine, ids []int, isVerify interface{}) (*[]model.UserProfile, error) {
- var m []model.UserProfile
- if err := Db.In("uid", ids).Where("is_verify = ?", isVerify).
- Find(&m); err != nil {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- // UsersProfileInByIdsByDesc is 根据某列 降序
- func UsersProfileInByIdsByDesc(Db *xorm.Engine, ids []int, limit, start int, c string) (*[]model.UserProfile, error) {
- var m []model.UserProfile
- if limit == 0 && start == 0 {
- if err := Db.In("uid", ids).Desc(c).Find(&m); err != nil {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
- if err := Db.In("uid", ids).Desc(c).Limit(limit, start).Find(&m); err != nil {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- // UsersProfileInByIdsByAsc is 根据某列 升序
- func UsersProfileInByIdsByAsc(Db *xorm.Engine, ids []int, limit, start int, c string) (*[]model.UserProfile, error) {
- var m []model.UserProfile
- if limit == 0 && start == 0 {
- if err := Db.In("uid", ids).Asc(c).Find(&m); err != nil {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
- if err := Db.In("uid", ids).Asc(c).Limit(limit, start).Find(&m); err != nil {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- // UsersProfileByAll is 查询所有分享id大于0的数据
- func UsersProfileByTaobaoShateIdNotNull(Db *xorm.Engine, limit, start int) (*[]model.UserProfile, error) {
- var m []model.UserProfile
- if err := Db.Where("acc_taobao_share_id > 0").Limit(limit, start).Find(&m); err != nil {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- // UserProfileIsExistByUserID is mobile exist
- func UserProfileIsExistByUserID(Db *xorm.Engine, id int) (bool, error) {
- has, err := Db.Where("uid = ?", id).Exist(&model.UserProfile{})
- if err != nil {
- return false, err
- }
- return has, nil
- }
-
- // UserProfileIsExistByInviteCode is exist ?
- func UserProfileIsExistByInviteCode(Db *xorm.Engine, code string) (bool, error) {
- has, err := Db.Where("invite_code = ?", code).Exist(&model.UserProfile{})
- if err != nil {
- return false, err
- }
- return has, nil
- }
-
- // UserProfileIsExistByCustomInviteCode is exist ?
- func UserProfileIsExistByCustomInviteCode(Db *xorm.Engine, code string) (bool, error) {
- has, err := Db.Where("custom_invite_code = ?", code).Exist(&model.UserProfile{})
- if err != nil {
- return false, err
- }
- return has, nil
- }
-
- //UserProfileInsert is insert user
- func UserProfileInsert(Db *xorm.Engine, userProfile *model.UserProfile) (int64, error) {
- affected, err := Db.Insert(userProfile)
- if err != nil {
- return 0, err
- }
- return affected, nil
- }
-
- //UserProfileUpdate is update userprofile
- func UserProfileUpdate(Db *xorm.Engine, uid interface{}, userProfile *model.UserProfile, forceCols ...string) (int64, error) {
- var (
- affected int64
- err error
- )
- if forceCols != nil {
- affected, err = Db.Where("uid=?", uid).Cols(forceCols...).Update(userProfile)
- } else {
- affected, err = Db.Where("uid=?", uid).Update(userProfile)
- }
- if err != nil {
- return 0, logx.Warn(err)
- }
- return affected, nil
- }
-
- //UserProfileUpdateByArkID is update userprofile
- func UserProfileUpdateByArkID(Db *xorm.Engine, arkid interface{}, userProfile *model.UserProfile, forceCols ...string) (int64, error) {
- var (
- affected int64
- err error
- )
- if forceCols != nil {
- affected, err = Db.Where("arkid_uid=?", arkid).Cols(forceCols...).Update(userProfile)
- } else {
- affected, err = Db.Where("arkid_uid=?", arkid).Update(userProfile)
- }
- if err != nil {
- return 0, logx.Warn(err)
- }
- return affected, nil
- }
-
- // UserProfileDelete is delete user profile
- func UserProfileDelete(Db *xorm.Engine, uid interface{}) (int64, error) {
- return Db.Where("uid = ?", uid).Delete(model.UserProfile{})
- }
-
- func UserProfileFindByIdWithSession(session *xorm.Session, uid int) (*model.UserProfile, error) {
- var m model.UserProfile
- if has, err := session.Where("uid = ?", uid).Get(&m); err != nil || has == false {
- return nil, logx.Warn(err)
- }
- return &m, nil
- }
-
- // 在事务中更新用户信息
- func UserProfileUpdateWithSession(session *xorm.Session, uid interface{}, userProfile *model.UserProfile, forceCols ...string) (int64, error) {
- var (
- affected int64
- err error
- )
- if forceCols != nil {
- affected, err = session.Where("uid=?", uid).Cols(forceCols...).Update(userProfile)
- } else {
- affected, err = session.Where("uid=?", uid).Update(userProfile)
- }
- if err != nil {
- return 0, logx.Warn(err)
- }
- return affected, nil
- }
-
- // 根据uid获取md.user
- func UserAllInfoByUid(Db *xorm.Engine, uid interface{}) (*md.User, error) {
- u, err := UserFindByID(Db, uid)
- if err != nil {
- return nil, err
- }
- if u == nil {
- return nil, errors.New("user is nil")
- }
- up, err := UserProfileFindByID(Db, uid)
- if err != nil {
- return nil, err
- }
- // 获取user 等级
- ul, err := UserLevelByID(Db, u.Level)
- if err != nil {
- return nil, err
- }
- user := &md.User{
- Info: u,
- Profile: up,
- Level: ul,
- }
- return user, nil
- }
|