Browse Source

wip:订单判重

wangshan 3 months ago
parent
commit
7393456c7d
1 changed files with 10 additions and 2 deletions
  1. 10 2
      handler/activity/lotteryDrawTask.go

+ 10 - 2
handler/activity/lotteryDrawTask.go

@@ -65,7 +65,7 @@ func LotteryDrawTask(msg *model.Message) {
 		return
 	}
 	//任务信息
-	taskInfos := db.Mysql.SelectBySql(fmt.Sprintf("SELECT lti.*,ai.start_time,ai.end_time,ai.name AS activity_name FROM %s lti LEFT JOIN %s ai ON lti.active_id = ai.id  WHERE lti.active_id  = ? AND  lti.id = ? AND ai.end_time >= NOW() ORDER BY lti.create_date  DESC", tableTaskInfo, tableActivityInfo), msgBody.ActiveId, msgBody.TaskInfoId)
+	taskInfos := db.Mysql.SelectBySql(fmt.Sprintf("SELECT lti.*,ai.start_time,ai.end_time,ai.name AS activity_name FROM %s lti LEFT JOIN %s ai ON lti.active_id = ai.id  WHERE lti.active_id  = ? AND  lti.id = ? AND ai.start_time < NOW() AND ai.end_time >= NOW() ORDER BY lti.create_date  DESC", tableTaskInfo, tableActivityInfo), msgBody.ActiveId, msgBody.TaskInfoId)
 	if taskInfos == nil || len(*taskInfos) == 0 {
 		logger.Info(fmt.Sprintf("没有当前需要完成的任务信息:%v", msgBody))
 		return
@@ -104,10 +104,18 @@ func LotteryDrawTask(msg *model.Message) {
 	}
 	//当前周期内 是否已完成任务
 	if taskInfo.CycleNum > 0 {
-		if count := db.Mysql.CountBySql(fmt.Sprintf(`SELECT COUNT(ltu.id) FROM  %s ltu  WHERE  ltu.active_id  = ? AND  ltu.task_id = ? AND  ltu.state  = 0 AND  ltu.create_date < ? AND ltu.create_date  > ? `, tableTaskUser), taskInfo.ActiveId, taskInfo.Id, timeRange.EndTime.Format(date.Date_Full_Layout), timeRange.StartTime.Format(date.Date_Full_Layout)); taskInfo.CycleNum <= int(count) {
+		count := db.Mysql.CountBySql(fmt.Sprintf(`SELECT COUNT(ltu.id) FROM  %s ltu  WHERE  ltu.active_id  = ? AND  ltu.task_id = ? AND  ltu.create_date < ? AND ltu.create_date  > ? `, tableTaskUser), taskInfo.ActiveId, taskInfo.Id, timeRange.EndTime.Format(date.Date_Full_Layout), timeRange.StartTime.Format(date.Date_Full_Layout))
+		if taskInfo.CycleNum <= int(count) {
 			logger.Info(fmt.Sprintf("用户:%s ,此任务:%s ,在 %s 已完成", msgBody.Phone, taskInfo.Name, timeRange.StartTime.Format(date.Date_Short_Layout)))
 			return
 		}
+	} else if msgBody.OrderCode != "" {
+		count := db.Mysql.CountBySql(fmt.Sprintf(`SELECT  COUNT(ltu.id) FROM  %s ltu  WHERE  ltu.active_id  = ? AND ltu.position_id  = ? AND  ltu.order_code  = ?`, tableTaskUser), taskInfo.ActiveId, msgBody.PositionId, msgBody.OrderCode)
+		//TODO 判重  担心订单有更新
+		if count > 0 {
+			logger.Info(fmt.Sprintf("用户:%s ,此订单:%s ,在 %s 已新增抽奖机会", msgBody.Phone, msgBody.OrderCode, timeRange.StartTime.Format(date.Date_Short_Layout)))
+			return
+		}
 	}
 	//二次验证
 	switch taskInfo.Id {