Explorar o código

add front interface

Eric0718 %!s(int64=2) %!d(string=hai) anos
pai
achega
41dac7d577
Modificáronse 5 ficheiros con 98 adicións e 19 borrados
  1. 1 1
      blockchain/contract.go
  2. 3 2
      blockchain/scan.go
  3. 1 1
      controller/calculate.go
  4. 91 12
      controller/controller.go
  5. 2 3
      controller/types.go

+ 1 - 1
blockchain/contract.go

@@ -28,7 +28,7 @@ func participate(engine *xorm.Engine, user, inviter, hash string, amount float64
 	ui.Direct = inviter
 	ui.Indirect = dui.Direct
 	ui.Superiors = dui.Superiors + "," + strconv.FormatInt(dui.Id, 10)
-	ui.ParticipateAmount = float64(controller.ParticipateValue * controller.Decimals)
+	ui.ParticipateAmount = float64(controller.ParticipateValue)
 	ui.State = 1
 	ui.CreateTime = util.NowTimeString()
 	ui.Hash = hash

+ 3 - 2
blockchain/scan.go

@@ -5,6 +5,7 @@ import (
 	"encoding/hex"
 	"fmt"
 	"ktogame/contractgo/Collect"
+	"ktogame/controller"
 	"ktogame/dbUtil"
 	"ktogame/models"
 	"os"
@@ -108,7 +109,7 @@ func scanBlock() {
 						}
 						fmt.Printf("participate event data=%+v\n ", ev)
 						//handle user participate
-						err = participate(dbUtil.Engine, ev.User.String(), ev.Inviter.String(), v.HashToString(), float64(ev.Amount.Uint64()))
+						err = participate(dbUtil.Engine, ev.User.String(), ev.Inviter.String(), v.HashToString(), float64(ev.Amount.Uint64()/controller.Decimals))
 						if err != nil {
 							ERR = err
 							break
@@ -127,7 +128,7 @@ func scanBlock() {
 						}
 						fmt.Printf("claim event data=%+v\n ", evt)
 
-						err = checkClaim(dbUtil.Engine, evt.User.String(), v.HashToString(), hex.EncodeToString(evt.Signature), float64(evt.Amount.Uint64()))
+						err = checkClaim(dbUtil.Engine, evt.User.String(), v.HashToString(), hex.EncodeToString(evt.Signature), float64(evt.Amount.Uint64()/controller.Decimals))
 						if err != nil {
 							ERR = err
 							break

+ 1 - 1
controller/calculate.go

@@ -48,7 +48,7 @@ func UpdateSuperiorsPerformance(engine *xorm.Engine, superiorsStr string, amount
 		}
 
 		per.TotalPerformance += amount
-		if per.TotalPerformance >= CommunityMarkit*Decimals {
+		if per.TotalPerformance >= CommunityMarket {
 			if per.Recorded == 0 {
 				var super models.Performance
 				ok, err := engine.Id(per.Addr).Get(&super)

+ 91 - 12
controller/controller.go

@@ -6,7 +6,6 @@ import (
 	"ktogame/util"
 	"math/big"
 	"strings"
-	"time"
 )
 
 func (uc *UserController) Reinput(user string) {
@@ -20,18 +19,18 @@ func (uc *UserController) Reinput(user string) {
 		ErrResponse(uc.Controller, "db get failed!")
 		return
 	}
-	if ui.AvailableReinput < ModBase*Decimals {
+	if ui.AvailableReinput < ModBase {
 		ErrResponse(uc.Controller, "no available reinput balance")
 		return
 	}
 
 	///update availableReinput by left in db
 	///update totalReinput
-	left := uint64(ui.AvailableReinput) % (ModBase * Decimals)
+	left := uint64(ui.AvailableReinput) % ModBase
 	reinputValue := ui.AvailableReinput - float64(left)
 	ui.AvailableReinput = float64(left)
 	ui.TotalReinputed += reinputValue
-	if ui.TotalReinputed >= CommunityLimit*Decimals {
+	if ui.TotalReinputed >= CommunityLimit {
 		ui.State = CommunityUsers
 	}
 	_, err = uc.engine.ID(user).Cols("available_reinput").Update(&ui)
@@ -77,8 +76,9 @@ func (uc *UserController) Reinput(user string) {
 }
 func (uc *UserController) GetClaimSignature() {
 	addr := uc.GetString("addr")
-	s := uc.GetString("token")
-	user := util.GetPri(s, addr[len(addr)-16:])
+	tk := uc.GetString("token")
+	tm := uc.GetString("time")
+	user := util.GetPri(tk, addr[len(addr)-16:])
 	if strings.ToLower(user) != strings.ToLower(addr) {
 		ErrResponse(uc.Controller, "无效地址")
 		return
@@ -90,13 +90,13 @@ func (uc *UserController) GetClaimSignature() {
 		return
 	}
 
-	format := time.Now().AddDate(0, 0, 1).Format("2006-01-02")
-	te, _ := time.ParseInLocation("2006-01-02", format, time.Local)
+	// format := time.Now().AddDate(0, 0, 1).Format("2006-01-02")
+	// te, _ := time.ParseInLocation("2006-01-02", format, time.Local)
 	// pow := decimal.NewFromFloat(float64(10)).Pow(decimal.NewFromFloat(float64(18)))
 	// amount := decimal.NewFromFloat(ua.AvailableClaim).Mul(pow).BigInt().String()
 	amount := big.NewInt(0).SetUint64(uint64(ua.AvailableClaim)).String()
-	out1 := util.Sign(amount, strings.ToLower(user[2:]), fmt.Sprint(te.Unix()))
-	sign := out1 + "-" + amount + "-" + fmt.Sprint(te.Unix())
+	out1 := util.Sign(amount, strings.ToLower(user[2:]), tm)
+	sign := out1 + "-" + amount + "-" + tm
 	code := util.EnPriCode(sign, addr[len(addr)-16:])
 	TxObjectResponse(uc.Controller, code)
 }
@@ -141,5 +141,84 @@ func (uc *UserController) SetClaimHash() {
 	}
 	TxObjectResponse(uc.Controller, "ok")
 }
-func (uc *UserController) GetUserInfo() {}
-func (uc *UserController) GetTeamList() {}
+func (uc *UserController) GetUserInfo() {
+	user := uc.GetString("address")
+	var us models.UserInfo
+	ok, err := uc.engine.ID(user).Get(&us)
+	if err != nil {
+		TxObjectResponse(uc.Controller, err)
+		return
+	}
+	if !ok {
+		TxObjectResponse(uc.Controller, us)
+		return
+	}
+	TxObjectResponse(uc.Controller, us)
+}
+func (uc *UserController) GetTeamList() {
+	user := uc.GetString("address")
+	s, err := uc.GetInt("size")
+	if err != nil {
+		TxObjectResponse(uc.Controller, err)
+		return
+	}
+	l, err := uc.GetInt("limit")
+	if err != nil {
+		TxObjectResponse(uc.Controller, err)
+		return
+	}
+	var us models.UserInfo
+	var teamList []models.UserInfo
+
+	ok, err := uc.engine.ID(user).Get(&us)
+	if err != nil {
+		TxObjectResponse(uc.Controller, err)
+		return
+	}
+	if !ok {
+		TxObjectResponse(uc.Controller, us)
+		return
+	}
+
+	c, err := uc.engine.Where("superiors like ?", "%,"+fmt.Sprint(us.Id)).FindAndCount(&teamList)
+	if err != nil {
+		TxObjectResponse(uc.Controller, err)
+		return
+	}
+	var addrList []string
+	for _, u := range teamList {
+		addrList = append(addrList, u.Addr)
+	}
+	res := models.Page{Limit: l, Size: s, Total: c, DataList: addrList}
+	TxObjectResponse(uc.Controller, res)
+}
+
+func (uc *UserController) GetPerformance() {
+	user := uc.GetString("address")
+	var per models.Performance
+
+	ok, err := uc.engine.Id(user).Get(&per)
+	if err != nil {
+		TxObjectResponse(uc.Controller, err)
+		return
+	}
+	if !ok {
+		TxObjectResponse(uc.Controller, per)
+		return
+	}
+	TxObjectResponse(uc.Controller, per)
+}
+
+func (uc *UserController) TotalUsers() {
+	var us models.UserInfo
+	ok, err := uc.engine.Desc("id").Get(&us)
+	if err != nil {
+		TxObjectResponse(uc.Controller, err)
+		return
+	}
+	if !ok {
+		TxObjectResponse(uc.Controller, us)
+		return
+	}
+	TxObjectResponse(uc.Controller, us)
+}

+ 2 - 3
controller/types.go

@@ -9,15 +9,14 @@ const (
 	ParticipateValue = 1030
 	ModBase          = 100
 	CommunityLimit   = 1000
-	CommunityMarkit  = 1000000
+	CommunityMarket  = 1000000
 
 	CommonUser     = 0
 	OfficialUser   = 1
 	CommunityUsers = 2
 )
 
-var PerformanceLevel = [9]float64{10000 * Decimals, 30000 * Decimals, 100000 * Decimals, 300000 * Decimals,
-	1000000 * Decimals, 900000000 * Decimals}
+var PerformanceLevel = [9]float64{10000, 30000, 100000, 300000, 1000000, 900000000}
 var PerformanceRatio = [9]float64{0, 0.3, 0.6, 0.9, 0.12, 0.15}
 var MarketLevel = [5]int{2, 3, 4, 5, 6}
 var MarketRatio = [5]float64{0, 0.04, 0.06, 0.08, 0.10}