This commit is contained in:
邹宗楠
2024-04-02 11:02:25 +08:00
parent 5dfc20c562
commit 53f5cb030a
7 changed files with 62 additions and 22 deletions

View File

@@ -24,7 +24,7 @@ import (
// 该函数主要用于对比京西平台商品和各个平台门店商品的差异
// 对比上下架状态以及商品价格差异,相同的不做修改,不同的以京西系统商品为主
func CompareJxVendorSku(jxStoreId int) error {
func CompareJxVendorSku(jxStoreId int, vendorIds []int) error {
var (
db = dao.GetDB()
errListToStr = new(strings.Builder)
@@ -44,7 +44,7 @@ func CompareJxVendorSku(jxStoreId int) error {
}
// 有效的三方平台
storeMap, err := dao.GetStoresMapList(db, nil, []int{jxStoreId}, []int{model.StoreStatusOpened, model.StoreStatusClosed, model.StoreStatusHaveRest}, model.StoreStatusDisabled, 1, "", "", "")
storeMap, err := dao.GetStoresMapList(db, vendorIds, []int{jxStoreId}, []int{model.StoreStatusOpened, model.StoreStatusClosed, model.StoreStatusHaveRest}, model.StoreStatusDisabled, 1, "", "", "")
if err != nil {
return err
}
@@ -63,6 +63,10 @@ func CompareJxVendorSku(jxStoreId int) error {
}
continue
case model.VendorIDDD:
if errs := TiktokSyncSkuPriceAndStatus(db, sm, skuMap); errs != nil {
errListToStr.WriteString(errs.Error())
}
continue
case model.VendorIDTaoVegetable:
if errs := TaoSyncSkuPriceAndStatus(db, sm, skuMap, skuIdList); errs != nil {
errListToStr.WriteString(errs.Error())

View File

@@ -675,6 +675,7 @@ func CreateActForMtByOrder(ctx *jxcontext.Context, act *model.Act, vendorIDs []i
actStoreSkuMap = make(map[int][]*model.StoreSkuBind)
err2 = ""
vendorID int
actType int = 0
)
if len(vendorIDs) > 1 {
return fmt.Errorf("只允许单平台创建!")
@@ -684,7 +685,10 @@ func CreateActForMtByOrder(ctx *jxcontext.Context, act *model.Act, vendorIDs []i
return fmt.Errorf("此接口只支持美团使用!")
}
if act.Type != model.ActSkuDirectDown {
return fmt.Errorf("此接口只支持创建直降!")
//return fmt.Errorf("此接口只支持创建直降!")
actType = mtwmapi.RetailActTypeSecKill
} else {
actType = mtwmapi.RetailActTypeDirectDown
}
setActDefault(act)
//处理actStoreSku
@@ -706,17 +710,17 @@ func CreateActForMtByOrder(ctx *jxcontext.Context, act *model.Act, vendorIDs []i
}
}
//根据平台价排序
for _, storeSkus := range actStoreSkuMap {
for i := 0; i < len(storeSkus)-1; i++ {
for j := 0; j < len(storeSkus)-i-1; j++ {
if storeSkus[j].JdsPrice < storeSkus[j+1].JdsPrice {
temp := storeSkus[j]
storeSkus[j] = storeSkus[j+1]
storeSkus[j+1] = temp
}
}
}
}
//for _, storeSkus := range actStoreSkuMap {
// for i := 0; i < len(storeSkus)-1; i++ {
// for j := 0; j < len(storeSkus)-i-1; j++ {
// if storeSkus[j].JdsPrice < storeSkus[j+1].JdsPrice {
// temp := storeSkus[j]
// storeSkus[j] = storeSkus[j+1]
// storeSkus[j+1] = temp
// }
// }
// }
//}
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
@@ -795,7 +799,7 @@ func CreateActForMtByOrder(ctx *jxcontext.Context, act *model.Act, vendorIDs []i
})
}
actIdResult := make(map[string]int64, 0)
actResult, faileInfoList, _ := api.MtwmAPI.RetailDiscountBatchSave2(storeDetail.VendorStoreID, mtwmapi.RetailActTypeDirectDown, actData)
actResult, faileInfoList, _ := api.MtwmAPI.RetailDiscountBatchSave2(storeDetail.VendorStoreID, actType, actData)
for _, v := range actResult {
var (
actStoreSkuMapUpdate *model.ActStoreSkuMap
@@ -827,7 +831,7 @@ func CreateActForMtByOrder(ctx *jxcontext.Context, act *model.Act, vendorIDs []i
actData2[i-1].Sequence = i
actData2[i-1].OrderLimit = 1
}
api.MtwmAPI.RetailDiscountBatchSave2(storeDetail.VendorStoreID, mtwmapi.RetailActTypeDirectDown, actData2)
api.MtwmAPI.RetailDiscountBatchSave2(storeDetail.VendorStoreID, actType, actData2)
}
for _, v := range faileInfoList {
err2 += fmt.Sprintf("创建失败门店ID[%v]商品ID[%v],原因:[%v]", storeID, v.AppFoodCode, v.ErrorMsg)

View File

@@ -11,7 +11,7 @@ const (
StoreStatusAll = -9
StoreStatusDisabled = -2 // 禁用
StoreStatusClosed = -1 // 休息
StoreStatusHaveRest = 0 // 零食休息
StoreStatusHaveRest = 0 // 临时休息
StoreStatusOpened = 1 // 营业
StoreIsSyncAll = -1

View File

@@ -842,7 +842,7 @@ func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.Goods
if err = api.DeliveryFinish(param); err != nil {
globals.SugarLogger.Debugf("PickupGoods 拣货失败可能是BizSubOrderId 没填写 : %s", err.Error())
return fmt.Errorf("订单缺失败,请拣货完成前取货.或者联系客户发起部分退款")
return fmt.Errorf("订单缺失败,请拣货完成前取货.或者联系客户发起部分退款:%v", err)
}
c.postFakeMsg(order.VendorOrderID, tao_vegetable.OrderStatusPickedUp, tao_vegetable.OrderStatusPickedUp)
return nil

View File

@@ -1,14 +1,13 @@
package controllers
import (
"git.rosy.net.cn/jx-callback/business/enterprise"
"git.rosy.net.cn/jx-callback/globals/api"
"net/http"
call "git.rosy.net.cn/baseapi/utils/weworkapi_golang-master"
"git.rosy.net.cn/jx-callback/business/enterprise"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api"
"github.com/astaxie/beego/server/web"
"io/ioutil"
"net/http"
"strings"
)
@@ -16,6 +15,7 @@ type EnterpriseController struct {
web.Controller
}
// EnterpriseCallback 在发生授权、通讯录变更、ticket变化等事件时企业微信服务器会向应用的“指令回调URL”推送相应的事件消息。
// 消息结构体将使用创建应用时的EncodingAESKey进行加密特别注意, 在第三方回调事件中使用加解密算法receiveid的内容为suiteid
// ,请参考接收消息解析数据包。

View File

@@ -1,7 +1,9 @@
package controllers
import (
"git.rosy.net.cn/jx-callback/business/enterprise"
"git.rosy.net.cn/jx-callback/business/enterprise_session"
"git.rosy.net.cn/jx-callback/business/jxutils"
"github.com/astaxie/beego/server/web"
)
@@ -39,3 +41,23 @@ func (c *SessionController) GetEnterpriseToken() {
return map[string]string{"minToken": mintoken, "enterpriseToken": token}, "", nil
})
}
// @Title 校验平台商品和京西系统商品的差异
// @Description 校验平台商品和京西系统商品的差异
// @Param token header string true "认证token"
// @Param storeId formData int false "门店ID列表"
// @Param vendorIDs formData string true "厂商ID列表"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /CheckVendorSkuDiffer [post]
func (c *SessionController) CheckVendorSkuDiffer() {
c.callCheckVendorSkuDiffer(func(params *tSessionCheckVendorSkuDifferParams) (retVal interface{}, errCode string, err error) {
var vendorIDs []int
if err = jxutils.Strings2Objs(params.VendorIDs, &vendorIDs); err != nil {
return retVal, "", err
}
err = enterprise.CompareJxVendorSku(params.StoreId, vendorIDs)
return nil, "", err
})
}

View File

@@ -4476,6 +4476,16 @@ func init() {
MethodParams: param.Make(),
Filters: nil,
Params: nil})
// 校验个平台商品差异
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SessionController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SessionController"],
web.ControllerComments{
Method: "CheckVendorSkuDiffer",
Router: `/CheckVendorSkuDiffer`,
AllowHTTPMethods: []string{"post"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
// 授权回调
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TiktokShopController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TiktokShopController"],
web.ControllerComments{