精华内容
下载资源
问答
  • Git 实用技巧

    千人学习 2019-11-24 18:20:42
    为了让同学们可以利用碎片化时间来灵活学习,教程文章中大程度降低了上下文的依赖,让大家可以工作之余进行学习实战,并同时掌握里面涉及的Git不常见操作的相关知识,理解Git工具工作遇到的问题解决思路和...
  • 基于SSM的校园二手交易平台的设计实现

    万次阅读 多人点赞 2018-05-06 14:24:44
    PS: Java版本:1.7 数据库:MySQL 框架:Spring + Spring MVC + MyBatis ...版本管理工具:Maven 版本控制工具:GitHub 下载地址:https://download.csdn.net/download/wsk1103/10395604 一、设计概...

    基于SSM的校园二手交易平台

    完整的设计报告在后面

    喜欢就点一下star哟,谢谢亲的支持
    https://github.com/wsk1103/Used-Trading-Platform

    下载地址: https://download.csdn.net/download/wsk1103/13189870

    Java版本:1.8
    数据库:MySQL
    框架:Spring + Spring MVC + MyBatis
    服务器:Tomcat
    前端解析框架:Thymeleaf
    开发工具:Idea 2017
    版本管理工具:Maven
    版本控制工具:GitHub

    搭建数据库
    MySQL
    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/c2c
    username=root
    password=123456
    initiaSize=0
    maxActive=20
    maxIdle=20
    minIdle=1
    maxWait=60000

    先在数据中创建名为c2c的数据库,使用Navicat for MySQL运行 c2c.sql文件创建表和导入数据

    将图片解压到任意一个盘,然后配置Tomcat,将图片路径引用到本地配置的图片路径下。
    这里写图片描述
    设置访问路径
    在这里插入图片描述

    3.2 实现过程

    3.2.1 商品首页实现

    这里写图片描述

    这里写图片描述
    其他部分实现效果
    这里写图片描述
    这里写图片描述

    3.2.2 二手商城实现

    这里写图片描述
    商城商品展示
    这里写图片描述

    这里写图片描述
    这里写图片描述

    3.2.3 商品详情实现

    这里写图片描述
    留言
    这里写图片描述

    3.2.4 站内搜索引擎实现

    这里写图片描述
    搜索结果
    这里写图片描述

    3.2.5 发布商品实现

    这里写图片描述
    这里写图片描述

    这里写图片描述

    3.2.6 发布求购信息实现

    这里写图片描述

    3.2.7 个人信息页面实现

    这里写图片描述
    这里写图片描述

    3.2.8 我发布的商品实现

    这里写图片描述
    点击修改
    这里写图片描述

    3.2.9我发布的求购信息实现

    这里写图片描述
    这里写图片描述

    3.2.10购物车实现

    这里写图片描述
    点击添加数量和减少
    这里写图片描述

    3.2.11登录注册实现

    这里写图片描述
    这里写图片描述
    这里写图片描述

    一、设计概要

    本次设计的是一个校园二手交易平台(C2C),C2C指个人与个人之间的电子商务,买家可以查看所有卖家发布的商品,并且根据分类进行商品过滤,也可以根据站内搜索引擎进行商品的查询,并且与卖家联系,达成交易的意向,也可以发布求购的信息,让卖家查看之后,与之联系,进行交易。而此次主要是针对校园用户所设计的网站,对于数据的分类应该更多的考虑校园用户的需求,例如二手书籍、二手数码等的分类应该更加细致。本次设计的主要难度在于数据的详细分类,对于数据的过滤必须要严谨,应当考虑敏感字体和敏感图片的过滤。

    可能遇到的问题有,在数据交互过程中,出现由于属性名的差距导致的数据交互失败。由于Css属性设置的问题,导致界面不完整等等。设计的算法都是自己编写的,可能存在不是最优算法的情况。

    二、设计正文

    1 需求分析

    建立一个用户可以自由交易的平台,通过ajax实现局部刷新,实现网站更具人性化,具有更良好的互动。以下是总体需求

    1.1 通过手机号码注册账号并且登陆

    每个手机号码只可以注册一个账号,并且通过账号完善个人信息和浏览商品,发布商品等,注册时需要通过手机号码获取验证码进行验证才能注册。

    1.2 实现二手商城

    商城主要显示总的商品信息,并且可以通过侧边栏点击进行信息过滤。商品点击之后可以查看详细信息。

    1.3 站内搜索引擎

    实现本站内特有的搜索引擎,可以输入字段,模糊查询合适的商品并且显示出来。

    1.4 求购信息发布

    根据需求输入相应的信息,发布求购商品。

    1.5 求购商城

    卖东西的用户,也可以通过求购商城查看是否有用户对自己拥有的二手物品有需求,查看详细的需求,有的话可以跟买家联系进行交易。

    1.6 货物出售信息发布

    卖家可以发布二手商品的信息,对商品进行描述,并且添加图片增加可信度,也方便买家查看相应的信息。

    1.7 购物车

    将想要的物品添加到购物车,可以修改数量,选择是否要支付,移除商品。选择收货地址,并且进行结算。

    1.8 个人信息

    用户发表求购信息和发布商品时需要先进行信息的完善,用户可以查看自己发布的商品,对发布的商品进行修改或删除,查看已发布求购信息,对求购的商品进行修改或删除。

    2 概要设计

    系统的整体结构流程图如下

    这里写图片描述

    2.1 系统模块

    本系统的可以分为以下几个模块。

    2.1.1 商品首页

    负责显示热门的商品信息,以及显示本网站的网站信息,导航栏负责跳转到各个页面,没有登录显示按钮可以让用户进行登陆和注册。已登录的用户显示用户名,并且可以发布商品信息,查看个人信息等。进入首页的时候,通过Ajax获取数据库中存在的热门商品数据集合,并且刷新页面的内容,点击商品之后跳转到商品详细信息模块。

    2.1.2 二手商城模块

    负责显示所有的二手商品,提供类别的侧边栏给用户点击之后显示对应的商品信息。类别侧边栏的实现后,需要为每一个类别的元素都添加一个id,通过id来获取数据库中的数据,用Ajax获取数据并且刷新页面的信息。采用分页技术,防止数据过多的时候,显示在同一个页面,给用户带来不好的体验,分页支持点击下一页上一页或者直接点击指定页面,跳转到指定的页面。商品点击之后就要跳转到商品详情。

    2.1.3 商品详情模块

    负责显示指定的商品详细信息,包括图片、名字、价格、数量等,当一个商品被点击之后,通过返回的id查询到这个数据集合,跳转到商品详细信息的页面,商品发布者可以在下方查看留言,并且与有意者打成交易意向。将对应的信息显示出来,并且提供加入到购物车的功能。商品详细信息下方显示其他用户的留言,并且已经登录的用户可以对这件商品进行评论,商品发布者可以在下方查看留言,并且与有意者打成交易意向。商品发布者可以在下方查看留言,并且与有意者打成交易意向。

    2.1.4 站内搜索引擎

    每一个页面顶部都存在一个搜索输入框,用户通过输入模糊的商品信息,后台数据库通过查询过滤相关的商品信息,并且显示出来给用户查看,显示出来的商品点击之后可以显示商品的详细信息。

    2.1.5 发布商品

    用户输入指定的信息,以及选择商品的图片,之后将这些信息结合当前登陆的用户,通过Ajax发表到后台,并且通过框架存储数据到数据库指定表。

    2.1.6 发布求购信息

    用户输入指定的信息,以及选择商品的图片,之后将这些信息结合当前登陆的用户,通过Ajax发表到后台,并且通过框架存储数据到数据库指定的求购信息表。

    2.1.7 个人信息模块

    显示个人信息,例如用户名、真实姓名、宿舍号、学号等,显示之后还需要支持对于数据进行修改,修改之后,要同步修改页面的信息,这需要用到Ajax进行数据的提交,并且进行页面的局部刷新。

    2.1.8 我发布的商品模块

    显示个人发表的商品信息,支持点击之后对数据进行修改,例如修改商品名字,修改商品的单价和数量等,修改之后将新的数据提交到数据库,数据库执行相应的修改操作,也可以直接下架某件商品,点击删除按钮之后,直接在后台数据库删除这一件商品,并且刷新当前页面上显示的个人发布的商品。给用户带来更好的体验效果。

    2.1.9 我发布的求购信息模块

    显示个人发表的求购商品信息,支持点击之后对数据进行修改,例如修改商品名字,修改商品的单价和数量等,修改之后将新的数据提交到数据库,数据库执行相应的修改操作,也可以直接下架某件商品,点击删除按钮之后,直接在后台数据库删除这一件商品,并且刷新当前页面上显示的个人求购的商品。

    2.1.10 购物车模块

    显示用户加入购物车的商品,计算总的价格,提供全选和取消全选的按钮,从后台获取商品的单价,判断当前剩余的数量,当用户点击数量添加或者减少之后,对于总价要实时刷新,采用jQuery对数据进行修改,当用户取消选中其中的某一个商品,要相应的减少价格并且刷新,提供选择收货地址,对收获地址进行管理,选好收货地址之后,结算购物车,弹出支付页面,让用户选择付款方式,并且提交。

    2.1.11 登录注册模块

    用户通过手机号码和密码进行登录,登录之后显示首页。当用户没有账号的时候,提示用户进行注册,从登录界面切换到注册界面,注册需要通过手机号码获取验证码,后台通过页面传递的手机号码,随机生成4位数的验证码并且缓存,之后通过发送139邮箱的方式发送到指定的手机,手机收取到验证码之后输入验证码提交,判断是否正确,正确则注册成功,失败则注册失败。用户注册完之后直接跳转到首页。

    2.2 数据结构设计

    首页需要的数据是热门商品的信息,商品信息需要建立一个Bean对象,存储内容是商品的id、商品名称、商品单价、商品类别、商品数量、商品详细信息、商品成色、商品附带的图片地址、热门程度、发表用户的id、留言的集合,当用户发表之后,保存数据到Bean对象中,并将它存储到数据库。首页请求数据之后,根据热门度返回多个数据,将数据存储到list集合中,并且将它转换为JSON格式数据,返回到页面,页面解析数据并且显示。

    商场则负责显示所有的商品数据,实现侧边栏点击指定的类别之后,显示对应类别的数据,需要的是类别的id,因此类别Bean对象的数据是类别id、类别名称,点击之后,通过类别id获取到商品详情集合,并且将它转为JSON格式的数据,返回到前端页面,显示数据。

    点击商品之后,需要显示商品详细信息,通过商品的id返回指定商品的Bean对象,转化为JSON格式的数据,返回到前端页面显示,需要显示商品的留言信息,因此需要留言的Bean对象,包括数据留言id、留言的商品id、留言内容、留言时间,结合商品的详情返回JSON格式数据,前端解析之后显示。

    求购商城,负责显示所有的求购商品,需要求购商品的Bean,内容包括求购商品id、求购商品名称、求购商品数量、求购商品单价、求购商品详细信息、求购商品留言集合。页面显示时从后台返回对象集合转变的JSON数据,前端解析数据并且显示出来。

    登陆界面需要验证用户信息,用户信息包括内容用户id、用户名、用户的手机号码、用户密码、用户真实姓名、用户地址、用户email、用户性别、用户学号。验证的时候只需要判断手机号码和密码是否符合,符合则验证通过,返回验证结果,用JSON存储数据。失败则返回失败信息。

    主要用到的数据结构是ArrayList负责组合各种信息,并且转换为JSON格式数据返回。数据需要排序的时候,用到的是快速排序,负责排列热门商品等的信息,并且返回数据到前端页面进行显示。

    3 详细设计

    3.1 数据字典

    用户信息表

    字段名字段类型是否可为空备注
    IdInt(11)主键
    ModifyDatetime修改时间
    UsernameVarchar(50)用户昵称
    PhoneChar(11)用户手机号码
    realNameVarchar(20)用户真实姓名
    ClazzVarchar(20)用户所在班级
    SnoChar(12)用户学号
    DormitoryVarchar(20)宿舍号
    GenderChar(2)性别
    CreatetimeDatetime创建时间
    AvatarVarchar(200)头像

    用户密码表

    字段名字段类型是否可为空备注
    IdInt主键
    ModifyDatetime修改时间
    PasswordVarchar(24)用户密码
    UidInt用户id

    商品表

    字段名字段类型是否可为空备注
    IdInt(11)主键
    ModifyDatetime修改时间
    NameVarchar(50)商品名称
    LevelInt商品成色
    RemarkVarchar(255)商品详细信息
    PriceDecimal(0.00)商品价格
    SortInt商品类别
    CountInt商品数量
    DisplayInt商品是否被下架
    TransactionInt交易方式
    SalesInt商品销量
    UidInt发表的用户id
    ImageVarchar(255)商品的图片地址

    商品留言

    字段名字段类型是否可为空备注
    IdInt(11)主键
    ModifyDatetime修改时间
    SidInt商品的id
    ContentVarchar(122)留言内容
    DisplayInt是否可见
    UidInt评论的用户id

    我的收藏

    字段名字段类型是否可为空备注
    IdInt(11)主键
    ModifyDatetime修改时间
    SidInt商品的id
    DisplayInt是否可见
    UidInt评论的用户id

    求购商品

    字段名字段类型是否可为空备注
    IdInt(11)主键
    ModifyDatetime修改时间
    NameVarchar(50)求购商品名称
    RemarkVarchar(255)求购商品详情
    PriceDecimal(0.00)求购商品价格
    SortInt求购商品类别
    CountInt求购商品数量
    DisplayInt信息是否被删除
    TransactionInt交易方式
    UidInt发表的用户id
    ImageVarchar(255)商品的图片地址

    求购商品留言

    字段名字段类型是否可为空备注
    IdInt(11)主键
    ModifyDatetime修改时间
    QidInt求购商品的id
    ContentVarchar(122)留言内容
    DisplayInt是否可见
    UidInt评论的用户id

    我发布的商品

    字段名字段类型是否可为空备注
    IdInt(11)主键
    ModifyDatetime修改时间
    DisplayInt是否被删除
    UidInt用户id
    SidInt对应商品id

    我求购的商品

    字段名字段类型是否可为空备注
    IdInt(11)主键
    ModifyDatetime修改时间
    DisplayInt是否被删除
    UidInt用户id
    QidInt求购商品id

    已购买的商品

    字段名字段类型是否可为空备注
    IdInt(11)主键
    ModifyDatetime修改时间
    StateInt商品当前的状态
    UidInt用户id
    SidInt商品id
    QuantityInt商品数量

    购物车

    字段名字段类型是否可为空备注
    IdInt(11)主键
    ModifyDatetime修改时间
    DisplayInt商品是否被删除
    UidInt用户id
    SidInt商品id
    QuantityInt商品数量

    3.2 实现过程

    3.2.1 商品首页实现

    负责显示热门的商品信息,以及显示本网站的网站信息,导航栏负责跳转到各个页面,没有登录显示按钮可以让用户进行登陆和注册。已登录的用户显示用户名,并且可以发布商品信息,查看个人信息等。进入首页的时候,通过Ajax获取数据库中存在的热门商品数据集合,并且刷新页面的内容,点击商品之后跳转到商品详细信息模块。

    首页的前端设计大体如下

    顶部实现导航栏,导航栏包括网站logo支持点击之后返回到首页、输入框和按钮负责站内搜索引擎的实现、以及一个span包裹的数据,当有用户登陆时将它替换为用户名,没有用户登录时,则将它设置为登录注册按钮,方便用户进行登录和注册。用户登陆之后,显示出来的用户名可以通过绑定鼠标进入事件,弹出选择框让用户选择相应的操作,例如显示个人信息、查看发布的商品、查看求购的商品、发布商品、发布求购商品信息。导航栏与其他页面共用。

    这里写图片描述
      显示热门商品信息,采用轮播图实现,主要是先定义一个顶级的div指定position是绝对位置,将除了当前显示的页面之外的轮播图div都隐藏起来,为当前的div添加一个current类,判断点击的方向,如果是右则先获取到current的下一个div,并且将它准备在右侧等候进入,当前的div移出之后,就将下一个进入,并且删除原来的current类,将它添加给新的div。在此过程中控制动画,就可以实现一个精美的轮播图。
    这里写图片描述
      其他部分实现效果
    这里写图片描述
    这里写图片描述

    3.2.2 二手商城实现

    负责显示所有的二手商品,提供类别的侧边栏给用户点击之后显示对应的商品信息。类别侧边栏的实现后,需要为每一个类别的元素都添加一个id,通过id来获取数据库中的数据,用Ajax获取数据并且刷新页面的信息。采用分页技术,防止数据过多的时候,显示在同一个页面,给用户带来不好的体验,分页支持点击下一页上一页或者直接点击指定页面,跳转到指定的页面。商品点击之后就要跳转到商品详情。

    二手商城前端实现

    主要是设计侧边栏比较有难度,首先获取后台返回的三级类别,并且将顶级类别显示在侧边栏中,当鼠标移动上去的时候,显示其余两级目录,显示次级目录作为标题,而第三级的目录则是可点击的按钮,点击之后显示相应类别的商品信息。
    这里写图片描述
    商城商品展示
    这里写图片描述

    其次是底部分页按钮的实现,左右切换需要通过jQuery来控制,下一页则判断是否已经到达当前显示的页数倒数第二个,如果是就删除第一个页数,并且添加下一页的页数(前提是还有页数可以继续),如果不是倒数第二个,就将当前元素的current类名删除并将它赋给下一个元素。
    这里写图片描述
    这里写图片描述

    3.2.3 商品详情实现

    负责显示指定的商品详细信息,包括图片、名字、价格、数量等,当一个商品被点击之后,通过返回的id查询到这个数据集合,跳转到商品详细信息的页面,商品发布者可以在下方查看留言,并且与有意者打成交易意向。将对应的信息显示出来,并且提供加入到购物车的功能。商品详细信息下方显示其他用户的留言,并且已经登录的用户可以对这件商品进行评论,商品发布者可以在下方查看留言,并且与有意者打成交易意向。商品发布者可以在下方查看留言,并且与有意者打成交易意向。

    显示商品的详细信息,并且添加可以留言的模块,用户发表留言之后,会在下方的留言板通过ajax进行实时的刷新。
    这里写图片描述
      留言
    这里写图片描述

    3.2.4 站内搜索引擎实现

    每一个页面顶部都存在一个搜索输入框,用户通过输入模糊的商品信息,后台数据库通过查询过滤相关的商品信息,并且显示出来给用户查看,显示出来的商品点击之后可以显示商品的详细信息。
    这里写图片描述
      搜索结果
    这里写图片描述

    3.2.5 发布商品实现

    用户输入指定的信息,以及选择商品的图片,之后将这些信息结合当前登陆的用户,通过Ajax发表到后台,并且通过框架存储数据到数据库指定表。

    三级联动的实现,用Ajax获取到三级的类别JSON数据,之后解析JSON数据,将第一级的添加到第一个下拉框,第二级的添加到第二个下拉框,第三级的添加到第三个下拉框,当第一个或者是第二个发生改变的时候,通过获取父容器的子集合修改后两级或者一级的下拉框内容,用jQuery的html替换即可。
    这里写图片描述
    这里写图片描述
     点击图片后显示缩略图,需要先采用一个file的input,获取到file的文件集合,并且获取它的网页缓存地址,获取后将它设置到img的src中,可以添加一个渐变的动画效果,给用户带来更好的视觉体验。
    这里写图片描述

    3.2.6 发布求购信息实现

    用户输入指定的信息,以及选择商品的图片,之后将这些信息结合当前登陆的用户,通过Ajax发表到后台,并且通过框架存储数据到数据库指定的求购信息表。三级联动采用前一个的即可。
    这里写图片描述

    3.2.7 个人信息页面实现

    显示个人信息,例如用户名、真实姓名、宿舍号、学号等,显示之后还需要支持对于数据进行修改,修改之后,要同步修改页面的信息,这需要用到Ajax进行数据的提交,并且进行页面的局部刷新。

    所有信息采用jQuery的EasyUI中的accordion显示,标题显示信息,而底部内容则显示修改的组件,之后Ajax修改具体信息后需要将对应的新的内容,采用jQuery显示到标题中。
    这里写图片描述
    这里写图片描述

    3.2.8 我发布的商品实现

    显示个人发表的商品信息,支持点击之后对数据进行修改,例如修改商品名字,修改商品的单价和数量等,修改之后将新的数据提交到数据库,数据库执行相应的修改操作,也可以直接下架某件商品,点击删除按钮之后,直接在后台数据库删除这一件商品,并且刷新当前页面上显示的个人发布的商品。给用户带来更好的体验效果。
    这里写图片描述
      点击修改
    这里写图片描述

    3.2.9我发布的求购信息实现

    显示个人发表的求购商品信息,支持点击之后对数据进行修改,例如修改商品名字,修改商品的单价和数量等,修改之后将新的数据提交到数据库,数据库执行相应的修改操作,也可以直接下架某件商品,点击删除按钮之后,直接在后台数据库删除这一件商品,并且刷新当前页面上显示的个人求购的商品。
    这里写图片描述
    这里写图片描述

    3.2.10购物车实现

    显示用户加入购物车的商品,计算总的价格,提供全选和取消全选的按钮,从后台获取商品的单价,判断当前剩余的数量,当用户点击数量添加或者减少之后,对于总价要实时刷新,采用jQuery对数据进行修改,当用户取消选中其中的某一个商品,要相应的减少价格并且刷新,提供选择收货地址,对收获地址进行管理,选好收货地址之后,结算购物车,弹出支付页面,让用户选择付款方式,并且提交。
    这里写图片描述
      点击添加数量和减少
    这里写图片描述

    3.2.11登录注册实现

    用户通过手机号码和密码进行登录,登录之后显示首页。当用户没有账号的时候,提示用户进行注册,从登录界面切换到注册界面,注册需要通过手机号码获取验证码,后台通过页面传递的手机号码,随机生成4位数的验证码并且缓存,之后通过发送139邮箱的方式发送到指定的手机,手机收取到验证码之后输入验证码提交,判断是否正确,正确则注册成功,失败则注册失败。用户注册完之后直接跳转到首页。

    登录界面需要4个页面,第一个是登录界面,显示手机号码和密码的组件,并且需要底部添加注册按钮,以及忘记密码。第二个是注册界面,注册界面首先提供用户输入手机号码以及验证码,获取验证码的按钮,获取之后跳转到下一步,也就是输入密码界面。输入密码界面需要两次确认密码,输入确认之后就是跳转到首页。最后一个界面是忘记密码,同样通过输入手机号码获取验证码即可。之后将这四个界面通过CSS3的transform属性,将四个界面组合成一个立方体,当用户点击切换到各自界面的按钮时,就采用transform的rotateY,将切换的效果实现成立体翻转的效果。
    这里写图片描述
    这里写图片描述
    这里写图片描述

    后台实现的过程

    1. 总述:本次后台使用的编程语言为Java,使用的框架是Spring+SpringMVC+Mybatis,前端网页渲染的语言不使用JSP,而我选择使用的是thymeleaf框架,

    原因如下:

    a. thymeleaf可以直接渲染出HTML5和CSS3的效果。

    b.前端写的网页合并到后台处理的时候不需要转换成jsp页面,方便快捷。

    c. thymeleaf可以很方便的解析后台传输到前端的值。

    d. thymeleaf,我个人认为是个比较好的模板,性能也比一般的,比如freemaker的要高,而且把将美工和程序员能够结合起来,美工能够在浏览器中查看静态效果,程序员可以在应用服务器查看带数据的效果。

    e. thymeleaf是一个支持html原型的自然引擎,它在html标签增加额外的属性来达到模板+数据的展示方式,由于浏览器解释html时,忽略未定义的标签属性,因此thymeleaf的模板可以静态运行。

    2. 后台结构总图
    这里写图片描述

    java:存放Java代码
      bean:用于序列化到前端,然后解析的实体类。
      controller:spring和springMVC的控制器,用于处理请求的链接
      dao:,和数据库进行交互
      pojo:普通的Java实体类
      service:定义接口,用于连接controller和dao
      token:生成唯一标识,用于防止用户重复提交。
      tool:工具类,例如处理文件,文本敏感词过滤,图片色情鉴别等等。
      resources:存放资源文件,例如Mybatis生成的xml文件,spring,springMVC,mybatis配置文件等等
      css:网站样式
      img:网站部分图片
      js:JavaScript文件
      templates:网站html文件

    3.后台实现了一个只能单用户登录的功能:如果有两个用户使用同一个账号分别登录,那么后一个登录的用户会踢掉第一个用户登录的账号,也就是说先登录的用户会被强制退出。实现细节:主要使用的是websockt和spring websockt。首先前端判断用户有没有登录,如果有登录的话,就将用户的手机号码,当前时间发送到后台,后台接收到信息,解析信息,将信息存储到Map中,前台循环提交这些信息,并判断Map中手机号码对应的时间是否相等,如果不相等,证明有其他用户登录了该账号,后台发送下线信息到前端,前端收到信息后,触发退出当前账号事件。

    4.常规数据库增删查改:考虑到密码是重要的信息,所以当操作密码的时候,都是先使用MD5对其进行加密后处理。例如修改密码,注册用户等等。各个数据表之间的关联都是通过逻辑处理进行数据联系的。

    5.防止用户重复提交:在每个界面,都会由后台生成一个token,然后前端页面存储该token,如果用户进行提交按钮等事件时,就会连这个token一起发送到后台进行处理,后台若获取不到token或者token不相匹配,那么就判定该用户重复提交这个事件,后台直接返回原本页面。

    6.敏感词过滤:管理员将敏感词编入到数据库中,用户发布商品时附带的商品名称,商品备注等等,都会被过滤,将其中的敏感词替代成**。然后返回对应的数值。用户在填写商品名称,详情的时候,还会ajax自动和后台进行验证判断,并实时提醒用户有没有输入敏感词。

    7.图片色情鉴别:使用的是百度的百度开发者平台中的色情图片识别功能。通过提交一张图片到百度的这个功能中,该项目功能就会返回一个数字,姑且称该值为色情值,如果该色情值超过一个给定的数值,那么就可以判定该图片为色情图片,如果用户上传的是色情图片,那么就无法插入,修改,后台会直接返回一个错误值给前端,提示使用了非法的图片。

    4.问题分析

    4.1 在实现只能单用户登录的时候,由于是第一次编写,以前没有经验,刚开始的想法是设计2个Map(m1,m2),用于存储前一次登录(m1)和再次登录(m2)的手机号码和对应的时间。首先,当用户第一次登录的时候,m1和m2必定都为空,m2先通过手机号码存储当前的时间,然后前端通过websockt发送定时信息过来请求判断,在后台处理前端发送过来的信息的时,先判断m1是否存在m2中该的该手机,如果不存在,则证明为第一次登录,那么m1存储m2中对应手机的对应时间。如果存在,那么将m1中时间和m2中的时间进行比较,若比较结果一致,是单用户登录;若不一致,该手机为前一次登录,强迫下线。当用户再次登录的时候,m2中存储手机对应的当前的时间,那么前一次登录的时候m1中存储的手机对应的时间必然小于再次登录中m2中存储的时间,此时,前一次登录强迫下线,m1中的时间刷新为m2中对应的时间。但是这个思路出现了一个严重的问题,在测试的时候,首次登录后,第二次登录确实会踢掉第一次登录,但是第三次登录的时候,所有的用户都平安无事,不会互相排挤,此时出现的问题应该是线程不安全导致的结果。m1,m2这2个map都可能会出现这种情况。

    解决方法:设计一个Map(m),用于存储手机号码和其对应的时间。首先,用户登录后,将当前的时间,手机号码通过websockt发送到后台,后台进行判断处理,如果发送过来的时间和m中存储的时间进行比较,若一致,证明没有其他用户登录,若不一致,证明其他用户登录过,那么当前这次用户就会被迫下线

    4.2 设计的工具类中,因为存在很多个类和包,如果没有使用工厂模式进行设计的时候,那么在启动项目的时候,多用户登录时,就会导致线程不安全或者线程堵塞,并且将类中的所有方法声明为static时,会占用了许多的内存。

    解决方法:使用静态工厂模式-静态内部类。将所有的工具类集中到一个总类中,然后为给总类设计一个静态内部类,其他将要调用的方法设计为public非静态方法,如果调用的时候用工厂调用就可以了。

    4.3 当使用多个参数通过mybatis获取数据库数据时,出现了参数未定义的情况,这是因为多个参数的时候,要将这些参数封装为一个Map。

    解决方法:将多个参数封装为一个Map,然后将该Map作为参数传递给mybatis的处理方法。

    4.4 发送手机验证码出现的错误:一开始像使用邮箱验证用户的,但是在通过邮箱给用法发送信息的时候,这个时候就有多个邮箱作发送者供选择-QQ,163,127,sina等等。原先使用的是163邮箱进行发送信息,但是由于发送的内容过于少,被系统认定为垃圾邮件不给发送或者接收。其他邮箱也类似。后来感觉使用邮箱发送验证码已经被淘汰了,现在流行手机验证了,所以改为发送手机验证码。但是手机发送验证码的话,不想使用网上别人提供的服务,打算自己写一个,关键是怎么将验证码发送到手机上。

    解决方法:将验证码发送到139邮箱上就可以了,一般的手机用户都会默认绑定139邮箱的,如果139邮箱收到信息,那么就会通过发送短信的形式提示到对应的手机上,这样就可以实现手机验证码的发送了。

    4.5 前端使用Ajax局部刷新时,有可能会导致新显示的内容无法绑定点击事件,最终导致在点击相应的按钮(例如加入购物车按钮)时,页面没有反应。

    解决方法:在Ajax的for循环显示结果内容后,为按钮等绑定相应的事件。这样就可以解决该问题。

    6.用户使用说明

    6.1 首页

    首先访问本站网址,进入首页,可以浏览首页的商品信息,首页轮播图可以左右切换查看商品信息,如果没有主动切换,那么每3.5s之后会自动往右切换一张,往下滑动显示的是其他的一些热门商品缩略信息,点击商品名字之后可以查看该商品的详细信息和留言。再下方是一些其他信息,可以忽略。

    6.2 普通游客的限制

    普通游客可以随意访问首页,可以通过导航栏访问商城,求购商城等。但是如要要发布求购、发布商品则需要先登录。

    6.3 没有账号?

    如果用户还没有账号,那么点击右上角的注册按钮,之后会跳转到注册界面,用户需要输入手机号,再通过它获取验证码,注意输入的手机号必须要格式正确并且有效,获取验证码之后,便点击下一步,此时到达的界面是确认密码界面,重复输入密码,两次输入的密码必须一致。确认完毕之后就会进入首页。如果用户忘记了自己注册过的账号密码,那么点击登录界面的忘记密码选项,输入注册时使用的手机号码,通过此手机号码获取验证码,输入验证码之后,点击下一步开始重置密码,重置完毕之后就会重新进入到首页。

    6.4 商城

    用户想要查看其他用户发布的商品,需要通过点击导航栏处的商城进入到商城页面,在此可以浏览所有的商品,每页显示12个,底部的分页按钮,可以点击之后切换到用户想找的页面。而用户如果需要过滤信息,找到自己想要的类别,左侧悬浮的悬浮框,鼠标移动到指定的类别中,查看详细的类别,点击自己想要找的商品类别,网站便会过滤出指定的商品呈现给用户。

    商城显示的商品信息只是一部分,通过点击商品名可以跳转到商品详细信息页面,用户可以在此查看商品的所有信息,可以将它添加到购物车,或者查看下方其他用户的留言,也可以针对自己的意见,对商品做出评价。

    6.5 模糊查询

    如果想要模糊查询商品,最顶部有一个输入框,输入商品的信息,点击搜索按钮,系统会自动过滤合适的商品呈现给用户。

    6.6 求购商城

    如果用户有商品想要出售,可以进入求购商城,浏览其他用户的求购信息,通过点击顶部的导航栏 求购商城 进入查看所有的求购信息,同样有分页和侧边栏的功能。

    6.7 发布商品信息

    如果已经登录过,那么右上角显示的是用户名,将鼠标移动到上面,会弹出一个下拉框,点击发布商品信息,按照提示输入各自的信息,之后确认信息无误之后点击发布按钮即可。

    6.8 发布求购信息

    发布求购信息的过程跟发布商品信息一样,主要是点击下拉框的发布求购信息,在发表即可。

    6.9 查看我发布的商品

    鼠标移动到左上角的用户名,点击显示出来的下拉框的我发布的商品,就可以进入到自己发布过的商品,可以点击每一个商品下方的修改图标可以对商品进行修改,点击删除图片可以下架这个商品。

    6.10 查看我的求购商品

    跟查看我发布的商品基本一致,只是点击的是我的求购商品。

    6.11 购物车

    用户浏览到合适的商品,可以点击添加至购物车的按钮,之后可以将鼠标移动至右上角用户名处,点击显示出来的下拉列表,点击我的购物车,进入到我的购物车查看自己有意向购买的商品。此时可以选择收货地址,或者修改购物车中的一些信息,例如修改数量,或者删除某一件商品。也可以同时选中所有的商品,或者是取消选中所有的商品,之后便可以结算。

    三、设计总结或结论

    该C2C校园二手交易平台,界面简洁明了,能给用户一种美的视觉上的享受。并且操作简单易懂,可以大胆但是毫不夸张的说,本系统适用于99%的青少年愉快的使用,对于不是很了解智能科技的人来说,只要看看就基本可以掌握然后熟练的使用该系统了。并且本系统的动画效果做得非常的完美,前端工作人员争取使用最少的代码实现最炫酷的动态效果,例如3D页面转换,动态加入购物车效果,搜索的时候动态自动提示商品名字功能等等,无一不是本系统的亮点。由于前端本着使用最少的代码,实现最炫酷的动态效果,所以其性能可以来说是杠杠的。并且前端所构建的网站为响应式网站,当页面的大小发送变化的时候,页面会随着变化,但是我们的变化不会出现任何的纰漏。在兼容性方面,本网站可以完美的兼容ie8+,Firefox8+,chrome6+等等,虽然目前比较少用户使用这些版本以下的浏览器,但是要做的话,我们就要力争做到完美,前端人员通过查询资料,目前可以最完美的兼容上诉浏览器的以下版本。

    前端页面缺点:对于那些不兼容HTML5和CSS3的浏览器,使用的是JavaScript来动态实现这些3D效果的,所以可能展示的效果不如支持HTML5和CSS3的本身效果好。对应浏览器版本真的是过低的用户,无法完美的显示本系统的动态网页。JavaScript实现的那些动画效果可能存在某些目前未知的bug,导致性能上的加载可能会出现瑕疵。

    后台实现的优点:后台为了提高性能,使用了一些目前属于比较好的设计模式,例如工厂方法模式,代理模式,备忘录模式,单例模式等等。数据库表的设计思想主要是参考阿里巴巴的开发手册进行设计的,在性能上,建立了适当的索引,增强了查询速度,并且自己设计了许多的算法对后台数据的处理进行优化等等。本来想使用集群和分布式来实现后台,但是考虑到现在如果使用集群,分布式来实现,那么开发周期得提升不止一个档次的时间。

    网站加载图片的时候,通常耗费的主要流量和影响速度的原因之一就是这个,所以后台设计了一个比较有意思的算法对图片进行适当的压缩,在前端显示的时候,主要显示的压缩后的图片,当鼠标移到图片上的时候,那么通过ajax显示未被压缩过的图片的放大版。这样,既可以节省带宽,又可以提高用户的体验。

    为了防止XSS攻击,可以使用消毒和HttpOnly防止该现象;对于注入攻击,使用的方法为错误回显,盲注,参数绑定;对于CSRF攻击,可以使用表单token,验证码和Rererfer check。

    对于密码,手机号码,真实信息等等敏感信息,通常都需要对其进行信息加密,我使用的是单向散列表加密和对称加密,还有就是使用公钥密钥配对核实认证。但是如果使用到密钥的话,那么一般会要求用户下载安全证书到本机。

    信息过滤和反垃圾是目前一个比较主流的问题。我使用的主要是文本匹配来过滤敏感词的。当用户发布的信息很长的时候,使用的过滤算法是双数组Trie算法进行敏感词过滤,该算法利用两个稀疏数组存储树结构,base数组存储Trie树的节点,check数组进行状态检查。该算法需要根据业务场景和经验确定数组大小,避免数组过大或者冲突过多。

    简而言之,前端效果简洁炫酷,操作简单易懂。

    没有实现的功能:秒杀系统,前端反向代理,CDN加速。

    参考文献

    [1] 李智慧. 大型网站技术架构 核心原理与案例分析[M].北京,工业机械出版社,2013.
    [2] 马丁著 韩磊译.代码整洁之道[Clean Code A Handbook of Agile Software Craftsmanship] [M]. 北京,人们邮电出版社,2010.
    [3] Craig Walls 著 张卫滨译. Spring In Action[M]. 北京,人民邮电出版社,2016
    [4] Thomas H.Cormen , Charles E.Leiserson, Ronald L.Rivest, Clifford Stein著,徐云,王刚等译. 算法导论(原书第3版)[M]. 北京,机械工业出版社,2015
    [5] Joshua Bloch 著 杨春花 俞黎敏 译. Effective Java(Second Edition) [M]. 北京,机械工业出版社,2016
    [6] 本·弗莱恩(Ben Frain)著奇舞团 译. 响应式Web设计 HTML5和CSS3实战(第2版)[M]. 人民邮电出版社,2017
    [7] 达科特(Jon Duckett) 著 刘涛,陈学敏 译. JavaScript&jQuery交互式Web前端开发[M]. 清华大学出版社,2015
    [8] NicholasC.Zakas著 李松峰曹力 译. JavaScript高级程序设计(第3版)[M]. 人民邮电出版社,2016

    展开全文
  • 6章 项目时间管理进度模型 -> 《进度计划实践标准》通过把填有项目数据的进度规划工具看做进度模型,可以把项目进度的呈现形式(进度计划)产生项目进度计划(见 6.6.3.2 节)的进度数据(见 6.6.3.3 节)和计算...

    第6章 项目时间管理

    进度模型 -> 《进度计划实践标准》

    通过把填有项目数据的进度规划工具看做进度模型,可以把项目进度的呈现形式(进度计划)与产生项目进度计划(见 6.6.3.2 节)的进度数据(见 6.6.3.3 节)和计算工具区分开来。

    进度规划方法包括关键路径法(CPM)和关键链法(CCM)。

    图 6-1 项目时间管理概述

    图 6-2 进度规划工作概览

    总结

    本章的重点是6.6和6.7。

    6.1 规划进度管理

    规划进度管理是为规划、编制、管理、执行和控制项目进度而制定政策、程序和文档的过程。

    展开全文
  • 他认为,任何一组东西中,最重要的只占其中一小部分,约20%,其余80%尽管是多数,却是次要的,因此又称二八定律。 二八现象 1.管理学:通常一个企业80%的利润来自它20%的项目[3];这个80/...

    导语

    俗称二八定律,又名80/20定律、帕累托法则(定律)也叫巴莱特定律、最省力的法则、不平衡原则等,被广泛应用于社会学及企业管理学等。

    是19世纪末20世纪初意大利经济学家巴莱多发现的。他认为,在任何一组东西中,最重要的只占其中一小部分,约20%,其余80%尽管是多数,却是次要的,因此又称二八定律。

    二八现象


    1.管理学:通常一个企业80%的利润来自它20%的项目[3]  ;这个80/20定

    二八定律图示

    律被一再推而广之--经济学家说,20%的人手里掌握着80%的财富。有这样两种人,第一种占了80%,拥有20%的财富; 第二种只占20%,却掌握80%的财富。

    -漠视20%80%两者相关性,如同只认可喂饱口腹的最后一口饼子

    2.心理学:20%的人身上集中了人类80%的智慧,他们一出生就鹤立鸡群

    大智出有大伪,朴素的力量同样托起了蓝天

    3.日常生活中的“二八法则”:以下是二八定律在生活中的体现:

    20%的重要软件需要80%的时间去测试

    20%的人成功------------------80%的人不成功 唯成功论近似于唯利是图,没有大众默默无闻忍辱负重怎么凸显‘人上人’

    20%的人用脖子以上赚钱--------80%的人脖子以下赚钱

    20%的人正面思考--------------80%的人负面思考

    20%的人买时间----------------80%的人卖时间

    20%的人找一个好员工----------80%的人找一份好工作

    20%的人支配别人--------------80%的人受人支配

    20%的人做事业----------------80%的人做事情

    20%的人重视经验--------------80%的人重视学历

    20%的人认为行动才有结果------80%的人认为知识就是力量

    20%的人我要怎么做才有钱------80%的人我要有钱我就怎么做

    20%的人爱投资----------------80%的人爱购物

    20%的人有目标----------------80%的人爱瞎想

    20%的人在问题中找答案--------80%的人在答案中找问题

    20%的人在放眼长远------------80%的人只顾眼前

    20%的人把握机会--------------80%的人错失机会

    20%的人计划未来--------------80%的人早上起来才想今天干嘛

    20%的人按成功经验行事--------80%的人按自己的意愿行事

    20%的人做简单的事情----------80%的人不愿意做简单的事情

    20%的人明天的事情今天做------80%的人今天的事情明天做

    20%的人如何能办到------------80%的人不可能办到

    20%的人记笔记----------------80%的人忘性好

    20%的人受成功人的影响--------80%的人受失败人的影响

    20%的人状态很好--------------80%的人态度不好

    20%的人相信自己会成功--------------80%的人不愿改变环境

    20%的人永远赞美、鼓励--------------80%的人永远谩骂、批评

    20%的人会坚持--------------80%的人会放弃

    20%的人敢于面对困难--------------80%的人逃避现实

    20%的人认为他们应该满足以上的80%--------------80%的人觉得上面说的我有20%就好

    ——20%的罪犯的罪行占所有犯罪行为的80%;

    ——20%的汽车狂人,引起80%的交通事故;[1] 

    ——20%的已婚者,占离婚人口的80%(那些不断离婚的人,扭曲了统计数字);

    ——世界上大约80%的资源,是由世界上20%的人口所消耗;

    ——世界财富的80% 为20%的人所拥有;

    ——80%的能源浪费在燃烧上,只有其中的20%可以应用到车辆中,而这20%的投入,却回报以100%的产出;

    ——在一个国家的医疗体系中,20%的人口与20%的疾病,会消耗80%的医疗资源。

    ——20%的产品或20%的客户,为企业赚得约80%的销售额;

    总而言之,在原因和结果、投入和产出、努力和报酬之间存在的这种不平衡关系,可以分为两种不同类型:

    多数,它们只能造成少许的影响;少数,它们造成主要的、重大的影响。

    相关理论

     

    长尾理论长尾理论

    长尾理论”被认为是对传统的“二八定律”的彻底叛逆。如右图所示,横轴是品种,纵轴是销量。典型的情况是只有少数产品销量较高,其余多数产品销量很低。

    传统的二八定律(或称20/80定律)关注其中红色部分,认为20%的品种带来了80%的销量,所以应该只保留这部分,其余的都应舍弃。长尾理论则关注蓝色的长尾巴,认为这部分积少成多,可以积累成足够大、甚至超过红色部分的市场份额。但也有很多失败者并没有真正理解长尾理论的实现条件。[1] 

    定律法则

     

    技术法则

    传媒业的产值80%来自技术设备业,只有20%来自内容产业。国际上将信息技术产业新闻业娱乐业统称为大媒体业。通常所说的软件其实是大媒体产业的硬件。只有对信息技术高度重视,加强研发,才能引领大媒体时代,并占领制高点。

    市场法则

    传播学原理体现了:在产品同质化的形势下,方便是产品被选中的决定性因素。

    电视行业普遍认为,互动电视用机顶盒来完成观众与节目的互动,但电视与短信互动的成功,再一次重复了这样一个故事。在网络领域,也是短信、游戏等方便、低价的产品超越电子商务业务。

    娱乐法则

    传媒内容业20%的产值在新闻,80%的产值在娱乐。

    美国的新闻广播电视网ABC、NBC、CBS、CNN悉被娱乐巨头收购。即使单纯的新闻业也出现严重的娱乐化态势。

    新闻集团的收入结构是这样的:40%来自新闻业,60%来自娱乐业,其中新闻部分主要来自其大众性报纸。维亚康姆、时代华纳迪斯尼、贝塔斯曼、威望迪环球、索尼等巨头的业务80%以上都集中在娱乐领域。

    副业法则

    传媒业20%的收入来自主业,80%的收入来自相关商品开发。相关商品开发是指以内容主题、角色、影像、形体、名号、事件、创意为蓝本设计、制造、销售相关商品。相从而获得长久的生命力。

    贵宾法则

    二八定律图示二八定律图示

    给一个公司带来80%利润的是20%的客户。按照这个原则,如果能把这20%的客户找出来,提供更好的服务,对于公司的发展和业绩的增长无疑是最大的帮助。

    虽然大众传媒娱乐的主力消费者是最大多数的普通消费者。但这不妨碍“二八定律”的应验。首先,面向大众的产品,其收益80%的来自20%的客户,这在传媒业界是个常识。其次,80%的收益来自20%的市场,如北京、上海、广州三地购买力比重就超过全国50%。再次,面向20%的大客户的媒体价值很高,如探索品牌就位居全球十大品牌之列。[3] 

    品牌法则

    20%的强势品牌,占有80%的市场份额。一般来说,第一品牌的市场占有率比第二品牌高出一倍以上,在行业中是价值最大的品牌。在网络界,三大门户网站无论是在吸引力方面,还是收入方面都占据网络产业的绝大部分。

    “二八定律”之所以得到业界的推崇,就在于其提倡的“有所为,有所不为”的经营方略,确定了传媒业的视野。要用好“二八定律”,传媒业首先弄清楚企业中的20%到底是哪些,从而将自己经营管理的注意力集中到这20%的重点经营要务上来,采取有效的倾斜性措施,确保重点方面取得重点突破,进而带动全面,取得传媒经营整体进步。

    现实意义

    编辑

    长尾理论VS二八定律长尾理论VS二八定律

    80/20法则不仅在经济学、管理学领域应用广泛,它对我们的自身发展也有重要的现实意义:学会避免将时间和精力花费在琐事上,要学会抓主要矛盾。

    一个人的时间和精力都是非常有限的,要想真正“做好每一件事情”几乎是不可能的,要学会合理分配的时间和精力。要想面面俱到还不如重点突破。把80%的资源花在能出关键效益的20%的方面,这20%的方面又能带动其余80%的发展。

    二八定律可以解决的问题:时间管理问题、重点客户问题、财富分配问题、资源分配问题、核心产品问题、关键人才问题、核心利润问题、个人幸福问题等等。以下从企业和个人生活两个角度探讨二八定律的运用:

    企业运用

    二八定律建立以风险为导向内部控制框架。步骤如下:

    战略目标

    一般企业都会有一个中长期的总体战略目标,可以运用树状分析法,细化分解企业总体战略目标:首先在各个运营单位的层面上分解形成相应的运营单位目标,然后按照部门设置将每个运营单位目标分解为部门目标,再按照业务流程将部门目标分解为流程目标。通过层层分解,最终把企业总体战略目标分解为金字塔形的目标体系。

    二八定律图示二八定律图示

    识别风险

    建立目标体系后,运用80/20法则识别和确立主要风险。首先,按目标体系识别各层级目标面临的各种风险因素,并广泛、系统地收集与风险因素相关的内、外部信息,并对可能导致的各种潜在风险事件及影响后果分门别类地进行分析。其次,采用定量和定性的方法,逐个或逐类评估风险因素发生的概率及其影响程度,并按照优先原则划分和确立必须进行管理和控制的20%的主要风险。

    内部控制

    (1)确定风险管理范围和控制力度。企业根据风险偏好和风险承受力计算将20%主要风险降至可接受程度的成本,并结合企业管理能力、人力、财力等综合因素,确定风险管理范围和控制力度等。

    (2)确定应采取的应对策略。企业依据风险管理范围和控制力度,通过对政策规定、业务流程、人员岗位、信息系统等采取有针对性的风险控制措施,建立预防性、检查性和纠正性的风险控制机制,在特定的范围内控制主要风险;同时,对控制措施尽可能采取程序化的控制工具或手段,对不能采取程序化控制:亡具或手段的控制措施建立相应的监控机制。

    (3)实现成本和效益平衡。《企业内部控制基本规范》第三条指出,内部控制的目标是合理保证企业经营管理合法合规、资产安全、财务报告及相关信息真实完整,提高经营效率和效果,促进企业实现发展战略。[4]  可见,建立内部控制框架所采取的控制措施只要能合理保证控制目标实现即可,不需要加大投入以期绝对避免各种风险的发生。所以要把握好成本效益的“度”,实现成本和效益的平衡。

    财务管理

    当代的财务管理正在发生这样一种变革:财务管理将其关注的焦点,由交易的过程和控制,转向提供决策支持和更深入的制定全球战略。所以高水平的财务管理必然要求站在战略的高度,在分析各种因素对资金流动影响的基础上对企业的财务活动进行全局性、长期性和创造性的谋划。

    80/20法则是分析式的方法。80/20法则认为不论是时间、组织、市场或是所遇到的每一个人和每一家公司。事物都只有20%的精髓,大部分活动对于所与达到的目的而言并无实质贡献。所以一个优秀的财务战略制定者应该懂得寻找和发掘那些重要的20%,充分利用它,并且砍掉无用的80%。80%的时间会把20%的时间赶跑,80%的资产花去了所留给另20%资产的资金,[3] 为80%活动所花的心力,少了力气放在更重要的20%上。

    投资活动

    投资活动是企业生产经营中最重要的工作之一,关系到企业长期稳定的发展,关系到企业的社会信誉和综合财务实力。因此企业的财务管理部门必须对企业的长短期投资做深入的分析评价,以确定最有利的投资方案。在投资中,会发现有趣的80/20现象:20%的投资项目吸收了80%的资金,另20%的资金分散在80%的项目中。或者20%的资本带来了80%的利润,而另80%的资本却只收到20%的利润。[4] 

    这种不平衡来自于投资报酬率资本成本率的高低,并且还受到经营风险和财务风险的制约。所以在制定投资决策中就必须认真分析企业的优势和劣势,市场环境,用回收期法净现值法,内部收益法获利能力指数法等对投资项目进行可行性分析,正确估计项目的收益和风险。

    提高资金的投资回报率,不断提高企业价值,实现财务管理的整体目标。从长期的投资组合所得的财富中,80%的财富来自于20%的投资,选择这20%的投资是非常重要的,选定之后,就要尽可能多地关注它们。好比传统的智慧教你不要把所有的鸡蛋放在同一篮子,但80/20法则却要求小心选一个篮子,将你所有的蛋放进去,然后仔细地盯紧它。

    营运资金

    营运资金的管理中,也要注意运用80/20法则。如在处理应收账款时,可以发现往往80%的应收账款集中在少数几个大客户中,其余20%的应收账款则分散于80%的小客户中。所以在制定信用标准适应区别对待。如果对这几个大客户能加强重视,认真评估信用风险,制定合理的信用政策,那么就可以提高应收账款的利用效率。在存货管理中广泛应用的ABC控制法也是80/20法则在营运资金管理中的实际应用。

    ABC分析法的实质是在于抓住重点,区别对待,分类控制,管好用好资金。按企业的物质品种以所占用资金的大小进行分类排队,把他们分为ABC三类。A类物质数量最少,但占用资金比重大,因此应严格控制。B类物质较A类多,价格较低,原则上不要求同A类存货那样,可以实行一般控制。c类物质种类繁多,但价格低廉,占用资金很少,因此可实行适当放松控制。

    A

    10%~15%

    80%

    B

    20%~30%

    15%

    C

    60%~65%

    5%

    财务分析

    比率分析是现代企业财务分析中一种常用的有效方法。它包括反映企业变现能力流动比率速动比率;反映企业营运能力应收账款周转率存货周转率流动资产周转率总资产周转率;反映负债情况的资产负债率,负债/权益比率,已获利息倍数;据美国一项调查表明,在公司目标中出现各项比率指标的频率为:每股收益占80.6%,债务,权益比率占68.8%,税后权益收益率占68.5%,流动比率占62.0%,税后净利润率占60.9%,股利支付率占54.3%,税后总投入资本收益占53.3%,税前利润率占52.2%,应收款周转天数占47.3%,税后资产收益率占47.3%,其中,这10项最有可能被纳入公司目标的比率中有6项是衡量企业获利能力的。

    市场营销

    一、产品受众

    运用80/20法则,首先可以发现针对大量使用者的营销意义。

    根据使用产品的数量或频率,可以将顾客分为;少量使用者、中等使用者和大量使用者。大量使用者虽然在所有使用者中所占的比例较小,但其消费量却非常大。美国学者针对几种日用品消费情况的研究表明了这一结果,如在香波市场中,大量使用者和少量使用者的使用量分别占79%和21%,在啤酒市场中两者的使用量分别占87%和13%。显然香波公司应努力吸引个大量使用者—每天洗发和每次用量较多的消费者.而不应花费过多的精力去吸引几个少量使用者.啤酒商也应该以大量饮酒者作为目标顾客,而不是把目标对准偶尔品尝啤酒的消费者因为赢得一个大量使用者所获得的销售量是很多个少量使用者的总和。

    很多企业认识到了大量使用者的重要意义,他们根据顾客的购买数量和频率制定不同级别的奖励制度来吸引大量使用者购买如采用数量折扣等促销方式,有些企业还专门针对大量使用的顾客设立大客户部专门负责对这一消费群体的营销。同时企业还可以采取一些措施引导顾客适当增加使用量,让少量使用者逐渐转变成大量使用者.以达到较快增加销售量的目的。

    二、.老顾客

    运用80/20法则,还可发现针对老顾客营销的意义。长期来在生产观念产品观念的影响下.企业营销人员关心的往往是产品或服务的销售.他们杷营销的重点集中在争夺新顾客上。其实,与新顾客相比.老顾客会给企业带来更多的利益,精明的企业在努力创造新顾客的同时.会想办法将顾客的满意度转化为持久的忠诚度像对待新顾客样重视老顾客的利益把与顾客建立长期关系作为目标老顾客对企业发展的重要性表现在以下几个方面:

    1.老顾客可给企业带来直接的经济效益,首先.老顾客的长期重复购买是企业稳定的收入来源,老顾客的增加对利润的提升起着重要作用。

    2.老顾客可以给企业带来间接的经济效益。老顾客的推荐是新顾客光顾的重要原因之一。个人的行为必然会受到各种群体的影响,其中家庭.朋友领导和同事是与其有经常持久相互影响的一个重要的参考群体。同时.随着对各种商业媒介信任度的降低。

    3.大量忠诚的老顾客是企业长期稳定发展的基石,相对于新顾客来说.忠诚的老顾客不会因为竞争对手的诱惑而轻易离开与顾客之间的长期互利关系是企业的巨大资产.它增强了企业在市场竞争中能力,尤其是急剧变化的市场中,市场份额的质量比数量更重要,由此可见.老顾客给企业带来了丰厚而稳定的利润。能成功留住老顾客的企业都知道最宝贵的资产不是产品或服务.而是顾客,所以.盲目地争夺新顾客不如更好地保持老顾客。

    越来越多的企业认识到了老顾客对企业的价值,他们把建立和发展与顾客的长期关系作为营销工作的核心,不断探索新的营销方式,比如在竞争激烈的航空业、商业等领域留住老顾客已经成为企业战略的主题。

    三、关键顾客

    运用80/20法则还可以帮助企业挖掘出一些关键顾客的价值.在营销过程中.企业不仅要对顾客进行量的分析而且还要进行质的分析。有些关键顾客.或许他们的购买量并不太,不能直接为企业创造大量的利润却可以产生较大的影响。比如国内颇具实力的名牌大企业.所以企业应该努力争取得到一些有较大影响力的关键顾客。不过他们往往在购买过程中比较挑剔.购买程序也比较烦琐.企业可能要付出更大的营销努力才能得到少量的订货因此.平时就要注意苦练内功,不断提高竞争力。

    运用80/20法则的营销策略的核心是在对顾客价值进行全面分析的基础上对顾客进行细分根据顾客重要程度合理分配营销力量从全局的角度设计持久稳键的顾客发展战略.运用80/20法则的营销策略其高明之处在于运用了全新的思路.成功的关键是要确定带来80%利润的20%的顾客在哪里并且留住他们。

    人力资源

    许多企业都面临着众所周知的管理困境,特别是20%的核心员工离职的问题。

    一方面由于冗员问题使得企业的包袱越背越沉,人工成本不断攀升。另一方面,核心员工的大量流失严重地削弱了企业的核心竞争力,使得企业在残酷的市场竞争中处于被动的局面。

    员工的频繁离职对企业的影响是巨大的,尤其是关键的业绩优异的核心员工离职,往往会给企业造成无法挽回的损失,段永平当年的出走成就了一个”步步高”,却使”小霸王”陷入了困境。所以,一旦发现核心员工有离职倾向,能够挽留一定要尽力挽留。核心员工一旦决定离职,科学地进行离职管理工作就显得尤为重要。对于一般员工,也就是企业员工的80%,离职行为首先发生的频率就较少,即使发生一些,如果在冗员范围内,20%的核心员工才是值得人力资源管理人员学习的做法。

    管理是一门科学,但它更是一门艺术,80/20法则运用到核心员工管理中还有许多值得探讨的问题,只有海纳百川敢于创新,才能在管理的实践中找到最佳的方案。在人力资源管理实践中,需要针对不同类型的员工实行分类管理,特别是对企业的核心员工,要结合80/20法则,从岗位安排,薪资设计以及离职管理等方面做好核心员工的各项人力资源管理工作。

    二八法则的道理在于,不要平均地分析、处理和看待问题,企业经营和管理中要抓住关键的少数;要找出那些能给企业带来80%利润、总量却仅占20%的关键客户,加强服务,达到事半功倍的效果;企业领导人要对工作认真分类分析,要把主要精力花在解决主要问题、抓主要项目上。

    股市应用

    股市中有80%的投资者只想着怎么赚钱,仅有20%的投资者考虑到赔钱时的应变策略。但结果是只有那20%投资者能长期盈利,而80%投资者却常常赔钱。20%赚钱的人掌握了市场中80%正确的有价值信息,而80%赔钱的人因为各种原因没有用心收集资讯,只是通过股评或电视掌握20%的信息。当80%人看好后市时,股市已接近短期头部,当80%人看空后市时,股市已接近短期底部。只有20%的人可以做到铲底逃顶,80%人是在股价处于半山腰时买卖的。[1] 

    券商的80%佣金是来自于20%短线客的交易,股民的80%收益却来自于20%的交易次数。因此,除非有娴熟的短线投资技巧,否则不要去贸然参与短线交易。只占市场20%的大盘指标股对指数的升降起到80%作用,在研判大盘走向时,要密切关注这些指标股的表现。

    股市中20%的机构和大户占有80%的主流资金,80%的散户占有20%资金,所以,投资者只有把握住主流资金的动向,才能稳定获利

    成功的投资者用80%时间学习研究,用20%时间实际操作。失败的投资者用80%时间实盘操作,用20%时间后悔。股价在80%的时间内是处于量变状态的,仅在20%的时间内是处于质变状态。成功的投资者用20%时间参与股价质变的过程,用80%时间休息,失败的投资者用80%时间参与股价量变的过程,用20%时间休息。流传最广的一句说法是:“80%的收入来源于20%的客户.”也称为20/80法则。

    中国股市常说的二八现象其实就是20%的股票涨,80%的股票跌或不涨。

    在调整市中,只有百分之二十的时间在上涨,而百分之八十的时间都在下跌。而许多投资者一直忙忙碌碌,频繁地进进出出,一年到头不但弄得身心疲惫,且亏损累累,真是费力不讨好。真正的高手在这种市道中大量的时间都在休息,耐心地等待,待到机会出现时就动若脱兔,并一刀见血,决不拖泥带水。几个回合下来后,就取得了可观的收益。这样不但轻松自如,取得了不菲收益的同时,还享受了股市赚钱的乐趣。

    沪深股市十三年来,每年都有一次赚钱的机会(即使在1993年大盘指数跌去80%的情况下,也出现过一次大反弹),只是机会大小不同。为什么仍有百分之八十的人亏钱,就是对进出的时间把握得不好。在赚了钱后,不把利润锁定,在大盘见顶时还在频频出手,结果要么在大盘的下跌中被深套了,要么在不断割肉的过程中亏损加剧了。当其彻底弄坏了心态,胆子变小而不敢再贸然出手的时候大行情却来了,他却踏空了。这种恶性循环就是很多失败者的普遍特点。

    时间管理

    明确态度、再排定先后顺序,定出远期和近阶段

    时间管理时间管理

    目标;

    重新审视工作时间表,分出事情的轻重缓急,要毫不留情的抛弃低价值的活动;

    永远先做最重要的事情。

    核心理念:人类社会20%的资源,与80%的资源活动有关。

    应用要决:要事第一,重要产品第一,关键人物第一,核心环节第一。

    应用领域:政治、经济、军事、社会生活、企业经营、组织管理。

    总结

    总之,80/20法则是分析式的方法。80/20分析法的用处是让人注意到造成某种状况的关键原因,也就是找到那些导致80%产出的20%投入,假如20%喝啤酒的人喝掉了80%的啤酒,那么这部分人应该是啤酒制造商注意的对象,尽可能争取到这20%的人来买,最好能进一步增加他们的啤酒消费。同样的,当一家公司发现,80%的利润来自20%的产品,那么这家公司应该尽全力来销售高利润的产品。

    没有任何一种活动不受80/20法则的影响。一位著名的管理学家说过,成功的人若分析自己成功的原因,就会知道80/20法则是成立的,80%的成长活力和满意来自于20%的对象,公司至少应知道这20%是谁,才会清楚看到未来成长的方向。

    生活运用

    80/20 思想如果运用到日常生活中,能帮助人们改变行为并把注意力集中到最重要的20%的事情上。80/20思想的行动结果就是使人们以少获多。使用 80/20 思想,必须不断自问:20%为什么能导致80%。

    以下是在生活中,运用二八定律的步骤:

    1.设定目标

    进入20%。

    2.制定计划

    要遵守下列事项:

    鼓励特殊表现,而非赞美全面的平均努力;

    寻求捷径,而非全程参与;

    选择性寻找,而非巨细无遗的观察;

    在几件事情上追求卓越,不必事事都有好表现;

    不必苦苦追求所有机会

    当我们处于创造力巅峰,幸运女神眷顾的时候,务必善用少有的“二八定律”。

    3、行动

    开始行动,注意坚持。

    4、总结

    在应用二八法则中,我们要时刻注意分析方法,抓重点,考虑问题主要从历史和地理两个思维角度

     

    展开全文
  • 今天这篇文章主要讲解:第三方对接海康综合安防管理平台调用订阅事件接口后,接收不到事件数据的排查解决办法。 注意:这里不局限于isecure center平台,还包括采用isecure构架的其他行业平台。具体你们公司目前...

    今天这篇文章主要讲解:第三方对接海康综合安防管理平台调用订阅事件接口后,接收不到事件数据的排查解决办法。

    注意:这里不局限于 isecure center平台,还包括采用isecure构架的其他行业平台。具体你们公司目前使用的平台是否是isecure构架,建议直接咨询跟你们公司接口的海康技术支持人员。或者你也可以登录你们平台的运管中心:http:ip:8001/center/status(如下图所示),如果显示域见构架isecure,那么你的平台就适用本文的排查方法。

    第三方对接海康综合安防管理平台

    目前出现调用订阅事件接口(按事件类型订阅事件),却接收不到事件数据主要发生在 isc v1.4.100版本,当然如果其他版本也遇到接收不到事件数据,也可以使用同样的思路来排查问题。

    第三方对接海康综合安防管理平台

    目前订阅了事件,接收不到事件数据有三种可能:

    1、调用订阅事件接口不成功,返回失败了,比如下面的一些错误:

    {
        "code": "0x00072001",
        "msg": "The required parameter $$ is blank."
    }

    具体的错误码,可以查看:https://open.hikvision.com/docs/361ce1b9591b4d728983cfbbb9a957e9#df83ae21

    第三方对接海康综合安防管理平台

    2、调用事件接口成功了,但参数传错了。这种情况返回的结果通常是成功,因此直接从返回结果看不出问题。

    {
        "code": "0",
        "msg": "success"
    }

    不过通常是你填写subtype和eventLvl参数出错的问题。在使用接口/eventService/api/v2/eventSubscriptionByEventTypes订阅事件时,有两个可选参数:subType和eventLvl,但这两个参数不是独立的,而是相互关联的

    因此不能填错了:

    (1)当subType=0时,表示订阅原始事件,eventLvl参数不会生效,无论填与不填,填任何值都可以。

    (2)当subType=1时,表示订阅联动事件,eventLvl填0无效,可以填写其他值,当不填时,默认为[1,2,3]。

    (3)当subType=2时,表示即订阅原始事件,也订阅联动事件,eventLvl不填,则使用默认值 [0,1,2,3]。

    建议:当你搞不清楚参数怎么填时,在排查问题的时候,我建议将subType=2,eventLvl不填。(这里有人问联动事件和原始事件的区别:原始事件是从设备端上报的,联动事件是你在平台上事件联动那里配置的。)

    3、网络不通造成事件数据无法接收。

    如何确定是不是网络不通造成的呢?建议你联系跟你们公司对接的海康技术支持人员,让他帮忙获取esc(事件服务)日志。获取日志前,人为触发一条事件并记录下触发的时间(注意服务器时间跟北京时间保持一致哦!),然后查看获取到的esc日志,如果日志中有如图的“send fail”,那么可以断定是网络不通了。

    第三方对接海康综合安防管理平台

    网络不通主要原因有以下几种可能,建议逐一排查。

    (1)网络连接问题,可能原因:域名解析失败(没配置dns)、防火墙拦截(开启了防火墙)、连接建立失败(服务器跟开发机不在一个网段)等;

    (2)接收代码写的有问题,接收方没有正确接收,这个可以先自己用postman向自己写的接口模拟推数据,看能不能接收(建议postman 那台电脑所在的环境跟平台服务器是同一个网络环境,这样才能保证排除网络原因造成的其他因素干扰,“控制变量法”我想大家初中就学过了吧)。

     

    展开全文
  • 1) 相关概念事件:会引起或可能引起服务中断、服务质量下降的任何活动事件类型:硬件故障、软件故障,投诉、服务请求面试被问过:服务请求和事件的区别 事件升级:协议约定的时间内,无法解决事件,需要技术人员...
  • 时间管理四象限法则该如何理解

    万次阅读 2018-10-08 11:17:16
    我们日常工作生活当中,想要提高工作效率,过上有序的生活,告别忙盲茫,就必须得坚持时间管理,合理科学分配自己的时间时间管理方法很多,这里给大家介绍时间管理四象限法则。 那么什么是时间管理四象限法则呢...
  • 时间管理四象限法则,是由著名管理学家史蒂芬.科维(Stephen R. Covey)提出的一个时间管理理论。 把要做的事(如工作中的事)按照重要和紧急两个方面的不同成都进行划分,可以分为四个象限:重要而且紧急、重要但...
  • ITIL 事件管理和问题管理的区别

    千次阅读 2018-07-20 17:25:00
    没有学ITIL的时候,很多人分不清事件管理和问题管理的区别, 沟通了专家后,总结经验如下: 模化的企业都具备信息中心部门,信息中心的职责是服务于业务部门,保障企业网络的正常运转,那联结信息中心和业务部门...
  •  拖拽会用到哪些事件 · dragstart:拖拽开始时被拖拽元素上触发此事件,监听器需要设置拖拽所需数据,从操作系统拖拽文件到浏览器时不触发此事件. · dragenter:拖拽鼠标进入元素时该元素上触发,用于给拖放元素...
  • Java 学习路线

    万次阅读 多人点赞 2018-01-06 13:21:35
    对于入门java将近两年的时间,曾经迷惘过,一直想知道java的具体学习路线,看过了许许多多的java经验分享的帖子,评论,以及其他各种培训机构所谓的学习路线,发现没有一个符合我个人需求的学习路线,根据个人实际的...
  • 【UCOSIII】UCOSIII的中断和时间管理

    万次阅读 2018-06-28 19:36:03
    STM32中是支持中断的,中断是一个硬件机制,主要用来向CPU通知一个异步事件发生了,这时CPU就会将当前CPU寄存器值入栈,然后转而执行中断服务程序,CPU执行中断服务程序的时候有可能有更高优先级的任务就绪,...
  • SpringCloud面试题(一)

    万次阅读 多人点赞 2019-04-24 22:16:30
    SpringCloud面试题(一) 大家好,我是酷酷的韩~下面提供一些整理的springcloud面试题 一.微服务的优点缺点?说下开发项目中遇到的坑?...5.易于第三方集成 6.微服务只是业务逻辑的代码,不会和HTML,CSS...
  • 安装SQLServer2008失败

    万次阅读 2019-05-07 10:02:39
    由于操作系统不同(64位32位)和可能安装的环境不一样再或者安装SQL 2008的时候已经安装SQLServer相关其他版本,因此可能会遇到问题。  问题1:安装sql server 2008 R2,安装过程中提示错误:此计算机上安装了 ...
  • C#基础教程-c#实例教程,适合初学者

    万次阅读 多人点赞 2016-08-22 11:13:24
    一章 C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和Web应用程序。当然仅靠一章的内容就完全掌握C#语言是不可能的,...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     QQ客户端登录界面,中部有个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA...
  • 《图书管理系统》毕业论文

    万次阅读 多人点赞 2008-11-24 11:13:00
    图书管理系统毕业论文图书馆管理系统目录 0 前言 1系统设计1.1系统目标设计 1.2开发设计思想 1.3开发和运行环境选择 1.4系统功能分析 1.5系统功能模块设计 2数据库设计2.1数据库需求分析2.2数据库逻辑结构...
  • (1):根据各项活动的活动时间计算各个事件的最早时间与最迟时间,并填入图中事件2-8相应位置。 (2):写出关键事件。 答:最早时间:从前往后计算; 最迟时间:从后往前计算。 关键事件:即开始时间和结束时间...
  • 工作感悟-时间管理

    万次阅读 2018-12-03 21:00:48
    关于睡眠 关于恢复 肌肉心智的关系 关于输入和输出 关于优先级错乱 死胡同 泥潭 关于计划安排 关于时间管理具体执行 1、重要紧急四象限 把要做的任务按重要紧急来区分开,放到重要紧急四象限里:重要紧急,重要不...
  • 进入第三方平台的管理中心,查看并保存以下信息 确认预设的公众号消息与事件接收URL 把token和key保存项目的静态类中或者数据库中,方便随时调用 微信公众平台技术文档 ...
  • 配置微信公众号当普通微信用户向公众号发送消息或者微信公众号进行互动触发某些事件时,微信服务器将会把这些消息或者事件以XML数据包格式POST到开发者微信公众号管理平台中配置的服务器地址URL上。
  • “前几天有居民反映小区井盖没有了,通过网格化管理系统进行联动,马上就把井盖补上了,这以前是难以做到的。” “社区网格群里,有几个居民反映噪音扰民的问题,网格员根据大家提供的信息,对多家小门店进行了...
  • WPF开发教程

    万次阅读 多人点赞 2019-07-02 23:13:20
    ------WPF开发教程 目录 WPF基础入门....... 1. WPF基础之体系结构......2. WPF基础之XAML....3. WPF基础之基元素......5. WPF基础之路由事件... 33 6. WPF基础之布局系统... 46 7. WPF基础之样式设置和模板化... ...
  • 软件项目管理案例教程 第4版 课后习题答案

    万次阅读 多人点赞 2019-11-30 01:18:05
    一章 一、填空题 1.敏捷模型包括(4)个核心价值,对应(12)个敏捷原则。 2.项目管理包括(启动过程组)、(计划过程组)、(执行过程组)、(控制过程组)、(收尾过程组)5个过程组。 二、判断题 1、搬家属于...
  • ITIL 事件管理和事故管理的区别

    万次阅读 2011-06-10 10:40:00
    IITL普及已经深入到各行各业,我们不仅仅是要学习其规范,更应注重如何应用其精华,结合工具化管理平台来提升我们的IT运维质量,唯有实践中不断改进,才能真正实现ITIL本土化,为我们的IT运维事业服务。...
  • 时间管理优先矩阵

    千次阅读 2014-05-21 20:25:00
    时间管理优先矩阵(Prioritization Matrix) http://wiki.mbalib.com/wiki/时间管理优先矩阵 新一代的时间管理理论,把时间按其紧迫性和重要性分成 ABCD四类,形成时间管理的优先矩阵。如下图所示:    图:...
  • FreeRTOS学习笔记——FreeRTOS 时间管理

    万次阅读 2018-06-16 09:54:14
    延时函数属于FreeRTOS 的时间管理,本章我们就来学习一些FreeRTOS 的这个时间管理过程,看看调用延时函数以后究竟发生了什么?任务是如何进入阻塞态的,延时完成以后任务又是如何从阻塞态恢复到就绪态的,本章.....
  • 免费的Access数据库员工管理系统下载前言:满足大多数志指尖用户的要求,今天给大家带来一个志指尖团队自己用Access开发的数据库员工管理系统。下面就给大家介绍一下本系统的大概功能!网上有许多员工管理系统的...
  • 今天参加了部门组织的一个分享会,主要是关于职场心态职场沟通的内容,职场心态主要是通过对MBTI和职场锚的测试结果做分析,内容较多省略。职场沟通方面,技术经理讲到了两个象限,即时间管理四象限沟通四象限。
  • Web测试和App测试区别

    万次阅读 多人点赞 2018-10-27 14:14:40
    WEB测试和应用测试从流程上来说,没有区别...他们的主要区别在于具体测试的细节和方法有区别,比如:性能测试,WEB测试只需要测试响应时间这个要素,应用测试中还需要考虑流量测试和耗电量测试,兼容性测试:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 575,133
精华内容 230,053
关键字:

在时间与事件管理第三步