12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package events
-
- import (
- "encoding/json"
- "errors"
- "spaceofcheng/services/models"
- "spaceofcheng/services/models/model"
- "spaceofcheng/services/service/card"
- "spaceofcheng/services/utils"
-
- "github.com/zjxpcyc/tinyevent"
- )
-
- var giveCard = func(e tinyevent.Event) error {
- utils.LogInfo("开始卡赠送操作...")
-
- ctx := NewContext()
- defer DestroyContext(ctx, false)
-
- if e.Payload == nil {
- utils.LogError("注册送卡失败, 没有用户信息")
- return errors.New("注册送卡失败, 没有用户信息")
- }
- cust := e.Payload.(model.TaCustomer)
- // caseID := cust.RecommendCase
- orgID := cust.OrgId
-
- utils.LogInfo("被赠送人: " + cust.CustomerId)
-
- // 不区分案场,随便送
- // 2018年10月30日 yansen 按照产品要求
- query := `
- SELECT
- t.*
- FROM
- sys_activity_action t
- JOIN sys_activity s ON t.activity_id = s.activity_id
- WHERE
- t.active_type = 'giveCard'
- AND s.org_id = ?
- AND s.status = ?
- AND s.activity_type = ?
- `
-
- var acts []model.SysActivityAction
- if err := models.DBEngine.SQL(query, orgID, models.STATUS_NORMAL, e.Name).Find(&acts); err != nil {
- utils.LogError("检查营销活动失败: " + err.Error())
- return errors.New("检查营销活动失败")
- }
-
- fromUser := model.SysUser{
- UserId: "SYSTEM",
- UserName: "system",
- }
- cpServ := card.NewCardServ(ctx)
- for _, act := range acts {
- switch act.ActiveType {
- case ActGiveCard:
- res := make(map[string]interface{})
- if err := json.Unmarshal([]byte(act.ResourceDesc), &res); err != nil {
- utils.LogError("解析体验卡赠送规则失败: " + err.Error())
- continue
- }
-
- cpID, has := res["giftValue"]
- if !has {
- continue
- }
-
- cp, err := cpServ.GetCardByID(cpID.(string))
- if err != nil {
- utils.LogError("获取体验卡失败: " + err.Error())
- continue
- }
-
- if err := cpServ.GiveCardTo(&fromUser, &cust, cp); err != nil {
- utils.LogError("送卡失败: " + err.Error())
- continue
- }
- default:
- utils.LogError("暂不支持的赠送类型")
- }
- }
- return nil
- }
|