From cc76cd72a657e1bb7ccbf42a56945a7d21a47940 Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 7 Jan 2019 09:32:06 +0800 Subject: [PATCH] - step added for Change2JDSPU4Store --- business/jxstore/initdata/initdata.go | 131 ++++++++++++++------------ controllers/init_data.go | 3 +- 2 files changed, 73 insertions(+), 61 deletions(-) diff --git a/business/jxstore/initdata/initdata.go b/business/jxstore/initdata/initdata.go index 842661b37..717cc7d68 100644 --- a/business/jxstore/initdata/initdata.go +++ b/business/jxstore/initdata/initdata.go @@ -317,7 +317,7 @@ func Convert2JDSPU(ctx *jxcontext.Context, count int, isAsync, isContinueWhenErr return hint, err } -func Change2JDSPU4Store(ctx *jxcontext.Context, storeIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) { +func Change2JDSPU4Store(ctx *jxcontext.Context, storeIDs []int, step int, isAsync, isContinueWhenError bool) (hint string, err error) { db := dao.GetDB() if len(storeIDs) == 0 { if err = dao.GetRows(db, &storeIDs, ` @@ -329,54 +329,62 @@ func Change2JDSPU4Store(ctx *jxcontext.Context, storeIDs []int, isAsync, isConti return "", err } } + var sql string + var sqlParams []interface{} + dao.Begin(db) defer dao.Rollback(db) - // sql := ` - // DELETE t1 - // FROM store_sku_bind t1 - // JOIN sku t2 ON t2.id = t1.sku_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) - // } - // if _, err = dao.ExecuteSQL(db, sql, sqlParams...); err != nil { - // return "", err - // } + if step == 1 { + sql = ` + DELETE t1 + FROM store_sku_bind t1 + JOIN sku t2 ON t2.id = t1.sku_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) + } + 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, t1.status , 0, 0, ?, ?, ? - // FROM store_sku_bind t1 - // JOIN sku t2 ON t2.link_id = t1.sku_id AND t2.deleted_at = ? - // JOIN store t3 ON t3.id = t1.store_id - // JOIN sku_name t4 ON t4.id = t2.name_id - // LEFT JOIN sku_name_place_bind t5 ON t5.place_code = t3.city_code AND t5.name_id = t4.id - // WHERE t1.deleted_at = ? AND (t4.is_global = 1 OR t5.id IS NOT NULL) AND t1.price > 0 - // ` - // sqlParams = []interface{}{ - // ctx.GetUserName(), - // utils.DefaultTimeValue, - // // model.SkuStatusDontSale, - // model.SyncFlagNewMask, - // 0, //model.SyncFlagNewMask, - // 0, //model.SyncFlagNewMask, - // utils.DefaultTimeValue, - // utils.DefaultTimeValue, - // } - sql := ` - UPDATE store_sku_bind t1 - JOIN sku t2 ON t2.link_id = t1.sku_id - SET t1.status = 0, - t1.jd_sync_status = ? - WHERE t1.deleted_at = ? - ` - sqlParams := []interface{}{ - model.SyncFlagSaleMask | model.SyncFlagModifiedMask, - utils.DefaultTimeValue, + 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, t1.status , 0, 0, ?, ?, ? + FROM store_sku_bind t1 + JOIN sku t2 ON t2.link_id = t1.sku_id AND t2.deleted_at = ? + JOIN store t3 ON t3.id = t1.store_id + JOIN sku_name t4 ON t4.id = t2.name_id + LEFT JOIN sku_name_place_bind t5 ON t5.place_code = t3.city_code AND t5.name_id = t4.id + WHERE t1.deleted_at = ? AND (t4.is_global = 1 OR t5.id IS NOT NULL) AND t1.price > 0 + ` + sqlParams = []interface{}{ + ctx.GetUserName(), + utils.DefaultTimeValue, + // model.SkuStatusDontSale, + model.SyncFlagNewMask, + 0, //model.SyncFlagNewMask, + 0, //model.SyncFlagNewMask, + utils.DefaultTimeValue, + utils.DefaultTimeValue, + } + } else if step == 2 { + sql = ` + UPDATE store_sku_bind t1 + JOIN sku t2 ON t2.link_id = t1.sku_id + SET t1.status = 0, + t1.jd_sync_status = ? + WHERE t1.deleted_at = ? + ` + sqlParams = []interface{}{ + model.SyncFlagSaleMask | model.SyncFlagModifiedMask, + utils.DefaultTimeValue, + } + } else { + return "", fmt.Errorf("非法的step") } if len(storeIDs) > 0 { sql += " AND t1.store_id IN (" + dao.GenQuestionMarks(len(storeIDs)) + ")" @@ -392,21 +400,24 @@ func Change2JDSPU4Store(ctx *jxcontext.Context, storeIDs []int, isAsync, isConti dao.Commit(db) var skuIDs []int - // sql = ` - // SELECT id - // FROM sku - // WHERE link_id <> 0 AND deleted_at = ? - // ` - // sqlParams = []interface{}{ - // utils.DefaultTimeValue, - // } - sql = ` - SELECT t1.link_id - FROM sku t1 - WHERE t1.deleted_at = ? AND t1.link_id > 0 - ` - sqlParams = []interface{}{ - utils.DefaultTimeValue, + if step == 1 { + sql = ` + SELECT id + FROM sku t1 + WHERE t1.link_id > 0 AND t1.deleted_at = ? + ` + sqlParams = []interface{}{ + utils.DefaultTimeValue, + } + } else if step == 2 { + sql = ` + SELECT t1.link_id + FROM sku t1 + WHERE t1.link_id > 0 AND t1.deleted_at = ? + ` + sqlParams = []interface{}{ + utils.DefaultTimeValue, + } } if err = dao.GetRows(db, &skuIDs, sql, sqlParams...); err != nil { return "", err diff --git a/controllers/init_data.go b/controllers/init_data.go index 43fbdf0b5..20b6f10d9 100644 --- a/controllers/init_data.go +++ b/controllers/init_data.go @@ -71,6 +71,7 @@ func (c *InitDataController) Convert2JDSPU() { // @Title 将京东商店为份的SPU转换 // @Description 将京东商店为份的SPU转换 // @Param token header string true "认证token" +// @Param step formData int true "门店列表" // @Param storeIDs formData string false "门店列表" // @Param isAsync formData bool false "是否异步操作" // @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false" @@ -81,7 +82,7 @@ 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) + retVal, err = initdata.Change2JDSPU4Store(params.Ctx, storeIDs, params.Step, params.IsAsync, params.IsContinueWhenError) } return retVal, "", err })