12345678910111213141516171819202122232425262728293031323334353637383940 |
- package storage
- import (
- "encoding/binary"
- "fmt"
- )
- func GetUsedDuration(deviceId string) (uint64, error) {
- if len(deviceId) == 0 {
- return 0, nil
- }
- key := generateDeviceIdUsedKey(deviceId)
- value, err := get(key)
- if err != nil {
- return 0, nil
- }
- data := binary.BigEndian.Uint64(value)
- return data, nil
- }
- func AddUsedDuration(deviceId string, duration uint64) (uint64, error) {
- if len(deviceId) == 0 {
- return 0, nil
- }
- existed, err := GetUsedDuration(deviceId)
- if err != nil {
- return 0, err
- }
- ret := existed + duration
- data := make([]byte, 8)
- binary.BigEndian.PutUint64(data, ret)
- if err := set(generateDeviceIdUsedKey(deviceId), data); err != nil {
- return 0, err
- }
- return ret, nil
- }
- func generateDeviceIdUsedKey(deviceId string) string {
- return fmt.Sprintf("device:%s:used", deviceId)
- }
|