123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 |
- package models
- import (
- "fmt"
- "github.com/beego/beego/v2/client/orm"
- "strings"
- "time"
- )
- //报名
- type CygxActivityMeetDetailLog struct {
- AttendanceId int `orm:"column(attendance_id);pk;"description:"主键ID"`
- ActivityId int `description:"活动ID"`
- RealName string `description:"姓名"`
- Mobile string `description:"手机号"`
- CompanyName string `description:"公司名称"`
- CompanyId int `description:"公司id 不在数据库的用户为0"`
- CreateTime time.Time `description:"创建时间"`
- ActivityTime string `description:"活动时间"`
- }
- func GetOfflineMeetingDetailListCompanyIdStr(companyIdStr string) (item []*CygxActivityMeetDetailLog, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM cygx_activity_offline_meeting_detail WHERE company_id IN (` + companyIdStr + `)`
- _, err = o.Raw(sql).QueryRows(&item)
- return
- }
- func GetOfflineMeetingDetailListCompanyName(companyName string) (item []*CygxActivityMeetDetailLog, err error) {
- o := orm.NewOrm()
- sql := `SELECT l.*
- FROM
- cygx_activity_meet_detail_log AS l INNER JOIN company AS c ON c.company_name = l.company_name
- WHERE
- l.company_name IN (` + companyName + `) GROUP BY l.company_name`
- _, err = o.Raw(sql).QueryRows(&item)
- return
- }
- //添加
- func AddCygxActivityMeetDetailLog(item *CygxActivityMeetDetailLog) (lastId int64, err error) {
- o := orm.NewOrm()
- lastId, err = o.Insert(item)
- return
- }
- func GetActivityMeetDetailLog(mobileStr string) (item []*CygxActivityMeetDetailLog, err error) {
- o := orm.NewOrm()
- sql := `SELECT l.*
- FROM
- cygx_activity_meet_detail_log as l
- INNER JOIN wx_user as u ON u.outbound_mobile = l.mobile
- WHERE l.mobile IN (` + mobileStr + `) GROUP BY l.mobile `
- _, err = o.Raw(sql).QueryRows(&item)
- return
- }
- func GetActivityMeetDetailLogByMobile() (item []*CygxActivityMeetDetailLog, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM cygx_activity_meet_detail_log WHERE mobile !='' GROUP BY mobile `
- _, err = o.Raw(sql).QueryRows(&item)
- return
- }
- //获取数量
- func GetActivityMeetDetailLogCount(condition string) (count int, err error) {
- o := orm.NewOrm()
- sqlCount := ` SELECT COUNT(1) AS count FROM cygx_activity_meet_detail_log WHERE 1=1 `
- if condition != "" {
- sqlCount += condition
- }
- err = o.Raw(sqlCount).QueryRow(&count)
- return
- }
- //修改公司参会数量
- func UpdateActivityMeetDetailLog(companyName string, num int) (err error) {
- sql := ` UPDATE cygx_activity_meet_detail_log SET company_meet_num= ? WHERE company_name = ?`
- o := orm.NewOrm()
- _, err = o.Raw(sql, num, companyName).Exec()
- return
- }
- //修改个人参会数量
- func UpdateActivityMeetDetailLogByUser(mobile string, num int) (err error) {
- sql := ` UPDATE cygx_activity_meet_detail_log SET user_meet_num= ? WHERE mobile = ?`
- o := orm.NewOrm()
- _, err = o.Raw(sql, num, mobile).Exec()
- return
- }
- //添加线上到会记录(下载使用)
- func AddCygxActivityMeetDetailLogOnline(list []*CygxActivityAttendanceDetail, activityId int) (err error) {
- o, err := orm.NewOrm().Begin()
- if err != nil {
- return
- }
- defer func() {
- fmt.Println(err)
- if err == nil {
- o.Commit()
- } else {
- o.Rollback()
- }
- }()
- var CompanyName string
- var MobileStr string
- var items []*CygxActivityMeetDetailLog
- //删除原有数据
- sql := ` DELETE FROM cygx_activity_meet_detail_log WHERE activity_id = ?`
- _, err = o.Raw(sql, activityId).Exec()
- if err != nil {
- return
- }
- //插入新的数据
- for _, v := range list {
- item := new(CygxActivityMeetDetailLog)
- item.ActivityId = v.ActivityId
- item.Mobile = v.Mobile
- item.CompanyName = v.CompanyName
- item.CompanyId = v.CompanyId
- item.CreateTime = v.CreateTime
- CompanyName += "'" + v.CompanyName + "',"
- MobileStr += v.Mobile + ","
- items = append(items, item)
- }
- CompanyName = strings.TrimRight(CompanyName, ",")
- MobileStr = strings.TrimRight(MobileStr, ",")
- _, err = o.InsertMulti(1, items)
- listCompany, err := GetOfflineMeetingDetailListCompanyName(CompanyName)
- if err != nil {
- return
- }
- //修改公司对应的数量
- var condition string
- for _, v := range listCompany {
- var total int
- condition = ` AND company_name = '` + v.CompanyName + `' `
- total, err = GetActivityMeetDetailLogCount(condition)
- if err != nil {
- return
- }
- sql := ` UPDATE cygx_activity_meet_detail_log SET company_meet_num= ? WHERE company_name = ?`
- _, err = o.Raw(sql, total, v.CompanyName).Exec()
- if err != nil {
- return
- }
- }
- listMobile, err := GetActivityMeetDetailLog(MobileStr)
- if err != nil {
- return
- }
- //修改个人对应的数量
- for _, v := range listMobile {
- var total int
- condition = ` AND mobile = '` + v.Mobile + `' `
- total, err = GetActivityMeetDetailLogCount(condition)
- if err != nil {
- return
- }
- sql := ` UPDATE cygx_activity_meet_detail_log SET user_meet_num= ? WHERE mobile = ?`
- _, err = o.Raw(sql, total, v.Mobile).Exec()
- if err != nil {
- return
- }
- }
- return
- }
- //添加线上到会记录
- func AddCygxActivityMeetDetailLogOnlineByList(list []*CygxActivityAttendanceDetail, activityIds string) (err error) {
- o, err := orm.NewOrm().Begin()
- if err != nil {
- return
- }
- defer func() {
- fmt.Println(err)
- if err == nil {
- o.Commit()
- } else {
- o.Rollback()
- }
- }()
- var CompanyName string
- var MobileStr string
- var items []*CygxActivityMeetDetailLog
- //删除原有数据
- sql := ` DELETE FROM cygx_activity_meet_detail_log WHERE activity_id IN (` + activityIds + `)`
- _, err = o.Raw(sql).Exec()
- if err != nil {
- return
- }
- //插入新的数据
- for _, v := range list {
- item := new(CygxActivityMeetDetailLog)
- item.ActivityId = v.ActivityId
- item.Mobile = v.Mobile
- fmt.Println(v.CompanyName)
- item.CompanyName = v.CompanyName
- item.CompanyId = v.CompanyId
- item.ActivityTime = v.ActivityTime
- item.CreateTime = v.CreateTime
- if strings.Index(CompanyName, v.CompanyName) == -1 && v.CompanyName != "" {
- CompanyName += "'" + v.CompanyName + "',"
- }
- if strings.Index(MobileStr, v.Mobile) == -1 && v.Mobile != "" {
- MobileStr += v.Mobile + ","
- }
- items = append(items, item)
- }
- CompanyName = strings.TrimRight(CompanyName, ",")
- MobileStr = strings.TrimRight(MobileStr, ",")
- _, err = o.InsertMulti(1, items)
- listCompany, err := GetOfflineMeetingDetailListCompanyName(CompanyName)
- fmt.Println("公司数量", len(listCompany))
- if err != nil {
- return
- }
- //修改公司对应的数量
- var condition string
- for _, v := range listCompany {
- var total int
- condition = ` AND company_name = '` + v.CompanyName + `' `
- total, err = GetActivityMeetDetailLogCount(condition)
- if err != nil {
- return
- }
- sql := ` UPDATE cygx_activity_meet_detail_log SET company_meet_num= ? WHERE company_name = ?`
- _, err = o.Raw(sql, total, v.CompanyName).Exec()
- fmt.Println("处理公司", v.CompanyName)
- if err != nil {
- return
- }
- }
- listMobile, err := GetActivityMeetDetailLog(MobileStr)
- fmt.Println("用户数量", len(listMobile))
- if err != nil {
- return
- }
- //修改个人对应的数量
- for _, v := range listMobile {
- var total int
- condition = ` AND mobile = '` + v.Mobile + `' `
- total, err = GetActivityMeetDetailLogCount(condition)
- if err != nil {
- return
- }
- sql := ` UPDATE cygx_activity_meet_detail_log SET user_meet_num= ? WHERE mobile = ?`
- _, err = o.Raw(sql, total, v.Mobile).Exec()
- fmt.Println("处理用户", v.Mobile)
- if err != nil {
- return
- }
- }
- fmt.Println("user_end")
- return
- }
|