
Controller:
CartService:
实现类:

CartDetail detail=dao.queryByCdid(cid,gds.getId());
CartDao:

- //获取详情对象
- @Select("select * from t_cartdetail where cid=#{cid} and gid=#{gid}")
- @ResultType(CartDetail.class)
- public CartDetail queryByCdid(@Param("cid") int cid, @Param("gid") int gid);
return dao.insertDetail(cd)>0;

- //购物车添加商品
- @Insert("insert into t_cartdetail(cid,gid,num,money) values(#{cid},#{gid},#{num},#{money})")
- public int insertDetail(CartDetail cd);
return dao.updateDetail(detail)>0;

- //修改购物车中数量
- @Update("update t_cartdetail set num=${num},money=${money} where cid=#{cid} and gid=#{gid}")
- public int updateDetail(CartDetail cartdetail);

CartService:

实现类:

CarDao
购物车详情表 cid购物车id gid商品id num 购买数量

商品表:num 商品库存量
SELECT cd.num,cd.money,cd.gid,
g.name,g.price,g.num as num2,g.picture
FROM t_cartdetail cd
LEFT JOIN t_goods g
ON cd.gid=g.id
WHERE cd.cid=#{cid}
- //购物车的数据
- @Select("SELECT cd.num,cd.money,cd.gid,g.name,g.price,g.num as num2,g.picture FROM t_cartdetail cd LEFT JOIN t_goods g ON cd.gid=g.id WHERE cd.cid=#{cid}")
- @ResultType(ViewCart.class)
- public List
queryCart(int cid);


CartService:

实现类:
CarDao:
- //清空购物车
- @Delete("delete from t_cartdetail where cid=#{cid} ")
- public int deleteDetailByCid(int cid);
- //删除购物车中的商品
- @Delete("delete from t_cartdetail where cid=#{cid} and gid=#{gid}")
- public int deleteDetail(@Param("cid") int cid, @Param("gid") int gid);

CartService:

实现类:
CartDao:
- //获取详情对象
- @Select("select * from t_cartdetail where cid=#{cid} and gid=#{gid}")
- @ResultType(CartDetail.class)
- public CartDetail queryByCdid(@Param("cid") int cid, @Param("gid") int gid);
- //修改购物车中数量
- @Update("update t_cartdetail set num=${num},money=${money} where cid=#{cid} and gid=#{gid}")
- public int updateDetail(CartDetail cartdetail);
+ :传递num:1

- :传递num:-1

前端:
这里有两个num
num2:商品库存的数量
num:购买商品的数量
"table table-bordered table-striped table-hover">-
-
图片 -
商品名称 -
价格 -
数量 -
小计 -
操作 -
-
"0" var="sum"> -
-
"${carts}" var="c" varStatus="i"> -
if test="${c.num2 <= 0 || c.num2 < c.num}"> -
- if>
-
-
if test="${c.num2 > 0 || c.num2 >= c.num}"> -
-
"width: 30px;height: auto" src="${pageContext.request.contextPath}/fmwimages/${c.picture}"> -
${c.name} -
${c.price} -
"100px">- "input-group">
- "input-group-btn">
-
-
- onclick="mNum(${c.gid},${c.price},${i.count})">-
-
-
-
- "text" class="form-control" id="num_count${i.count}" value="${c.num}" readonly="readonly" style="width:50px;text-align:center;">
-
if test="${c.num < c.num2}"> - "input-group-btn">
-
-
-
- if>
-
if test="${c.num >= c.num2}"> - "input-group-btn">
-
-
-
- if>
-
-
-
${c.money}元 -
-
-
-
-
var="sum" value="${sum+c.money}"> - if>
-
-
js
OrderController:
type=2为购物车下单

CarService


- //购物车的数据
- @Select("SELECT cd.num,cd.money,cd.gid,g.name,g.price,g.num as num2,g.picture FROM t_cartdetail cd LEFT JOIN t_goods g ON cd.gid=g.id WHERE cd.cid=#{cid}")
- @ResultType(ViewCart.class)
- public List
queryCart(int cid);
UserAddressService:

实现类:

UserAddressDao:
- //查询地址
- @Select("select * from t_useraddress where uid=#{uid} order by flag desc")
- @ResultType(UserAddress.class)
- public List
queryByUid(int uid);


res = service.insertDirect(user.getId(), oid, aid, (CartDetail) session.getAttribute("direct"));
实现类
dao.insert(order);

- //新增 订单
- @Insert("insert into t_order(id,uid,uaid,money,createtime,flag) values(#{id},#{uid},#{uaid},#{money},now(),1)")
- public int insert(Order order);
dao.insertDetail(detail);

- //新增 订单详情
- @Insert("insert into t_orderdetail(oid,gid,money,num) values(#{oid},#{gid},#{money},#{num})")
- public int insertDetail(OrderDetail detail);
goodsDao.updateGoodsNum(cd.getNum(),cd.getGid());
GoodDao
- //修改商品数量
- @Update("update t_goods set num = num - #{num} where id = #{id}")
- int updateGoodsNum(@Param("num") int num,@Param("id") int id);
res = service.save(oid, user.getId(), aid);

实现类:

CartDao:
- //获取用户的购物车详情
- @Select("select cd.* from t_cartdetail cd left join t_cart c on cd.cid=c.id where c.uid=#{uid}")
- @ResultType(CartDetail.class)
- public List
queryByDetail(int uid);
OrderDao
- //新增 订单详情
- @Insert("insert into t_orderdetail(oid,gid,money,num) values(#{oid},#{gid},#{money},#{num})")
- public int insertDetail(OrderDetail detail);
GoodDao:
- //修改商品数量
- @Update("update t_goods set num = num - #{num} where id = #{id}")
- int updateGoodsNum(@Param("num") int num,@Param("id") int id);
cartDao.deleteDetailByCid(cds.get(0).getCid());
- //清空购物车
- @Delete("delete from t_cartdetail where cid=#{cid} ")
- public int deleteDetailByCid(int cid);
cartDao.updateEmpty(cds.get(0).getCid());
- //清空购物车
- @Update("update t_cart set money=0 where id=#{id}")
- public int updateEmpty(int id);