aa
This commit is contained in:
@@ -2,6 +2,7 @@ package act
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
|
||||||
"math"
|
"math"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -647,6 +648,7 @@ func CreateActForMtByOrder(ctx *jxcontext.Context, act *model.Act, vendorID int,
|
|||||||
var (
|
var (
|
||||||
db = dao.GetDB()
|
db = dao.GetDB()
|
||||||
actStoreSkuMap = make(map[int][]*model.StoreSkuBind)
|
actStoreSkuMap = make(map[int][]*model.StoreSkuBind)
|
||||||
|
err2 = ""
|
||||||
)
|
)
|
||||||
if vendorID != model.VendorIDMTWM {
|
if vendorID != model.VendorIDMTWM {
|
||||||
return fmt.Errorf("此接口只支持美团使用!")
|
return fmt.Errorf("此接口只支持美团使用!")
|
||||||
@@ -662,6 +664,7 @@ func CreateActForMtByOrder(ctx *jxcontext.Context, act *model.Act, vendorID int,
|
|||||||
actStoreSkuMap[v.StoreID] = append(actStoreSkuMap[v.StoreID], &model.StoreSkuBind{
|
actStoreSkuMap[v.StoreID] = append(actStoreSkuMap[v.StoreID], &model.StoreSkuBind{
|
||||||
SkuID: v.SkuID,
|
SkuID: v.SkuID,
|
||||||
MtwmPrice: resultList[0].MtwmPrice,
|
MtwmPrice: resultList[0].MtwmPrice,
|
||||||
|
Price: resultList[0].Price,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -677,7 +680,6 @@ func CreateActForMtByOrder(ctx *jxcontext.Context, act *model.Act, vendorID int,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fmt.Println("1111111111111111111111111111", utils.Format4Output(actStoreSkuMap, true))
|
|
||||||
txDB, _ := dao.Begin(db)
|
txDB, _ := dao.Begin(db)
|
||||||
defer func() {
|
defer func() {
|
||||||
if r := recover(); r != nil {
|
if r := recover(); r != nil {
|
||||||
@@ -702,8 +704,76 @@ func CreateActForMtByOrder(ctx *jxcontext.Context, act *model.Act, vendorID int,
|
|||||||
dao.Rollback(db, txDB)
|
dao.Rollback(db, txDB)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
for storeID, storeSkus := range actStoreSkuMap {
|
||||||
|
for _, storeSku := range storeSkus {
|
||||||
|
actStoreSkuModel := &model.ActStoreSku{
|
||||||
|
ActID: act.ID,
|
||||||
|
OriginalPrice: int64(storeSku.Price),
|
||||||
|
StoreID: storeID,
|
||||||
|
SkuID: storeSku.SkuID,
|
||||||
|
Stock: 200,
|
||||||
|
}
|
||||||
|
dao.WrapAddIDCULDEntity(actStoreSkuModel, ctx.GetUserName())
|
||||||
|
err = dao.CreateEntityTx(txDB, actStoreSkuModel)
|
||||||
|
if err != nil {
|
||||||
|
dao.Rollback(db, txDB)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
actStoreSkuMapModel := &model.ActStoreSkuMap{
|
||||||
|
ActID: act.ID,
|
||||||
|
BindID: actStoreSkuModel.ID,
|
||||||
|
StoreID: storeID,
|
||||||
|
SkuID: storeSku.SkuID,
|
||||||
|
VendorID: vendorID,
|
||||||
|
VendorPrice: int64(storeSku.MtwmPrice),
|
||||||
|
ActualActPrice: int64(storeSku.MtwmPrice * act.PricePercentage / 100),
|
||||||
|
}
|
||||||
|
dao.WrapAddIDCULDEntity(actStoreSkuMapModel, ctx.GetUserName())
|
||||||
|
err = dao.CreateEntityTx(txDB, actStoreSkuMapModel)
|
||||||
|
if err != nil {
|
||||||
|
dao.Rollback(db, txDB)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
dao.Commit(db, txDB)
|
dao.Commit(db, txDB)
|
||||||
|
//同步建到美团
|
||||||
|
for storeID, storeSkus := range actStoreSkuMap {
|
||||||
|
if storeDetail, _ := dao.GetStoreDetail(db, storeID, vendorID, vendorOrgCode); storeDetail != nil {
|
||||||
|
var actData []*mtwmapi.RetailDiscountActData
|
||||||
|
for _, v := range storeSkus {
|
||||||
|
actData = append(actData, &mtwmapi.RetailDiscountActData{
|
||||||
|
AppFoodCode: utils.Int2Str(v.SkuID),
|
||||||
|
StartTime: act.BeginAt.Unix(),
|
||||||
|
EndTime: act.EndAt.Unix(),
|
||||||
|
OrderLimit: 1,
|
||||||
|
DayLimit: -1,
|
||||||
|
SettingType: mtwmapi.SettingTypeAsDiscount,
|
||||||
|
DiscountCoefficient: float64(act.PricePercentage) / float64(100),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
actResult, faileInfoList, _ := api.MtwmAPI.RetailDiscountBatchSave2(storeDetail.VendorStoreID, mtwmapi.RetailActTypeDirectDown, actData)
|
||||||
|
for _, v := range actResult {
|
||||||
|
var (
|
||||||
|
actStoreSkuMapUpdate *model.ActStoreSkuMap
|
||||||
|
)
|
||||||
|
sql := `
|
||||||
|
SELECT * FROM act_store_sku_map WHERE act_id = ? AND store_id = ? AND sku_id = ?
|
||||||
|
`
|
||||||
|
sqlParams := []interface{}{act.ID, storeID, utils.Str2Int(v.AppFoodCode)}
|
||||||
|
if err = dao.GetRow(db, &actStoreSkuMapUpdate, sql, sqlParams); err == nil && actStoreSkuMapUpdate != nil {
|
||||||
|
actStoreSkuMapUpdate.VendorActID = utils.Int64ToStr(v.ActID)
|
||||||
|
dao.UpdateEntity(db, actStoreSkuMapUpdate, "VendorActID")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, v := range faileInfoList {
|
||||||
|
err2 += fmt.Sprintf("创建失败!门店ID:[%v],商品ID:[%v],原因:[%v]", storeID, v.AppFoodCode, v.ErrorMsg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if err2 != "" {
|
||||||
|
return fmt.Errorf(err2)
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user