Ver Fonte

no message

xingzai há 1 ano atrás
pai
commit
62440d8019
2 ficheiros alterados com 74 adições e 7 exclusões
  1. 72 5
      services/activity_points.go
  2. 2 2
      services/task.go

+ 72 - 5
services/activity_points.go

@@ -439,8 +439,8 @@ func YanXuanActivityPointsBillActivityPublishAndCancelReduce(log models.YanXuanA
 	if activityPointsSetDetail == nil {
 		return
 	}
-	//if activityPointsSetDetail.CompanyPointsNum == 0 && activityPointsSetDetail.PointsType == 2 {
-	if activityPointsSetDetail.CompanyPointsNum == 0 {
+	if activityPointsSetDetail.CompanyPointsNum == 0 && activityPointsSetDetail.PointsType == 2 {
+		//if activityPointsSetDetail.CompanyPointsNum == 0 {
 		return // 如果不是办会人扣点,且对用户是到会扣点的这种形式,那么就不做任何处理
 	}
 
@@ -454,7 +454,7 @@ func YanXuanActivityPointsBillActivityPublishAndCancelReduce(log models.YanXuanA
 	var items []*models.CygxActivityPointsBill
 
 	var itemCompanys []*models.CygxActivityPointsCompany
-
+	mapCompanyPoints := make(map[int]float64) //一组公司的剩余点数
 	if publishStatus == 1 {
 		fmt.Println("//活动发布")
 		if comapnyId > 0 {
@@ -493,11 +493,78 @@ func YanXuanActivityPointsBillActivityPublishAndCancelReduce(log models.YanXuanA
 			itemCompany.Points = item.Points
 			itemCompany.ModifyTime = time.Now()
 			itemCompanys = append(itemCompanys, itemCompany)
+			mapCompanyPoints[comapnyId] = item.Points
 		}
+
+		if activityPointsSetDetail.UserPointsNum > 0 && activityPointsSetDetail.PointsType == 1 {
+			//如果扣点形式选的是报名即扣点,那么就对已经报名的用户所在机构进行扣点
+			var condition string
+			var pars []interface{}
+			condition = ` AND do_fail_type = 0 AND activity_id  = ?`
+			pars = append(pars, activityId)
+
+			listSignup, e := models.GetActivitySignupList(condition, pars)
+			if e != nil && e.Error() != utils.ErrNoRow() {
+				err = errors.New("GetActivitySignupList, Err: " + e.Error())
+				return
+			}
+			var companyIds []int
+			if len(listSignup) > 0 {
+				for _, v := range listSignup {
+					companyIds = append(companyIds, v.CompanyId)
+				}
+				pars = make([]interface{}, 0)
+				condition = ` AND company_id IN (` + utils.GetOrmInReplace(len(companyIds)) + `)`
+				pars = append(pars, companyIds)
+
+				//获取这些公司剩余的点数
+				conpanyList, e := models.GetCygxActivityPointsCompanyList(condition, pars)
+				if e != nil && e.Error() != utils.ErrNoRow() {
+					err = errors.New("GetCygxActivityPointsCompanyList, Err: " + e.Error())
+					return
+				}
+
+				for _, v := range conpanyList {
+					if mapCompanyPoints[comapnyId] == 0 {
+						mapCompanyPoints[comapnyId] = v.Points
+					}
+				}
+
+				for _, user := range listSignup {
+					item := new(models.CygxActivityPointsBill)
+					item.ActivityId = activityId
+					item.CreateTime = time.Now()
+					item.Mobile = user.Mobile
+					item.Email = user.Email
+					item.CompanyId = user.CompanyId
+					item.CompanyName = user.CompanyName
+					item.RealName = user.RealName
+					item.BillDetailed = -activityPointsSetDetail.UserPointsNum
+					item.RegisterPlatform = log.RegisterPlatform
+					item.AdminId = log.AdminId
+					item.Source = log.Source
+					item.ChartPermissionId = activityInfo.ChartPermissionId
+					item.DoType = 1
+					item.Content = activityInfo.ActivityName + "--发布活动"
+					mapCompanyPoints[comapnyId] -= activityPointsSetDetail.UserPointsNum //通过map处理机构剩余点数
+					item.Points = mapCompanyPoints[comapnyId]
+					items = append(items, item)
+
+					//更新对应机构的剩余点数
+					itemCompany := new(models.CygxActivityPointsCompany)
+					itemCompany.CompanyId = user.CompanyId
+					itemCompany.Points = item.Points
+					itemCompany.ModifyTime = time.Now()
+					itemCompanys = append(itemCompanys, itemCompany)
+					mapCompanyPoints[comapnyId] = item.Points
+				}
+			}
+		}
+
 	} else {
 		fmt.Println("//活动取消发布")
 		//活动取消发布
-		mapCompanyPoints := make(map[int]float64) //一组公司的剩余点数
+
 		if comapnyId > 0 {
 			comapny, e := models.GetCompanyById(comapnyId)
 			if e != nil {
@@ -565,7 +632,7 @@ func YanXuanActivityPointsBillActivityPublishAndCancelReduce(log models.YanXuanA
 				}
 
 				for _, v := range conpanyList {
-					if mapCompanyPoints[comapnyId] != 0 {
+					if mapCompanyPoints[comapnyId] == 0 {
 						mapCompanyPoints[comapnyId] = v.Points
 					}
 				}

+ 2 - 2
services/task.go

@@ -126,8 +126,8 @@ func Task() {
 		task.AddTask("getArticleListByApi", getArticleListByApi)
 	}
 
-	go UserLabelLogReduce() // 处理用户标签的队列消息
-	//go YanXuanActivityPointsBillReduce() // 处理研选活动扣点
+	go UserLabelLogReduce()              // 处理用户标签的队列消息
+	go YanXuanActivityPointsBillReduce() // 处理研选活动扣点
 	//GetCygxActivityAttendanceDetail()
 	//CreateIndexNameArticleHistory()
 	//AddAllArticleHistory()