This commit is contained in:
aozhiwei 2024-06-21 15:27:54 +08:00
parent 3896cccbc7
commit 87da7d2392
4 changed files with 9 additions and 198 deletions

View File

@ -5,6 +5,7 @@ import (
"f5"
"main/constant"
"main/common"
"jccommon"
"fmt"
"strings"
. "main/global"
@ -31,9 +32,9 @@ WHERE A.idx > %d AND A.net_id = %d AND A.owner_address=? `,
cursor, netId)
params := []string{accountAddress}
if filterType == 1 {
sql += "B.status = '" + constant.ORDER_STATUS_ACTIVE + "'"
sql += "B.status = '" + jccommon.ORDER_STATUS_ACTIVE + "'"
} else if filterType == 2 {
sql += "B.status <> '" + constant.ORDER_STATUS_ACTIVE + "'"
sql += "B.status <> '" + jccommon.ORDER_STATUS_ACTIVE + "'"
}
orderBy := ""
rspObj := struct {

View File

@ -6,6 +6,7 @@ import (
"mt"
"main/constant"
"main/common"
"jccommon"
. "main/global"
"fmt"
"strings"
@ -51,7 +52,7 @@ func (this *MarketApi) ProductList(c *gin.Context) {
sql := fmt.Sprintf(`
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() {
sql = fmt.Sprintf(`
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
`,
netId,
constant.ORDER_STATUS_ACTIVE)
jccommon.ORDER_STATUS_ACTIVE)
params := []string{}
f5.GetGoStyleDb().RawQuery(
constant.BCNFT_DB,

View File

@ -3,6 +3,7 @@ package shopcart
import (
"q5"
"f5"
"jccommon"
"main/constant"
"main/common"
. "main/global"
@ -56,7 +57,7 @@ func (this *ShopCartApi) List(c *gin.Context) {
{"net_id", q5.ToString(val.NetId)},
{"contract_address", q5.ToString(val.ContractAddress)},
{"token_id", q5.ToString(val.TokenId)},
{"status", constant.ORDER_STATUS_ACTIVE},
{"status", jccommon.ORDER_STATUS_ACTIVE},
},
func (err error, ds* f5.DataSet) {
err1 = err
@ -164,7 +165,7 @@ func (this *ShopCartApi) Add(c *gin.Context) {
{"net_id", q5.ToString(netId)},
{"contract_address", contractAddress},
{"token_id", tokenId},
{"status", constant.ORDER_STATUS_ACTIVE},
{"status", jccommon.ORDER_STATUS_ACTIVE},
},
func (err error, ds* f5.DataSet) {
err1 = err

View File

@ -1,12 +1,6 @@
package task
import (
"q5"
"f5"
"main/constant"
"main/common"
"time"
"strings"
)
type taskMgr struct {
@ -14,194 +8,8 @@ type taskMgr struct {
}
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) 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
}