123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- package models
- import (
- "github.com/beego/beego/v2/client/orm"
- "hongze/hongze_web_mfyx/utils"
- "strings"
- "time"
- )
- type UserRecord struct {
- UserRecordId int `orm:"column(user_record_id);pk"`
- OpenId string `description:"用户openid,最大长度:32"`
- UnionId string `description:"用户unionid,最大长度:64"`
- Subscribe int `description:"是否关注"`
- NickName string `descritpion:"用户昵称,最大长度:32"`
- RealName string `descritpion:"用户实际名称,最大长度:32"`
- BindAccount string `descritpion:"绑定时的账号,最大长度:128"`
- Sex int `descritpion:"普通用户性别,1为男性,2为女性"`
- Province string `description:"普通用户个人资料填写的省份,最大长度:30"`
- City string `description:"普通用户个人资料填写的城市,最大长度:30"`
- Country string `description:"国家,如中国为CN,最大长度:30"`
- Headimgurl string `description:"用户第三方(微信)头像,最大长度:512"`
- CreateTime time.Time `description:"创建时间,关系添加时间、用户授权时间"`
- CreatePlatform int `description:"注册平台,1:日度点评公众号,2:管理后台,3:pc端网站,4:查研观向小程序;默认:1"`
- SessionKey string `description:"微信小程序会话密钥,最大长度:255"`
- UserId int `description:"用户id"`
- }
- // 添加
- func AddUserRecord(item *UserRecord) (lastId int64, err error) {
- o := orm.NewOrmUsingDB("weekly_report")
- lastId, err = o.Insert(item)
- return
- }
- // 根据openid获取用户关系
- func GetUserRecordByOpenId(openId string) (item *UserRecord, err error) {
- o := orm.NewOrmUsingDB("weekly_report")
- sql := `SELECT * FROM user_record WHERE open_id=? `
- err = o.Raw(sql, openId).QueryRow(&item)
- return
- }
- // 根据openid获取用户关系
- // 4是查研观向 create_platform
- func GetUserRecordByUnionId(unionId string) (item *UserRecord, err error) {
- o := orm.NewOrmUsingDB("weekly_report")
- sql := `SELECT * FROM user_record WHERE union_id=? AND create_platform = 4 `
- err = o.Raw(sql, unionId).QueryRow(&item)
- return
- }
- // 根据openid解除绑定用户关系
- func UnBindUserRecordByOpenid(openId string) (err error) {
- o := orm.NewOrmUsingDB("weekly_report")
- msql := ` UPDATE user_record SET user_id = 0,bind_account="" WHERE open_id = ? `
- _, err = o.Raw(msql, openId).Exec()
- return
- }
- type OpenIdList struct {
- OpenId string
- UserId int
- }
- // 根据用户id和平台id获取用户关系
- func GetUserRecordByMobile(platform int, bindAccount string) (item *OpenIdList, err error) {
- var sql string
- sql = `SELECT open_id,cygx_user_id AS user_id FROM cygx_user_record WHERE 1 = 1 AND cygx_bind_account = ?`
- err = orm.NewOrm().Raw(sql, bindAccount).QueryRow(&item)
- return
- }
- func GetWxOpenIdByMobileList(mobile string) (items []*OpenIdList, err error) {
- sliceMobile := strings.Split(mobile, ",")
- var mobiles []string
- for _, v := range sliceMobile {
- mobiles = append(mobiles, v)
- }
- o := orm.NewOrm()
- lenarr := len(mobiles)
- if lenarr == 0 {
- return
- }
- var condition string
- var pars []interface{}
- condition = ` AND u.cygx_bind_account IN (` + utils.GetOrmInReplace(lenarr) + `)`
- pars = append(pars, mobiles)
- sql := `SELECT
- u.open_id,
- u.cygx_user_id AS user_id
- FROM
- cygx_user_record AS u
- WHERE
- 1 = 1 ` + condition
- _, err = o.Raw(sql, pars).QueryRows(&items)
- return
- }
- // 获取该用户第一个的 三方信息(微信头像信息)
- func GetUserThirdRecordByUserId(userId int) (item *UserRecord, err error) {
- o := orm.NewOrmUsingDB("weekly_report")
- sql := `SELECT * FROM user_record WHERE user_id = ? order by user_record_id asc`
- err = o.Raw(sql, userId).QueryRow(&item)
- return
- }
- // 根据openid绑定用户关系
- func BindUserRecordByOpenid(userId int, openId, bindAccount string) (err error) {
- o := orm.NewOrmUsingDB("weekly_report")
- msql := " UPDATE user_record SET user_id = ?,bind_account=? WHERE open_id = ? "
- _, err = o.Raw(msql, userId, bindAccount, openId).Exec()
- return
- }
- // 修改用户微信信息
- func ModifyUserRecordByDetail(openId, unionId, nickName, headimgUrl, city, province, country string, sex, userId int) (err error) {
- o := orm.NewOrmUsingDB("weekly_report")
- sql := `UPDATE user_record SET union_id=?, nick_name=?,headimgurl=?,sex=?,city=?,province=?,country=? WHERE user_id=? and open_id=? `
- _, err = o.Raw(sql, unionId, nickName, headimgUrl, sex, city, province, country, userId, openId).Exec()
- return
- }
- func GetWxOpenIdByMobileSliceList(mobiles []string) (items []*OpenIdList, err error) {
- o := orm.NewOrm()
- lenarr := len(mobiles)
- if lenarr == 0 {
- return
- }
- var condition string
- var pars []interface{}
- condition = ` AND u.cygx_bind_account IN (` + utils.GetOrmInReplace(lenarr) + `)`
- pars = append(pars, mobiles)
- sql := `SELECT
- u.open_id,
- u.cygx_user_id AS user_id
- FROM
- cygx_user_record AS u
- WHERE
- 1 = 1 ` + condition
- _, err = o.Raw(sql, pars).QueryRows(&items)
- return
- }
- // 根据手机号获取用户的openid
- func GetUserRecordListByMobile(platform int, bindAccount string) (items []*OpenIdList, err error) {
- var sql string
- //if utils.RunMode == "release" {
- // sql = `SELECT cr.open_id,user_id FROM user_record as u
- // INNER JOIN cygx_user_record AS cr ON cr.union_id = u.union_id
- // WHERE create_platform=? AND bind_account IN (` + bindAccount + `)`
- //} else {
- // platform = 1
- // sql = `SELECT open_id,user_id FROM user_record WHERE create_platform =? AND bind_account IN (` + bindAccount + `)`
- //}
- sql = `SELECT
- cr.open_id,
- cr.cygx_user_id as user_id
- FROM
- cygx_user_record as cr
- WHERE 1= 1 AND cygx_bind_account IN (` + bindAccount + `)`
- _, err = orm.NewOrm().Raw(sql).QueryRows(&items)
- return
- }
- func GetMfyxWxOpenIdByMobileList(mobile string) (items []*OpenIdList, err error) {
- sliceMobile := strings.Split(mobile, ",")
- var mobiles []string
- for _, v := range sliceMobile {
- mobiles = append(mobiles, v)
- }
- o := orm.NewOrm()
- lenarr := len(mobiles)
- if lenarr == 0 {
- return
- }
- var condition string
- var pars []interface{}
- condition = ` AND u.cygx_bind_account IN (` + utils.GetOrmInReplace(lenarr) + `)`
- pars = append(pars, mobiles)
- sql := `SELECT
- u.open_id,
- u.cygx_user_id AS user_id
- FROM
- cygx_mfyx_gzh_user_record AS u
- WHERE
- 1 = 1 ` + condition
- _, err = o.Raw(sql, pars).QueryRows(&items)
- return
- }
- func GetMfyxWxOpenIdByMobileSliceList(mobiles []string) (items []*OpenIdList, err error) {
- o := orm.NewOrm()
- lenarr := len(mobiles)
- if lenarr == 0 {
- return
- }
- var condition string
- var pars []interface{}
- condition = ` AND u.cygx_bind_account IN (` + utils.GetOrmInReplace(lenarr) + `)`
- pars = append(pars, mobiles)
- sql := `SELECT
- u.open_id,
- u.cygx_user_id AS user_id
- FROM
- cygx_mfyx_gzh_user_record AS u
- WHERE
- 1 = 1 ` + condition
- _, err = o.Raw(sql, pars).QueryRows(&items)
- return
- }
|