|
@@ -14,41 +14,26 @@ import (
|
|
|
//}
|
|
|
|
|
|
// GetActivityPointsAll 获取所有带有扣点的活动
|
|
|
-//func GetActivityPointsAll() (listxActivity []*models.CygxActivity, err error) {
|
|
|
-// defer func() {
|
|
|
-// if err != nil {
|
|
|
-// fmt.Println(err)
|
|
|
-// go utils.SendAlarmMsg("获取所有带有扣点的活动失败"+err.Error(), 2)
|
|
|
-// }
|
|
|
-// }()
|
|
|
-// var condition string
|
|
|
-// var pars []interface{}
|
|
|
-// listxActivity = make([]*models.CygxActivity, 0)
|
|
|
-// list, e := models.GetCygxActivityPointsSetList(condition, pars, 0, 0)
|
|
|
-// if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
-// err = errors.New("GetCygxActivityPointsSetList,Err: " + e.Error())
|
|
|
-// return
|
|
|
-// }
|
|
|
-// var activityIds []int
|
|
|
-// for _, v := range list {
|
|
|
-// activityIds = append(activityIds, v.ActivityId)
|
|
|
-// }
|
|
|
-// lenArr := len(activityIds)
|
|
|
-// if lenArr == 0 {
|
|
|
-// return
|
|
|
-// }
|
|
|
-// condition = ` AND art.activity_id IN (` + utils.GetOrmInReplace(lenArr) + `)`
|
|
|
-// pars = append(pars, activityIds)
|
|
|
-// listxActivity, e = models.GetCygxActivityList(condition, pars, 0, lenArr)
|
|
|
-// if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
-// err = errors.New("GetCygxActivityList,Err: " + e.Error())
|
|
|
-// return
|
|
|
-// }
|
|
|
-// for _, v := range listxActivity {
|
|
|
-// fmt.Println(v)
|
|
|
-// }
|
|
|
-// return
|
|
|
-//}
|
|
|
+func GetActivityPointsAll() (mapResp map[int]bool, err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg("获取所有带有扣点的活动失败"+err.Error(), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ mapResp = make(map[int]bool, 0)
|
|
|
+ list, e := models.GetCygxActivityPointsSetList(condition, pars, 0, 0)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCygxActivityPointsSetList,Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range list {
|
|
|
+ mapResp[v.ActivityId] = true
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
|
|
|
// 用户报名添加到处理研选扣点
|
|
|
func YanXuanActivityPointsBillSignupAdd(activityId, uid int) (err error) {
|
|
@@ -90,6 +75,26 @@ func YanXuanActivityPointsBillSignupCancel(activityId, uid int) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// 5 活动到会研选扣点处理
|
|
|
+func YanXuanActivityPointsBillSubmitMeeting(activityId, adminId int) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ msg := fmt.Sprint("activityId:", activityId)
|
|
|
+ go utils.SendAlarmMsg("活动到会研选扣点处理,写入Redis队列消息失败:"+err.Error()+msg, 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ //SourceType int `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会。6:研选审批通过的时候研选扣点更新、 7:正式专试用定时任务更新研选扣点"`
|
|
|
+ log := &models.YanXuanActivityPointsRedis{ActivityId: activityId, SourceType: 5, AdminId: adminId, Source: 2, CreateTime: time.Now()}
|
|
|
+ if utils.Re == nil {
|
|
|
+ err := utils.Rc.LPush(utils.CYGX_YANXUAN_POINTS_KEY, log)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("YanXuanActivityPointsRedis LPush Err:" + err.Error())
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// YanXuanActivityPointsBillReduce 处理研选活动扣点
|
|
|
func YanXuanActivityPointsBillReduce() (err error) {
|
|
|
for {
|
|
@@ -118,8 +123,8 @@ func YanXuanActivityPointsBillReduce() (err error) {
|
|
|
fmt.Println("4:活动发布、取消发布")
|
|
|
break
|
|
|
case 5:
|
|
|
- //go YanXuanActivityPointsBillActivityCancelReduce(log)
|
|
|
- fmt.Println("5:活动取消发布。")
|
|
|
+ go YanXuanActivityPointsBillSubmitMeetingReduce(log)
|
|
|
+ fmt.Println("5:活动到会研选扣点处理。")
|
|
|
case 6:
|
|
|
go YanXuanCompanyApprovalReduce(log)
|
|
|
fmt.Println("6:研选审批通过的时候研选扣点更新。")
|
|
@@ -334,7 +339,7 @@ func YanXuanActivityPointsBillActivityEditReduce(log models.YanXuanActivityPoint
|
|
|
//查询最新的一条针对这个公司的扣点记录
|
|
|
var condition string
|
|
|
var pars []interface{}
|
|
|
- condition += ` AND activity_id = ? AND company_id = ? AND user_id = 0 ORDER BY id DESC LIMIT 1 `
|
|
|
+ condition += ` AND activity_id = ? AND company_id = ? AND mobile = '' ORDER BY id DESC LIMIT 1 `
|
|
|
pars = append(pars, activityId, comapnyId)
|
|
|
activityPointsBillDetail, e := models.GetCygxActivityPointsBillDetailByCondition(condition, pars)
|
|
|
if e != nil && e.Error() != utils.ErrNoRow() {
|
|
@@ -591,20 +596,22 @@ func YanXuanActivityPointsBillActivityPublishAndCancelReduce(log models.YanXuanA
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+//func init() {
|
|
|
+// log := models.YanXuanActivityPointsRedis{ActivityId: 2385, SourceType: 5, RegisterPlatform: utils.REGISTER_PLATFORM, Source: 4, CreateTime: time.Now()}
|
|
|
+// YanXuanActivityPointsBillSubmitMeetingReduce(log)
|
|
|
+//}
|
|
|
+
|
|
|
// 5:活动到会研选扣点处理
|
|
|
func YanXuanActivityPointsBillSubmitMeetingReduce(log models.YanXuanActivityPointsRedis) (err error) {
|
|
|
//func YanXuanActivityPointsBillSubmitMeetingReduce(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)
|
|
|
- // }
|
|
|
- //}()
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg("活动到会研选扣点,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("ActivityId", log.ActivityId, "adminId", log.AdminId), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
|
|
|
activityId := log.ActivityId
|
|
|
- publishStatus := log.PublishStatus
|
|
|
- //comapnyId := log.ComapnyId
|
|
|
-
|
|
|
//获取活动是否扣点以及扣点规则明细
|
|
|
activityPointsSetDetail, e := models.GetCygxActivityPointsSetDetail(activityId)
|
|
|
if e != nil && e.Error() != utils.ErrNoRow() {
|
|
@@ -623,159 +630,97 @@ func YanXuanActivityPointsBillSubmitMeetingReduce(log models.YanXuanActivityPoin
|
|
|
err = errors.New("GetAddActivityInfoByActivityId" + e.Error())
|
|
|
return
|
|
|
}
|
|
|
+ var companyIds []int
|
|
|
+ mapCompanyPoints := make(map[int]float64) //一组公司的剩余点数
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ condition += ` AND activity_id = ? AND is_meeting = 1 `
|
|
|
+ pars = append(pars, activityId)
|
|
|
|
|
|
- comapnyId := activityPointsSetDetail.CompanyId
|
|
|
- var items []*models.CygxActivityPointsBill
|
|
|
-
|
|
|
- var itemCompanys []*models.CygxActivityPointsCompany
|
|
|
+ //获取提交到会的人员信息
|
|
|
+ signUpDetailList, e := models.GetSignupDetailList(condition, pars)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetSignupDetailList" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range signUpDetailList {
|
|
|
+ companyIds = append(companyIds, v.CompanyId)
|
|
|
+ }
|
|
|
|
|
|
- if publishStatus == 1 {
|
|
|
- fmt.Println("//活动发布")
|
|
|
- if comapnyId > 0 {
|
|
|
- comapny, e := models.GetCompanyById(comapnyId)
|
|
|
- if e != nil {
|
|
|
- err = errors.New("GetCompanyById" + e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- // 获取用户所在公司剩余的点
|
|
|
- companyPointsNum, e := models.GetCompanyPoints(comapny.CompanyId)
|
|
|
- if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
- err = errors.New("GetCompanyPoints, Err: " + e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- item := new(models.CygxActivityPointsBill)
|
|
|
- item.ActivityId = activityId
|
|
|
- item.CreateTime = time.Now()
|
|
|
- //item.Mobile = user.Mobile
|
|
|
- //item.Email = user.Email
|
|
|
- item.CompanyId = comapny.CompanyId
|
|
|
- item.CompanyName = comapny.CompanyName
|
|
|
- //item.RealName = user.RealName
|
|
|
- item.BillDetailed = -activityPointsSetDetail.CompanyPointsNum
|
|
|
- item.RegisterPlatform = log.RegisterPlatform
|
|
|
- item.AdminId = log.AdminId
|
|
|
- item.Source = log.Source
|
|
|
- item.ChartPermissionId = activityInfo.ChartPermissionId
|
|
|
- item.DoType = 1
|
|
|
- item.Content = activityInfo.ActivityName + "--办会"
|
|
|
- item.Points = companyPointsNum - activityPointsSetDetail.CompanyPointsNum
|
|
|
- items = append(items, item)
|
|
|
+ //return
|
|
|
+ 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
|
|
|
+ }
|
|
|
|
|
|
- //更新对应机构的剩余点数
|
|
|
- itemCompany := new(models.CygxActivityPointsCompany)
|
|
|
- itemCompany.CompanyId = comapny.CompanyId
|
|
|
- itemCompany.Points = item.Points
|
|
|
- itemCompany.ModifyTime = time.Now()
|
|
|
- itemCompanys = append(itemCompanys, itemCompany)
|
|
|
- }
|
|
|
- } else {
|
|
|
- fmt.Println("//活动取消发布")
|
|
|
- //活动取消发布
|
|
|
- mapCompanyPoints := make(map[int]float64) //一组公司的剩余点数
|
|
|
- if comapnyId > 0 {
|
|
|
- comapny, e := models.GetCompanyById(comapnyId)
|
|
|
- if e != nil {
|
|
|
- err = errors.New("GetCompanyById" + e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- // 获取用户所在公司剩余的点
|
|
|
- companyPointsNum, e := models.GetCompanyPoints(comapny.CompanyId)
|
|
|
- if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
- err = errors.New("GetCompanyPoints, Err: " + e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- item := new(models.CygxActivityPointsBill)
|
|
|
- item.ActivityId = activityId
|
|
|
- item.CreateTime = time.Now()
|
|
|
- //item.Mobile = user.Mobile
|
|
|
- //item.Email = user.Email
|
|
|
- item.CompanyId = comapny.CompanyId
|
|
|
- item.CompanyName = comapny.CompanyName
|
|
|
- //item.RealName = user.RealName
|
|
|
- item.BillDetailed = activityPointsSetDetail.CompanyPointsNum
|
|
|
- item.RegisterPlatform = log.RegisterPlatform
|
|
|
- item.AdminId = log.AdminId
|
|
|
- item.Source = log.Source
|
|
|
- item.ChartPermissionId = activityInfo.ChartPermissionId
|
|
|
- item.DoType = 2
|
|
|
- item.Content = activityInfo.ActivityName + "--取消办会"
|
|
|
- item.Points = companyPointsNum + activityPointsSetDetail.CompanyPointsNum
|
|
|
- items = append(items, item)
|
|
|
- //更新对应机构的剩余点数
|
|
|
- itemCompany := new(models.CygxActivityPointsCompany)
|
|
|
- itemCompany.CompanyId = comapny.CompanyId
|
|
|
- itemCompany.Points = item.Points
|
|
|
- itemCompany.ModifyTime = time.Now()
|
|
|
- itemCompanys = append(itemCompanys, itemCompany)
|
|
|
- mapCompanyPoints[comapnyId] = item.Points
|
|
|
+ pars = make([]interface{}, 0)
|
|
|
+ condition = ` AND activity_id = ? AND mobile != '' `
|
|
|
+ pars = append(pars, activityId)
|
|
|
+ //获取扣点的流水记录
|
|
|
+ activityPointsBillList, e := models.GetCygxActivityPointsBillList(condition, pars)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCygxActivityPointsBillList" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mapActivityPointsBill := make(map[string]*models.CygxActivityPointsBill)
|
|
|
+ for _, v := range activityPointsBillList {
|
|
|
+ mapActivityPointsBill[v.Mobile] = v
|
|
|
+ }
|
|
|
+ //return
|
|
|
+ for _, v := range conpanyList {
|
|
|
+ if mapCompanyPoints[v.CompanyId] != 0 {
|
|
|
+ mapCompanyPoints[v.CompanyId] = v.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 = 2
|
|
|
- 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
|
|
|
- }
|
|
|
+ //return
|
|
|
+ var items []*models.CygxActivityPointsBill
|
|
|
+ var itemCompanys []*models.CygxActivityPointsCompany
|
|
|
+ for _, user := range signUpDetailList {
|
|
|
+ item := new(models.CygxActivityPointsBill)
|
|
|
+ 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
|
|
|
+ //如果没有扣点记录就对他们进行扣点处理
|
|
|
+ if mapActivityPointsBill[user.Mobile] == nil {
|
|
|
+ item.BillDetailed = -activityPointsSetDetail.UserPointsNum
|
|
|
+ item.DoType = 1
|
|
|
+ item.Content = activityInfo.ActivityName + "--活动到会"
|
|
|
+ item.Points = mapCompanyPoints[user.CompanyId] - activityPointsSetDetail.CompanyPointsNum
|
|
|
+ item.Points = mapCompanyPoints[user.CompanyId]
|
|
|
+ items = append(items, item)
|
|
|
+ } else {
|
|
|
+ //第二次提交改成未到会的,对其进行返点处理
|
|
|
+ if mapActivityPointsBill[user.Mobile].BillDetailed < 0 {
|
|
|
+ item.BillDetailed = activityPointsSetDetail.UserPointsNum
|
|
|
+ item.DoType = 2
|
|
|
+ item.Content = activityInfo.ActivityName + "--活动取消到会"
|
|
|
+ item.Points = mapCompanyPoints[user.CompanyId] + activityPointsSetDetail.CompanyPointsNum
|
|
|
+ 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[user.CompanyId] = item.Points
|
|
|
}
|
|
|
-
|
|
|
e = models.AddCygxActivityPointsBillMulti(items, itemCompanys)
|
|
|
if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
err = errors.New("AddCygxActivityPointsBillMulti, Err: " + e.Error())
|