123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- package models
- import (
- "github.com/beego/beego/v2/client/orm"
- "time"
- )
- type WxUserWhite struct {
- Id int `orm:"column(id);pk"`
- Mobile string
- CreatedTime time.Time
- UserCreatedTime time.Time
- OutboundMobile string `description:"外呼手机号"`
- Status string `description:"客户状态'试用','永续','冻结','流失','正式','潜在'"`
- CountryCode string `description:"区号"`
- OutboundCountryCode string `description:"外呼手机号区号"`
- CompanyName string `description:"公司名称"`
- PermissionName string `description:"拥有权限分类"`
- RealName string `description:"姓名"`
- SellerName string `description:"销售"`
- }
- // 添加
- func AddWxUserWhite(item *WxUserWhite) (lastId int64, err error) {
- o := orm.NewOrmUsingDB("weekly_report")
- lastId, err = o.Insert(item)
- return
- }
- // 批量添加
- func AddAddWxUserWhiteMulti(items []*WxUserWhite) (err error) {
- o := orm.NewOrmUsingDB("weekly_report")
- if len(items) > 0 {
- //批量添加新的关注记录
- _, err = o.InsertMulti(len(items), items)
- }
- return
- }
- // 获取用户手机号白名单
- func GetWxUserWhiteMobile() (mobileStr string, err error) {
- sql := ` SELECT
- GROUP_CONCAT( DISTINCT u.mobile SEPARATOR ',' ) AS mobileStr
- FROM
- wx_user AS u
- INNER JOIN company AS c ON c.company_id = u.company_id
- INNER JOIN company_report_permission AS p ON p.company_id = u.company_id
- INNER JOIN chart_permission AS b ON b.chart_permission_id = p.chart_permission_id
- INNER JOIN company_product AS cp ON cp.company_id = u.company_id
- WHERE
- 1 = 1
- AND cp.product_id = 2
- AND u.mobile NOT IN ( SELECT mobile FROM wx_user_white )
- AND u.mobile != ''
- AND cp.status IN ( '正式', '试用' ) `
- o := orm.NewOrmUsingDB("weekly_report")
- err = o.Raw(sql).QueryRow(&mobileStr)
- return
- }
- // 获取用户外呼手机号白名单
- func GetWxUserWhiteOutboundMobile() (mobileStr string, err error) {
- o := orm.NewOrmUsingDB("weekly_report")
- sql := ` SELECT
- GROUP_CONCAT( DISTINCT u.outbound_mobile SEPARATOR ',' ) AS outboundmobileStr
- FROM
- wx_user AS u
- INNER JOIN company AS c ON c.company_id = u.company_id
- INNER JOIN company_report_permission AS p ON p.company_id = u.company_id
- INNER JOIN chart_permission AS b ON b.chart_permission_id = p.chart_permission_id
- INNER JOIN company_product AS cp ON cp.company_id = u.company_id
- WHERE
- 1 = 1
- AND cp.product_id = 2
- AND u.outbound_mobile NOT IN ( SELECT outbound_mobile FROM wx_user_white )
- AND u.outbound_mobile NOT IN ( SELECT mobile FROM wx_user_white )
- AND cp.status IN ( '正式', '试用' )
- AND u.mobile != ''
- AND u.mobile != u.outbound_mobile `
- err = o.Raw(sql).QueryRow(&mobileStr)
- return
- }
- // 获取冻结用户白名单
- func GetFrozenUserWhiteList() (items []*WxUserWhite, err error) {
- o := orm.NewOrmUsingDB("weekly_report")
- sql := `SELECT
- *
- FROM
- wx_user_white AS w
- WHERE
- w.mobile NOT IN (
- SELECT
- mobile
- FROM
- wx_user AS u
- INNER JOIN company AS c ON c.company_id = u.company_id
- INNER JOIN company_report_permission AS p ON p.company_id = u.company_id
- INNER JOIN chart_permission AS b ON b.chart_permission_id = p.chart_permission_id
- INNER JOIN company_product AS cp ON cp.company_id = u.company_id
- WHERE
- 1 = 1
- AND cp.product_id = 2
- AND cp.STATUS IN ( '正式', '试用' )
- AND mobile != ''
- )
- AND w.outbound_mobile = '' ` //OR w.outbound_mobile NOT IN ( SELECT outbound_mobile FROM wx_user )`
- _, err = o.Raw(sql).QueryRows(&items)
- return
- }
- // 获取冻结用户白名单外呼号
- func GetFrozenUserWhiteListOutbound() (items []*WxUserWhite, err error) {
- o := orm.NewOrmUsingDB("weekly_report")
- sql := `SELECT
- *
- FROM
- wx_user_white AS w
- WHERE
- w.outbound_mobile NOT IN (
- SELECT
- outbound_mobile
- FROM
- wx_user AS u
- INNER JOIN company AS c ON c.company_id = u.company_id
- INNER JOIN company_report_permission AS p ON p.company_id = u.company_id
- INNER JOIN chart_permission AS b ON b.chart_permission_id = p.chart_permission_id
- INNER JOIN company_product AS cp ON cp.company_id = u.company_id
- WHERE
- 1 = 1
- AND cp.product_id = 2
- AND cp.STATUS IN ( '正式', '试用' )
- AND outbound_mobile != '')
- AND w.mobile = ''`
- _, err = o.Raw(sql).QueryRows(&items)
- return
- }
- // 删除数据
- func DeleteWxUserWhite(item *WxUserWhite) (err error) {
- o := orm.NewOrmUsingDB("weekly_report")
- if item.Mobile != "" {
- sql := ` DELETE FROM wx_user_white WHERE mobile = ?`
- _, err = o.Raw(sql, item.Mobile).Exec()
- } else if item.OutboundMobile != "" {
- sql := ` DELETE FROM wx_user_white WHERE outbound_mobile = ?`
- _, err = o.Raw(sql, item.OutboundMobile).Exec()
- }
- return
- }
|