package models import ( "fmt" "github.com/beego/beego/v2/client/orm" "strings" "time" ) type WxUserRaiLabelRedis struct { UserId int `description:"用户ID"` SourceId int `description:"资源ID"` Label string `description:"标签内容"` SourceType int `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"` CreateTime time.Time `description:"创建时间"` RegisterPlatform int `description:"来源 1小程序,2:网页"` TableName string `description:"数据来源的表名"` } type WxUserRaiLabel struct { RaiLabelId int `orm:"column(rai_label_id);pk"` UserId int `description:"用户ID"` RealName string `description:"用户实际名称"` Mobile string `description:"手机号"` Email string `description:"邮箱"` CompanyId int `description:"公司id"` CompanyName string `description:"公司名称"` Label string `description:"标签内容"` SourceId int `description:"来源ID"` SourceType int `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"` SysUserId int `description:"创建人id"` SysUserRealName string `description:"创建人名称"` CreateTime time.Time `description:"创建时间"` ModifyTime time.Time `description:"更新时间"` RegisterPlatform int `description:"来源 1小程序,2:网页"` TableName string `description:"数据来源的表名"` } // 标签记录表,所有内容都不删除 type WxUserRaiLabelLog struct { RaiLabelId int `orm:"column(rai_label_id);pk"` UserId int `description:"用户ID"` RealName string `description:"用户实际名称"` Mobile string `description:"手机号"` Email string `description:"邮箱"` CompanyId int `description:"公司id"` CompanyName string `description:"公司名称"` Label string `description:"标签内容"` SourceId int `description:"来源ID"` SourceType int `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"` SysUserId int `description:"创建人id"` SysUserRealName string `description:"创建人名称"` CreateTime time.Time `description:"创建时间"` ModifyTime time.Time `description:"更新时间"` RegisterPlatform int `description:"来源 1小程序,2:网页"` TableName string `description:"数据来源的表名"` } // 添加 func AddWxUserRaiLabel(item *WxUserRaiLabel) (err error) { o, err := orm.NewOrm().Begin() if err != nil { return } defer func() { fmt.Println(err) if err == nil { o.Commit() } else { o.Rollback() } }() //删除原有数据 sql := ` DELETE FROM wx_user_rai_label WHERE user_id = ? AND label = ? ` _, err = o.Raw(sql, item.UserId, item.Label).Exec() if err != nil { return } _, err = o.Insert(item) if err != nil { return } itemLog := new(WxUserRaiLabelLog) itemLog.UserId = item.UserId itemLog.RealName = item.RealName itemLog.Mobile = item.Mobile itemLog.Email = item.Email itemLog.CompanyId = item.CompanyId itemLog.CompanyName = item.CompanyName itemLog.Label = item.Label itemLog.SourceId = item.SourceId itemLog.SourceType = item.SourceType itemLog.SysUserId = item.SysUserId itemLog.SysUserRealName = item.SysUserRealName itemLog.CreateTime = item.CreateTime itemLog.ModifyTime = item.ModifyTime itemLog.RegisterPlatform = item.RegisterPlatform itemLog.TableName = item.TableName _, err = o.Insert(itemLog) return } // 批量插入 func AddWxUserRaiLabelMulti(items []*WxUserRaiLabel, label []string, userId int) (err error) { o, err := orm.NewOrm().Begin() if err != nil { return } defer func() { if err == nil { o.Commit() } else { o.Rollback() } }() var itemLogs []*WxUserRaiLabelLog for _, item := range items { itemLog := new(WxUserRaiLabelLog) itemLog.UserId = item.UserId itemLog.RealName = item.RealName itemLog.Mobile = item.Mobile itemLog.Email = item.Email itemLog.CompanyId = item.CompanyId itemLog.CompanyName = item.CompanyName itemLog.Label = item.Label itemLog.SourceId = item.SourceId itemLog.SourceType = item.SourceType itemLog.SysUserId = item.SysUserId itemLog.SysUserRealName = item.SysUserRealName itemLog.CreateTime = item.CreateTime itemLog.ModifyTime = item.ModifyTime itemLog.RegisterPlatform = item.RegisterPlatform itemLog.TableName = item.TableName itemLogs = append(itemLogs, itemLog) } if len(label) > 0 { //删除老的数据信息 sql := ` DELETE FROM wx_user_rai_label WHERE user_id = ? AND label IN ('` + strings.Join(label, "','") + `') ` _, err = o.Raw(sql, userId).Exec() if err != nil { return } } //批量插入新的关联数据 if len(items) > 0 { //批量添加流水信息 _, err = o.InsertMulti(len(items), items) if err != nil { return } _, err = o.InsertMulti(len(itemLogs), itemLogs) if err != nil { return } } return } // 批量插入(脚本) func AddWxUserRaiLabelLogMultiInit(items []*WxUserRaiLabelLog) (err error) { o, err := orm.NewOrm().Begin() if err != nil { return } defer func() { if err == nil { o.Commit() } else { o.Rollback() } }() //批量插入新的关联数据 if len(items) > 0 { //批量添加流水信息 _, err = o.InsertMulti(len(items), items) if err != nil { return } } return } // 批量插入(脚本) func AddWxUserRaiLabelMultiInit(items []*WxUserRaiLabel) (err error) { o, err := orm.NewOrm().Begin() if err != nil { return } defer func() { if err == nil { o.Commit() } else { o.Rollback() } }() //批量插入新的关联数据 if len(items) > 0 { //批量添加流水信息 _, err = o.InsertMulti(len(items), items) if err != nil { return } } return } // 文章标签表(业务用不到,跑数据使用,别删) type WxUserRaiArticleLabel struct { Id int `orm:"column(id);pk"` ArticleId int `description:"报告id"` Label string `description:"标签内容"` CreateTime time.Time `description:"创建时间"` SourceType int `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"` } // 批量插入(脚本) func AddWxUserRaiArticleLabelMultiInit(items []*WxUserRaiArticleLabel) (err error) { o, err := orm.NewOrm().Begin() if err != nil { return } defer func() { if err == nil { o.Commit() } else { o.Rollback() } }() //批量插入新的关联数据 if len(items) > 0 { //批量添加流水信息 _, err = o.InsertMulti(len(items), items) if err != nil { return } } return } // 列表 func GetWxUserRaiArticleLabelCrm16_5() (items []*WxUserRaiArticleLabel, err error) { o := orm.NewOrm() sql := `SELECT article_id FROM wx_user_rai_article_label GROUP BY article_id ` _, err = o.Raw(sql).QueryRows(&items) return } // 列表 func GetWxUserRaiArticleLabelAllCrm16_5() (items []*WxUserRaiArticleLabel, err error) { o := orm.NewOrm() sql := `SELECT article_id,label,source_type FROM wx_user_rai_article_label ` _, err = o.Raw(sql).QueryRows(&items) return } // 列表 func GetWxUserRaiLabelLogAll() (items []*WxUserRaiLabelLog, err error) { o := orm.NewOrm() sql := `SELECT * FROM wx_user_rai_label_log ` _, err = o.Raw(sql).QueryRows(&items) return }