|
@@ -1,57 +1,98 @@
|
|
package controller
|
|
package controller
|
|
|
|
|
|
-func (uc *UserController) Reinput(user string) error {
|
|
|
|
- /*
|
|
|
|
- available,err := GetAvailableReinput(user)
|
|
|
|
- if err != nil{
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- if available < 100 {
|
|
|
|
- return error.News("no available reinput balance!")
|
|
|
|
- }
|
|
|
|
|
|
+import (
|
|
|
|
+ "ktogame/models"
|
|
|
|
+)
|
|
|
|
|
|
- left := available % 100
|
|
|
|
|
|
+func (uc *UserController) Reinput(user string) {
|
|
|
|
+ var ui models.UserInfo
|
|
|
|
+ ok, err := uc.engine.Id(user).Get(&ui)
|
|
|
|
+ if err != nil {
|
|
|
|
+ ErrResponse(uc.Controller, err)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if !ok {
|
|
|
|
+ ErrResponse(uc.Controller, "db get failed!")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if ui.AvailableReinput < ModBase*Decimals {
|
|
|
|
+ ErrResponse(uc.Controller, "no available reinput balance")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
|
|
- reinputValue := available - left
|
|
|
|
|
|
+ ///update availableReinput by left in db
|
|
|
|
+ ///update totalReinput
|
|
|
|
+ left := uint64(ui.AvailableReinput) % (ModBase * Decimals)
|
|
|
|
+ reinputValue := ui.AvailableReinput - float64(left)
|
|
|
|
+ ui.AvailableReinput = float64(left)
|
|
|
|
+ ui.TotalReinputed += reinputValue
|
|
|
|
+ if ui.TotalReinputed >= CommunityLimit*Decimals {
|
|
|
|
+ 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)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ ///update Recommendation Rewards
|
|
|
|
+ rewards := reinputValue * 10 / 100
|
|
|
|
+ a_rewards := rewards * 60 / 100
|
|
|
|
+ a_reinput := rewards * 40 / 100
|
|
|
|
|
|
- ///update availableReinput by left in db
|
|
|
|
- if updateAvailableReinput(left) != nil{
|
|
|
|
- return err
|
|
|
|
|
|
+ ///update direct recommend rewards
|
|
|
|
+ if ui.Direct != -1 {
|
|
|
|
+ var dui models.UserInfo
|
|
|
|
+ ok, err := uc.engine.Id(ui.Direct).Get(&dui)
|
|
|
|
+ if err != nil {
|
|
|
|
+ ErrResponse(uc.Controller, err)
|
|
|
|
+ return
|
|
}
|
|
}
|
|
-
|
|
|
|
- ///update totalReinput
|
|
|
|
- if totalReinput(reinputValue){
|
|
|
|
- return err
|
|
|
|
|
|
+ if !ok {
|
|
|
|
+ ErrResponse(uc.Controller, "db get failed!")
|
|
|
|
+ return
|
|
}
|
|
}
|
|
-
|
|
|
|
- ///update Recommendation Rewards
|
|
|
|
-
|
|
|
|
- ///get Relationship of invitation
|
|
|
|
- directer ,err := getRelationship(user)
|
|
|
|
- if err != nil{
|
|
|
|
|
|
+ dui.AvailableClaim = a_rewards
|
|
|
|
+ dui.AvailableReinput = a_reinput
|
|
|
|
+ _, err = uc.engine.ID(dui.Addr).Cols("available_claim").Update(&dui)
|
|
|
|
+ if err != nil {
|
|
|
|
+ ErrResponse(uc.Controller, err)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- ///update direct recommend rewards
|
|
|
|
- if updateRecommendationRewards(directer,reinputValue * 10 /100){
|
|
|
|
- return err
|
|
|
|
|
|
+ _, err = uc.engine.ID(dui.Addr).Cols("available_reinput").Update(&dui)
|
|
|
|
+ if err != nil {
|
|
|
|
+ ErrResponse(uc.Controller, err)
|
|
|
|
+ return
|
|
}
|
|
}
|
|
-
|
|
|
|
- ///update indirect recommend rewards
|
|
|
|
- indirecter ,err := getRelationship(directer)
|
|
|
|
- if err != nil{
|
|
|
|
|
|
+ }
|
|
|
|
+ ///update indirect recommend rewards
|
|
|
|
+ if ui.Indirect != -1 {
|
|
|
|
+ var idui models.UserInfo
|
|
|
|
+ ok, err := uc.engine.Id(ui.Indirect).Get(&idui)
|
|
|
|
+ if err != nil {
|
|
|
|
+ ErrResponse(uc.Controller, err)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- if updateRecommendationRewards(indirecter,reinputValue * 10 /100){
|
|
|
|
- return err
|
|
|
|
|
|
+ if !ok {
|
|
|
|
+ ErrResponse(uc.Controller, "db get failed!")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ idui.AvailableClaim = a_rewards
|
|
|
|
+ idui.AvailableReinput = a_reinput
|
|
|
|
+ _, err = uc.engine.ID(idui.Addr).Cols("available_claim").Update(&idui)
|
|
|
|
+ if err != nil {
|
|
|
|
+ ErrResponse(uc.Controller, err)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ _, err = uc.engine.ID(idui.Addr).Cols("available_reinput").Update(&idui)
|
|
|
|
+ if err != nil {
|
|
|
|
+ ErrResponse(uc.Controller, err)
|
|
|
|
+ return
|
|
}
|
|
}
|
|
- */
|
|
|
|
- return nil
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-func (uc *UserController) GetAvailableReinput(user string) (uint64, error) {
|
|
|
|
- ok, err := uc.x.Get(user)
|
|
|
|
- if !ok {
|
|
|
|
- return 0, err
|
|
|
|
}
|
|
}
|
|
- return 0, nil
|
|
|
|
|
|
+ TxObjectResponse(uc.Controller, "success")
|
|
}
|
|
}
|