cart算法 java实现_Java Cart类代码示例
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类代码示例相关推荐
- 源码天空java新闻_Java UpdateRequest类代码示例
import es.tid.pce.pcep.constructs.UpdateRequest; //导入依赖的package包/类 private void sendUpdate(LSPTEInfo ...
- mimemessage类是什么_Java MimeMessage类代码示例
本文整理汇总了Java中javax.mail.internet.MimeMessage类的典型用法代码示例.如果您正苦于以下问题:Java MimeMessage类的具体用法?Java MimeMes ...
- java特粗宋体_Java IdentityPlusMapper类代码示例
import org.docx4j.fonts.IdentityPlusMapper; //导入依赖的package包/类 public Mapper getFontMapper() throws E ...
- java中utilities类_Java PHUtilities类代码示例
import com.philips.lighting.hue.sdk.utilities.PHUtilities; //导入依赖的package包/类 private void setLampSta ...
- 9路棋盘java代码_Java ServiceContext类代码示例
import org.omg.IOP.ServiceContext; //导入依赖的package包/类 /** * does not contain an etry for that ID, BAD ...
- java immutable系列_Java Immutable类代码示例
import com.jcabi.aspects.Immutable; //导入依赖的package包/类 /** * This class is immutable? * @param type T ...
- java feature类_Java FeatureCollection类代码示例
import org.cleartk.ml.feature.FeatureCollection; //导入依赖的package包/类 public static XStream createXStre ...
- java path类_Java PathParser类代码示例
import org.apache.batik.parser.PathParser; //导入依赖的package包/类 @Override public void start(Stage prima ...
- java model类_Java Model类代码示例
import com.baomidou.mybatisplus.activerecord.Model; //导入依赖的package包/类 /** * * 预处理配置 * * * @param con ...
- java code viewer_Java CodeView类代码示例
import io.github.kbiakov.codeview.CodeView; //导入依赖的package包/类 public void setToken(List tokens, List ...
最新文章
- LINUX开启SNMP方法
- cadence原理图封装pin名称重复_原理图设计篇|单片机设计项目实例分享
- python利器怎么编程-Python任务调度利器之APScheduler详解
- 2020-12-17 Latex代码公式中如何设定多个对齐点( Multiple aligning symbols )
- MySQL事务隔离级别和Spring事务关系介绍
- Maven构建Artifact时,不会创建空目录
- LeetCode 587. 安装栅栏 / LintCode 1152. 安装栅栏(凸包检测:排序+叉积正负判断+正反扫描+去重)
- 微信红包封面小程序源码-后台独立版-带测评积分功能源码
- Python定时任务框架APScheduler
- grep 两个字符串_Linux运维工程师想要的12个grep指令
- 为什么java IO类不用基于继承的设计方案?
- python-next
- Luogu5788 【模板】单调栈
- SEO网站前端优化整理
- 如何从chrome获取你需要的缓存视频
- c语言编程实现开平方运算,详细解析C语言中的开方实现
- linux 不自动进入睡眠,linux 7 为何自动睡眠
- 自己封装的数据库DbUtils的万能模板
- JAVA四大名著(程序员必读)
- 开源软件学习交流计划 (西游记项目)
热门文章
- B站最近很火的damedane,unravel图片唱歌
- pci 1751 java_PCI-1751快速安装使用手册.PDF
- html 判断undefined,JS中 “is not defined” 如何判断defined,defined和undefined 的区别
- 搭建无线监控云存储服务器,搭建无线监控云存储服务器
- Tp-link路由器设置教程
- task manager memory meaning
- S5800/S5820X系列交换机GRE隧道
- 二层交换配置完ping失败_交换机堆叠后部分IP地址PING包不可达问题
- 基于Hadoop平台使用MapReduce统计某银行信用卡违约用户数量
- 香港、英国、南非...中国!区块链将迎来又一波高潮?