附上购物车表,订单表和订单商品表字段
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;
}
----------------------------------------------------结束------------------------------------------------------