生成门店商品备份表

This commit is contained in:
苏尹岚
2020-03-06 16:49:44 +08:00
parent fd9611c32a
commit 2fa0858249
4 changed files with 81 additions and 37 deletions

View File

@@ -3844,3 +3844,48 @@ func getSkuNamePrice(db *dao.DaoDB, skuID int, orgPrice int64) (price int64, nam
}
return price, nameID
}
func BackUpStoreSkuBind(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) {
var (
db = dao.GetDB()
storeSkuBinds []*model.StoreSkuBind
snapshotAt = time.Now()
)
storeSkuBindHis := &model.StoreSkuBindHistory{
SnapshotAt: snapshotAt.AddDate(0, 0, -3),
}
storeSkuBindHis2 := &model.StoreSkuBindHistory{
SnapshotAt: snapshotAt,
}
dao.DeleteEntity(db, storeSkuBindHis, "SnapShotAt")
dao.DeleteEntity(db, storeSkuBindHis2, "SnapShotAt")
sql := `SELECT * FROM store_sku_bind WHERE deleted_at = ?`
sqlParams := []interface{}{utils.DefaultTimeValue}
err = dao.GetRows(db, &storeSkuBinds, sql, sqlParams)
task := tasksch.NewParallelTask("RefreshOrdersPriceInfo", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
v := batchItemList[0].(*model.StoreSkuBind)
dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
panic(r)
}
}()
storeSkuBindHis := &model.StoreSkuBindHistory{}
storeSkuBindHis.StoreSkuBind = *v
storeSkuBindHis.StoreSkuBindID = v.ID
storeSkuBindHis.SnapshotAt = snapshotAt
dao.CreateEntity(db, storeSkuBindHis)
dao.Commit(db)
return retVal, err
}, storeSkuBinds)
tasksch.HandleTask(task, nil, true).Run()
if isAsync {
hint = task.GetID()
} else {
_, err = task.GetResult(0)
hint = "1"
}
return hint, err
}

View File

@@ -135,42 +135,8 @@ func (*StoreSkuBind) TableIndex() [][]string {
}
type StoreSkuBindHistory struct {
ModelIDCULD
StoreSkuBind
StoreSkuBindID int `orm:"column(store_sku_bind_id)"`
StoreID int `orm:"column(store_id)"`
SkuID int `orm:"column(sku_id)"`
SubStoreID int `orm:"column(sub_store_id)"`
Price int // 单位为分不用int64的原因是这里不需要累加
UnitPrice int // 这个是一斤的门店商品价放在这里的原因是避免额外增加一张store sku_name表逻辑上要保证同一SKU NAME中的所有SKU这个字段的数据一致
Status int
// ElmID int64 `orm:"column(elm_id);index"`
MtwmID int64 `orm:"column(mtwm_id);index"`
EbaiID int64 `orm:"column(ebai_id);index"`
// WscID int64 `orm:"column(wsc_id);index"` // 表示微盟skuId
// WscID2 int64 `orm:"column(wsc_id2);index"` // 表示微盟goodsId
// ElmSyncStatus int8 `orm:"default(2)"`
JdSyncStatus int8 `orm:"default(2)"`
MtwmSyncStatus int8 `orm:"default(2)"`
EbaiSyncStatus int8 `orm:"default(2)"`
// WscSyncStatus int8 `orm:"default(2)"`
JdPrice int `json:"jdPrice"`
MtwmPrice int `json:"mtwmPrice"`
EbaiPrice int `json:"ebaiPrice"`
JxPrice int `json:"jxPrice"`
JdLockTime *time.Time `orm:"null" json:"jdLockTime"`
MtwmLockTime *time.Time `orm:"null" json:"mtwmLockTime"`
EbaiLockTime *time.Time `orm:"null" json:"ebaiLockTime"`
JxLockTime *time.Time `orm:"null" json:"jxLockTime"`
AutoSaleAt time.Time `orm:"type(datetime);null" json:"autoSaleAt"`
StatusSaleBegin int16 //商品可售时间范围
StatusSaleEnd int16
SnapshotAt time.Time `orm:"type(datetime);null;index" json:"snapshotAt"`
}

View File

@@ -712,3 +712,18 @@ func (c *StoreSkuController) RefreshJxPriceByVendor2() {
return retVal, "", err
})
}
// @Title 生成门店商品备份表
// @Description 生成门店商品备份表
// @Param token header string true "认证token"
// @Param isAsync formData bool false "是否异步,缺省是同步"
// @Param isContinueWhenError formData bool false "单个同步失败是否继续缺省false"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /BackUpStoreSkuBind [post]
func (c *StoreSkuController) BackUpStoreSkuBind() {
c.callBackUpStoreSkuBind(func(params *tStoreSkuBackUpStoreSkuBindParams) (retVal interface{}, errCode string, err error) {
retVal, err = cms.BackUpStoreSkuBind(params.Ctx, params.IsAsync, params.IsContinueWhenError)
return retVal, "", err
})
}

View File

@@ -655,6 +655,15 @@ func init() {
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"],
beego.ControllerComments{
Method: "GetMatterOrderStatus",
Router: `/GetMatterOrderStatus`,
AllowHTTPMethods: []string{"post"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"],
beego.ControllerComments{
Method: "GetMyOrderCountInfo",
@@ -1773,6 +1782,15 @@ func init() {
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"],
beego.ControllerComments{
Method: "BackUpStoreSkuBind",
Router: `/BackUpStoreSkuBind`,
AllowHTTPMethods: []string{"post"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"],
beego.ControllerComments{
Method: "CopyStoreSkus",