package models import ( "github.com/beego/beego/v2/client/orm" "time" ) type WxUserCode struct { Id int `orm:"column(id);pk"` WxCode string UserId int Code int FirstLogin int Authorization string UserPermission int CreateTime time.Time } //添加联系人日志信息 func AddWxUserCode(item *WxUserCode) (lastId int64, err error) { o := orm.NewOrm() lastId, err = o.Insert(item) return } func GetWxUserCode(wxCode string) (item *WxUserCode, err error) { o := orm.NewOrm() sql := `SELECT * FROM wx_user_code WHERE wx_code=? ` err = o.Raw(sql, wxCode).QueryRow(&item) return } //获取所有有权限的用户的opid func GetCygxUserRecordPower(condition string, pars []interface{}) (items []*OpenIdList, err error) { o := orm.NewOrm() sql := `SELECT cr.open_id, u.user_id, u.company_id, u.real_name, u.mobile FROM company_report_permission AS p INNER JOIN wx_user AS u ON u.company_id = p.company_id INNER JOIN user_record AS r ON r.user_id = u.user_id INNER JOIN cygx_user_record AS cr ON cr.union_id = r.union_id WHERE r.create_platform = 4 ` + condition + ` AND p.STATUS IN ('正式','试用','永续') GROUP BY cr.open_id` _, err = o.Raw(sql, pars).QueryRows(&items) return } //获取关注这个文章对应产业的用户的 openid func GetCygxUserFllowOpenid(articleId int) (items []*OpenIdList, err error) { o := orm.NewOrm() sql := `SELECT cr.open_id, f.user_id FROM cygx_xzs_choose_send AS s INNER JOIN cygx_industry_fllow AS f ON f.user_id = s.user_id INNER JOIN user_record AS r ON r.user_id = f.user_id INNER JOIN cygx_user_record AS cr ON cr.union_id = r.union_id INNER JOIN cygx_industrial_article_group_management as mg ON mg.industrial_management_id = f.industrial_management_id WHERE r.create_platform = 4 AND mg.article_id = ?` _, err = o.Raw(sql, articleId).QueryRows(&items) return } //获取拒绝接收推送的的用户的 openid func GetCygxUserRefusetOpenid() (items []*OpenIdList, err error) { o := orm.NewOrm() sql := `SELECT cr.open_id, s.user_id FROM cygx_xzs_choose_send AS s INNER JOIN user_record AS r ON r.user_id = s.user_id INNER JOIN cygx_user_record AS cr ON cr.union_id = r.union_id WHERE r.create_platform = 4 AND s.is_refuse = 1` _, err = o.Raw(sql).QueryRows(&items) return } //获取选择策略推送的用户的openid openid func GetCygxUserFllowCeLueOpenid(categoryId int) (items []*OpenIdList, err error) { o := orm.NewOrm() sql := `SELECT cr.open_id, f.user_id FROM cygx_xzs_choose_send AS s INNER JOIN cygx_xzs_choose_category AS f ON f.user_id = s.user_id INNER JOIN user_record AS r ON r.user_id = f.user_id INNER JOIN cygx_user_record AS cr ON cr.union_id = r.union_id WHERE r.create_platform = 4 AND s.is_refuse = 0 AND (s.is_subjective = 1 OR s.is_objective = 1) AND f.category_id = ?` _, err = o.Raw(sql, categoryId).QueryRows(&items) return } type CygxXzsChooseSend struct { Id int `orm:"column(id);pk"` UserId int `description:"用户ID"` Mobile string `description:"手机号"` Email string `description:"邮箱"` CompanyId int `description:"公司id"` CompanyName string `description:"公司名称"` RealName string `description:"用户实际名称"` IsRefuse int `description:"是否拒绝推送,0否、1是 如果为1 则不做任何推送"` IsSubjective int `description:"是否选择主观推送, 1 是 、 0否"` IsObjective int `description:"是否选择客观推送, 1 是 、 0否"` CreateTime time.Time `description:"创建时间"` ModifyTime time.Time `description:"更新时间"` } //获取提交过推送规则用户的userId func GetCygxXzsChooseSend() (items []*CygxXzsChooseSend, err error) { o := orm.NewOrm() sql := `SELECT * FROM cygx_xzs_choose_send ` _, err = o.Raw(sql).QueryRows(&items) return } //获取提交过推送规则用户的userId func GetCygxXzsChooseSendOpenIdByUserIds(idStr string) (items []*OpenIdList, err error) { o := orm.NewOrm() sql := `SELECT ur.user_id, cr.open_id FROM user_record AS ur INNER JOIN cygx_user_record AS cr WHERE ur.user_id IN (` + idStr + `) AND create_platform=4 AND ur.union_id=cr.union_id ` _, err = o.Raw(sql).QueryRows(&items) return }