Accept Merge Request #188: (su -> mark)
Merge Request: 非额先打门店暂时无法关注饿先打商品 Created By: @苏尹岚 Accepted By: @苏尹岚 URL: https://rosydev.coding.net/p/jx-callback/d/jx-callback/git/merge/188
This commit is contained in:
@@ -415,6 +415,14 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku bool, params ma
|
|||||||
sqlParams = append(sqlParams, nameIDs)
|
sqlParams = append(sqlParams, nameIDs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if params["isExd"] != nil {
|
||||||
|
var idExd = params["isExd"].(bool)
|
||||||
|
if idExd {
|
||||||
|
sql += " AND t2.exd_sku_id <> ''"
|
||||||
|
} else {
|
||||||
|
sql += " AND t2.exd_sku_id = ''"
|
||||||
|
}
|
||||||
|
}
|
||||||
if params["categoryID"] != nil {
|
if params["categoryID"] != nil {
|
||||||
cat := &model.SkuCategory{}
|
cat := &model.SkuCategory{}
|
||||||
cat.ID = params["categoryID"].(int)
|
cat.ID = params["categoryID"].(int)
|
||||||
@@ -570,8 +578,9 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku bool, params ma
|
|||||||
CONCAT("[", GROUP_CONCAT(DISTINCT CONCAT('{"id":', t2.id, ',"comment":"', t2.comment, '","status":', t2.status,
|
CONCAT("[", GROUP_CONCAT(DISTINCT CONCAT('{"id":', t2.id, ',"comment":"', t2.comment, '","status":', t2.status,
|
||||||
',"createdAt":"', CONCAT(REPLACE(t2.created_at," ","T"),"+08:00"), '","updatedAt":"', CONCAT(REPLACE(t2.updated_at," ","T"),"+08:00"),
|
',"createdAt":"', CONCAT(REPLACE(t2.created_at," ","T"),"+08:00"), '","updatedAt":"', CONCAT(REPLACE(t2.updated_at," ","T"),"+08:00"),
|
||||||
'","lastOperator":"', t2.last_operator, '","specQuality":', t2.spec_quality, ',"specUnit":"', t2.spec_unit,
|
'","lastOperator":"', t2.last_operator, '","specQuality":', t2.spec_quality, ',"specUnit":"', t2.spec_unit,
|
||||||
|
'","exdSkuID":"', t2.exd_sku_id,
|
||||||
'","weight":', t2.weight, ',"categoryID":', t2.category_id, ',"nameID":', t2.name_id,
|
'","weight":', t2.weight, ',"categoryID":', t2.category_id, ',"nameID":', t2.name_id,
|
||||||
', "seq":', t2.seq,
|
', "seq":', t2.seq,
|
||||||
"}")), "]") skus_str,
|
"}")), "]") skus_str,
|
||||||
CONCAT("[", GROUP_CONCAT(DISTINCT t3.place_code), "]") places_str
|
CONCAT("[", GROUP_CONCAT(DISTINCT t3.place_code), "]") places_str
|
||||||
` + sql + `
|
` + sql + `
|
||||||
|
|||||||
@@ -82,15 +82,16 @@ type StoreSkuBindInfo struct {
|
|||||||
|
|
||||||
type tStoreSkuBindAndSpec struct {
|
type tStoreSkuBindAndSpec struct {
|
||||||
model.StoreSkuBind
|
model.StoreSkuBind
|
||||||
SkuStatus int
|
SkuStatus int
|
||||||
SkuNameStatus int
|
SkuNameStatus int
|
||||||
Name string
|
Name string
|
||||||
SpecQuality float32
|
SpecQuality float32
|
||||||
SpecUnit string
|
SpecUnit string
|
||||||
SkuNamePrice int
|
SkuNamePrice int
|
||||||
SkuNameUnit string
|
SkuNameUnit string
|
||||||
RealSkuID int `orm:"column(real_sku_id)"`
|
RealSkuID int `orm:"column(real_sku_id)"`
|
||||||
|
ExdSkuID string `orm:"column(exd_sku_id)"`
|
||||||
|
StoreName string
|
||||||
ChangePriceType int8 `json:"changePriceType"` // 修改价格类型,即是否需要审核
|
ChangePriceType int8 `json:"changePriceType"` // 修改价格类型,即是否需要审核
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -366,6 +367,9 @@ func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, isFocus bool
|
|||||||
if len(storeIDs) > 0 {
|
if len(storeIDs) > 0 {
|
||||||
sql += " AND t3.id IN (" + dao.GenQuestionMarks(len(storeIDs)) + ")"
|
sql += " AND t3.id IN (" + dao.GenQuestionMarks(len(storeIDs)) + ")"
|
||||||
sqlParams = append(sqlParams, storeIDs)
|
sqlParams = append(sqlParams, storeIDs)
|
||||||
|
if len(storeIDs) == 1 {
|
||||||
|
sql += " AND IF(INSTR(t3.name,'" + model.ExdStoreName + "') > 0, t2.exd_sku_id <> '', t2.exd_sku_id = '')"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if len(skuIDs) > 0 {
|
if len(skuIDs) > 0 {
|
||||||
sql += " AND t2.id IN (" + dao.GenQuestionMarks(len(skuIDs)) + ")"
|
sql += " AND t2.id IN (" + dao.GenQuestionMarks(len(skuIDs)) + ")"
|
||||||
@@ -976,13 +980,13 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
|
|||||||
sql := `
|
sql := `
|
||||||
SELECT
|
SELECT
|
||||||
t2.*,
|
t2.*,
|
||||||
t1.id real_sku_id, t1.status sku_status, t1.spec_quality, t1.spec_unit,`
|
t1.id real_sku_id, t1.status sku_status, t1.spec_quality, t1.spec_unit, t1.exd_sku_id,`
|
||||||
if needGetExistingUnitPrice {
|
if needGetExistingUnitPrice {
|
||||||
sql += " IF(t5.unit_price > 0, t5.unit_price, t3.price) sku_name_price,"
|
sql += " IF(t5.unit_price > 0, t5.unit_price, t3.price) sku_name_price,"
|
||||||
}
|
}
|
||||||
sql += `
|
sql += `
|
||||||
t3.unit sku_name_unit, t3.name, t3.status sku_name_status,
|
t3.unit sku_name_unit, t3.name, t3.status sku_name_status,
|
||||||
ts.change_price_type
|
ts.change_price_type, ts.name store_name
|
||||||
FROM sku t1
|
FROM sku t1
|
||||||
JOIN store ts ON ts.id = ? AND ts.deleted_at = ?
|
JOIN store ts ON ts.id = ? AND ts.deleted_at = ?
|
||||||
LEFT JOIN store_sku_bind t2 ON t2.sku_id = t1.id AND t2.store_id = ts.id AND t2.deleted_at = ?
|
LEFT JOIN store_sku_bind t2 ON t2.sku_id = t1.id AND t2.store_id = ts.id AND t2.deleted_at = ?
|
||||||
@@ -1037,41 +1041,44 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
|
|||||||
// globals.SugarLogger.Debug(utils.Format4Output(inSkuBind, false))
|
// globals.SugarLogger.Debug(utils.Format4Output(inSkuBind, false))
|
||||||
var skuBind *model.StoreSkuBind
|
var skuBind *model.StoreSkuBind
|
||||||
if v.ID == 0 {
|
if v.ID == 0 {
|
||||||
if skuBindInfo.IsFocus == 1 && v.SkuNameStatus == model.SkuStatusNormal && v.SkuStatus == model.SkuStatusNormal && isCanChangePrice {
|
if v.ExdSkuID == "" {
|
||||||
skuBind = &model.StoreSkuBind{
|
// if !(strings.Contains(v.StoreName, model.ExdStoreName) && v.ExdSkuID == "") {
|
||||||
StoreID: storeID,
|
if skuBindInfo.IsFocus == 1 && v.SkuNameStatus == model.SkuStatusNormal && v.SkuStatus == model.SkuStatusNormal && isCanChangePrice {
|
||||||
SkuID: v.RealSkuID,
|
skuBind = &model.StoreSkuBind{
|
||||||
SubStoreID: skuBindInfo.SubStoreID, // todo 这个应该从用户信息中自动获得
|
StoreID: storeID,
|
||||||
UnitPrice: unitPrice,
|
SkuID: v.RealSkuID,
|
||||||
Price: jxutils.CaculateSkuPrice(unitPrice, v.SpecQuality, v.SpecUnit, v.SkuNameUnit),
|
SubStoreID: skuBindInfo.SubStoreID, // todo 这个应该从用户信息中自动获得
|
||||||
Status: model.StoreSkuBindStatusDontSale, // 缺省不可售?
|
UnitPrice: unitPrice,
|
||||||
}
|
Price: jxutils.CaculateSkuPrice(unitPrice, v.SpecQuality, v.SpecUnit, v.SkuNameUnit),
|
||||||
skuBind.JxPrice = jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), skuBind.Price)
|
Status: model.StoreSkuBindStatusDontSale, // 缺省不可售?
|
||||||
if tmpStatus := getSkuSaleStatus(inSkuBind, skuBindInfo); tmpStatus != model.StoreSkuBindStatusNA {
|
|
||||||
skuBind.Status = tmpStatus
|
|
||||||
}
|
|
||||||
if globals.IsAddEvent {
|
|
||||||
err = AddEventDetail(db, ctx, model.OperateAdd, v.RealSkuID, model.ThingTypeSku, storeID, "", "")
|
|
||||||
}
|
|
||||||
setStoreSkuBindStatus(skuBind, model.SyncFlagNewMask)
|
|
||||||
dao.WrapAddIDCULDEntity(skuBind, userName)
|
|
||||||
// globals.SugarLogger.Debug(utils.Format4Output(skuBind, false))
|
|
||||||
if deletedSku := dao.GetDeletedStoreSkuBind(db, skuBind.StoreID, skuBind.SkuID); deletedSku == nil {
|
|
||||||
if err = dao.CreateEntity(db, skuBind); err != nil {
|
|
||||||
dao.Rollback(db)
|
|
||||||
return nil, err
|
|
||||||
}
|
}
|
||||||
num = 1
|
skuBind.JxPrice = jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), skuBind.Price)
|
||||||
} else {
|
if tmpStatus := getSkuSaleStatus(inSkuBind, skuBindInfo); tmpStatus != model.StoreSkuBindStatusNA {
|
||||||
// 需要处理,在删除某个门店商品,同步失败的情况下,又把商品重新关注。
|
skuBind.Status = tmpStatus
|
||||||
// 所以统一处理成恢复删除的记录,这样避免问题
|
}
|
||||||
skuBind.ID = deletedSku.ID
|
if globals.IsAddEvent {
|
||||||
// vendorSkuID的赋值意义不大
|
err = AddEventDetail(db, ctx, model.OperateAdd, v.RealSkuID, model.ThingTypeSku, storeID, "", "")
|
||||||
skuBind.MtwmID = deletedSku.MtwmID
|
}
|
||||||
skuBind.EbaiID = deletedSku.EbaiID
|
setStoreSkuBindStatus(skuBind, model.SyncFlagNewMask)
|
||||||
if num, err = dao.UpdateEntity(db, skuBind); err != nil {
|
dao.WrapAddIDCULDEntity(skuBind, userName)
|
||||||
dao.Rollback(db)
|
// globals.SugarLogger.Debug(utils.Format4Output(skuBind, false))
|
||||||
return nil, err
|
if deletedSku := dao.GetDeletedStoreSkuBind(db, skuBind.StoreID, skuBind.SkuID); deletedSku == nil {
|
||||||
|
if err = dao.CreateEntity(db, skuBind); err != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
num = 1
|
||||||
|
} else {
|
||||||
|
// 需要处理,在删除某个门店商品,同步失败的情况下,又把商品重新关注。
|
||||||
|
// 所以统一处理成恢复删除的记录,这样避免问题
|
||||||
|
skuBind.ID = deletedSku.ID
|
||||||
|
// vendorSkuID的赋值意义不大
|
||||||
|
skuBind.MtwmID = deletedSku.MtwmID
|
||||||
|
skuBind.EbaiID = deletedSku.EbaiID
|
||||||
|
if num, err = dao.UpdateEntity(db, skuBind); err != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ var (
|
|||||||
}
|
}
|
||||||
checkCookieList = []string{
|
checkCookieList = []string{
|
||||||
"08:00:00",
|
"08:00:00",
|
||||||
|
"12:00:00",
|
||||||
"18:00:00",
|
"18:00:00",
|
||||||
}
|
}
|
||||||
createStorePriceTimeList = []string{
|
createStorePriceTimeList = []string{
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ dadaAppSecret = "2c717ad914767d6e2beb3f743db9e477"
|
|||||||
mtwmAppID = "589"
|
mtwmAppID = "589"
|
||||||
mtwmSecret = "a81eb3df418d83d6a1a4b7c572156d2f"
|
mtwmSecret = "a81eb3df418d83d6a1a4b7c572156d2f"
|
||||||
mtwmCallbackURL = "http://callback.jxc4.com"
|
mtwmCallbackURL = "http://callback.jxc4.com"
|
||||||
mtwmCookieStr = "_lxsdk_cuid=16ddced5e9a95-0a65869c427a14-48714616-15f900-16ddced5e9b2b; _hc.v=cfebbfd1-79a7-9823-d8df-77e59646cb34.1571369610; _lxsdk=16ddced5e9a95-0a65869c427a14-48714616-15f900-16ddced5e9b2b; uuid_update=true; uuid=7b28e71504f5414e382b.1579155871.1.0.0; device_uuid=!64dedf83-b510-4910-8a31-b2b13d0bdd73; pushToken=00kRvxlerO15kB0dJFWDwYuctAoe04xGMNd0r3BqvLUA*; acctId=57396785; token=0eRY2RM8Adm0th9r_lm1_BMg06Y95bBCLl79MVCMym0g*; brandId=-1; wmPoiId=-1; isOfflineSelfOpen=0; city_id=0; isChain=1; existBrandPoi=true; ignore_set_router_proxy=true; region_id=; region_version=0; newCategory=false; bsid=OyqgRLyV54i9JKP0zRCI9jPyXc4UBU-6KReDAkPIwSlljhb97JPyFUIXfYQvhlJb6G1erzHQKbvtZ2pSWOYDxQ; cityId=510100; provinceId=510000; city_location_id=0; location_id=0; igateApp=shangouepc; wpush_server_url=wss://wpush.meituan.com; shopCategory=food; set_info=%7B%22wmPoiId%22%3A-1%2C%22ignoreSetRouterProxy%22%3Atrue%7D; JSESSIONID=ikhdbyehstgx3lfc9l9pdr8u; LX_SC_CONSTANT=c_shangou_online_e_znrurnrc; _lxsdk_s=16fb15646be-e0a-ff3-7c4%7"
|
mtwmCookieStr = "_lxsdk_cuid=16ddced5e9a95-0a65869c427a14-48714616-15f900-16ddced5e9b2b; _hc.v=cfebbfd1-79a7-9823-d8df-77e59646cb34.1571369610; _lxsdk=16ddced5e9a95-0a65869c427a14-48714616-15f900-16ddced5e9b2b; uuid_update=true; uuid=7b28e71504f5414e382b.1579155871.1.0.0; device_uuid=!64dedf83-b510-4910-8a31-b2b13d0bdd73; pushToken=00kRvxlerO15kB0dJFWDwYuctAoe04xGMNd0r3BqvLUA*; acctId=57396785; brandId=-1; wmPoiId=-1; isOfflineSelfOpen=0; city_id=0; isChain=1; existBrandPoi=true; ignore_set_router_proxy=true; region_id=; region_version=0; newCategory=false; bsid=OyqgRLyV54i9JKP0zRCI9jPyXc4UBU-6KReDAkPIwSlljhb97JPyFUIXfYQvhlJb6G1erzHQKbvtZ2pSWOYDxQ; cityId=510100; provinceId=510000; city_location_id=0; location_id=0; igateApp=shangouepc; wpush_server_url=wss://wpush.meituan.com; token=0MScAPaSa57iwRpgpCmGLf21tiA4yU4Uy-nDZlv8wNWs*; shopCategory=food; set_info=%7B%22wmPoiId%22%3A-1%2C%22ignoreSetRouterProxy%22%3Atrue%7D; JSESSIONID=105dgww27nsy6yfp68q7wmcni; LX_SC_CONSTANT=c_shangou_online_e_znrurnrc; _lxsdk_s=17041b590ac-3d-689-a8c%7C%7C15"
|
||||||
|
|
||||||
autonaviKey = "ef64f638f31e05cb7bde28790f7309fe"
|
autonaviKey = "ef64f638f31e05cb7bde28790f7309fe"
|
||||||
|
|
||||||
|
|||||||
@@ -147,6 +147,7 @@ func (c *SkuController) SyncCategory() {
|
|||||||
// @Param skuCategoryID query int false "商品所属类别ID"
|
// @Param skuCategoryID query int false "商品所属类别ID"
|
||||||
// @Param unit query string false "商品单位"
|
// @Param unit query string false "商品单位"
|
||||||
// @Param isSpu query bool false "是否是SPU"
|
// @Param isSpu query bool false "是否是SPU"
|
||||||
|
// @Param isExd query bool false "是否是饿鲜达商品"
|
||||||
// @Param fromStatus query int false "查询起始状态(0:下架,1:正常)"
|
// @Param fromStatus query int false "查询起始状态(0:下架,1:正常)"
|
||||||
// @Param toStatus query int false "查询起始状态(0:下架,1:正常)"
|
// @Param toStatus query int false "查询起始状态(0:下架,1:正常)"
|
||||||
// @Param offset query int false "门店列表起始序号(以0开始,缺省为0)"
|
// @Param offset query int false "门店列表起始序号(以0开始,缺省为0)"
|
||||||
|
|||||||
Reference in New Issue
Block a user