123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- package roadshow
- import (
- "github.com/beego/beego/v2/client/orm"
- )
- //公开会议总览
- type PublicMeetingView struct {
- RsCalendarId int `description:"日历活动id"`
- MinTime string `description:"活动最小时间"`
- MaxTime string `description:"活动最大时间"`
- }
- //获取公开会议
- func GetPublicMeetingList(endDate string) (list []*PublicMeetingView, err error) {
- sql := ` SELECT a.rs_calendar_id,min(DATE_FORMAT(CONCAT(b.start_date," ",b.start_time),'%Y-%m-%d %H:%i:%S')) AS min_time,max(DATE_FORMAT(CONCAT(b.end_date," ",b.end_time),'%Y-%m-%d %H:%i:%S')) AS max_time
- FROM rs_calendar AS a
- INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
- WHERE a.source=0 AND activity_type='公开会议'
- AND b.end_date>=?
- group by a.rs_calendar_id `
- o := orm.NewOrm()
- _, err = o.Raw(sql, endDate).QueryRows(&list)
- return
- }
- func ModifyCalendarUnionCode(unionCode string, rsCalendarId int) (err error) {
- sql := ` UPDATE rs_calendar SET union_code=? WHERE rs_calendar_id=? `
- o := orm.NewOrm()
- _, err = o.Raw(sql, unionCode, rsCalendarId).Exec()
- if err != nil {
- return err
- }
- sql = ` UPDATE rs_calendar_researcher SET union_code=? WHERE rs_calendar_id=? `
- _, err = o.Raw(sql, unionCode, rsCalendarId).Exec()
- if err != nil {
- return err
- }
- return
- }
- func GetCoincideMeeting(startTime, endTime string) (list []*PublicMeetingView, err error) {
- sql := ` SELECT * FROM (
- SELECT a.rs_calendar_id,MIN(DATE_FORMAT(CONCAT(b.start_date," ",b.start_time),'%Y-%m-%d %H:%i:%S')) AS min_time,MAX(DATE_FORMAT(CONCAT(b.end_date," ",b.end_time),'%Y-%m-%d %H:%i:%S')) AS max_time
- FROM rs_calendar AS a
- INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
- WHERE a.source=0 AND activity_type='公开会议'
- GROUP BY a.rs_calendar_id
- ) AS t
- WHERE (t.min_time<=? AND t.max_time>=?) OR (?>=t.min_time AND ?<=t.max_time) or
- (t.min_time >= ? AND t.max_time <=?) `
- o := orm.NewOrm()
- _, err = o.Raw(sql, startTime, startTime, endTime, endTime, startTime, endTime).QueryRows(&list)
- return
- }
- func GetCoincideMeetingMinAndMaxTime(startTime, endTime string) (min_time, max_time string, err error) {
- sql := ` select min(t.min_time) as min_time,max(t.max_time) as max_time from (
- SELECT a.rs_calendar_id,MIN(DATE_FORMAT(CONCAT(b.start_date," ",b.start_time),'%Y-%m-%d %H:%i:%S')) AS min_time,MAX(DATE_FORMAT(CONCAT(b.end_date," ",b.end_time),'%Y-%m-%d %H:%i:%S')) AS max_time
- FROM rs_calendar AS a
- INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
- WHERE a.source=0 AND activity_type='公开会议'
- GROUP BY a.rs_calendar_id
- )as t
- where (t.min_time<=? AND t.max_time>=?) OR (?>=t.min_time AND ?<=t.max_time) `
- o := orm.NewOrm()
- err = o.Raw(sql, startTime, startTime, endTime, endTime).QueryRow(&min_time, &max_time)
- return
- }
- func ClearCalendarUnionCode(nowDate string) (err error) {
- o := orm.NewOrm()
- var rs_calendar_id string
- sql := `SELECT group_concat(distinct a.rs_calendar_id) AS rs_calendar_id FROM rs_calendar AS a
- INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
- WHERE a.source=0 AND activity_type='公开会议'
- AND b.end_date>=? `
- err = o.Raw(sql, nowDate).QueryRow(&rs_calendar_id)
- sql = ` UPDATE rs_calendar SET union_code='' WHERE rs_calendar_id IN(` + rs_calendar_id + `) `
- _, err = o.Raw(sql).Exec()
- if err != nil {
- return err
- }
- sql = ` UPDATE rs_calendar_researcher SET union_code='' WHERE rs_calendar_id IN(` + rs_calendar_id + `) `
- _, err = o.Raw(sql).Exec()
- if err != nil {
- return err
- }
- return
- }
- /*
- sql := ` SELECT b.* FROM rs_calendar AS a
- INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
- WHERE a.source=0 AND activity_type='公开会议'
- AND b.end_date>=?
- ORDER BY a.rs_calendar_id ASC `
- */
- func GetExistMeetingCode(startTime, endTime string) (union_code string, err error) {
- sql := ` SELECT union_code FROM rs_calendar_researcher AS a
- WHERE DATE_FORMAT(CONCAT(a.start_date," ",a.start_time),'%Y-%m-%d %H:%i:%S')>=?
- AND DATE_FORMAT(CONCAT(a.end_date," ",a.end_time),'%Y-%m-%d %H:%i:%S')<=?
- group by a.union_code
- LIMIT 1 `
- o := orm.NewOrm()
- err = o.Raw(sql, startTime, endTime).QueryRow(&union_code)
- return
- }
|