You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.8 KiB
100 lines
2.8 KiB
package dao |
|
|
|
import ( |
|
"context" |
|
"strconv" |
|
|
|
"go-common/app/job/main/account-summary/model" |
|
|
|
"github.com/pkg/errors" |
|
) |
|
|
|
const ( |
|
_SummaryTable = "ugc:AccountSum" |
|
_ColFamily = "accountsum" |
|
) |
|
|
|
// Save is |
|
func (d *Dao) Save(ctx context.Context, key string, data map[string][]byte) error { |
|
values := map[string]map[string][]byte{ |
|
_ColFamily: data, |
|
} |
|
_, err := d.AccountSumHBase.PutStr(ctx, _SummaryTable, key, values) |
|
return err |
|
} |
|
|
|
// GetByKey is |
|
func (d *Dao) GetByKey(ctx context.Context, key string) (*model.AccountSummary, error) { |
|
res, err := d.AccountSumHBase.GetStr(ctx, _SummaryTable, key) |
|
if err != nil { |
|
return nil, errors.WithStack(err) |
|
} |
|
|
|
sum := model.NewAccountSummary() |
|
for _, c := range res.Cells { |
|
v := string(c.Value) |
|
switch string(c.Qualifier) { |
|
case "birthday": |
|
sum.Birthday = v |
|
case "face": |
|
sum.Face = v |
|
case "mid": |
|
sum.Mid, _ = strconv.ParseInt(v, 10, 64) |
|
case "name": |
|
sum.Name = v |
|
case "rank": |
|
sum.Rank, _ = strconv.ParseInt(v, 10, 64) |
|
case "sex": |
|
sum.Sex, _ = strconv.ParseInt(v, 10, 64) |
|
case "sign": |
|
sum.Sign = v |
|
case "official.role": |
|
sum.Official.Role, _ = strconv.ParseInt(v, 10, 64) |
|
case "official.mid": |
|
sum.Official.Mid, _ = strconv.ParseInt(v, 10, 64) |
|
case "official.title": |
|
sum.Official.Title = v |
|
case "official.description": |
|
sum.Official.Description = v |
|
case "exp.mid": |
|
sum.Exp.Mid, _ = strconv.ParseInt(v, 10, 64) |
|
case "exp.exp": |
|
sum.Exp.Exp, _ = strconv.ParseInt(v, 10, 64) |
|
case "relation.mid": |
|
sum.RelationStat.Mid, _ = strconv.ParseInt(v, 10, 64) |
|
case "relation.follower": |
|
sum.RelationStat.Follower, _ = strconv.ParseInt(v, 10, 64) |
|
case "relation.following": |
|
sum.RelationStat.Following, _ = strconv.ParseInt(v, 10, 64) |
|
case "relation.black": |
|
sum.RelationStat.Black, _ = strconv.ParseInt(v, 10, 64) |
|
case "relation.whisper": |
|
sum.RelationStat.Whisper, _ = strconv.ParseInt(v, 10, 64) |
|
case "block.mid": |
|
sum.Block.Mid, _ = strconv.ParseInt(v, 10, 64) |
|
case "block.block_status": |
|
sum.Block.BlockStatus, _ = strconv.ParseInt(v, 10, 64) |
|
case "block.start_time": |
|
sum.Block.StartTime = v |
|
case "block.end_time": |
|
sum.Block.EndTime = v |
|
case "passport.mid": |
|
sum.Passport.Mid, _ = strconv.ParseInt(v, 10, 64) |
|
case "passport.tel_status": |
|
sum.Passport.TelStatus, _ = strconv.ParseInt(v, 10, 64) |
|
case "passport.country_id": |
|
sum.Passport.CountryID, _ = strconv.ParseInt(v, 10, 64) |
|
case "passport.join_ip": |
|
sum.Passport.JoinIP = v |
|
case "passport.join_time": |
|
sum.Passport.JoinTime = v |
|
case "passport.email_suffix": |
|
sum.Passport.EmailSuffix = v |
|
case "passport.origin_type": |
|
sum.Passport.OriginType, _ = strconv.ParseInt(v, 10, 64) |
|
case "passport.reg_type": |
|
sum.Passport.RegType, _ = strconv.ParseInt(v, 10, 64) |
|
} |
|
} |
|
return sum, nil |
|
}
|
|
|