【订单模块】
创建订单 商品信息 订单列表 订单详情 取消订单
订单列表 订单搜素 订单详情 订单发货
【创建订单】 购物车勾选商品 涉及 Cart Product => 一个商品 以及 购买数量
【计算总价】遍历 OrderItem集合
【生成订单】订单项目,收货人信息 涉及 shipping,orderItem集合
【订单号生成规则】涉及并发,高并发应未雨绸缪放一批订单号在缓存池里。
【批量插入数据】订单号是生成的,要为每一个 orderItem 设置,再<foreach>插入。
【减少库存】订单生成后,遍历orderItem集合,都买下了哪些
【清空勾选 购物车】遍历下用户的 cart集合,删除
【返回前端 OrderVO、OrderItemVO(一对多)、ShippingVO】按接口返回数据。
【枚举验证】values 方法可以取到 枚举实例的集合
public static PaymentType codeOf(int code){
for (PaymentType paymentType:values()){
if (paymentType.getCode() == code){
return paymentType;
}
}
throw new RuntimeException("找不到对应的PaymentType枚举");
}
=============================================
【取消订单】已经付款的 Order 不能取消
【获取订单购物车商品信息 预览功能 】主要可以看到 已勾选 、 计算总价
【管理员订单发货】已付款状态的订单可以发货 , 所以总的来说都是 和业务流程相关。
~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~ ~~ ~ ~ 阿里云 服务器部署 ~ ~ ~ ~~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
【云服务器申请、配置】
ECS 自己配置。
【搭建集群 注意】 网络类型(经典、专用) 地域()
【安全组】建立于 iptables 之上 , 至少开放 SSH 22端口,可以设置为只通过防火墙配置。
【可升降硬件配置 注意】 系列之间是隔离的
【带宽】个人博客 1Mbps
【公共镜像】自己配置 centos6.8
从实例列表得到一个,公网 ip
ssh root@ip地址
yes // dba 用户
// 系统用户 root 权限
useradd -d /usr/geely -m geely
passwd geely
sudo vim /etc/sudoers mkdir /developer
sudo chown -R geely /developer 归属
sudo chmod u+w -R /developer
sudo chmod u+x -R ...
sudo chmod u+r -R ...
// 开发用户
// 测试
【域名申请、配置、备案】 阿里云万网 简化备案流程
侧栏域名与网站 》域名注册 》实名认证 》右上角备案 》申请去备案
和服务器的绑定 》 域名 》 解析 (可添加修改,比如对应 nginx 配置转发)
①【源配置 HELP】https://opsx.alibaba.com/mirror
②【线上环境】jdk tomcat maven nginx vsftpd git mysql iptables
rpm -qa | grep jdk cd / mkdir developer cd developer sudo mkdir setup cd setup sudo wget oraclejdkurl mv 重命名 sudo chmod sudo rpm -ivh jdk.rpm cd /usr/java/jdk sudo vim /etc/profile
文件内容 source /etc/profile
cd /developer wget tomcat sudo tar -zxvf tar.gz cd apache-tomcat sudo vim conf/server.xml 文件内容 查找8080 加上 URIEncoding="utf-8" cd bin sudo ./startup.sh 验证 公网ip:
cd /developer
sudo wget maven...
sudo tar -zvxf 建议配置成阿里云 maven 仓库
sudo yum -y install vsftpd cd /
mkdir product
cd product
mkdir ftpfile
sudo useradd ftpuser -d /product/ftpfile -s /sbin/nologin
sudo chown -R ftpuser.ftpuser ./ftpfile
ll sudo passwd ftpuser
cd /etc/vsftpd
sudo vim chroot_list
文件内容 ftpuser sudo vim /etc/selinux/config
disabled
sudo setsebool -P ftp_home_dir 1 sudo mv vsftpd.conf vsftpd.conf.bak
sudo wget // 配置
cd /developer/setup sudo wget sudo yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel sudo tar -zxvf cd nginx-1.10. sudo ./configure sudo make sudo make install cd /usr/local/nginx
cd conf sudo vim nginx.conf
文件内容 include vhost/*.conf; sudo mkdir vhost
cd vhost wget...配置 sudo sbin/nginx 验证 80端口
sudo rpm -qa | grep mysql-server sudo yum -y install mysql-server sudo vim /etc/my.cnf
// utf8mb 支持emoji
文件内容 character-set-server=utf8
default-caracter-set=uft8 sudo chkconfig mysqld on sudo chkconfig --list mysqld
2345on 自启动 sudo service mysqld restart mysql -u root select user,host,password from mysql.user; set password for root@localhost = password('密码');
set password for root@xxxx = password('密码'); exit mysql -u root -p delete from mysql.user where user=''; flush privileges; insert into mysql.user(host,user,password) values('localhost','mmall',password('密码')); ============== create database `mmall` character set utf8 COLLATE utf8_general_ci; flush privileges; grant all privileges on mmall.* to mmall@localhost identified by 'mmall用户密码'; =====================
show databases;
use mmal;
source /developer/mmall.sql;
git安装依赖
sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils- MakeMaker sudo wget sudo tar -zxcf cd git-folder sudo make prefix=/usr/local/git all
sudo make prefix=/usr/local/git install
sudo vim /etc/profile
export 下 ================ git config --global user.name ''
git config --global user.email ''
git config --global core.autocrlf false
git config --global core.quotepath false
git config --global gui.encoding utf- ssh-keygen -t rsa -C '邮箱'
ssh-add ~/.ssh/id_rsa
eval `ssh-agent`
ssh-add ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub
拷贝粘贴到 gittee
cd /etc/sysconfig/
ll 初始化iptables
sudo iptables -P OUTPUT ACCEPT
sudo service iptables save
备份 sudo mv iptables iptalbles.bak sudo wget
sudo vim iptables
文件内容 #注释
sudo service iptables restart
【自动发布 shell 脚本】 =》 【jekins 自动化集成】
mkdir /developer/git-repository
git clone gitee ===========
sudo vim /developer/deploy.sh
文件内容 改下目录 比如 mmall => mmall_learning
改下分支 sudo ./deploy.sh
echo "===========进入git项目happymmall目录============="
cd /developer/git-repository/mmall
echo "==========git切换分之到mmall-v1.0==============="
git checkout mmall-v1.
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./webapps/ROOT.war
echo "======拷贝编译出来的war包到tomcat下-ROOT.war======="
cp /developer/git-repository/mmall/target/mmall.war /developer/apache-tomcat-7.0./webapps/ROOT.war
echo "============删除tomcat下旧的ROOT文件夹============="
rm -rf /developer/apache-tomcat-7.0./webapps/ROOT
echo "====================关闭tomcat====================="
/developer/apache-tomcat-7.0./bin/shutdown.sh
echo "================sleep 10s========================="
for i in {..}
do
echo $i"s"
sleep 1s
done
echo "====================启动tomcat====================="
/developer/apache-tomcat-7.0./bin/startup.sh
【线上验证】
拷贝外网 ip到 域名列表》解析》
【ping 直接检查域名 最新的解析】ping img.mmall.com
【重新部署】修改本地项目 git 提交 sudo .deploy.sh
【tomcat 日志查看 部署情况】tailf logs/catalina.out
【ftp 上传文件】ftp:// 直接查看是否上传
返回url <= vhost/img.mmall.com.conf ,查看 location位置
sudo chown ftpuser img/
sudo chgrp ftpuser img/
sudo chmod g+w img/