package wx_user import ( "github.com/beego/beego/v2/client/orm" "time" ) type WxUser struct { UserId int64 `orm:"column(user_id);pk"` Mobile string Email string CompanyId int RealName string `description:"姓名"` CreatedTime time.Time MobileTwo string `description:"备用手机号"` BusinessCardUrl string `description:"名片"` IsMaker int `description:"是否决策人,1:是,0:否"` Position string `description:"职位"` Sex int `description:"普通用户性别,1为男性,2为女性"` DepartmentName string `description:"联系人部门"` RegisterTime time.Time RegisterPlatform int } type OpenIdList struct { OpenId string UserId int } //获取所有的用户openid列表 func GetOpenIdList(openIdStr string) (items []*OpenIdList, err error) { sql := `SELECT DISTINCT ur.open_id,wu.user_id FROM wx_user AS wu INNER JOIN company AS c ON c.company_id = wu.company_id INNER JOIN company_product AS d ON c.company_id=d.company_id INNER join user_record as ur on wu.user_id=ur.user_id WHERE ur.open_id != "" and ur.create_platform=1 AND d.status IN('正式','试用','永续') ` if openIdStr != "" { sql += ` AND ur.open_id in (` + openIdStr + `) ` } _, err = orm.NewOrm().Raw(sql).QueryRows(&items) return } //根据手机号获取用户的openid列表 func GetOpenIdListByMobile(mobile string) (items []*OpenIdList, err error) { sql := `SELECT DISTINCT ur.open_id,wu.user_id FROM wx_user AS wu INNER JOIN company AS c ON c.company_id = wu.company_id INNER join user_record as ur on wu.user_id=ur.user_id WHERE ur.open_id != "" and ur.create_platform=1 AND ur.subscribe = 1 AND wu.mobile=? ` //if openIdStr != "" { // sql += ` AND ur.open_id in (` + openIdStr + `) ` //} _, err = orm.NewOrm().Raw(sql, mobile).QueryRows(&items) return } // GetWxUserByCompanyIdAndMobile 根据客户ID及手机号获取用户 func GetWxUserByCompanyIdAndMobile(companyId int, mobile string) (item *WxUser, err error) { o := orm.NewOrm() sql := ` SELECT * FROM wx_user WHERE company_id = ? AND mobile = ? LIMIT 1 ` err = o.Raw(sql, companyId, mobile).QueryRow(&item) return } // UserCompanyInfoList 联系人和客户信息表 type UserCompanyInfoList struct { UserId int `description:"联系人id"` CompanyId int `description:"客户id"` RealName string `description:"联系人真实姓名"` CompanyName string `description:"客户名称"` CompanyProductStatus string `description:"客户ficc状态"` } // GetUserListByUserIds 获取所有的用户openid列表 func GetUserListByUserIds(userIds string) (items []*UserCompanyInfoList, err error) { sql := `SELECT a.user_id,a.real_name,b.company_name,c.status company_product_status FROM wx_user AS a INNER JOIN company AS b ON b.company_id = a.company_id INNER JOIN company_product AS c ON b.company_id=c.company_id WHERE a.user_id in ( ` + userIds + `) and c.product_id=1 ` _, err = orm.NewOrm().Raw(sql).QueryRows(&items) return }