146 lines
3.3 KiB
Go
146 lines
3.3 KiB
Go
package cmd
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
"fmt"
|
|
"hk/model/config_api"
|
|
"hk/model/goods_info"
|
|
"hk/model/goods_status"
|
|
_73 "hk/pkg/util/172"
|
|
"hk/pkg/util/strUtil"
|
|
"strconv"
|
|
"time"
|
|
)
|
|
|
|
func configApiList() {
|
|
configApiInfo, err := svcCtx.ConfigApiModel.FindList(context.Background())
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
if configApiInfo == nil {
|
|
return
|
|
}
|
|
for _, item := range configApiInfo {
|
|
switch item.Type {
|
|
case "0":
|
|
getGoodsStatus(item)
|
|
updateGoodsStatus(item)
|
|
}
|
|
}
|
|
}
|
|
|
|
func configApiListv1() {
|
|
configApiInfo, err := svcCtx.ConfigApiModel.FindList(context.Background())
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
if configApiInfo == nil {
|
|
return
|
|
}
|
|
for _, item := range configApiInfo {
|
|
switch item.Type {
|
|
case "0":
|
|
addGoodsInfo(item)
|
|
}
|
|
}
|
|
}
|
|
|
|
func addGoodsInfo(configApi config_api.ConfigApi) {
|
|
ids, err := svcCtx.GoodsStatusModel.FindNotIdOne(context.Background(), configApi.Id)
|
|
if err != nil || ids <= 0 {
|
|
return
|
|
}
|
|
|
|
req := _73.GoodsReq{
|
|
ProductID: strconv.FormatInt(ids, 10),
|
|
BaseParams: _73.BaseParams{
|
|
UserID: strUtil.ValidString(configApi.Key),
|
|
UserSign: strUtil.ValidString(configApi.Secret),
|
|
},
|
|
}
|
|
|
|
result, err := _73.GetProductV2(req)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
if result.Code != 0 || len(result.Data) <= 0 {
|
|
return
|
|
}
|
|
data := result.Data[0]
|
|
status := "0"
|
|
if data.Flag {
|
|
status = "1"
|
|
}
|
|
goodsStatus := goods_info.GoodsInfo{
|
|
Name: data.ProductName,
|
|
Type: "0",
|
|
MainPic: data.MainPic,
|
|
LittlePicture: data.LittlePicture,
|
|
NetAddr: data.NetAddr,
|
|
Area: data.Area,
|
|
DisableArea: data.DisableArea,
|
|
DisableAge: "",
|
|
DisableContract: "",
|
|
Notes: sql.NullString{},
|
|
ApiId: strUtil.Int64ToNullInt64(configApi.Id),
|
|
ApiProductId: strUtil.Int64ToNullInt64(data.ProductID),
|
|
NumberSel: strconv.Itoa(data.NumberSel),
|
|
Status: status,
|
|
CreateTime: time.Now(),
|
|
UpdateTime: time.Now(),
|
|
Remarks: sql.NullString{},
|
|
}
|
|
svcCtx.GoodsInfoModel.Insert(context.Background(), &goodsStatus)
|
|
}
|
|
|
|
func updateGoodsStatus(item config_api.ConfigApi) {
|
|
ids, err := svcCtx.GoodsStatusModel.FindUpList(context.Background(), item.Id)
|
|
if err != nil {
|
|
return
|
|
}
|
|
if len(ids) <= 0 {
|
|
return
|
|
}
|
|
svcCtx.GoodsStatusModel.UpdateDownByIds(context.Background(), ids)
|
|
}
|
|
|
|
func getGoodsStatus(configApi config_api.ConfigApi) {
|
|
req := _73.GoodsReq{
|
|
ProductID: "",
|
|
BaseParams: _73.BaseParams{
|
|
UserID: strUtil.ValidString(configApi.Key),
|
|
UserSign: strUtil.ValidString(configApi.Secret),
|
|
},
|
|
}
|
|
|
|
result, err := _73.GetProduct(req)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
if result.Code == 0 {
|
|
var goodsStatusList []goods_status.GoodsStatus
|
|
if len(result.Data) > 0 {
|
|
err = svcCtx.GoodsStatusModel.DeleteByApiId(context.Background(), configApi.Id)
|
|
if err != nil {
|
|
return
|
|
}
|
|
}
|
|
for _, item := range result.Data {
|
|
var status int64 = 0
|
|
if item.Flag == "上架中" {
|
|
status = 1
|
|
}
|
|
goodsStatus := goods_status.GoodsStatus{
|
|
ApiId: strUtil.Int64ToNullInt64(configApi.Id),
|
|
ApiProductId: strUtil.Int64ToNullInt64(item.ProductID),
|
|
Status: strUtil.Int64ToNullInt64(status),
|
|
}
|
|
svcCtx.GoodsStatusModel.Insert(context.Background(), &goodsStatus)
|
|
goodsStatusList = append(goodsStatusList, goodsStatus)
|
|
}
|
|
}
|
|
}
|