生成门店商品备份表
This commit is contained in:
@@ -3844,3 +3844,48 @@ func getSkuNamePrice(db *dao.DaoDB, skuID int, orgPrice int64) (price int64, nam
|
|||||||
}
|
}
|
||||||
return price, nameID
|
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
|
||||||
|
}
|
||||||
|
|||||||
@@ -135,43 +135,9 @@ func (*StoreSkuBind) TableIndex() [][]string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type StoreSkuBindHistory struct {
|
type StoreSkuBindHistory struct {
|
||||||
ModelIDCULD
|
StoreSkuBind
|
||||||
StoreSkuBindID int `orm:"column(store_sku_bind_id)"`
|
StoreSkuBindID int `orm:"column(store_sku_bind_id)"`
|
||||||
StoreID int `orm:"column(store_id)"`
|
SnapshotAt time.Time `orm:"type(datetime);null;index" json:"snapshotAt"`
|
||||||
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"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*StoreSkuBindHistory) TableUnique() [][]string {
|
func (*StoreSkuBindHistory) TableUnique() [][]string {
|
||||||
|
|||||||
@@ -712,3 +712,18 @@ func (c *StoreSkuController) RefreshJxPriceByVendor2() {
|
|||||||
return retVal, "", err
|
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
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -655,6 +655,15 @@ func init() {
|
|||||||
Filters: nil,
|
Filters: nil,
|
||||||
Params: 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.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"],
|
||||||
beego.ControllerComments{
|
beego.ControllerComments{
|
||||||
Method: "GetMyOrderCountInfo",
|
Method: "GetMyOrderCountInfo",
|
||||||
@@ -1773,6 +1782,15 @@ func init() {
|
|||||||
Filters: nil,
|
Filters: nil,
|
||||||
Params: 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.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"],
|
||||||
beego.ControllerComments{
|
beego.ControllerComments{
|
||||||
Method: "CopyStoreSkus",
|
Method: "CopyStoreSkus",
|
||||||
|
|||||||
Reference in New Issue
Block a user