|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- package db
-
- import (
- "applet/app/db/model"
- "applet/app/md"
- "applet/app/utils"
- "applet/app/utils/cache"
- "applet/app/utils/logx"
- "fmt"
- "reflect"
- "xorm.io/xorm"
- )
-
- func GetVirtualCoinList(eg *xorm.Engine) ([]*model.VirtualCoin, error) {
- var m []*model.VirtualCoin
- err := eg.Find(&m)
- if err != nil {
- return nil, err
- }
-
- return m, nil
- }
- func GetVirtualCoinIsUseList(eg *xorm.Engine) ([]*model.VirtualCoin, error) {
- var m []*model.VirtualCoin
- err := eg.Where("is_use = ?", 1).Find(&m)
- if err != nil {
- return nil, err
- }
-
- return m, nil
- }
-
- // VirtualCoinListInUse 查询正在使用中的虚拟币
- func VirtualCoinListInUse(Db *xorm.Engine, masterId string) ([]*model.VirtualCoin, error) {
- var m []*model.VirtualCoin
- cacheKey := fmt.Sprintf(md.VirtualCoinCfgCacheKey, masterId)
-
- err := cache.GetJson(cacheKey, &m)
- if err != nil || len(m) == 0 {
- err := Db.Where("is_use=1").Find(&m)
- if err != nil {
- return nil, err
- }
- cache.SetJson(cacheKey, m, md.CfgCacheTime)
- }
-
- return m, nil
- }
-
- // VirtualCoinGetOneByParams 通过参数查询数据(单条)
- func VirtualCoinGetOneByParams(Db *xorm.Engine, params map[string]interface{}) (*model.VirtualCoin, error) {
- var m model.VirtualCoin
- var query = fmt.Sprintf("%s =?", params["key"])
- if has, err := Db.Where(query, params["value"]).Get(&m); err != nil || has == false {
- return nil, logx.Error(err)
- }
- return &m, nil
- }
-
- // VirtualCoinFindByParams 通过传入的参数查询数据(多条)
- func VirtualCoinFindByParams(Db *xorm.Engine, params map[string]interface{}) (*[]model.VirtualCoin, error) {
- var m []model.VirtualCoin
- if params["key"] == nil {
- //查询全部数据
- err := Db.Find(&m)
- if err != nil {
- return nil, logx.Error(err)
- }
- return &m, nil
- } else {
- if reflect.TypeOf(params["value"]).Kind() == reflect.Slice {
- //指定In查询
- if err := Db.In(utils.AnyToString(params["key"]), params["value"]).Find(&m); err != nil {
- return nil, logx.Warn(err)
- }
- return &m, nil
- } else {
- var query = fmt.Sprintf("%s =?", params["key"])
- err := Db.Where(query, params["value"]).Find(&m)
- if err != nil {
- return nil, logx.Error(err)
- }
- return &m, nil
- }
-
- }
- }
- func VirtualCoinGetOneById(Db *xorm.Engine, coinId string) (*model.VirtualCoin, error) {
- var m model.VirtualCoin
- if has, err := Db.ID(coinId).Get(&m); err != nil || has == false {
- return nil, logx.Error(err)
- }
- return &m, nil
- }
-
- func VirtualCoinOrderRelateDeleteByOid(Db *xorm.Engine, oid int64, pvd string) (int64, error) {
- _, err := Db.Where("oid=? and pvd=?", oid, pvd).Delete(model.VirtualCoinRelate{})
- if err != nil {
- return 0, err
- }
- return 1, nil
- }
-
- func VirtualCoinMapInUse(Db *xorm.Engine, masterId string) (map[string]model.VirtualCoin, error) {
- virtualCoinMap := make(map[string]model.VirtualCoin)
- listInUse, err := VirtualCoinListInUse(Db, masterId)
- if err != nil {
- return nil, err
- }
- for _, coin := range listInUse {
- virtualCoinMap[utils.AnyToString(coin.Id)] = *coin
- }
- return virtualCoinMap, nil
- }
|