zhangchuanxing 3 päivää sitten
vanhempi
commit
feba15bfa6
3 muutettua tiedostoa jossa 177 lisäystä ja 171 poistoa
  1. 10 0
      models/activity_special_meeting_detail.go
  2. 1 10
      models/activity_special_trip.go
  3. 166 161
      services/activity_points.go

+ 10 - 0
models/activity_special_meeting_detail.go

@@ -33,3 +33,13 @@ func CancelCygxActivitySpecialMeetingDetail(uid, activityId int) (err error) {
 	_, err = o.Raw(sql, uid, activityId).Exec()
 	return
 }
+
+func GetCygxActivitySpecialmeetingDetailList(condition string, pars []interface{}) (item []*CygxActivitySpecialTripResp, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT *
+			FROM
+			cygx_activity_special_meeting_detail  
+			WHERE 1 = 1 ` + condition
+	_, err = o.Raw(sql, pars).QueryRows(&item)
+	return
+}

+ 1 - 10
models/activity_special_trip.go

@@ -43,6 +43,7 @@ type CygxActivitySpecialTripResp struct {
 	ResearchTheme       string `description:"调研主题"`
 	ChartPermissionId   int    `description:"行业id"`
 	ChartPermissionName string `description:"行业名称"`
+	IsMeeting           int    `description:"是否到会,1到会,0未到会"`
 }
 
 func GetCygxActivitySpecialTripList(condition string, pars []interface{}) (item []*CygxActivitySpecialTripResp, err error) {
@@ -55,16 +56,6 @@ func GetCygxActivitySpecialTripList(condition string, pars []interface{}) (item
 	return
 }
 
-func GetCygxActivitySpecialmeetingDetailList(condition string, pars []interface{}) (item []*CygxActivitySpecialTripResp, err error) {
-	o := orm.NewOrm()
-	sql := `SELECT *
-			FROM
-			cygx_activity_special_meeting_detail  
-			WHERE 1 = 1 ` + condition
-	_, err = o.Raw(sql, pars).QueryRows(&item)
-	return
-}
-
 // 获取某一用户的报名的数量
 func GetUserActivitySpecialTripCount(uid, activityId int) (count int, err error) {
 	sqlCount := `SELECT COUNT(1) AS count FROM cygx_activity_special_trip  WHERE  user_id=?  AND   activity_id =? `

+ 166 - 161
services/activity_points.go

@@ -230,6 +230,11 @@ func YanXuanActivityPointsBillReduce() (err error) {
 				go ActivitySpecialCompanyApprovalReduce(log)
 				fmt.Println("11:合同审批通过的时候,专项调研点数更新。")
 				break
+			case 12:
+				go ActivitySpecialPointsBillSubmitMeetingReduce(log)
+				fmt.Println("12,专项调研活动提交到会点数更新。")
+				break
+
 			default:
 				fmt.Println(string(b))
 				go utils.SendAlarmMsg("处理研选活动扣点处理Redis队列消息失败:"+string(b), 2)
@@ -782,7 +787,7 @@ func YanXuanActivityPointsBillActivityPublishAndCancelReduce(log models.YanXuanA
 				}
 
 				pars = make([]interface{}, 0)
-				condition = ` AND activity_id = ?   `
+				condition = ` AND activity_id = ? AND table_source = 'activity'   `
 				pars = append(pars, activityId)
 				//获取扣点的流水记录
 				activityPointsBillList, e := models.GetCygxActivitySpecialTripBill(condition, pars)
@@ -931,7 +936,7 @@ func YanXuanActivityPointsBillSubmitMeetingReduce(log models.YanXuanActivityPoin
 	}
 
 	pars = make([]interface{}, 0)
-	condition = ` AND activity_id = ? AND  mobile  != ''  ORDER BY  id DESC   `
+	condition = ` AND activity_id = ? AND table_source = 'activity'  AND  mobile  != ''  ORDER BY  id DESC   `
 	pars = append(pars, activityId)
 	//获取扣点的流水记录
 	activityPointsBillList, e := models.GetCygxActivitySpecialTripBill(condition, pars)
@@ -1608,165 +1613,165 @@ func ActivitySpecialCompanyApprovalReduce(log models.YanXuanActivityPointsRedis)
 }
 
 // 12: 专项调活动提交到会扣点处理
-//func ActivitySpecialPointsBillSubmitMeetingReduce(log models.YanXuanActivityPointsRedis) (err error) {
-//	//func ActivitySpecialPointsBillSubmitMeetingReduce(activityId int) (err error) {
-//	defer func() {
-//		if err != nil {
-//			fmt.Println(err)
-//			go utils.SendAlarmMsg("专项调活动提交到会扣点处理,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("ActivityId", log.ActivityId, "adminId", log.AdminId), 2)
-//		}
-//	}()
-//
-//	time.Sleep(5 * time.Second) //添加五秒的延迟
-//
-//	activityId := log.ActivityId
-//	activityInfo, e := models.GetCygxActivitySpecialDetail(activityId)
-//	if e != nil {
-//		err = errors.New("GetCygxActivitySpecialDetail" + e.Error())
-//		return
-//	}
-//	var companyIds []int
-//	mapCompanyPoints := make(map[int]float64) //一组公司的剩余点数
-//	var condition string
-//	var pars []interface{}
-//	condition += ` AND activity_id = ?  `
-//	pars = append(pars, activityId)
-//
-//	//获取提交到会的人员信息
-//	signUpDetailList, e := models.GetSignupDetailList(condition, pars)
-//	if e != nil && e.Error() != utils.ErrNoRow() {
-//		err = errors.New("GetSignupDetailList" + e.Error())
-//		return
-//	}
-//	if len(signUpDetailList) == 0 {
-//		return
-//	}
-//	for _, v := range signUpDetailList {
-//		companyIds = append(companyIds, v.CompanyId)
-//
-//		companyId := v.CompanyId
-//		//判断公司是不是满足扣点情况,如果是后台超管手动给试用客户报名,就写入一条点数初始化数据
-//		total, e := models.GetCygxActivitySpecialPermissionPointsCountByCompanyId(companyId)
-//		if e != nil {
-//			err = errors.New("GetCygxActivitySpecialPermissionPointsCountByCompanyId, Err: " + e.Error())
-//			return
-//		}
-//
-//		if total == 0 {
-//			itemPointsCompany := new(models.CygxActivitySpecialPermissionPoints)
-//			itemPointsCompany.CompanyId = companyId
-//			itemPointsCompany.CompanyName = v.CompanyName
-//			itemPointsCompany.CreateTime = time.Now()
-//			itemPointsCompany.ModifyTime = time.Now()
-//
-//			e = models.AddCygxActivitySpecialPermissionPoints(itemPointsCompany)
-//			if e != nil {
-//				err = errors.New("AddCygxActivitySpecialPermissionPoints, Err: " + e.Error())
-//				return
-//			}
-//		}
-//	}
-//
-//	//return
-//	pars = make([]interface{}, 0)
-//	condition = ` AND company_id IN (` + utils.GetOrmInReplace(len(companyIds)) + `)`
-//	pars = append(pars, companyIds)
-//	//获取这些公司剩余的点数
-//	conpanyList, e := models.GetCygxActivitySpecialPermissionPointsList(condition, pars)
-//	if e != nil && e.Error() != utils.ErrNoRow() {
-//		err = errors.New("GetCygxActivitySpecialPermissionPointsList, Err: " + e.Error())
-//		return
-//	}
-//
-//	pars = make([]interface{}, 0)
-//	condition = ` AND activity_id = ? AND  mobile  != ''  ORDER BY  id DESC   `
-//	pars = append(pars, activityId)
-//	//获取扣点的流水记录
-//	activityPointsBillList, e := models.GetCygxActivitySpecialTripBill(condition, pars)
-//	if e != nil && e.Error() != utils.ErrNoRow() {
-//		err = errors.New("GetCygxActivitySpecialTripBill" + e.Error())
-//		return
-//	}
-//	mapActivityPointsBill := make(map[string]*models.CygxActivitySpecialTripBill)
-//	for _, v := range activityPointsBillList { //获取这场活动,某个手机号最后一次的扣点记录
-//		if mapActivityPointsBill[v.Mobile] == nil {
-//			mapActivityPointsBill[v.Mobile] = v
-//		}
-//	}
-//	//return
-//	for _, v := range conpanyList {
-//		if v.CompanyId != 0 {
-//			mapCompanyPoints[v.CompanyId] = v.Points
-//		}
-//	}
-//
-//	//return
-//	var items []*models.CygxActivitySpecialTripBill
-//	var itemCompanys []*models.CygxActivitySpecialPermissionPoints
-//	for _, user := range signUpDetailList {
-//		item := new(models.CygxActivitySpecialTripBill)
-//		item.ActivityId = activityId
-//		item.CreateTime = time.Now()
-//		item.UserId = user.UserId
-//		item.Mobile = user.Mobile
-//		item.Email = user.Email
-//		item.CompanyId = user.CompanyId
-//		item.CompanyName = user.CompanyName
-//		item.RealName = user.RealName
-//		item.RegisterPlatform = log.RegisterPlatform
-//		item.AdminId = log.AdminId
-//		item.Source = log.Source
-//		item.ChartPermissionId = activityInfo.ChartPermissionId
-//		item.ChartPermissionName = activityInfo.ChartPermissionName
-//		if user.IsMeeting == 1 {
-//			//如果没有扣点记录就对他们进行扣点处理
-//			if mapActivityPointsBill[user.Mobile] == nil || mapActivityPointsBill[user.Mobile].BillDetailed > 0 {
-//				points := mapCompanyPoints[user.CompanyId] - activityPointsSetDetail.UserPointsNum
-//				item.BillDetailed = -activityPointsSetDetail.UserPointsNum
-//				item.DoType = 1
-//				item.Content = activityInfo.ActivityName + "--活动到会"
-//				item.Total = fmt.Sprint(points, "次")
-//				item.TableSource = utils.CYGX_OBJ_ACTIVITY
-//				//item.Points = mapCompanyPoints[user.CompanyId] - activityPointsSetDetail.UserPointsNum
-//				items = append(items, item)
-//				//更新对应机构的剩余点数
-//				itemCompany := new(models.CygxActivitySpecialPermissionPoints)
-//				itemCompany.CompanyId = user.CompanyId
-//				itemCompany.Points = points
-//				itemCompany.ModifyTime = time.Now()
-//				itemCompanys = append(itemCompanys, itemCompany)
-//				mapCompanyPoints[user.CompanyId] = points
-//			}
-//		} else {
-//			////第二次提交改成未到会的,对其进行返点处理
-//			if mapActivityPointsBill[user.Mobile] != nil && mapActivityPointsBill[user.Mobile].BillDetailed < 0 {
-//				fmt.Println("取消到会了")
-//				points := mapCompanyPoints[user.CompanyId] + activityPointsSetDetail.UserPointsNum
-//				item.BillDetailed = activityPointsSetDetail.UserPointsNum
-//				item.DoType = 2
-//				item.Content = activityInfo.ActivityName + "--活动取消到会"
-//				//item.Points =points
-//				item.Total = fmt.Sprint(points, "次")
-//				item.TableSource = utils.CYGX_OBJ_ACTIVITY
-//				items = append(items, item)
-//
-//				//更新对应机构的剩余点数
-//				itemCompany := new(models.CygxActivitySpecialPermissionPoints)
-//				itemCompany.CompanyId = user.CompanyId
-//				itemCompany.Points = points
-//				itemCompany.ModifyTime = time.Now()
-//				itemCompanys = append(itemCompanys, itemCompany)
-//				mapCompanyPoints[user.CompanyId] = points
-//			}
-//		}
-//	}
-//	e = models.AddCygxActivitySpecialTripBillMulti(items, itemCompanys)
-//	if e != nil && e.Error() != utils.ErrNoRow() {
-//		err = errors.New("AddCygxActivitySpecialTripBillMulti, Err: " + e.Error())
-//		return
-//	}
-//	return
-//}
+func ActivitySpecialPointsBillSubmitMeetingReduce(log models.YanXuanActivityPointsRedis) (err error) {
+	//func ActivitySpecialPointsBillSubmitMeetingReduce(activityId int) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg("专项调活动提交到会扣点处理,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("ActivityId", log.ActivityId, "adminId", log.AdminId), 2)
+		}
+	}()
+
+	time.Sleep(5 * time.Second) //添加五秒的延迟
+
+	activityId := log.ActivityId
+	activityInfo, e := models.GetCygxActivitySpecialDetail(activityId)
+	if e != nil {
+		err = errors.New("GetCygxActivitySpecialDetail" + e.Error())
+		return
+	}
+	var companyIds []int
+	mapCompanyPoints := make(map[int]float64) //一组公司的剩余点数
+	var condition string
+	var pars []interface{}
+	condition += ` AND activity_id = ?   `
+	pars = append(pars, activityId)
+
+	//获取提交到会的人员信息
+	signUpDetailList, e := models.GetCygxActivitySpecialmeetingDetailList(condition, pars)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetSignupDetailList" + e.Error())
+		return
+	}
+	if len(signUpDetailList) == 0 {
+		return
+	}
+	for _, v := range signUpDetailList {
+		companyIds = append(companyIds, v.CompanyId)
+
+		companyId := v.CompanyId
+		//判断公司是不是满足扣点情况,如果是后台超管手动给试用客户报名,就写入一条点数初始化数据
+		total, e := models.GetCygxActivitySpecialPermissionPointsCountByCompanyId(companyId)
+		if e != nil {
+			err = errors.New("GetCygxActivitySpecialPermissionPointsCountByCompanyId, Err: " + e.Error())
+			return
+		}
+
+		if total == 0 {
+			itemPointsCompany := new(models.CygxActivitySpecialPermissionPoints)
+			itemPointsCompany.CompanyId = companyId
+			itemPointsCompany.CompanyName = v.CompanyName
+			itemPointsCompany.CreateTime = time.Now()
+			itemPointsCompany.ModifyTime = time.Now()
+
+			e = models.AddCygxActivitySpecialPermissionPoints(itemPointsCompany)
+			if e != nil {
+				err = errors.New("AddCygxActivitySpecialPermissionPoints, Err: " + e.Error())
+				return
+			}
+		}
+	}
+
+	//return
+	pars = make([]interface{}, 0)
+	condition = ` AND company_id IN (` + utils.GetOrmInReplace(len(companyIds)) + `)`
+	pars = append(pars, companyIds)
+	//获取这些公司剩余的点数
+	conpanyList, e := models.GetCygxActivitySpecialPermissionPointsList(condition, pars)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetCygxActivitySpecialPermissionPointsList, Err: " + e.Error())
+		return
+	}
+
+	pars = make([]interface{}, 0)
+	condition = ` AND activity_id = ? AND table_source = 'activityspecial'  AND  mobile  != ''  ORDER BY  id DESC   `
+	pars = append(pars, activityId)
+	//获取扣点的流水记录
+	activityPointsBillList, e := models.GetCygxActivitySpecialTripBill(condition, pars)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetCygxActivitySpecialTripBill" + e.Error())
+		return
+	}
+	mapActivityPointsBill := make(map[string]*models.CygxActivitySpecialTripBill)
+	for _, v := range activityPointsBillList { //获取这场活动,某个手机号最后一次的扣点记录
+		if mapActivityPointsBill[v.Mobile] == nil {
+			mapActivityPointsBill[v.Mobile] = v
+		}
+	}
+	//return
+	for _, v := range conpanyList {
+		if v.CompanyId != 0 {
+			mapCompanyPoints[v.CompanyId] = v.Points
+		}
+	}
+
+	//return
+	var items []*models.CygxActivitySpecialTripBill
+	var itemCompanys []*models.CygxActivitySpecialPermissionPoints
+	for _, user := range signUpDetailList {
+		item := new(models.CygxActivitySpecialTripBill)
+		item.ActivityId = activityId
+		item.CreateTime = time.Now()
+		item.UserId = user.UserId
+		item.Mobile = user.Mobile
+		item.Email = user.Email
+		item.CompanyId = user.CompanyId
+		item.CompanyName = user.CompanyName
+		item.RealName = user.RealName
+		item.RegisterPlatform = log.RegisterPlatform
+		item.AdminId = log.AdminId
+		item.Source = log.Source
+		item.ChartPermissionId = activityInfo.ChartPermissionId
+		item.ChartPermissionName = activityInfo.ChartPermissionName
+		if user.IsMeeting == 1 {
+			//如果没有扣点记录就对他们进行扣点处理
+			if mapActivityPointsBill[user.Mobile] == nil || mapActivityPointsBill[user.Mobile].BillDetailed > 0 {
+				points := mapCompanyPoints[user.CompanyId] - 1
+				item.BillDetailed = -1
+				item.DoType = 1
+				item.Content = activityInfo.ResearchTheme + "--活动到会"
+				item.Total = fmt.Sprint(points, "次")
+				item.TableSource = utils.CYGX_OBJ_ACTIVITYSPECIAL
+				//item.Points = mapCompanyPoints[user.CompanyId] - activityPointsSetDetail.UserPointsNum
+				items = append(items, item)
+				//更新对应机构的剩余点数
+				itemCompany := new(models.CygxActivitySpecialPermissionPoints)
+				itemCompany.CompanyId = user.CompanyId
+				itemCompany.Points = points
+				itemCompany.ModifyTime = time.Now()
+				itemCompanys = append(itemCompanys, itemCompany)
+				mapCompanyPoints[user.CompanyId] = points
+			}
+		} else {
+			////第二次提交改成未到会的,对其进行返点处理
+			if mapActivityPointsBill[user.Mobile] != nil && mapActivityPointsBill[user.Mobile].BillDetailed < 0 {
+				fmt.Println("取消到会了")
+				points := mapCompanyPoints[user.CompanyId] + 1
+				item.BillDetailed = 1
+				item.DoType = 2
+				item.Content = activityInfo.ResearchTheme + "--活动取消到会"
+				//item.Points =points
+				item.Total = fmt.Sprint(points, "次")
+				item.TableSource = utils.CYGX_OBJ_ACTIVITYSPECIAL
+				items = append(items, item)
+
+				//更新对应机构的剩余点数
+				itemCompany := new(models.CygxActivitySpecialPermissionPoints)
+				itemCompany.CompanyId = user.CompanyId
+				itemCompany.Points = points
+				itemCompany.ModifyTime = time.Now()
+				itemCompanys = append(itemCompanys, itemCompany)
+				mapCompanyPoints[user.CompanyId] = points
+			}
+		}
+	}
+	e = models.AddCygxActivitySpecialTripBillMulti(items, itemCompanys)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("AddCygxActivitySpecialTripBillMulti, Err: " + e.Error())
+		return
+	}
+	return
+}
 
 //func init() {
 //	initCygx14_5_01()