This commit is contained in:
aozhiwei 2024-08-06 13:46:09 +08:00
commit a508cdfa30
17 changed files with 262 additions and 130 deletions

View File

@ -1,3 +1,8 @@
# 本地host文件修改
192.144.140.87 mysql-test.kingsome.cn
192.144.140.87 redis-test.kingsome.cn
192.144.200.110 polyservice-test.kingsome.cn
# 数据库规范 # 数据库规范
所有的表都必须有一下字段 所有的表都必须有一下字段

View File

@ -1,9 +1,11 @@
{ {
"api": [ "api": [
"*",
"api/v1/mail/add", "api/v1/mail/add",
"api/v1/mail/edit", "api/v1/mail/edit",
"api/v1/mail/list" "api/v1/mail/list"
], ],
"ui": [ "ui": [
"*"
] ]
} }

View File

@ -9,5 +9,17 @@
"api": ["xxx", "-xxx"], "api": ["xxx", "-xxx"],
"ui": ["addannouncement", "editannouncement", "addaudit", "editaudit"] "ui": ["addannouncement", "editannouncement", "addaudit", "editaudit"]
} }
},
{
"account_address": "0xAd2DeA1977055Db01C66e6E53309C4604AB869b8",
"__doc__": "az",
"roles": [
"admin",
"customer_service"
],
"special": {
"api": ["xxx", "-xxx"],
"ui": ["addannouncement", "editannouncement", "addaudit", "editaudit"]
}
} }
] ]

View File

@ -1,5 +1,5 @@
[ [
{ {
"url": "http://192.144.200.110:7682" "url": "http://polyservice-test.kingsome.cn:7682"
} }
] ]

View File

