初级企业电商网站的设计

1 篇文章 0 订阅
1 篇文章 0 订阅

portal :www.upupgogogo.cn

admin : admin.upupgogogo.cn(xiaowang 147258 可以查看别改)

资料以及源码:learning.upupgogogo.cn

小游戏:2048.upupgogogo.cn

1.准备的工具和环境

1.1Windows工具:jdk,tomcat,meavn,git,mysql,测试软件postman(其他的也行),支付宝加密工具(支付接口所需),natapp(支付宝回调需要内网穿透)

1.2.linux(线上):jdk,tomcat,meavn,git,mysql,nginx,ftp,防火墙的配置,shell脚本

基本环境配置:


export JAVA_HOME=/usr/java/jdk1.7.0_80

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export MAVEN_HOME=/developer/apache-maven-3.0.5

export NODE_HOME=/usr/local/node-v4.4.7-linux-x64

export RUBY_HOME=/usr/local/ruby

export CATALINA_HOME=/developer/apache-tomcat-7.0.73



export PATH=$PATH:$JAVA_HOME/bin:/usr/local/git/bin:$CATALINA_HOME/bin:$MAVEN_HOME/bin:$NODE_HOME/bin:/usr/local/bin:$RUBY_HOME/bin



sell:

echo "===========进入git项目happymmall目录============="

cd /developer/git-repository/upupgogogo





echo "==========git切换分之到upupgogogo-v1.0==============="

git checkout v1.0



echo "==================git fetch======================"

git fetch



echo "==================git pull======================"

git pull





echo "===========编译并跳过单元测试===================="

mvn clean package -Dmaven.test.skip=true





echo "============删除旧的ROOT.war==================="

rm /developer/apache-tomcat-7.0.73/webapps/ROOT.war





echo "======拷贝编译出来的war包到tomcat下-ROOT.war======="

cp /developer/git-repository/upupgogogo/target/mmall.war  /developer/apache-tomcat-7.0.73/webapps/ROOT.war





echo "============删除tomcat下旧的ROOT文件夹============="

rm -rf /developer/apache-tomcat-7.0.73/webapps/ROOT







echo "====================关闭tomcat====================="

/developer/apache-tomcat-7.0.73/bin/shutdown.sh





echo "================sleep 10s========================="

for i in {1..10}

do

	echo $i"s"

	sleep 1s

done





echo "====================启动tomcat====================="

/developer/apache-tomcat-7.0.73/bin/startup.sh

 

2.数据库的设计

2.1简单说明

数据库整体设计没有采用外键,有些字段会直接写入,操作可能会麻烦,但是查询的效率会比较高,删除的耦合度也降低了许多,整体都设计了时间戳,以及较好的索引。

2.2各个表的特别说明

用户表:这里把门户和后台整合在一起,用role字段来辨别,这里通过question和answer来帮助用户找回密码


分类表:通过parent_id字段来查询上级目录和子目录,需要特别说明的是parent_id为0时是顶级目录


商品表:sub_images用于保存该商品所有图片的所存在ftp服务器的地址,main_image把sub_images的第一个图片地址保存在里面,用于前端快速的查询,status判断是否下架,stock记录库存


购物车表:checked判断是否勾选,用来处理商品总价,quantity来记录该商品总价格,user_id和product_id来分别记录用户的id和商品id


地址表:这里就是记录一下用户的地址


订单总表:除了设计id字段,还有一个order_id来记录一个随机生成的订单号,status来记录订单的状态,payment_type来表达支付的平台,多加四个时间戳,payment_time支付时间,send_time发货时间,收货时间,close_time订单关闭时间,


订单子表:这里储存了product_id,product_name,product_image,虽然可以通过product_id来查询商品信息,但是由于这里不需要特别多商品的字段信息,可以直接存储这些字段,优化了查询时间


支付表:user_id,order_no,platform_number,pay_platform分别表示用户id,订单号,支付流水号,支付平台




3.后台初步设计

3.1整体的抽取

1.定义一个高复用的响应对象(statue,msg,date)用来返回给前端

2.定义定义一个枚举用来封装一些状态(code,msg)

3.定义一个const用来封装一些常量,避免在项目中硬编码

3.2VO的设计

由于前端多需要的数据可能会和你设计的pojo有差别,这时你需要从数据中提取pojo后转换成所需要的vo

3.3工具类的定义

1.需要定义一个读取配置文件的工具类,这需要值得一提的就是可以在静态代码块里面可以进行io的读取并放在可以储存键值对的数据结构,在整个项目运行过程中只加载一次

2.定义一个FTPUtil,这个工具类主要用来连接ftp服务器并上传文件

3.定义一个控制精度的工具类,由于jdk所提供的两个浮点类型数据(double,float)都有精度缺失的问题,通过BigDecimal来进行转换

4.定义一个md5加密的工具类,避免数据泄露

4.后台接口设计

4.1后台接口整体设计思想

control接受到数据后先进行权限控制,然后把参数给service,然后在service进行参数控制,根据需要在dao进行dt操作提取pojo,在service封装vo再通过高复用响应对象封装好vo返回给control,control通过json序列化ServerResponse返回给前端

4.2user接口设计

这里主要说明的就是用户找回密码的接口设计,定义一个token,这里token的主要作用就是在一个有效时间保存一个键值对

4.3category接口设计

这里主要设计了一个递归算法来把一个id的所有下级id查询出来

4.4product接口设计

这里主要就是常规的查询,分页(分页采用PageInfo),修改状态,上传或更新商品(在上传或者更新之前,前端会先进行图片的上传,然后前端获得图片的地址)

4.5cart接口设计

这里封装了一个高复用的方法,每次进行cart操作后都会调用这个高复用的方法来进行封装CartVo,处理库存

4.6支付接口设计

由于支付和订单两个接口耦合度很高,只定义了一个orderControl来写支付和订单接口,支付接口主要是先把订单号和商品信号等等一些信息传给支付宝,然后获得支付二维码并存储在ftp服务器上,然后写一个支付宝回调接口,用来更新订单信息和上传支付信息到dt,当支付成功后返回success给支付宝(停止回调)


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值