|
@@ -7,6 +7,8 @@ import (
|
|
"strings"
|
|
"strings"
|
|
"time"
|
|
"time"
|
|
|
|
|
|
|
|
+ "github.com/astaxie/beego/logs"
|
|
|
|
+
|
|
"github.com/shopspring/decimal"
|
|
"github.com/shopspring/decimal"
|
|
)
|
|
)
|
|
|
|
|
|
@@ -19,33 +21,20 @@ func (uc *UserController) Reinput() {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
if !ok {
|
|
if !ok {
|
|
- ErrResponse(uc.Controller, "db get failed!")
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- if ui.AvailableReinput < ModBase {
|
|
|
|
- ErrResponse(uc.Controller, "no available reinput balance")
|
|
|
|
|
|
+ ErrResponse(uc.Controller, "user not exist!")
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
///update availableReinput by left in db
|
|
///update availableReinput by left in db
|
|
///update totalReinput
|
|
///update totalReinput
|
|
- left := uint64(ui.AvailableReinput) % ModBase
|
|
|
|
- reinputValue := ui.AvailableReinput - float64(left)
|
|
|
|
- ui.AvailableReinput = float64(left)
|
|
|
|
- ui.TotalReinputed += reinputValue
|
|
|
|
- if ui.TotalReinputed >= CommunityLimit {
|
|
|
|
- ui.State = CommunityUsers
|
|
|
|
- }
|
|
|
|
- _, err = uc.engine.ID(user).Cols("available_reinput").Update(&ui)
|
|
|
|
- if err != nil {
|
|
|
|
- ErrResponse(uc.Controller, err)
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- _, err = uc.engine.ID(user).Cols("total_reinput").Update(&ui)
|
|
|
|
- if err != nil {
|
|
|
|
- ErrResponse(uc.Controller, err)
|
|
|
|
|
|
+ if ui.AvailableReinput < ModBase {
|
|
|
|
+ ErrResponse(uc.Controller, "no available reinput balance")
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+ num := uint64(ui.AvailableReinput) / uint64(ModBase)
|
|
|
|
+
|
|
|
|
+ reinputValue := float64(num * ModBase)
|
|
|
|
+ logs.Info("check Reinput user:%v,num:%v available:%v,reinputValue=======%v", user, num, ui.AvailableReinput, reinputValue)
|
|
|
|
|
|
///update Recommendation Rewards
|
|
///update Recommendation Rewards
|
|
///update direct recommend rewards
|
|
///update direct recommend rewards
|
|
@@ -53,6 +42,7 @@ func (uc *UserController) Reinput() {
|
|
if ui.Direct != "" {
|
|
if ui.Direct != "" {
|
|
err := UpdateAvailableRewards(rewards, ui.Direct, false, false)
|
|
err := UpdateAvailableRewards(rewards, ui.Direct, false, false)
|
|
if err != nil {
|
|
if err != nil {
|
|
|
|
+ logs.Error("check err=======", err)
|
|
ErrResponse(uc.Controller, err)
|
|
ErrResponse(uc.Controller, err)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
@@ -61,21 +51,38 @@ func (uc *UserController) Reinput() {
|
|
if ui.Indirect != "" {
|
|
if ui.Indirect != "" {
|
|
err := UpdateAvailableRewards(rewards, ui.Indirect, false, false)
|
|
err := UpdateAvailableRewards(rewards, ui.Indirect, false, false)
|
|
if err != nil {
|
|
if err != nil {
|
|
|
|
+ logs.Error("check err=======", err)
|
|
ErrResponse(uc.Controller, err)
|
|
ErrResponse(uc.Controller, err)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
}
|
|
}
|
|
err = UpdateRewardsPool(uc.engine, reinputValue)
|
|
err = UpdateRewardsPool(uc.engine, reinputValue)
|
|
if err != nil {
|
|
if err != nil {
|
|
|
|
+ logs.Error("check err=======", err)
|
|
ErrResponse(uc.Controller, err)
|
|
ErrResponse(uc.Controller, err)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
err = UpdateSuperiorsPerformance(uc.engine, ui.Superiors, reinputValue)
|
|
err = UpdateSuperiorsPerformance(uc.engine, ui.Superiors, reinputValue)
|
|
if err != nil {
|
|
if err != nil {
|
|
|
|
+ logs.Error("check err=======", err)
|
|
|
|
+ ErrResponse(uc.Controller, err)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ ui.AvailableReinput -= reinputValue
|
|
|
|
+ ui.TotalReinputed += reinputValue
|
|
|
|
+
|
|
|
|
+ if ui.TotalReinputed >= CommunityLimit {
|
|
|
|
+ ui.State = CommunityUsers
|
|
|
|
+ }
|
|
|
|
+ _, err = uc.engine.ID(user).Cols("available_reinput,total_reinputed,state").Update(&ui)
|
|
|
|
+ if err != nil {
|
|
|
|
+ logs.Error("check err=======", err)
|
|
ErrResponse(uc.Controller, err)
|
|
ErrResponse(uc.Controller, err)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
TxObjectResponse(uc.Controller, "ok")
|
|
TxObjectResponse(uc.Controller, "ok")
|
|
|
|
+ return
|
|
}
|
|
}
|
|
func (uc *UserController) GetClaimSignature() {
|
|
func (uc *UserController) GetClaimSignature() {
|
|
addr := uc.GetString("addr")
|
|
addr := uc.GetString("addr")
|
|
@@ -103,6 +110,7 @@ func (uc *UserController) GetClaimSignature() {
|
|
sign := out1 + "-" + amount + "-" + fmt.Sprint(i_time)
|
|
sign := out1 + "-" + amount + "-" + fmt.Sprint(i_time)
|
|
code := util.EnPriCode(sign, addr[len(addr)-16:])
|
|
code := util.EnPriCode(sign, addr[len(addr)-16:])
|
|
TxObjectResponse(uc.Controller, code)
|
|
TxObjectResponse(uc.Controller, code)
|
|
|
|
+ return
|
|
}
|
|
}
|
|
func (uc *UserController) SetClaimHash() {
|
|
func (uc *UserController) SetClaimHash() {
|
|
addr := uc.GetString("addr")
|
|
addr := uc.GetString("addr")
|
|
@@ -124,14 +132,14 @@ func (uc *UserController) SetClaimHash() {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
amount := ua.AvailableClaim
|
|
amount := ua.AvailableClaim
|
|
- ua.TotalClaimed += ua.AvailableClaim
|
|
|
|
|
|
+ ua.TotalClaimed += amount
|
|
ua.AvailableClaim = 0
|
|
ua.AvailableClaim = 0
|
|
- _, err = uc.engine.ID(addr).Cols("total_claimed,available_claim").Update(&ua)
|
|
|
|
|
|
+ _, err = uc.engine.ID(addr).Cols("available_claim,total_claimed").Update(&ua)
|
|
if err != nil {
|
|
if err != nil {
|
|
ErrResponse(uc.Controller, err)
|
|
ErrResponse(uc.Controller, err)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ logs.Info("check SetClaimHash---------:", addr, hash, ua.AvailableClaim, ua.TotalClaimed, amount)
|
|
claimTx := models.ClaimedTxs{Addr: addr, Amount: amount, Hash: hash,
|
|
claimTx := models.ClaimedTxs{Addr: addr, Amount: amount, Hash: hash,
|
|
Signature: sign, State: 0, Droped: 0, CreateTime: util.NowTimeString()}
|
|
Signature: sign, State: 0, Droped: 0, CreateTime: util.NowTimeString()}
|
|
_, err = uc.engine.Insert(&claimTx)
|
|
_, err = uc.engine.Insert(&claimTx)
|
|
@@ -175,7 +183,7 @@ func (uc *UserController) GetTeamList() {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
- c, err := uc.engine.Where("superiors like ?", "%,"+fmt.Sprint(us.Id)).FindAndCount(&teamList)
|
|
|
|
|
|
+ c, err := uc.engine.Where("superiors like ?", "%,"+fmt.Sprint(us.Id)+"%").FindAndCount(&teamList)
|
|
if err != nil {
|
|
if err != nil {
|
|
TxObjectResponse(uc.Controller, err)
|
|
TxObjectResponse(uc.Controller, err)
|
|
return
|
|
return
|
|
@@ -197,15 +205,12 @@ func (uc *UserController) GetPerformance() {
|
|
}
|
|
}
|
|
func (uc *UserController) TotalUsers() {
|
|
func (uc *UserController) TotalUsers() {
|
|
var us models.UserInfo
|
|
var us models.UserInfo
|
|
- ok, err := uc.engine.Desc("id").Get(&us)
|
|
|
|
|
|
+ c, err := uc.engine.Count(&us)
|
|
if err != nil {
|
|
if err != nil {
|
|
ErrResponse(uc.Controller, err)
|
|
ErrResponse(uc.Controller, err)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- if !ok {
|
|
|
|
- ErrResponse(uc.Controller, us)
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
|
|
+ us.Id = c
|
|
TxObjectResponse(uc.Controller, us)
|
|
TxObjectResponse(uc.Controller, us)
|
|
return
|
|
return
|
|
}
|
|
}
|