最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot實現(xiàn)物品收藏功能

 更新時間:2021年04月28日 11:09:16   作者:古墓派學(xué)子  
這篇文章主要介紹了SpringBoot實現(xiàn)物品收藏功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前后端分離項目–二手交易平臺小程序

SpringBoot----物品點贊功能實現(xiàn)
SpringBoot----評論回復(fù)功能實現(xiàn)(數(shù)據(jù)庫設(shè)計)
SpringBoot----文件(圖片)上傳與顯示(下載)

收藏

數(shù)據(jù)庫設(shè)計:使用了第三張表來存儲哪個用戶收藏了哪個物品

在這里插入圖片描述

寫這個的時候壓根沒想到怎么判斷用戶是否已經(jīng)收藏,一開始是前端發(fā)一次請求我后臺就添加數(shù)據(jù)到數(shù)據(jù)表中。這樣只是用戶可以在我的收藏中查看到收藏了的物品,但是點擊進去無法讓收藏按鈕亮起來。

在這里插入圖片描述

第一次點擊以后會亮,之后第二次進來怎么判斷是否收藏這是個問題。
解決:在全局js中寫了一個請求,就是小程序剛進入就發(fā)請求獲取當(dāng)前用戶收藏信息(是一個數(shù)組)。然后進入詳情頁時進行判斷。并且當(dāng)用戶再次收藏或者取消收藏后更改數(shù)組信息。當(dāng)用戶退出詳情頁切換到我的界面將這個數(shù)組發(fā)送到后臺更新數(shù)據(jù)庫

在這里插入圖片描述

后臺代碼:這個你就必須去判斷前端返回的數(shù)組和你數(shù)據(jù)庫當(dāng)前數(shù)組有哪些區(qū)別,你是增加還是刪除信息,或者既要新增又要刪除
數(shù)據(jù)庫原有id【1,2,3】
前端返回id【1,4,5】
這個時候你既要找出2,3去刪除,又要找出4,5去新增。

@Override
    public int addGoodsInCar(@RequestBody JSONObject sums) {
        String openid = sums.getString("openid");
        JSONArray gid = sums.getJSONArray("gid");
        if (openid==null||gid==null){
            return 0;
        }
        JSONArray  gidf = (JSONArray)gid.clone();//深拷貝
        ArrayList<Integer> integers = shoppingCarMapper.selectByOpenid(openid);
        int a = 1;
        if (integers.size()==0 ){
            ShoppingCar car = new ShoppingCar();
            car.setOpenid(openid);
            car.setGid(gid.getInteger(0));
            a = shoppingCarMapper.insert(car);
        }
        if (!integers.isEmpty()){
            //去重

                Iterator<Object> it = gid.iterator();
                while(it.hasNext()){
                    Integer gid1 =(Integer) it.next();

                    integers.forEach(item -> {
                        if(item == gid1){
                            it.remove();
                        }
                    });
                }

                Iterator<Object> it1 = gid.iterator();

                while (it1.hasNext() && a==1){
                    int next = (int)it1.next();
                    ShoppingCar car = new ShoppingCar();
                    car.setOpenid(openid);
                    car.setGid(next);
                    a = shoppingCarMapper.insert(car);
                }

                Iterator<Integer> integers0 = integers.iterator();

                while(integers0.hasNext()){
                    Integer gid1 =integers0.next();
                    gidf.forEach(item -> {
                        if(item == gid1){
                            integers0.remove();
                        }
                    });
                }
                Iterator<Integer> iterator2 = integers.iterator();

                while (iterator2.hasNext() && a==1){
                    int next = iterator2.next();
                    ShoppingCar car = new ShoppingCar();
                    car.setOpenid(openid);
                    car.setGid(next);
                    a = shoppingCarMapper.deleteCar(car);
                }


            if (a==0){
                return 0;
            }else {
                return 1;
            }
        }
       return 0;

    }

到此這篇關(guān)于SpringBoot實現(xiàn)物品收藏功能的文章就介紹到這了,更多相關(guān)SpringBoot物品收藏內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中Optional.of()方法及源碼解析(非常詳細!)

    Java中Optional.of()方法及源碼解析(非常詳細!)

    這篇文章主要給大家介紹了關(guān)于Java中Optional.of()方法及源碼解析的相關(guān)資料,Java中java.util .Optional類的of()方法用于獲得該Optional類中具有指定類型的指定值的一個實例,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-06-06
  • Async的線程池使用選擇解析

    Async的線程池使用選擇解析

    這篇文章主要為大家介紹了Async的線程池使用選擇解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • Spring?Boot的無縫銜接實踐案例

    Spring?Boot的無縫銜接實踐案例

    在快速迭代的軟件開發(fā)環(huán)境中,無縫銜接是提升開發(fā)效率、降低維護成本、增強系統(tǒng)穩(wěn)定性的關(guān)鍵,本文將深入解析Spring?Boot無縫銜接的幾大優(yōu)勢,并通過實際案例和深入分析,展示這些優(yōu)勢如何在項目中發(fā)揮作用
    2024-08-08
  • Java中轉(zhuǎn)義字符反斜杠\的代替方法及repalceAll內(nèi)涵解析

    Java中轉(zhuǎn)義字符反斜杠\的代替方法及repalceAll內(nèi)涵解析

    這篇文章主要介紹了Java中轉(zhuǎn)義字符反斜杠\的代替方法及repalceAll內(nèi)涵解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • IDEA中將SpringBoot項目提交到git倉庫的方法步驟

    IDEA中將SpringBoot項目提交到git倉庫的方法步驟

    本文主要介紹了IDEA中將SpringBoot項目提交到git倉庫的方法步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • RabbitMQ中的Connection和Channel信道詳解

    RabbitMQ中的Connection和Channel信道詳解

    這篇文章主要介紹了RabbitMQ中的Connection和Channel信道詳解,信道是建立在 Connection 之上的虛擬連接,RabbitMQ 處理的每條 AMQP 指令都是通過信道完成的,需要的朋友可以參考下
    2023-08-08
  • java虛擬機

    java虛擬機

    2008-01-01
  • Java接收text/event-stream格式數(shù)據(jù)的詳細代碼

    Java接收text/event-stream格式數(shù)據(jù)的詳細代碼

    這篇文章主要介紹了java接收text/event-stream格式數(shù)據(jù),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Mybatis SQL運行流程源碼詳解

    Mybatis SQL運行流程源碼詳解

    這篇文章主要介紹了Mybatis SQL運行流程源碼詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • java實現(xiàn)異步線程,回調(diào)接口方式

    java實現(xiàn)異步線程,回調(diào)接口方式

    這篇文章主要介紹了java實現(xiàn)異步線程,回調(diào)接口方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評論

富裕县| 宜黄县| 越西县| 汤阴县| 石家庄市| 烟台市| 尤溪县| 阜新| 中江县| 潍坊市| 仪陇县| 南京市| 韶关市| 德庆县| 云林县| 伊通| 额济纳旗| 龙井市| 汝州市| 湖州市| 虞城县| 磐安县| 黄平县| 彩票| 峨眉山市| 湖北省| 九江县| 南召县| 甘德县| 楚雄市| 绥芬河市| 黄龙县| 竹山县| 湖口县| 昌图县| 潜江市| 彭山县| 白河县| 双鸭山市| 卓资县| 河池市|