package service

import (
	"go_sku_server/model"
	"go_sku_server/pkg/logger"
	"go_sku_server/pkg/mongo"
	"go_sku_server/pkg/vars"
	"time"

	"github.com/syyongx/php2go"
	"gopkg.in/mgo.v2"
	"gopkg.in/mgo.v2/bson"
)

//在途库存服务
type StockInfoService struct {
}

func (ss *LyService) getStockInfo(supplierId, oldGoodsId int64) interface{} {
	if !php2go.InArray(supplierId, vars.StockInfoSupplierIds) {
		return nil
	}
	var stockInfo model.StockInfo
	//去mongodb获取在途库存信息
	mongodb := mongo.Conn("default")
	defer func() {
		mongodb.Close()
	}()
	//还要判断去哪个集合取值
	collectionName := vars.StockInfoSupplierMap[supplierId]
	type Goods struct {
		StockInfo model.StockInfo `bson:"stock_info"`
	}
	var goods Goods
	err := mongodb.DB("ichunt").C(collectionName).Find(bson.M{"goods_id": int(oldGoodsId)}).One(&goods)
	if err != nil && err != mgo.ErrNotFound {
		logger.Select("sku_query").Error(err.Error())
	}

	stockInfo = goods.StockInfo

	if stockInfo.PeriodTime > 0 {
		stockInfo.PeriodTimeFormat = time.Unix(int64(stockInfo.PeriodTime), 0).Format("2006-01-02")
	}

	if stockInfo.Stock != 0 || stockInfo.PeriodTime != 0 {
		return stockInfo
	}

	return nil
}