package com.shop.service;
import com.shop.dao.OsProductMapper;
import com.shop.dao.OsProductSpecificationMapper;
import com.shop.dao.OsSpecificationAttributeMapper;
import com.shop.po.OsProduct;
import com.shop.po.OsProductSpecification;
import com.shop.po.OsSpecificationAttribute;
import com.shop.vo.CartVO;
import com.shop.vo.ShoppingCartVO;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpSession;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* @Author 康健
* @Date 2017/8/11 16:15
*/
@Service
public class OsProductCartService {
@Autowired
private OsProductSpecificationMapper osProductSpecificationMapper;
@Autowired
private OsProductMapper osProductMapper;
@Autowired
private OsSpecificationAttributeMapper osSpecificationAttributeMapper;
//添加购物车商品
public CartVO insertProductCart(Long productSpecNumber, HttpSession session) {
OsProductSpecification osProductSpecification = osProductSpecificationMapper.selectByProductSpecNumber(productSpecNumber);
CartVO cartVO = (CartVO) session.getAttribute("cart");
//如果当前商品有规格,规格商品已在购物车 数量加1
if(osProductSpecification != null && (!"".equals(osProductSpecification.getSpec()))) {
Boolean flag = false;
List<ShoppingCartVO> shoppingCartVOs = cartVO.getShoppingCartVOs();
for (ShoppingCartVO vo : shoppingCartVOs) {
if (osProductSpecification.getProductSpecNumber().longValue()==(vo.getProductSpecNumber().longValue())) {
vo.setBuyNumber(vo.getBuyNumber() + 1);
flag = true;
break;
}
}
if (flag == false) {
//如果当前商品不在购物车 新建vo并加入
ShoppingCartVO shoppingCartVO = new ShoppingCartVO();
shoppingCartVO.setProductSpecNumber(osProductSpecification.getProductSpecNumber());
shoppingCartVO.setBuyNumber(1);
shoppingCartVO.setStock(osProductSpecification.getStock());
shoppingCartVO.setSalesVolume(osProductSpecification.getSalesVolume());
shoppingCartVO.setPrice(osProductSpecification.getPrice());
shoppingCartVO.setSpec(osProductSpecification.getSpec());
shoppingCartVO.setProductNumber(osProductMapper.selectProductNumberByProductId(osProductSpecification.getProductId()));
shoppingCartVO.setName(osProductMapper.selectNameByProductId(osProductSpecification.getProductId()));
shoppingCartVO.setPicImg(osProductMapper.selectPicImgByProductId(osProductSpecification.getProductId()));
//规格名称处理
String s = osProductSpecification.getSpec();
List<String> list = new ArrayList<String>();
// 商品规格进行拆分
if (s != null && (!s.equals(""))) {
String[] sp = s.split(",");
for (String ss : sp) {
OsSpecificationAttribute osSpecificationAttribute = osSpecificationAttributeMapper.selectByPrimaryKey(Long.parseLong(ss));
list.add(osSpecificationAttribute.getName());
}
}
shoppingCartVO.setSpecificationName(list);
cartVO.getShoppingCartVOs().add(shoppingCartVO);
}
} else {
//如果商品没有规格
Boolean flag = false;
List<ShoppingCartVO> shoppingCartVOs = cartVO.getShoppingCartVOs();
for(ShoppingCartVO shop : shoppingCartVOs) {
if (productSpecNumber.longValue()==(shop.getProductNumber().longValue())) {
shop.setBuyNumber(shop.getBuyNumber() + 1);
flag = true;
break;
}
}
if (flag == false) {
//如果当前商品不在购物车 新建vo并加入
ShoppingCartVO shoppingCartVO = new ShoppingCartVO();
shoppingCartVO.setProductSpecNumber(osProductSpecification.getProductSpecNumber());
shoppingCartVO.setBuyNumber(1);
shoppingCartVO.setStock(osProductSpecification.getStock());
shoppingCartVO.setSalesVolume(osProductSpecification.getSalesVolume());
shoppingCartVO.setPrice(osProductSpecification.getPrice());
shoppingCartVO.setProductNumber(osProductMapper.selectProductNumberByProductId(osProductSpecification.getProductId()));
shoppingCartVO.setName(osProductMapper.selectNameByProductId(osProductSpecification.getProductId()));
shoppingCartVO.setPicImg(osProductMapper.selectPicImgByProductId(osProductSpecification.getProductId()));
cartVO.getShoppingCartVOs().add(shoppingCartVO);
}
}
return cartVO;
}
//查看购物车列表是否有该商品
public Boolean getProductExsit(Long productSpecNumber, HttpSession session) {
OsProductSpecification osProductSpecification = osProductSpecificationMapper.selectByProductSpecNumber(productSpecNumber);
Boolean flag = false;
CartVO cartVO = (CartVO) session.getAttribute("cart");
//如果当前规格商品已在购物车 数量加1
List<ShoppingCartVO> shoppingCartVOs = cartVO.getShoppingCartVOs();
for (ShoppingCartVO vo : shoppingCartVOs) {
if (osProductSpecification.getProductSpecNumber().longValue()==(vo.getProductSpecNumber().longValue())) {
flag = true;
break;
}
}
return flag;
}
//减少购物车商品
public CartVO deProductCart(Long productSpecNumber, HttpSession session, Integer buyNumber) {
OsProductSpecification osProductSpecification = osProductSpecificationMapper.selectByProductSpecNumber(productSpecNumber);
CartVO cartVO = (CartVO) session.getAttribute("cart");
//如果当前商品有规格,规格商品已在购物车 数量-1
if(osProductSpecification != null && (!"".equals(osProductSpecification.getSpec()))) {
List<ShoppingCartVO> shoppingCartVOs = cartVO.getShoppingCartVOs();
for (ShoppingCartVO vo : shoppingCartVOs) {
if (osProductSpecification.getProductSpecNumber().longValue()==(vo.getProductSpecNumber().longValue())) {
vo.setBuyNumber(buyNumber);
break;
}
}
} else {
//如果商品没有规格
List<ShoppingCartVO> shoppingCartVOs = cartVO.getShoppingCartVOs();
for(ShoppingCartVO shop : shoppingCartVOs) {
if (productSpecNumber.longValue()==(shop.getProductNumber().longValue())) {
shop.setBuyNumber(buyNumber);
break;
}
}
}
return cartVO;
}
//增加购物车商品
public CartVO insertProductCart(Long productSpecNumber, HttpSession session, Integer buyNumber) {
OsProductSpecification osProductSpecification = osProductSpecificationMapper.selectByProductSpecNumber(productSpecNumber);
CartVO cartVO = (CartVO) session.getAttribute("cart");
//如果当前商品有规格,规格商品已在购物车 数量加1
if(osProductSpecification != null && (!"".equals(osProductSpecification.getSpec()))) {
Boolean flag = false;
List<ShoppingCartVO> shoppingCartVOs = cartVO.getShoppingCartVOs();
for (ShoppingCartVO vo : shoppingCartVOs) {
if (osProductSpecification.getProductSpecNumber().longValue()==(vo.getProductSpecNumber().longValue())) {
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
开发环境:Eclipse ,JDK 1.8 ,Tomcat7 技术选型: 后端技术 核心框架:Spring Framework 4.3.5 视图框架:Spring MVC 4.3.5 任务调度:Spring + Quartz 2.2.3 持久层框架:MyBatis 3.4.2 + Mybatis-plus 2.0.1 日志管理:SLF4J 1.7 + Log4j2 2.7 工具类:Apache Commons、Jackson 2.2、fastjson 1.2.20 前端技术 JS框架:Jquery 表格插件:Bootstrap Table 表单验证插件:BootstrapValidator 日期选择插件:Datepicker for Bootstrap 弹层组件:Layer 数据图表:Echarts 表单美化插件:ICheck 树形视图插件:Ztree 主要功能包括注册和登录、商品浏览、个人信息管理、购物车、我的订单、网上支付、评价。
资源推荐
资源详情
资源评论
收起资源包目录
ssm(spring+spring mvc+mybatis)电子商城项目 (836个子文件)
OsProductService.class 10KB
OsProductCartService.class 8KB
OsOrderBuyController.class 7KB
CreateImageCode.class 6KB
CategoryTree.class 5KB
OrderVO.class 5KB
OsUserLoginController.class 5KB
OsUserInfoController.class 4KB
ShoppingCartVO.class 4KB
OsProductCartController.class 4KB
OsOrderService.class 4KB
OsOrder.class 4KB
CmsUser.class 4KB
Tree.class 4KB
OsOrderProduct.class 3KB
CmsMenu.class 3KB
OsCategoryListController.class 3KB
OsProductSpecification.class 3KB
OsUser.class 3KB
OsProduct.class 3KB
OsCategory.class 3KB
OsProductController.class 3KB
OsOrderOperationController.class 3KB
CartVO.class 3KB
OsAddressService.class 3KB
PageInfo.class 3KB
CategoryNode.class 2KB
OsAddress.class 2KB
CmsRole.class 2KB
OsOrderShipment.class 2KB
OsSpecification.class 2KB
OsProductParameter.class 2KB
Node.class 2KB
OsOrderStatus.class 2KB
OsProductImage.class 2KB
AddressVO.class 2KB
OsCategoryService.class 2KB
OsProductDetail.class 2KB
KindVO.class 1KB
BaseResult.class 1KB
OsSpecificationAttribute.class 1KB
OsIndexController.class 1KB
CategoryVO.class 1KB
OsProductMapper.class 1KB
ExtHtmlTagRuleBundle.class 1KB
OsProductCategory.class 1KB
CmsRoleMenu.class 1KB
CmsUserRole.class 1KB
HotCategoryVO.class 1KB
GetRandom.class 1KB
OsUserService.class 1KB
KindAttribute.class 1015B
OsResult.class 1014B
ProductSpecificationVO.class 951B
OsProductSpecificationMapper.class 775B
OsCategoryMapper.class 727B
OsOrderMapper.class 677B
OsProductParameterMapper.class 579B
OsAddressMapper.class 559B
OsProductImageMapper.class 559B
OsOrderProductMapper.class 557B
OsProductDetailMapper.class 477B
OsSpecificationAttributeMapper.class 447B
OsUserMapper.class 446B
OsOrderShipmentMapper.class 436B
OsProductCategoryMapper.class 419B
OsSpecificationMapper.class 411B
OsOrderStatusMapper.class 403B
CmsRoleMenuMapper.class 395B
CmsUserRoleMapper.class 395B
CmsRoleMapper.class 379B
CmsUserMapper.class 379B
CmsMenuMapper.class 379B
ReturnCode.class 203B
.classpath 841B
org.eclipse.wst.common.component 506B
org.eclipse.wst.jsdt.ui.superType.container 49B
bootstrap.css 143KB
bootstrap.min.css 118KB
goods-detail.css 73KB
base.css 51KB
main.css 48KB
font-awesome.css 37KB
font-awesome.min.css 30KB
checkout.css 27KB
bootstrap-theme.css 26KB
index.css 25KB
bootstrap-table-group-by.css 24KB
bootstrap-theme.min.css 23KB
goods-comment.css 21KB
_all.css 20KB
list.css 19KB
select2.css 18KB
_all.css 14KB
layer.css 14KB
_all.css 14KB
_all.css 12KB
bootstrap-datetimepicker.css 12KB
gloab.css 12KB
bootstrap-datetimepicker.min.css 11KB
共 836 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
源码头
- 粉丝: 254
- 资源: 504
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功