1
This commit is contained in:
parent
3896cccbc7
commit
87da7d2392
@ -5,6 +5,7 @@ import (
|
|||||||
"f5"
|
"f5"
|
||||||
"main/constant"
|
"main/constant"
|
||||||
"main/common"
|
"main/common"
|
||||||
|
"jccommon"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
. "main/global"
|
. "main/global"
|
||||||
@ -31,9 +32,9 @@ WHERE A.idx > %d AND A.net_id = %d AND A.owner_address=? `,
|
|||||||
cursor, netId)
|
cursor, netId)
|
||||||
params := []string{accountAddress}
|
params := []string{accountAddress}
|
||||||
if filterType == 1 {
|
if filterType == 1 {
|
||||||
sql += "B.status = '" + constant.ORDER_STATUS_ACTIVE + "'"
|
sql += "B.status = '" + jccommon.ORDER_STATUS_ACTIVE + "'"
|
||||||
} else if filterType == 2 {
|
} else if filterType == 2 {
|
||||||
sql += "B.status <> '" + constant.ORDER_STATUS_ACTIVE + "'"
|
sql += "B.status <> '" + jccommon.ORDER_STATUS_ACTIVE + "'"
|
||||||
}
|
}
|
||||||
orderBy := ""
|
orderBy := ""
|
||||||
rspObj := struct {
|
rspObj := struct {
|
||||||
|
@ -6,6 +6,7 @@ import (
|
|||||||
"mt"
|
"mt"
|
||||||
"main/constant"
|
"main/constant"
|
||||||
"main/common"
|
"main/common"
|
||||||
|
"jccommon"
|
||||||
. "main/global"
|
. "main/global"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
@ -51,7 +52,7 @@ func (this *MarketApi) ProductList(c *gin.Context) {
|
|||||||
sql := fmt.Sprintf(`
|
sql := fmt.Sprintf(`
|
||||||
SELECT * FROM t_order A WHERE idx > %d AND net_id = %d AND status="%s"
|
SELECT * FROM t_order A WHERE idx > %d AND net_id = %d AND status="%s"
|
||||||
`,
|
`,
|
||||||
cursor, netId, constant.ORDER_STATUS_ACTIVE)
|
cursor, netId, jccommon.ORDER_STATUS_ACTIVE)
|
||||||
if f5.IsTestEnv() {
|
if f5.IsTestEnv() {
|
||||||
sql = fmt.Sprintf(`
|
sql = fmt.Sprintf(`
|
||||||
SELECT * FROM t_order A WHERE idx > %d AND net_id = %d
|
SELECT * FROM t_order A WHERE idx > %d AND net_id = %d
|
||||||
@ -245,7 +246,7 @@ SELECT item_id, COUNT(idx) AS num FROM t_order
|
|||||||
WHERE net_id = %d AND status="%s" AND item_id <> 0 GROUP BY item_id
|
WHERE net_id = %d AND status="%s" AND item_id <> 0 GROUP BY item_id
|
||||||
`,
|
`,
|
||||||
netId,
|
netId,
|
||||||
constant.ORDER_STATUS_ACTIVE)
|
jccommon.ORDER_STATUS_ACTIVE)
|
||||||
params := []string{}
|
params := []string{}
|
||||||
f5.GetGoStyleDb().RawQuery(
|
f5.GetGoStyleDb().RawQuery(
|
||||||
constant.BCNFT_DB,
|
constant.BCNFT_DB,
|
||||||
|
@ -3,6 +3,7 @@ package shopcart
|
|||||||
import (
|
import (
|
||||||
"q5"
|
"q5"
|
||||||
"f5"
|
"f5"
|
||||||
|
"jccommon"
|
||||||
"main/constant"
|
"main/constant"
|
||||||
"main/common"
|
"main/common"
|
||||||
. "main/global"
|
. "main/global"
|
||||||
@ -56,7 +57,7 @@ func (this *ShopCartApi) List(c *gin.Context) {
|
|||||||
{"net_id", q5.ToString(val.NetId)},
|
{"net_id", q5.ToString(val.NetId)},
|
||||||
{"contract_address", q5.ToString(val.ContractAddress)},
|
{"contract_address", q5.ToString(val.ContractAddress)},
|
||||||
{"token_id", q5.ToString(val.TokenId)},
|
{"token_id", q5.ToString(val.TokenId)},
|
||||||
{"status", constant.ORDER_STATUS_ACTIVE},
|
{"status", jccommon.ORDER_STATUS_ACTIVE},
|
||||||
},
|
},
|
||||||
func (err error, ds* f5.DataSet) {
|
func (err error, ds* f5.DataSet) {
|
||||||
err1 = err
|
err1 = err
|
||||||
@ -164,7 +165,7 @@ func (this *ShopCartApi) Add(c *gin.Context) {
|
|||||||
{"net_id", q5.ToString(netId)},
|
{"net_id", q5.ToString(netId)},
|
||||||
{"contract_address", contractAddress},
|
{"contract_address", contractAddress},
|
||||||
{"token_id", tokenId},
|
{"token_id", tokenId},
|
||||||
{"status", constant.ORDER_STATUS_ACTIVE},
|
{"status", jccommon.ORDER_STATUS_ACTIVE},
|
||||||
},
|
},
|
||||||
func (err error, ds* f5.DataSet) {
|
func (err error, ds* f5.DataSet) {
|
||||||
err1 = err
|
err1 = err
|
||||||
|
@ -1,12 +1,6 @@
|
|||||||
package task
|
package task
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"q5"
|
|
||||||
"f5"
|
|
||||||
"main/constant"
|
|
||||||
"main/common"
|
|
||||||
"time"
|
|
||||||
"strings"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type taskMgr struct {
|
type taskMgr struct {
|
||||||
@ -14,194 +8,8 @@ type taskMgr struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this* taskMgr) Init() {
|
func (this* taskMgr) Init() {
|
||||||
go this.loadWebHookEvent(constant.ORDER_UPDATE_EVENT, this.orderUpdatedCb)
|
|
||||||
go this.loadWebHookEvent(constant.ACTIVITY_SALE_EVENT, this.activitySaleCb)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this* taskMgr) UnInit() {
|
func (this* taskMgr) UnInit() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this* taskMgr) loadWebHookEvent(eventName string, cb func(ds *f5.DataSet) bool) {
|
|
||||||
var lastSyncIdx = this.getLastIdx(eventName)
|
|
||||||
for true {
|
|
||||||
if lastSyncIdx < 0 {
|
|
||||||
lastSyncIdx = this.getLastIdx(eventName)
|
|
||||||
if lastSyncIdx >= 0 {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
var newLastSyncIdx int64
|
|
||||||
f5.GetGoStyleDb().RawQuery(
|
|
||||||
constant.BCEVENT_DB,
|
|
||||||
"SELECT * FROM t_webhook_event WHERE idx > ? AND event_name = ? LIMIT 1000",
|
|
||||||
[]string{
|
|
||||||
q5.ToString(lastSyncIdx),
|
|
||||||
eventName,
|
|
||||||
},
|
|
||||||
func (err error, ds *f5.DataSet) {
|
|
||||||
if err == nil {
|
|
||||||
for ds.Next() {
|
|
||||||
idx := q5.ToInt64(ds.GetByName("idx"))
|
|
||||||
if cb(ds) {
|
|
||||||
if idx > newLastSyncIdx {
|
|
||||||
newLastSyncIdx = idx
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
if newLastSyncIdx > lastSyncIdx {
|
|
||||||
lastSyncIdx = newLastSyncIdx
|
|
||||||
this.saveLastIdx(eventName, lastSyncIdx)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
time.Sleep(time.Second * 3)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this* taskMgr) getLastIdx(eventName string) int64 {
|
|
||||||
var lastSyncIdx int64 = -1
|
|
||||||
f5.GetGoStyleDb().OrmSelectOne(
|
|
||||||
constant.BCEVENT_DB,
|
|
||||||
"t_webhook_process_last_idx",
|
|
||||||
[][]string{
|
|
||||||
{"event_name", eventName},
|
|
||||||
},
|
|
||||||
func (err error, ds *f5.DataSet) {
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if ds.Next() {
|
|
||||||
lastSyncIdx = q5.ToInt64(ds.GetByName("last_idx"))
|
|
||||||
} else {
|
|
||||||
lastSyncIdx = 0
|
|
||||||
}
|
|
||||||
})
|
|
||||||
return lastSyncIdx
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this* taskMgr) saveLastIdx(eventName string, lastIdx int64) bool {
|
|
||||||
var result bool = false
|
|
||||||
nowTime := f5.GetApp().GetRealSeconds()
|
|
||||||
f5.GetGoStyleDb().Upsert(
|
|
||||||
constant.BCEVENT_DB,
|
|
||||||
"t_webhook_process_last_idx",
|
|
||||||
[][]string{
|
|
||||||
{"event_name", eventName},
|
|
||||||
},
|
|
||||||
[][]string{
|
|
||||||
{"last_idx", q5.ToString(lastIdx)},
|
|
||||||
},
|
|
||||||
[][]string{
|
|
||||||
{"event_name", eventName},
|
|
||||||
{"last_idx", q5.ToString(lastIdx)},
|
|
||||||
{"createtime", q5.ToString(nowTime)},
|
|
||||||
{"modifytime", q5.ToString(nowTime)},
|
|
||||||
},
|
|
||||||
func (err error, lastInsertId int64, rowsAffected int64) {
|
|
||||||
result = err == nil
|
|
||||||
})
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this* taskMgr) orderUpdatedCb(ds *f5.DataSet) bool {
|
|
||||||
nowTime := f5.GetApp().GetRealSeconds()
|
|
||||||
rawData := ds.GetByName("raw_data")
|
|
||||||
p := new(common.OrderUpdatedEvent)
|
|
||||||
err := q5.DecodeJson(rawData, &p)
|
|
||||||
netId := 13473
|
|
||||||
if err == nil {
|
|
||||||
updateFields := [][]string{
|
|
||||||
{"order_id", p.Data.Id},
|
|
||||||
{"chain", p.Chain},
|
|
||||||
{"status", p.Data.Status.Name},
|
|
||||||
{"start_time", q5.SafeToString(p.Data.StartAt)},
|
|
||||||
{"end_time", q5.SafeToString(p.Data.EndAt)},
|
|
||||||
{"created_at", q5.SafeToString(p.Data.CreatedAt)},
|
|
||||||
{"updated_at", q5.SafeToString(p.Data.UpdatedAt)},
|
|
||||||
{"event_id", p.EventId},
|
|
||||||
{"event_data", rawData},
|
|
||||||
{"modifytime", q5.ToString(nowTime)},
|
|
||||||
}
|
|
||||||
insertFields := [][]string{
|
|
||||||
{"order_id", p.Data.Id},
|
|
||||||
{"chain", p.Chain},
|
|
||||||
{"status", p.Data.Status.Name},
|
|
||||||
{"net_id", q5.ToString(netId)},
|
|
||||||
{"token_id", p.Data.Sell[0].TokenId},
|
|
||||||
{"contract_address", strings.ToLower(p.Data.Sell[0].ContractAddress)},
|
|
||||||
{"start_time", q5.SafeToString(p.Data.StartAt)},
|
|
||||||
{"end_time", q5.SafeToString(p.Data.EndAt)},
|
|
||||||
{"created_at", q5.SafeToString(p.Data.CreatedAt)},
|
|
||||||
{"updated_at", q5.SafeToString(p.Data.UpdatedAt)},
|
|
||||||
{"event_id", p.EventId},
|
|
||||||
{"event_data", rawData},
|
|
||||||
{"createtime", q5.ToString(nowTime)},
|
|
||||||
{"modifytime", q5.ToString(nowTime)},
|
|
||||||
}
|
|
||||||
f5.GetGoStyleDb().UpsertEx(
|
|
||||||
constant.BCNFT_DB,
|
|
||||||
"t_order",
|
|
||||||
[][]string{
|
|
||||||
{"net_id", q5.ToString(netId)},
|
|
||||||
{"contract_address", strings.ToLower(p.Data.Sell[0].ContractAddress)},
|
|
||||||
{"token_id", p.Data.Sell[0].TokenId},
|
|
||||||
},
|
|
||||||
updateFields,
|
|
||||||
insertFields,
|
|
||||||
func (err error, lastInsertId int64, rowsAffected int64) {
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
},
|
|
||||||
func (ds *f5.DataSet) bool {
|
|
||||||
return p.EventId > ds.GetByName("event_id")
|
|
||||||
})
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this* taskMgr) activitySaleCb(ds *f5.DataSet) bool {
|
|
||||||
nowTime := f5.GetApp().GetRealSeconds()
|
|
||||||
rawData := ds.GetByName("raw_data")
|
|
||||||
p := new(common.ActivitySaleEvent)
|
|
||||||
err := q5.DecodeJson(rawData, &p)
|
|
||||||
netId := 13473
|
|
||||||
if err == nil {
|
|
||||||
updateFields := [][]string{
|
|
||||||
}
|
|
||||||
insertFields := [][]string{
|
|
||||||
{"order_id", p.Data.Details.OrderId},
|
|
||||||
{"chain", p.Chain},
|
|
||||||
{"net_id", q5.ToString(netId)},
|
|
||||||
{"token_id", p.Data.Details.Asset[0].TokenId},
|
|
||||||
{"contract_address", strings.ToLower(p.Data.Details.Asset[0].ContractAddress)},
|
|
||||||
{"buyer", p.Data.Details.From},
|
|
||||||
{"seller", p.Data.Details.To},
|
|
||||||
{"event_id", p.EventId},
|
|
||||||
{"event_data", rawData},
|
|
||||||
{"createtime", q5.ToString(nowTime)},
|
|
||||||
{"modifytime", q5.ToString(nowTime)},
|
|
||||||
}
|
|
||||||
f5.GetGoStyleDb().UpsertEx(
|
|
||||||
constant.BCNFT_DB,
|
|
||||||
"t_sale",
|
|
||||||
[][]string{
|
|
||||||
{"order_id", p.Data.Details.OrderId},
|
|
||||||
},
|
|
||||||
updateFields,
|
|
||||||
insertFields,
|
|
||||||
func (err error, lastInsertId int64, rowsAffected int64) {
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
},
|
|
||||||
func (ds *f5.DataSet) bool {
|
|
||||||
return p.EventId > ds.GetByName("event_id")
|
|
||||||
})
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user