4S店客户管理系统V10_第1页
4S店客户管理系统V10_第2页
4S店客户管理系统V10_第3页
4S店客户管理系统V10_第4页
4S店客户管理系统V10_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

4S店客户管理系统V1.0

详细设计说明书拟制人 日期2011年03月16日审核人 日期2011年03月16日批准人 日期2011年03月16日

历史修改记录序号版本号更改时间更改内容描述填写人1V1.02011-3-26建立2V1.02011-6-08修改34目录TOC\o"1-5"\h\z\o"CurrentDocument"1、引言 11.1、编写目的 1...预期读者 1...系统名称及版本号 1..任务提出者 1...项目承接者和实施者 1..面向的用户群体 1...\o"CurrentDocument"2、系统的组织结构 2...系统的组织架构图 3..\o"CurrentDocument"3、界面设计要求 4...基本原则 4...\o"CurrentDocument"界面设计样式 4..\o"CurrentDocument"其他界面约定 5..用户界面设计规则 5..\o"CurrentDocument"字体 5...\o"CurrentDocument"尺寸 5...\o"CurrentDocument"3.2.4自适应对象的尺寸改变 5..\o"CurrentDocument"4、程序描述 5...数据库设计 5...数据库接口 5...系统登录 1..0.4.5基本页面结构 1..3.\o"CurrentDocument"5、模块设计 2..5.模块一:数据库处理模块 2..5模块二:会员管理模块 2..5模块三:权限管理模块 2..6模块四:短信发送模块 2..7模块五:违章查询模块 2..7模块六:系统设置模块 2..81引言1.1、编写目的编写本详细设计说明书的目的在于详细的说明 4S客户管理系统的各个模块,确定系统的详细功能模块和数据结构,为下阶段开发工作提供依据。本手册作为系统的详细设计说明书,将为编码人员从事本系统的编写工作提供一套详实的、可操作性强的文档。1.2预期读者本文档的读者为4S店客户管理系统项目组开发小组成员、集成小组成员、测试小组成员、维护人员等。1.3系统名称及版本号中文名称:4S店客户管理系统系统版本:V1.01.4任务提出者项目组组长:XX1.5项目承接者和实施者XXX科技有限公司4S店客户管理系统项目组1.6面向的用户群体角色人员描述管理系统角色系统管理员管理整个系统的人员,分配分店用户分店管理员配置本店系统参数信息审批员审核短信发送系统服务角色业务管理员查看数据,添加数据等客户服务员查看数据、发送短信等系统服务角色最终用户获得信息2、系统的组织结构系统主要是依托在数据库上的B/S结构的管理系统,是对众多数据的管理和查看,而表现出来的功能模块,都与数据库操作相关。结合权限管理,合理限制各使用角色的操作过程,有效实现系统既定需求目标。系统的总体设计遵循如下的原则。1)系统应具有良好的适应性:能适应用户对系统的软件环境、管理内容、模式和界面的要求;2) 系统应具有可靠性:采用成熟的技术方法和软件开发平台,以保证系统在以后的应用中安全、可靠;3) 系统应具有较好的安全性:应提高安全机制和用户权限限制机制的完善程度,确保数据的受限访问;4) 系统应具有良好的可维护性:系统应易于维护、安装;5) 系统应具有良好的可扩展性:系统应适应未来信息化的要求,能方便地进行功能扩展,以建立完善的信息集成管理体系

