购物车查询、新增、更新、删除

SOA思想结构:

 

1.查询

//前台controller

@Controller

@RequestMapping("/cart")

public class CartController {

    @Autowired

    private CartService cartService;   

    @RequestMapping("/show")

    public String findCartByUserId(Model model){

        Long userId = UserThreadLocal.get().getId();

        List<Cart> cartList = cartService.findCartByUserId(userId);

        model.addAttribute("cartList", cartList);

        return "cart";

    }

}

 

//前台service

@Service

public class CartServiceImpl implements CartService {

    @Autowired

    private HttpClientService httpClient;

    private static ObjectMapper objectMapper = new ObjectMapper();

    @Override

    public List<Cart> findCartByUserId(Long userId) {

        String uri = "http://cart.jt.com/cart/query/"+userId;

        String jsonData = httpClient.doGet(uri);

        SysResult sysResult = null;

        try {

            sysResult = objectMapper.readValue(jsonData, SysResult.class);

        } catch (Exception e) {

            e.printStackTrace();

        }

        List<Cart> cartList = (List<Cart>) sysResult.getData();

        return cartList;

    }

}

 

//后台controller

@RequestMapping("/query/{userId}")

@ResponseBody

public SysResult findCartByUserId(@PathVariable Long userId){

        try {

            List<Cart> cartList = cartService.findCartByUserId(userId);

            return SysResult.oK(cartList);

        } catch (Exception e) {

            //如果报错了进行日志输入

            logger.error("报错信息:"+e.getMessage());

            //logger.error("~~~~~~~~~~~~~~~~~"+e.getMessage());

        }

        return SysResult.build(201,"查询商品失败");

}

 

//后台service

@Service

public class CartServiceImpl implements CartService {

    @Autowired

    private CartMapper cartMapper;

    @Override

    public List<Cart> findCartByUserId(Long userId) {

        Cart cart = new Cart();

        cart.setUserId(userId);

        return cartMapper.select(cart);

    }

}

 

//mapper接口:

public interface CartMapper extends SysMapper<Cart>{   

    Cart findCartByUserIdAndItemId(Cart cart);

}

//xml映射文件

<select id="findCartByUserIdAndItemId" resultType="Cart">

        select * from tb_cart where user_id=#{userId} and item_id = #{itemId}

</select>

 

2.新增

//前台controller

@RequestMapping("/add/{itemId}")

public String saveCart(@PathVariable Long itemId){

        Long userId = UserThreadLocal.get().getId();

        cartService.saveCart(itemld,userId);

       //重定向到购物车展现列表页面

        return "redirect:/cart/show.html";

    }

 

//前台service

@Override

    public void saveCart(Cart cart) {

        String uri = "http://cart.jt.com/cart/save";

        Map<String,String> params = new HashMap<String,String>();

        params.put("userId",cart.getUserId()+"");

        params.put("itemId", cart.getItemId()+"");

        params.put("itemTitle",cart.getItemTitle());

        params.put("itemImage", cart.getItemImage());

        params.put("itemPrice", cart.getItemPrice()+"");

        params.put("num",cart.getNum()+"");

        httpClient.doPost(uri, params);

    }

 

//后台controller

@RequestMapping("/save")

@ResponseBody

public SysResult saveCart(Cart cart){

        try {

            cartService.saveCart(cart);

            return SysResult.oK();

        } catch (Exception e) {

            e.printStackTrace();

        }

        return SysResult.build(201,"新增商品失败");

    }

 

//后台service

/**

     * 1.先检查购物车信息中是否包含该条信息

     * 2.如果没有则做购物车的新增操作

     * 3.如果有该数据,则做购物车更新操作

*/

@Override

public void saveCart(Cart cart) {

        Cart cartDB = cartMapper.findCartByUserIdAndItemId(cart);

        if(cartDB == null){

            cart.setCreated(new Date());

            cart.setUpdated(cart.getCreated());

            cartMapper.insert(cart);

        }else{        //获取购物商品数量和

            int num = cart.getNum() + cartDB.getNum();

            cartDB.setNum(num);

            cartDB.setUpdated(new Date());

            cartMapper.updateByPrimaryKeySelective(cartDB);

        }

}

 

3.更新

//前台controller

@RequestMapping("/update/num/{itemId}/{num}")

public SysResult updateCartNum(@PathVariable Long itemId,@PathVariable Integer num){

         Long userId = UserThreadLocal.get().getId();

         cartService.updateCartNum(userId,itemId,num);

        //重定向到购物车展现列表页面

        return "redirect:/cart/show.html";

}

 

//前台service

@Override

public void updateCartNum(Long userId, Long itemId, Integer num) {

        String uri = "http://cart.jt.com/cart/update/num/"+userId+"/"+itemId +"/"+num;

        httpClient.doGet(uri);

}  

 

 

//后台controller

@RequestMapping("/update/num/{itemId}/{num}")

@ResponseBody

public SysResult updateCartNum(@PathVariable Long userId,@PathVariable Long itemId,@PathVariable Integer num){

        try {

            cartService.updateCartNum(userId,itemld,num);

            return SysResult.oK();

        } catch (Exception e) {

            e.printStackTrace();

        }

        return SysResult.build(201,"修改商品失败");

}

 

//后台service

@Override

public void updateCartNum(Cart cart) {

        cart.setUpdated(new Date());

        cartMapper.updateCartNum(cart);

}

 

//mapper接口

public interface CartMapper extends SysMapper<Cart> {

Cart dinfCartByUserIdAndItemId(Cart cart);

void updateCartNum(Cart cart);

}

//xml映射文件

<update id="updateCartNum">

        update tb_cart set num = #{num},updated = #{updated} where user_id = #{userId} and item_id = #{itemId}

</update>

 

4.删除

//前台controller

@RequestMapping("/delete/{itemId}")

public String deleteCart(@PathVariable Long itemId){

        Long userId = UserThreadLocal.get().getId();

        cartService.deleteCart(userId,itemId);

        //重定向到购物车展现列表页面

        return "redirect:/cart/show.html";

    }

 

//前台service

@Override

public void deleteCart(Long userId, Long itemId) {

        String uri = "http://cart.jt.com/cart/delete/"+userId+"/"+itemId;

        httpClient.doGet(uri);

    }

 

//后台controller

@RequestMapping("/delete/{userId}/{itemId}")

@ResponseBody

public SysResult deleteCart(@PathVariable Long userId,@PathVariable Long itemId){

        try {

            cartService.deleteCart(userId,itemId);

            return SysResult.oK();

        } catch (Exception e) {

            e.printStackTrace();

        }

        return SysResult.build(201, "删除商品失败");

    }

 

//后台service

@Override

public void deleteCart(Long userId, Long itemId) {

        Cart cart = new Cart();

        cart.setUserId(userId);

        cart.setItemId(itemId);

        super.deleteByWhere(cart);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值