1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- package dayActivity
- import (
- mgo "app.yhyue.com/moapp/jybase/mongodb"
- "app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
- "context"
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/util/gconv"
- "jyOrderManager/internal/jyutil"
- "log"
- "strconv"
- )
- const (
- TaskActiveId = 16
- TaskIdVip = 4
- TaskIdMember = 5
- )
- func ActivityNsqPublish(productType string, userId string, userPhone string, orderCode string, state int) {
- log.Println("赠送抽奖次数", productType, userId, userPhone, orderCode, state)
- // 判断订单上的用户id是职位id还是mgoid
- var taskId, positionId int64
- var mgoId, nickName string
- if mgo.IsObjectIdHex(userId) {
- // 如果是mgoid 则根据 mgoid 查询base_user_id 根据 base_user_id 查询 职位id
- mgoId = userId
- userRs, b := jyutil.MG.DB().FindById("user", userId, `{"base_user_id":1,"s_nickname":1}`)
- if b && userRs != nil && len(*userRs) > 0 {
- nickName = gconv.String((*userRs)["s_nickname"])
- baseUserId := gconv.Int((*userRs)["base_user_id"])
- positionData, err := g.DB("base").GetOne(context.Background(), "SELECT id FROM base_position WHERE type=0 and user_id = ?", baseUserId)
- log.Println("抽奖order_code ==", orderCode, baseUserId, err, positionData)
- if !positionData.IsEmpty() {
- positionId = gconv.Int64(positionData.Map()["id"])
- }
- }
- } else {
- // 如果是职位id 则说明是企业版 则根据职位id查询base_user_id 然后根据base_user_id 查询mgoId
- positionId_, err := strconv.ParseInt(userId, 10, 64)
- if err == nil && positionId_ > 0 {
- positionId = positionId_
- positionData, err := g.DB("base").GetOne(context.Background(), "SELECT user_id FROM base_position WHERE id = ?", userId)
- log.Println("抽奖order_code ==", orderCode, positionId, err)
- if !positionData.IsEmpty() {
- baseUserId := gconv.Int64(positionData.Map()["user_id"])
- userRs, b := jyutil.MG.DB().FindOne("user", map[string]interface{}{
- "base_user_id": baseUserId,
- })
- if b && userRs != nil && len(*userRs) > 0 {
- mgoId = mgo.BsonIdToSId((*userRs)["_id"])
- nickName = gconv.String((*userRs)["s_nickname"])
- }
- }
- }
- }
- if positionId > 0 && mgoId != "" {
- if productType == "VIP订阅" {
- taskId = TaskIdVip
- } else {
- taskId = TaskIdMember
- }
- activityNsqSend(context.Background(), taskId, positionId, userId, mgoId, userPhone, orderCode, nickName, state)
- } else {
- log.Printf("用户信息获取有误:order_code-%s user_id-%v phone-%v", orderCode, userId, userPhone)
- }
- }
- func activityNsqSend(ctx context.Context, taskId, positionId int64, userId, mgoId, phone string, orderCode, nickName string, state int) {
- node := jy.Jyweb_node2
- err := jy.Publish(*jyutil.MG.DB(), g.Cfg().MustGet(ctx, "nsq").String(), g.Cfg().MustGet(ctx, "qsqTopic").String(), "lottery_draw_task", userId, node, map[string]interface{}{
- "phone": phone,
- "userId": userId,
- "mgoUserId": mgoId,
- "positionId": positionId,
- "activeId": TaskActiveId,
- "taskInfoId": taskId,
- "orderCode": orderCode,
- "nickName": nickName,
- "state": state,
- })
- if err != nil {
- log.Println("nsq队列写入失败-->", err, "lottery_draw_task", taskId, userId)
- } else {
- log.Println("nsq队列写入成功-->", err, "lottery_draw_task", taskId, userId, map[string]interface{}{
- "phone": phone,
- "userId": userId,
- "mgoUserId": mgoId,
- "positionId": positionId,
- "activeId": TaskActiveId,
- "taskInfoId": taskId,
- "orderCode": orderCode,
- "nickName": nickName,
- "state": state,
- })
- }
- }
|