目 录
1 前言 1
1.1 研究的背景 1
1.2 研究的目的和意义 1
1.2.1 研究目的 1
1.2.1 研究意义 2
1.3 研究现状 2
1.3.1 服装MTM定制研究现状 2
1.3.2 WebApp研究现状 3
1.4 研究内容 4
2 需求分析 4
2.1 功能需求 4
2.2 涉众及用例 4
2.3 主要用例的事件流描述 6
2.3.1 添加订单 6
2.3.2 处理发货 8
2.4 非功能需求分析 9
3 系统总体设计 9
3.1 功能模块划分 9
3.2 系统架构设计 11
3.3 系统包结构 12
3.4 关键技术简介及应用 14
3.4.1 Node.js 14
3.4.2 MongoDB 14
3.4.3 AngularJS 15
4 系统详细设计 16
4.1 登陆模块 16
4.2 添加订单模块 16
4.3 顾客模块 17
4.4 发货模块 18
4.4 数据库设计 19
5 系统实现 21
5.1 WebApp移动端实现 21
5.1.1 登陆界面 21
5.1.2 添加用户界面 21
5.1.3 录入用户量体数据界面 22
5.1.4 添加订单界面 23
5.2 后台管理系统实现 23
5.2.1 支付处理界面 23
5.2.2 产品管理界面 24
5.2.3 图表统计界面 25
6 总结与展望 25
6.1 总结 25
6.2 展望 26
参考文献 27
附录 28
附录1 数据库表 28
致谢 36
1.4 研究内容
首先,本文对某服装MTM定制有限公司进行业务调研,熟悉整个业务流程,了解目前传统业务形式,传统业务形式所存在的问题缺陷以及信息化的具体需求。同时,本文对目前比较成熟并类似的订单系统进行使用,熟悉学习其前端的设计,交互过程,以大致确定目标系统所需要实现的效果。本文完成的具体内容如下:
(1) 了解并分析某服装MTM定制公司的业务流程,确定服装定制订单系统的功能模块。
(2) 对MTM订单系统进行具体的需求分析,确定服装定制订单系统涉众以及用例等。
(3) 对目前市面上类似的订单系统进行体验及分析其交互设计,完成该系统的原型交互设计以及其UI设计。
(4) 根据业务需求,完成改订单系统数据库设计。
(5) 搭建该系统的开发环境,系统框架,完成主要功能代码设计。
(6) 完成服装MTM定制订单管理系统,对该系统进行系统测试。
2 需求分析
2.1 功能需求
根据前期对某服装MTM定制有限公司的调研分析了解,该服装MTM定制订单管理系统需要实现以下几个功能点:
(1) 量体设计师通过工号密码登陆,可以在该系统添加并管理顾客个人信息以及对应量体数据,根据顾客的个人体型及需求进行下单,并且可以实时查阅历史定制状态。
(2) 量体设计师可对不合身的产品进行提交回厂维修申请。
(3) 财务人员可在PC后台管理系统上进行实时查阅新的订单,顾客完成支付转账后,核对顾客信息并进行支付处理。
(4) 后台人员对已支付的订单进行入厂生产,记录其订单状态;并且对已生产完成的订单进行发货处理,记录该订单的发货相关信息。
(5) 系统管理员可以在后台管理平台上查询订单的具体信息,对员工进行管理,对产品进行管理;查询销售报表信息。
2.2 涉众及用例
本系统用例图,如图1 所示,其中上面部分为后台管理平台,下面部分为WebApp服装定制下单平台。该服装MTM定制订单管理系统的参与者有量体设计师、财务人员、后勤人员以及系统管理员等。其中,量体设计师参与的用例有管理顾客信息,包括管理顾客个人基本信息以及顾客的量体数据、添加订单、管理合作店、申请维修等用例;财务人员参与的用例有查询订单和处理支付;后勤人员参与的用例有查看订单、下单以及发货;系统管理参与的用例有查看订单、管理员工、管理产品和查看销售报表。表1 简要地描述了本系统涉及的主要用例。
/**
* Des
*/
var userMethod = require("../dao/userDAO").userMethod;
exports.login = function (req, res){
userMethod.findByName(req.body.username, function (err, doc){
if(!err && doc && req.body.password === doc.password){
var user = {
username: req.body.username,
password: req.body.password
};
req.session.user = user;
res.send({code:200, msg:"成功(本条消息来自后台)"});
}else{
res.send({"code":201, msg:"用户名或者密码错误(本条消息来自后台)"});
}
});
//if(req.body.username && req.body.password){
// res.send({code:200, msg: "登录成功(本条消息来自后台)"});
//}else{
// res.send({code: 201, msg: "帐号或密码错误(本条消息来自后台)"});
//}
};
exports.register = function (req, res){
userMethod.findByName(req.body.username, function (err, doc){
if(!err){
if(!doc){
var newUser = {username: req.body.username, password: req.body.password};
userMethod.save(newUser, function (err){
if(!err){
res.send({
code: 200,
msg: "注册成功!(本条消息来自后台)"
});
}
});
}else{
res.send({
code: 201,
msg: "次用户名已被占用!(本条消息来自后台)"
});
}
}
});
};