|
@@ -6,13 +6,22 @@ import (
|
|
|
|
|
|
//公开会议总览
|
|
|
|
|
|
+//公开会议总览
|
|
|
+
|
|
|
+type PublicMeetingView struct {
|
|
|
+ RsCalendarId int `description:"日历活动id"`
|
|
|
+ MinTime string `description:"活动最小时间"`
|
|
|
+ MaxTime string `description:"活动最大时间"`
|
|
|
+}
|
|
|
+
|
|
|
//获取公开会议
|
|
|
-func GetPublicMeetingList(endDate string) (list []*RsCalendarResearcher, err error) {
|
|
|
- sql := ` SELECT b.* FROM rs_calendar AS a
|
|
|
+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>=?
|
|
|
- ORDER BY a.rs_calendar_id ASC `
|
|
|
+ group by a.rs_calendar_id `
|
|
|
o := orm.NewOrm()
|
|
|
_, err = o.Raw(sql, endDate).QueryRows(&list)
|
|
|
return
|
|
@@ -33,11 +42,73 @@ func ModifyCalendarUnionCode(unionCode string, rsCalendarId int) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func GetCoincideMeeting(startTime, endTime string) (list []*RsCalendarResearcher, err error) {
|
|
|
- sql := ` SELECT * 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') `
|
|
|
+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).QueryRows(&list)
|
|
|
+ err = o.Raw(sql, startTime, endTime).QueryRow(&union_code)
|
|
|
return
|
|
|
}
|