101 lines
2.8 KiB
Go
101 lines
2.8 KiB
Go
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
|
|
}
|