2.1系统的组织架构图系统设置管理模块权限管理模块违章查询管理模块短信发送管理模块会员资料管理模块权限管理模块违章查询管理模块短信发送管理模块会员资料管理模块1) 数据库数据库是系统的基础,为了使系统便于安装和维护,结合需求中要求的数据数量等级,系统使用MYSQL数据库。2) 数据库管理模块为了使系统涉及的数据库相关操作更加简单可靠, 增加可读性和复用性,将数据库操作封装成模块,使用一个类来实现数据库的增、删、改、查功能。3) 权限管理模块权限管理模块包括权限检查和权限管理,权限通过单权限和角色来实现,首先建立操作员,为操作员分配角色,而对应的角色具有相应的权限,以此来实现权限的管理。权限的检验只检验单项权限,权限值为数字,单项权限为2的n(n取值0-20)次方计算出来的,角色所拥有的权限为各项权限值相加得到,通过“用户权限&该项操作所需权限>0”来检验是否具有该项权限。4) 系统设置模块系统设置模块主要是作为程序扩展的一个部分单独出来, 具有通用性,与系统具体功能无关,包括如下功能:A、 登录管理B、 菜单管理C、 页面自动生成D、字典表定义(键、值对应参数)5)违章查询管理模块该模块主要实现和违章数据库的接口,实现会员违章查询功能,查询模块与违章数据库使用直连接口,即直接查询违章数据库。6)短信发送管理模块该模块主要实现短信发送功能,与违章查询类似,短信发送模块使用直连数据库的方式,将信息发送到待发表中,短信发送功能的实现需要借助SP的短信网关,或者安装短信猫程序,接口则使用直接写入数据库这种模式。7)会员资料管理模块该功能是4s管理系统的核心功能,实现信息资料的录入、修改、查询、删除等功能,根据需求,编写相应的界面。3、界面设计要求3.1基本原则根据需求分析,对界面的要求主要为响应速度快、简洁美观、字体大小适中、功能列表清晰、颜色明快。结合需求,将界面设计为框架模式,分上、左、中、右4个模块,上部内容为系统名称、常用功能、当前时间、当前登录用户信息;左部内容为菜单,菜单分为大菜单和子菜单,主要是为了使功能分块清晰,使用户更容易找到需要的功能,左部可通过点击边缘按钮进行隐藏,使中部显示具有更大的窗口,方便用户查看和操作;中部内容为主要显示部分,操作功能、展示都在中部实现,是系统的主要部分;右部内容为帮助,默认隐藏不显示。3.1.1界面设计样式界面主要部分为灰色,装饰部分使用蓝色,按钮蓝色带花纹,菜单使用图片、文字相结合模式,表格使用深灰色1像素宽线条分割,操作以10*14像素大小图标美化。3.1.2其他界面约定界面尽量使用CSS样式表来定义视觉效果3.2用户界面设计规则3.2.1字体font-family:Arial,Helvetica,sans-serif;font-size:12px;3.2.2尺寸100%适应窗口大小3.2.3布局标题栏菜单主功能区帮助3.2.4自适应对象的尺寸改变100%自适应窗口大小4、程序描述4.1数据库设计数据库设计请参考《数据库设计》4.2数据库接口数据库接口封装成一个类db_mysql.php,程序代码如下:<?php/*士."""""""""""""""""""""""""""""""""""""ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff*SeaDMS士."""""""""""""""""""""""""""""""""""""ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff*/classdb{var$querynum=0;var$cn;functionconnect($dbhost,$dbuser,$dbpw,$dbname,$pconnect=0){if($pconnect){if(!$this->cn=@mysql_pconnect($dbhost,$dbuser,$dbpw)){$this->halt('CannotconnecttoMySQLserver');}}else{if(!$this->cn=@mysql_connect($dbhost,$dbuser,$dbpw)){$this->halt('CannotconnecttoMySQLserver');}}if($this->version()>'4.1'&&$GLOBALS['charset']){//ATTENTION:removethefollowinglineifyouwanttousethedefaultdatabasecharacterset.mysql_query("SETNAMES'gbk'",$this->cn);}if($this->version()>'5.0'){mysql_query("SETsql_mode=''",$this->cn);}if($dbname){mysql_select_db($dbname,$this->cn);

functionselect_db($dbname){returnmysql_select_db($dbname,$this->cn);}functionfetch_array($query,$result_type=MYSQL_ASSOC){returnmysql_fetch_array($query,$result_type);}&&functionquery($sql,$type=''){if($type=='UNBUFFERED'@function_exists('mysql_unbuffered_query')){&&$query=mysql_unbuffered_query($sql);}else{if($type=='CACHE'&&intval(mysql_get_server_info())>=4){$sql='SELECTSQL_CACHE'.substr($sql,6);}if(!($query=mysql_query($sql,$this->cn))&&$type!='SILENT'){$this->halt('MySQLQueryError',$sql);}}$this->querynum++;return$query;}functionaffected_rows(){returnmysql_affected_rows($this->cn);functionerror(){returnmysql_error($this->cn);}functionerrno(){returnintval(mysql_errno($this->cn));}functionresult($query,$row){$query=@mysql_result($query,$row);return$query;}functionnum_rows($query){$query=mysql_num_rows($query);return$query;}functionnum_fields($query){returnmysql_num_fields($query);}functionlist_tables($query){returnmysql_list_tables($query);}functionfree_result($query){returnmysql_free_result($query);functioninsert_id(){$id=mysql_insert_id($this->cn);return$id;}functionfetch_row($query){$query=mysql_fetch_row($query);return$query;}functionversion(){returnmysql_get_server_info();}functionclose(){returnmysql_close($this->cn);}functionhalt($message='',$sql=''){echo"MySQLQuery:$sql<br>Message:".$this->error();exit();}}?>登录需要登录名、密码和图片验证码,图片验证码使用数字验证码,在用户打开页面时通过checkcode.php文件生成,同时注册一个Session用于验证用户输入。checkcode.php弋码如下(需要php.ini开去gd2):<?$img_width=70; 〃先定义图片的长、宽$img_height=23;functioncreatpwd($len){〃根据需要,可以加入英文字母$word=array("0","1","2","3","4","5","6","7","8","9");srand((double)microtime()*1000000);for($i=0;$i<$len;$i++){$rand=rand();srand($rand);$single=$rand%10;$pwd.=$word[$single];}return$pwd;}$temp_pwd=creatpwd(4);session_register("temp_pwd");$aimg=imageCreate($img_width,$img_height); //生成图片ImageColorAllocate($aimg,255,255,255);//图片底色,ImageColorAllocate第1次定义颜色PHP就认为是底色了$black=ImageColorAllocate($aimg,0,0,0);//定义需要的黑色ImageRectangle($aimg,0,0,$img_width-1,$img_height-1,$black);/先成一黑色的矩形把图片包围//下面该生成雪花背景了,其实就是在图片上生成一些符号for($i=1;$i<=100;$i++){ //先用100个做测试imageString($aimg,1,mt_rand(1,$img_width),mt_rand(1,$img_height),"*",imageColorAllocate($aimg,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)));}//上面生成了背景,现在就该把已经生成的随机数放上来了。道理和上面差不多,随机数1个1个地放,同时让他们的位置、大小、颜色都用成随机数~~//为了区别于背景,这里的颜色不超过200,上面的不小于200for($i=0;$i<strlen($temp_pwd);$i++){imageString($aimg,mt_rand(3,5),$i*$img_width/4+mt_rand(1,10),mt_rand(1,$img_height/4),$temp_pwd[$i],imageColorAllocate($aimg,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)));}//Header("Content-type:image/png");//告诉浏览器,下面的数据是图片,而不要按文字显示ImagePng($aimg); //生成png格式ImageDestroy($aimg);?>登录时在数据库中验证用户名和密码,验证通过后,查询用户所属分店、角色、用户名、用户编号,再根据角色取得权限,并将这些值注册成为 SESSION,使之在总个会话过程有效。成功后跳转至主框架页面 frame.php。4.4权限检查权限检查在每一个页面开始都需要包含,名称为:login.php,用于检验用户是否合法登录,保证系统安全,程序代码如下:<?session_start();//检验用户是否登录if($_SESSION["session_user_power"]<=0){?><linkhref="main.css"rel="stylesheet"type="text/css"><tablewidth="300"border="0"align="center"cellpadding="6"cellspacing="0"class="d"><tr><tdalign="center"><fontcolor="#FF0000">你未登录或者权限不够进行此操作!</font><br><br>[<ahref="index.php"target="_parent">登录</a>]  [<ahref="javascript:window.close()">关闭窗口</a>]</td></tr></table><?exit();}?>权限检查语句如下所示:if(($session_user_power&亥页面所需操作权限)==0){echo"权限不足!";exit();}4.5基本页面结构因为大部分的功能页面,都是通过数据库操作来实现其功能,所以具有类似性,规定数据库相关操作页面,分为 3个基本页面,及浏览页面_view.php,编辑和添加页面_edit.php,功能实现页面_do.php,view页面实现数据库数据的查询、展示功能,edit页面实现用户输入功能,do页面将用户输入提交到数据库保存。View页面的大致结构,如需显示不同数据库表中的数据,则只需要修改主显示区域部分即可,其他部分可以复用:<?//权限检查require_once("login.php");//数据库require_once("opendb.php");//全局函数require_once("global.php");//操作权限检查if(($session_user_power&16)==0){echo"权限不足!";exit();}?><linkhref="main.css"rel="stylesheet"type="text/css"><scriptlanguage="javascript">//<!--functiondelmsg(id){if(confirm("真的要删除吗?")){window.location="car_series_do.php?action=delete&id="+id;}}//--></script><?//1为管理员权限,如果非管理员,则只能查看本分店的信息if(($session_user_power&1)==0)$addition="parent_id='".$session_company."'";else$addition="1";$url="&action=".$action;//根据关键字进行查询if($key_word!=""){$addition.="AND".$key."LIKE'%".$key_word."%'";$url.="&key=".$key."&key_word=".$key_word;}$addition="car_seriesWHERE".$addition;//分页if($pagesize<=0||$pagesize=="")$pagesize=30;if($cur_page=="")$cur_page=1;$max=$db->fetch_array($db->query("SELECTCOUNT(*)ascFROM".$addition));if(($max["c"]/$pagesize)==floor($max["c"]/$pagesize))//分页显示初始化$max_page=floor($max["c"]/$pagesize);//假如可以整除else$max_page=floor($max["c"]/$pagesize)+1;〃否则再加一页显示if($max_page==0)//如果总页数为0$max_page=1;//显示1页//排序if($orderby=="")$orderby="id";if($desc=="")$desc="desc";if($desc=="desc"){$img_src="images/down.gif";}else{$img_src="images/up.gif";}?><!—查询表单--><formname="form1"method="post"action="<?=$PHP_SELF?>?action=submit"><tablewidth="400"style="border:1pxsolid#999999;"cellspacing="0"cellpadding="3"class="d"><tralign="left"><tdwidth="30"><inputtype="button"value="添加"onclick="javascript:window.location='car_series_edit.php'"></td><tdwidth="80"><selectname="key"><optionvalue="id"<?if($key==id)echo"selected";?>>编号</option>voptionvalue="name"<?if($key==name)echo"selected";?〉〉车系v/option>v/select〉v/td〉vtdwidth="80"〉vinputtype="text"value="v?=$key_word?〉"size="10"name="key_word"〉v/td〉vtd〉<inputtype="submit"value="查询"> v/td〉v/tr〉v/table〉v/form〉v!—主显示区域开始--〉vtablewidth="400"border="1"style="border-collapse: collapse"bordercolor="#999999"cellspacing="0"cellpadding="3"class="d"〉vtralign="right"〉vtdcolspan="3"〉v?if($cur_page〉1){?〉vahref=v?=$PHP_SELF;?〉?cur_page=1v?=$url?〉〉v?}?〉首页</a> <?if($cur_page>1){?><ahref=<?=$PHP_SELF;?>?cur_page=<?=$cur_1;?><?=$url?>><?}?>上一页</a> <?if($max_page>1&&$cur_page<$max_page){?><ahref=<?=$PHP_SELF;?>?cur_page=<?=$cur_page+1;?><?=$url?>><?}?>下一页</a> <?if($max_page>1&&$cur_page<$max_page){?><ahref=<?=$PHP_SELF;?>?cur_page=<?=$max_page;?><?=$url?>><?}?>尾页</a> <?echo$cur_page."/".$max_page;?>  <?=$max["c"];?></td></tr><tralign="center"bgcolor="#E5E5E5"><td width="100" align="center"><ahref="<?=$PHP_SELF?>?orderby=id&desc=<?=$desc=="desc"?"asc":"desc"?><?=$url?>">编 号</a><?if(id==$orderby){?><img src="<?=$img_src?>"border="0"><?}?></td><td width="100" align="center"><ahref="<?=$PHP_SELF?>?orderby=name&desc=<?=$desc=="desc"?"asc":"desc"?><?=$url?>">车系</a><?if(name==$orderby){?><imgsrc="<?=$img_src?>"border="0"><?}?></td><tdwidth="100"align="center">操作</td></tr><?$addition.="ORDERBY".$orderby."".$desc."";$addition.="LIMIT".($cur_1)*$pagesize.",".$pagesize;$sql="SELECT*FROM".$addition;//echo$sql;$rss=@$db->query($sql);while($rs=$db->fetch_array($rss)){?><tr><tdwidth="100"align="center"><?=$rs["id"]?></td><tdwidth="100"align="center"><?=$rs["name"]?></td><tdwidth="100"align="center"><?if(($session_user_power&16)>0){?><ahref="car_series_edit.php?id=v?=$rs["id"]?>&action=edit">编辑</a><?}if(($session_user_power&16)>0){?><ahref="javascript:delmsg(<?=$rs["id"]?>);">删除</a><?}?></td></tr><?}?><tralign="right"><tdcolspan="3"><?$url.="&orderby=".$orderby."&desc=".$desc;if($cur_page>1){?><ahref=<?=$PHP_SELF;?>?cur_page=1<?=$url?>><?}?>首页</a> <?if($cur_page>1){?><ahref=<?=$PHP_SELF;?>?cur_page=<?=$cur_1;?><?=$url?>><?}?>上一页</a> <?if($max_page>1&&$cur_page<$max_page){?><ahref=<?=$PHP_SELF;?>?cur_page=<?=$cur_page+1;?><?=$url?>><?}?>下一页</a> <?if($max_page>1&&$cur_page<$max_page){?><ahref=<?=$PHP_SELF;?>?cur_page=<?=$max_page;?><?=$url?>><?}?>尾页</a> <?echo$cur_page."/".$max_page;?>  <?=$max["c"];?></td></tr><?if(($session_user_power&1)>0){?><tr><tdcolspan="3"><?echo$sql;?></td></tr><?}?></table><!—主显示区域结束-->Edit页面结构如下,如需要操作其他数据库,需要修改相应部分的代码:<?require_once("login.php");require_once("opendb.php");require_once("global.php");//权限检查if(($session_user_power&16)==0){echo"权限不足!";exit();}//如果是编辑,则需要将原数据库信息取出作为比较if($action=="edit"){//定义需要操作的数据库表$sql="SELECT*FROMcar_seriesWHEREid='".$id."'";$rs=$db->fetch_array($db->query($sql));//取得原信息内容$name=$rs['name'];}?><linkhref="main.css"rel="stylesheet"type="text/css"><formname="form1"method="post"action="car_series_do.php?action=<?if($action=="edit")echo"update";elseecho"insert";?>"><tablewidth="400"style="border:1pxsolid#999999;"cellspacing="0"cellpadding="3"class="d"><!—主操作区域开始--><tr><tdwidth="100"align="center">车系</td><tdwidth="300"><inputtype="text"name="name"value="<?=$name?>"></td></tr><!—主操作区域结束--><tralign="center"><tdcolspan="4"bgcolor="#CCCCCC"><inputtype="submit"name="Submit"value="提交"><inputtype="hidden"name="id"value="<?=$id?>">vinputtype="button"value="返回"onClick="javascript:history.back(-1)"></td>v/tr>v/table>v/form>Do页面的基本结构,根据需要修改相应的SQL语句即可:v?require_once("login.php");require_once("opendb.php");require_once("global.php");//权限if(($session_user_power&16)==0){echo"权限不足!";exit();}//处理增加、更新、删除if($action=="insert"||$action=="update"||$action=="delete"){//增加记录if($action=="insert"&&($session_user_power&16)>0){$sql="INSERTINTOcar_series(name,parent_id)VALUES('$name','$session_company')";}//修改记录elseif($action=="update"&&(($session_user_power&16)>0))

$sql="UPDATEcar_seriesSETname='$name'WHEREid='$id'andparent_id='".$session_company."'";}//删除记录elseif($action=="delete"&&($session_user_power&16)>0){$sql="DELETEFROMcar_seriesWHEREparent_id='".$session_company."'";}else{echo"参数错误";exit();}?><linkhref="main.css"rel="stylesheet"type="text/css"><tablewidth="400"style="border:1pxsolid#999999;"cellpadding="3"class="d"><?if($db->query($sql)){if($id=="")$id=$db->insert_id();?><tr><tdheight="42"align="center"><imgsrc="images/ok.jpg"></td>id='".$id."'andcellspacing="0"<tdalign="center">id='".$id."'andcellspacing="0"操作成功!</td></tr><tr><tdalign="center"colspan="2">[<ahref="car_series_edit.php">继续加入v/a>][<ahref="car_series_edit.php?action=edit&id=v?=$id?>">重新编辑</a>][<ahref="car_series_view.php">$看歹U表</a>]</td></tr><?}else{?><tr><tdheight="44"align="center"><imgsrc="images/nook.jpg"></td><tdalign="center">操作失败!<br><?=$sql?></td></tr><tr><tdalign="center"colspan="2">[<ahref="car_series_edit.php">继续加入</a>][<ahref="car_series_view.php">$看歹U表</a>]</td></tr><?}?>v/table><?}?>为了便于设计和编程,减少编程工作,根据规律,设计一个自动创建页面的程序,用来批量生成。该程序设计如下:1)选择需要操作的数据表选择需要创建管理页面的表:匚ar_inf□ ■-下一步2)编辑表字段的中文注释和排版格式为字段选^操作属性字段名1编辑显示字孵释 1对齐 1id|'1□□偏号100name|'□□1名肅100居中▼ 1parentid©n0所属公司wo居中▼操作列宽度100每页条数303)指定权限,为浏览、编辑、删除、添加指定相应的权限页面宽度显示页面/car_series_viephp添加.编辑页面|y'car_series_edit.php权限浏览会员測览〒编辑会负刪踪”删J除合员删涂▼丫忝力Q会员增加-[■五-爭[4)自动生成,完成了所有步骤自动生成的界面可以指定显示页面(view)和编辑页面(edit)的名称

5、模块设计5.1模块一:数据库处理模块a)模块名称软件系统名称4S店客户管理系统V1.0软件标识符模块标识符模块编写人复查人缶宀骨旦卷宗序号1编排日期2011.3.20b)模块开发情况表计划开始日期2011.4.1计划完成日期2011.4.30实际开始日期2011.4.1实际完成日期2011.4.30c)模块功能说明接口说明输入信息资料数据输出查询所需数据匕匕厶冃功说将数据写入数据库,将数据库数据读出到内存运行环境说明.运行于服务器上,操作员通过IE进行操作。调用关系说明调用模块无被调用模块d)模块设计说明该模块主要是将数据写入数据库,将数据库数据读出到内存5.2模块二:会员管理模块a)模块名称软件系统名称4S店客户管理系统V1.0软件标识符模块标识符模块编写人复查人缶宀骨旦卷宗序号2编排日期2011.3.23b)模块开发情况表计划开始日期2011.5.1计划完成日期2011.5.16实际开始日期2011.5.1实际完成日期2011.5.16c)模块功能说明

接口说明输入信息内容输出成功、失败匕匕厶冃功说对会员进行编辑、添加、删除运行环境说明运行于服务器上,操作员通过IE进行操作,对会员进行编辑、删除、添加。调用关系说明调用模块数据库处理模块被调用模块无d)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论