1
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package dao
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"sort"
|
||||
"time"
|
||||
|
||||
@@ -1563,13 +1564,13 @@ func GetStoreBrandInfos(storeID int) (date *BrandInfos, err error) {
|
||||
return detail, err
|
||||
}
|
||||
|
||||
//查询门店绑定的运费模板
|
||||
// 查询FreightTemplate
|
||||
func QueryStoreBindInfo(storeID int) (*model.FreightTemplate, error) {
|
||||
var (
|
||||
sqlParams = []interface{}{}
|
||||
bindInfo *model.FreightTemplate
|
||||
)
|
||||
sql := "SELECT a.store_id,a.vendor_store_id,a.template_id,a.warehouse_id,a.fence_id FROM freight_template a "
|
||||
sql := "SELECT a.store_id,a.vendor_store_id,a.template_id,a.warehouse_id,a.fence_id,a.trade_limit_id FROM freight_template a "
|
||||
if storeID != 0 {
|
||||
sql += "WHERE store_id = ? "
|
||||
sqlParams = append(sqlParams, storeID)
|
||||
@@ -1579,3 +1580,46 @@ func QueryStoreBindInfo(storeID int) (*model.FreightTemplate, error) {
|
||||
}
|
||||
return bindInfo, nil
|
||||
}
|
||||
|
||||
//向FreightTemplate 插入数据
|
||||
func InsertIntoFreightTemplate(storeID int, vendorStoreID string, templateID, warehouseID, fenceID, tradeLimitID int64) error {
|
||||
var (
|
||||
sqlStr = []string{}
|
||||
tStr = ""
|
||||
sqlParams = []interface{}{}
|
||||
)
|
||||
if storeID == 0 && utils.Str2Int(vendorStoreID) == 0 {
|
||||
return errors.New("storeID,vendorStoreID 必传")
|
||||
}
|
||||
if _, err := ExecuteSQL(GetDB(), "SELECT COUNT(*) FROM freight_template a WHERE a.store_id = ? AND a.vendor_store_id = ?", storeID, vendorStoreID); err != nil {
|
||||
if _, err := ExecuteSQL(GetDB(), "INSERT INTO freight_template (store_id,vendor_store_id,created_at,updated_at) VALUES (?,?,?,?)", storeID, vendorStoreID, time.Now(), time.Now()); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if templateID != 0 {
|
||||
sqlStr = append(sqlStr, " UPDATE freight_template a SET a.template_id = ? ")
|
||||
sqlParams = append(sqlParams, templateID)
|
||||
}
|
||||
if warehouseID != 0 {
|
||||
sqlStr = append(sqlStr, " UPDATE freight_template a SET a.warehouse_id = ? ")
|
||||
sqlParams = append(sqlParams, warehouseID)
|
||||
}
|
||||
if fenceID != 0 {
|
||||
sqlStr = append(sqlStr, " UPDATE freight_template a SET a.fence_id = ? ")
|
||||
sqlParams = append(sqlParams, fenceID)
|
||||
}
|
||||
if tradeLimitID != 0 {
|
||||
sqlStr = append(sqlStr, " UPDATE freight_template a SET a.fence_id = ? ")
|
||||
sqlParams = append(sqlParams, tradeLimitID)
|
||||
}
|
||||
tStr = "WHERE a.store_id = ? AND a.vendor_store_id = ?"
|
||||
sqlParams = append(sqlParams, storeID, vendorStoreID)
|
||||
for _, v := range sqlStr {
|
||||
v += tStr
|
||||
if _, err := ExecuteSQL(GetDB(), v, sqlParams); err != nil {
|
||||
return err
|
||||
}
|
||||
v = ""
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -1024,6 +1024,7 @@ type FreightTemplate struct {
|
||||
TemplateID int64 `orm:"column(template_id)" json:"templateID"` //运费模板ID 1对1
|
||||
WarehouseID int64 `orm:"column(warehouse_id)" json:"warehouseID"` //创建门店时绑定的仓库id 1对1
|
||||
FenceID string `orm:"column(fence_id)" json:"fenceID"` //电子围栏id 1对1
|
||||
TradeLimitID int64 `orm:"column(trade_limit_id)" json:"tradeLimitID"` //限售模板id
|
||||
}
|
||||
|
||||
func (*FreightTemplate) TableUnique() [][]string {
|
||||
|
||||
@@ -87,7 +87,7 @@ func (P *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri
|
||||
FreightTemplate = &model.FreightTemplate{}
|
||||
)
|
||||
errList := errlist.New()
|
||||
//a:=getAPI(storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID)
|
||||
a := getAPI(storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID)
|
||||
timeStr := ""
|
||||
if storeDetail.OpenTime1 == 0 || storeDetail.CloseTime1 == 0 {
|
||||
return "", fmt.Errorf("营业时间必填")
|
||||
@@ -118,7 +118,7 @@ func (P *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri
|
||||
ShopBatchCreateStoreParam = &shop_batchCreateStore_request.ShopBatchCreateStoreParam{
|
||||
StoreList: lists,
|
||||
}
|
||||
if resp, err := getAPI(storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID).BatchCreateStore(ShopBatchCreateStoreParam); err != nil {
|
||||
if resp, err := a.BatchCreateStore(ShopBatchCreateStoreParam); err != nil {
|
||||
return "", err
|
||||
} else {
|
||||
if len(resp.ResultList) == 0 {
|
||||
@@ -129,74 +129,73 @@ func (P *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri
|
||||
storeIDs = utils.Int64ToStr(v.Store.StoreId) + ","
|
||||
}
|
||||
storeIDs = utils.Int64ToStr(v.Store.StoreId)
|
||||
|
||||
}
|
||||
globals.SugarLogger.Debug("Success createStore and return storeID=====", resp.ResultList[0].Store.StoreId, utils.Str2Int(storeIDs))
|
||||
if utils.Str2Int(storeIDs) == 0 {
|
||||
return "", errors.New(fmt.Sprintf("创建店铺失败原因storeIDs = 0:%v,%v", err, resp.ResultList[0].Msg))
|
||||
}
|
||||
|
||||
//创建并绑定运费模板
|
||||
globals.SugarLogger.Debug("storeDetail.Store.ID==============", storeDetail.Store.ID)
|
||||
freightTemplateID, err := CreateFreightTemplate(storeDetail.Store.ID)
|
||||
if err != nil {
|
||||
errList.AddErr(fmt.Errorf("创建运费模板失败原因:%v", err))
|
||||
if freightTemplateID, err := CreateFreightTemplate(storeDetail.Store.ID); err != nil {
|
||||
errList.AddErr(fmt.Errorf("创建运费模板失败:%v", err))
|
||||
} else {
|
||||
if freightTemplateID == 0 {
|
||||
globals.SugarLogger.Debug("freightTemplateID=========", freightTemplateID)
|
||||
errList.AddErr(fmt.Errorf("创建运费模板失败:%d %d %v", int64(storeDetail.Store.ID), freightTemplateID, err))
|
||||
errList.AddErr(fmt.Errorf("创建运费模板失败:%v", err))
|
||||
}
|
||||
err = P.ShopBindStoreFreight(int64(storeDetail.Store.ID), freightTemplateID)
|
||||
if err != nil {
|
||||
errList.AddErr(fmt.Errorf("门店:%d 绑定运费模板:%d 失败原因:%v", int64(storeDetail.Store.ID), freightTemplateID, err))
|
||||
if err = ShopBindStoreFreight(storeDetail.VendorOrgCode, int64(storeDetail.Store.ID), freightTemplateID); err != nil {
|
||||
errList.AddErr(fmt.Errorf("本地门店:%d 绑定运费模板:%d 失败原因:%v", int64(storeDetail.Store.ID), freightTemplateID, err))
|
||||
} else {
|
||||
FreightTemplate.TemplateID = freightTemplateID
|
||||
err := dao.CreateEntity(db, FreightTemplate)
|
||||
if err != nil {
|
||||
if err = dao.CreateEntity(db, FreightTemplate); err != nil {
|
||||
errList.AddErr(fmt.Errorf("运费模板ID存入数据库失败原因:%v", err))
|
||||
}
|
||||
}
|
||||
}
|
||||
//创建并绑定仓库
|
||||
warehouse, err := P.CreateWarehouse(utils.Int2Str(storeDetail.Store.ID), storeDetail.VendorOrgCode)
|
||||
if err != nil {
|
||||
if warehouse, err := CreateWarehouse(storeDetail.VendorOrgCode, utils.Int2Str(storeDetail.Store.ID)); err != nil {
|
||||
errList.AddErr(fmt.Errorf("创建仓库失败原因:%v", err))
|
||||
} else {
|
||||
tempStoreID = append(tempStoreID, int64(storeDetail.Store.ID))
|
||||
err = P.BindStoreWarehouse(tempStoreID, utils.Int2Str(storeDetail.Store.ID), utils.Int64ToStr(warehouse))
|
||||
if err != nil {
|
||||
if err = BindStoreWarehouse(storeDetail.VendorOrgCode, utils.Int64ToStr(warehouse), tempStoreID); err != nil {
|
||||
errList.AddErr(fmt.Errorf("门店:%d 绑定仓库:%d 失败原因:%v", int64(storeDetail.Store.ID), warehouse, err))
|
||||
} else {
|
||||
FreightTemplate.WarehouseID = warehouse
|
||||
err := dao.CreateEntity(db, FreightTemplate)
|
||||
//_, err := dao.UpdateEntity(db, FreightTemplate, "WarehouseID")
|
||||
if err != nil {
|
||||
if err = dao.CreateEntity(db, FreightTemplate); err != nil {
|
||||
errList.AddErr(fmt.Errorf("仓库ID存入数据库失败原因:%v", err))
|
||||
}
|
||||
}
|
||||
}
|
||||
//创建并绑定电子围栏
|
||||
if fenceID, err := CreateFenceByStore(int(resp.ResultList[0].Store.StoreId)); err != nil {
|
||||
errList.AddErr(fmt.Errorf("创建电子围栏失败原因:%v", err))
|
||||
if fenceID, err := CreateFenceByStore(storeDetail.VendorOrgCode, int(resp.ResultList[0].Store.StoreId)); err != nil {
|
||||
errList.AddErr(fmt.Errorf("创建电子围栏失败:%v", err))
|
||||
} else {
|
||||
fences := []string{utils.Int2Str(storeDetail.Store.ID)}
|
||||
if err := BindFenceByStore(resp.ResultList[0].Store.StoreId, fences); err != nil {
|
||||
errList.AddErr(fmt.Errorf("门店:%d 绑定电子围栏:%d 失败原因:%v", int64(storeDetail.Store.ID), warehouse, err))
|
||||
if err := BindFenceByStore(storeDetail.VendorOrgCode, resp.ResultList[0].Store.StoreId, fences); err != nil {
|
||||
errList.AddErr(fmt.Errorf("门店:%d 绑定电子围栏:%d 失败:%v", resp.ResultList[0].Store.StoreId, fenceID, err))
|
||||
} else {
|
||||
FreightTemplate.FenceID = fenceID
|
||||
err := dao.CreateEntity(db, FreightTemplate)
|
||||
if err != nil {
|
||||
errList.AddErr(fmt.Errorf("电子围栏ID存入数据库失败原因:%v", err))
|
||||
if err := dao.CreateEntity(db, FreightTemplate); err != nil {
|
||||
errList.AddErr(fmt.Errorf("电子围栏ID存入数据库失败:%v", err))
|
||||
}
|
||||
}
|
||||
}
|
||||
//创建限售模板
|
||||
if tradeLimitID, err := CreateTradeLimitTemplate(storeDetail.VendorOrgCode, int64(storeDetail.Store.ID)); err != nil {
|
||||
errList.AddErr(fmt.Errorf("创建限售模板失败:%v", err))
|
||||
} else {
|
||||
if err := BindStoreSaleLimit(storeDetail.VendorOrgCode, resp.ResultList[0].Store.StoreId, tradeLimitID); err != nil {
|
||||
errList.AddErr(fmt.Errorf("绑定限售模板失败:%v", err))
|
||||
} else {
|
||||
FreightTemplate.TradeLimitID = tradeLimitID
|
||||
if err := dao.CreateEntity(db, FreightTemplate); err != nil {
|
||||
errList.AddErr(fmt.Errorf("限售模板ID存入数据库失败:%v", err))
|
||||
}
|
||||
}
|
||||
}
|
||||
//storeIDs = "65312663"
|
||||
globals.SugarLogger.Debug("CreateStore2 return storeIDs, storeDetail.Store.ID==========", storeIDs, storeDetail.Store.ID)
|
||||
FreightTemplate.StoreID = storeDetail.Store.ID
|
||||
FreightTemplate.VendorStoreID = storeIDs
|
||||
FreightTemplate.DeletedAt = utils.DefaultTimeValue
|
||||
err = dao.CreateEntity(db, FreightTemplate)
|
||||
if err != nil {
|
||||
if err = dao.CreateEntity(db, FreightTemplate); err != nil {
|
||||
errList.AddErr(fmt.Errorf("db update storeID,vendorStoreID defeat on :%v", err))
|
||||
}
|
||||
globals.SugarLogger.Debugf("CreateStore last step success..................but errList====%s", utils.Format4Output(errList, true))
|
||||
@@ -457,7 +456,7 @@ func (P *PurchaseHandler) CreateFreightTemplateDirectly(templateInfo freightTemp
|
||||
|
||||
// /shop/bindStoreFreight 门店绑定运费模版
|
||||
//门店绑定运费模版,运费模版必须属于门店关联的抖店,且门店与运费模版是一对一关系
|
||||
func (P *PurchaseHandler) ShopBindStoreFreight(storeID, freightID int64) error {
|
||||
func ShopBindStoreFreight(vendorOrgCode string, storeID, freightID int64) error {
|
||||
param := &shop_bindStoreFreight_request.ShopBindStoreFreightParam{
|
||||
StoreId: storeID,
|
||||
FreightId: freightID,
|
||||
@@ -531,12 +530,26 @@ func (P *PurchaseHandler) GetAddressList(param *address_list_request.AddressList
|
||||
}
|
||||
|
||||
// /trade/createTradeLimitTemplate 创建限售模板
|
||||
func (P *PurchaseHandler) CreateTradeLimitTemplate(template trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam) (tradeLimitID int64, err error) {
|
||||
info := &trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam{
|
||||
StoreId: template.StoreId,
|
||||
TradeLimitRuleRequestList: template.TradeLimitRuleRequestList,
|
||||
func CreateTradeLimitTemplate(appOrgCode string, storeID int64) (tradeLimitID int64, err error) {
|
||||
var (
|
||||
items []trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem
|
||||
)
|
||||
item := trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem{
|
||||
TradeLimitModel: tiktok_api.TradeLimitModelQuantity,
|
||||
TradeLimitResource: tiktok_api.TradeLimitResourceDouDian,
|
||||
TradeLimitPattern: &trade_createTradeLimitTemplate_request.TradeLimitPattern{
|
||||
Minimum: 1,
|
||||
Maximum: 1000,
|
||||
CumulativeMax: 10000,
|
||||
},
|
||||
TradeLimitSubjectList: []int32{tiktok_api.TradeLimitSubjectBuyMobile},
|
||||
}
|
||||
resp, err := getAPI("", 0, utils.Int64ToStr(info.StoreId)).CreateTradeLimitTemplate(info)
|
||||
items = append(items, item)
|
||||
param := &trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam{
|
||||
StoreId: storeID,
|
||||
TradeLimitRuleRequestList: items,
|
||||
}
|
||||
resp, err := getAPI("", 0, utils.Int64ToStr(storeID)).CreateTradeLimitTemplate(param)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
@@ -544,12 +557,12 @@ func (P *PurchaseHandler) CreateTradeLimitTemplate(template trade_createTradeLim
|
||||
}
|
||||
|
||||
// /shop/bindStoreSaleLimit 门店绑定限售模板
|
||||
func (P *PurchaseHandler) BindStoreSaleLimit(storeID, saleLimitTemplateID int64) error {
|
||||
func BindStoreSaleLimit(appOrgCode string, storeID, saleLimitTemplateID int64) error {
|
||||
info := &shop_bindStoreSaleLimit_request.ShopBindStoreSaleLimitParam{
|
||||
StoreId: storeID,
|
||||
SaleLimitId: saleLimitTemplateID,
|
||||
}
|
||||
if err := getAPI("", 0, utils.Int64ToStr(info.StoreId)).BindStoreSaleLimit(info); err != nil {
|
||||
if err := getAPI(appOrgCode, 0, utils.Int64ToStr(info.StoreId)).BindStoreSaleLimit(info); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
)
|
||||
|
||||
// /warehouse/create 创建单个区域仓
|
||||
func (P *PurchaseHandler) CreateWarehouse(outWarehouseID, appOrgCode string) (warehouseID int64, err error) {
|
||||
func CreateWarehouse(appOrgCode, outWarehouseID string) (warehouseID int64, err error) {
|
||||
tempName := "门店编码:" + outWarehouseID + "的区域仓"
|
||||
req := &warehouse_create_request.WarehouseCreateParam{
|
||||
OutWarehouseId: outWarehouseID,
|
||||
@@ -57,12 +57,12 @@ func (P *PurchaseHandler) BatchCreateWarehouse(param warehouse_createBatch_reque
|
||||
}
|
||||
|
||||
// /warehouse/bindStore 仓库绑定门店
|
||||
func (P *PurchaseHandler) BindStoreWarehouse(storeIDs []int64, outWarehouseID, appOrgCode string) error {
|
||||
func BindStoreWarehouse(VendorOrgCode, outWarehouseID string, storeIDs []int64) error {
|
||||
param := &warehouse_bindStore_request.WarehouseBindStoreParam{
|
||||
StoreIds: storeIDs,
|
||||
OutWarehouseId: outWarehouseID,
|
||||
}
|
||||
if _, err := getAPI(appOrgCode, 0, "").StoreBindWarehouse(param); err != nil {
|
||||
if _, err := getAPI(VendorOrgCode, 0, "").StoreBindWarehouse(param); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
@@ -77,7 +77,7 @@ type LocalStore struct {
|
||||
}
|
||||
|
||||
// /warehouse/createFence 以门店方式创建电子围栏
|
||||
func CreateFenceByStore(storeID int) (fenceID string, err error) {
|
||||
func CreateFenceByStore(appOrgCode string, storeID int) (fenceID string, err error) {
|
||||
var (
|
||||
db *dao.DaoDB
|
||||
localStore *LocalStore
|
||||
@@ -123,7 +123,7 @@ func CreateFenceByStore(storeID int) (fenceID string, err error) {
|
||||
}
|
||||
param.FenceInfo.Polygon.Vertices = verticeses
|
||||
}
|
||||
resp, err := getAPI("", 0, "").CreateFence(param)
|
||||
resp, err := getAPI(appOrgCode, 0, "").CreateFence(param)
|
||||
if err != nil {
|
||||
return "", err
|
||||
} else {
|
||||
@@ -204,12 +204,12 @@ func UpdateFenceByStore(storeID int) error {
|
||||
}
|
||||
|
||||
//门店直接绑定围栏
|
||||
func BindFenceByStore(storeID int64, addOutFenceIDs []string) error {
|
||||
func BindFenceByStore(appOrgCode string, storeID int64, addOutFenceIDs []string) error {
|
||||
param := &warehouse_bindFencesByStore_request.WarehouseBindFencesByStoreParam{
|
||||
StoreId: storeID,
|
||||
AddOutFenceIds: addOutFenceIDs,
|
||||
}
|
||||
if _, err := getAPI("", 0, "").BindFenceByStore(param); err != nil {
|
||||
if _, err := getAPI(appOrgCode, 0, "").BindFenceByStore(param); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user