import com.mmall.pojo.Cart; //导入依赖的package包/类

private CartVo getCartVoLimit(Integer userId){

CartVo cartVo = new CartVo();

List cartList = cartMapper.selectCartByUserId(userId);

List cartProductVoList = Lists.newArrayList();

BigDecimal cartTotalPrice = new BigDecimal("0");

if(CollectionUtils.isNotEmpty(cartList)){

for(Cart cartItem : cartList){

CartProductVo cartProductVo = new CartProductVo();

cartProductVo.setId(cartItem.getId());

cartProductVo.setUserId(userId);

cartProductVo.setProductId(cartItem.getProductId());

Product product = productMapper.selectByPrimaryKey(cartItem.getProductId());

if(product != null){

cartProductVo.setProductMainImage(product.getMainImage());

cartProductVo.setProductName(product.getName());

cartProductVo.setProductSubtitle(product.getSubtitle());

cartProductVo.setProductStatus(product.getStatus());

cartProductVo.setProductPrice(product.getPrice());

cartProductVo.setProductStock(product.getStock());

//判断库存

int buyLimitCount = 0;

if(product.getStock() >= cartItem.getQuantity()){

//库存充足的时候

buyLimitCount = cartItem.getQuantity();

cartProductVo.setLimitQuantity(Const.Cart.LIMIT_NUM_SUCCESS);

}else{

buyLimitCount = product.getStock();

cartProductVo.setLimitQuantity(Const.Cart.LIMIT_NUM_FAIL);

//购物车中更新有效库存

Cart cartForQuantity = new Cart();

cartForQuantity.setId(cartItem.getId());

cartForQuantity.setQuantity(buyLimitCount);

cartMapper.updateByPrimaryKeySelective(cartForQuantity);

}

cartProductVo.setQuantity(buyLimitCount);

//计算总价

cartProductVo.setProductTotalPrice(BigDecimalUtil.mul(product.getPrice().doubleValue(),cartProductVo.getQuantity()));

cartProductVo.setProductChecked(cartItem.getChecked());

//如果不判断是否有商品就进行添加购物车操作,会报空指针异常。

if(cartItem.getChecked() == Const.Cart.CHECKED){

//如果已经勾选,增加到整个的购物车总价中

cartTotalPrice = BigDecimalUtil.add(cartTotalPrice.doubleValue(),cartProductVo.getProductTotalPrice().doubleValue());

}

cartProductVoList.add(cartProductVo);

}

}

}

cartVo.setCartTotalPrice(cartTotalPrice);

cartVo.setCartProductVoList(cartProductVoList);

cartVo.setAllChecked(this.getAllCheckedStatus(userId));

cartVo.setImageHost(PropertiesUtil.getProperty("ftp.server.http.prefix"));

return cartVo;

}

cart算法 java实现_Java Cart类代码示例相关推荐

  1. 源码天空java新闻_Java UpdateRequest类代码示例

    import es.tid.pce.pcep.constructs.UpdateRequest; //导入依赖的package包/类 private void sendUpdate(LSPTEInfo ...

  2. mimemessage类是什么_Java MimeMessage类代码示例

    本文整理汇总了Java中javax.mail.internet.MimeMessage类的典型用法代码示例.如果您正苦于以下问题:Java MimeMessage类的具体用法?Java MimeMes ...

  3. java特粗宋体_Java IdentityPlusMapper类代码示例

    import org.docx4j.fonts.IdentityPlusMapper; //导入依赖的package包/类 public Mapper getFontMapper() throws E ...

  4. java中utilities类_Java PHUtilities类代码示例

    import com.philips.lighting.hue.sdk.utilities.PHUtilities; //导入依赖的package包/类 private void setLampSta ...

  5. 9路棋盘java代码_Java ServiceContext类代码示例

    import org.omg.IOP.ServiceContext; //导入依赖的package包/类 /** * does not contain an etry for that ID, BAD ...

  6. java immutable系列_Java Immutable类代码示例

    import com.jcabi.aspects.Immutable; //导入依赖的package包/类 /** * This class is immutable? * @param type T ...

  7. java feature类_Java FeatureCollection类代码示例

    import org.cleartk.ml.feature.FeatureCollection; //导入依赖的package包/类 public static XStream createXStre ...

  8. java path类_Java PathParser类代码示例

    import org.apache.batik.parser.PathParser; //导入依赖的package包/类 @Override public void start(Stage prima ...

  9. java model类_Java Model类代码示例

    import com.baomidou.mybatisplus.activerecord.Model; //导入依赖的package包/类 /** * * 预处理配置 * * * @param con ...

  10. java code viewer_Java CodeView类代码示例

    import io.github.kbiakov.codeview.CodeView; //导入依赖的package包/类 public void setToken(List tokens, List ...

最新文章

  1. LINUX开启SNMP方法
  2. cadence原理图封装pin名称重复_原理图设计篇|单片机设计项目实例分享
  3. python利器怎么编程-Python任务调度利器之APScheduler详解
  4. 2020-12-17 Latex代码公式中如何设定多个对齐点( Multiple aligning symbols )
  5. MySQL事务隔离级别和Spring事务关系介绍
  6. Maven构建Artifact时,不会创建空目录
  7. LeetCode 587. 安装栅栏 / LintCode 1152. 安装栅栏(凸包检测:排序+叉积正负判断+正反扫描+去重)
  8. 微信红包封面小程序源码-后台独立版-带测评积分功能源码
  9. Python定时任务框架APScheduler
  10. grep 两个字符串_Linux运维工程师想要的12个grep指令
  11. 为什么java IO类不用基于继承的设计方案?
  12. python-next
  13. Luogu5788 【模板】单调栈
  14. SEO网站前端优化整理
  15. 如何从chrome获取你需要的缓存视频
  16. c语言编程实现开平方运算,详细解析C语言中的开方实现
  17. linux 不自动进入睡眠,linux 7 为何自动睡眠
  18. 自己封装的数据库DbUtils的万能模板
  19. JAVA四大名著(程序员必读)
  20. 开源软件学习交流计划 (西游记项目)

热门文章

  1. B站最近很火的damedane,unravel图片唱歌
  2. pci 1751 java_PCI-1751快速安装使用手册.PDF
  3. html 判断undefined,JS中 “is not defined” 如何判断defined,defined和undefined 的区别
  4. 搭建无线监控云存储服务器,搭建无线监控云存储服务器
  5. Tp-link路由器设置教程
  6. task manager memory meaning
  7. S5800/S5820X系列交换机GRE隧道
  8. 二层交换配置完ping失败_交换机堆叠后部分IP地址PING包不可达问题
  9. 基于Hadoop平台使用MapReduce统计某银行信用卡违约用户数量
  10. 香港、英国、南非...中国!区块链将迎来又一波高潮?