-
Notifications
You must be signed in to change notification settings - Fork 0
/
log.go
132 lines (129 loc) · 3.77 KB
/
log.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package MarketGivingNewUser
import (
"errors"
"fmt"
CoreSQLFrom "github.com/fotomxq/weeekj_core/v5/core/sql/from"
MarketGivingCore "github.com/fotomxq/weeekj_core/v5/market/giving_core"
Router2SystemConfig "github.com/fotomxq/weeekj_core/v5/router2/system_config"
ServiceOrderMod "github.com/fotomxq/weeekj_core/v5/service/order/mod"
UserCore "github.com/fotomxq/weeekj_core/v5/user/core"
)
// argsCreateLog 创建新的请求参数
type argsCreateLog struct {
//组织ID
OrgID int64 `db:"org_id" json:"orgID" check:"id"`
//奖励的用户ID
UserID int64 `db:"user_id" json:"userID" check:"id"`
//推荐人用户ID
ReferrerUserID int64 `db:"referrer_user_id" json:"referrerUserID" check:"id" empty:"true"`
//推荐成员ID
ReferrerBindID int64 `db:"referrer_bind_id" json:"referrerBindID" check:"id" empty:"true"`
//交易的金额
// 用户发生交易的总金额
PriceTotal int64 `db:"price_total" json:"priceTotal" check:"price" empty:"true"`
//是否为订单发生时
IsOrder bool `json:"isOrder"`
}
// createLog 创建新的请求
func createLog(args *argsCreateLog) (errCode string, err error) {
//检查符合的条件
var conditionsList []FieldsConditions
err = Router2SystemConfig.MainDB.Select(&conditionsList, "SELECT id, config_id, have_phone, after_sign, before_sign, have_order, params FROM market_giving_new_user WHERE delete_at < to_timestamp(1000000) AND org_id = $1", args.OrgID)
if err != nil || len(conditionsList) < 1 {
//没有符合条件则退出
err = nil
return
}
//遍历条件并触发
for _, v := range conditionsList {
//是否为订单发生时,必须是订单后才发生该奖励
if args.IsOrder && !v.HaveOrder {
continue
}
//检查用户的是否符合奖励条件
var vUserInfo UserCore.FieldsUserType
vUserInfo, err = UserCore.GetUserByID(&UserCore.ArgsGetUserByID{
ID: args.UserID,
OrgID: -1,
})
if err != nil {
err = nil
continue
}
if v.HavePhone {
if vUserInfo.Phone == "" {
continue
}
}
if v.AfterSign.Unix() > 1000000 {
if vUserInfo.CreateAt.Unix() < v.AfterSign.Unix() {
continue
}
}
if v.BeforeSign.Unix() > 1000000 {
if vUserInfo.CreateAt.Unix() > v.BeforeSign.Unix() {
continue
}
}
if v.HaveOrder {
var orderCount int64
orderCount, _ = ServiceOrderMod.GetUserOrderCount(&ServiceOrderMod.ArgsGetUserOrderCount{
OrgID: args.OrgID,
UserID: args.UserID,
IsFinish: true,
})
if orderCount < 1 {
err = UserCore.UpdateUserInfosByID(&UserCore.ArgsUpdateUserInfosByID{
ID: vUserInfo.ID,
OrgID: vUserInfo.OrgID,
Mark: "referrerUserID",
Val: fmt.Sprint(args.ReferrerUserID),
IsRemove: false,
})
if err != nil {
errCode = "update_user_info"
err = errors.New(fmt.Sprint("update user info, ", err))
return
}
err = UserCore.UpdateUserInfosByID(&UserCore.ArgsUpdateUserInfosByID{
ID: vUserInfo.ID,
OrgID: vUserInfo.OrgID,
Mark: "referrerBindID",
Val: fmt.Sprint(args.ReferrerBindID),
IsRemove: false,
})
if err != nil {
errCode = "update_user_info"
err = errors.New(fmt.Sprint("update user info, ", err))
return
}
continue
}
}
//触发赠礼
_, errCode, err = MarketGivingCore.CreateLog(&MarketGivingCore.ArgsCreateLog{
OrgID: args.OrgID,
FromInfo: CoreSQLFrom.FieldsFrom{
System: "new_user",
ID: 0,
Mark: "",
Name: "",
},
UserID: args.UserID,
ReferrerUserID: args.ReferrerUserID,
ReferrerBindID: args.ReferrerBindID,
ConfigID: v.ConfigID,
PriceTotal: args.PriceTotal,
Des: fmt.Sprint("新注册用户奖励"),
})
if err != nil {
if errCode == "config_limit" {
err = nil
continue
}
return
}
}
//反馈
return
}