package addwelfareser import ( "strconv" "strings" "time" "91porn-server/common/stderr" "91porn-server/models/l/welfarelgmod" "91porn-server/models/v/usermod" "91porn-server/web/service/userser" "github.com/jinzhu/now" ) func AddWelfare(userId string) (stderr.Code, error) { uid, err := strconv.ParseUint(userId, 10, 64) if err != nil { return stderr.Failure, err } user, err := usermod.FindUserByUIDForNoCache(uid) if err != nil || user == nil { return stderr.Failure, err } if err = welfarelgmod.InsertWelFareLog(welfarelgmod.WelfareLog{ Uid: uid, FareType: welfarelgmod.Fare_Vip, FareNum: 2, DailyDate: now.BeginningOfDay(), CreatedAt: time.Now(), }); err != nil { if strings.Contains(err.Error(), "E11000 duplicate key error") { return stderr.ErrDbInputExist, err } return stderr.Failure, err } vipExpire, vipLevel := userser.CheckVipRenew(user, 3, 0) if _, err := usermod.Update(user.UID, usermod.UserSelector{VipExpireDate: &vipExpire, VipLevel: &vipLevel}); err != nil { return stderr.Failure, err } return stderr.Success, nil }