|
@@ -1,10 +1,12 @@
|
|
|
package services
|
|
|
|
|
|
import (
|
|
|
+ "encoding/json"
|
|
|
"errors"
|
|
|
"fmt"
|
|
|
"hongze/hongze_cygx/models"
|
|
|
"hongze/hongze_cygx/utils"
|
|
|
+ "time"
|
|
|
)
|
|
|
|
|
|
//func init() {
|
|
@@ -12,38 +14,721 @@ import (
|
|
|
//}
|
|
|
|
|
|
// GetActivityPointsAll 获取所有带有扣点的活动
|
|
|
-func GetActivityPointsAll() (listxActivity []*models.CygxActivity, err error) {
|
|
|
+//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 YanXuanActivityPointsBillSignupAdd(activityId, uid int) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ msg := fmt.Sprint("activityId:", activityId, "userId:", uid)
|
|
|
+ go utils.SendAlarmMsg("用户报名添加到处理研选扣点,写入Redis队列消息失败:"+err.Error()+msg, 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ //SourceType int `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会。"`
|
|
|
+ log := &models.YanXuanActivityPointsRedis{UserId: uid, ActivityId: activityId, SourceType: 1, RegisterPlatform: utils.REGISTER_PLATFORM, Source: 1, 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
|
|
|
+}
|
|
|
+
|
|
|
+// 用户取消报名添加到处理研选扣点
|
|
|
+func YanXuanActivityPointsBillSignupCancel(activityId, uid int) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ msg := fmt.Sprint("activityId:", activityId, "userId:", uid)
|
|
|
+ go utils.SendAlarmMsg("用户取消报名添加到处理研选扣点,写入Redis队列消息失败:"+err.Error()+msg, 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ //SourceType int `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会。"`
|
|
|
+ log := &models.YanXuanActivityPointsRedis{UserId: uid, ActivityId: activityId, SourceType: 2, RegisterPlatform: utils.REGISTER_PLATFORM, Source: 1, 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 {
|
|
|
+ //SourceType int `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会。"`
|
|
|
+ utils.Rc.Brpop(utils.CYGX_YANXUAN_POINTS_KEY, func(b []byte) {
|
|
|
+ var log models.YanXuanActivityPointsRedis
|
|
|
+ if err := json.Unmarshal(b, &log); err != nil {
|
|
|
+ fmt.Println("json unmarshal wrong!")
|
|
|
+ go utils.SendAlarmMsg("处理研选活动扣点处理Redis队列消息失败:"+err.Error()+string(b), 2)
|
|
|
+ }
|
|
|
+ switch log.SourceType {
|
|
|
+ case 1:
|
|
|
+ go YanXuanActivityPointsBillSignupAddReduce(log)
|
|
|
+ fmt.Println("1:报名")
|
|
|
+ break
|
|
|
+ case 2:
|
|
|
+ go YanXuanActivityPointsBillSignupCancelReduce(log)
|
|
|
+ fmt.Println(" 2:取消报名")
|
|
|
+ break
|
|
|
+ case 3:
|
|
|
+ go YanXuanActivityPointsBillActivityEditReduce(log)
|
|
|
+ fmt.Println("3:活动编辑")
|
|
|
+ break
|
|
|
+ case 4:
|
|
|
+ go YanXuanActivityPointsBillActivityPublishAndCancelReduce(log)
|
|
|
+ fmt.Println("4:活动发布、取消发布")
|
|
|
+ break
|
|
|
+ case 5:
|
|
|
+ //go YanXuanActivityPointsBillActivityCancelReduce(log)
|
|
|
+ fmt.Println("5:活动取消发布。")
|
|
|
+ case 6:
|
|
|
+ go YanXuanCompanyApprovalReduce(log)
|
|
|
+ fmt.Println("6:研选审批通过的时候研选扣点更新。")
|
|
|
+ break
|
|
|
+ case 7:
|
|
|
+ go YanXuanCompanyCompanyTryOutReduce(log)
|
|
|
+ fmt.Println("7:正式专试用定时任务更新研选扣点。")
|
|
|
+ break
|
|
|
+ default:
|
|
|
+ fmt.Println(string(b))
|
|
|
+ go utils.SendAlarmMsg("处理研选活动扣点处理Redis队列消息失败:"+string(b), 2)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 1:用户报名
|
|
|
+func YanXuanActivityPointsBillSignupAddReduce(log models.YanXuanActivityPointsRedis) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg("用户报名活动扣点,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("ActivityId", log.ActivityId, "userId", log.UserId), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ activityId := log.ActivityId
|
|
|
+ userId := log.UserId
|
|
|
+
|
|
|
+ //获取活动是否扣点以及扣点规则明细
|
|
|
+ activityPointsSetDetail, e := models.GetCygxActivityPointsSetDetail(activityId)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCygxActivityPointsSetDetail" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if activityPointsSetDetail == nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if activityPointsSetDetail.UserPointsNum == 0 || activityPointsSetDetail.PointsType != 1 {
|
|
|
+ return // 如果不是报名即扣点的这种形式,那么就不做任何处理
|
|
|
+ }
|
|
|
+
|
|
|
+ activityInfo, e := models.GetAddActivityInfoById(activityId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetAddActivityInfoById" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ user, e := models.GetWxUserItemByUserId(userId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetWxUserItemByUserId" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取用户所在公司剩余的点
|
|
|
+ companyPointsNum, e := models.GetCompanyPoints(user.CompanyId)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCompanyPoints, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //获取需要添加的流水信息
|
|
|
+ var items []*models.CygxActivityPointsBill
|
|
|
+ item := new(models.CygxActivityPointsBill)
|
|
|
+ item.UserId = user.UserId
|
|
|
+ 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 + "--报名"
|
|
|
+ item.Points = companyPointsNum - activityPointsSetDetail.UserPointsNum
|
|
|
+ items = append(items, item)
|
|
|
+
|
|
|
+ //更新对应机构的剩余点数
|
|
|
+ var itemCompanys []*models.CygxActivityPointsCompany
|
|
|
+ itemCompany := new(models.CygxActivityPointsCompany)
|
|
|
+ itemCompany.CompanyId = user.CompanyId
|
|
|
+ itemCompany.Points = item.Points
|
|
|
+ itemCompany.ModifyTime = time.Now()
|
|
|
+ itemCompanys = append(itemCompanys, itemCompany)
|
|
|
+
|
|
|
+ err = models.AddCygxActivityPointsBillMulti(items, itemCompanys)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 2:用户取消报名
|
|
|
+func YanXuanActivityPointsBillSignupCancelReduce(log models.YanXuanActivityPointsRedis) (err error) {
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
|
fmt.Println(err)
|
|
|
- go utils.SendAlarmMsg("获取所有带有扣点的活动失败"+err.Error(), 2)
|
|
|
+ go utils.SendAlarmMsg("用户取消报名扣点,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("ActivityId", log.ActivityId, "userId", log.UserId), 2)
|
|
|
}
|
|
|
}()
|
|
|
+
|
|
|
+ activityId := log.ActivityId
|
|
|
+ userId := log.UserId
|
|
|
+
|
|
|
+ //获取活动是否扣点以及扣点规则明细
|
|
|
+ activityPointsSetDetail, e := models.GetCygxActivityPointsSetDetail(activityId)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCygxActivityPointsSetDetail" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if activityPointsSetDetail == nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if activityPointsSetDetail.UserPointsNum == 0 || activityPointsSetDetail.PointsType != 1 {
|
|
|
+ return // 如果不是报名即扣点的这种形式,那么就不做任何处理
|
|
|
+ }
|
|
|
+
|
|
|
+ activityInfo, e := models.GetAddActivityInfoById(activityId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetAddActivityInfoById" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ user, e := models.GetWxUserItemByUserId(userId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetWxUserItemByUserId" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取用户所在公司剩余的点
|
|
|
+ companyPointsNum, e := models.GetCompanyPoints(user.CompanyId)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCompanyPoints, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //获取需要添加的流水信息
|
|
|
+ var items []*models.CygxActivityPointsBill
|
|
|
+ item := new(models.CygxActivityPointsBill)
|
|
|
+ item.UserId = user.UserId
|
|
|
+ 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 + "--取消报名"
|
|
|
+ item.Points = companyPointsNum + activityPointsSetDetail.UserPointsNum
|
|
|
+ items = append(items, item)
|
|
|
+
|
|
|
+ //更新对应机构的剩余点数
|
|
|
+ var itemCompanys []*models.CygxActivityPointsCompany
|
|
|
+ itemCompany := new(models.CygxActivityPointsCompany)
|
|
|
+ itemCompany.CompanyId = user.CompanyId
|
|
|
+ itemCompany.Points = item.Points
|
|
|
+ itemCompany.ModifyTime = time.Now()
|
|
|
+ itemCompanys = append(itemCompanys, itemCompany)
|
|
|
+
|
|
|
+ err = models.AddCygxActivityPointsBillMulti(items, itemCompanys)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 3:活动编辑
|
|
|
+func YanXuanActivityPointsBillActivityEditReduce(log models.YanXuanActivityPointsRedis) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg("用户报名活动扣点,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("ActivityId", log.ActivityId, "userId", log.UserId), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ activityId := log.ActivityId
|
|
|
+ comapnyId := log.ComapnyId
|
|
|
+
|
|
|
+ //获取活动是否扣点以及扣点规则明细
|
|
|
+ activityPointsSetDetail, e := models.GetCygxActivityPointsSetDetail(activityId)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCygxActivityPointsSetDetail" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if activityPointsSetDetail == nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if activityPointsSetDetail.CompanyPointsNum == 0 {
|
|
|
+ return // 如果不是办会人,即扣点的这种形式,那么就不做任何处理
|
|
|
+ }
|
|
|
+
|
|
|
+ activityInfo, e := models.GetAddActivityInfoById(activityId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetAddActivityInfoById" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if activityInfo.PublishStatus == 0 {
|
|
|
+ return // 未发布的活动不做处理
|
|
|
+ }
|
|
|
+ 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
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询最新的一条针对这个公司的扣点记录
|
|
|
var condition string
|
|
|
var pars []interface{}
|
|
|
- listxActivity = make([]*models.CygxActivity, 0)
|
|
|
- list, e := models.GetCygxActivityPointsSetList(condition, pars, 0, 0)
|
|
|
+ condition += ` AND activity_id = ? AND company_id = ? AND user_id = 0 ORDER BY id DESC LIMIT 1 `
|
|
|
+ pars = append(pars, activityId)
|
|
|
+ activityPointsBillDetail, e := models.GetCygxActivityPointsBillDetailByCondition(condition, pars)
|
|
|
if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
- err = errors.New("GetCygxActivityPointsSetList,Err: " + e.Error())
|
|
|
+ err = errors.New("GetCompanyPoints, Err: " + e.Error())
|
|
|
return
|
|
|
}
|
|
|
- var activityIds []int
|
|
|
- for _, v := range list {
|
|
|
- activityIds = append(activityIds, v.ActivityId)
|
|
|
+ var items []*models.CygxActivityPointsBill
|
|
|
+ item := new(models.CygxActivityPointsBill)
|
|
|
+ var itemCompanys []*models.CygxActivityPointsCompany
|
|
|
+ itemCompany := new(models.CygxActivityPointsCompany)
|
|
|
+ if activityPointsBillDetail == nil { //如果是空的就添加
|
|
|
+ //获取需要添加的流水信息
|
|
|
+
|
|
|
+ //item.UserId = user.UserId
|
|
|
+ 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)
|
|
|
+
|
|
|
+ //更新对应机构的剩余点数
|
|
|
+ itemCompany.CompanyId = comapny.CompanyId
|
|
|
+ itemCompany.Points = item.Points
|
|
|
+ itemCompany.ModifyTime = time.Now()
|
|
|
+ itemCompanys = append(itemCompanys, itemCompany)
|
|
|
+ e = models.AddCygxActivityPointsBillMulti(items, itemCompanys)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("AddCygxActivityPointsBillMulti, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //如果存在就进行对比修改
|
|
|
+ if activityPointsSetDetail.CompanyPointsNum != activityPointsBillDetail.BillDetailed {
|
|
|
+ item.Id = activityPointsBillDetail.Id
|
|
|
+ item.BillDetailed = -activityPointsSetDetail.CompanyPointsNum
|
|
|
+ item.Points = companyPointsNum - activityPointsBillDetail.BillDetailed - activityPointsSetDetail.CompanyPointsNum
|
|
|
+ items = append(items, item)
|
|
|
+
|
|
|
+ //更新对应机构的剩余点数
|
|
|
+ itemCompany.CompanyId = comapny.CompanyId
|
|
|
+ itemCompany.Points = item.Points
|
|
|
+ itemCompany.ModifyTime = time.Now()
|
|
|
+ itemCompanys = append(itemCompanys, itemCompany)
|
|
|
+ e = models.UpdateCygxActivityPointsBillMulti(items, itemCompanys)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("UpdateCygxActivityPointsBillMulti, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- lenArr := len(activityIds)
|
|
|
- if lenArr == 0 {
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 4:活动发布取消发布
|
|
|
+func YanXuanActivityPointsBillActivityPublishAndCancelReduce(log models.YanXuanActivityPointsRedis) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg("活动发布扣点,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("ActivityId", log.ActivityId, "userId", log.UserId), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ activityId := log.ActivityId
|
|
|
+ publishStatus := log.PublishStatus
|
|
|
+ //comapnyId := log.ComapnyId
|
|
|
+
|
|
|
+ //获取活动是否扣点以及扣点规则明细
|
|
|
+ activityPointsSetDetail, e := models.GetCygxActivityPointsSetDetail(activityId)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCygxActivityPointsSetDetail" + e.Error())
|
|
|
return
|
|
|
}
|
|
|
- condition = ` AND art.activity_id IN (` + utils.GetOrmInReplace(lenArr) + `)`
|
|
|
- pars = append(pars, activityIds)
|
|
|
- listxActivity, e = models.GetCygxActivityList(condition, pars, 0, lenArr)
|
|
|
+ if activityPointsSetDetail == nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if activityPointsSetDetail.CompanyPointsNum == 0 {
|
|
|
+ return // 如果不是办会人,即扣点的这种形式,那么就不做任何处理
|
|
|
+ }
|
|
|
+
|
|
|
+ activityInfo, e := models.GetAddActivityInfoByActivityId(activityId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetAddActivityInfoByActivityId" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ comapnyId := activityPointsSetDetail.CompanyId
|
|
|
+ var items []*models.CygxActivityPointsBill
|
|
|
+
|
|
|
+ var itemCompanys []*models.CygxActivityPointsCompany
|
|
|
+
|
|
|
+ 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)
|
|
|
+
|
|
|
+ //更新对应机构的剩余点数
|
|
|
+ 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
|
|
|
+ }
|
|
|
+
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ e = models.AddCygxActivityPointsBillMulti(items, itemCompanys)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("AddCygxActivityPointsBillMulti, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 6:研选审批通过的时候研选扣点更新
|
|
|
+func YanXuanCompanyApprovalReduce(log models.YanXuanActivityPointsRedis) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg("研选审批通过的时候研选扣点更新,处理Redis队列消息失败:"+err.Error()+fmt.Sprint(log), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ comapnyId := log.ComapnyId
|
|
|
+
|
|
|
+ comapny, e := models.GetCompanyById(comapnyId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCompanyById" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ total, e := models.GetCygxActivityPointsCompanyCountByCompanyId(comapnyId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxActivityPointsCompanyCountByCompanyId, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询研选的权限状态
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ condition += " AND company_id = ? AND status = ? AND chart_permission_id = ? ORDER BY company_report_permission_id DESC LIMIT 1 "
|
|
|
+ pars = append(pars, comapnyId, "正式", utils.CHART_PERMISSION_ID_YANXUAN)
|
|
|
+ companyReportPermissionDetail, e := models.GetCompanyReportPermissionDetailByCondition(condition, pars)
|
|
|
if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
- err = errors.New("GetCygxActivityList,Err: " + e.Error())
|
|
|
+ err = errors.New("GetCompanyPoints, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if companyReportPermissionDetail == nil {
|
|
|
+ return // 如果不存在就不做研选扣点处理
|
|
|
+ }
|
|
|
+ var billDetailed float64
|
|
|
+ var content string
|
|
|
+ //ExpensiveYx int `description:"权益研选: 0-3w; 1-5w"` 3W3次、5W 15次
|
|
|
+ if companyReportPermissionDetail.ExpensiveYx == 1 {
|
|
|
+ billDetailed = 15
|
|
|
+ content = "买方研选plus转正"
|
|
|
+ } else {
|
|
|
+ billDetailed = 3
|
|
|
+ content = "买方研选转正"
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取需要添加的流水信息
|
|
|
+ var items []*models.CygxActivityPointsBill
|
|
|
+ item := new(models.CygxActivityPointsBill)
|
|
|
+ //item.UserId = user.UserId
|
|
|
+ //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 = billDetailed
|
|
|
+ item.RegisterPlatform = log.RegisterPlatform
|
|
|
+ item.AdminId = log.AdminId
|
|
|
+ item.Source = log.Source
|
|
|
+ //item.ChartPermissionId = activityInfo.ChartPermissionId
|
|
|
+ item.DoType = 2
|
|
|
+ item.Content = content
|
|
|
+ item.Points = billDetailed
|
|
|
+ items = append(items, item)
|
|
|
+
|
|
|
+ //更新对应机构的剩余点数
|
|
|
+ var itemCompanys []*models.CygxActivityPointsCompany
|
|
|
+ itemCompany := new(models.CygxActivityPointsCompany)
|
|
|
+ itemCompany.CompanyId = comapny.CompanyId
|
|
|
+ itemCompany.Points = item.Points
|
|
|
+ itemCompany.CreateTime = time.Now()
|
|
|
+ itemCompany.ModifyTime = time.Now()
|
|
|
+ itemCompanys = append(itemCompanys, itemCompany)
|
|
|
+ //判断是否存在记录,如果有就一个新增一个修改,如果没有就同时新增
|
|
|
+ if total == 0 {
|
|
|
+ err = models.AddCygxActivityPointsBillAndCompanyMulti(items, itemCompanys)
|
|
|
+ } else {
|
|
|
+ err = models.AddCygxActivityPointsBillMulti(items, itemCompanys)
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 7:正式专试用定时任务更新研选扣点
|
|
|
+func YanXuanCompanyCompanyTryOutReduce(log models.YanXuanActivityPointsRedis) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg("正式专试用定时任务更新研选扣点更新,处理Redis队列消息失败:"+err.Error()+fmt.Sprint(log), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ comapnyId := log.ComapnyId
|
|
|
+
|
|
|
+ comapny, e := models.GetCompanyById(comapnyId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCompanyById" + e.Error())
|
|
|
return
|
|
|
}
|
|
|
- for _, v := range listxActivity {
|
|
|
- fmt.Println(v)
|
|
|
+ // 获取用户所在公司剩余的点
|
|
|
+ companyPointsNum, e := models.GetCompanyPoints(comapnyId)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCompanyPoints, Err: " + e.Error())
|
|
|
+ return
|
|
|
}
|
|
|
+
|
|
|
+ //获取需要添加的流水信息
|
|
|
+ var items []*models.CygxActivityPointsBill
|
|
|
+ item := new(models.CygxActivityPointsBill)
|
|
|
+ //item.UserId = user.UserId
|
|
|
+ //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 = -companyPointsNum
|
|
|
+ item.RegisterPlatform = log.RegisterPlatform
|
|
|
+ item.AdminId = log.AdminId
|
|
|
+ item.Source = log.Source
|
|
|
+ //item.ChartPermissionId = activityInfo.ChartPermissionId
|
|
|
+ item.DoType = 2
|
|
|
+ item.Content = "到期清零"
|
|
|
+ item.Points = 0
|
|
|
+ items = append(items, item)
|
|
|
+
|
|
|
+ //更新对应机构的剩余点数
|
|
|
+ var itemCompanys []*models.CygxActivityPointsCompany
|
|
|
+ itemCompany := new(models.CygxActivityPointsCompany)
|
|
|
+ itemCompany.CompanyId = comapny.CompanyId
|
|
|
+ itemCompany.Points = 0
|
|
|
+ itemCompany.CreateTime = time.Now()
|
|
|
+ itemCompany.ModifyTime = time.Now()
|
|
|
+ itemCompanys = append(itemCompanys, itemCompany)
|
|
|
+
|
|
|
+ err = models.AddCygxActivityPointsBillMulti(items, itemCompanys)
|
|
|
+
|
|
|
return
|
|
|
}
|