Files
zzw 46d3f672bf
CI / changes (push) Successful in 1m30s
CI / ad (push) Successful in 31s
CI / admin (push) Successful in 24s
CI / bff (push) Successful in 31s
CI / chore (push) Successful in 27s
CI / equipment (push) Successful in 21s
CI / express (push) Successful in 23s
CI / factory (push) Successful in 21s
CI / message (push) Successful in 21s
CI / order (push) Successful in 22s
CI / payment (push) Successful in 20s
CI / percutaneous (push) Successful in 20s
CI / product (push) Successful in 20s
CI / record (push) Successful in 19s
CI / sale (push) Successful in 19s
CI / support (push) Successful in 20s
CI / task (push) Successful in 19s
CI / user (push) Successful in 21s
CI / wecom (push) Successful in 22s
feat: device info and bind
2026-10-16 15:36:17 +08:00

98 lines
2.5 KiB
Go

package common
import (
"strconv"
"time"
"lone-services/pkg/modelbase"
"lone-services/pkg/utils"
"lone-services/services/analysis/internal/dao"
"lone-services/services/analysis/internal/model"
)
func parseValidityTime(date string) (utils.CustomTime, error) {
timeStr := date
if len(date) == len("2006-01-02 15:04") {
timeStr = date + ":00"
}
t, err := time.ParseInLocation("2006-01-02 15:04:05", timeStr, time.Local)
if err != nil {
return utils.CustomTime{}, err
}
return utils.CustomTime{Time: t}, nil
}
func BindStoreAuth(userId, storeId int64, validityTime string) error {
vt, err := parseValidityTime(validityTime)
if err != nil {
return err
}
authModel := model.UserStoreAuthModel{}.Init()
w := modelbase.Params{
Eq: map[string]string{
"user_id": strconv.FormatInt(userId, utils.NumberTen),
"store_id": strconv.FormatInt(storeId, utils.NumberTen),
"status": strconv.Itoa(int(dao.StatusEnabled)),
},
}
var oldList []dao.UserStoreAuth
if err := authModel.Items(w, &oldList); err != nil {
return err
}
if len(oldList) > 0 {
if _, err := authModel.Edit(w, map[string]interface{}{
"status": dao.StatusDisabled,
}); err != nil {
return err
}
}
return authModel.Create(&dao.UserStoreAuth{
UserId: userId,
StoreId: storeId,
ValidityTime: vt,
Status: dao.StatusEnabled,
CreatedAt: utils.Now(),
})
}
func ListStoreAuth(userId int64) ([]dao.UserStoreAuth, error) {
var list []dao.UserStoreAuth
err := model.UserStoreAuthModel{}.Init().Items(modelbase.Params{
Eq: map[string]string{
"user_id": strconv.FormatInt(userId, utils.NumberTen),
"status": strconv.Itoa(int(dao.StatusEnabled)),
},
}, &list)
return list, err
}
func DisableStoreAuth(id, userId int64) (int64, error) {
return model.UserStoreAuthModel{}.Init().Edit(modelbase.Params{
Eq: map[string]string{
"id": strconv.FormatInt(id, utils.NumberTen),
"user_id": strconv.FormatInt(userId, utils.NumberTen),
"status": strconv.Itoa(int(dao.StatusEnabled)),
},
}, map[string]interface{}{
"status": dao.StatusDisabled,
})
}
func UpdateStoreAuthTime(id, userId int64, validityTime string) (int64, error) {
vt, err := parseValidityTime(validityTime)
if err != nil {
return utils.NumberZero, err
}
return model.UserStoreAuthModel{}.Init().Edit(modelbase.Params{
Eq: map[string]string{
"id": strconv.FormatInt(id, utils.NumberTen),
"user_id": strconv.FormatInt(userId, utils.NumberTen),
"status": strconv.Itoa(int(dao.StatusEnabled)),
},
}, map[string]interface{}{
"validity_time": vt,
})
}