Skip to content

运营时间优化

运营时间配置

设计初衷是为了方便用户去对订单做筛选。 考虑到如果手动去根据下单时间或者收货时间去过滤,虽然也可以达到相同的效果, 但是相比之下还是麻烦了一些,用户每次都需要去点选时间。 所以其实运营时间配置本质上就是一个快捷入口,可以理解为提前设置好的过滤条件。

目前我们的运营时间配置里还包含下单时间限制收货时间限制等,以及配送时间设置。

所以其实我们可以把时间配置分两部分看,一部分是限制,一部分是过滤, 限制部分可以继续保留,过滤部分可以做成每次过滤都计算出时间范围去过滤, 被过滤对象上不再绑定具体的时间配置。这样可以更灵活。

接口

station

/station/service_time

接口名: /station/service_time
Method: GET 获取站点服务时间配置
请求:
    station_id          O string    站点ID (默认当前登录站点)
    less                O bool      是否返回详细数据,为true时只返回名字和描述(true/false 默认false)
    id                  O string    时间配置id
    date_detail         O bool      获取服务时间的具体下单时间(true/false 默认false)
    cycle_days          O int       间隔周期数,默认0
    distribute_center   O string    是否为中央调度中心(yes/no)这个已经无用
    all_time_config     O int       是否返回 station 下的所有时间配置
响应:
    code M int 0为成功,其它为失败
    msg M string 错误提示信息
    data M list 返回服务时间信息
示例:
    /station/service_time?id=ST001
    {
        "_id" : "ST001",
        "order_time_limit" : { 下单时间限制
            "e_span_time" : 0, 跨天数
            "start" : "06:00",开始时间
            "end" : "23:00"截止时间
        },
        "type" : 0,时间配置类型(0默认,1普通,2预售)
        "desc" : "默认服务时间",
        "final_distribute_time" : "06:00",最晚配送时间
        "service_time_creator" : "T001",创建站点
        "task_begin_time" : "06:00",任务开始时间,根据这个时间来决定分拣排车等位置拉取的是哪个周期的订单
        "name" : "默认服务时间",
        "final_distribute_time_span" : 1,最晚配送时间和下单时间比的跨天数
        "receive_time_limit" : {收货时间限制
            "e_span_time" : 1,//结束时间跟下单时间相比跨几天
            "start" : "06:00", 收货时间的开始时间
            "s_span_time" : 1,//开始时间跟下单时间相比跨几天
            "end" : "19:00", 收货时间的结束时间
            "receiveTimeSpan" : "30"//收货时间选项的时间间隔,单位分钟
            "receiveEndSpan" : 1//收货时间的跨天数
        }
    }

    /station/service_time?id=ST001&date_detail=true
    [{
        text: "2月16日06:00~2月16日23:00的订单",
        cycle_start_time: "2017-02-16-06-00-00"
    }]

    /station/service_time?id=&less=1
    [{
        can_be_modified: false, 如果是当前站点创建的就是true,可以被修改
        desc: "默认服务时间",
        name: "默认服务时间",
        id: "ST001"
    }]
    /station/service_time
    [{
        "_id" : "ST001",
        "order_time_limit" : {
            "e_span_time" : 0,
            "start" : "06:00",
            "end" : "23:00"
        },
        "type" : 0,
        "desc" : "默认服务时间",
        "final_distribute_time" : "06:00",
        "service_time_creator" : "T001",
        "task_begin_time" : "06:00",
        "name" : "默认服务时间",
        "final_distribute_time_span" : 1,
        "receive_time_limit" : {
            "e_span_time" : 1,
            "receiveTimeSpan" : "30",
            "start" : "06:00",
            "end" : "12:00",
            "s_span_time" : 1
        }
    },
    {
        "_id" : "ST001",
        "order_time_limit" : {
            "e_span_time" : 0,
            "start" : "06:00",
            "end" : "23:00"
        },
        "type" : 0,
        "desc" : "默认服务时间",
        "final_distribute_time" : "06:00",
        "service_time_creator" : "T001",
        "task_begin_time" : "06:00",
        "name" : "默认服务时间",
        "final_distribute_time_span" : 1,
        "receive_time_limit" : {
            "e_span_time" : 1,
            "receiveTimeSpan" : "30",
            "start" : "06:00",
            "end" : "12:00",
            "s_span_time" : 1
        }
    }]
逻辑:
    根据参数不同有四种不同的返回格式
    参数带id时获取对应id的时间配置数据,如果date_detail为true,则返回具体下单时间,否则,直接返回时间配置源数据
    不带id的时候,拉站点下的时间配置,如果带了 all_time_config,就把销售单中的时间配置也拉出来,
    less 为 true 的时候,返回少量信息,false 的时候,返回全量信息

Method: POST 修改站点服务时间配置
请求:
    name                        O string    服务时间名称
    id                          O string    时间配置id (不带表示创建)
    receive_time_limit          O dict      收货时间限制
    order_time_limit            O dict      下单时间限制
    final_distribute_time       O str       最晚出库时间
    final_distribute_time_span  O int       最晚出库时间间隔
    desc                        O string    描述
响应:
    code M int 0为成功,其它为失败
    msg M string 错误提示信息
逻辑:
    参数带id时编辑时间配置,否则创建

数据库

service_time[mongo]             销售单服务时间的配置

"_id" : "ST011",
"name" : "鲜丰服务任务",
"type" : 1,// 时间配置类型,0为默认时间配置,只有ST001是这个值,1为正常时间配置,2是预售
"service_time_creator" : "T1176",//时间配置的创建站点
"order_time_limit" : {//可下单时间段
    "e_span_time" : 1,//结束时间相对开始时间跨几天
    "start" : "18:30", 开始时间
    "end" : "16:30" 截止时间
},
"final_distribute_time" : "19:00",//最晚配送时间,过了这个时间订单状态就刷为正在配送
"final_distribute_time_span" : 1//最晚配送时间跟下单时间比跨几天
"receive_time_limit" : {//收货时间可选时间段
    "e_span_time" : 1,//结束时间跟下单时间相比跨几天
    "start" : "06:00", 收货时间的开始时间
    "s_span_time" : 1,//开始时间跟下单时间相比跨几天
    "end" : "19:00", 收货时间的结束时间
    "receiveTimeSpan" : "30"//收货时间选项的时间间隔,单位分钟
    "receiveEndSpan" : 1//收货时间的跨天数
},
"desc" : "",
"out_stock_interval": 10 自动刷出库和最晚配送时间的间隔,默认是10h
"task_begin_time" : "23:30",//任务开始时间,根据这个时间来决定分拣排车等位置拉取的是哪个周期的订单

图解

WX20181112-110051@2x