43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
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
|
|
}
|