1网站管理员模块
网站管理员包括普通网站管理员和超级网站管理员。网站管理员,有删除、更改、增加用户资料的权限;可以审核店铺申请,管理已经通过审核的店铺,包括增加一个卖家管辖的店铺、更改店铺资料、关闭该店铺;可以更改店铺的类别,包括增加一个新的类别或者删除一个已有的类别,同时指定拥有该类别的店铺页面的默认风格;可以在操作页面加入网站的界面风格选择,同时增加店铺某一类别的界面风格的选择;也要实现对广告位的管理,包括申请广告位的店铺的选择,店铺打折信息的实时发布以及在对应的时间与时段广告位的正确发布;超级管理员拥有普通网站管理员的管理权限以及可以选择查看普通网站管理员所做的所有操作。员模块店铺管理员包括店铺卖家、店铺经理与店铺客服人员。对于所有的店铺管理员来说,均可以删除、更改、增加商品。店铺卖家与店铺经理可实现对商品的增加、删除、上架、下架等处理。只有上架的产品才可以被网站用户看到并加入购物车;可以设定增加的商品的描述信;以增加、删除、修改店铺的显示目录,同时制定的目录可以有子目录。店铺经理拥有店铺卖家与店铺客服人员的权限以及可以选择查看店铺卖家与店铺客服人员所做的所有操作。店铺包括三种店铺:综合体店铺、精品馆和精品店。每种店铺拥有的商品数量限制,商品上传图片大小以及指定店铺风格均不同。综合体店铺可以允许其他店铺加盟该店铺,为加盟店铺增加广告位,并管理自己和加盟店铺的页面风格。
2用户流程模块
用户可以在任意界面进行登录和注册,如果用户没有登录,不允许用户查看购物车以及进行之后的操作;可以通过首页目录或者广告位进入卖家界面进行选购商品;还可以在首页切换自己希望拥有的网站界面风格;用户可以通过搜索关键字查找相关的商品并进行查看。在进行选择商品加入购物车完毕之后,可以支付自己的订单。在商品到达之后,用户可以选择退货或进行对商品的评价。
3重要模块model层类设计
3.1广告位管理相关model层
AdInfo类:描述每一个广告位的信息,其中包括:id(Integer);ad_number(Integer);real_storeInfo(StoreInfo);image_url(String);apply_time(Date);price(Double);apply_people_name(String);email(String);credit_card_number(String);telephone_number(String);status(String);date_string(String);apply_time_long(Integer);discount(Double);final_time(Date)。ApplyAdInfo类:描述正在等待申请的每一个广告位的信息,其中包括:id(Integer);ad_id(Integer);storeInfo(StoreInfo);image_url(String);apply_time(Date);apply_people_name(String);email(String);credit_card_number(String);telephone_number(String)。StoreInfo类:描述每一个店铺的信息;其中包括:id(Integer);store_name(String);goods_number(Integer);open_time(Date);status(String);total_price(Double);reason(String);seller(Seller);store_type(StoreType);ad_status(String)。DiscountCategory类:描述每一种广告位打包信息,其中包括:id(Integer);price(Double);discount_list(List<AdInfo>);storeInfo(List<StoreInfo>)。
3.2用户管理相关model层
User类:描述所有用户的信息,其中包括id(Integer),username(String),password(String),regist_time(Date),last_login(Date)。Seller类:描述所有店铺管理员信息,继承User类。其中包括:seller_credit(Integer);phone_number(String);email_address(String);image_url(String);real_name(String);sex(String);address(String);education(String);storeInfo(StoreInfo);id_card_number(String);category(String)。Manager类:描述所有网站管理员信息,继承User类。其中包括:birthday(Date);phone_number(String);email_address(String);image_url(String);real_name(String);sex(String);address(String);education(String)。Customer类:描述所有顾客信息,继承User类。其中包括:birthday(Date);phone_number(String);email_address(String);image_url(String);real_name(String);sex(String);address(String);education(String);occupation(String);status(String);remainMoney(Double)。
4重要模块算法设计
4.1广告位管理算法设计
广告位是根据不同时间以及不同时间段来进行收费的。打包的套餐会将不同价位的广告位打包进行销售,将价格略贵以及价格便宜的打包至一起,用更优惠的价格售出。如果售出的广告位除了打包套餐中的广告位剩余的广告位数量不小于3的话,则将这些剩余的广告位总价格乘以0.8,最终的所有套餐总价格与剩余的广告位总价格之和即为店铺管理员应付的价格。根据用户选择的广告位获得多个广告位id,根据广告位id分别获得广告位实例(即类AdInfo的实例),从而获得各个广告位的价格。找出所有可能组成的套餐组合,计算各个组合的价格,再循环比较所有的组合价格,得到最低价,通知店铺管理员最优组合的套餐类别以及其余无法打包进入套餐的广告位,告知店铺管理员价格明细及最终价格,如果店铺管理员同意继续申请,则继续广告位申请操作,店铺广告位进入申请等待状态。具体算法如下。用List<Integer>iids记录店铺管理员申请的广告位id,用List<DiscountCategory>记录所有的打包套餐,用List<List<Integer>>apply_discount_list记录所有的广告位组合的店铺id序列。在对List<List<Integer>>的循环遍历中嵌套两次循环遍历。在最外层的循环遍历中,依次对每一个DiscountCategory进行遍历。在循环中,依次进行两次循环遍历,第一次循环遍历记录所有出现广告位组合的DiscountCategory的id,第二次遍历从第一次出现广告位组合的DiscountCategory的id开始遍历,逐步寻找记录所有的套餐组合。计算所有可能的广告位打包的情况并分别计算出广告位的价钱,最优组合(价格最低的组合)即为店铺管理员最终选择的组合。
4.2订单优惠管理算法
订单优惠包括店铺优惠和全网优惠。全网优惠是指顾客购买的商品金额大于一定数值时进行打折或者是免运费等优惠活动。店铺优惠是指店铺内的部分商品进行打包套餐销售或者是部分商品进行打折销售,优惠活动由卖家管理员进行操作。在结算订单时,根据顾客购买的商品按照不同的店铺进行分类。先分别根据不同店铺的优惠条件计算顾客在不同店铺中购买商品的总金额,再将其加和用于判断是否符合全网优惠的条件以及参与全网优惠后的商品价格。在计算一个店铺的所有商品的优惠价格时,分别对该店铺与购买商品相关的优惠政策进行遍历,找出所有的可能情况后进行价格计算比较,价格最低的方法即为顾客在该店铺购买商品的最终价格。
5结束语
电子商务购物网站已经越来越受到大家的青睐并逐渐成为许多人购物的主流方式。它使人们能够避免旅途的劳累、时间的拥挤而充分根据自己的情况进行更大范围地、更廉价的购物选择。电子商务购物网站的便捷将会让它受到越来越多人的喜爱,此次开发的电子商务购物平台也正是为了迎合大众的需求。
作者:师温馨 单位:厦门大学