浏览代码

no message

zhangchuanxing 1 天之前
父节点
当前提交
6c61fecee9
共有 3 个文件被更改,包括 106 次插入4 次删除
  1. 31 4
      controllers/roadshow/activity.go
  2. 57 0
      controllers/roadshow/calendar.go
  3. 18 0
      services/roadshow/calendar_check.go

+ 31 - 4
controllers/roadshow/activity.go

@@ -116,18 +116,45 @@ func (this *ActivityController) Add() {
 		return
 	}
 	for _, v := range sellerList {
+		//校验销售活动时间冲突
+		{
+			activityCount, err := roadshowService.CheckActivity(startDateTime, endDateTime, "1,2", v.AdminId)
+			if err != nil {
+				br.Msg = "时间冲突检测失败!"
+				br.ErrMsg = "时间冲突检测失败-CheckCalendarSellerCount!Err:" + err.Error()
+				return
+			}
+			if activityCount > 0 {
+				checkIsAdd = append(checkIsAdd, v.RealName)
+			}
+		}
+
 		//校验活动时间冲突
 		{
-			calendarCount, err := roadshowService.CheckActivity(startDateTime, endDateTime, "1,2", v.AdminId)
+			activityResearcherCount, err := roadshowService.CheckResearcherBySysSserId(startDateTime, endDateTime, "1,2", v.AdminId)
 			if err != nil {
 				br.Msg = "时间冲突检测失败!"
-				br.ErrMsg = "时间冲突检测失败-CheckCalendar!Err:" + err.Error()
+				br.ErrMsg = "时间冲突检测失败-CheckCalendarSellerCount!Err:" + err.Error()
 				return
 			}
-			if calendarCount > 0 {
-				checkIsAdd = append(checkIsAdd, v.AdminName)
+			if activityResearcherCount > 0 {
+				checkIsAdd = append(checkIsAdd, v.RealName)
 			}
 		}
+
+		//校验事项时间冲突
+		{
+			matterCount, err := roadshowService.CheckMatters(startDateTime, endDateTime, v.AdminId, 0)
+			if err != nil {
+				br.Msg = "时间冲突检测失败!"
+				br.ErrMsg = "时间冲突检测失败-CheckCalendarActivitySellerrCount!Err:" + err.Error()
+				return
+			}
+			if matterCount > 0 {
+				checkIsAdd = append(checkIsAdd, v.RealName)
+			}
+		}
+
 	}
 
 	if len(checkIsAdd) > 0 {

+ 57 - 0
controllers/roadshow/calendar.go

@@ -198,6 +198,19 @@ func (this *CalendarController) Add() {
 				checkIsAdd = append(checkIsAdd, v.ResearcherName)
 			}
 		}
+
+		//校验销售活动时间冲突
+		{
+			activityCount, err := roadshowService.CheckActivity(startDateTime, endDateTime, "1,2", sysUser.AdminId)
+			if err != nil {
+				br.Msg = "时间冲突检测失败!"
+				br.ErrMsg = "时间冲突检测失败-CheckCalendarActivitySellerrCount!Err:" + err.Error()
+				return
+			}
+			if activityCount > 0 {
+				checkIsAdd = append(checkIsAdd, sysUser.RealName)
+			}
+		}
 	}
 
 	if len(checkIsAdd) > 0 {
@@ -575,6 +588,19 @@ func (this *CalendarController) Edit() {
 		if calendarCount > 0 {
 			checkIsAdd = append(checkIsAdd, v.ResearcherName)
 		}
+
+		//校验销售活动时间冲突
+		{
+			activityCount, err := roadshowService.CheckActivity(startDateTime, endDateTime, "1,2", sysUser.AdminId)
+			if err != nil {
+				br.Msg = "时间冲突检测失败!"
+				br.ErrMsg = "时间冲突检测失败-CheckCalendarActivitySellerrCount!Err:" + err.Error()
+				return
+			}
+			if activityCount > 0 {
+				checkIsAdd = append(checkIsAdd, sysUser.RealName)
+			}
+		}
 	}
 
 	if len(checkIsAdd) > 0 {
@@ -2132,6 +2158,22 @@ func (this *CalendarController) MattersAdd() {
 		}
 	}
 
+	//校验销售活动时间冲突
+	{
+		activityCount, err := roadshowService.CheckActivity(startDateTime, endDateTime, "1,2", sysUser.AdminId)
+		if err != nil {
+			br.Msg = "时间冲突检测失败!"
+			br.ErrMsg = "时间冲突检测失败-CheckCalendar!Err:" + err.Error()
+			return
+		}
+		if activityCount > 0 {
+			br.Msg = "当前时间已被占用!"
+			br.ErrMsg = "时间冲突检测失败-CheckCalendarActivitySellerrCount!"
+			br.IsSendEmail = false
+			return
+		}
+	}
+
 	startP, _ := time.ParseInLocation(utils.FormatDateTime, startDateTime, time.Local)
 	endP, _ := time.ParseInLocation(utils.FormatDateTime, endDateTime, time.Local)
 
@@ -2373,6 +2415,21 @@ func (this *CalendarController) MattersUpdate() {
 			}
 		}
 	}
+	//校验销售活动时间冲突
+	{
+		activityCount, err := roadshowService.CheckActivity(startDateTime, endDateTime, "1,2", sysUser.AdminId)
+		if err != nil {
+			br.Msg = "时间冲突检测失败!"
+			br.ErrMsg = "时间冲突检测失败-CheckCalendar!Err:" + err.Error()
+			return
+		}
+		if activityCount > 0 {
+			br.Msg = "当前时间已被占用!"
+			br.ErrMsg = "时间冲突检测失败-CheckCalendarActivitySellerrCount!"
+			br.IsSendEmail = false
+			return
+		}
+	}
 
 	whereParams := make(map[string]interface{})
 

+ 18 - 0
services/roadshow/calendar_check.go

@@ -116,3 +116,21 @@ func CheckActivity(startDateTime, endDateTime, status string, sellerId int) (cal
 	}
 	return
 }
+
+func CheckResearcherBySysSserId(startDateTime, endDateTime, status string, sellerId int) (calendarCount int, err error) {
+
+	var researcherCondition string
+	var researcherMatterPars []interface{}
+
+	researcherCondition += " AND b.sys_user_id = ? "
+	researcherMatterPars = append(researcherMatterPars, sellerId)
+
+	researcherCondition += " AND a.status IN (" + status + ") "
+
+	researcherCondition += ` AND ? <=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') `
+	researcherMatterPars = append(researcherMatterPars, startDateTime)
+	researcherMatterPars = append(researcherMatterPars, endDateTime)
+	calendarCount, err = roadshow.CheckCalendarSellerCount(researcherCondition, researcherMatterPars)
+	return
+}