diff --git a/business/jxstore/initdata/initdata.go b/business/jxstore/initdata/initdata.go index 6bef28353..7ed220bfe 100644 --- a/business/jxstore/initdata/initdata.go +++ b/business/jxstore/initdata/initdata.go @@ -307,3 +307,59 @@ func Convert2JDSPU(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (h } return hint, err } + +func Change2JDSPU4Store(ctx *jxcontext.Context, storeIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) { + sql := ` + DELETE t1 + FROM store_sku_bind t1 + JOIN sku t2 ON t1.sku_id = t2.id AND t2.link_id <> 0 + WHERE 1 = 1 + ` + sqlParams := []interface{}{} + if len(storeIDs) > 0 { + sql += " AND store_id IN (" + dao.GenQuestionMarks(len(storeIDs)) + ")" + sqlParams = append(sqlParams, storeIDs) + } + db := dao.GetDB() + if _, err = dao.ExecuteSQL(db, sql, sqlParams...); err != nil { + return "", err + } + + sql = ` + INSERT INTO store_sku_bind(created_at, updated_at, last_operator, deleted_at, store_id, sku_id, price, unit_price, status, ebai_id, mtwm_id, jd_sync_status, ebai_sync_status, mtwm_sync_status) + SELECT NOW(), NOW(), ?, ?, t1.store_id, t2.id, t1.price, t1.unit_price, ?,0,0,?,?,? + FROM store_sku_bind t1 + JOIN sku t2 ON t2.link_id = t1.sku_id AND t2.deleted_at = ? + WHERE 1 = 1 + ` + sqlParams = []interface{}{ + ctx.GetUserName(), + utils.DefaultTimeValue, + model.SkuStatusDontSale, + model.SyncFlagNewMask, + 0, //model.SyncFlagNewMask, + 0, //model.SyncFlagNewMask, + utils.DefaultTimeValue, + } + if len(storeIDs) > 0 { + sql += " AND t1.store_id IN (" + dao.GenQuestionMarks(len(storeIDs)) + ")" + sqlParams = append(sqlParams, storeIDs) + } + if _, err = dao.ExecuteSQL(db, sql, sqlParams...); err != nil { + return "", err + } + var skuIDs []int + sql = ` + SELECT id + FROM sku + WHERE link_id <> 0 AND deleted_at = ? + ` + sqlParams = []interface{}{ + utils.DefaultTimeValue, + } + if err = dao.GetRows(db, &skuIDs, sql, sqlParams...); err != nil { + return "", err + } + hint, err = cms.CurVendorSync.SyncStoresSkus(ctx, db, []int{model.VendorIDJD}, storeIDs, skuIDs, isAsync, isContinueWhenError) + return hint, err +} diff --git a/controllers/init_data.go b/controllers/init_data.go index 630fa6180..4e7beb3c4 100644 --- a/controllers/init_data.go +++ b/controllers/init_data.go @@ -2,6 +2,7 @@ package controllers import ( "git.rosy.net.cn/jx-callback/business/jxstore/initdata" + "git.rosy.net.cn/jx-callback/business/jxutils" "github.com/astaxie/beego" ) @@ -65,3 +66,22 @@ func (c *InitDataController) Convert2JDSPU() { return retVal, "", err }) } + +// @Title 将京东商店为份的SPU转换 +// @Description 将京东商店为份的SPU转换 +// @Param token header string true "认证token" +// @Param storeIDs formData string false "门店列表" +// @Param isAsync formData bool false "是否异步操作" +// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /Change2JDSPU4Store [post] +func (c *InitDataController) Change2JDSPU4Store() { + c.callChange2JDSPU4Store(func(params *tInitdataChange2JDSPU4StoreParams) (retVal interface{}, errCode string, err error) { + var storeIDs []int + if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs); err == nil { + retVal, err = initdata.Change2JDSPU4Store(params.Ctx, storeIDs, params.IsAsync, params.IsContinueWhenError) + } + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 6557a99fb..a2203deaa 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -167,6 +167,14 @@ func init() { MethodParams: param.Make(), Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"], + beego.ControllerComments{ + Method: "Change2JDSPU4Store", + Router: `/Change2JDSPU4Store`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"], beego.ControllerComments{ Method: "Convert2JDSPU",