WH01243 2 anni fa
parent
commit
8bcf0b6a86

+ 1 - 1
api/internal/logic/useralllotterychecklogic.go

@@ -43,6 +43,6 @@ func (l *UserAllLotteryCheckLogic) UserAllLotteryCheck(req *types.Request) (*typ
 	}
 	}
 	result.ErrorCode = resp.Code
 	result.ErrorCode = resp.Code
 	result.ErrorMsg = resp.Message
 	result.ErrorMsg = resp.Message
-	result.Data = resp.RoductCode
+	result.Data = resp.ProductCode
 	return result, nil
 	return result, nil
 }
 }

+ 2 - 2
entity/activity.go

@@ -73,8 +73,8 @@ type LotteryJson struct {
 	UseProductList   []ProductJson `xorm:"useProductList" form:"useProductList" json:"useProductList"`       //使用商品列表
 	UseProductList   []ProductJson `xorm:"useProductList" form:"useProductList" json:"useProductList"`       //使用商品列表
 	StockNumber      int64         `xorm:"stockNumber" form:"stockNumber" json:"stockNumber"`                //库存
 	StockNumber      int64         `xorm:"stockNumber" form:"stockNumber" json:"stockNumber"`                //库存
 	ReceiveNumber    int64         `xorm:"receiveNumber" form:"receiveNumber" json:"receiveNumber"`          //领取数量
 	ReceiveNumber    int64         `xorm:"receiveNumber" form:"receiveNumber" json:"receiveNumber"`          //领取数量
-	BeginDate        string        `xorm:"beginDate" form:"beginDate" json:"beginDate"`                      //有效期起
-	EndDate          string        `xorm:"endDate" form:"endDate" json:"endDate"`                            //有效期止
+	BeginDate        time.Time     `xorm:"beginDate" form:"beginDate" json:"beginDate"`                      //有效期起
+	EndDate          time.Time     `xorm:"endDate" form:"endDate" json:"endDate"`                            //有效期止
 	Full             int64         `xorm:"full" form:"full" json:"full"`                                     //满多少
 	Full             int64         `xorm:"full" form:"full" json:"full"`                                     //满多少
 	Reduce           int64         `xorm:"reduce" form:"reduce" json:"reduce"`                               //减多少
 	Reduce           int64         `xorm:"reduce" form:"reduce" json:"reduce"`                               //减多少
 	PrizeType        int64         `xorm:"prizeType" form:"prizeType" json:"prizeType"`                      //0未使用1已使用2已过期3待使用
 	PrizeType        int64         `xorm:"prizeType" form:"prizeType" json:"prizeType"`                      //0未使用1已使用2已过期3待使用

+ 2 - 2
rpc/internal/logic/activitylotterylogic.go

@@ -56,8 +56,8 @@ func (l *ActivityLotteryLogic) ActivityLottery(in *activity.Request) (*activity.
 		userLottery.Instructions = value.Instructions
 		userLottery.Instructions = value.Instructions
 		userLottery.StockNumber = value.StockNumber
 		userLottery.StockNumber = value.StockNumber
 		userLottery.ReceiveNumber = value.ReceiveNumber
 		userLottery.ReceiveNumber = value.ReceiveNumber
-		userLottery.LotteryBeginDate = value.BeginDate
-		userLottery.LotteryendDate = value.EndDate
+		userLottery.LotteryBeginDate = value.BeginDate.Format("2006-01-02 15:04:05")
+		userLottery.LotteryendDate = value.EndDate.Format("2006-01-02 15:04:05")
 		userLottery.Full = value.Full
 		userLottery.Full = value.Full
 		userLottery.Reduce = value.Reduce
 		userLottery.Reduce = value.Reduce
 		userLottery.Remark = value.Remark
 		userLottery.Remark = value.Remark

+ 2 - 2
rpc/internal/logic/getallactivitylogic.go

@@ -83,8 +83,8 @@ func (l *GetAllActivityLogic) GetAllActivity(in *activity.Request) (*activity.Ac
 				if value.UserCount > 0 {
 				if value.UserCount > 0 {
 					lottery.IsUser = true
 					lottery.IsUser = true
 				}
 				}
-				lottery.LotteryBeginDate = value.BeginDate
-				lottery.LotteryendDate = value.EndDate
+				lottery.LotteryBeginDate = value.BeginDate.Format("2006-01-02 15:04:05")
+				lottery.LotteryendDate = value.EndDate.Format("2006-01-02 15:04:05")
 			} else {
 			} else {
 				//其他奖券领取限制
 				//其他奖券领取限制
 				/*if timeBool {
 				/*if timeBool {

+ 3 - 18
rpc/internal/logic/useralllotterylogic.go

@@ -46,10 +46,9 @@ func (l *UserAllLotteryLogic) UserAllLottery(in *activity.AllLotteryReq) (*activ
 				lottery.ActivityType = value.ActivityType
 				lottery.ActivityType = value.ActivityType
 				//IsReceive  是否可以领取true可以领取false不可领取
 				//IsReceive  是否可以领取true可以领取false不可领取
 				//IsUser  是否使用 true 使用 false未使用
 				//IsUser  是否使用 true 使用 false未使用
-				if activityValue.ActivityType < 2 {
-					lottery.LotteryBeginDate = value.BeginDate
-					lottery.LotteryendDate = value.EndDate
-				} else {
+				lottery.LotteryBeginDate = value.BeginDate.Format("2006-01-02 15:04:05")
+				lottery.LotteryendDate = value.EndDate.Format("2006-01-02 15:04:05")
+				if activityValue.ActivityType >= 2 {
 					lottery.PromotionalPrice = value.PromotionalPrice
 					lottery.PromotionalPrice = value.PromotionalPrice
 					lottery.GiftCode = value.GiftCode
 					lottery.GiftCode = value.GiftCode
 				}
 				}
@@ -73,20 +72,6 @@ func (l *UserAllLotteryLogic) UserAllLottery(in *activity.AllLotteryReq) (*activ
 			activityEntity.ReceivingLocation = activityValue.ReceivingLocation
 			activityEntity.ReceivingLocation = activityValue.ReceivingLocation
 			activityEntity.ActivityId = activityValue.Id
 			activityEntity.ActivityId = activityValue.Id
 			activityEntity.ActivityTypeInt = common.Int64All(activityValue.ActivityType)
 			activityEntity.ActivityTypeInt = common.Int64All(activityValue.ActivityType)
-			/*switch activityValue.ActivityType {
-			case 0:
-				activityEntity.ActivityType = "满减券"
-			case 1:
-				activityEntity.ActivityType = "满折券"
-			case 2:
-				activityEntity.ActivityType = "满赠"
-			case 3:
-				activityEntity.ActivityType = "促销"
-			case 4:
-				activityEntity.ActivityType = "限时折扣"
-			case 5:
-				activityEntity.ActivityType = "限时减免"
-			}*/
 			if activityValue.PreheatingTime == "" {
 			if activityValue.PreheatingTime == "" {
 				activityEntity.PreheatingTime = 0
 				activityEntity.PreheatingTime = 0
 			} else {
 			} else {

+ 37 - 22
service/activityService.go

@@ -3,6 +3,7 @@ package service
 import (
 import (
 	"app.yhyue.com/moapp/jyMarketing/entity"
 	"app.yhyue.com/moapp/jyMarketing/entity"
 	"app.yhyue.com/moapp/jyMarketing/rpc/activity"
 	"app.yhyue.com/moapp/jyMarketing/rpc/activity"
+	C "app.yhyue.com/moapp/jyMarketing/rpc/init"
 	"app.yhyue.com/moapp/jyMarketing/util"
 	"app.yhyue.com/moapp/jyMarketing/util"
 	"app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/common"
 	"fmt"
 	"fmt"
@@ -173,11 +174,10 @@ func (service *ActivityService) ActivityLottery(in *activity.Request) (int64, st
 	activityJson := entity.Activity{}
 	activityJson := entity.Activity{}
 	if in.ActivityId == int64(0) {
 	if in.ActivityId == int64(0) {
 		var activityList = []entity.Activity{}
 		var activityList = []entity.Activity{}
-		nowStr := time.Now().Format("2006-01-02 15:04:05")
 		err = orm.Table("activity").Alias("a").Select(" DISTINCT a.*").
 		err = orm.Table("activity").Alias("a").Select(" DISTINCT a.*").
 			Join("left", "discount d", "d.activityId = a.id").
 			Join("left", "discount d", "d.activityId = a.id").
 			Join("left", "product p", "FIND_IN_SET(p.productCode,d.useProductList)").
 			Join("left", "product p", "FIND_IN_SET(p.productCode,d.useProductList)").
-			Where("a.activityType < 2 and a.state=1  and if ( (a.preheatingTime IS NULL or a.preheatingTime='')  , a.beginDate<? ,a.preheatingTime<?)  and a.endDate>=? and p.productCode=?", nowStr, nowStr, nowStr, in.ProductCode).Find(&activityList)
+			Where("a.activityType < 2 and a.state=1  and if ( (a.preheatingTime IS NULL or a.preheatingTime='')  , a.beginDate<now() ,a.preheatingTime<now())  and a.endDate>=now() and p.productCode=?", in.ProductCode).Find(&activityList)
 		var lotteryJsonList []entity.LotteryJson
 		var lotteryJsonList []entity.LotteryJson
 		if len(activityList) == 0 {
 		if len(activityList) == 0 {
 			return entity.ErrorCode, "当前时段没有活动可以参加", lotteryJsonList, entity.Activity{}
 			return entity.ErrorCode, "当前时段没有活动可以参加", lotteryJsonList, entity.Activity{}
@@ -249,9 +249,17 @@ func (service *ActivityService) UserLottery(data *activity.Request) (int64, stri
 	orm := entity.Engine
 	orm := entity.Engine
 	var err error
 	var err error
 	var userLotteryList []entity.UserPrizeJson
 	var userLotteryList []entity.UserPrizeJson
-	nowStr := time.Now().Format("2006-01-02 15:04:05")
 	switch data.Model {
 	switch data.Model {
 	case 1, 4:
 	case 1, 4:
+		isDistribution := false
+		entOrm := entity.EntEngine
+		powerList := []map[string]interface{}{}
+		if data.EntUserId != 0 {
+			err := entOrm.Table("entniche_power").Select("id").Where("ent_user_id=? and  status=1", data.EntUserId).Find(&powerList)
+			if len(powerList) > 0 || err != nil {
+				isDistribution = true
+			}
+		}
 		//查看可以使用的奖券(没有过期的)
 		//查看可以使用的奖券(没有过期的)
 		//满减满折查询
 		//满减满折查询
 		if data.UseProduct != "" {
 		if data.UseProduct != "" {
@@ -259,21 +267,26 @@ func (service *ActivityService) UserLottery(data *activity.Request) (int64, stri
 		}
 		}
 		condition := ""
 		condition := ""
 		if data.UserLottertId != 0 {
 		if data.UserLottertId != 0 {
-			condition = "( (up.prizeType=0 and up.beginDate<='" + nowStr + "' ) or up.id=" + fmt.Sprint(data.UserLottertId) + ") "
+			condition = "( (up.prizeType=0 and up.beginDate<=now() ) or up.id=" + fmt.Sprint(data.UserLottertId) + ") "
 		} else {
 		} else {
-			condition = " up.prizeType=0 and up.beginDate<='" + nowStr + "'"
+			condition = " up.prizeType=0 and up.beginDate<=now()"
+		}
+		distributionCondition := ""
+		if isDistribution {
+			distributionCondition = "  pr.productCode not in (" + C.C.NotAvailableCode + ")"
 		}
 		}
 		err = orm.Table("user_prize").Alias("up").Select(" DISTINCT a.id as activityId,  a.name as activityName,a.activityDesc,a.activityType,a.beginDate as activityBeginDate,a.endDate as activityEndDate , up.activityId, d.useProductList as  userProduct,up.*,p.instructions,p.remark,p.prizeType as activityType").
 		err = orm.Table("user_prize").Alias("up").Select(" DISTINCT a.id as activityId,  a.name as activityName,a.activityDesc,a.activityType,a.beginDate as activityBeginDate,a.endDate as activityEndDate , up.activityId, d.useProductList as  userProduct,up.*,p.instructions,p.remark,p.prizeType as activityType").
 			Join("left", "prize p", "up.prizeId=p.id").
 			Join("left", "prize p", "up.prizeId=p.id").
 			Join("left", "discount d", "up.lotteryId=d.lotteryId and  d.state=1").
 			Join("left", "discount d", "up.lotteryId=d.lotteryId and  d.state=1").
 			Join("left", "activity a ", "d.activityId=a.id").
 			Join("left", "activity a ", "d.activityId=a.id").
-			Where("up.userId=? and  up.appId=?  and  up.prizeId!=0 and  up.endDate>=? and FIND_IN_SET(?,d.useProductList)  and p.prizeType<2 and  up.prizeType=0", data.UserId, data.AppId, nowStr, data.ProductCode).
+			Join("left", "product pr ", "FIND_IN_SET(pr.productCode,d.useProductList)"+distributionCondition).
+			Where("up.userId=? and  up.appId=?  and  up.prizeId!=0 and  up.endDate>=now() and FIND_IN_SET(?,d.useProductList)  and p.prizeType<2 and  up.prizeType=0", data.UserId, data.AppId, data.ProductCode).
 			And(condition).
 			And(condition).
 			Desc("up.createTime").
 			Desc("up.createTime").
 			Find(&userLotteryList)
 			Find(&userLotteryList)
 		//其他查询
 		//其他查询
-		NoLotteryHandle(data.ProductCode, data.UserId, data.AppId, &userLotteryList)
-		LotteryWaitHandle(data.ProductCode, data.UserId, data.AppId, &userLotteryList)
+		NoLotteryHandle(data.ProductCode, data.UserId, data.AppId, &userLotteryList, isDistribution)
+		LotteryWaitHandle(data.ProductCode, data.UserId, data.AppId, &userLotteryList, isDistribution)
 	case 0:
 	case 0:
 		//查看名下所有奖券
 		//查看名下所有奖券
 		err = orm.Table("user_prize").Alias("up").Select("DISTINCT up.activityId, d.useProductList as  userProduct,up.*,p.instructions,p.remark,p.prizeType as activityType").
 		err = orm.Table("user_prize").Alias("up").Select("DISTINCT up.activityId, d.useProductList as  userProduct,up.*,p.instructions,p.remark,p.prizeType as activityType").
@@ -646,11 +659,10 @@ func (service *ActivityService) GiveInfo(in *activity.Request) (int64, string, [
 	orm := entity.Engine
 	orm := entity.Engine
 	isReceive := false
 	isReceive := false
 	//var err error
 	//var err error
-	nowStr := time.Now().Format("2006-01-02 15:04:05")
 	err := orm.Table("activity").Alias("a").Select(" DISTINCT a.*").
 	err := orm.Table("activity").Alias("a").Select(" DISTINCT a.*").
 		Join("left", "discount d", "d.activityId = a.id").
 		Join("left", "discount d", "d.activityId = a.id").
 		Join("left", "product p", "FIND_IN_SET(p.ProductCode,d.useProductList )").
 		Join("left", "product p", "FIND_IN_SET(p.ProductCode,d.useProductList )").
-		Where("a.activityType >= 2 and a.state=1  and  if ((a.preheatingTime IS NULL or a.preheatingTime='') , a.beginDate<? ,a.preheatingTime<?)  and a.endDate>=? and  (p.parentCode=? or p.productCode=? )", nowStr, nowStr, nowStr, in.UseProduct, in.UseProduct).Find(&activityList)
+		Where("a.activityType >= 2 and a.state=1  and  if ((a.preheatingTime IS NULL or a.preheatingTime='') , a.beginDate<now() ,a.preheatingTime<now())  and a.endDate>=now() and  (p.parentCode=? or p.productCode=? )", in.UseProduct, in.UseProduct).Find(&activityList)
 	if len(activityList) == 0 {
 	if len(activityList) == 0 {
 		logx.Info("用户下的奖券查询失败:", err)
 		logx.Info("用户下的奖券查询失败:", err)
 		return entity.SuccessCode, "不存在奖券信息", activityLists, isReceive
 		return entity.SuccessCode, "不存在奖券信息", activityLists, isReceive
@@ -703,11 +715,10 @@ func (service *ActivityService) GiveInfo(in *activity.Request) (int64, string, [
 func (service *ActivityService) GiveActivity(in *activity.Request) (int64, string, entity.Activity) {
 func (service *ActivityService) GiveActivity(in *activity.Request) (int64, string, entity.Activity) {
 	orm := entity.Engine
 	orm := entity.Engine
 	activityList := []entity.Activity{}
 	activityList := []entity.Activity{}
-	nowStr := time.Now().Format("2006-01-02 15:04:05")
 	err := orm.Table("activity").Alias("a").Select("  a.*,sum(stockNumber) as stockNumber").
 	err := orm.Table("activity").Alias("a").Select("  a.*,sum(stockNumber) as stockNumber").
 		Join("left", "discount d", "d.activityId = a.id").
 		Join("left", "discount d", "d.activityId = a.id").
 		Join("left", "product p", "FIND_IN_SET(p.ProductCode,d.useProductList )").
 		Join("left", "product p", "FIND_IN_SET(p.ProductCode,d.useProductList )").
-		Where("a.activityType > 2 and a.state=1  and  if ( (a.preheatingTime IS NULL or a.preheatingTime='') , a.beginDate<? ,a.preheatingTime<?)  and a.endDate>=? and  p.parentCode=?  ", nowStr, nowStr, nowStr, in.ProductCode).GroupBy("a.id").Find(&activityList)
+		Where("a.activityType > 2 and a.state=1  and  if ( (a.preheatingTime IS NULL or a.preheatingTime='') , a.beginDate<now() ,a.preheatingTime<now())  and a.endDate>=now() and  p.parentCode=?  ", in.ProductCode).GroupBy("a.id").Find(&activityList)
 	if len(activityList) == 0 {
 	if len(activityList) == 0 {
 		logx.Info("用户下的奖券查询失败:", err)
 		logx.Info("用户下的奖券查询失败:", err)
 		return entity.SuccessCode, "该时段没有限时活动", entity.Activity{}
 		return entity.SuccessCode, "该时段没有限时活动", entity.Activity{}
@@ -862,21 +873,23 @@ func activityPartakeHandle(id int64, userId string, limitQuantity, limitType, fi
 }
 }
 
 
 //无卷处理
 //无卷处理
-func NoLotteryHandle(productCode, userId, appId string, userPrice *[]entity.UserPrizeJson) {
-	productQuery := "and  1=1 "
+func NoLotteryHandle(productCode, userId, appId string, userPrice *[]entity.UserPrizeJson, isDistribution bool) {
+	productQuery := ""
 	if productCode != "" {
 	if productCode != "" {
-		productQuery = "and ( p.productCode='" + productCode + "' )"
+		productQuery += " and ( p.productCode='" + productCode + "' )"
+	}
+	if isDistribution {
+		productQuery += " and ( p.pr.parentCode not in (" + C.C.NotAvailableCode + "))"
 	}
 	}
 	orm := entity.Engine.NewSession()
 	orm := entity.Engine.NewSession()
 	//var err error
 	//var err error
 	//没有商品标识时处理
 	//没有商品标识时处理
 	// 判断活动是否为全部用户参加
 	// 判断活动是否为全部用户参加
-	nowStr := time.Now().Format("2006-01-02 15:04:05")
 	activityList := []entity.Activity{}
 	activityList := []entity.Activity{}
 	err := orm.Table("activity").Alias("a").Select(" DISTINCT a.*").
 	err := orm.Table("activity").Alias("a").Select(" DISTINCT a.*").
 		Join("left", "discount d", "d.activityId = a.id").
 		Join("left", "discount d", "d.activityId = a.id").
 		Join("left", "product p", "FIND_IN_SET(p.ProductCode,d.useProductList )").
 		Join("left", "product p", "FIND_IN_SET(p.ProductCode,d.useProductList )").
-		Where("a.activityType >= 2 and a.state=1  and  if ((a.preheatingTime IS NULL or a.preheatingTime='') , a.beginDate<? ,a.preheatingTime<?)  and a.endDate>=? "+productQuery, nowStr, nowStr, nowStr).
+		Where("a.activityType >= 2 and a.state=1  and  if ((a.preheatingTime IS NULL or a.preheatingTime='') , a.beginDate<now() ,a.preheatingTime<now())  and a.endDate>=now() " + productQuery).
 		Asc("a.id").Find(&activityList)
 		Asc("a.id").Find(&activityList)
 	if len(activityList) == 0 {
 	if len(activityList) == 0 {
 		return
 		return
@@ -912,21 +925,23 @@ func NoLotteryHandle(productCode, userId, appId string, userPrice *[]entity.User
 		}
 		}
 	}
 	}
 }
 }
-func LotteryWaitHandle(productCode, userId, appId string, userPrice *[]entity.UserPrizeJson) {
-	productQuery := "and  1=1 "
+func LotteryWaitHandle(productCode, userId, appId string, userPrice *[]entity.UserPrizeJson, isDistribution bool) {
+	productQuery := " "
 	if productCode != "" {
 	if productCode != "" {
-		productQuery = "and ( p.productCode='" + productCode + "' )"
+		productQuery = " and ( p.productCode='" + productCode + "' )"
+	}
+	if isDistribution {
+		productQuery += "and ( p.parentCode not in (" + C.C.NotAvailableCode + "))"
 	}
 	}
 	orm := entity.Engine.NewSession()
 	orm := entity.Engine.NewSession()
 	//var err error
 	//var err error
 	//没有商品标识时处理
 	//没有商品标识时处理
 	// 判断活动是否为全部用户参加
 	// 判断活动是否为全部用户参加
-	nowStr := time.Now().Format("2006-01-02 15:04:05")
 	activityList := []entity.Activity{}
 	activityList := []entity.Activity{}
 	err := orm.Table("activity").Alias("a").Select(" DISTINCT a.*").
 	err := orm.Table("activity").Alias("a").Select(" DISTINCT a.*").
 		Join("left", "discount d", "d.activityId = a.id").
 		Join("left", "discount d", "d.activityId = a.id").
 		Join("left", "product p", "FIND_IN_SET(p.ProductCode,d.useProductList )").
 		Join("left", "product p", "FIND_IN_SET(p.ProductCode,d.useProductList )").
-		Where("a.activityType < 2 and a.state=1   and  a.preheatingTime is not null and  a.preheatingTime!=''  and  a.preheatingTime<? and   a.beginDate>?   "+productQuery, nowStr, nowStr).Asc("a.id").Find(&activityList)
+		Where("a.activityType < 2 and a.state=1   and  a.preheatingTime is not null and  a.preheatingTime!=''  and  a.preheatingTime<now() and   a.beginDate>now()   " + productQuery).Asc("a.id").Find(&activityList)
 	if len(activityList) == 0 {
 	if len(activityList) == 0 {
 		return
 		return
 	}
 	}

+ 63 - 50
service/activityServiceNew.go

@@ -22,12 +22,11 @@ func (service *ActivityServiceNew) GetAllActivity(in *activity.Request) (int64,
 	activityArr := []entity.Activity{}
 	activityArr := []entity.Activity{}
 	var err error
 	var err error
 	var activityList = []entity.Activity{}
 	var activityList = []entity.Activity{}
-	nowStr := time.Now().Format("2006-01-02 15:04:05")
 	//有券的活动获取
 	//有券的活动获取
 	err = orm.Table("activity").Alias("a").Select(" DISTINCT a.*").
 	err = orm.Table("activity").Alias("a").Select(" DISTINCT a.*").
 		Join("left", "discount d", "d.activityId = a.id").
 		Join("left", "discount d", "d.activityId = a.id").
 		Join("left", "product p", "FIND_IN_SET(p.productCode,d.useProductList)").
 		Join("left", "product p", "FIND_IN_SET(p.productCode,d.useProductList)").
-		Where(" a.state=1  and if ( (a.preheatingTime IS NULL or a.preheatingTime='' )  , a.beginDate<? ,a.preheatingTime<?)  and a.endDate>=? and p.productCode=?", nowStr, nowStr, nowStr, in.ProductCode).Find(&activityList)
+		Where(" a.state=1  and if ( (a.preheatingTime IS NULL or a.preheatingTime='' )  , a.beginDate<now() ,a.preheatingTime<now())  and a.endDate>=now() and p.productCode=?", in.ProductCode).Find(&activityList)
 	if len(activityList) == 0 {
 	if len(activityList) == 0 {
 		return entity.ErrorCode, "当前时段没有活动可以参加", []entity.Activity{}
 		return entity.ErrorCode, "当前时段没有活动可以参加", []entity.Activity{}
 	}
 	}
@@ -136,7 +135,7 @@ func (service *ActivityServiceNew) UserAllLottery(in *activity.AllLotteryReq) ma
 	}
 	}
 	//判断自己是否可以参加此活动
 	//判断自己是否可以参加此活动
 	for _, code := range strings.Split(C.C.NotAvailableCode, ",") {
 	for _, code := range strings.Split(C.C.NotAvailableCode, ",") {
-		if code == productCode {
+		if code == productCode && in.EntUserId != 0 {
 			//判断此人是否是授权的超级订阅或者大会员
 			//判断此人是否是授权的超级订阅或者大会员
 			entOrm := entity.EntEngine
 			entOrm := entity.EntEngine
 			powerList := []map[string]interface{}{}
 			powerList := []map[string]interface{}{}
@@ -171,50 +170,56 @@ func getAllActivity(productCode, userId, appId, userName, userPhone string, rece
 	activityArr := []entity.Activity{}
 	activityArr := []entity.Activity{}
 	var err error
 	var err error
 	var activityList = []entity.Activity{}
 	var activityList = []entity.Activity{}
-	nowStr := time.Now().Format("2006-01-02 15:04:05")
 	//有券的活动获取
 	//有券的活动获取
 	err = orm.Table("activity").Alias("a").Select(" DISTINCT a.*,GROUP_CONCAT(d.lotteryId) as lotteryIdArr").
 	err = orm.Table("activity").Alias("a").Select(" DISTINCT a.*,GROUP_CONCAT(d.lotteryId) as lotteryIdArr").
 		Join("left", "discount d", "d.activityId = a.id").
 		Join("left", "discount d", "d.activityId = a.id").
 		Join("left", "product p", "FIND_IN_SET(p.productCode,d.useProductList)").
 		Join("left", "product p", "FIND_IN_SET(p.productCode,d.useProductList)").
-		Where(" a.state=1  and if ( (a.preheatingTime IS NULL or a.preheatingTime='' )  , a.beginDate<? ,a.preheatingTime<?)  and a.endDate>=? and p.productCode=? ", nowStr, nowStr, nowStr, productCode).GroupBy("a.id").Find(&activityList)
+		Where(" a.state=1  and if ( (a.preheatingTime IS NULL or a.preheatingTime='' )  , a.beginDate<now() ,a.preheatingTime<now())  and a.endDate>=now() and p.productCode=? ", productCode).
+		GroupBy("a.id").
+		Find(&activityList)
 	if len(activityList) == 0 {
 	if len(activityList) == 0 {
 		return activityArr
 		return activityArr
 	}
 	}
+	//活动过期奖券有效查询
+	invalidActivityArr := []entity.Activity{}
+	err = orm.SQL("SELECT  a.*, GROUP_CONCAT(u.lotteryId) as lotteryIdArr  FROM "+
+		" user_prize u  LEFT JOIN activity a  on  u.activityId=a.id and  a.endDate<now() and  a.state=1   "+
+		"LEFT JOIN discount d  on  d.activityId=a.id and d.lotteryId=u.lotteryId  and d.state=1   "+
+		"where u.userId=  '"+userId+"' and  u.prizeId!=0  and  FIND_IN_SET(?,d.useProductList) and  u.prizeType=0 and  u.endDate>now()  GROUP BY a.id", productCode).Find(&invalidActivityArr)
+	logx.Info(err)
+	for _, v := range invalidActivityArr {
+		activityList = append(activityList, v)
+	}
 	for _, activityEntity := range activityList {
 	for _, activityEntity := range activityList {
 		activityId := activityEntity.Id
 		activityId := activityEntity.Id
 		activityType := activityEntity.ActivityType
 		activityType := activityEntity.ActivityType
 		receivingLocation := activityEntity.ReceivingLocation
 		receivingLocation := activityEntity.ReceivingLocation
 		logx.Info(receivingLocation)
 		logx.Info(receivingLocation)
-		//判断是否返回数据
-		if receivingLocation != 999 && userId != entity.FilterId {
-			if receivingLocation != receivingLocation {
-				continue
-			}
-		}
-		if _, ok := userGroupMap[activityEntity.UserGroupId]; !ok {
-			// 不存在
-			if !UserGroupingHandle(activityEntity.UserRange, userId, activityEntity.UserGroupId, activityEntity.BeginDate, activityEntity.EndDate, activityEntity.PreheatingTime) {
-				userGroupMap[activityEntity.UserGroupId] = false
-				continue
-			} else {
-				userGroupMap[activityEntity.UserGroupId] = true
+		//未过期的需要验证数据
+		if !util.ActivityTime(activityEntity.EndDate) {
+			//活动正在进行中
+			//判断是否返回数据
+			if receivingLocation != 999 && userId != entity.FilterId {
+				if receivingLocation != receivingLocation {
+					continue
+				}
 			}
 			}
-		} else {
-			if !userGroupMap[activityEntity.UserGroupId] {
-				continue
+			if activityEntity.UserRange == 3 {
+				activityEntity.UserGroupId = "new"
 			}
 			}
-		}
-
-		//查看活动是否可以参与
-		if util.ActivityTime(activityEntity.PreheatingTime) {
-			//查询是否可以领取
-			if activityEntity.LimitType != 0 {
-				if !activityPartakeHandle(activityEntity.Id, userId, activityEntity.LimitQuantity, activityEntity.LimitType, 2) {
+			if _, ok := userGroupMap[activityEntity.UserGroupId]; !ok {
+				// 不存在
+				if !UserGroupingHandle(activityEntity.UserRange, userId, activityEntity.UserGroupId, activityEntity.BeginDate, activityEntity.EndDate, activityEntity.PreheatingTime) {
+					userGroupMap[activityEntity.UserGroupId] = false
+					continue
+				} else {
+					userGroupMap[activityEntity.UserGroupId] = true
+				}
+			} else {
+				if !userGroupMap[activityEntity.UserGroupId] {
 					continue
 					continue
 				}
 				}
 			}
 			}
-		} else {
-			continue
 		}
 		}
 		// 判断活动是否为全部用户参加
 		// 判断活动是否为全部用户参加
 		// 1- 全部  2-分组用户
 		// 1- 全部  2-分组用户
@@ -224,22 +229,28 @@ func getAllActivity(productCode, userId, appId, userName, userPhone string, rece
 			if len(activityEntity.LotteryIdArr) == 0 {
 			if len(activityEntity.LotteryIdArr) == 0 {
 				continue
 				continue
 			}
 			}
-			//领劵处理
-			if len(strings.Split(activityEntity.LotteryIdArr, ",")) == 0 {
-				continue
-			}
-			for _, v := range strings.Split(activityEntity.LotteryIdArr, ",") {
-				if ok, userLottery := isDraw(userId, appId, common.Int64All(v), orm); ok {
-					drawHandle(userId, appId, userName, userPhone, common.Int64All(v), userLottery)
+			auserLotteryList := []entity.LotteryJson{}
+			if !util.ActivityTime(activityEntity.BeginDate) {
+				//领劵处理
+				if len(strings.Split(activityEntity.LotteryIdArr, ",")) == 0 {
+					continue
+				}
+				for _, v := range strings.Split(activityEntity.LotteryIdArr, ",") {
+					if ok, userLottery := isDraw(userId, appId, common.Int64All(v), orm); ok {
+						drawHandle(userId, appId, userName, userPhone, common.Int64All(v), userLottery)
+					}
 				}
 				}
+				auserLotteryList = availableLottery(orm, activityId, activityEntity.LotteryIdArr, userId, appId)
+				lotteryWaitHandle(orm, activityEntity.LotteryIdArr, userId, appId, activityId, &auserLotteryList)
+			} else {
+				auserLotteryList = availableLottery(orm, activityId, activityEntity.LotteryIdArr, userId, appId)
 			}
 			}
-			//查询处理
-			activityEntity.LotteryData = availableLottery(orm, activityId, activityEntity.LotteryIdArr, userId, appId)
+			activityEntity.LotteryData = auserLotteryList
 		} else {
 		} else {
 			//限时、赠品活动处理
 			//限时、赠品活动处理
 			//先查找产品参与的活动
 			//先查找产品参与的活动
 			var giftData = []entity.LotteryJson{}
 			var giftData = []entity.LotteryJson{}
-			err = orm.Table("activity").Alias("a").Select("DISTINCT  d.stockNumber,d.promotionalPrice,d.discount,d.reduce,g.giftCode,g.parentCode,g.name,g.time,g.timeType,d.id as lotteryId,a.activityType ").
+			err = orm.Table("activity").Alias("a").Select("DISTINCT  d.stockNumber,d.promotionalPrice,d.discount,d.reduce,g.giftCode,g.parentCode,g.name,g.time,g.timeType,d.id as lotteryId,a.activityType,a.beginDate,a.endDate").
 				Join("left", " discount d", "d.activityId = a.id ").
 				Join("left", " discount d", "d.activityId = a.id ").
 				Join("left", "gift g ", "g.giftCode=d.giftCode").
 				Join("left", "gift g ", "g.giftCode=d.giftCode").
 				Where("FIND_IN_SET(?,d.useProductList)  and a.id=?  and d.state=1", productCode, activityEntity.Id).
 				Where("FIND_IN_SET(?,d.useProductList)  and a.id=?  and d.state=1", productCode, activityEntity.Id).
@@ -250,8 +261,13 @@ func getAllActivity(productCode, userId, appId, userName, userPhone string, rece
 			}
 			}
 			activityEntity.LotteryData = giftData
 			activityEntity.LotteryData = giftData
 		}
 		}
-		activityArr = append(activityArr, activityEntity)
+		if len(activityEntity.LotteryData) > 0 {
+			activityArr = append(activityArr, activityEntity)
+		}
+
 	}
 	}
+	//查询一下有券活动已结束的数据
+
 	return activityArr
 	return activityArr
 }
 }
 
 
@@ -391,33 +407,29 @@ func drawHandle(userId, appId, userName, userPhone string, lotteryId int64, user
 func availableLottery(orm *xorm.Engine, activityId int64, lotteryIdArr, userId, appId string) []entity.LotteryJson {
 func availableLottery(orm *xorm.Engine, activityId int64, lotteryIdArr, userId, appId string) []entity.LotteryJson {
 	//查询奖券信息
 	//查询奖券信息
 	var userLotteryList []entity.LotteryJson
 	var userLotteryList []entity.LotteryJson
-	nowStr := time.Now().Format("2006-01-02 15:04:05")
 	var err error
 	var err error
 	err = orm.Table("user_prize").Alias("up").Select(" DISTINCT a.id as activityId,  a.name as activityName,a.activityDesc,a.activityType,a.beginDate as activityBeginDate,a.endDate as activityEndDate , up.activityId,up.id as userLotteryId,up.*,p.instructions,p.remark,p.prizeType as activityType").
 	err = orm.Table("user_prize").Alias("up").Select(" DISTINCT a.id as activityId,  a.name as activityName,a.activityDesc,a.activityType,a.beginDate as activityBeginDate,a.endDate as activityEndDate , up.activityId,up.id as userLotteryId,up.*,p.instructions,p.remark,p.prizeType as activityType").
 		Join("left", "prize p", "up.prizeId=p.id").
 		Join("left", "prize p", "up.prizeId=p.id").
-		Join("left", "discount d", "up.lotteryId=d.lotteryId and  d.state=1").
+		Join("left", "discount d", "up.lotteryId=d.lotteryId and  d.state=1 and    d.prizeId!=0").
 		Join("left", "activity a ", "d.activityId=a.id").
 		Join("left", "activity a ", "d.activityId=a.id").
-		Where("up.userId=?  and  up.appId=? and  up.activityId=?   and  up.endDate>=? and FIND_IN_SET(up.lotteryId,?) and p.prizeType<2 and  up.prizeType=0", userId, appId, activityId, nowStr, lotteryIdArr).
+		Where("up.userId=?  and  up.appId=? and  up.activityId=?     and  up.endDate>=now() and FIND_IN_SET(up.lotteryId,?) and p.prizeType<2 and  up.prizeType=0", userId, appId, activityId, lotteryIdArr).
 		Desc("up.createTime").
 		Desc("up.createTime").
 		Find(&userLotteryList)
 		Find(&userLotteryList)
 	if err != nil {
 	if err != nil {
 		logx.Info("查询奖券问题:", err)
 		logx.Info("查询奖券问题:", err)
 	}
 	}
-	//满折满减预热活动奖券查询
-	lotteryWaitHandle(lotteryIdArr, userId, appId, activityId, &userLotteryList)
 	return userLotteryList
 	return userLotteryList
 }
 }
 
 
 //满折满减预热活动奖券查询
 //满折满减预热活动奖券查询
-func lotteryWaitHandle(lotteryIdArr, userId, appId string, activityId int64, userPrice *[]entity.LotteryJson) {
-	orm := entity.Engine.NewSession()
+func lotteryWaitHandle(orm *xorm.Engine, lotteryIdArr, userId, appId string, activityId int64, userPrice *[]entity.LotteryJson) []entity.LotteryJson {
 	//var err error
 	//var err error
 	//没有商品标识时处理
 	//没有商品标识时处理
 	oneuserPrice := []entity.LotteryJson{}
 	oneuserPrice := []entity.LotteryJson{}
 	err := orm.Table("activity").Alias("a").Select("DISTINCT a.id as activityId, a.name as activityName,a.beginDate as activityBeginDate,a.endDate as activityEndDate ,d.stockNumber, a.activityType,a.beginDate ,a.endDate,l.full ,d.promotionalPrice,l.discount,l.reduce,a.preheatingTime,a.activityDesc,d.id as lotteryId").
 	err := orm.Table("activity").Alias("a").Select("DISTINCT a.id as activityId, a.name as activityName,a.beginDate as activityBeginDate,a.endDate as activityEndDate ,d.stockNumber, a.activityType,a.beginDate ,a.endDate,l.full ,d.promotionalPrice,l.discount,l.reduce,a.preheatingTime,a.activityDesc,d.id as lotteryId").
-		Join("left", " discount d", "d.activityId = a.id ").
+		Join("left", " discount d", "d.activityId = a.id and d.state=1 and     d.prizeId!=0").
 		Join("left", "lottery  l ", "l.id=d.lotteryId").
 		Join("left", "lottery  l ", "l.id=d.lotteryId").
-		Where(" a.id=? and  FIND_IN_SET(d.lotteryId,?) AND a.activityType < 2 AND a.appId = ?  and  a.state=1 and d.state=1 ", activityId, lotteryIdArr, appId).
+		Where(" a.id=? and  FIND_IN_SET(d.lotteryId,?) AND a.activityType < 2 AND a.appId = ?  and  a.state=1 and  a.preheatingTime is not null and  a.preheatingTime!=''  and  a.preheatingTime<now() and   a.beginDate>now() ", activityId, lotteryIdArr, appId).
 		Find(&oneuserPrice)
 		Find(&oneuserPrice)
 	//先查找产品参与的活动
 	//先查找产品参与的活动
 	if err != nil {
 	if err != nil {
@@ -426,4 +438,5 @@ func lotteryWaitHandle(lotteryIdArr, userId, appId string, activityId int64, use
 	for _, prizeJson := range oneuserPrice {
 	for _, prizeJson := range oneuserPrice {
 		*userPrice = append(*userPrice, prizeJson)
 		*userPrice = append(*userPrice, prizeJson)
 	}
 	}
+	return nil
 }
 }