@ -1,24 +1,63 @@
-- MySQL dump 10.14 Distrib 5.5.41-MariaDB, for Linux (x86_64)
--
-- Host: localhost Database: admindb
-- ------------------------------------------------------
-- Server version 5.5.41-MariaDB
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `version`
--
DROP TABLE IF EXISTS `version`; DROP TABLE IF EXISTS `version`;
/*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */; /*!40101 SET character_set_client = utf8 */;
CREATE TABLE `version` ( CREATE TABLE `version` (
`idx` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增id', `idx` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增id',
`version` int(11) NOT NULL DEFAULT '0' COMMENT '版本号', `version` int(11) NOT NULL DEFAULT '0' COMMENT '版本号',
PRIMARY KEY (`idx`), PRIMARY KEY (`idx`),
UNIQUE KEY `version` (`version`) UNIQUE KEY `version` (`version`)
) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; ) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
/*!40101 SET character_set_client = @saved_cs_client */; /*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `t_op_log`
--
DROP TABLE IF EXISTS `t_user`; DROP TABLE IF EXISTS `t_op_log`;
/*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */; /*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t_user` ( CREATE TABLE `t_op_log` (
`idx` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增id', `idx` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增id',
`username` varchar(32) NOT NULL DEFAULT '0' COMMENT '用户名', `account_address` varchar(60) NOT NULL COMMENT '钱包地址',
`nickname` varchar(32) NOT NULL DEFAULT '0' COMMENT '别名', `http_method` varchar(10) NOT NULL COMMENT 'http method<10byte',
`password` varchar(64) NOT NULL DEFAULT '0' COMMENT '密码', `url` text NOT NULL DEFAULT '' COMMENT 'url<64kb',
PRIMARY KEY (`idx`), `params` text NOT NULL DEFAULT '' COMMENT 'params<64kb',
UNIQUE KEY `username` (`username`) `postdata` mediumtext NOT NULL DEFAULT '' COMMENT 'postdata<16mb',
) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; `createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
`modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
KEY `idx_account_address` (`account_address`),
PRIMARY KEY (`idx`)
) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
/*!40101 SET character_set_client = @saved_cs_client */; /*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2015-08-19 18:52:06

View File

@ -15,8 +15,29 @@ type MailApi struct {
} }
func (this *MailApi) ListMail(c *gin.Context) { func (this *MailApi) ListMail(c *gin.Context) {
mails := []system.Mail{} var pageSize int32 = 100
f5.GetApp().GetOrmDb(constant.MAIL_DB).Find(&mails) var cursor int64 = 0
orderBy := ""
sql := "SELECT * FROM t_mail"
subFilters := []f5.DbQueryFilter{}
mails := []*system.Mail{}
f5.GetGoStyleDb().StreamPageQuery(
constant.MAIL_DB,
pageSize,
cursor,
sql,
[]string{
},
f5.GetDbFilter().Comp(subFilters...),
orderBy,
func (err error, pagination *f5.StreamPagination) {
//rspObj.Page.FillPage(pagination)
},
func (ds *f5.DataSet) {
p := new(system.Mail)
f5.UnmarshalModel(ds, p)
q5.AppendSlice(&mails, p)
})
c.JSON(http.StatusOK, gin.H{ c.JSON(http.StatusOK, gin.H{
"code": 0, "code": 0,
"message": "", "message": "",
@ -26,6 +47,7 @@ func (this *MailApi) ListMail(c *gin.Context) {
func (this *MailApi) AddMail(c *gin.Context) { func (this *MailApi) AddMail(c *gin.Context) {
reqJson := struct { reqJson := struct {
UniKey string `json:"unikey"`
MailType int32 `binding:"required" json:"mailtype"` MailType int32 `binding:"required" json:"mailtype"`
SendTime int32 `json:"sendtime"` SendTime int32 `json:"sendtime"`
ExpireTime int32 `json:"expiretime"` ExpireTime int32 `json:"expiretime"`
@ -62,9 +84,13 @@ func (this *MailApi) AddMail(c *gin.Context) {
mail.Content = reqJson.Content mail.Content = reqJson.Content
mail.Attachments = reqJson.Attachments mail.Attachments = reqJson.Attachments
mail.Recipients = reqJson.Recipients mail.Recipients = reqJson.Recipients
mail.Tag1 = jccommon.MAIL_TAG1_CUSTOM
mail.Tag2 = jccommon.MAIL_TAG2_CUSTOM_NORMAL
mail.CreateTime = nowDaySeconds mail.CreateTime = nowDaySeconds
mail.ModifyTime = nowDaySeconds mail.ModifyTime = nowDaySeconds
f5.GetApp().GetOrmDb(constant.MAIL_DB).Create(mail) if f5.GetApp().GetOrmDb(constant.MAIL_DB).Create(mail).Error == nil {
}
{ {
e := new(jccommon.MailEvent) e := new(jccommon.MailEvent)
e.EventName = jccommon.EVENT_MAIL_UPDATE e.EventName = jccommon.EVENT_MAIL_UPDATE

View File

@ -47,26 +47,6 @@ func (this *app) Update() {
} }
func (this *app) registerDataSources() { func (this *app) registerDataSources() {
f5.GetJsStyleDb().RegisterDataSource(
constant.GAME_DB,
mt.Table.GameDb.GetById(0).GetHost(),
mt.Table.GameDb.GetById(0).GetPort(),
mt.Table.GameDb.GetById(0).GetUser(),
mt.Table.GameDb.GetById(0).GetPasswd(),
mt.Table.GameDb.GetById(0).GetDatabase(),
1,
mt.Table.GameDb.GetById(0).GetMaxOpenConns(),
mt.Table.GameDb.GetById(0).GetMaxIdleConns())
f5.GetJsStyleDb().RegisterDataSource(
constant.FRIEND_DB,
mt.Table.FriendDb.GetById(0).GetHost(),
mt.Table.FriendDb.GetById(0).GetPort(),
mt.Table.FriendDb.GetById(0).GetUser(),
mt.Table.FriendDb.GetById(0).GetPasswd(),
mt.Table.FriendDb.GetById(0).GetDatabase(),
1,
mt.Table.FriendDb.GetById(0).GetMaxOpenConns(),
mt.Table.FriendDb.GetById(0).GetMaxIdleConns())
f5.GetApp().RegisterOrmDb( f5.GetApp().RegisterOrmDb(
constant.ADMIN_DB, constant.ADMIN_DB,
mt.Table.AdminDb.GetById(0).GetHost(), mt.Table.AdminDb.GetById(0).GetHost(),
@ -141,23 +121,6 @@ func (this *app) registerDataSources() {
mt.Table.ConfDb.GetById(0).GetMaxIdleConns()) mt.Table.ConfDb.GetById(0).GetMaxIdleConns())
} }
func (this *app) AddSession(accountId string) string {
/*
this.sessionLock.Lock()
defer this.sessionLock.Unlock()
uuid := f5.GetApp().NewGlobalUuid()
str := fmt.Sprintf("%s%d%s%d", accountId, uuid, randStringBytes(12), time.Now().Unix())
md5New := md5.New()
strByte := []byte(str)
md5New.Write(strByte)
md5String := hex.EncodeToString(md5New.Sum(nil))
token := accountId + "|" + md5String
this.sessionHash[accountId] = token
return token
*/
return ""
}
func (this *app) HasTask() bool { func (this *app) HasTask() bool {
return false return false
} }

