[关闭]
@Wahson 2019-07-10T09:34:14.000000Z 字数 5878 阅读 550

小程序需求


需求规则及任务拆分

实盘数据维护

  1. 运营人员录入实盘,包括sku, 价格, 库存,有效期,供应商及提货仓库信息可根据实际情况判断是否录入(已经确认采购信息时,应录入)
  2. 录入产品时有2中方式,一种是选择已录的采购单,此时发货方式根据采购单的配送方式决定,维护供应商、采购子单,录入提货仓库,记为资源单,一种是手动录入产品信息,可以不填供应商和提货仓库,配送方式自选,记为预售订单。查询采购子单条件为未绑定销售子单。
  3. 运营系统实盘数据查看,修改
  4. akka 中的actor 会订阅 实盘报价表的insert和update的binlog, 完成数据实时推送到订阅该产品的公司客户的小程序上
  5. 报价页面显示的报价为用户关注牌号的最新报价,实盘显示在前,普通报价显示在后

任务: 前端 20h 后端 28h

实盘下单

  1. 小程序点击下单,用户选择收货地址,付款方式,数量,提交订单,系统生成实盘订单,冻结相应的库存,按照实盘报价的类型不同,订单有不同的流程
  2. 如果实盘报价是资源订单,则订单自动绑定资源订单的供应商,提货仓库,采购子单等信息,自动录入销售合同,接着运营系统走后续审批、物流的流程
  3. 如果实盘报价时预售订单,自动创建订单,销售合同后,由采购确认采购信息,创建采购单,审批,然后销售员修改合同(可选)、走后续审批、物流等流程
  4. 订单审批通过后,冻结库存转为已销售库存,订单审批不通过或者取消时,释放冻结的库存
  5. 订单审批通过后,合同会通过公众号发送给客户,同时发送小程序订单详情页面的链接,引导用户上传回签合同
  6. 订单发货后,微信消息通知客户,同时发送小程序订单详情页面链接,引导用户拍照上传签收单
  7. 未来引入电子发票,开票后直接发送到对应客户公众号,或到小程序上查看、下载

任务:

询盘订单

  1. 用户填写付款方式,数量后提交采购意向,系统根据报价信息生成订单记录, 类型记为询盘订单,消息通知对应的交易员进行跟进处理,根据和客户沟通后的结果按需修改订单的信息(付款方式,发货方式,采购数量,合同单价等),录入合同,走后续系统流程
  2. 如果客户未谈妥,交易员取消询盘订单
  3. 用户不能对同一报价多次提交采购意向,除非询盘已经取消

任务:

我的牌号

  1. 查询公司已订阅牌号列表
  2. 模糊搜索牌号,查询列表中已订阅的牌号标记为已关注,没有关注的点击关注按钮进行关注
  3. 新关注的牌号,即可在报价列表看到最新的实盘或报价
  4. 取消关注

任务: 前端 4h 后端 6h

我的(个人中心)

  1. 企业信息可进行解绑、修改联系人和联系方式
  2. 收货地址新增,修改,删除
  3. 已认证用户隐藏资质认证菜单,未认证用户填写公司名称,联系人和联系方式进行认证,提交认证后,消息提醒管理员进行用户绑定(先自动绑定销售员,后续再按需调整认领关系???)
  4. 帮助中心,增加一些用户使用手册,注意事项等,具体内容可有业务提供
  5. 关于万博,万博的一些介绍

任务: 前端 16h 后端 12h

订单系统流程相关

服务序列图

Created with Raphaël 2.1.2小程序调用dapeng小程序小程序wanboWechatServicewanboWechatServicesoasoa调用服务api中转responseresponse
Created with Raphaël 2.1.2小程序调用服务小程序小程序wanboWechatServicewanboWechatServicewechat(soa)wechat(soa)微信服务器微信服务器公众号公众号调用服务getJsTicket/registerhttps://wxApi/responseresponsesetCookieresponsehttps://wxApi/sendMsg推送消息
Created with Raphaël 2.1.2小程序报价拉取、推送(基于websocket,akka)小程序小程序wanboWechatServicewanboWechatServicews://请求报价responseakkaws://推送报价

