diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index a942baea0..7900b9e2c 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -342,16 +342,18 @@ func (c *OrderManager) SaveOrder(order *model.GoodsOrder, isAdjust bool, db *dao baseapi.SugarLogger.Infof("saveOrder duplicated orderid:%s msg received", order.VendorOrderID) } } - //修改商品库存 - if err == nil { - err = ModifyOrderSkusStock(db, order, false) - } } else { globals.SugarLogger.Warnf("saveOrder create order:%v, error:%v", order, err) } if err == nil { dao.Commit(db) } + //修改商品库存 + if err == nil { + utils.CallFuncAsync(func() { + err = ModifyOrderSkusStock(db, order, false) + }) + } return isDuplicated, err } diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 3a7708731..e099ee13c 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -332,6 +332,29 @@ func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateS func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { switch step { case 0: + //权限 + if permission.IsRoled(ctx) { + if storeIDsMap, err := permission.GetUserStoresResultMap(ctx.GetUserID()); err == nil { + var storeIDs2 []int + if mapParams["storeIDs"] != nil { + var storeIDs []int + if err = utils.UnmarshalUseNumber([]byte(mapParams["storeIDs"].(string)), &storeIDs); err == nil { + for _, v := range storeIDs { + if storeIDsMap[v] != 0 { + storeIDs2 = append(storeIDs2, v) + } + } + } + } else { + for k, _ := range storeIDsMap { + storeIDs2 = append(storeIDs2, k) + } + } + if data, err := json.Marshal(storeIDs2); err == nil { + mapParams["storeIDs"] = string(data) + } + } + } orders, _, err = dao.GetOrders(dao.GetDB(), nil, true, true, fromDateStr, toDateStr, true, nil, false, "", mapParams, 0, model.UnlimitedPageSize) globals.SugarLogger.Debugf("orders:%d, er:%v", len(orders), err) case 1: diff --git a/business/jxcallback/scheduler/basesch/basesch_ext.go b/business/jxcallback/scheduler/basesch/basesch_ext.go index 003df66b9..efa2e3287 100644 --- a/business/jxcallback/scheduler/basesch/basesch_ext.go +++ b/business/jxcallback/scheduler/basesch/basesch_ext.go @@ -143,7 +143,7 @@ func (c *BaseScheduler) CancelOrder(ctx *jxcontext.Context, order *model.GoodsOr if globals.IsAddEvent { err = cms.AddEventDetail(dao.GetDB(), ctx, model.OperateUpdate, order.StoreID, model.ThingTypeOrder, order.StoreID, order.VendorOrderID, order.StoreName) } - err = partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).CancelOrder(ctx, order, reason) + err = partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).CancelOrder(ctx, order, reason+","+ctx.GetUserName()) } return err } diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index bc563b2f8..aac6f7401 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -853,7 +853,10 @@ func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInf } } } - + //TODO 2021-02-19 增加品牌配送开关 + if storeDetail.BrandIsOpen == model.YES { + err = fmt.Errorf("此品牌已关闭配送! [%v]", storeDetail.BrandName) + } if err == nil { if _, err = s.CreateWaybillOnProviders4SavedOrder(jxcontext.AdminCtx, savedOrderInfo, nil, excludeVendorIDs, false, maxDeliveryFee); err == nil { savedOrderInfo.retryCount++ diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 7baebba2e..db69910f0 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -2696,6 +2696,7 @@ func UpdateSkuExinfoMap(ctx *jxcontext.Context, nameIDs []int, imgWaterMark stri VendorID: vendorID, BeginAt: fromTimeP, EndAt: toTimeP, + BrandID: brandID, } dao.WrapAddIDCULDEntity(skuEx, ctx.GetUserName()) if imgWaterMark != "" { @@ -2729,7 +2730,15 @@ func UpdateSkuExinfoMap(ctx *jxcontext.Context, nameIDs []int, imgWaterMark stri OnUpdateThing(ctx, db, nil, int64(v), model.ThingTypeSku) } } else { - SetStoreSkuSyncStatus2(db, nil, []int{vendorID}, skuIDs, model.SyncFlagModifiedMask) + var storeIDs []int + if brandID != 0 { + if stores, _ := dao.GetStoreList(db, nil, nil, nil, []int{brandID}, nil, ""); len(stores) > 0 { + for _, v := range stores { + storeIDs = append(storeIDs, v.ID) + } + } + } + SetStoreSkuSyncStatus2(db, storeIDs, []int{vendorID}, skuIDs, model.SyncFlagModifiedMask) } } } diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index ab2febf18..47c7f6898 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -1101,6 +1101,13 @@ func CreateStore(ctx *jxcontext.Context, storeExt *StoreExt, userName string) (i } storeExt.LinkStoreID = realLinkStoreID + if storeExt.MarketManName == "" { + storeExt.MarketManName = ctx.GetUserName() + } + if storeExt.MarketManPhone == "" { + storeExt.MarketManPhone, _ = ctx.GetMobileAndUserID() + } + existingID := store.ID store.Lng = jxutils.StandardCoordinate2Int(storeExt.FloatLng) store.Lat = jxutils.StandardCoordinate2Int(storeExt.FloatLat) @@ -3331,6 +3338,19 @@ func CopyStoreCategories(ctx *jxcontext.Context, fromStoreID int, toStoreIDs, ca var ( db = dao.GetDB() ) + //权限 + if permission.IsRoled(ctx) { + if storeIDsMap, err := permission.GetUserStoresResultMap(ctx.GetUserID()); err == nil { + if storeIDsMap[fromStoreID] == 0 { + return "", fmt.Errorf("抱歉,您无权更改他人店铺分类 [%v]", fromStoreID) + } + for _, v := range toStoreIDs { + if storeIDsMap[v] == 0 { + return "", fmt.Errorf("抱歉,您无权更改他人店铺分类 [%v]", v) + } + } + } + } storeCatList, err := dao.GetStoreCategoryMap(db, -1, 0, fromStoreID, 0) if err != nil { return "", err @@ -3733,6 +3753,8 @@ func StoreAudit(ctx *jxcontext.Context, storeAudits []*model.StoreAudit, status storeExt.FloatLng = jxutils.IntCoordinate2Standard(utils.Float64TwoInt(storeExt.FloatLng)) storeExt.FloatLat = jxutils.IntCoordinate2Standard(utils.Float64TwoInt(storeExt.FloatLat)) storeExt.Status = model.StoreStatusDisabled + storeExt.MarketManName = ctx.GetUserName() + storeExt.MarketManPhone, _ = ctx.GetMobileAndUserID() storeID, err := CreateStore(ctx, storeExt, ctx.GetUserName()) if err != nil { return retVal, fmt.Errorf(err.Error()) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index c05db6dd1..0086a985d 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -487,23 +487,29 @@ func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, isFocus bool } func GetStoresSkus(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus, isHighPrice bool, priceType int, keyword string, isBySku, isAct bool, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *dao.StoreSkuNamesInfo, err error) { - return GetStoresSkusNew(ctx, storeIDs, skuIDs, isFocus, isHighPrice, priceType, keyword, isBySku, isAct, params, offset, pageSize) -} - -func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus, isHighPrice bool, priceType int, keyword string, isBySku, isAct bool, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *dao.StoreSkuNamesInfo, err error) { //权限 if permission.IsRoled(ctx) { if storeIDsMap, err := permission.GetUserStoresResultMap(ctx.GetUserID()); err == nil { var storeIDs2 []int - for _, v := range storeIDs { - if storeIDsMap[v] != 0 { - storeIDs2 = append(storeIDs2, v) + if len(storeIDs) > 0 { + for _, v := range storeIDs { + if storeIDsMap[v] != 0 { + storeIDs2 = append(storeIDs2, v) + } + } + } else { + for k, _ := range storeIDsMap { + storeIDs2 = append(storeIDs2, k) } } storeIDs = nil storeIDs = storeIDs2 } } + return GetStoresSkusNew(ctx, storeIDs, skuIDs, isFocus, isHighPrice, priceType, keyword, isBySku, isAct, params, offset, pageSize) +} + +func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus, isHighPrice bool, priceType int, keyword string, isBySku, isAct bool, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *dao.StoreSkuNamesInfo, err error) { if !isFocus && !isBySku && (len(storeIDs) > 1 || len(storeIDs) == 0) { return nil, fmt.Errorf("未关注按SkuName只能查询单店") } @@ -1631,6 +1637,19 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID int, toStoreIDs []int, co if copyMode != CopyStoreSkuModeFresh && copyMode != CopyStoreSkuModeUpdate && copyMode != CopyStoreSkuModeUpdatePrice { return 0, fmt.Errorf("不支持的拷贝模式:%s", copyMode) } + //权限 + if permission.IsRoled(ctx) { + if storeIDsMap, err := permission.GetUserStoresResultMap(ctx.GetUserID()); err == nil { + if storeIDsMap[fromStoreID] == 0 { + return 0, fmt.Errorf("抱歉,您无权更改他人店铺商品 [%v]", fromStoreID) + } + for _, v := range toStoreIDs { + if storeIDsMap[v] == 0 { + return 0, fmt.Errorf("抱歉,您无权更改他人店铺商品 [%v]", v) + } + } + } + } db := dao.GetDB() fromStore, err := checkStoreExisting(db, fromStoreID) if err != nil { @@ -3715,24 +3734,32 @@ func UpdateStoreSkusSpecTagBin(ctx *jxcontext.Context, reader io.Reader, vendorI results[i] = results[len(results)-i-1] results[len(results)-i-1] = tmp } - for _, v := range results { - store, err := dao.GetStoreDetail(db, v.StoreID, model.VendorIDMTWM, "") - if err != nil || store == nil { - continue - } - mtapi := apimanager.CurAPIManager.GetAPI(model.VendorIDMTWM, store.VendorOrgCode).(*mtwmapi.API) - food, err := mtapi.RetailGet(store.VendorStoreID, utils.Int2Str(v.SkuID)) - if err != nil || food == nil { - continue - } - var foodData = make(map[string]interface{}) - if v.IsSpec != 0 && v.IsSpec == -1 { - v.IsSpec = 0 - } - foodData["is_specialty"] = v.IsSpec - foodData["price"] = food.Price - if globals.EnableMtwmStoreWrite { - err = mtapi.RetailInitData(ctx.GetTrackInfo(), store.VendorStoreID, utils.Int2Str(v.SkuID), foodData) + //权限 + if permission.IsRoled(ctx) { + if storeIDsMap, err := permission.GetUserStoresResultMap(ctx.GetUserID()); err == nil { + for _, v := range results { + if storeIDsMap[v.StoreID] == 0 { + continue + } + store, err := dao.GetStoreDetail(db, v.StoreID, model.VendorIDMTWM, "") + if err != nil || store == nil { + continue + } + mtapi := apimanager.CurAPIManager.GetAPI(model.VendorIDMTWM, store.VendorOrgCode).(*mtwmapi.API) + food, err := mtapi.RetailGet(store.VendorStoreID, utils.Int2Str(v.SkuID)) + if err != nil || food == nil { + continue + } + var foodData = make(map[string]interface{}) + if v.IsSpec != 0 && v.IsSpec == -1 { + v.IsSpec = 0 + } + foodData["is_specialty"] = v.IsSpec + foodData["price"] = food.Price + if globals.EnableMtwmStoreWrite { + err = mtapi.RetailInitData(ctx.GetTrackInfo(), store.VendorStoreID, utils.Int2Str(v.SkuID), foodData) + } + } } } } diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 6d32d7f0c..3277a6dde 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -10,6 +10,7 @@ import ( "git.rosy.net.cn/baseapi/platformapi/mtpsapi" + "git.rosy.net.cn/jx-callback/business/jxstore/permission" "git.rosy.net.cn/jx-callback/business/partner/putils" "git.rosy.net.cn/jx-callback/globals/api" @@ -521,6 +522,25 @@ func (v *VendorSync) SyncStoresSkus(ctx *jxcontext.Context, parentTask tasksch.I if isForce { setSyncStatus = model.SyncFlagStoreSkuModifiedMask } + //权限 + if permission.IsRoled(ctx) { + if storeIDsMap, err := permission.GetUserStoresResultMap(ctx.GetUserID()); err == nil { + var storeIDs2 []int + if len(storeIDs) > 0 { + for _, v := range storeIDs { + if storeIDsMap[v] != 0 { + storeIDs2 = append(storeIDs2, v) + } + } + } else { + for k, _ := range storeIDsMap { + storeIDs2 = append(storeIDs2, k) + } + } + storeIDs = nil + storeIDs = storeIDs2 + } + } return v.SyncStoresSkus2(ctx, parentTask, causeFlag, db, vendorIDs, storeIDs, true, skuIDs, nil, setSyncStatus, isAsync, isContinueWhenError) } diff --git a/business/jxstore/cms/sync2.go b/business/jxstore/cms/sync2.go index f134cdc7b..8994a3f57 100644 --- a/business/jxstore/cms/sync2.go +++ b/business/jxstore/cms/sync2.go @@ -158,7 +158,7 @@ func SyncSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs []int, if skuVendorInfo.SkuVendorMapCatID != "" { skuVendorInfo.VendorVendorCatID = utils.Str2Int64(skuVendorInfo.SkuVendorMapCatID) } - skuVendorInfo.SkuName = jxutils.ComposeSkuNameSync(skuVendorInfo.Prefix, skuVendorInfo.Name, skuVendorInfo.Comment, skuVendorInfo.Unit, skuVendorInfo.SpecQuality, skuVendorInfo.SpecUnit, 0, skuVendorInfo.ExPrefix, skuVendorInfo.ExPrefixBegin, skuVendorInfo.ExPrefixEnd) + skuVendorInfo.SkuName = jxutils.ComposeSkuNameSync(skuVendorInfo.Prefix, skuVendorInfo.Name, skuVendorInfo.Comment, skuVendorInfo.Unit, skuVendorInfo.SpecQuality, skuVendorInfo.SpecUnit, 0, skuVendorInfo.ExPrefix, skuVendorInfo.ExPrefixBegin, skuVendorInfo.ExPrefixEnd, true) skuVendorInfo.SkuNameOrigin = jxutils.ComposeSkuNameOriginal(skuVendorInfo.Prefix, skuVendorInfo.Name, skuVendorInfo.Comment, skuVendorInfo.Unit, skuVendorInfo.SpecQuality, skuVendorInfo.SpecUnit, 0) if skuVendorInfo.ImgWatermark != "" { downLoad, _ := uploadImgStandard(skuVendorInfo.ImgWatermark) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index c81d47656..39f8c8a09 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -299,9 +299,9 @@ func formalizeStoreSkuList(inSkuList []*dao.StoreSkuSyncInfo) []*dao.StoreSkuSyn skuItem.MergedStatus = jxutils.MergeSkuStatus(jxutils.MergeSkuStatus(skuItem.NameStatus, skuItem.Status), skuItem.StoreSkuStatus) //美团的商品名字非标品中间不能有 ‘约’ if skuItem.VendorID == model.VendorIDMTWM { - skuItem.SkuName = jxutils.ComposeSkuNameSync2(skuItem.Prefix, skuItem.Name, skuItem.Comment, skuItem.Unit, skuItem.SpecQuality, skuItem.SpecUnit, 0, skuItem.ExPrefix, skuItem.ExPrefixBegin, skuItem.ExPrefixEnd) + skuItem.SkuName = jxutils.ComposeSkuNameSync2(skuItem.Prefix, skuItem.Name, skuItem.Comment, skuItem.Unit, skuItem.SpecQuality, skuItem.SpecUnit, 0, skuItem.ExPrefix, skuItem.ExPrefixBegin, skuItem.ExPrefixEnd, skuItem.BrandID == skuItem.ExBrandID) } else { - skuItem.SkuName = jxutils.ComposeSkuNameSync(skuItem.Prefix, skuItem.Name, skuItem.Comment, skuItem.Unit, skuItem.SpecQuality, skuItem.SpecUnit, 0, skuItem.ExPrefix, skuItem.ExPrefixBegin, skuItem.ExPrefixEnd) + skuItem.SkuName = jxutils.ComposeSkuNameSync(skuItem.Prefix, skuItem.Name, skuItem.Comment, skuItem.Unit, skuItem.SpecQuality, skuItem.SpecUnit, 0, skuItem.ExPrefix, skuItem.ExPrefixBegin, skuItem.ExPrefixEnd, skuItem.BrandID == skuItem.ExBrandID) } skuItem.SkuNameOrigin = jxutils.ComposeSkuNameOriginal(skuItem.Prefix, skuItem.Name, skuItem.Comment, skuItem.Unit, skuItem.SpecQuality, skuItem.SpecUnit, 0) // if skuItem.ImgWatermark != "" && model.IsSyncStatusUpdate(skuItem.SkuSyncStatus) && skuItem.VendorID != model.VendorIDJD { diff --git a/business/jxutils/jxutils.go b/business/jxutils/jxutils.go index fd57e186c..d1c34a7ba 100644 --- a/business/jxutils/jxutils.go +++ b/business/jxutils/jxutils.go @@ -432,10 +432,12 @@ func ComposeSkuName(prefix, name, comment, unit string, spec_quality float32, sp return skuName } -func ComposeSkuNameSync(prefix, name, comment, unit string, spec_quality float32, spec_unit string, maxLen int, exPrefix string, exPrefixBegin, exPrefixEnd *time.Time) (skuName string) { +func ComposeSkuNameSync(prefix, name, comment, unit string, spec_quality float32, spec_unit string, maxLen int, exPrefix string, exPrefixBegin, exPrefixEnd *time.Time, isEx bool) (skuName string) { if exPrefix != "" && exPrefixBegin != nil && exPrefixEnd != nil { if utils.Time2Date(time.Now().Add(6*time.Hour)).Sub(*exPrefixBegin) >= 0 && utils.Time2Date(time.Now()).Sub(*exPrefixEnd) <= 0 { - skuName = exPrefix + if isEx { + skuName = exPrefix + } } if utils.Time2Date(time.Now().Add(6*time.Hour)).Sub(*exPrefixEnd) > 0 { skuName = "" @@ -445,10 +447,12 @@ func ComposeSkuNameSync(prefix, name, comment, unit string, spec_quality float32 return skuName } -func ComposeSkuNameSync2(prefix, name, comment, unit string, spec_quality float32, spec_unit string, maxLen int, exPrefix string, exPrefixBegin, exPrefixEnd *time.Time) (skuName string) { +func ComposeSkuNameSync2(prefix, name, comment, unit string, spec_quality float32, spec_unit string, maxLen int, exPrefix string, exPrefixBegin, exPrefixEnd *time.Time, isEx bool) (skuName string) { if exPrefix != "" && exPrefixBegin != nil && exPrefixEnd != nil { if utils.Time2Date(time.Now().Add(6*time.Hour)).Sub(*exPrefixBegin) >= 0 && utils.Time2Date(time.Now()).Sub(*exPrefixEnd) <= 0 { - skuName = exPrefix + if isEx { + skuName = exPrefix + } } if utils.Time2Date(time.Now().Add(6*time.Hour)).Sub(*exPrefixEnd) > 0 { skuName = "" diff --git a/business/jxutils/weixinmsg/weixinmsg.go b/business/jxutils/weixinmsg/weixinmsg.go index 19bfaa282..69ad135db 100644 --- a/business/jxutils/weixinmsg/weixinmsg.go +++ b/business/jxutils/weixinmsg/weixinmsg.go @@ -10,6 +10,7 @@ import ( "git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin" "git.rosy.net.cn/jx-callback/business/authz/autils" + "git.rosy.net.cn/jx-callback/business/jxstore/permission" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/jxutils/netprinter" "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" @@ -764,6 +765,25 @@ func NotifyStoreAlertMessage(storeID int, storeName, title, content string) (err func SendStoreMessage(ctx *jxcontext.Context, title, content string, storeIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) { db := dao.GetDB() + //权限 + if permission.IsRoled(ctx) { + if storeIDsMap, err := permission.GetUserStoresResultMap(ctx.GetUserID()); err == nil { + var storeIDs2 []int + if len(storeIDs) > 0 { + for _, v := range storeIDs { + if storeIDsMap[v] != 0 { + storeIDs2 = append(storeIDs2, v) + } + } + } else { + for k, _ := range storeIDsMap { + storeIDs2 = append(storeIDs2, k) + } + } + storeIDs = nil + storeIDs = storeIDs2 + } + } dao.Begin(db) defer func() { if r := recover(); r != nil { diff --git a/business/model/dao/store.go b/business/model/dao/store.go index 00c3b9f2f..c6c1e57b9 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -61,6 +61,10 @@ type StoreDetail struct { MtwmToken string `json:"mtwmToken"` EbaiSupplierID string `json:"ebaiSupplierID"` + + BrandName string `json:"brandName"` //品牌信息 + BrandLogo string `json:"brandLogo"` + BrandIsOpen int `json:"brandIsOpen"` } // 带快递门店信息的 @@ -117,7 +121,10 @@ func getStoreDetail(db *DaoDB, storeID, vendorID int, vendorStoreID, vendorOrgCo IF(mm.name <> '', mm.name, mm.user_id2) market_man_name, IF(om.name <> '', om.name, om.user_id2) operator_name, IF(om2.name <> '', om2.name, om2.user_id2) operator_name2, - IF(om3.name <> '', om3.name, om3.user_id2) operator_name3 + IF(om3.name <> '', om3.name, om3.user_id2) operator_name3, + b.name brand_name, + b.logo brand_logo, + b.is_open brand_is_open FROM store t1 LEFT JOIN store_map t2 ON t1.id = t2.store_id AND t2.vendor_id = ? AND t2.deleted_at = ? LEFT JOIN place city ON city.code = t1.city_code @@ -129,6 +136,7 @@ func getStoreDetail(db *DaoDB, storeID, vendorID int, vendorStoreID, vendorOrgCo LEFT JOIN user om ON om.mobile <> '' AND om.mobile = t1.operator_phone LEFT JOIN user om2 ON om2.mobile <> '' AND om2.mobile = t1.operator_phone2 LEFT JOIN user om3 ON om3.mobile <> '' AND om3.mobile = t1.operator_phone3 + LEFT JOIN brand b ON b.id = t1.brand_id AND b.deleted_at = ? WHERE t1.deleted_at = ? ` sqlParams := []interface{}{ @@ -139,6 +147,7 @@ func getStoreDetail(db *DaoDB, storeID, vendorID int, vendorStoreID, vendorOrgCo model.ConfigTypeFreightPack, utils.DefaultTimeValue, utils.DefaultTimeValue, + utils.DefaultTimeValue, } // if vendorID != model.VendorIDJX { // sql += " AND t2.id IS NOT NULL" diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 87fc8b5fe..2f53b7947 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -81,6 +81,8 @@ type StoreSkuSyncInfo struct { model.Sku ExdSkuID string `orm:"column(exd_sku_id)"` ExdCategoryThirdID int `orm:"column(exd_category_third_id)"` + BrandID int `orm:"column(brand_id)"` + ExBrandID int `orm:"column(ex_brand_id)"` StoreName string // sku_name @@ -459,7 +461,8 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo t4.%s_category_id vendor_vendor_cat_id, t4.name category_name, ts.name store_name, - tsu.ex_prefix, tsu.begin_at ex_prefix_begin, tsu.end_at ex_prefix_end, tsu.img_watermark, tsu.img_watermark_mix img_mix, + ts.brand_id, + tsu.ex_prefix, tsu.begin_at ex_prefix_begin, tsu.end_at ex_prefix_end, tsu.img_watermark, tsu.img_watermark_mix img_mix, tsu.brand_id ex_brand_id, tsu1.vendor_category_id sku_vendor_map_cat_id` fmtParams := []interface{}{ skuVendorIDField, fieldPrefix, fieldPrefix, fieldPrefix, diff --git a/business/model/sku.go b/business/model/sku.go index 36e0cea4d..857a8a01a 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -301,11 +301,12 @@ type SkuExinfoMap struct { NameID int `orm:"column(name_id)" json:"nameID"` VendorID int `orm:"column(vendor_id)" json:"vendorID"` - BeginAt time.Time `orm:"type(datetime);index" json:"beginAt"` //设置起始时间 - EndAt time.Time `orm:"type(datetime);index" json:"endAt"` //设置结束时间 - ExPrefix string `orm:"size(255)" json:"exPrefix"` //额外前缀 - ImgWatermark string `orm:"size(512)" json:"imgWatermark"` //图片水印 - ImgWatermarkMix string `orm:"size(512)" json:"imgWatermark"` //合成水印图 + BeginAt time.Time `orm:"type(datetime);index" json:"beginAt"` //设置起始时间 + EndAt time.Time `orm:"type(datetime);index" json:"endAt"` //设置结束时间 + ExPrefix string `orm:"size(255)" json:"exPrefix"` //额外前缀 + ImgWatermark string `orm:"size(512)" json:"imgWatermark"` //图片水印 + ImgWatermarkMix string `orm:"size(512)" json:"imgWatermark"` //合成水印图 + BrandID int `orm:"column(brand_id);default(0)" json:"brandID"` //品牌ID } func (*SkuExinfoMap) TableIndex() [][]string { diff --git a/business/partner/purchase/ebai/store_sku2.go b/business/partner/purchase/ebai/store_sku2.go index 20b2daca5..ec5c1791e 100644 --- a/business/partner/purchase/ebai/store_sku2.go +++ b/business/partner/purchase/ebai/store_sku2.go @@ -397,7 +397,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg func genSkuParamsFromStoreSkuInfo2(storeSku *dao.StoreSkuSyncInfo, isCreate, isExd bool) (params map[string]interface{}) { var img string - if storeSku.ImgMix != "" { + if storeSku.ImgMix != "" && storeSku.BrandID == storeSku.ExBrandID { img = storeSku.ImgMix } else { img = storeSku.Img diff --git a/business/partner/purchase/mtwm/store_sku2.go b/business/partner/purchase/mtwm/store_sku2.go index d707d2559..fe21a3539 100644 --- a/business/partner/purchase/mtwm/store_sku2.go +++ b/business/partner/purchase/mtwm/store_sku2.go @@ -289,7 +289,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI if img2 == "" { img2 = storeSku.Img } - if storeSku.ImgMix != "" { + if storeSku.ImgMix != "" && storeSku.BrandID == storeSku.ExBrandID { foodData["picture"] = strings.Join(jxutils.BatchString2Slice(storeSku.ImgMix, img2, storeSku.ImgMix, storeSku.ImgMix, storeSku.ImgMix), ",") } else { foodData["picture"] = strings.Join(jxutils.BatchString2Slice(storeSku.Img, img2, storeSku.Img, storeSku.Img, storeSku.Img), ",")