图5-12 查询订单页面
5.2后台模块设计与实现
根据分析,后台模块共设计七个Action控制器类:DingdanAction类、GonggaoAction类、IndexAction类、ProductAction类、PublicAction类、TypeAction类和UserAction类。TypeAction类负责与商品分类相关的某些操作。其它控制器类的作用与前台模块相似。后台模块控制器类图如图5-13所示。
Action Class#name#view#error+__construct()#isAjax()+display()#fetch()#buildHtml()+assign()DingdanAction Class+lookdd()+deletedd()+orderdd()+saveorder()+finddd()()GonggaoAction Class+admingonggao()+addgonggao()+savexiugaigonggao()+editgonggao()+editpinglun()+deletepingjia()+savenewgonggao()+deletegonggao()IndexAction Class+index()ProductAction Clas+addgoods()+editgoods()+deletegoods()+savechangegoods()+savenewgoods()+changegoods()TypeAction Class+addleibie()+showleibie()+saveaddleibie()+xiugaileibie()+savexiugailb()+deletelb()PublicAction Class+login()+logout()+chkadmin()UserAction Class+edituser()+lookuserinfo()+changadmin()+saveadmin()+deleteuser()+dongjieuser()
图5-13 后台模块控制器类图
后台模块需要用到数据库中所有的七张表,所以后台模块共设计七个模型类:DingdanModel类、GonggaoModel类、PingjiaModel、ShangpinModel类、TypeModel类、UserModel类和AdminModel类。七个模型类都继承ThinkPHP框架模型类—Model类。后台模块模型类图如图5-14所示。
Model Class#db#pk#tablePrefix#name#dbName#tableName#trueTableName+__construct()+_initialize()+add()+save()+delete()+select()+find()+setField()+getField()+create()+join()+getPk()AdminModel ClassDingdanModel ClassGonggaoModelPingjiaModel ClassShangpinModel ClassTypeModel ClassUserModel
图5-14 后台模块模型类图
5.2.1管理商品模块设计与实现
管理员登录后,在后台管理页面,点击“添加商品类别”,可以进行添加商品类别操作。本次设计中商品的类别分为两级。其中一级分类的父类别名称设置为“顶级”,父类别编号设置为0。二级分类的父类别名称和编号可以从一级分类中选取。系统调用TypeAction类的addleibie()方法,通过TypeModel模型类从数据库中取出所有一级分类的名称和编号,注入到模板文件addleibie.html中,并调用该模板文件显示添加类别页面。管理员输入类别名称,选择类别等级和父级名称,完成操作。系统调用saveaddleibie()方法,通过TypeModel类从type表中取出数据,判断是否已有该类别。若该类别已存在,则弹窗显示错误信息,拒绝该添加操作。若无该类别,则将新类别的信息插入到type表中。添加类别界面如图5-15所示。
图5-15 添加类别界面
管理员登录点击“商品类别管理”标签,系统调用TypeAction类的showleibie()方法,通过TypeModel模型类从数据库中取出所有分类的名称和编号,注入到模板文件showleibie.html中,并调用该模板文件分页显示类别信息。显示类别页面如图5-16所示。
图5-16 显示类别界面
管理员在显示类别页面点击某一类别的“更改”标签后,系统会调用TypeAction类的xiugaileibie()方法,通过TypeModel模型类从数据库中该分类的相关信息,注入到模板文件xiugaileibie.html中,并调用该模板文件显示修改类别信息页面。管理员可以修改类别的名称和父级类别。管理员确认修改后,系统调用savexiugailb()方法,通过TypeModel类在type表中更新该商品类别的信息。
管理员在显示类别页面可以点击每一个商品类别对应的删除复选框,删除该类别。系统调用TypeAction类的deletelb()方法,根据接收的商品类别编号通过TypeModel类从type表中删除商品类别信息,通过ShangpinModel类从shangpin表中删除所有从属于该类的商品信息。
管理员点击“添加商品”标签,可以进行添加商品操作。系统调用ProductAction类的addgoods()方法,通过TypeModel模型类从库中取出所有二级分类的名称和编号,注入到模板文件addlgoods.html中,并调用该模板文件显示添加商品页面。管理员在该页面输入商品具体信息,选择商品类别,上传商品图片,完成添加商品操作。系统调用savenewgoods()方法,通过ShangpinModel类将新的商品记录插入到shangpin表中。添加商品界面如图5-17所示。
图5-17 添加类别界面
管理员登录点击“修改商品”标签后,系统将调用ProductAction类的editgoods()方法,该方法通过ShangpinModel模型类从shangpin表中取出所有商品的信息,注入到模板文件editgoods.html中,并调用该模板文件分页显示商品记录。显示商品记录页面如图5-18所示。
图5-18 显示商品记录界面
管理员在显示商品记录页面单击某一商品的“修改”标签后,系统会调用ProductAction类的changegoods()方法,该方法通过ShangpinModel类从shangpin表中取出该商品的具体信息。系统将信息注入到模板文件changegoods.html中,并调用该模板文件显示修改商品信息页面。管理员可以在该页面修改商品的具体信息。管理员确认修改后,系统调用savechangegoods ()方法,根据接收到的商品编号通过ShangpinModel类
在type表中更新该商品的信息。
管理员在显示类别页面可以点击每一个商品对应的删除复选框,删除该商品。系统调用ProductAction类的deletegoods()方法,根据接收的商品编号通过ShangpinModel类从shangpin表中删除该商品信息。
5.2.2管理用户模块设计与实现
管理员单击“会员信息管理”标签后,系统调用UserAction类的edituser()方法,该方法通过UserModel类从user表中取出所有会员信息。系统将所有信息注入到模板文件edituser.html中,并调用该模板分页显示会员信息。显示会员信息页面如图5-19所示。
图5-19 显示会员信息页面
管理员可以在该页面点击“删除”复选框,删除某些会员信息。系统调用deleteuser(),该方法根据接收到的会员编号通过UserModel类从user表中删除会员记录。该方法同时也会通过GonggaoModel类删除会员的所有评论信息。管理员在该页面点击某一会员对应的“查看”标签,可以查看该会员的具体信息并管理该会员的状态。系统调用lookuserinfo()方法,该方法根据接收到的会员编号通过UserModel类从user表中取出该会员的详细数据。系统将数据注入到模板文件lookuserinfo.html中并调用该模板显示具体会员信息。显示具体会员信息页面如图5-20所示。
图5-20 显示具体会员信息页面
管理员在会员信息页面中点击“冻结会员”或“解除冻结”标签,系统调用UserAction类的dongjieuser()方法,该方法根据接收到的会员编号通过UserModel类在user表中修改该会员的的状态,然后返回显示会员信息页面。