mh_server/model/model_test.go
2022-04-27 10:25:55 +08:00

1107 lines
27 KiB
Go

package model
import (
"crypto/sha512"
"encoding/json"
"fmt"
"mh-server/lib/auth"
"mh-server/lib/utils"
//"github.com/andreburgaud/crypt2go/ecb"
//"github.com/andreburgaud/crypt2go/padding"
"github.com/codinl/go-logger"
"github.com/jinzhu/gorm"
"math/rand"
"strings"
"testing"
"time"
)
func TestGameList(t *testing.T) {
InitTestDB()
var game GameCard
err := NewGameCardQuerySet(DBDev).IDEq(1).One(&game)
if err != nil {
logger.Error("err:", err)
return
}
logger.Infof("game %#v", game)
fmt.Printf("game %#v", game)
gameName := game.Name
for i := 50; i < 200; i++ {
randNum := getRandNum()
numUnix := getRandNumUnix()
num := fmt.Sprintf("0%d", i+1)
game.Name = num + gameName
game.NewProducts = 2
game.Price = uint32(randNum)
game.OrderCount = uint32(randNum + numUnix)
game.ID = 0
DBDev.Create(&game)
}
}
func getRandNum() int {
rand.Seed(time.Now().UnixNano())
return rand.Intn(1000)
}
func getRandNumUnix() int {
rand.Seed(time.Now().Unix())
return rand.Intn(1000)
}
var DBDev *gorm.DB
// 测试服务器
func InitTestDB() {
var err error
dialect := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
"mh_dev", "m5h4parZsXjbeiFh", "39.108.188.218", "3306", "mh_dev")
db, err := gorm.Open("mysql", dialect)
if err != nil {
logger.Infof("Open DB error [%s] with dialect[%s]", err.Error(), dialect)
panic(err)
}
if db.DB().Ping() != nil {
fmt.Printf("Ping DB fail: %#v", db.Error)
panic(err)
}
db.SingularTable(true)
db.AutoMigrate(
//&User{},
////&LotteryInviteTargetUser{},
//&GameCard{},
//&Collection{},
//&Config{},
//&HistoryBrowsing{},
//&ShoppingCart{},
//&UserAddress{},
//&SearchHistory{},
//&Order{},
//&HotSearch{},
//&HomeCarousel{},
//&GameCardType{},
//&Store{},
//&GameType{},
//&UserOpenMemberRecord{},
//&CommonProblem{},
//&ExpressCompany{},
//&GameCardGoodsStock{},
//&GameCardGoods{},
//&UserInvite{},
//&ArticleTitlePanel{},
//&RedeemCode{},
//&UserRedeemCode{},
//&DepositRefundRecord{},
//&GroupSendMessageTemplate{},
//
//&Goods{},
//&GoodsOrder{},
//&UserVm{},
//&UserVmRecord{},
//
//&OrderCard{},
//&UserRentCard{},
//&UserConsumeRecord{},
//&UserMemberExpireDelay{},
//
//&UserShareCardBill{},
//&ShareCardBillGame{},
//&UserShareCard{},
//&ShareCardVmRecord{},
//&UserShareCardVm{},
//&ShareCardDateVm{},
//&ShareCardVmRecord{},
//&ShareCardRetrieve{},
//&ShareCardRetrieveCard{},
//&GameCardLabel{},
//&CardIssueFeedback{},
//&GameShareCardVm{},
&GameCard{},
&FundRecord{},
&User{},
&UserAttendance{},
&UserAttendanceRecord{},
)
fmt.Println("DB init success")
DBDev = db
logger.Info("ok")
}
func TestInitTestDBModel(t *testing.T) {
InitTestDB()
}
func TestMemberExprireTime(t *testing.T) {
InitTestDB()
}
var DBProd *gorm.DB
func InitDBProd() {
var err error
dialect := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
"mh_pro", "fLeytnBFCRB553ab", "39.108.188.218", "3306",
"mh_pro")
DBProd, err = gorm.Open("mysql", dialect)
if err != nil {
fmt.Println("Connect Database Error, error = ", err)
panic(err)
}
DBProd.DB().SetMaxOpenConns(1000)
DBProd.DB().SetMaxIdleConns(500)
DBProd.DB().SetConnMaxLifetime(time.Second * 10)
//DBProd.LogMode(true)
DBProd.LogMode(false)
DBProd.SingularTable(true)
DBProd.AutoMigrate(
//&RedeemCode{},
//&UserRedeemCode{},
//&GameCardGoods{},
//
//&UserShareCardBill{},
//&ShareCardBillGame{},
//&UserShareCard{},
//&ShareCardVmRecord{},
//&UserShareCardVm{},
//&ShareCardDateVm{},
//&ShareCardGameVm{},
//&ShareCardRetrieve{},
//&ShareCardRetrieveCard{},
//&GameCardLabel{},
//&CardIssueFeedback{},
//&GameCard{},
//&FundRecord{},
//&User{},
&GameCard{},
&FundRecord{},
&User{},
&UserAttendance{},
&UserAttendanceRecord{},
)
if err := DBProd.DB().Ping(); err != nil {
fmt.Println("Ping Database Fail, error = ", err)
panic(err)
}
fmt.Println("DB init success")
}
func TestInitProdDBModel(t *testing.T) {
InitDBProd()
}
func TestHotSearch_TableName(t *testing.T) {
InitTestDB()
list := []string{"马里奥赛车8豪华版", "任天堂明星大乱斗 特别版", "超级马力欧 奥德赛", "塞尔达传说:旷野之息",
"宝可梦:剑 / 盾", "精灵宝可梦 Let's Go! 皮卡丘/Let's Go! 伊布", "喷射战士2", "超级马力欧派对",
"新超级马里奥兄弟U", "路易基鬼屋3", "超级马力欧创作家2", "塞尔达传说:织梦岛", "集合了!动物森友会",
"1-2 Switch", "马里奥网球Aces", "马里奥+疯兔:王国之战", "火焰之纹章:风花雪月", "星之卡比:新星同盟",
"大金刚国度:热带寒流"}
for i, s := range list {
hotSearch := &HotSearch{
Keyword: s,
Sort: uint32(len(list) - i),
}
err := hotSearch.Create(DBDev)
if err != nil {
logger.Error("err:", err)
}
}
}
func TestGetHomeCarouselList(t *testing.T) {
InitTestDB()
//imgs := []string{"1-2011060021334X.jpg", "1-2011060021425N.jpg", "1-201106002150294.jpg", "1-201106002159522.jpg"}
imgs := []string{"http://39.108.188.218:8000/img/1-2011060021334X.jpg", "http://39.108.188.218:8000/img/1-2011060021425N.jpg", "http://39.108.188.218:8000/img/1-201106002150294.jpg", "http://39.108.188.218:8000/img/1-201106002159522.jpg"}
for i, img := range imgs {
homeCarousel := &HomeCarousel{
Name: "banner" + fmt.Sprintf("%d", len(imgs)-i),
Img: img,
Sort: uint32(len(imgs) - i),
IsShow: 1,
Detail: "",
Link: "",
}
err := homeCarousel.Create(DBDev)
if err != nil {
logger.Error("err:", err)
}
}
}
func TestGameCardType_Create(t *testing.T) {
InitTestDB()
types := []string{"角色扮演", "射击游戏", "动作游戏", "冒险游戏", "赛车游戏", "策略游戏", "即时战略", "养成游戏", "桌面棋牌", "休闲益智", "体育运动", "模拟经营", "音乐游戏", "格斗游戏", "动作角色", "第一人称射击", "第三人称射击"}
for i, s := range types {
cardType := GameCardType{
Name: s,
Sort: uint32(i + 100),
}
err := cardType.Create(DBDev)
if err != nil {
logger.Error("err:", err)
}
}
}
func TestStore_TableName(t *testing.T) {
InitTestDB()
for i := 0; i < 10; i++ {
idx := fmt.Sprintf("%d", i+1)
store := Store{
Name: "门店" + idx,
Img: "http://39.108.188.218:8000/img/1599445323_430355.jpg",
Tel: "021-54473036",
Province: "广东省",
City: "深圳市",
District: "南山区",
Address: "高新园",
Longitude: 0,
Latitude: 0,
}
err := store.Create(DBDev)
if err != nil {
logger.Error("err:", err)
}
}
}
func TestPess(t *testing.T) {
InitTestDB()
comp := []string{"圆通速递", "韵达快递", "中通快递", "顺丰速运", "申通快递", "百世快递", "邮政快递包裹", "京东物流", "EMS", "极兔速递", "EMS包裹"}
compCode := []string{"yuantong", "yunda", "zhongtong", "shunfeng", "shentong", "huitongkuaidi", "youzhengguonei", "jd", "ems", "jtexpress", "emsbg"}
for i, _ := range comp {
company := &ExpressCompany{
CompanyName: comp[i],
CompanyCode: compCode[i],
}
err := company.Create(DBDev)
if err != nil {
logger.Error("err:", err)
}
}
}
func TestGoodsStock(t *testing.T) {
InitTestDB()
cards := make([]GameCard, 0)
err := NewGameCardQuerySet(DBDev).All(&cards)
if err != nil {
logger.Error("err:", err)
}
stores := make([]Store, 0)
err = NewStoreQuerySet(DBDev).IsOnlineEq(1).All(&stores)
if err != nil {
logger.Error("err:", err)
}
for _, store := range stores {
for _, card := range cards {
stock := &GameCardGoodsStock{
StoreId: uint64(store.ID),
GameCardId: uint64(card.ID),
StoreStock: 1000,
RentStock: 10,
}
err := stock.Create(DBDev)
if err != nil {
logger.Error("err:", err)
}
}
}
}
func TestGoodsCard(t *testing.T) {
InitTestDB()
cards := make([]GameCard, 0)
err := NewGameCardQuerySet(DBDev).All(&cards)
if err != nil {
logger.Error("err:", err)
}
stores := make([]Store, 0)
err = NewStoreQuerySet(DBDev).IsOnlineEq(1).All(&stores)
if err != nil {
logger.Error("err:", err)
}
for _, store := range stores {
for _, card := range cards {
stock := &GameCardGoodsStock{
StoreId: uint64(store.ID),
GameCardId: uint64(card.ID),
StoreStock: 1000,
RentStock: 10,
}
err := stock.Create(DBDev)
if err != nil {
logger.Error("err:", err)
}
}
}
}
func TestOrderList(t *testing.T) {
InitTestDB()
count, err := NewOrderQuerySet(DBDev.Debug()).UidEq(uint64(55191926)).PayStatusEq(PayStatusPaid).CardStatusIn([]uint8{1, 2, 3}...).Count()
if err != nil {
logger.Error("err:", err)
}
fmt.Println("count:", count)
}
func TestGenShareCode(t *testing.T) {
}
// 用户绑定门店
func TestUserBundleFirstOrderStore(t *testing.T) {
UserBundleFirstOrderStore()
}
func UserBundleFirstOrderStore() {
InitDBProd()
var users []User
//err := NewUserQuerySet(DBProd).StoreIdEq(0).MemberLevelGte(2).OrderAscByID().All(&users)
err := NewUserQuerySet(DBProd).StoreTypeEq(1).OrderAscByID().All(&users)
if err != nil {
fmt.Println("users err:", err)
return
}
for i, _ := range users {
//var order Order
//err := NewOrderQuerySet(DBProd).UidEq(uint64(users[i].Uid)).PayStatusEq(PayStatusPaid).
// CardStatusEq(OrderCardStatusCompleted).OrderAscByCreatedAt().Limit(1).One(&order)
//if err != nil {
// fmt.Println("store_id err:", err)
// //return
//}
//if i > 3{
// return
//}
if users[i].Uid == 0 {
continue
}
//sql := fmt.Sprintf("UPDATE `user` SET store_id =%d,store_type=1 WHERE uid = %d;", order.StoreId, users[i].Uid)
//fmt.Println("sql:", sql)
//err = DBProd.Exec(sql).Error
//if err != nil {
// fmt.Println("store_id err:", err)
// return
//}
userInvite := &UserInvite{
FromUid: 0,
UserType: 0,
StoreId: users[i].StoreId,
MemberOpenTime: users[i].MemberExpire.AddDate(-1, 0, 0),
MemberType: 2,
MemberStatus: 2,
ToUid: users[i].Uid,
StoreType: 1,
}
err = DBProd.Create(userInvite).Error
if err != nil {
fmt.Println("create err:", err)
}
}
}
func TestMemberCode(t *testing.T) {
for i := 0; i < 100; i++ {
MemberCode()
}
}
func MemberCode() {
//sha256.New()
//ft := time.Now().Format("20060102150405")
st := fmt.Sprintf("%d", time.Now().UnixNano())
str := "test-hash" + st
hasher := sha512.New()
hasher.Write([]byte(str))
r := hasher.Sum(nil)
//fmt.Printf("%x \n",r)
hs := fmt.Sprintf("%x", r)
upper := strings.ToUpper(hs)
fmt.Println("upper:", upper)
}
func TestLeng(t *testing.T) {
fmt.Println("len:", len("22AB0776591642F13101"))
// B61E1104C989D4E2F453EB6253A06A3721094DDF76FF468EB679CEA046403D3F7B963A8FBED0CB70C1EB9B17BB684DAFB700F966676D
}
// 生成会员兑换码
func TestRedeemCodeCreate(t *testing.T) {
RedeemCodeCreate()
}
func RedeemCodeCreate() {
//InitTestDB()
InitDBProd()
for i := 0; i < 7; i++ {
redeem := NewRedeemCode()
fmt.Println("redeemCode:", redeem)
secretCode := RedeemSecretCode(redeem)
fmt.Println("secretCode:", secretCode)
if !IsRedeemCodeExist(redeem) {
redeemCode := &RedeemCode{
SerialCode: redeem,
CodeType: CodeTypeMemberGoldMember,
Status: RedeemCodeStatusStock,
CodeSecret: secretCode,
EffectiveTime: time.Now(),
ExpirationTime: time.Now().AddDate(1, 0, 0),
}
//err := DBDev.Create(redeemCode).Error
err := DBProd.Create(redeemCode).Error
if err != nil {
fmt.Println("err:", err)
}
}
}
}
func IsRedeemCodeExist(code string) bool {
var isExist uint32
sql := fmt.Sprintf("SELECT EXISTS (SELECT * FROM redeem_code WHERE serial_code = '%s') AS code_exsit;", code)
//err := DBDev.Raw(sql).Row().Scan(&isExist)
err := DBProd.Raw(sql).Row().Scan(&isExist)
if err != nil {
fmt.Println("err:", err)
return true
}
return isExist == 1
}
func NewRedeemCode() string {
semen := fmt.Sprintf("MemberCard30%d", time.Now().UnixNano())
shaer := sha512.New()
shaer.Write([]byte(semen))
r := shaer.Sum(nil)
hs := fmt.Sprintf("%x", r)
hs = strings.ToUpper(hs)
return "MC30" + hs[:19]
}
func TestInitConfig(t *testing.T) {
InitConfig()
}
func InitConfig() {
//InitTestDB()
InitDBProd()
payConfig := &PayConfig{
MemberFee: 29900,
DepositFee: 30000,
NotifyUrl: "https://switch.deovo.com:8001/api/v1/wxpay/notice",
}
bytes, err := json.Marshal(payConfig)
if err != nil {
fmt.Println("err:", err)
}
configInfo := &Config{
Name: "pay_config",
Value: string(bytes),
}
err = DBProd.Create(configInfo).Error
if err != nil {
fmt.Println("err:", err)
}
}
func TestMergingGameCards(t *testing.T) {
MergingGameCards()
}
func MergingGameCards() {
//UPDATE history_browsing SET game_card_id=782 WHERE game_card_id = 870;
//UPDATE collection SET game_card_id=782 WHERE game_card_id = 870;
//UPDATE game_card_goods SET game_card_id=782 WHERE game_card_id = 870;
//UPDATE `order` SET game_card_id=782 WHERE game_card_id = 870;
//UPDATE shopping_cart SET game_card_id=782 WHERE game_card_id = 870;
fromGameId := uint64(870)
toGameId := uint64(782)
InitDBProd()
var fromGameCardStock []GameCardGoodsStock
err := NewGameCardGoodsStockQuerySet(DBProd).GameCardIdEq(fromGameId).All(&fromGameCardStock)
if err != nil {
logger.Error("err:", err)
return
}
var toGameCardStock []GameCardGoodsStock
err = NewGameCardGoodsStockQuerySet(DBProd).GameCardIdEq(toGameId).All(&toGameCardStock)
if err != nil {
logger.Error("err:", err)
return
}
toGameMap := make(map[uint64]GameCardGoodsStock, 0)
for i, _ := range toGameCardStock {
toGameMap[toGameCardStock[i].StoreId] = toGameCardStock[i]
}
for _, v := range fromGameCardStock {
//fmt.Println("fromGameCardStock:", fromGameCardStock[i].StoreId)
//fmt.Println("fromGameCardStock:", fromGameCardStock[i].StoreStock)
//fmt.Println("fromGameCardStock:", v.RentStock)
cardGoodsStock, ok := toGameMap[v.StoreId]
if ok {
// cardGoodsStock.StoreStock += v.StoreStock
// cardGoodsStock.RentStock += v.RentStock
// cardGoodsStock.UserHoldStock += v.UserHoldStock
// cardGoodsStock.OrderCount += v.OrderCount
// cardGoodsStock.TotalStock += v.TotalStock
// err := DBProd.Save(&cardGoodsStock).Error
// if err != nil {
// logger.Error("err:", err)
// }
fmt.Println("cardGoodsStock:", cardGoodsStock)
} else {
fmt.Println("cardGoodsStock:", v.StoreId)
v.ID = 0
v.GameCardId = 782
err := DBProd.Create(&v).Error
if err != nil {
logger.Error("create err:", err)
}
}
}
}
func TestGoodsAdd(t *testing.T) {
GoodsAdd()
}
func GoodsAdd() {
InitTestDB()
for i := 0; i < 5; i++ {
goods := Goods{
GoodsId: 1 + uint32(i) + 1,
SerialNo: "sdhfjskdhjk" + fmt.Sprintf("%d", i+1),
CatId: 1,
Name: "宝可梦剑" + fmt.Sprintf("%d", i+1),
Title: "宝可梦剑",
MainImage: "https://minghui-oss.oss-cn-shenzhen.aliyuncs.com/eceec8e0-da21-11eb-8936-197fd3ba503d.jpg",
Images: "https://minghui-oss.oss-cn-shenzhen.aliyuncs.com/eceec8e0-da21-11eb-8936-197fd3ba503d.jpg",
Stock: 10,
Detail: "宝可梦剑 详情" + fmt.Sprintf("%d", i+1),
SoldCount: 0,
SaleStatus: 1,
PriceVm: 10 + uint32(i),
PriceRm: 29900,
PriceOriginal: 29900,
DeliveryFee: 1000,
VersionId: 0,
}
err := DBDev.Create(&goods).Error
if err != nil {
fmt.Println("err:", err)
}
}
}
func UpdateUserName() {
InitDBProd()
}
func TestMemberUserList(t *testing.T) {
MemberUserList()
}
func MemberUserList() {
InitDBProd()
var users []User
err := NewUserQuerySet(DBProd).MemberLevelEq(2).OrderAscByID().All(&users)
//err := NewUserQuerySet(DBProd).MemberLevelNe(2).OrderAscByID().All(&users)
//err := NewUserQuerySet(DBProd).StoreTypeEq(1).OrderAscByID().All(&users)
if err != nil {
fmt.Println("users err:", err)
return
}
endTime, _ := time.Parse("2006-01-02", "2022-02-13")
startTime, _ := time.Parse("2006-01-02", "2021-07-30")
for _, user := range users {
count, err := NewUserInviteQuerySet(DBProd).ToUidEq(user.Uid).MemberTypeEq(2).MemberOpenTimeGt(startTime).MemberOpenTimeLt(endTime).Count()
//count, err := NewUserInviteQuerySet(DBProd).ToUidEq(user.Uid).MemberTypeEq(2).MemberOpenTimeGt(startTime).MemberOpenTimeLt(endTime).Count()
if err != nil {
fmt.Println("err:", err)
}
if count == 0 {
fmt.Println("user :", user.Uid)
}
}
}
func TestOpenMemberTimeUserList(t *testing.T) {
OpenMemberTimeUserList()
}
func OpenMemberTimeUserList() {
InitDBProd()
var users []User
err := NewUserQuerySet(DBProd).MemberLevelEq(2).All(&users)
if err != nil {
fmt.Println("err:", err)
}
userMap := make(map[uint32]User, 0)
for i, _ := range users {
userMap[users[i].Uid] = users[i]
}
var userInvites []UserInvite
err = NewUserInviteQuerySet(DBProd).MemberTypeEq(2).All(&userInvites)
if err != nil {
fmt.Println("err:", err)
}
for i, _ := range userInvites {
user, ok := userMap[userInvites[i].ToUid]
if ok {
if user.OpenMemberTime.IsZero() {
fmt.Println("", user.OpenMemberTime, user.Uid, user.MemberLevel)
fmt.Println("", userInvites[i].MemberOpenTime, userInvites[i].MemberType, userInvites[i].ToUid)
}
}
}
}
func TestSyncUserRentCard(t *testing.T) {
SyncUserRentCard()
}
func SyncUserRentCard() {
InitDBProd()
var users []User
err := NewUserQuerySet(DBProd).MemberLevelIn(2, 3).All(&users)
if err != nil {
logger.Error("err:", err)
}
for _, user := range users {
var orderCards []OrderCard
qs := NewOrderCardQuerySet(DBProd).UidEq(user.Uid).CardStatusIn(1, 2, 3).PayStatusEq(2)
qs.All(&orderCards)
count, err := qs.Count()
if err != nil {
fmt.Println("err:", err)
}
if count > 1 {
//if orderCards[0].CardStatus > 1 &&orderCards[1].CardStatus >1{
// continue
//}
fmt.Println("订单 count: uid:", count, user.Uid, orderCards[0].CardStatus, orderCards[1].CardStatus)
}
}
//for _, user := range users {
// fmt.Println("user:", user.MemberLevel, user.MemberExpire, user.OpenMemberTime)
// userRentCard := &UserRentCard{
// Uid: user.Uid,
// MemberLevel: user.MemberLevel,
// LevelRentCount: 1,
// HaveRentCount: 0,
// CanRentCount: 1,
// Status: 0,
// }
// err = DBProd.Create(userRentCard).Error
// if err != nil {
// logger.Error("err:", err)
// }
//}
}
func TestSyncUserOpenMemberTime(t *testing.T) {
SyncUserOpenMemberTime()
}
func SyncUserOpenMemberTime() {
InitDBProd()
var userInvites []UserInvite
err := NewUserInviteQuerySet(DBProd).MemberTypeEq(2).All(&userInvites)
if err != nil {
logger.Error("err:", err)
}
count := 0
for _, userInvite := range userInvites {
fmt.Println("user:", userInvite.MemberLevel, userInvite.MemberOpenTime)
//err = NewUserInviteQuerySet(DBProd).IDEq(userInvite.ID).GetUpdater().SetMemberLevel(2).Update()
//if err != nil {
// logger.Error("err:", err)
//}
err = NewUserQuerySet(DBProd).UidEq(userInvite.ToUid).GetUpdater().
SetOpenMemberTime(userInvite.MemberOpenTime).Update()
if err != nil {
logger.Error("err:", err)
}
count++
}
fmt.Println("count:", count)
}
func TestSyncUserOrder(t *testing.T) {
SyncUserOrder()
}
func SyncUserOrder() {
InitDBProd()
var orders []Order
sql := fmt.Sprintf("SELECT * FROM `order` WHERE pay_status = 2 AND card_status IN (1,2,3);")
err := DBProd.Raw(sql).Scan(&orders).Error
//err := NewOrderQuerySet(DBProd).PayStatusEq(2).CardStatusIn([]uint8{1, 2, 3}...).All(&orders)
if err != nil {
logger.Error("err:", err)
return
}
fmt.Println("orders:", len(orders))
//for _, order := range orders {
// //fmt.Println("order:", order.PayStatus, order.GameCardGoodsId)
// //var gameCardGoods GameCardGoods
// //err = NewGameCardGoodsQuerySet(DBProd).IDEq(uint32(order.GameCardGoodsId)).One(&gameCardGoods)
// //if err != nil {
// // logger.Error("err:", err)
// // //continue
// //}
// //orderCard := OrderCard{
// // OrderId: order.ID,
// // Uid: uint32(order.Uid),
// // GameCardId: uint32(order.GameCardId),
// // GameCardGoodsId: uint32(order.GameCardGoodsId),
// // StoreId: uint32(order.StoreId),
// // CardStatus: uint32(order.CardStatus),
// // DeliveryTime: order.DeliveryTime,
// // ReceiptTime: order.ReceiptTime,
// // DeliveryType: order.DeliveryType,
// // SerialNumber: order.GameCardSerialNumber,
// // PayStatus: order.PayStatus,
// // RevertStoreId: order.RevertStoreId,
// // RevertTime: order.RevertTime,
// // RevertExpressCompany: order.RevertExpressCompany,
// // RevertExpressCompanyNo: order.RevertExpressCompanyNo,
// // RevertExpressNo: order.RevertExpressNo,
// // RevertExpressDuration: order.RevertExpressDuration,
// //
// // //Postage: order.Postage,
// // //ExpressCompany: order.ExpressCompany,
// // //ExpressCompanyNo: order.ExpressCompanyNo,
// // //ExpressNo: order.ExpressNo,
// // //GamePrice: 0,
// // //GameCoverImg: "",
// // //Order: nil,
// //}
// //fmt.Println("order:", order.ID, order.PayStatus, order.CardStatus, order.Uid, order.GameCardId)
// //err = DBProd.Create(&orderCard).Error
// //if err != nil {
// // logger.Error("err:", err)
// //}
//}
}
func TestSyncUserRent(t *testing.T) {
SyncUserRent()
}
func SyncUserRent() {
InitDBProd()
var users []User
err := NewUserQuerySet(DBProd).MemberLevelIn(2, 3).All(&users)
if err != nil {
logger.Error("err:", err)
}
//Order{}
for _, user := range users {
if user.Uid == 34021861 || user.Uid == 81309358 {
continue
}
count, err := NewUserRentCardQuerySet(DBProd).UidEq(user.Uid).CanRentCountEq(1).HaveRentCountEq(0).Count()
if err != nil {
fmt.Println("err:", err)
}
if count > 0 {
orderCount, err := NewOrderCardQuerySet(DBProd).UidEq(user.Uid).CardStatusIn(1, 2, 3).PayStatusEq(2).Count()
if err != nil {
fmt.Println("err:", err)
}
if orderCount == 0 {
continue
}
fmt.Println("订单 count: uid:", orderCount, user.Uid)
//_, err = NewUserRentCardQuerySet(DBProd).UidEq(user.Uid).GetUpdater().SetCanRentCount(0).
// SetHaveRentCount(1).UpdateNum()
//if err != nil {
// fmt.Println("err:", err)
//}
}
}
}
func TestOrderCancelId(t *testing.T) {
//OrderCancelId()
}
//func OrderCancelId() {
// ids := []uint32{8288, 8265}
// for _, id := range ids {
// //OrderCancel(id)
// controller.OrderCancelBy(id)
// }
//
//}
//func OrderCancel(id uint32) {
// //InitDBProd()
// //DB = DBProd
// var order Order
// err := NewOrderQuerySet(DB).IDEq(id).One(&order)
// if err != nil {
// fmt.Println("err:", err)
// }
//
// outTradeNo, err := GetWxPayExpressFeeRefundRecord(order.ID)
// if err != nil {
// logger.Error("err:", err)
// return
// }
//
// orderSn := GetOrderSn()
// err = UserOpenMemberRecord{Uid: uint32(order.Uid), OpenNo: orderSn, OrderId: order.ID, OrderType: 2}.Insert()
// if err != nil {
// logger.Error(errors.New("WebPay err"))
// return
// }
//
// orderRefund := wxpay.OrderRefund{
// OutTradeNo: outTradeNo,
// OutRefundNo: orderSn,
// NotifyUrl: "",
// Amount: wxpay.OrderRefundAmount{a
// Refund: order.PayPrice,
// Total: order.PayPrice,
// Currency: "CNY",
// },
// }
// bytes, _ := json.Marshal(order)
// fmt.Println("订单取消:", string(bytes))
// orderRefundJson, _ := json.Marshal(&orderRefund)
// fmt.Println("订单取消 orderRefundJson:", string(orderRefundJson))
// //err = wxpay.WxPayOrderRefund(orderRefund)
// err = wxpay.TransactionOrderRefund(orderRefund)
// if err != nil {
// logger.Error("err:", err)
// return
// }
//}
func TestGameCardGoodsStockInspection(t *testing.T) {
GameCardGoodsStockInspection()
}
func GameCardGoodsStockInspection() {
InitDBProd()
var gameCardGoodses []GameCardGoods
err := NewGameCardGoodsQuerySet(DBProd).StoreIdEq(16).All(&gameCardGoodses)
if err != nil {
logger.Error("err:", err)
}
rentMap := make(map[uint32]uint32, 0)
holdMap := make(map[uint32]uint32, 0)
for _, gameCard := range gameCardGoodses {
if gameCard.Status == 1 {
//rentMap[uint32(gameCard.StoreId)] += 1
rentMap[uint32(gameCard.GameCardId)] += 1
}
if gameCard.Status == 3 {
holdMap[uint32(gameCard.GameCardId)] += 1
}
}
var gameCardGoodsStocks []GameCardGoodsStock
err = NewGameCardGoodsStockQuerySet(DBProd).StoreIdEq(16).All(&gameCardGoodsStocks)
if err != nil {
logger.Error("err:", err)
}
for _, stock := range gameCardGoodsStocks {
rent := rentMap[uint32(stock.GameCardId)]
hold := holdMap[uint32(stock.GameCardId)]
//fmt.Println("StoreId:", stock.StoreId, "rent:", rent, stock.RentStock, "hold:", hold, stock.UserHoldStock)
if rent != stock.RentStock || hold != stock.UserHoldStock {
fmt.Println("StoreId:", stock.StoreId, "rent:", rent, stock.RentStock, "hold:", hold, stock.UserHoldStock, stock.GameCardId)
}
}
}
func TestTimeZeroData(t *testing.T) {
InitTestDB()
//NewShareCardRetrieveCardQuerySet(DB).IDEq(189).GetUpdater().SetStoreId()
}
func TestWxPayDecode(t *testing.T) {
config := AttendanceVmConfig{
VmDay1: 2,
VmDay2: 4,
VmDay3: 6,
VmDay4: 8,
VmDay5: 10,
VmDay6: 12,
VmDay7: 14,
}
marshal, _ := json.Marshal(&config)
fmt.Println("config:", string(marshal))
}
func TestAtt(t *testing.T) {
InitTestDB()
DB = DBDev
UserAttendanceDays()
}
func UserAttendanceDays() {
uc := &auth.UserClaims{Uid: 31871993}
list := make([]AttendanceInfo, 0, 7)
todayZero := utils.TodayZeroDateFormat()
configInfo, err := AttendanceVmConfigInfo()
if err != nil {
logger.Error("attendance vm config info err:", err)
//RespJson(c, status.InternalServerError, nil)
return
}
var attendanceRecord UserAttendanceRecord
err = NewUserAttendanceRecordQuerySet(DB).UidEq(uc.Uid).AttendanceDateEq(todayZero).One(&attendanceRecord)
if err != nil && err != RecordNotFound {
logger.Error("user attendance record err:")
//RespJson(c, status.InternalServerError, nil)
return
}
if err == RecordNotFound {
for i := 0; i < 7; i++ {
info := AttendanceInfo{
IndexDay: uint32(i) + 1,
Date: utils.TodayZeroAddDaysDateFormat((-1) * (7 - i)),
State: 1,
Vm: configInfo.Vm(uint32(i) + 1),
}
list = append(list, info)
}
ret := map[string]interface{}{
"list": list,
"is_attendance": 1,
}
retJson, _ := json.Marshal(&ret)
fmt.Println("ret:", string(retJson))
//RespOK(c, ret)
return
}
var userAttendance UserAttendance
err = NewUserAttendanceQuerySet(DB).UidEq(uc.Uid).One(&userAttendance)
if err != nil && err != RecordNotFound {
logger.Error("user attendance record err:")
//RespJson(c, status.InternalServerError, nil)
return
}
attendanceDays := int(userAttendance.ConsecutiveDays % 7)
if attendanceDays == 0 {
attendanceDays = 7
}
days := attendanceDays
fmt.Println("--------attendanceDays:", attendanceDays)
for i := 0; i < 7; i++ {
state := uint32(1)
if attendanceDays > 0 {
state = 2
}
fmt.Println("attendanceDays:", attendanceDays)
info := AttendanceInfo{
IndexDay: uint32(i) + 1,
//Date: utils.TodayZeroAddDaysDateFormat((-1) * (7 - i)),
Date: utils.TodayZeroAddDaysDateFormat(i + 1 - days),
State: state,
Vm: configInfo.Vm(uint32(i) + 1),
}
list = append(list, info)
attendanceDays--
}
isAttendance := 1
if attendanceRecord.AttendanceDate == todayZero {
isAttendance = 2
}
ret := map[string]interface{}{
"list": list,
"is_attendance": isAttendance,
}
retJson, _ := json.Marshal(&ret)
fmt.Println("ret:", string(retJson))
}