zoukankan      html  css  js  c++  java
  • 购物车模块

    购物车模块

    1:创建购物车实体类

    @TableName("sys_cart")
    @Data   //自动生成get/set方法
    @Accessors(chain = true)   //自动生成setter方法并且返回当前对象
    public class Cart extends BasePojo{
    @TableId
    private Long id;
    private Long userId;
    private Long itemId;
    private String itemTitle;
    private String itemImage;
    private Long itemPrice;
    private Integer num;}

    2:接口实现类

    @Service    //注意 dubbo的注解
    public class DubboCartServiceImpl implements DubboCartService {

    //   public interface DubboCartService {

    //  List<Cart> findCartListByUserId(Long userId);

    //  void updateCartNum(Cart cart);

    //  void deleteCart(Cart cart);

    //  void insertCart(Cart cart);

    //  }


    @Autowired
    private CartMapper cartMapper;

    @Override
    public List<Cart> findCartListByUserId(Long userId) {
    QueryWrapper<Cart> queryWrapper = new QueryWrapper<Cart>();
    queryWrapper.eq("user_id", userId);
    return cartMapper.selectList(queryWrapper);
    }

    /**
    * sql:update tb_cart set num=#{num},updated=#{updated}
    * where user_id=#{userId}
    * and item_id = #{itemId}
    */
    @Override
    public void updateCartNum(Cart cart) {
    Cart cartTemp = new Cart();
    cartTemp.setNum(cart.getNum())
    .setUpdated(new Date());
    UpdateWrapper<Cart> updateWrapper = new UpdateWrapper<Cart>();
    updateWrapper.eq("user_id", cart.getUserId())
    .eq("item_id", cart.getItemId());
    cartMapper.update(cartTemp, updateWrapper);

    }

    @Override
    public void deleteCart(Cart cart) {
    cartMapper.delete(new QueryWrapper<Cart>(cart));
    }

    /**
    * 新增购物车
    * 根据userId和itemId查询数据库
    * 有数据: 数量的更新
    * 无数据: 新增入库
    */
    @Override
    public void insertCart(Cart cart) {
    QueryWrapper<Cart> queryWrapper = new QueryWrapper<Cart>();
    queryWrapper.eq("user_id", cart.getUserId())
    .eq("item_id", cart.getItemId());
    Cart cartDB = cartMapper.selectOne(queryWrapper);
    if(cartDB == null) {
    cart.setCreated(new Date())
    .setUpdated(cart.getCreated());
    cartMapper.insert(cart);
    }else {
    //数量更新      update tb_cart set num=#{num},updated = #{updated}  where id=#{id}
    int num = cart.getNum() + cartDB.getNum();
    Cart cartTemp = new Cart();
    cartTemp.setId(cartDB.getId())
    .setNum(num)
    .setUpdated(new Date());
    cartMapper.updateById(cartTemp);
    }
    }

  • 相关阅读:
    django 添加字段, migrate时候生成一个默认值
    django 开发经验
    GeoIP2-python
    一些好用的django模块
    ubuntu linux samba
    动画工作室
    以太坊dApp全栈开发教程(引言)
    社交网络去中心化已成趋势,读懂核心底层技术选择和路线
    CryptoCurrency Security Standard (CCSS)
    HARNESS THE POWER OF DISTRIBUTED STORAGE IPFS AND SWARM IN ETHEREUM BLOCKCHAIN APPLICATIONS
  • 原文地址:https://www.cnblogs.com/pureray-hui/p/12394191.html
Copyright © 2011-2022 走看看