项目需求:将购物车中的商品添加到订单表和订单商品表

21 篇文章 0 订阅

附上购物车表,订单表和订单商品表字段


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;
}


----------------------------------------------------结束------------------------------------------------------

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐观的Terry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值