瀏覽代碼

解决失真问题

zhou.xiaoning 2 年之前
父節點
當前提交
f74dacbcac
共有 8 個文件被更改,包括 29 次插入19 次删除
  1. 4 4
      controllers/guangzuan/tradeService.go
  2. 2 1
      docs/docs.go
  3. 2 1
      docs/swagger.json
  4. 2 1
      docs/swagger.yaml
  5. 1 1
      go.mod
  6. 2 2
      go.sum
  7. 9 9
      models/sbyj.go
  8. 7 0
      utils/mathUtils.go

+ 4 - 4
controllers/guangzuan/tradeService.go

@@ -18,8 +18,8 @@ import (
 // @Security Group
 // @Param    userid   query    int    true  "用户ID"
 // @Param    executestatus query    int false "执行状态 - 1:未生效 2:进行中 3:已结束"
-// @Param    page     query    int    false "页码"
-// @Param    pagesize query    int    false "每页条数"
+// @Param    page          query    int false "页码"
+// @Param    pagesize      query    int false "每页条数"
 // @Success  200           {array}  models.GzcjjcorderM
 // @Failure  500     {object} app.Response
 // @Router   /Guangzuan/QueryGZCJJCOrder [get]
@@ -39,8 +39,8 @@ func QueryGZCJJCOrder(c *gin.Context) {
 // @Security Group
 // @Param    userid        query    int true  "用户ID"
 // @Param    orderid  query    string false "单据ID"
-// @Param    page          query    int false "页码"
-// @Param    pagesize      query    int false "每页条数"
+// @Param    page     query    int    false "页码"
+// @Param    pagesize query    int    false "每页条数"
 // @Success  200      {array}  models.GzcjjcorderdetailM
 // @Failure  500           {object} app.Response
 // @Router   /Guangzuan/QueryGZCJJCOrderDetail [get]

+ 2 - 1
docs/docs.go

@@ -52242,7 +52242,8 @@ const docTemplate = `{
                 },
                 "tradeID": {
                     "description": "成交单号(101+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)",
-                    "type": "integer"
+                    "type": "string",
+                    "example": "0"
                 },
                 "userID": {
                     "description": "用户ID",

+ 2 - 1
docs/swagger.json

@@ -52233,7 +52233,8 @@
                 },
                 "tradeID": {
                     "description": "成交单号(101+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)",
-                    "type": "integer"
+                    "type": "string",
+                    "example": "0"
                 },
                 "userID": {
                     "description": "用户ID",

+ 2 - 1
docs/swagger.yaml

@@ -22853,7 +22853,8 @@ definitions:
         type: string
       tradeID:
         description: 成交单号(101+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
-        type: integer
+        example: "0"
+        type: string
       userID:
         description: 用户ID
         type: integer

+ 1 - 1
go.mod

@@ -52,7 +52,7 @@ require (
 	golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 // indirect
 	golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e // indirect
 	golang.org/x/tools v0.1.10 // indirect
-	google.golang.org/protobuf v1.28.0
+	google.golang.org/protobuf v1.31.0
 	gopkg.in/flosch/pongo2.v3 v3.0.0-20141028000813-5e81b817a0c4 // indirect
 	gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22
 )

+ 2 - 2
go.sum

@@ -246,8 +246,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
 google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw=
-google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
+google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

+ 9 - 9
models/sbyj.go

@@ -80,7 +80,7 @@ func GetTouristGoods(tradeModes []int) (goods []TouristGoods, err error) {
 
 // TradeHolderDetailEx 交易持仓扩展表
 type TradeHolderDetailEx struct {
-	TradeID           uint64  `json:"tradeID"`           // 成交单号(101+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
+	TradeID           uint64  `json:"tradeID,string"`    // 成交单号(101+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
 	BuyOrSell         uint32  `json:"buyOrSell"`         // 方向 - 0:买 1:卖
 	TradeDate         string  `json:"tradeDate"`         // 交易日(yyyyMMdd)
 	MarketID          uint32  `json:"marketID"`          // 市场ID
@@ -149,7 +149,7 @@ func (r *RedisTradeHolderDetailEx) GetDataEx(userId int, goodsId int) (sData Red
 	sData = make([]RedisTradeHolderDetailEx, 0)
 	// boost::format fmtDuration("TradeHolderDetailEx:%d_%d_%d_%" PRId64 "");
 	// fmtDuration % detailEx.goodsid() % detailEx.buyorsell()%detailEx.userid()%detailEx.tradeid();
-	key := fmt.Sprintf("TradeHolderDetailEx:%s:*:%d:*", g, userId)
+	key := fmt.Sprintf("TradeHolderDetailEx:%s_*_%d_*", g, userId)
 	if ret, err := redisCli.Do("keys", key).Result(); err == nil {
 		datas := ret.([]interface{})
 		for _, item := range datas {
@@ -192,10 +192,10 @@ func (r *RedisTradeHolderDetailEx) ParseFromProto(p *pb.RedisTradeHolderDetailEx
 		MatchUserID:       p.GetTHDetailEx().GetMatchUserID(),
 		MatchAccountID:    p.GetTHDetailEx().GetMatchAccountID(),
 		OpenQty:           p.GetTHDetailEx().GetOpenQty(),
-		TradeAmount:       p.GetTHDetailEx().GetTradeAmount(),
-		OpenPrice:         p.GetTHDetailEx().GetOpenPrice(),
+		TradeAmount:       utils.Float64Round(p.GetTHDetailEx().GetTradeAmount(), 2),
+		OpenPrice:         utils.Float64Round(p.GetTHDetailEx().GetOpenPrice(), int(p.GetDecimalPlace())),
 		HolderQty:         p.GetTHDetailEx().GetHolderQty(),
-		HolderAmount:      p.GetTHDetailEx().GetHolderAmount(),
+		HolderAmount:      utils.Float64Round(p.GetTHDetailEx().GetHolderAmount(), 2),
 		HolderPrice:       p.GetTHDetailEx().GetHolderPrice(),
 		FreezeQty:         p.GetTHDetailEx().GetFreezeQty(),
 		DeliveryQty:       p.GetTHDetailEx().GetDeliveryQty(),
@@ -208,8 +208,8 @@ func (r *RedisTradeHolderDetailEx) ParseFromProto(p *pb.RedisTradeHolderDetailEx
 		CallAteFee:        p.GetTHDetailEx().GetCallAteFee(),
 		PromptDepositRate: p.GetTHDetailEx().GetPromptDepositRate(),
 		CutDepositRate:    p.GetTHDetailEx().GetCutDepositRate(),
-		PromptPrice:       p.GetTHDetailEx().GetPromptPrice(),
-		CutPrice:          p.GetTHDetailEx().GetCutPrice(),
+		PromptPrice:       utils.Float64Round(p.GetTHDetailEx().GetPromptPrice(), int(p.GetDecimalPlace())),
+		CutPrice:          utils.Float64Round(p.GetTHDetailEx().GetCutPrice(), int(p.GetDecimalPlace())),
 		ClosePL:           p.GetTHDetailEx().GetClosePL(),
 		FloatPL:           p.GetTHDetailEx().GetFloatPL(),
 		DepositRate:       p.GetTHDetailEx().GetDepositRate(),
@@ -384,7 +384,7 @@ type MyDeliveryofflineoperatelog struct {
 	OPERATORACCOUNT   string    `json:"operatoraccount" xorm:"OPERATORACCOUNT"`                                           // 操作人账号 - systemmanager的logincode 或 loginaccount的logincode,无则用loginid
 	OPERATORNAME      string    `json:"operatorname" xorm:"OPERATORNAME"`                                                 // 操作人名称 - systemmanager的username 或 loginaccount的logincode,无则用loginid
 	REMARK            string    `json:"remark" xorm:"REMARK"`                                                             // 操作备注
-	OPERATETIME       time.Time `json:"operatetime" xorm:"OPERATETIME"`                                                   // 操作时间
+	OPERATETIME       string    `json:"operatetime" xorm:"OPERATETIME"`                                                   // 操作时间
 	FILENAME          string    `json:"filename" xorm:"FILENAME"`                                                         // 文件名称
 	FILEADDRESS       string    `json:"fileaddress" xorm:"FILEADDRESS"`                                                   // 文件地址
 	DELIVERYPAYMODE   int32     `json:"deliverypaymode" xorm:"DELIVERYPAYMODE" form:"deliverypaymode"`                    // 付款方式 - 1:线上支付2:线下支付 - 枚举deliveryPayMode
@@ -413,7 +413,7 @@ func (r *MyDeliveryofflineoperatelog) buildSql() string {
 		t.operatoraccount,
 		t.operatorname,
 		t.remark,
-		t.operatetime,
+		to_char(t.operatetime, 'yyyy-MM-dd hh24:mi:ss') OPERATETIME,
 		t.filename,
 		t.fileaddress,
 		t.deliverypaymode,

+ 7 - 0
utils/mathUtils.go

@@ -5,6 +5,8 @@ import (
 	"math/big"
 	"sort"
 	"strconv"
+
+	"github.com/shopspring/decimal"
 )
 
 // FormatFloat 保留指定小数位并返回字符串
@@ -42,3 +44,8 @@ func IntToFloat64(value int, decimal int) float64 {
 
 	return rst
 }
+
+func Float64Round(f float64, place int) float64 {
+	v, _ := decimal.NewFromFloat(f).Round(int32(place)).Float64()
+	return v
+}