Browse Source

报名活动优化

xingzai 3 years ago
parent
commit
f205a7eefb
2 changed files with 80 additions and 74 deletions
  1. 68 64
      controllers/activity.go
  2. 12 10
      models/activity.go

+ 68 - 64
controllers/activity.go

@@ -80,7 +80,7 @@ func (this *ActivityCoAntroller) ActivityList() {
 
 	keyWord := this.GetString("KeyWord")
 	activeState := this.GetString("ActiveState")
-	if activeState != "2" && activeState != "3" {
+	if activeState == "" {
 		activeState = "1"
 	}
 	if isShowJurisdiction != 1 {
@@ -121,40 +121,41 @@ func (this *ActivityCoAntroller) ActivityList() {
 	if len(chartPermissionIds) > 0 {
 		condition += ` AND art.chart_permission_id  IN (` + chartPermissionIds + `)`
 	}
-	condition += ` AND art.publish_status = 1 `
+
+	condition += ` AND art.publish_status = 1 AND art.active_state  IN (` + activeState + `)`
 	//1专家电话会、2分析师电话会、3公司调研电话会、4公司线下调研、5专家线下沙龙、6分析师线下沙龙
-	resultTimeNow := time.Now().Format("2006-01-02 15:04:05")
-	resultTime30 := time.Now().Add(+time.Minute * 30).Format("2006-01-02 15:04:05")
-	resultTime_30 := time.Now().Add(-time.Minute * 30).Format("2006-01-02 15:04:05")
-	resultTime60 := time.Now().Add(+time.Minute * 60).Format("2006-01-02 15:04:05")
-	resultTime_60 := time.Now().Add(-time.Minute * 60).Format("2006-01-02 15:04:05")
-	if activeState == "1" {
-		if len(activityTypeIds) > 0 {
-			condition += ` AND art.activity_type_id   IN (` + activityTypeIds + `)`
-		}
-		condition += ` AND art.activity_time > ` + "'" + resultTimeNow + "'"
-	} else if activeState == "2" {
-		condition += ` AND art.activity_time > ` + "'" + resultTimeNow + "'"
-		if len(activityTypeIds) > 0 {
-			condition += ` AND art.activity_type_id  IN (` + activityTypeIds + `)`
-			condition += ` AND art.activity_time < ` + "'" + resultTime30 + "'"
-		} else {
-			var sqlOr string
-			sqlOr = condition
-			condition += ` AND (art.activity_type_id IN ( 1, 2, 3 ) AND  art.activity_time < ` + "'" + resultTime30 + "'" + ")"
-			condition += ` OR(art.activity_type_id IN ( 4, 5, 6 ) AND  art.activity_time < ` + "'" + resultTime60 + "'" + sqlOr + ")"
-		}
-	} else {
-		if len(activityTypeIds) > 0 {
-			condition += ` AND art.activity_type_id  IN (` + activityTypeIds + `)`
-			condition += ` AND art.activity_time > ` + "'" + resultTime_30 + "'"
-		} else {
-			var sqlOr string
-			sqlOr = condition
-			condition += ` AND (art.activity_type_id IN ( 1, 2, 3 ) AND  art.activity_time <` + "'" + resultTime_30 + "'" + ")"
-			condition += ` OR(art.activity_type_id IN ( 4, 5, 6 ) AND  art.activity_time < ` + "'" + resultTime_60 + "'" + sqlOr + ")"
-		}
-	}
+	//resultTimeNow := time.Now().Format("2006-01-02 15:04:05")
+	//resultTime30 := time.Now().Add(+time.Minute * 30).Format("2006-01-02 15:04:05")
+	//resultTime_30 := time.Now().Add(-time.Minute * 30).Format("2006-01-02 15:04:05")
+	//resultTime60 := time.Now().Add(+time.Minute * 60).Format("2006-01-02 15:04:05")
+	//resultTime_60 := time.Now().Add(-time.Minute * 60).Format("2006-01-02 15:04:05")
+	//if activeState == "1" {
+	//	if len(activityTypeIds) > 0 {
+	//		condition += ` AND art.activity_type_id   IN (` + activityTypeIds + `)`
+	//	}
+	//	condition += ` AND art.activity_time > ` + "'" + resultTimeNow + "'"
+	//} else if activeState == "2" {
+	//	condition += ` AND art.activity_time > ` + "'" + resultTimeNow + "'"
+	//	if len(activityTypeIds) > 0 {
+	//		condition += ` AND art.activity_type_id  IN (` + activityTypeIds + `)`
+	//		condition += ` AND art.activity_time < ` + "'" + resultTime30 + "'"
+	//	} else {
+	//		var sqlOr string
+	//		sqlOr = condition
+	//		condition += ` AND (art.activity_type_id IN ( 1, 2, 3 ) AND  art.activity_time < ` + "'" + resultTime30 + "'" + ")"
+	//		condition += ` OR(art.activity_type_id IN ( 4, 5, 6 ) AND  art.activity_time < ` + "'" + resultTime60 + "'" + sqlOr + ")"
+	//	}
+	//} else {
+	//	if len(activityTypeIds) > 0 {
+	//		condition += ` AND art.activity_type_id  IN (` + activityTypeIds + `)`
+	//		condition += ` AND art.activity_time > ` + "'" + resultTime_30 + "'"
+	//	} else {
+	//		var sqlOr string
+	//		sqlOr = condition
+	//		condition += ` AND (art.activity_type_id IN ( 1, 2, 3 ) AND  art.activity_time <` + "'" + resultTime_30 + "'" + ")"
+	//		condition += ` OR(art.activity_type_id IN ( 4, 5, 6 ) AND  art.activity_time < ` + "'" + resultTime_60 + "'" + sqlOr + ")"
+	//	}
+	//}
 	total, err := models.GetActivityCount(condition, pars)
 	if err != nil {
 		br.Msg = "获取失败"
@@ -166,30 +167,30 @@ func (this *ActivityCoAntroller) ActivityList() {
 	}
 	//condition += ` ORDER BY art.activity_time DESC `
 	list, errList := models.GetActivityListAll(condition, pars, uid, startSize, pageSize)
-	srt30min := "1,2,3"
-	srt60min := "4,5,6"
-	for k, v := range list {
-		if strings.Contains(srt30min, strconv.Itoa(v.ActivityTypeId)) {
-			resultTime := utils.StrTimeToTime(v.ActivityTime) //时间字符串格式转时间格式
-			if resultTime.After(time.Now()) {
-				list[k].ActiveState = "1"
-			} else if time.Now().After(resultTime) && resultTime.After(time.Now().Add(+time.Minute*30)) {
-				list[k].ActiveState = "2"
-			} else {
-				list[k].ActiveState = "3"
-			}
-		}
-		if strings.Contains(srt60min, strconv.Itoa(v.ActivityTypeId)) {
-			resultTime := utils.StrTimeToTime(v.ActivityTime) //时间字符串格式转时间格式
-			if resultTime.After(time.Now()) {
-				list[k].ActiveState = "1"
-			} else if time.Now().After(resultTime) && resultTime.After(time.Now().Add(+time.Minute*60)) {
-				list[k].ActiveState = "2"
-			} else {
-				list[k].ActiveState = "3"
-			}
-		}
-	}
+	//srt30min := "1,2,3"
+	//srt60min := "4,5,6"
+	//for k, v := range list {
+	//	if strings.Contains(srt30min, strconv.Itoa(v.ActivityTypeId)) {
+	//		resultTime := utils.StrTimeToTime(v.ActivityTime) //时间字符串格式转时间格式
+	//		if resultTime.After(time.Now()) {
+	//			list[k].ActiveState = "1"
+	//		} else if time.Now().After(resultTime) && resultTime.After(time.Now().Add(+time.Minute*30)) {
+	//			list[k].ActiveState = "2"
+	//		} else {
+	//			list[k].ActiveState = "3"
+	//		}
+	//	}
+	//	if strings.Contains(srt60min, strconv.Itoa(v.ActivityTypeId)) {
+	//		resultTime := utils.StrTimeToTime(v.ActivityTime) //时间字符串格式转时间格式
+	//		if resultTime.After(time.Now()) {
+	//			list[k].ActiveState = "1"
+	//		} else if time.Now().After(resultTime) && resultTime.After(time.Now().Add(+time.Minute*60)) {
+	//			list[k].ActiveState = "2"
+	//		} else {
+	//			list[k].ActiveState = "3"
+	//		}
+	//	}
+	//}
 	if errList != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + errList.Error()
@@ -353,8 +354,6 @@ func (this *ActivityCoAntroller) SignupAdd() {
 	//	signupStatus = "Success"
 	//}
 	signupStatus = "Success"
-	fmt.Println(signupStatus)
-
 	activityInfo, errInfo := models.GetAddActivityInfoById(activityId)
 	if activityInfo == nil {
 		br.Msg = "操作失败"
@@ -369,12 +368,12 @@ func (this *ActivityCoAntroller) SignupAdd() {
 	resultTime := utils.StrTimeToTime(activityInfo.ActivityTime) //时间字符串格式转时间格式
 	if time.Now().After(resultTime.Add(-time.Minute * 60)) {
 		signupStatus = "Overtime"
-		return
 	}
-	total, err := models.GetActivitySignupCount(uid, activityId)
-	if err != nil {
+	total, errtotal := models.GetActivitySignupCount(uid, activityId)
+	fmt.Println(total)
+	if errtotal != nil {
 		br.Msg = "获取失败"
-		br.ErrMsg = "获取失败,Err:" + err.Error()
+		br.ErrMsg = "获取失败,Err:" + errtotal.Error()
 		return
 	}
 	if total > 0 {
@@ -515,6 +514,7 @@ func (this *ActivityCoAntroller) GetUserSearchContent() {
 		br.ErrMsg = "获取信息失败,Err:" + err.Error()
 		return
 	}
+	isShowJurisdiction, _ := this.GetInt("IsShowJurisdiction")
 	chartPermissionidsSlice := strings.Split(detail.ChartPermissionids, ",")
 	activityTypeidsSlice := strings.Split(detail.ActivityTypeids, ",")
 	activeStateSlice := strings.Split(detail.ActiveState, ",") //"活动进行状态 未开始:1、进行中2、已结束3"`
@@ -550,6 +550,10 @@ func (this *ActivityCoAntroller) GetUserSearchContent() {
 	if detail.IsShowJurisdiction == 1 {
 		resp.IsShowJurisdiction = true
 	}
+
+	if isShowJurisdiction == 1 {
+		resp.IsShowJurisdiction = true
+	}
 	activeStateList := []models.ActivityStaus{models.ActivityStaus{Id: 1, StatusName: "未开始"}, models.ActivityStaus{Id: 2, StatusName: "进行中"}, models.ActivityStaus{Id: 3, StatusName: "已结束"}}
 	for _, v := range activeStateSlice {
 		for k2, v2 := range activeStateList {

+ 12 - 10
models/activity.go

@@ -97,9 +97,9 @@ func GetAddActivityInfoById(ActivityId int) (item *ActivityDetail, err error) {
 //通过纪要ID获取活动详情
 func GetAddActivityInfoByIdShow(uid, ActivityId int) (item *ActivityDetail, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT *,( SELECT COUNT( 1 ) FROM cygx_activity_signup AS s WHERE s.activity_id = a.activity_id AND s.user_id = ? ) AS is_signup,
-			( SELECT COUNT( DISTINCT user_id ) FROM cygx_activity_signup AS s WHERE s.activity_id = a.activity_id ) AS signup_num,
-			( SELECT COUNT( 1 ) FROM cygx_activity_meeting_reminder AS m WHERE m.activity_id = a.activity_id AND m.user_id = ? ) AS is_cancel_meeting_reminder
+	sql := `SELECT *,( SELECT COUNT( 1 ) FROM cygx_activity_signup AS s WHERE s.activity_id = a.activity_id AND s.user_id = ?   AND s.is_cancel = 0) AS is_signup,
+			( SELECT COUNT( DISTINCT user_id ) FROM cygx_activity_signup AS s WHERE s.activity_id = a.activity_id  AND s.is_cancel = 0 ) AS signup_num,
+			( SELECT COUNT( 1 ) FROM cygx_activity_meeting_reminder AS m WHERE m.activity_id = a.activity_id AND m.user_id = ?  AND m.is_cancel = 0) AS is_cancel_meeting_reminder
 			FROM cygx_activity AS a  WHERE activity_id=? AND publish_status = 1 `
 	err = o.Raw(sql, uid, uid, ActivityId).QueryRow(&item)
 	return
@@ -135,14 +135,15 @@ type GetCygxActivityListRep struct {
 func GetActivityListAll(condition string, pars []interface{}, uid, startSize, pageSize int) (items []*CygxActivityList, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT * ,
-		( SELECT COUNT( 1 ) FROM cygx_activity_signup AS s WHERE s.activity_id = art.activity_id AND s.user_id = ? ) AS is_signup,
-		( SELECT COUNT( DISTINCT user_id ) FROM cygx_activity_signup AS s WHERE s.activity_id = art.activity_id ) AS signup_num
+		( SELECT COUNT( 1 ) FROM cygx_activity_signup AS s WHERE s.activity_id = art.activity_id AND s.user_id = ?   AND s.is_cancel = 0) AS is_signup,
+		( SELECT COUNT( DISTINCT user_id ) FROM cygx_activity_signup AS s WHERE s.activity_id = art.activity_id   AND s.is_cancel = 0) AS signup_num,
+		( SELECT COUNT( 1 ) FROM cygx_activity_meeting_reminder AS m WHERE m.activity_id = art.activity_id AND m.user_id = ?  AND m.is_cancel = 0 ) AS is_cancel_meeting_reminder
 		FROM cygx_activity as art WHERE 1= 1 `
 	if condition != "" {
 		sql += condition
 	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, uid, startSize, pageSize).QueryRows(&items)
+	_, err = o.Raw(sql, pars, uid, uid, startSize, pageSize).QueryRows(&items)
 	return
 }
 
@@ -161,7 +162,7 @@ func GetActivityCount(condition string, pars []interface{}) (count int, err erro
 func GetScheduleCount(condition string, uid int) (count int, err error) {
 	o := orm.NewOrm()
 	sqlCount := ` SELECT COUNT( 1 ) AS count  FROM cygx_activity AS art  INNER JOIN cygx_activity_signup as s ON s.activity_id = art.activity_id
-					WHERE  	s.user_id = ? `
+					WHERE  	s.user_id = ?  AND s.is_cancel = 0 `
 	if condition != "" {
 		sqlCount += condition
 	}
@@ -172,8 +173,9 @@ func GetScheduleCount(condition string, uid int) (count int, err error) {
 //我的日程列表
 func GetScheduleList(condition string, pars []interface{}, uid, startSize, pageSize int) (items []*CygxActivityList, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT *,( SELECT COUNT( 1 ) FROM cygx_activity_signup AS s WHERE s.activity_id = art.activity_id AND s.user_id = ? ) AS is_signup,
-                     ( SELECT COUNT( DISTINCT user_id ) FROM cygx_activity_signup AS s WHERE s.activity_id = art.activity_id AND  s.is_cancel = 0  AND s.fail_type = 0 ) AS signup_num 
+	sql := `SELECT *,( SELECT COUNT( 1 ) FROM cygx_activity_signup AS s WHERE s.activity_id = art.activity_id AND s.user_id = ? AND s.is_cancel = 0 ) AS is_signup,
+                     ( SELECT COUNT( DISTINCT user_id ) FROM cygx_activity_signup AS s WHERE s.activity_id = art.activity_id AND  s.is_cancel = 0  AND s.fail_type = 0 ) AS signup_num ,
+					 ( SELECT COUNT( 1 ) FROM cygx_activity_meeting_reminder AS m WHERE m.activity_id = art.activity_id AND m.user_id = ? ) AS is_cancel_meeting_reminder
             FROM cygx_activity AS art
 	        INNER JOIN cygx_activity_signup AS s ON s.activity_id = art.activity_id 
             WHERE s.user_id = ? `
@@ -181,7 +183,7 @@ func GetScheduleList(condition string, pars []interface{}, uid, startSize, pageS
 		sql += condition
 	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, uid, uid, startSize, pageSize).QueryRows(&items)
+	_, err = o.Raw(sql, pars, uid, uid, uid, startSize, pageSize).QueryRows(&items)
 	return
 }