项目需求:将购物车中的商品添加到订单表和订单商品表
2017-03-17 09:06
477 查看
附上购物车表,订单表和订单商品表字段
shopcartController代码:
@RequestMapping("useraddResult")
@ResponseBody
@SuppressWarnings("null")
public LBResult useraddResult(String addressid, String shopcartids,
String uid, HttpServletRequest request, HttpServletResponse response) {
// 1.
JifenAddressInfo addressInfo = jifenAddressInfoService
.userAddressInfo(addressid);
// 2.根据购物车id查询信息
String[] ids = shopcartids.split(",");
ShoppingCart[] cart = new ShoppingCart[ids.length];
BigDecimal ordersum = new BigDecimal(0);
for (int j = 0; j < ids.length; j++) {
cart[j] = carShopService.carById(ids[j]);
BigDecimal sumBigDecimal1 = cart[j].getLogisticsjifen();
BigDecimal sumBigDecimal2 = new BigDecimal(cart[j].getGoodsnum());
// ordersum = ordersum.add(sumBigDecimal1.multiply(sumBigDecimal2));
ordersum = BigDecimalCalculateUtil
.add(ordersum, BigDecimalCalculateUtil.mul(sumBigDecimal1,
sumBigDecimal2));
}
// 3.根据购物车id,更新购物车状态
List<String> ids1 = null;
if (ids.length > 0) {
List<String> idsList1 = Arrays.asList(ids);
ids1 = new ArrayList<String>(idsList1);
}
int count = carShopService.txbatchUpdateState(ids1);
// 4.生成订单编号
String ordercodeString = LBUtil.getOrderNumber();
// 5.根据订单编号、地址信息、订单总积分、uid,插入订单表
// 获得地址信息表中得字段
String provinceString = addressInfo.getProvince();
String cityString = addressInfo.getCity();
String countryString = addressInfo.getCounty();
String addressnameString = addressInfo.getAddressname();
String addresstelString = addressInfo.getAddresstel();
String addressdetailed = addressInfo.getAddressdetailed();
OrderDetail orderDetail = new OrderDetail();
orderDetail.setOrdercode(ordercodeString);
orderDetail.setOrderstatus("01");
orderDetail.setOrdersum(ordersum);
orderDetail.setId(UUIDGenerator.getUUID());
Date nowDate = DateUtil1.getFormatDate(new Date(),
"yyyy-MM-dd HH:mm:ss");
orderDetail.setCreatetime(nowDate);
orderDetail.setCity(cityString);
orderDetail.setAddressname(addressnameString);
orderDetail.setAddresstel(addresstelString);
orderDetail.setCounty(countryString);
orderDetail.setAddressid(addressid);
orderDetail.setAddressdetailed(addressdetailed);
orderDetailService.txInsert(orderDetail);
// 插入订单结束
// 6.根据订单编号、购物车信息,插入订单商品表
List<OrderGoods> orderGoodsList = new ArrayList<OrderGoods>();
for (int j = 0; j < cart.length; j++) {
OrderGoods orderGoods = new OrderGoods();
orderGoods.setId(UUIDGenerator.getUUID());
orderGoods.setOrdercode(ordercodeString);
orderGoods.setGoodsname(cart[j].getGoodsname());
orderGoods.setGoodscode(cart[j].getGoodscode());
orderGoods.setGoodsnum(cart[j].getGoodsnum());
orderGoods.setImgname(cart[j].getImgname());
orderGoods.setImgaccesspath(cart[j].getImgaccesspath());
orderGoods.setImgpath(cart[j].getImgpath());
orderGoods.setCreatetime(cart[j].getCreatetime());
orderGoodsList.add(orderGoods);
}
int countNum = orderGoodsService.txinsertByBatch(orderGoodsList);
return LBResult.ok(countNum);
}
useraddressInfo方法:
public JifenAddressInfo userAddressInfo(String id) {
// TODO Auto-generated method stub
JifenAddressInfo addressInfo =
jifenAddressInfoMapper.selectByPrimaryKey(id);
if (LBUtil.isNotEmpty(addressInfo)) {
return addressInfo;
}
return null;
}
批量更新方法:
<!-- 批量更新订单状态 -->
<update id="batchUpdateState" parameterType="java.util.List">
update t_jifen_shoppingcart
<set>
shoppinggoodsstatus="09"
</set>
where id in
<foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</update>
int batchUpdateState(List<String> ids);//mapper中的写法
serviceImpl层中得方法:
// 批量更新
public int txbatchUpdateState(List<String> ids) {
int count = carShopMapper.batchUpdateState(ids);
return count;
}
批量插入方法:
<insert id="insertByBatch" parameterType="java.util.List">
insert into
t_jifen_order_goods (id, ordercode, goodscode,
goodsname, goodsnum, imgname,
imgpath, imgaccesspath, createtime)
values
<foreach collection="list" item="item" index="index"
separator=",">
(#{item.id,jdbcType=VARCHAR},
#{item.ordercode,jdbcType=INTEGER},
#{item.goodscode,jdbcType=DECIMAL},
#{item.goodsname,jdbcType=VARCHAR},
#{item.goodsnum,jdbcType=INTEGER},
#{item.imgname,jdbcType=VARCHAR},
#{item.imgpath,jdbcType=VARCHAR},
#{item.imgaccesspath,jdbcType=VARCHAR},
#{item.createtime,jdbcType=TIMESTAMP}
)
</foreach>
</insert>
mapper中的写法:
int insertByBatch(List<OrderGoods> orderGoods);
service中得写法:
int txinsertByBatch(List<OrderGoods> orderGoods);
serviceImpl中得写法:
// 批量更新
public int txinsertByBatch(List<OrderGoods> orderGoods) {
int count = orderGoodsMapper.insertByBatch(orderGoods);
return count;
}
----------------------------------------------------结束------------------------------------------------------
shopcartController代码:
@RequestMapping("useraddResult")
@ResponseBody
@SuppressWarnings("null")
public LBResult useraddResult(String addressid, String shopcartids,
String uid, HttpServletRequest request, HttpServletResponse response) {
// 1.
JifenAddressInfo addressInfo = jifenAddressInfoService
.userAddressInfo(addressid);
// 2.根据购物车id查询信息
String[] ids = shopcartids.split(",");
ShoppingCart[] cart = new ShoppingCart[ids.length];
BigDecimal ordersum = new BigDecimal(0);
for (int j = 0; j < ids.length; j++) {
cart[j] = carShopService.carById(ids[j]);
BigDecimal sumBigDecimal1 = cart[j].getLogisticsjifen();
BigDecimal sumBigDecimal2 = new BigDecimal(cart[j].getGoodsnum());
// ordersum = ordersum.add(sumBigDecimal1.multiply(sumBigDecimal2));
ordersum = BigDecimalCalculateUtil
.add(ordersum, BigDecimalCalculateUtil.mul(sumBigDecimal1,
sumBigDecimal2));
}
// 3.根据购物车id,更新购物车状态
List<String> ids1 = null;
if (ids.length > 0) {
List<String> idsList1 = Arrays.asList(ids);
ids1 = new ArrayList<String>(idsList1);
}
int count = carShopService.txbatchUpdateState(ids1);
// 4.生成订单编号
String ordercodeString = LBUtil.getOrderNumber();
// 5.根据订单编号、地址信息、订单总积分、uid,插入订单表
// 获得地址信息表中得字段
String provinceString = addressInfo.getProvince();
String cityString = addressInfo.getCity();
String countryString = addressInfo.getCounty();
String addressnameString = addressInfo.getAddressname();
String addresstelString = addressInfo.getAddresstel();
String addressdetailed = addressInfo.getAddressdetailed();
OrderDetail orderDetail = new OrderDetail();
orderDetail.setOrdercode(ordercodeString);
orderDetail.setOrderstatus("01");
orderDetail.setOrdersum(ordersum);
orderDetail.setId(UUIDGenerator.getUUID());
Date nowDate = DateUtil1.getFormatDate(new Date(),
"yyyy-MM-dd HH:mm:ss");
orderDetail.setCreatetime(nowDate);
orderDetail.setCity(cityString);
orderDetail.setAddressname(addressnameString);
orderDetail.setAddresstel(addresstelString);
orderDetail.setCounty(countryString);
orderDetail.setAddressid(addressid);
orderDetail.setAddressdetailed(addressdetailed);
orderDetailService.txInsert(orderDetail);
// 插入订单结束
// 6.根据订单编号、购物车信息,插入订单商品表
List<OrderGoods> orderGoodsList = new ArrayList<OrderGoods>();
for (int j = 0; j < cart.length; j++) {
OrderGoods orderGoods = new OrderGoods();
orderGoods.setId(UUIDGenerator.getUUID());
orderGoods.setOrdercode(ordercodeString);
orderGoods.setGoodsname(cart[j].getGoodsname());
orderGoods.setGoodscode(cart[j].getGoodscode());
orderGoods.setGoodsnum(cart[j].getGoodsnum());
orderGoods.setImgname(cart[j].getImgname());
orderGoods.setImgaccesspath(cart[j].getImgaccesspath());
orderGoods.setImgpath(cart[j].getImgpath());
orderGoods.setCreatetime(cart[j].getCreatetime());
orderGoodsList.add(orderGoods);
}
int countNum = orderGoodsService.txinsertByBatch(orderGoodsList);
return LBResult.ok(countNum);
}
useraddressInfo方法:
public JifenAddressInfo userAddressInfo(String id) {
// TODO Auto-generated method stub
JifenAddressInfo addressInfo =
jifenAddressInfoMapper.selectByPrimaryKey(id);
if (LBUtil.isNotEmpty(addressInfo)) {
return addressInfo;
}
return null;
}
批量更新方法:
<!-- 批量更新订单状态 -->
<update id="batchUpdateState" parameterType="java.util.List">
update t_jifen_shoppingcart
<set>
shoppinggoodsstatus="09"
</set>
where id in
<foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</update>
int batchUpdateState(List<String> ids);//mapper中的写法
serviceImpl层中得方法:
// 批量更新
public int txbatchUpdateState(List<String> ids) {
int count = carShopMapper.batchUpdateState(ids);
return count;
}
批量插入方法:
<insert id="insertByBatch" parameterType="java.util.List">
insert into
t_jifen_order_goods (id, ordercode, goodscode,
goodsname, goodsnum, imgname,
imgpath, imgaccesspath, createtime)
values
<foreach collection="list" item="item" index="index"
separator=",">
(#{item.id,jdbcType=VARCHAR},
#{item.ordercode,jdbcType=INTEGER},
#{item.goodscode,jdbcType=DECIMAL},
#{item.goodsname,jdbcType=VARCHAR},
#{item.goodsnum,jdbcType=INTEGER},
#{item.imgname,jdbcType=VARCHAR},
#{item.imgpath,jdbcType=VARCHAR},
#{item.imgaccesspath,jdbcType=VARCHAR},
#{item.createtime,jdbcType=TIMESTAMP}
)
</foreach>
</insert>
mapper中的写法:
int insertByBatch(List<OrderGoods> orderGoods);
service中得写法:
int txinsertByBatch(List<OrderGoods> orderGoods);
serviceImpl中得写法:
// 批量更新
public int txinsertByBatch(List<OrderGoods> orderGoods) {
int count = orderGoodsMapper.insertByBatch(orderGoods);
return count;
}
----------------------------------------------------结束------------------------------------------------------
相关文章推荐
- 饿了么项目---11、添加商品到购物车的联动功能(1)
- 我的练习项目: 模拟淘宝搜索商品、添加商品到购物车功能、修改商品信息功能
- js控制table增减行 (例如:订单添加删除商品)
- AngualrJS实现购物车订单功能/添加/排序/过滤
- JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)
- jquery来实现的添加商品和减少商品数量,用于购物车等实时改变价格
- 在zen cart后台订单中添加一张对应的商品图片和键接,在查看订单时就方便多了(转)
- Shop项目后台--2.商品的添加
- 项目实践——商品后台管理中的商品添加
- 【SSH网上商城项目实战09】添加和更新商品类别功能的实现
- Android实现购物车添加商品动画
- 框架 day75 涛涛商城项目easyUI异步tree,图片上传(nginx),KindEditor使用,商品添加
- 带你逐步深入了解SSM框架——淘淘商城项目之实现商品添加
- android 添加商品到购物车简单动画工具类
- IOS之UI--小实例项目--添加商品和商品名(使用xib文件终结版) + xib相关知识点总结
- HTML5-调用-购物车商品(del)-班级添加-也买酒
- 把商品添加到购物车的动画效果(贝塞尔曲线)
- 商城项目实战24:实现添加商品功能
- Android基础知识【项目实训-添加购物车】【8】
- ECSHOP批量添加商品到购物车