123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- package services
- import (
- "encoding/json"
- "fmt"
- "hongze/hongze_cygx/models/rai_serve"
- "hongze/hongze_cygx/utils"
- "time"
- )
- //权益服务统计
- // Redis对列消息中的结构体
- type RaiServeBillRedis struct {
- Content string `comment:"服务内容说明"`
- UserId int `comment:"用户ID"`
- ComapnyId int `comment:"公司ID"`
- SourceId int `comment:"来源ID"`
- Source string `comment:"来源"`
- RegisterPlatform int `comment:"来源 1小程序,2:网页"`
- ViewTime time.Time `comment:"浏览时间"`
- }
- // 权益服务统计添加到Redis队列中
- func CygxRaiServeBillRedisAdd(content, source string, userId, comapnyId, sourceId, registerPlatform int, viewTime time.Time) (err error) {
- defer func() {
- if err != nil {
- fmt.Println(err)
- msg := fmt.Sprint("source:", source, "userId:", userId, "sourceId", sourceId)
- go utils.SendAlarmMsg("权益服务统计添加到Redis队列中,写入Redis队列消息失败 CygxRaiServeBillRedisAdd:"+err.Error()+msg, 2)
- }
- }()
- log := &rai_serve.RaiServeBillRedis{Content: content, Source: source, UserId: userId, ComapnyId: comapnyId, SourceId: sourceId, RegisterPlatform: registerPlatform, ViewTime: viewTime}
- if utils.Re == nil {
- err := utils.Rc.LPush(utils.CYGX_RAI_SERVE_BILL_KEY, log)
- if err != nil {
- fmt.Println("RaiServeBillRedis LPush Err:" + err.Error())
- }
- }
- return
- }
- //func init() {
- // CygxRaiServeBillRedisAddReduce()
- //}
- // CygxRaiServeBillRedisAddReduce 处理权益服务统计
- func CygxRaiServeBillRedisAddReduce() (err error) {
- for {
- //SourceType int `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会。"`
- utils.Rc.Brpop(utils.CYGX_RAI_SERVE_BILL_KEY, func(b []byte) {
- var log rai_serve.RaiServeBillRedis
- if err := json.Unmarshal(b, &log); err != nil {
- fmt.Println("json unmarshal wrong!")
- go utils.SendAlarmMsg("处理研选活动扣点处理Redis队列消息失败:"+err.Error()+string(b), 2)
- }
- switch log.Source {
- case utils.CYGX_OBJ_YANXUANSPECIAL: //研选专栏阅读记录处理
- go RaiServeBillRedisAddReduceByYanxuanspecial(log)
- fmt.Println("研选专栏阅读记录处理")
- break
- default:
- fmt.Println(string(b))
- go utils.SendAlarmMsg("处理研选活动扣点处理Redis队列消息失败:"+string(b), 2)
- }
- })
- }
- }
- // 处理权益服务统计->研选阅读记录
- func RaiServeBillRedisAddReduceByYanxuanspecial(log rai_serve.RaiServeBillRedis) (err error) {
- source := log.Source
- userId := log.UserId
- sourceId := log.SourceId
- defer func() {
- if err != nil {
- fmt.Println(err)
- go utils.SendAlarmMsg("用户报名活动扣点,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("source:", source, "userId:", userId, "sourceId", sourceId), 2)
- }
- }()
- //activityId := log.ActivityId
- //userId := log.UserId
- //
- //activtyPayTotal := GetCygxOrderVirtualAssetdCountTotal(userId, activityId) // 单场付费活动不处理扣点明细
- //if activtyPayTotal > 0 {
- // return
- //}
- //
- ////获取活动是否扣点以及扣点规则明细
- //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
- //}
- //companyId := user.CompanyId
- ////判断公司是不是满足扣点情况,如果是后台超管手动给试用客户报名,就写入一条点数初始化数据
- //total, e := models.GetCygxActivityPointsCompanyCountByCompanyId(companyId)
- //if e != nil {
- // err = errors.New("GetCygxActivityPointsCompanyCountByCompanyId, Err: " + e.Error())
- // return
- //}
- //var companyPointsNum float64
- //if total == 0 {
- // companyPointsNum = 0
- // itemPointsCompany := new(models.CygxActivityPointsCompany)
- //
- // itemPointsCompany.CompanyId = companyId
- // itemPointsCompany.CompanyName = user.CompanyName
- // itemPointsCompany.CreateTime = time.Now()
- // itemPointsCompany.ModifyTime = time.Now()
- //
- // e = models.AddCygxActivityPointsCompany(itemPointsCompany)
- // if e != nil {
- // err = errors.New("AddCygxActivityPointsCompany, Err: " + e.Error())
- // return
- // }
- //} else {
- // // 获取用户所在公司剩余的点
- // 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
- }
|