数据模型

  1. use order_db;
  2. create table firm_offer(
  3. id bigint not null primary key comment '主键',
  4. firm_type smallint(3) default 1 not null comment '实盘类型, 11:资源订单(resource_order);20:预售订单(pre_sale_order)',
  5. delivery_type smallint(2) NOT NULL COMMENT '送货方式, 20:供应商配送(supplier_deliver);30:万博配送(wanbo_deliver)',
  6. purchase_item_id bigint default null comment '资源单时, 关联的采购子单',
  7. price decimal(13, 2) default 0.00 not null comment '采购价',
  8. weight decimal(8, 3) default 0.000 not null comment '库存数量,weight = available_weight + frozon_weight + sold_weight',
  9. available_weight decimal(8, 3) default 0.000 not null comment '可用的库存数量',
  10. frozen_weight decimal(8, 3) default 0.000 not null comment '冻结的库存数量',
  11. sold_weight decimal(8, 3) default 0.000 not null comment '已销售的数量',
  12. effective_start_at timestamp default current_timestamp() not null comment '生效期开始',
  13. effective_end_at timestamp not null comment '生效期结束',
  14. product_id int not null comment '产品id',
  15. category varchar(12) not null comment '产品分类',
  16. designation varchar(32) not null comment '产品牌号',
  17. manufacturer_id int not null comment '生产商ID',
  18. manufacturer_name varchar(32) not null comment '生产商名称',
  19. -- 考虑如果货源来自多个供应商或仓库,以下字段则不能在此表维护
  20. supplier_company_id int default null comment '供应商id',
  21. supplier_company_name varchar(32) default null comment '供应商名称',
  22. warehouse_id int default null comment '发货仓库id',
  23. warehouse_name varchar(32) default null comment '发货仓库名称',
  24. remark varchar(255) null comment '备注',
  25. created_at timestamp default current_timestamp() not null,
  26. created_by int default 0 not null,
  27. updated_at timestamp default current_timestamp() not null on update current_timestamp(),
  28. updated_by int default 0 not null
  29. ) engine = innoDb charset = utf8mb4 comment '实盘报价表';
  30. -- 增加订单类型 30:询盘单(consult_order)
  31. -- 增加字段订单种类、报价记录id
  32. alter table `order`
  33. modify column `type` smallint(6) NOT NULL COMMENT '订单类型, 10:非资源订单(non_resource_order);11:资源订单(resource_order);20:预售订单(pre_sale_order);30:询盘单(consult_order)',
  34. add column class smallint(3) NOT NULL default 1 COMMENNT '订单种类, 1:自营(self_support);2:一口价(fixed_price);3:团购(group_buying)',
  35. add column offer_id bigint default null COMMENNT '关联的报价记录id,firm_offer.id / product_offers.id';
  1. drop database if exists wechat_db;
  2. create database if not exists wechat_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  3. use wechat_db;
  4. create table if not exists app
  5. (
  6. id int not null,
  7. wx_app_id varchar(64) NOT NULL COMMENT '小程序/公众号 AppID',
  8. remark varchar(256) null comment '备注',
  9. primary key (id),
  10. unique key uqx_wx_app_id (wx_app_id)
  11. ) engine = innoDb
  12. charset = utf8mb4 COMMENT 'App表';
  13. create table if not exists app_info
  14. (
  15. app_id int NOT NULL COMMENT 'app.id',
  16. info_type int not null comment '信息类型, 1:令牌(token);2:票据(ticket)',
  17. info_data varchar(256) not null comment '值',
  18. info_expire bigint default -1 not null comment '过期时间, -1表示永不过期',
  19. unique key uqx_app_info_type (app_id, info_type)
  20. ) engine = innoDb
  21. charset = utf8mb4 COMMENT 'App缓存信息表';
  22. # 暂时可能只会有小程序用户信息
  23. create table if not exists user_info
  24. (
  25. id int(11) NOT NULL auto_increment,
  26. app_id int NOT NULL COMMENT 'app.id',
  27. openid varchar(64) NOT NULL COMMENT '用户的标识(小程序openId/公众号openid)',
  28. nickname varchar(64) NULL COMMENT '用户的昵称(小程序nickName/公众号nickname)',
  29. gender int default 0 not null comment '用户的性别(小程序gender/公众号sex), 0:未知(unknown),1:男(male),2:女(female)',
  30. city varchar(20) default '' not null comment '用户所在城市',
  31. province varchar(20) default '' not null comment '用户所在省份',
  32. country varchar(20) default '' not null comment '用户所在国家',
  33. avatar_url varchar(256) default '' not null comment '用户头像url(小程序avatarUrl/公众号headimgurl)',
  34. union_id varchar(64) null comment '标识同一开发主体下的公众号,小程序等(小程序unionId/公众号unionid)',
  35. -- subscribe int default 0 not null comment '用户是否订阅该公众号标识(公众号), 0:未关注; 1:已关注',
  36. -- `language` varchar(64) default '' not null comment '用户的语言,简体中文为zh_CN(公众号)',
  37. -- subscribe_time timestamp default current_timestamp not null comment '用户关注时间,为时间戳。如果用户曾多次关注,则取最后关注时间',
  38. -- remark varchar(256) null comment '公众号运营者对粉丝的备注',
  39. -- groupid int default 0 not null comment '用户所在的分组ID',
  40. -- tagid_list varchar(256) default '' not null comment '用户被打上的标签ID列表',
  41. created_at timestamp NOT NULL default CURRENT_TIMESTAMP,
  42. updated_at timestamp NOT NULL default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  43. PRIMARY KEY (id),
  44. unique key uqx_app_openid (app_id, openid)
  45. ) engine = innoDb
  46. charset = utf8mb4 COMMENT '微信用户信息表';
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注