Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
黄成意
/
go_sku_server
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
db02deb2
authored
Jan 27, 2026
by
hcy
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
获取新的在途库存
parent
700776c5
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
85 additions
and
85 deletions
service/service_stock_info.go
service/service_stock_info.go
View file @
db02deb2
package
service
import
(
"go_sku_server/model"
"go_sku_server/pkg/gredis"
"go_sku_server/pkg/logger"
"go_sku_server/pkg/mongo"
"go_sku_server/pkg/vars"
"time"
"github.com/gogf/gf/util/gconv"
"github.com/gomodule/redigo/redis"
"github.com/syyongx/php2go"
"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
)
// 在途库存服务
type
StockInfoService
struct
{
}
// 这个是老的在途库存,基本上就是Digikey用的
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
}
// 获取新的在途库存
func
(
ss
*
LyService
)
getOnwayStock
(
goodsId
string
)
int
{
redisConn
:=
gredis
.
Conn
(
"s
earch_r"
)
defer
func
()
{
redisConn
.
Close
()
}()
onWayStockStr
,
_
:=
redis
.
String
(
redisConn
.
Do
(
"HGET"
,
"sku_onway_stock"
,
goodsId
))
if
onWayStockStr
==
""
{
return
0
}
return
gconv
.
Int
(
onWayStockStr
)
}
// 获取新的在途库存
func
(
ss
*
LyService
)
getLimitStock
(
goodsId
string
)
(
has
bool
,
stock
int
)
{
redisConn
:=
gredis
.
Conn
(
"search_r"
)
defer
func
()
{
redisConn
.
Close
()
}()
limitStockStr
,
_
:=
redis
.
String
(
redisConn
.
Do
(
"HGET"
,
"limit_stock"
,
goodsId
))
if
limitStockStr
==
""
{
return
false
,
0
}
return
true
,
gconv
.
Int
(
limitStockStr
)
}
package
service
import
(
"go_sku_server/model"
"go_sku_server/pkg/gredis"
"go_sku_server/pkg/logger"
"go_sku_server/pkg/mongo"
"go_sku_server/pkg/vars"
"time"
"github.com/gogf/gf/util/gconv"
"github.com/gomodule/redigo/redis"
"github.com/syyongx/php2go"
"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
)
// 在途库存服务
type
StockInfoService
struct
{
}
// 这个是老的在途库存,基本上就是Digikey用的
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
}
// 获取新的在途库存
func
(
ss
*
LyService
)
getOnwayStock
(
goodsId
string
)
int
{
redisConn
:=
gredis
.
Conn
(
"s
pu"
)
defer
func
()
{
redisConn
.
Close
()
}()
onWayStockStr
,
_
:=
redis
.
String
(
redisConn
.
Do
(
"HGET"
,
"sku_onway_stock"
,
goodsId
))
if
onWayStockStr
==
""
{
return
0
}
return
gconv
.
Int
(
onWayStockStr
)
}
// 获取新的在途库存
func
(
ss
*
LyService
)
getLimitStock
(
goodsId
string
)
(
has
bool
,
stock
int
)
{
redisConn
:=
gredis
.
Conn
(
"search_r"
)
defer
func
()
{
redisConn
.
Close
()
}()
limitStockStr
,
_
:=
redis
.
String
(
redisConn
.
Do
(
"HGET"
,
"limit_stock"
,
goodsId
))
if
limitStockStr
==
""
{
return
false
,
0
}
return
true
,
gconv
.
Int
(
limitStockStr
)
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment