11.更新和刪除購物車

表現層

    
    /**
     * 更新購物車
     */
    public E3Result updateCartNum(long userId, long itemId, int num) {
        //根據用戶id查詢用戶列表
        String json = jedisClient.hget(REDIS_CART_PRE+":"+userId, itemId+"");
        //更新商品數量
        TbItem item = JsonUtils.jsonToPojo(json, TbItem.class);
        item.setNum(num);
        //寫入Redis 
        jedisClient.hset(REDIS_CART_PRE+":"+userId, itemId+"",JsonUtils.objectToJson(item));
        return E3Result.ok();
    }

    /**
     * 刪除購物車
     */
    public E3Result deleteCartItem(long userId, long itemId) {
        //根據用戶id查詢用戶列表
        jedisClient.hdel(REDIS_CART_PRE+":"+userId, itemId+"");
        return E3Result.ok();
    }
表現層的實現
/**
     * 更新購物車商品的數量
     */
    @RequestMapping("/cart/update/num/{itemId}/{num}")
    @ResponseBody
    public E3Result updateCatNum(@PathVariable Long itemId,@PathVariable Integer num,
            HttpServletRequest request,HttpServletResponse response){
        //判斷用戶是否登錄
        TbUser user = (TbUser) request.getAttribute("user");
            if(user !=null){
                cartService.updateCartNum(user.getId(), itemId, num);
                return E3Result.ok();
            }
        //1.取出購物車的列表
        List<TbItem> itemList = getCartListFromCookie(request);
        //2.遍歷列表,找到對應的商品
        for(TbItem item :itemList){
            if(item.getId().longValue() == itemId){
                //3.更新數量
                item.setNum(num);
                break;
            }
        }
        //4.把購物車列表寫回Cookie
        CookieUtils.setCookie(request, response,"cart",JsonUtils.objectToJson(itemList),COOKIE_CART_EXPIRE,true);
        //5.返回成功
        return E3Result.ok();
        
    }
    
    /**
     * 刪除購物車商品
     */
    @RequestMapping("/cart/delete/{itemId}")
    public String deleteCartItem(@PathVariable Long itemId, HttpServletRequest request,
            HttpServletResponse response) {
        //判斷用戶是否為登錄狀態(tài)
        TbUser user = (TbUser) request.getAttribute("user");
        //如果是登錄狀態(tài),把購物車寫入Redis
        if (user != null) {
            //保存到服務器
            cartService.deleteCartItem(user.getId(), itemId);
            //返回邏輯視圖
            return "redirect:/cart/cart.html";
        }
        //從cookie中取購物車列表
        List<TbItem> cartList = getCartListFromCookie(request);
        //遍歷列表椎瘟,找到要刪除的商品
        for (TbItem tbItem : cartList) {
            if (tbItem.getId().longValue() == itemId) {
                //刪除商品
                cartList.remove(tbItem);
                //跳出循環(huán)
                break;
            }
        }
        //把購物車列表寫入cookie
        CookieUtils.setCookie(request, response, "cart", JsonUtils.objectToJson(cartList), COOKIE_CART_EXPIRE, true);
        //返回邏輯視圖,跳轉到下面的頁面
        return "redirect:/cart/cart.html";
    }

觀察結果

圖片.png

圖片.png
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末覆致,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子肺蔚,更是在濱河造成了極大的恐慌煌妈,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異璧诵,居然都是意外死亡汰蜘,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門腮猖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鉴扫,“玉大人,你說我怎么就攤上這事澈缺∑捍矗” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵姐赡,是天一觀的道長莱预。 經常有香客問我,道長项滑,這世上最難降的妖魔是什么依沮? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮枪狂,結果婚禮上危喉,老公的妹妹穿的比我還像新娘。我一直安慰自己州疾,他們只是感情好辜限,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著严蓖,像睡著了一般薄嫡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上颗胡,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天毫深,我揣著相機與錄音,去河邊找鬼毒姨。 笑死哑蔫,一個胖子當著我的面吹牛,可吹牛的內容都是我干的弧呐。 我是一名探鬼主播鸳址,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼泉懦!你這毒婦竟也來了?” 一聲冷哼從身側響起疹瘦,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤崩哩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體邓嘹,經...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡酣栈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了汹押。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片矿筝。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖棚贾,靈堂內的尸體忽然破棺而出窖维,到底是詐尸還是另有隱情,我是刑警寧澤妙痹,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布铸史,位于F島的核電站,受9級特大地震影響怯伊,放射性物質發(fā)生泄漏琳轿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一耿芹、第九天 我趴在偏房一處隱蔽的房頂上張望崭篡。 院中可真熱鬧,春花似錦吧秕、人聲如沸琉闪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽塘偎。三九已至,卻和暖如春拿霉,著一層夾襖步出監(jiān)牢的瞬間吟秩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工绽淘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留涵防,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓沪铭,卻偏偏與公主長得像壮池,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子杀怠,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,185評論 25 707
  • 飛來小寵椰憋,超萌超可愛,大大的眼睛赔退,能有見錢兒的眼睛四五個大橙依≈ぶ郏可惜,不是我家窗骑,是朋友的家里女责,晚飯后一只小貓頭鷹飛來聊...
    純流氓藝術家閱讀 238評論 0 0
  • 小結 - 洗頭,洗衣服创译,做飯抵知,練琴,學習软族。 明日計劃 - 去圖書館刷喜。
    301Cl閱讀 128評論 2 2
  • 拼了命的奔跑吱肌,終嗅得海棠的芬芳。 -01- 黑夜席卷了整座城市仰禽,凌晨三點筱楠從噩夢中驚醒氮墨,手心里溢滿了汗水。 從來...
    陳若男閱讀 1,493評論 24 29
  • 走南闖北若干年吐葵,慢慢地堅定了一個想法——到一個地方玩规揪,一定要去有當地特色的地方。所以温峭,當規(guī)劃日本行程的時候猛铅,完全沒...
    萬旗k閱讀 258評論 0 0