This commit is contained in:
suyl
2021-06-09 16:10:26 +08:00
parent db38799bf8
commit 1b2b61b5d8

View File

@@ -2,6 +2,7 @@ package act
import (
"fmt"
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
"math"
"time"
@@ -647,6 +648,7 @@ func CreateActForMtByOrder(ctx *jxcontext.Context, act *model.Act, vendorID int,
var (
db = dao.GetDB()
actStoreSkuMap = make(map[int][]*model.StoreSkuBind)
err2 = ""
)
if vendorID != model.VendorIDMTWM {
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{
SkuID: v.SkuID,
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)
defer func() {
if r := recover(); r != nil {
@@ -702,8 +704,76 @@ func CreateActForMtByOrder(ctx *jxcontext.Context, act *model.Act, vendorID int,
dao.Rollback(db, txDB)
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)
//同步建到美团
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
}