123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- package models
- import (
- "github.com/beego/beego/v2/client/orm"
- "time"
- )
- type UserSellerRelation struct {
- RelationId int64 `orm:"column(relation_id);pk"`
- UserId int `description:"用户id"`
- CompanyId int `description:"企业用户id"`
- SellerId int `description:"销售id"`
- Seller string `description:"销售员名称"`
- ProductId int `description:"产品id"`
- Mobile string `description:"手机号"`
- Email string `description:"邮箱"`
- ModifyTime time.Time `description:"修改时间"`
- CreateTime time.Time `description:"创建时间"`
- }
- // 添加销售员与员工的关系
- func AddUserSellerRelation(userId int64, companyId, sellerId, productId int, seller, mobile, email string) (lastId int64, err error) {
- o := orm.NewOrm()
- relation := UserSellerRelation{
- UserId: int(userId),
- SellerId: sellerId,
- CompanyId: companyId,
- Seller: seller,
- ProductId: productId,
- Mobile: mobile,
- Email: email,
- CreateTime: time.Now(),
- ModifyTime: time.Now(),
- }
- lastId, err = o.Insert(&relation)
- return
- }
- // 根据企业用户id修改所属销售
- func UpdateUserSellerRelationByCompanyId(companyId, productId, sellerId int, seller string) (err error) {
- o := orm.NewOrm()
- sql := `UPDATE user_seller_relation SET seller_id=?,seller = ? ,modify_time=NOW() WHERE company_id = ? AND product_id=?`
- _, err = o.Raw(sql, sellerId, seller, companyId, productId).Exec()
- return
- }
- // 删除销售员与员工的关系
- func DeleteUserSellerRelation(userId, sellerId int) (err error) {
- o := orm.NewOrm()
- sql := ` DELETE FROM user_seller_relation WHERE user_id=? and seller_id = ?`
- _, err = o.Raw(sql, userId, sellerId).Exec()
- return
- }
- // 根据产品id删除销售员与员工的关系
- func DeleteUserSellerRelationByProductId(userId, productId int) (err error) {
- o := orm.NewOrm()
- sql := ` DELETE FROM user_seller_relation WHERE user_id=? and product_id = ?`
- _, err = o.Raw(sql, userId, productId).Exec()
- return
- }
- // 根据联系人id删除所有销售员与该联系人的关系
- func DeleteUserSellerRelationByUserId(userId int) (err error) {
- o := orm.NewOrm()
- sql := ` DELETE FROM user_seller_relation WHERE user_id=? `
- _, err = o.Raw(sql, userId).Exec()
- return
- }
- // 根据用户id和销售员id获取关系
- func GetUserSellerRelation(userId int64, sellerId int) (item *UserSellerRelation, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM user_seller_relation WHERE user_id = ? and seller_id= ?`
- err = o.Raw(sql, userId, sellerId).QueryRow(&item)
- return
- }
- // 获取用户的销售员(产品)的关系数量
- func GetUserSellerRelationCount(userId int) (count int, err error) {
- o := orm.NewOrm()
- sql := `SELECT COUNT(*) AS count
- FROM user_seller_relation WHERE user_id = ? `
- err = o.Raw(sql, userId).QueryRow(&count)
- return
- }
- // 通过用户id获取用户的销售员(产品)的关系
- func GetUserSellerRelationList(userId int) (list []*UserSellerRelation, err error) {
- o := orm.NewOrm()
- sql := `SELECT *
- FROM user_seller_relation WHERE user_id = ? `
- _, err = o.Raw(sql, userId).QueryRows(&list)
- return
- }
- // 用户与销售员的关系数量切片
- type UserSellerRelationSlice struct {
- Total int `description:"总阅读数"`
- UserId int `description:"用户id"`
- ProductIds string `description:"所属权限id"`
- }
- // 根据用户id字符串,获取用户与销售员的关系数量
- func GetUserSellerRelationCountByUserIds(userIds string) (items []*UserSellerRelationSlice, err error) {
- o := orm.NewOrm()
- sql := `select *,COUNT(1) AS total,GROUP_CONCAT( DISTINCT product_id SEPARATOR ',' ) AS product_ids from (SELECT user_id, product_id
- FROM user_seller_relation WHERE user_id in (` + userIds + `) group by user_id,product_id) b group by user_id`
- _, err = o.Raw(sql).QueryRows(&items)
- return
- }
- // 根据用户产品权限来获取名片数
- func GetCompanyUserBusinessCardCountByProductId(companyId, productId int) (count int, err error) {
- o := orm.NewOrm()
- sql := ` SELECT COUNT(1) AS count FROM user_seller_relation a
- left join wx_user b on a.user_id=b.user_id WHERE a.company_id =? and a.product_id=? AND b.business_card_url<>'' `
- err = o.Raw(sql, companyId, productId).QueryRow(&count)
- return
- }
- // GetCompanyUserSellerRelationByProductId 根据企业id和产品id获取所有用户
- func GetCompanyUserSellerRelationByProductId(companyId, productId int) (items []*UserSellerRelation, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM user_seller_relation WHERE company_id = ? AND product_id=?`
- _, err = o.Raw(sql, companyId, productId).QueryRows(&items)
- return
- }
- // 根据企业id和产品id获取所有不是该产品id的所有用户
- func GetNotCompanyUserSellerRelationByProductId(companyId, productId int) (items []*UserSellerRelation, err error) {
- o := orm.NewOrm()
- sql := `SELECT user_id FROM user_seller_relation WHERE company_id = ? AND product_id != ?`
- _, err = o.Raw(sql, companyId, productId).QueryRows(&items)
- return
- }
- // 根据产品id删除某个客户下 销售员与员工的关系
- func DelCompanyUserSellerRelationByProductId(companyId, productId int) (err error) {
- o := orm.NewOrm()
- sql := ` DELETE FROM user_seller_relation WHERE company_id = ? AND product_id = ? `
- _, err = o.Raw(sql, companyId, productId).Exec()
- return
- }
- // 获取联系人分组信息
- type UserSellerRelationGroup struct {
- RelationId int64 `orm:"column(relation_id);pk"`
- UserId int `description:"用户id"`
- CompanyId int `description:"企业用户id"`
- SellerId int `description:"销售id"`
- Seller string `description:"销售员名称"`
- SellerRealName string `description:"销售员名称"`
- Status string `description:"产品权限状态"`
- ProductId int `description:"产品id"`
- Mobile string `description:"手机号"`
- Email string `description:"邮箱"`
- ModifyTime time.Time `description:"修改时间"`
- CreateTime time.Time `description:"创建时间"`
- }
- func GetUserGroupSellerByUserId(userId int) (item *UserSellerRelationGroup, err error) {
- o := orm.NewOrm()
- sql := ` SELECT a.*,GROUP_CONCAT(DISTINCT b.real_name SEPARATOR '/') AS seller_real_name,GROUP_CONCAT(DISTINCT c.status SEPARATOR '/') AS status
- FROM user_seller_relation AS a
- LEFT JOIN admin AS b ON a.seller_id=b.admin_id
- LEFT JOIN company_product AS c ON a.company_id=c.company_id
- WHERE a.user_id=? GROUP BY a.company_id`
- err = o.Raw(sql, userId).QueryRow(&item)
- return
- }
- // 根据联系人id获所有的分组信息
- func GetUserGroupSellersByUserId(userId int) (list []*UserSellerRelationGroup, err error) {
- o := orm.NewOrm()
- sql := ` SELECT a.*,b.real_name AS seller_real_name,c.status
- FROM user_seller_relation AS a
- LEFT JOIN admin AS b ON a.seller_id=b.admin_id
- LEFT JOIN company_product AS c ON a.company_id=c.company_id
- WHERE a.user_id=? `
- _, err = o.Raw(sql, userId).QueryRows(&list)
- return
- }
|