Merge remote-tracking branch 'origin/mark' into don
This commit is contained in:
@@ -246,7 +246,7 @@ func (c *OrderManager) ExportMTWaybills(ctx *jxcontext.Context, fromDateStr, toD
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *OrderManager) getOrders(ctx *jxcontext.Context, isIncludeSku bool, fromDateStr, toDateStr string, params map[string]interface{}, offset, pageSize int) (orders []*model.GoodsOrderExt, totalCount int, err error) {
|
func (c *OrderManager) getOrders(ctx *jxcontext.Context, isIncludeSku bool, fromDateStr, toDateStr string, isDateFinish bool, params map[string]interface{}, offset, pageSize int) (orders []*model.GoodsOrderExt, totalCount int, err error) {
|
||||||
globals.SugarLogger.Debugf("getOrders from:%s to:%s", fromDateStr, toDateStr)
|
globals.SugarLogger.Debugf("getOrders from:%s to:%s", fromDateStr, toDateStr)
|
||||||
|
|
||||||
pageSize = jxutils.FormalizePageSize(pageSize)
|
pageSize = jxutils.FormalizePageSize(pageSize)
|
||||||
@@ -310,10 +310,13 @@ func (c *OrderManager) getOrders(ctx *jxcontext.Context, isIncludeSku bool, from
|
|||||||
return nil, 0, err
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
toDate = toDate.Add(24 * time.Hour)
|
toDate = toDate.Add(24 * time.Hour)
|
||||||
|
if isDateFinish {
|
||||||
sqlWhere = `
|
sqlWhere = `
|
||||||
WHERE t1.order_created_at >= ? AND t1.order_created_at < ?
|
WHERE t1.order_finished_at >= ? AND t1.order_finished_at < ?`
|
||||||
`
|
} else {
|
||||||
|
sqlWhere = `
|
||||||
|
WHERE t1.order_created_at >= ? AND t1.order_created_at < ?`
|
||||||
|
}
|
||||||
sqlParams = []interface{}{
|
sqlParams = []interface{}{
|
||||||
fromDate,
|
fromDate,
|
||||||
toDate,
|
toDate,
|
||||||
@@ -423,9 +426,9 @@ func (c *OrderManager) getOrders(ctx *jxcontext.Context, isIncludeSku bool, from
|
|||||||
return orders, totalCount, err
|
return orders, totalCount, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr string, params map[string]interface{}, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) {
|
func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr string, isDateFinish bool, params map[string]interface{}, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) {
|
||||||
globals.SugarLogger.Debugf("GetOrders from:%s to:%s", fromDateStr, toDateStr)
|
globals.SugarLogger.Debugf("GetOrders from:%s to:%s", fromDateStr, toDateStr)
|
||||||
orders, totalCount, err := c.getOrders(ctx, false, fromDateStr, toDateStr, params, offset, pageSize)
|
orders, totalCount, err := c.getOrders(ctx, false, fromDateStr, toDateStr, isDateFinish, params, offset, pageSize)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
pagedInfo = &model.PagedInfo{
|
pagedInfo = &model.PagedInfo{
|
||||||
TotalCount: totalCount,
|
TotalCount: totalCount,
|
||||||
@@ -447,7 +450,7 @@ func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateS
|
|||||||
func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
||||||
switch step {
|
switch step {
|
||||||
case 0:
|
case 0:
|
||||||
orders, _, err = c.getOrders(ctx, true, fromDateStr, toDateStr, mapParams, 0, -1)
|
orders, _, err = c.getOrders(ctx, true, fromDateStr, toDateStr, true, mapParams, 0, -1)
|
||||||
case 1:
|
case 1:
|
||||||
afsSkuMap, err = c.getAfsOrderSkuInfo4ExportOrders(ctx, fromDateStr, toDateStr)
|
afsSkuMap, err = c.getAfsOrderSkuInfo4ExportOrders(ctx, fromDateStr, toDateStr)
|
||||||
case 2:
|
case 2:
|
||||||
|
|||||||
@@ -239,8 +239,9 @@ func GetStores(ctx *jxcontext.Context, keyword string, params map[string]interfa
|
|||||||
}
|
}
|
||||||
if keyword != "" {
|
if keyword != "" {
|
||||||
keywordLike := "%" + keyword + "%"
|
keywordLike := "%" + keyword + "%"
|
||||||
sqlWhere += " AND (t1.name LIKE ? OR t1.tel1 LIKE ? OR t1.tel2 LIKE ? OR t1.last_operator LIKE ? OR city.name LIKE ? OR t1.address LIKE ? OR t1.printer_sn LIKE ?"
|
sqlWhere += ` AND (t1.name LIKE ? OR t1.tel1 LIKE ? OR t1.tel2 LIKE ? OR t1.operator_phone LIKE ? OR t1.market_man_phone LIKE ?
|
||||||
sqlWhereParams = append(sqlWhereParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike)
|
OR t1.last_operator LIKE ? OR city.name LIKE ? OR t1.address LIKE ? OR t1.printer_sn LIKE ?`
|
||||||
|
sqlWhereParams = append(sqlWhereParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike)
|
||||||
|
|
||||||
if keywordInt64, err2 := strconv.ParseInt(keyword, 10, 64); err2 == nil {
|
if keywordInt64, err2 := strconv.ParseInt(keyword, 10, 64); err2 == nil {
|
||||||
if jxutils.IsLegalMobileNumber(keywordInt64) {
|
if jxutils.IsLegalMobileNumber(keywordInt64) {
|
||||||
@@ -1391,10 +1392,12 @@ func updateVendorStoreStatusBySnapshot(db *dao.DaoDB, curSnapshotList []*model.V
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
for _, v := range storeMapList {
|
for _, v := range storeMapList {
|
||||||
if snapshot := snapshotMap[jxutils.Combine2Int(v.StoreID, v.VendorID)]; snapshot != nil && v.Status != snapshot.Status {
|
if snapshot := snapshotMap[jxutils.Combine2Int(v.StoreID, v.VendorID)]; snapshot != nil &&
|
||||||
|
(v.Status != snapshot.Status || v.DeliveryType != snapshot.DeliveryType) {
|
||||||
v.Status = snapshot.Status
|
v.Status = snapshot.Status
|
||||||
v.DeliveryType = snapshot.DeliveryType
|
v.DeliveryType = snapshot.DeliveryType
|
||||||
if _, err = dao.UpdateEntity(db, v, model.FieldStatus, "DeliveryType"); err != nil {
|
v.LastOperator = model.AdminName
|
||||||
|
if _, err = dao.UpdateEntity(db, v, model.FieldLastOperator, model.FieldUpdatedAt, model.FieldStatus, "DeliveryType"); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1649,6 +1652,7 @@ func sendStoreStatusInfo2Mobile(mobile, title, txtAlarm string) {
|
|||||||
|
|
||||||
func SaveAndSendAlarmVendorSnapshot(ctx *jxcontext.Context, vendorIDs, storeIDs []int, isAsync bool) (err error) {
|
func SaveAndSendAlarmVendorSnapshot(ctx *jxcontext.Context, vendorIDs, storeIDs []int, isAsync bool) (err error) {
|
||||||
curSnapshotAt := getCurrentSnapshotAt(time.Now())
|
curSnapshotAt := getCurrentSnapshotAt(time.Now())
|
||||||
|
prevSnapshotAt := getCurrentSnapshotAt(curSnapshotAt.Add(-1 * time.Second))
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
var curSnapshotList, prevSnapshotList []*model.VendorStoreSnapshot
|
var curSnapshotList, prevSnapshotList []*model.VendorStoreSnapshot
|
||||||
task := tasksch.NewSeqTask("SaveAndSendAlarmVendorSnapshot", ctx,
|
task := tasksch.NewSeqTask("SaveAndSendAlarmVendorSnapshot", ctx,
|
||||||
@@ -1664,7 +1668,7 @@ func SaveAndSendAlarmVendorSnapshot(ctx *jxcontext.Context, vendorIDs, storeIDs
|
|||||||
case 1:
|
case 1:
|
||||||
err = SaveStoresVendorSnapshot(db, curSnapshotAt, curSnapshotList)
|
err = SaveStoresVendorSnapshot(db, curSnapshotAt, curSnapshotList)
|
||||||
case 2:
|
case 2:
|
||||||
prevSnapshotList, err = dao.GetVendorStoreSnapshot(db, curSnapshotAt)
|
prevSnapshotList, err = dao.GetVendorStoreSnapshot(db, prevSnapshotAt)
|
||||||
case 3:
|
case 3:
|
||||||
err = SendAlarmVendorSnapshot(ctx, task, prevSnapshotList, curSnapshotList)
|
err = SendAlarmVendorSnapshot(ctx, task, prevSnapshotList, curSnapshotList)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1280,7 +1280,7 @@ func getSkuSaleStatus(inSkuBind *StoreSkuBindSkuInfo, skuBindInfo *StoreSkuBindI
|
|||||||
}
|
}
|
||||||
|
|
||||||
// todo 应该用updateStoresSkusWithoutSync实现
|
// todo 应该用updateStoresSkusWithoutSync实现
|
||||||
func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBindSkuInfos []*StoreSkuBindSkuInfo, userName string) (needSyncSkus []int, err error) {
|
func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBindSkuInfos []*StoreSkuBindSkuInfo, autoSaleTime time.Time, userName string) (needSyncSkus []int, err error) {
|
||||||
var num int64
|
var num int64
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
needSyncIDMap := make(map[int]int)
|
needSyncIDMap := make(map[int]int)
|
||||||
@@ -1310,14 +1310,19 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind
|
|||||||
} else {
|
} else {
|
||||||
skuBind.Status = model.StoreSkuBindStatusDontSale
|
skuBind.Status = model.StoreSkuBindStatusDontSale
|
||||||
}
|
}
|
||||||
if num, err = dao.UpdateEntityLogically(db, skuBind, map[string]interface{}{
|
kvs := map[string]interface{}{
|
||||||
model.FieldStatus: skuBind.Status,
|
model.FieldStatus: skuBind.Status,
|
||||||
model.FieldJdSyncStatus: skuBind.JdSyncStatus | model.SyncFlagSaleMask,
|
model.FieldJdSyncStatus: skuBind.JdSyncStatus | model.SyncFlagSaleMask,
|
||||||
model.FieldEbaiSyncStatus: skuBind.EbaiSyncStatus | model.SyncFlagSaleMask,
|
model.FieldEbaiSyncStatus: skuBind.EbaiSyncStatus | model.SyncFlagSaleMask,
|
||||||
model.FieldMtwmSyncStatus: skuBind.MtwmSyncStatus | model.SyncFlagSaleMask,
|
model.FieldMtwmSyncStatus: skuBind.MtwmSyncStatus | model.SyncFlagSaleMask,
|
||||||
model.FieldElmSyncStatus: skuBind.ElmSyncStatus | model.SyncFlagSaleMask,
|
model.FieldElmSyncStatus: skuBind.ElmSyncStatus | model.SyncFlagSaleMask,
|
||||||
model.FieldWscSyncStatus: skuBind.WscSyncStatus | model.SyncFlagSaleMask,
|
model.FieldWscSyncStatus: skuBind.WscSyncStatus | model.SyncFlagSaleMask,
|
||||||
}, userName, nil); err != nil {
|
}
|
||||||
|
// if utils.IsTimeZero(autoSaleTime) || skuBind.Status == model.SkuStatusNormal {
|
||||||
|
// autoSaleTime = utils.DefaultTimeValue
|
||||||
|
// }
|
||||||
|
// kvs["AutoSaleAt"] = autoSaleTime
|
||||||
|
if num, err = dao.UpdateEntityLogically(db, skuBind, kvs, userName, nil); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -1342,13 +1347,13 @@ func uniqueStoreSkuBind(skuBindSkuInfos []*StoreSkuBindSkuInfo) (outSkuBindSkuIn
|
|||||||
return outSkuBindSkuInfos
|
return outSkuBindSkuInfos
|
||||||
}
|
}
|
||||||
|
|
||||||
func UpdateStoresSkusSale(ctx *jxcontext.Context, storeIDs []int, skuBindSkuInfos []*StoreSkuBindSkuInfo, userName string, isAsync, isContinueWhenError bool) (hint string, err error) {
|
func UpdateStoresSkusSale(ctx *jxcontext.Context, storeIDs []int, skuBindSkuInfos []*StoreSkuBindSkuInfo, autoSaleTime time.Time, userName string, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||||
storeIDs = uniqueStoreIDs(storeIDs)
|
storeIDs = uniqueStoreIDs(storeIDs)
|
||||||
skuBindSkuInfos = uniqueStoreSkuBind(skuBindSkuInfos)
|
skuBindSkuInfos = uniqueStoreSkuBind(skuBindSkuInfos)
|
||||||
|
|
||||||
var num int64
|
var num int64
|
||||||
for _, storeID := range storeIDs {
|
for _, storeID := range storeIDs {
|
||||||
skuIDs, err2 := updateStoreSkusSaleWithoutSync(ctx, storeID, skuBindSkuInfos, userName)
|
skuIDs, err2 := updateStoreSkusSaleWithoutSync(ctx, storeID, skuBindSkuInfos, autoSaleTime, userName)
|
||||||
if err = err2; err != nil {
|
if err = err2; err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
@@ -2171,3 +2176,37 @@ func GetMissingStoreSkuFromOrder(ctx *jxcontext.Context, fromTime time.Time) (mi
|
|||||||
}
|
}
|
||||||
return missingList, err
|
return missingList, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func AutoSaleStoreSku(ctx *jxcontext.Context, storeIDs []int) (err error) {
|
||||||
|
// db := dao.GetDB()
|
||||||
|
// storeSkuList, err := dao.GetAutoSaleStoreSku(db, storeIDs)
|
||||||
|
// if err != nil {
|
||||||
|
// return err
|
||||||
|
// }
|
||||||
|
// storeSkuMap := make(map[int][]*model.StoreSkuBind)
|
||||||
|
// for _, v := range storeSkuList {
|
||||||
|
// storeSkuMap[v.StoreID] = append(storeSkuMap[v.StoreID], v)
|
||||||
|
// }
|
||||||
|
// now := time.Now()
|
||||||
|
// for storeID, storeSkuList := range storeSkuMap {
|
||||||
|
// var skuIDs []int
|
||||||
|
// for _, storeSku := range storeSkuList {
|
||||||
|
// if now.Sub(storeSku.AutoSaleAt) > 0 {
|
||||||
|
// storeSku.AutoSaleAt = utils.DefaultTimeValue
|
||||||
|
// if storeSku.Status != model.SkuStatusNormal {
|
||||||
|
// storeSku.Status = model.SkuStatusNormal
|
||||||
|
// skuIDs = append(skuIDs, storeSku.SkuID)
|
||||||
|
// }
|
||||||
|
// if _, err = dao.UpdateEntity(db, storeSku, "AutoSaleAt", model.FieldStatus); err != nil {
|
||||||
|
// return err
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// if len(skuIDs) > 0 {
|
||||||
|
// if _, err = CurVendorSync.SyncStoresSkus(ctx, db, nil, []int{storeID}, skuIDs, false, true, true); err != nil {
|
||||||
|
// return err
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|||||||
@@ -27,3 +27,9 @@ func TestSendAlarmVendorSnapshot(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestUpdateVendorStoreStatusBySnapshot(t *testing.T) {
|
||||||
|
db := dao.GetDB()
|
||||||
|
curSnapshotList, _ := dao.GetVendorStoreSnapshot(db, utils.Str2Time("2019-07-30 08:00:00"))
|
||||||
|
updateVendorStoreStatusBySnapshot(db, curSnapshotList)
|
||||||
|
}
|
||||||
|
|||||||
@@ -44,6 +44,12 @@ var (
|
|||||||
updateActStatusTimeList = []string{
|
updateActStatusTimeList = []string{
|
||||||
"00:01:00",
|
"00:01:00",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
autoEnableStoreSkuTimeList = []string{
|
||||||
|
"7:00:00",
|
||||||
|
"14:00:00",
|
||||||
|
"22:00:00",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
func Init() {
|
func Init() {
|
||||||
@@ -70,6 +76,10 @@ func Init() {
|
|||||||
ScheduleTimerFunc(func() {
|
ScheduleTimerFunc(func() {
|
||||||
dao.UpdateActStatusByTime(dao.GetDB(), time.Now().Add(-48*time.Hour))
|
dao.UpdateActStatusByTime(dao.GetDB(), time.Now().Add(-48*time.Hour))
|
||||||
}, updateActStatusTimeList)
|
}, updateActStatusTimeList)
|
||||||
|
|
||||||
|
// ScheduleTimerFunc(func() {
|
||||||
|
// cms.AutoSaleStoreSku(jxcontext.AdminCtx, nil)
|
||||||
|
// }, autoEnableStoreSkuTimeList)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -285,17 +285,12 @@ func FormalizeStoreStatus(db *DaoDB, storeID, storeStatus int) (err error) {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetVendorStoreSnapshot(db *DaoDB, excludeSnapshotAt time.Time) (snapshotList []*model.VendorStoreSnapshot, err error) {
|
func GetVendorStoreSnapshot(db *DaoDB, snapshotAt time.Time) (snapshotList []*model.VendorStoreSnapshot, err error) {
|
||||||
sql := `
|
sql := `
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM vendor_store_snapshot t1
|
FROM vendor_store_snapshot t1
|
||||||
WHERE t1.snapshot_at = (
|
WHERE t1.snapshot_at = ?`
|
||||||
SELECT MAX(snapshot_at) snapshot_at
|
err = GetRows(db, &snapshotList, sql, snapshotAt)
|
||||||
FROM vendor_store_snapshot
|
|
||||||
WHERE snapshot_at > ? AND snapshot_at <> ?
|
|
||||||
)
|
|
||||||
`
|
|
||||||
err = GetRows(db, &snapshotList, sql, time.Now().Add(-48*time.Hour), excludeSnapshotAt)
|
|
||||||
return snapshotList, err
|
return snapshotList, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -480,3 +480,20 @@ func GetMissingStoreSkuFromOrder(db *DaoDB, storeIDs []int, fromTime time.Time)
|
|||||||
err = GetRows(db, &storeSkuList, sql, sqlParams...)
|
err = GetRows(db, &storeSkuList, sql, sqlParams...)
|
||||||
return storeSkuList, err
|
return storeSkuList, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetAutoSaleStoreSku(db *DaoDB, storeIDs []int) (storeSkuList []*model.StoreSkuBind, err error) {
|
||||||
|
sql := `
|
||||||
|
SELECT *
|
||||||
|
FROM store_sku_bind t1
|
||||||
|
WHERE t1.deleted_at = ? AND t1.auto_sale_at <> ?`
|
||||||
|
sqlParams := []interface{}{
|
||||||
|
utils.DefaultTimeValue,
|
||||||
|
utils.DefaultTimeValue,
|
||||||
|
}
|
||||||
|
if len(storeIDs) > 0 {
|
||||||
|
sql += " AND t1.store_id IN (" + GenQuestionMarks(len(storeIDs)) + ")"
|
||||||
|
sqlParams = append(sqlParams, storeIDs)
|
||||||
|
}
|
||||||
|
err = GetRows(db, &storeSkuList, sql, sqlParams...)
|
||||||
|
return storeSkuList, err
|
||||||
|
}
|
||||||
|
|||||||
@@ -103,6 +103,8 @@ type StoreSkuBind struct {
|
|||||||
EbaiSyncStatus int8 `orm:"default(2)"`
|
EbaiSyncStatus int8 `orm:"default(2)"`
|
||||||
MtwmSyncStatus int8 `orm:"default(2)"`
|
MtwmSyncStatus int8 `orm:"default(2)"`
|
||||||
WscSyncStatus int8 `orm:"default(2)"`
|
WscSyncStatus int8 `orm:"default(2)"`
|
||||||
|
|
||||||
|
// AutoSaleAt time.Time `orm:"type(datetime);null" json:"autoSaleAt"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*StoreSkuBind) TableUnique() [][]string {
|
func (*StoreSkuBind) TableUnique() [][]string {
|
||||||
|
|||||||
@@ -48,3 +48,8 @@ type IPurchasePlatformOrderHandler interface {
|
|||||||
// // 确认收到退货
|
// // 确认收到退货
|
||||||
ConfirmReceivedReturnGoods(ctx *jxcontext.Context, order *model.AfsOrder) (err error)
|
ConfirmReceivedReturnGoods(ctx *jxcontext.Context, order *model.AfsOrder) (err error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type IUpdateWaybillTip interface {
|
||||||
|
// 添加快递小费,这个不是递增的,最后一次操作会覆盖之前的设置,但只能增加,不能减少,且tipFee只能为100的倍数
|
||||||
|
UpdateWaybillTip(ctx *jxcontext.Context, order *model.GoodsOrder, tipFee int64) (err error)
|
||||||
|
}
|
||||||
|
|||||||
@@ -342,7 +342,7 @@ func getActFromJD(promotionID string) (act *model.Act2, actStoreSkuList []*model
|
|||||||
act.BeginAt = result.BeginTime.GoTime()
|
act.BeginAt = result.BeginTime.GoTime()
|
||||||
}
|
}
|
||||||
if utils.IsTimeZero(act.EndAt) {
|
if utils.IsTimeZero(act.EndAt) {
|
||||||
act.BeginAt = result.EndTime.GoTime()
|
act.EndAt = result.EndTime.GoTime().Add(24*time.Hour - 1*time.Second)
|
||||||
}
|
}
|
||||||
if result.SkuResultList[0].LimitPin == 1 || result.SkuResultList[0].LimitDevice == 1 {
|
if result.SkuResultList[0].LimitPin == 1 || result.SkuResultList[0].LimitDevice == 1 {
|
||||||
act.LimitUser = 1
|
act.LimitUser = 1
|
||||||
|
|||||||
@@ -425,15 +425,15 @@ func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, parentTask tasksch.
|
|||||||
}
|
}
|
||||||
fromDate := utils.Time2Date(queryDate)
|
fromDate := utils.Time2Date(queryDate)
|
||||||
toDate := fromDate.Add(24*time.Hour - 1)
|
toDate := fromDate.Add(24*time.Hour - 1)
|
||||||
params := map[string]interface{}{
|
queryParam := &jdapi.OrderQueryParam{
|
||||||
"orderPurchaseTime_begin": utils.Time2Str(fromDate),
|
OrderPurchaseTimeBegin: utils.Time2Str(fromDate),
|
||||||
"orderPurchaseTime_end": utils.Time2Str(toDate),
|
OrderPurchaseTimeEnd: utils.Time2Str(toDate),
|
||||||
jdapi.KeyPageNo: jdapi.AllPage,
|
PageNo: jdapi.AllPage,
|
||||||
}
|
}
|
||||||
if vendorStoreID != "" {
|
if vendorStoreID != "" {
|
||||||
params["deliveryStationNo"] = vendorStoreID
|
queryParam.DeliveryStationNo = vendorStoreID
|
||||||
}
|
}
|
||||||
orderList, _, err := api.JdAPI.OrderQuery2(params)
|
orderList, _, err := api.JdAPI.OrderQuery2(queryParam)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
vendorOrderIDs = make([]string, len(orderList))
|
vendorOrderIDs = make([]string, len(orderList))
|
||||||
for k, v := range orderList {
|
for k, v := range orderList {
|
||||||
@@ -442,3 +442,16 @@ func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, parentTask tasksch.
|
|||||||
}
|
}
|
||||||
return vendorOrderIDs, err
|
return vendorOrderIDs, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *PurchaseHandler) UpdateWaybillTip(ctx *jxcontext.Context, order *model.GoodsOrder, tipFee int64) (err error) {
|
||||||
|
orderInfo, err := api.JdAPI.QuerySingleOrder2(order.VendorOrderID)
|
||||||
|
if err == nil {
|
||||||
|
tip2Add := int(tipFee) - orderInfo.Tips
|
||||||
|
if tip2Add > 0 {
|
||||||
|
if globals.EnableJdStoreWrite {
|
||||||
|
err = api.JdAPI.OrderAddTips(order.VendorOrderID, tip2Add, ctx.GetUserName())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|||||||
@@ -575,3 +575,10 @@ func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, parentTask tasksch.
|
|||||||
}
|
}
|
||||||
return vendorOrderIDs, err
|
return vendorOrderIDs, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *PurchaseHandler) UpdateWaybillTip(ctx *jxcontext.Context, order *model.GoodsOrder, tipFee int64) (err error) {
|
||||||
|
if globals.EnableMtwmStoreWrite {
|
||||||
|
err = api.MtwmAPI.OrderUpdateTip(utils.Str2Int64(order.VendorOrderID), jxutils.IntPrice2Standard(tipFee))
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|||||||
@@ -265,6 +265,7 @@ func (c *StoreSkuController) CopyStoreSkus() {
|
|||||||
// @Param storeIDs formData string true "门店ID列表"
|
// @Param storeIDs formData string true "门店ID列表"
|
||||||
// @Param payload formData string true "json数据,StoreSkuBindSkuInfo对象数组"
|
// @Param payload formData string true "json数据,StoreSkuBindSkuInfo对象数组"
|
||||||
// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false"
|
// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false"
|
||||||
|
// @Param autoSaleAt formData string false "自动可售时间"
|
||||||
// @Param isAsync formData bool false "是否异步操作"
|
// @Param isAsync formData bool false "是否异步操作"
|
||||||
// @Success 200 {object} controllers.CallResult
|
// @Success 200 {object} controllers.CallResult
|
||||||
// @Failure 200 {object} controllers.CallResult
|
// @Failure 200 {object} controllers.CallResult
|
||||||
@@ -276,7 +277,11 @@ func (c *StoreSkuController) UpdateStoresSkusSale() {
|
|||||||
if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.Payload, &skuBindSkuInfos); err != nil {
|
if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.Payload, &skuBindSkuInfos); err != nil {
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
}
|
}
|
||||||
retVal, err = cms.UpdateStoresSkusSale(params.Ctx, storeIDs, skuBindSkuInfos, params.Ctx.GetUserName(), params.IsAsync, params.IsContinueWhenError)
|
timeList, err := jxutils.BatchStr2Time(params.AutoSaleAt)
|
||||||
|
if err != nil {
|
||||||
|
return retVal, "", err
|
||||||
|
}
|
||||||
|
retVal, err = cms.UpdateStoresSkusSale(params.Ctx, storeIDs, skuBindSkuInfos, timeList[0], params.Ctx.GetUserName(), params.IsAsync, params.IsContinueWhenError)
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -266,6 +266,7 @@ func (c *OrderController) ExportMTWaybills() {
|
|||||||
// @Param keyword query string false "查询关键字"
|
// @Param keyword query string false "查询关键字"
|
||||||
// @Param fromDate query string false "开始日期(包含),格式(2006-01-02),如果订单号为空此项必须要求"
|
// @Param fromDate query string false "开始日期(包含),格式(2006-01-02),如果订单号为空此项必须要求"
|
||||||
// @Param toDate query string false "结束日期(包含),格式(2006-01-02),如果订单号为空此项必须要求"
|
// @Param toDate query string false "结束日期(包含),格式(2006-01-02),如果订单号为空此项必须要求"
|
||||||
|
// @Param isDateFinish query bool false "是否fromDate与toDate指的是订单结束日期,缺省不是"
|
||||||
// @Param vendorIDs query string false "订单所属厂商列表[1,2,3],缺省不限制"
|
// @Param vendorIDs query string false "订单所属厂商列表[1,2,3],缺省不限制"
|
||||||
// @Param waybillVendorIDs query string false "承运人所属厂商列表[1,2,3],缺省不限制"
|
// @Param waybillVendorIDs query string false "承运人所属厂商列表[1,2,3],缺省不限制"
|
||||||
// @Param storeIDs query string false "京西门店ID列表[1,2,3],缺省不限制"
|
// @Param storeIDs query string false "京西门店ID列表[1,2,3],缺省不限制"
|
||||||
@@ -279,7 +280,7 @@ func (c *OrderController) ExportMTWaybills() {
|
|||||||
// @router /GetOrders [get]
|
// @router /GetOrders [get]
|
||||||
func (c *OrderController) GetOrders() {
|
func (c *OrderController) GetOrders() {
|
||||||
c.callGetOrders(func(params *tOrderGetOrdersParams) (retVal interface{}, errCode string, err error) {
|
c.callGetOrders(func(params *tOrderGetOrdersParams) (retVal interface{}, errCode string, err error) {
|
||||||
retVal, err = orderman.FixedOrderManager.GetOrders(params.Ctx, params.FromDate, params.ToDate, params.MapData, params.Offset, params.PageSize)
|
retVal, err = orderman.FixedOrderManager.GetOrders(params.Ctx, params.FromDate, params.ToDate, params.IsDateFinish, params.MapData, params.Offset, params.PageSize)
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user