/*============================*/ /* Table: 用户表结构 */ /*============================*/ create table user ( /* 用户编号,自动增长 */ id int primary key not null auto_increment, /* 用户登录名 */ login varchar(20), /* 用户真实姓名 */ name varchar(20), /* 用户登录密码 */ pass varchar(20), /* 用户性别 */ sex varchar(20), /* 用户电话 */ phone varchar(20), /* 用户Email */ email varchar(20) ); /*=============================*/ /* Table: 订单状态表结构 */ /*=============================*/ create table status ( /* 状态编号,自动增长 */ id int primary key not null auto_increment, /* 订单状态 */ status varchar(10) ); /*=============================*/ /* Table: 购物车(订单)表结构 */ /*=============================*/ create table forder ( /* 订单编号,自动增长 */ id int primary key not null auto_increment, /* 收件人名字 */ name varchar(20), /* 收件人电话 */ phone varchar(20), /* 配送信息 */ remark varchar(20), /* 下单日期 */ date timestamp default CURRENT_TIMESTAMP, /* 订单总金额 */ total decimal(8,2), /* 收件人邮编 */ post varchar(20), /* 收件人邮编 */ address varchar(200), /* 订单状态 */ sid int default 1, /* 会员编号 */ uid int, constraint sid_FK foreign key(sid) references status(id), constraint uid_FK foreign key(uid) references user(id) ); /*=============================*/ /* Table: 购物项表结构 */ /*=============================*/ create table sorder ( /* 购物项编号,自动增长 */ id int primary key not null auto_increment, /* 被购买商品的名称 */ name varchar(20), /* 购买时商品的价格 */ price decimal(8,2), /* 购买的数量 */ number int not null, /* 所属商品编号 */ pid int, /* 此订单项,所属的订单编号 */ fid int, constraint pid_FK foreign key(pid) references product(id), constraint fid_FK foreign key(fid) references forder(id) );
//SorderService接口
public interface SorderService extends BaseService<Sorder> {
//添加购物项,返回新的购物车
public Forder addSorder(Forder forder, Product product);
//把商品数据转化为购物项
public Sorder productToSorder(Product product);
}
//ForderService接口
public interface ForderService extends BaseService<Forder> {
//计算购物总价格
public double cluTotal(Forder forder);
}
//SorderServiceImpl实现类
@Service("sorderService")
public class SorderServiceImpl extends BaseServiceImpl<Sorder> implements
SorderService {
@Override
public Forder addSorder(Forder forder, Product product) {
boolean isHave = false; //用来标记有没有重复购物项
//拿到当前的购物项
Sorder sorder = productToSorder(product);
//判断当前购物项是否重复,如果重复,则添加数量即可
for(Sorder old : forder.getSorders()) {
if(old.getProduct().getId().equals(sorder.getProduct().getId())) {
//购物项有重复,添加数量即可
old.setNumber(old.getNumber() + sorder.getNumber());
isHave = true;
break;
}
}
//当前购物项在购物车中不存在,新添加即可
if(!isHave) {
forder.getSorders().add(sorder);
}
return forder;
}
@Override
public Sorder productToSorder(Product product) {
Sorder sorder = new Sorder();
sorder.setName(product.getName());
sorder.setNumber(1);
sorder.setPrice(product.getPrice());
sorder.setProduct(product);
return sorder;
}
}
//ForderServiceImpl实现类
@Service("forderService")
public class ForderServiceImpl extends BaseServiceImpl<Forder> implements ForderService {
@Override
public double cluTotal(Forder forder) {
double total = 0.0;
for(Sorder sorder : forder.getSorders()) {
total += sorder.getNumber() * sorder.getPrice();
}
return total;
}
}
@Controller("baseAction")
@Scope("prototype")
public class BaseAction<T> extends ActionSupport implements RequestAware,SessionAware,ApplicationAware,ModelDriven<T> {
//省略其他无关代码……
@Resource
protected ForderService forderService;
@Resource
protected SorderService sorderService;
}
@Controller
@Scope("prototype")
public class SorderAction extends BaseAction<Sorder> {
public String addSorder() {
//1. 根据product.id获取相应的商品数据
Product product = productService.get(model.getProduct().getId());
//2. 判断当前session是否有购物车,如果没有则创建
if(session.get("forder") == null) {
//创建新的购物车,存储到session中
session.put("forder", new Forder(new HashSet<Sorder>()));
}
//3. 把商品信息转化为sorder,并且添加到购物车中(判断购物项是否重复)
Forder forder = (Forder) session.get("forder");
forder = sorderService.addSorder(forder, product);
//4. 计算购物的总价格
forder.setTotal(forderService.cluTotal(forder));
//5. 把新的购物车存储到session中
session.put("forder", forder);
return "showCart";
}
}
<action name="sorder_*" class="sorderAction" method="{1}">
<result name="showCart">/showCart.jsp</result>
</action>
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有