Skip to content

station 商品及订单操作日志查询

mysql数据库

tbl_operate_log    # 订单操作operate日志
    id                  bigint
    station_id          varchar(20) not null
    group_id            int not null                方便以后查询
    change_url          varchar(50) not null        修改接口
    op_id               varchar(20) not null        索引index,不同的log_type对应不同的含义
    search_text_1       varchar(40) not null        log_type为3,2,表示修改前商品name   
    search_text_2       varchar(40) not null        log_type为3,2,表示修改前商品name
    search_text_3       varchar(40) not null        备用字段
    search_text_4       varchar(40) not null        备用字段
    search_text_5       varchar(40) not null        备用字段
    op_type             tinyint  not null           操作类型,1:新建 2:更新 3:删除
    op_source           tinyint  not null           操作来源:1:单条操作 2:批量操作
    op_user             varchar(35) not null        操作用户
    log_type            tinyint  not null           1:order,2:sku 3:spu
    create_time         datetime                    索引index
    op_after            json                        同下
    op_before           json   
        receive_begin_time      str
        receive_end_time        str
        status                  int
        details [
            {
                sku_id              str  
                sku_name            str
                quantity            int
                real_quantity       int
                sale_unit_name      str             销售单位
                sale_price          int             分 销售单价
                total_item_price    int             分 下单金额
                remark              str             备注同订单里的spu_remark
                out_of_stock        int             0不缺,1缺货
                # 两个地方取值,优先取pad 
            },

        ]
--------------------------
        spu的详情
        name                    str                 名称
        category_id_1           str
        category_id_2           str
        alias                   str                 别名
        image                   str                 图片
        need_pesticide_detect   int                 是否显示检测报告 0:不需要1:需要
        p_type                  int                 商品类型1:本站,0通用
        desc                    str                 描述  
        std_unit_name           str                 基本单位

--------------------------

        sku的详情 
        name                    str                 名称
        outer_id                str                 自定义编码
        salemenu_id             str                 所在报价单
        std_sale_price          int                 单价(基本单位) 分
        sale_price              int                 单价(销售单位) 分
        sale_unit_name          str                 单位
        sale_ratio              int                 销售规格
        sale_num_least          int                 最小下单数  
        desc                    str                 商品描述  
        image                   str                 商品图片  
        is_weigh                int                 是否称重  
        state                   int                 销售状态   
        supplier_id             str                 供应商 
        purchase_spec_id        str                 采购规格  
        attrition_rate          int                 耗损比例    
        stock_type              int                 1:不限库存 2:设置库存 3:限制库存
        stocks                  int                 stock_type为2,和3,才有用     

设计思路

采用异步 处理方案,在涉及到修改接口的地方,查一遍修改前的数据,记录修改后的结果,在现有接口逻辑完成的最后,发送异步任务到队列,异步处理,如果失败了,其实问题也不大,只要保证取队列任务的地方 顺序处理就行。

接口

操作日志查询 列表

GET   op_log/list
请求参数:
op_start_date   date          M       操作开始时间
op_end_date     date          M       操作结束时间
log_type        int           M       查询type 1:order,2:sku和spu
search_text     str           O       order_id sku_id,spu_id,sku_name,spu_name
op_type         int           O       1:新建 2:更新 3:删除
page_obj        string        O       传递返回数据里的pagination,第一次不用传
limit           int           O       返回条数,默认20
reverse         bool          O       是否反向查询。1:是,0:不是

返回数据:
{
    "code": 0,
    "msg": "ok",
    "data": {
        "create_time": "2018-04-10 15:15:15", 操作时间
        "op_user": "lala",
        "modify": {
                "status": {"before":2,"after":5},
                "receive_end_time": {"before":....,"after":....},
                "details" :[{
                    "sku_id": D234,
                    "sku_name":{"before":"lksag","after":"asg"},
                }]            
            },
        "id": 12345,
        "op_id": "D2345",
        "log_type": 1,
        "op_type": 1,
        "in_query": false,
        "merchandise_name": "lakjsg" # sku或者spu的name
    },
    "pagination": {
        "page_obj": "",不用管
        "more": 1:还有数据,0:没有数据
    }    
}

操作日志查询 详情

GET   op_log/get
请求参数:
id         int          M       op操作id
返回数据:
{
    "code": 0,
    "msg": "ok",
    "data": {
        "id": 12345,
        "op_id": "",
        "create_time": "2018-04-10 15:15:15",
        "op_user": "lala",
        "op_source": 2,
        "log_type": 2,
        "modify":{
            "status": {"before":2,"after":5},
            "receive_end_time": {"before":....,"after":....},
            "details" :[{
                "sku_id": D234,
                "sku_name":{"before":"lksag","after":"asg"},
            }]
            其他字段和上面mysql写的差不多,后续补充。
        }
    },

}

以下是涉及到的 所需修改接口

  1. station/order/update/status/child_station 修改分仓订单状态
  2. station/order/set_status 修改状态
  3. station/order/update/status/preconfig 按预设数修改
  4. station/order/create 订单创建
  5. station/order/batch/create 批量创建订单
  6. station/order/edit 订单修改
  7. station/order/delete 删除订单
  8. station/order/edit_old 追加修改
  9. station/order/delete_old 删除订单
  10. station/order/batch_out_of_stock/update 缺货
  11. station/order/update_sku_price 批量修改单价
  12. product/batchsku/create 批量新建商品
  13. station/skuproducts/import/T4412/S4392/sku/ sku批量修改
  14. product/sku/import sku批量新建
  15. product/sku/update sku更新
  16. product/sku/delete sku删除
  17. product/sku_sale/create sku添加
  18. merchandise/spu/delete spu删除
  19. merchandise/spu/create spu创建
  20. merchandise/spu/update spu更新
  21. product/stocks/edit sku库存更新

开发8天,联调2天