SpringBoot 물품 소장 기능 실현

앞 뒤 분리 프로젝트 C 중고 거래 플랫폼 애플 릿
SpringBoot-아 이 템 좋아요 기능 구현
SpringBoot----댓 글 답장 기능 실현(데이터베이스 디자인)
SpringBoot---파일(그림)업로드 및 표시(다운로드)
수장 하 다
데이터베이스 디자인:세 번 째 시 계 를 사용 하여 어떤 사용자 가 어떤 물건 을 소장 하고 있 는 지 저장 합 니 다.
在这里插入图片描述
이 글 을 쓸 때 사용자 가 이미 소장 하고 있 는 지 아 닌 지 를 어떻게 판단 할 지 전혀 생각 하지 못 했 습 니 다.처음에 전단 지 에서 제 백 엔 드 에 데 이 터 를 추가 해 달라 고 요청 하 셨 습 니 다.이렇게 하면 사용자 가 내 소장 품 에서 소장 품 을 볼 수 있 지만,들 어가 면 소장 버튼 이 밝 아 지지 않 습 니 다.
在这里插入图片描述
첫 번 째 클릭 하면 밝 아 지고 두 번 째 들 어 오 면 소장 여 부 를 어떻게 판단 하 느 냐 가 문제 다.
해결:전역 js 에 요청 을 썼 습 니 다.바로 애플 릿 이 들 어 오 자마자 현재 사용자 가 수집 하고 있 는 정 보 를 가 져 오 라 고 요청 하 는 것 입 니 다(배열 입 니 다).그리고 상세 페이지 에 들 어 갈 때 판단 합 니 다.또한 사용자 가 다시 수집 하거나 취소 한 후에 배열 정 보 를 변경 합 니 다.사용자 가 자세 한 페이지 를 종료 하고 내 인터페이스 로 전환 하면 이 배열 을 배경 으로 데이터 베 이 스 를 업데이트 합 니 다.
在这里插入图片描述
배경 코드:이것 은 전단 에서 돌아 오 는 배열 과 데이터베이스 현재 배열 이 어떤 차이 가 있 는 지 판단 해 야 합 니 다.정 보 를 추가 하거나 삭제 하거나 새로 추가 하거나 삭제 해 야 합 니 다.
데이터베이스 원래 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;

    }
스프링 부 트 의 아 이 템 컬 렉 션 기능 구현 에 관 한 글 은 여기까지 입 니 다.스프링 부 트 아 이 템 컬 렉 션 에 관 한 더 많은 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기