View File

@ -33,6 +33,8 @@ type Mail struct {
SendTime int32 `gorm:"column:sendtime" json:"sendtime"` SendTime int32 `gorm:"column:sendtime" json:"sendtime"`
UserRegStartTime int32 `gorm:"column:user_reg_start_time" json:"user_reg_start_time"` UserRegStartTime int32 `gorm:"column:user_reg_start_time" json:"user_reg_start_time"`
UserRegEndTime int32 `gorm:"column:user_reg_end_time" json:"user_reg_end_time"` UserRegEndTime int32 `gorm:"column:user_reg_end_time" json:"user_reg_end_time"`
Tag1 int32 `gorm:"column:tag1" json:"tag1"`
Tag2 int32 `gorm:"column:tag2;" json:"tag2"`
ExpireTime int32 `gorm:"column:expiretime" json:"expiretime"` ExpireTime int32 `gorm:"column:expiretime" json:"expiretime"`
CreateTime int32 `gorm:"column:createtime;<-:create" json:"createtime"` CreateTime int32 `gorm:"column:createtime;<-:create" json:"createtime"`
ModifyTime int32 `gorm:"column:modifytime" json:"modifytime"` ModifyTime int32 `gorm:"column:modifytime" json:"modifytime"`

View File

@ -128,7 +128,7 @@ func AddGameLog(accountId string, logType string, subType string,
}) })
} }
func UserAddDiamond(accountId string, diamondNum int32, netId int32, tokenId string, reason int32) bool { func UserAddDiamond(accountId string, diamondNum int64, netId int32, orderId string) bool {
var oldDiamond float64 var oldDiamond float64
{ {
f5.GetGoStyleDb().OrmSelectOne( f5.GetGoStyleDb().OrmSelectOne(
@ -144,8 +144,8 @@ func UserAddDiamond(accountId string, diamondNum int32, netId int32, tokenId str
if ds.Next() { if ds.Next() {
oldDiamond = q5.ToFloat64(ds.GetByName("diamond")) oldDiamond = q5.ToFloat64(ds.GetByName("diamond"))
AddGameLog(accountId, jccommon.GAME_LOG_TYPE_BACKTASK_USER_ADD_DIAMOND_START, AddGameLog(accountId, jccommon.GAME_LOG_TYPE_BACKTASK_USER_ADD_DIAMOND_START,
q5.ToString(reason), "",
q5.ToString(netId), tokenId, q5.ToString(oldDiamond), q5.ToString(diamondNum)) q5.ToString(netId), orderId, q5.ToString(oldDiamond), q5.ToString(diamondNum))
} }
}) })
} }
@ -181,8 +181,8 @@ func UserAddDiamond(accountId string, diamondNum int32, netId int32, tokenId str
if ds.Next() { if ds.Next() {
newDiamond := q5.ToFloat64(ds.GetByName("diamond")) newDiamond := q5.ToFloat64(ds.GetByName("diamond"))
AddGameLog(accountId, jccommon.GAME_LOG_TYPE_BACKTASK_USER_ADD_DIAMOND_END, AddGameLog(accountId, jccommon.GAME_LOG_TYPE_BACKTASK_USER_ADD_DIAMOND_END,
q5.ToString(reason), "",
q5.ToString(netId), tokenId, q5.ToString(oldDiamond), q5.ToString(newDiamond)) q5.ToString(netId), orderId, q5.ToString(oldDiamond), q5.ToString(newDiamond))
} }
}) })
} }

View File

@ -4,9 +4,8 @@ import (
"q5" "q5"
"f5" "f5"
"main/constant" "main/constant"
"main/service"
"fmt" "fmt"
//"main/mt"
//"strings"
"jccommon" "jccommon"
) )
@ -22,19 +21,20 @@ func (this *recharge) unInit() {
func (this *recharge) process() { func (this *recharge) process() {
f5.GetGoStyleDb().LoopLoadNew( f5.GetGoStyleDb().LoopLoadNew(
constant.BCEVENT_DB, constant.BCNFT_DB,
"recharge", "recharge_order",
"t_recharge", "t_recharge_order",
0, 0,
func (lastIdx int64, maxIdx int64) (string, []string) { func (lastIdx int64, maxIdx int64) (string, []string) {
sql := fmt.Sprintf(` sql := fmt.Sprintf(`
SELECT * FROM t_recharge SELECT * FROM t_recharge_order
WHERE idx > %d AND idx <= %d AND status = %d WHERE idx > %d AND idx <= %d AND pay_status = %d AND delivery_status = %d
ORDER BY idx LIMIT 1000 ORDER BY idx LIMIT 1000
`, `,
lastIdx, lastIdx,
maxIdx, maxIdx,
jccommon.RECHARGE_STATUS_PENDING) jccommon.RECHARGE_ORDER_PAY_STATUS_OK,
jccommon.RECHARGE_ORDER_DELIVERY_STATUS_PENDING)
params := []string{ params := []string{
} }
return sql, params return sql, params
@ -43,40 +43,34 @@ ORDER BY idx LIMIT 1000
} }
func (this *recharge) deliverGoods(ds *f5.DataSet) bool { func (this *recharge) deliverGoods(ds *f5.DataSet) bool {
var result = false idx := q5.ToInt64(ds.GetByName("idx"))
orderId := ds.GetByName("order_id") orderId := ds.GetByName("order_id")
f5.GetGoStyleDb().OrmSelectOne( passportAddress := ds.GetByName("passport_address")
constant.GAME_DB, diamond := q5.ToInt64(ds.GetByName("diamond"))
"t_recharge_order", netId := q5.ToInt32(ds.GetByName("net_id"))
[][]string{ accountId := service.GetAccountIdByAddress(passportAddress)
{"order_id", orderId}, if accountId == "" {
}, return true
func (err error, ds *f5.DataSet) { }
if err != nil { if this.markOk(idx, accountId) != nil {
result = false return true
return }
} service.UserAddDiamond(accountId, diamond, netId, orderId)
idx := q5.ToInt64(ds.GetByName("idx")) return true
status := q5.ToInt32(ds.GetByName("stauts"))
if status != 0 {
result = this.markStatus(idx, jccommon.RECHARGE_STATUS_SENT) == nil
return
}
result = this.markStatus(idx, jccommon.RECHARGE_STATUS_SENT) == nil
})
return result
} }
func (this *recharge) markStatus(idx int64, status int32) error { func (this *recharge) markOk(idx int64, deliveryAccountId string) error {
var resultErr error var resultErr error
f5.GetGoStyleDb().Update( f5.GetGoStyleDb().Update(
constant.BCEVENT_DB, constant.BCNFT_DB,
"t_recharge", "t_recharge_order",
[][]string{ [][]string{
{"idx", q5.ToString(idx)}, {"idx", q5.ToString(idx)},
}, },
[][]string{ [][]string{
{"status", q5.ToString(status)}, {"delivery_status", q5.ToString(jccommon.RECHARGE_ORDER_DELIVERY_STATUS_OK)},
{"delivery_time", q5.ToString(f5.GetApp().GetRealSeconds())},
{"receiver_account_id", deliveryAccountId},
}, },
func (err error, lastInsertId int64, rowsAffected int64) { func (err error, lastInsertId int64, rowsAffected int64) {
resultErr = err resultErr = err

View File

@ -37,11 +37,14 @@ const (
) )
const ( const (
MAIL_TAG1_CUSTOM = 1
MAIL_TAG1_HERO = 100 MAIL_TAG1_HERO = 100
MAIL_TAG1_GOLD_BULLION = 101 MAIL_TAG1_GOLD_BULLION = 101
) )
const ( const (
MAIL_TAG2_CUSTOM_NORMAL = 1
MAIL_TAG2_HERO_MINT = 1 MAIL_TAG2_HERO_MINT = 1
MAIL_TAG2_HERO_LOCK = 2 MAIL_TAG2_HERO_LOCK = 2
MAIL_TAG2_HERO_UNLOCK = 3 MAIL_TAG2_HERO_UNLOCK = 3
@ -105,13 +108,16 @@ const (
) )
const ( const (
RECHARGE_ORDER_STATUS_PENDING = 0 RECHARGE_ORDER_PAY_STATUS_PENDING = 0
RECHARGE_ORDER_STATUS_SENT =1 RECHARGE_ORDER_PAY_STATUS_OK = 1
RECHARGE_ORDER_DELIVERY_STATUS_PENDING =0
RECHARGE_ORDER_DELIVERY_STATUS_OK = 1
) )
const ( const (
RECHARGE_STATUS_PENDING = 0 RECHARGE_STATUS_PENDING = 0
RECHARGE_STATUS_SENT =1 RECHARGE_STATUS_SENT = 1
) )
const ( const (

View File

@ -84,6 +84,14 @@ func (this *recharge) saveToDb(ds *f5.DataSet) bool {
p := new(itemSoldOut) p := new(itemSoldOut)
if q5.DecodeJson(returnValues, p) == nil { if q5.DecodeJson(returnValues, p) == nil {
decodeJsonOk = true decodeJsonOk = true
orderExists := false
if this.updateOrderStatus(txhash, p.OrderId, q5.ToInt32(createTime), &orderExists) != nil {
return false
}
status := 0
if orderExists {
status = 1
}
var dbErr error var dbErr error
f5.GetGoStyleDb().Upsert( f5.GetGoStyleDb().Upsert(
constant.BCEVENT_DB, constant.BCEVENT_DB,
@ -106,6 +114,7 @@ func (this *recharge) saveToDb(ds *f5.DataSet) bool {
{"order_id", p.OrderId}, {"order_id", p.OrderId},
{"currency", p.Currency}, {"currency", p.Currency},
{"amount", p.Amount}, {"amount", p.Amount},
{"status", q5.ToString(status)},
{"createtime", createTime}, {"createtime", createTime},
{"modifytime", modifyTime}, {"modifytime", modifyTime},
}, },
@ -128,3 +137,38 @@ func (this *recharge) saveToDb(ds *f5.DataSet) bool {
} }
return true return true
} }
func (this *recharge) updateOrderStatus(txhash string, orderId string, payTime int32, orderExists *bool) error {
*orderExists = false
var resultErr error
f5.GetGoStyleDb().OrmSelectOne(
constant.BCNFT_DB,
"t_recharge_order",
[][]string{
{"order_id", orderId},
},
func (err error, ds *f5.DataSet) {
resultErr = err
if err != nil {
return
}
*orderExists = ds.Next()
})
if resultErr == nil && *orderExists {
f5.GetGoStyleDb().Update(
constant.BCNFT_DB,
"t_recharge_order",
[][]string{
{"order_id", orderId},
},
[][]string{
{"txhash", txhash},
{"pay_status", q5.ToString(1)},
{"pay_time", q5.ToString(payTime)},
},
func (err error, lastInsertId int64, rowsAffected int64) {
resultErr = err
})
}
return resultErr
}

View File

@ -128,10 +128,15 @@ func (sa *StackingApi) ContributionQuery(c *gin.Context) {
func (sa *StackingApi) DiamondRecordQuery(c *gin.Context) { func (sa *StackingApi) DiamondRecordQuery(c *gin.Context) {
accountAddress := strings.ToLower(c.Param("account_address")) accountAddress := strings.ToLower(c.Param("account_address"))
type Record struct {
Date int32 `json:"date"`
Amount string `json:"amount"`
Type int32 `json:"type"`
}
rspObj := struct { rspObj := struct {
ErrCode int32 `json:"errcode"` ErrCode int32 `json:"errcode"`
ErrMsg string `json:"errmsg"` ErrMsg string `json:"errmsg"`
Rows []interface{} `json:"rows"` Rows []*Record `json:"rows"`
}{} }{}
{ {
@ -150,20 +155,46 @@ func (sa *StackingApi) DiamondRecordQuery(c *gin.Context) {
return return
} }
obj := struct {
Date int32 `json:"date"`
Amount string `json:"amount"`
Type int32 `json:"type"`
}{}
for ds.Next() { for ds.Next() {
obj := new(Record)
obj.Date = q5.SafeToInt32(ds.GetByName("createtime")) obj.Date = q5.SafeToInt32(ds.GetByName("createtime"))
obj.Amount = ds.GetByName("amount") obj.Amount = ds.GetByName("amount")
obj.Type = q5.SafeToInt32(ds.GetByName("type")) obj.Type = 1
rspObj.Rows = append(rspObj.Rows, obj) rspObj.Rows = append(rspObj.Rows, obj)
} }
}) })
} }
{
sql := `SELECT * FROM t_recharge_order WHERE passport_address = ? AND pay_status = 1 ORDER BY createtime DESC`
params := []string{
accountAddress,
}
f5.GetGoStyleDb().RawQuery(
constant.BCNFT_DB,
sql,
params,
func(err error, ds *f5.DataSet) {
if err != nil {
return
}
for ds.Next() {
obj := new(Record)
obj.Date = q5.SafeToInt32(ds.GetByName("pay_time"))
obj.Amount = ds.GetByName("diamond")
obj.Type = 0
rspObj.Rows = append(rspObj.Rows, obj)
}
})
}
q5.Sort(rspObj.Rows, func(a *Record, b *Record) bool {
return a.Date > b.Date
})
c.JSON(200, rspObj) c.JSON(200, rspObj)
} }

View File

@ -42,11 +42,11 @@ func (ea *RechargeApi) RechargeList(c *gin.Context) {
} }
func (this *RechargeApi) Buy(c *gin.Context) { func (this *RechargeApi) Buy(c *gin.Context) {
accountId := c.MustGet("open_id").(string)
passportAddress := c.MustGet("account_address").(string) passportAddress := c.MustGet("account_address").(string)
reqJson := struct { reqJson := struct {
NetId int32 `json:"net_id"` NetId int32 `json:"net_id"`
GoodsId int32 `json:"goods_id"` GoodsId int32 `json:"goods_id"`
Num int32 `json:"num"`
AccountAddress string `json:"account_address"` AccountAddress string `json:"account_address"`
}{} }{}
if err := c.ShouldBindJSON(&reqJson); err != nil { if err := c.ShouldBindJSON(&reqJson); err != nil {
@ -104,6 +104,8 @@ func (this *RechargeApi) Buy(c *gin.Context) {
ErrMsg string `json:"errmsg"` ErrMsg string `json:"errmsg"`
Calls []jccommon.ContractCall `json:"calls"` Calls []jccommon.ContractCall `json:"calls"`
}{} }{}
var itemNum int32 = 1
var diamond int64 = 1
url := fmt.Sprintf("%s/webapp/index.php", mt.Table.Web3SignCluster.RandElement().GetUrl()) url := fmt.Sprintf("%s/webapp/index.php", mt.Table.Web3SignCluster.RandElement().GetUrl())
f5.GetHttpCliMgr().SendGoStyleRequest( f5.GetHttpCliMgr().SendGoStyleRequest(
url, url,
@ -122,16 +124,17 @@ func (this *RechargeApi) Buy(c *gin.Context) {
return return
} }
if !service.AddRechargeOrder( if !service.AddRechargeOrder(
accountId,
orderId, orderId,
q5.ToString(shortOrderId), q5.ToString(shortOrderId),
reqJson.NetId,
reqJson.AccountAddress, reqJson.AccountAddress,
passportAddress, passportAddress,
currencyMeta.GetName(), currencyMeta.GetName(),
currencyMeta.GetAddress(), currencyMeta.GetAddress(),
goodsMeta.GetId(), goodsMeta.GetId(),
1, itemNum,
price) { price,
diamond) {
f5.RspErr(c, 500, "server internal error") f5.RspErr(c, 500, "server internal error")
return return
} }
@ -163,8 +166,8 @@ func (ea *RechargeApi) RechargeQuery(c *gin.Context) {
cursor := q5.SafeToInt64(reqJson.Cursor) cursor := q5.SafeToInt64(reqJson.Cursor)
sql := fmt.Sprintf(` sql := fmt.Sprintf(`
SELECT * FROM t_recharge SELECT * FROM t_recharge_order
WHERE idx > %d AND net_id = %d AND passport = ?`, WHERE idx > %d AND net_id = %d AND passport_address = ? AND pay_status = 1`,
cursor, netId) cursor, netId)
params := []string{account} params := []string{account}
@ -177,19 +180,21 @@ func (ea *RechargeApi) RechargeQuery(c *gin.Context) {
ErrMsg string `json:"errmsg"` ErrMsg string `json:"errmsg"`
Page common.StreamPagination `json:"page"` Page common.StreamPagination `json:"page"`
Rows []struct { Rows []struct {
OrderID string `json:"order_id"` OrderID string `json:"order_id"`
TxHash string `json:"txhash"` ShortOrderID string `json:"short_order_id"`
NetID int64 `json:"net_id"` TxHash string `json:"txhash"`
Currency string `json:"currency"` NetID int64 `json:"net_id"`
Amount string `json:"amount"` Currency string `json:"currency"`
Diamond string `json:"diamond"` CurrencyName string `json:"currency_name"`
Date int32 `json:"createtime"` Amount string `json:"amount"`
Diamond string `json:"diamond"`
Date int32 `json:"createtime"`
} `json:"rows"` } `json:"rows"`
}{} }{}
q5.NewSlice(&rspObj.Rows, 0, 10) q5.NewSlice(&rspObj.Rows, 0, 10)
f5.GetGoStyleDb().StreamPageQuery( f5.GetGoStyleDb().StreamPageQuery(
constant.BCEVENT_DB, constant.BCNFT_DB,
pageSize, pageSize,
cursor, cursor,
sql, sql,
@ -203,10 +208,12 @@ func (ea *RechargeApi) RechargeQuery(c *gin.Context) {
p := q5.NewSliceElement(&rspObj.Rows) p := q5.NewSliceElement(&rspObj.Rows)
p.TxHash = ds.GetByName("txhash") p.TxHash = ds.GetByName("txhash")
p.NetID = q5.SafeToInt64(ds.GetByName("net_id")) p.NetID = netId
p.OrderID = ds.GetByName("order_id") p.OrderID = ds.GetByName("order_id")
p.Currency = ds.GetByName("currency") p.ShortOrderID = ds.GetByName("short_order_id")
p.Amount = ds.GetByName("amount") p.Currency = ds.GetByName("currency_address")
p.CurrencyName = ds.GetByName("currency_name")
p.Amount = ds.GetByName("price")
p.Diamond = ds.GetByName("diamond") p.Diamond = ds.GetByName("diamond")
p.Date = q5.SafeToInt32(ds.GetByName("createtime")) p.Date = q5.SafeToInt32(ds.GetByName("createtime"))
}) })

View File

@ -98,12 +98,12 @@ func (this *UserApi) Info(c *gin.Context) {
} }
{ {
var dbErr error var dbErr error
sql := "SELECT SUM(diamond) FROM t_recharge WHERE passport = ? AND status = 0" sql := "SELECT SUM(diamond) FROM t_recharge_order WHERE passport_address = ? AND pay_status = 1 AND delivery_status = 0;"
params := []string{ params := []string{
accountAddress, accountAddress,
} }
f5.GetGoStyleDb().RawQuery( f5.GetGoStyleDb().RawQuery(
constant.BCEVENT_DB, constant.BCNFT_DB,
sql, sql,
params, params,
func(err error, ds *f5.DataSet) { func(err error, ds *f5.DataSet) {

View File

@ -6,10 +6,10 @@ import (
"main/constant" "main/constant"
) )
func AddRechargeOrder(accountId string, orderId string, shortOrderId string, func AddRechargeOrder(orderId string, shortOrderId string,
accountAddress string, passportAddress string, netId int32, accountAddress string, passportAddress string,
currencyAddress string, currencyName string, itemId int32, itemNum int64, currencyAddress string, currencyName string, itemId int32, itemNum int32,
price string) bool { price string, diamond int64) bool {
ok := false ok := false
nowTime := f5.GetApp().GetRealSeconds() nowTime := f5.GetApp().GetRealSeconds()
f5.GetGoStyleDb().UpsertEx( f5.GetGoStyleDb().UpsertEx(
@ -21,9 +21,9 @@ func AddRechargeOrder(accountId string, orderId string, shortOrderId string,
[][]string{ [][]string{
}, },
[][]string{ [][]string{
{"account_id", accountId},
{"order_id", orderId}, {"order_id", orderId},
{"short_order_id", shortOrderId}, {"short_order_id", shortOrderId},
{"net_id", q5.ToString(netId)},
{"account_address", accountAddress}, {"account_address", accountAddress},
{"passport_address", passportAddress}, {"passport_address", passportAddress},
{"currency_name", currencyName}, {"currency_name", currencyName},
@ -31,6 +31,7 @@ func AddRechargeOrder(accountId string, orderId string, shortOrderId string,
{"item_id", q5.ToString(itemId)}, {"item_id", q5.ToString(itemId)},
{"item_num", q5.ToString(itemNum)}, {"item_num", q5.ToString(itemNum)},
{"price", price}, {"price", price},
{"diamond", q5.ToString(diamond)},
{"createtime", q5.ToString(nowTime)}, {"createtime", q5.ToString(nowTime)},
{"modifytime", q5.ToString(nowTime)}, {"modifytime", q5.ToString(nowTime)},
}, },

2
third_party/f5 vendored

@ -1 +1 @@
Subproject commit c3814ee3afc6ef21c0e7683192044571f561009f Subproject commit 26d8a01994efda115ee81d570075f00ebd05eb21