路线+收藏管理

目录

 1.1路线列表分页查询

1.2,分页查询service

1.3,分页查询总条目dao

1.4,分页查询数据dao

1.5 查询详情页

1.6 详情页service

1.7 详情页dao

1.8 查图片

1.9查sellerMsg

2.0收藏管理

2.1判断当前用户是否收藏

2.2判断当前用户是否收藏service

2.2判断当前用户是否收藏dao

2.3查收藏数

2.4查收藏数service

2.5查收藏数dao

2.6添加收藏

2.7添加收藏service

2.8添加收藏dao

2.9删除收藏

2.10删除收藏service

2.11删除收藏dao

2.12前端


查看架构图与总览 

 

由于都是很固定的操作,写流程的时候实在是无从下手,代码甚至可以复制进新项目,所以这一篇以代码实现为主 

 1.1路线列表分页查询

   
    /**
     * 分页查询
     * */

    public void pageQuery(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String cidStr = request.getParameter("cid");
        String pageSizeStr = request.getParameter("pageSize");
        String currentPageStr = request.getParameter("currentPage");
        String rname = request.getParameter("rname");

        if (rname != null && rname.length() > 0 && !"null".equals(rname)) {
            rname = new String(rname.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
        }

        int cid = 0;
        if (cidStr != null && cidStr.length() > 0 && !"null".equals(cidStr)) {
            cid = Integer.parseInt(cidStr);
        }

        int pageSize = 0;//每页显示条数,如果前端的传参为空,则指定为5条
        if (pageSizeStr != null && pageSizeStr.length() > 0) {
            pageSize = Integer.parseInt(pageSizeStr);
        }else {
            pageSize = 4;
        }

        int currentPage = 0;//当前页码,如果传参为空,则指定为第一页
        if(currentPageStr != null && currentPageStr.length() > 0) {
            currentPage = Integer.parseInt(currentPageStr);
        }else {
            currentPage = 1;
        }

        PageBean<Route> pageBean = routService.pageQuery(cid, pageSize, currentPage,rname);
        System.out.println(rname+"----1");
        writeValue(pageBean,response);



    }

1.2,分页查询service

  /**
     * 分页查询
     * */


    @Override
    public PageBean<Route> pageQuery(int cid, int pageSize, int currentPage, String rname) {
        PageBean<Route> pageBean = new PageBean<Route>();
        //查询出来的总条目数
        int totalCurrent = routeDao.totalCurrent(cid,rname);
        pageBean.setTotalCount(totalCurrent);
        //计算总页数
        int totalPage = totalCurrent % pageSize == 0 ? totalCurrent / pageSize : (totalCurrent / pageSize) + 1 ;
        pageBean.setTotalPage(totalPage);
        //每页显示的条数
        pageBean.setPageSize(pageSize);
        //当前页码
        pageBean.setCurrentPage(currentPage);
        //分页查询的start
        int start = (currentPage * pageSize) - pageSize;
        //查所有数据
        List<Route> routes = routeDao.routeFindAll(cid, start, pageSize,rname);

        pageBean.setList(routes);
        return pageBean;
    }

1.3,分页查询总条目dao

   public int totalCurrent(int cid, String rname) {
        String sql = "select count(*) from tab_route where 1 = 1 ";
        StringBuilder sb = new StringBuilder(sql);
        List params = new ArrayList();
        if (cid != 0) {
            sb.append(" and cid = ? ");
            params.add(cid);
        }
        if (rname != null && rname.length() > 0 && !"null".equals(rname)) {
            sb.append(" and rname like ? ");
            params.add("%"+rname+"%");
        }
        sql = sb.toString();
        Integer integer = template.queryForObject(sql, Integer.class, params.toArray());
        return integer;
    }

1.4,分页查询数据dao

  @Override
    public List<Route> routeFindAll(int cid, int start, int pageSize, String rname) {

        String sql = "select * from tab_route where 1 = 1 ";
        StringBuilder sb = new StringBuilder(sql);
        List params = new ArrayList();
        if (cid != 0) {
            sb.append(" and cid = ? ");
            params.add(cid);
        }
        //对rname做判断 因为在前端rname加了‘’后传递的所以 !null 无法判断  而!"null"可以判断
        if (rname != null && rname.length() > 0 && !"null".equals(rname)) {
            sb.append(" and rname like ? ");
            params.add("%"+rname+"%");
        }
        sb.append(" limit ? , ? ");
        params.add(start);
        params.add(pageSize);
        sql = sb.toString();
        System.out.println(sql+"----3");
        List<Route> route = template.query(sql, new BeanPropertyRowMapper<Route>(Route.class), params.toArray());

        return route;
    }

1.5 查询详情页

 /**
     * 根据id查询一个线路的详细信息
     * */
     public void findOne(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         String rid = request.getParameter("rid");

         Route route = routService.findOne(rid);

         writeValue(route,response);
    }

1.6 详情页service

@Override
    public Route findOne(String rid) {
        //根据id查询route表中的route对象
        Route route = routeDao.findOne(Integer.parseInt(rid));
        //根据route的id查询图片集合信息
        List<RouteImg> byImg = route_imgDao.findByImg(Integer.parseInt(rid));
        route.setRouteImgList(byImg);
        Seller byId = sellerDao.findById(route.getSid());
        route.setSeller(byId);

        return route;
    }
}

1.7 详情页dao

 @Override
    public Route findOne(int rid) {
        String sql = "select * from tab_route where rid = ? ";

        return template.queryForObject(sql,new BeanPropertyRowMapper<Route>(Route.class),rid);
    }
}

1.8 查图片

/**
 * @ClassName Route_imgDaoImpl
 * @Description
 * @Author Yanghao2
 * @Date 2021/11/26 16:12
 * @Version V1.0
 */

public class Route_imgDaoImpl implements Route_imgDao {
    JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
    @Override
    public List<RouteImg> findByImg(int rid) {
        String sql = "select * from tab_route_img where rid = ? ";
        List<RouteImg> routeImgs = template.query(sql, new BeanPropertyRowMapper<RouteImg>(RouteImg.class),rid);
        return routeImgs;
    }
}

1.9查sellerMsg

/**
 * @ClassName SellerDaoImpl
 * @Description
 * @Author Yanghao2
 * @Date 2021/11/26 16:21
 * @Version V1.0
 */

public class SellerDaoImpl implements SellerDao {
    JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
    @Override
    public Seller findById(int sid) {
        String sql = "select * from tab_seller where sid = ? ";
        Seller seller = template.queryForObject(sql, new BeanPropertyRowMapper<Seller>(Seller.class),sid);
        return seller;
    }
}

2.0收藏管理

2.1判断当前用户是否收藏

  
    /**
     * 查当前用户是否收藏
     * */
    public void findByUidAndRid(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String rid = request.getParameter("rid");
        User user = (User) request.getSession().getAttribute("user");
        int uid;
        if (user == null) {
            uid = 0;
        }else{
            uid = user.getUid();
        }
        boolean isFavorite;
        Favorite favorite = favoriteService.isFavorite(uid, Integer.parseInt(rid));
        if (favorite == null) {
            isFavorite = false;
        }else {
            isFavorite = true;
        }
        writeValue(isFavorite, response);
    }

2.2判断当前用户是否收藏service

   @Override
    public Favorite isFavorite(int uid, int rid) {

        return favoriteDao.findByUidAndRid(uid, rid);
    }

2.2判断当前用户是否收藏dao

  public Favorite findByUidAndRid(int uid, int rid) {
        Favorite favorite = null;
        try {
            String sql = "select * from tab_favorite where uid = ? and rid = ? ";
            favorite = template.queryForObject(sql, new BeanPropertyRowMapper<Favorite>(Favorite.class), uid, rid);
            return favorite;

        } catch (DataAccessException e) {
            System.out.println("未查询到数据");

        }
        return favorite;
    }

2.3查收藏数

/**
 * 查总的收藏数
 * */

    public void findCount(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         String rid = request.getParameter("rid");
        int count = favoriteService.findCount(Integer.parseInt(rid));
        writeValue(count,response);
    }

2.4查收藏数service

 @Override
    public int findCount(int rid) {
        return favoriteDao.findCount(rid);
    }

2.5查收藏数dao

 @Override
    public int findCount(int rid) {
        String sql = "select count(*) from tab_favorite where rid = ? ";
        Integer integer = template.queryForObject(sql, Integer.class, rid);
        return integer;
    }

2.6添加收藏

/**
     * 添加收藏
     * */
    public void addFavorite(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String rid = request.getParameter("rid");
        User user = (User) request.getSession().getAttribute("user");
        int uid;
        if (user == null) {
            return;
        }else {
            uid = user.getUid();
        }
        favoriteService.addFavorite(Integer.parseInt(rid),uid);
    }

2.7添加收藏service

 @Override
    public void addFavorite(int rid, int uid) {
        favoriteDao.addFavorite(rid,uid);
    }

2.8添加收藏dao

 @Override
    public void addFavorite(int rid, int uid) {
        String sql = "insert into tab_favorite values (?,?,?)";
        template.update(sql,rid,new Date(),uid);
    }

2.9删除收藏

  /**
     * 删除收藏
     * */
    public void removeFavorite(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String rid = request.getParameter("rid");
        User user = (User) request.getSession().getAttribute("user");
        int uid;
        if (user == null) {
            return;
        }else {
            uid = user.getUid();
        }
        favoriteService.removeFavorite(Integer.parseInt(rid),uid);

    }

2.10删除收藏service

 @Override
    public void removeFavorite(int rid, int uid) {
        favoriteDao.removeFavorite(rid, uid);
    }

2.11删除收藏dao

 @Override
    public void removeFavorite(int rid, int uid) {
        /*DELETE FROM 表名称 WHERE 列名称 = 值*/
        String sql = "delete from tab_favorite where rid = ? and uid = ? ";
        template.update(sql,rid,uid);
    }

2.12前端

这个超级多,但是大多数都是拼字符串

   <script>
    $(document).ready(function() {

        //自动播放
        // var timer = setInterval("auto_play()", 5000);
        goImag()
    });

    //自动轮播方法
    function auto_play() {
        var cur_index = $('.prosum_left dd').find('a.cur_img').index();
        cur_index = cur_index - 1;
        var num = $('.little_img').length;
        var max_index = 3;
        if ((num - 1) < 3) {
            max_index = num - 1;
        }
        if (cur_index < max_index) {
            var next_index = cur_index + 1;
            var big_pic = $('.little_img:eq(' + next_index + ')').data('bigpic');
            $('.little_img').removeClass('cur_img');
            $('.little_img:eq(' + next_index + ')').addClass('cur_img');
            $('.big_img').attr('src', big_pic);
        } else {
            var big_pic = $('.little_img:eq(0)').data('bigpic');
            $('.little_img').removeClass('cur_img');
            $('.little_img:eq(0)').addClass('cur_img');
            $('.big_img').attr('src', big_pic);
        }
    }
        function goImag() {
            //焦点图效果
            //点击图片切换图片
            $('.little_img').on('mousemove', function() {
                $('.little_img').removeClass('cur_img');
                var big_pic = $(this).data('bigpic');
                $('.big_img').attr('src', big_pic);
                $(this).addClass('cur_img');
            });
            //上下切换
            var picindex = 0;
            var nextindex = 4;
            $('.down_img').on('click',function(){
                var num = $('.little_img').length;
                if((nextindex + 1) <= num){
                    $('.little_img:eq('+picindex+')').hide();
                    $('.little_img:eq('+nextindex+')').show();
                    picindex = picindex + 1;
                    nextindex = nextindex + 1;
                }
            });
            $('.up_img').on('click',function(){
                var num = $('.little_img').length;
                if(picindex > 0){
                    $('.little_img:eq('+(nextindex-1)+')').hide();
                    $('.little_img:eq('+(picindex-1)+')').show();
                    picindex = picindex - 1;
                    nextindex = nextindex - 1;
                }
            });
        }



        $(function () {
            /*
            *  <dd>
                    <a class="up_img up_img_disable"></a>
                    <a title="" class="little_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m40920d0669855e745d97f9ad1df966ebb.jpg">
                        <img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m20920d0669855e745d97f9ad1df966ebb.jpg">
                    </a>
                    <a title="" class="little_img cur_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m49788843d72171643297ccc033d9288ee.jpg">
                        <img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m29788843d72171643297ccc033d9288ee.jpg">
                    </a>
                    <a title="" class="little_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m4531a8dbceefa2c44e6d0e35627cd2689.jpg">
                        <img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m2531a8dbceefa2c44e6d0e35627cd2689.jpg">
                    </a>
                    <a title="" class="little_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m46d8cb900e9f6c0a762aca19eae40c00c.jpg">
                        <img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m26d8cb900e9f6c0a762aca19eae40c00c.jpg">
                    </a>
                    <a title="" class="little_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m45ea00f6eba562a767b5095bbf8cffe07.jpg" style="display:none;">
                        <img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m25ea00f6eba562a767b5095bbf8cffe07.jpg">
                    </a>
                    <a title="" class="little_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m4265ec488cd1bc7ce749bc8c9b34b87bc.jpg" style="display:none;">
                        <img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m2265ec488cd1bc7ce749bc8c9b34b87bc.jpg">
                    </a>
                    <a title="" class="little_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m4e7e964909d7dd1a9f6e5494d4dc0c847.jpg" style="display:none;">
                        <img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m2e7e964909d7dd1a9f6e5494d4dc0c847.jpg">
                    </a>
                    <a title="" class="little_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m467db00e1b76718fab0fe8b96e10f4d35.jpg" style="display:none;">
                        <img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m267db00e1b76718fab0fe8b96e10f4d35.jpg">
                    </a>
                    <a title="" class="little_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m487bbbc6e43eba6aa6a36cc1a182f7a20.jpg" style="display:none;">
                        <img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m287bbbc6e43eba6aa6a36cc1a182f7a20.jpg">
                    </a>
                    <a class="down_img down_img_disable" style="margin-bottom: 0;"></a>
                </dd>
            * */

            var rid = getParameter("rid");

            $.get("routServlet/findOne",{rid:rid},function (route) {

            $("#rname").html(route.rname);
            $("#price").html("¥"+route.price);
            $("#routeIntroduce").html(route.routeIntroduce);
            $("#sname").html(route.seller.sname);
            $("#consphone").html(route.seller.consphone);
            $("#address").html(route.seller.address);
            var ddstr = '<a class="up_img up_img_disable"></a>';


            for (var i = 0; i < route.routeImgList.length; i ++) {
                var astr ;
                var dtstr;
                if (i == 0) {
                    dtstr = '<img alt="" class="big_img" src="'+route.routeImgList[i].bigPic+'">\n'
                }
                if (i >=4 ) {
                    astr = '<a title="" class="little_img" data-bigpic="'+route.routeImgList[i].bigPic+'" style=\"display:none;\">\n' +
                        '                        <img src="'+route.routeImgList[i].smallPic+'">\n' +
                        '                    </a>'
                }else {
                    astr = '<a title="" class="little_img" data-bigpic="'+route.routeImgList[i].bigPic+'">\n' +
                        '                        <img src="'+route.routeImgList[i].smallPic+'">\n' +
                        '                    </a>'
                }
                ddstr += astr;
            }
            ddstr += '<a class="down_img down_img_disable" style="margin-bottom: 0;"></a>';

            $("#dt").html(dtstr);
            $("#dd").html(ddstr);
            goImag()
        })
    })
    $(function () {
        var rid = getParameter("rid");

        $.get("routServlet/findByUidAndRid",{rid:rid},function (data) {
            if (data) {
                $("#no_favorite").hide()
                $("#yes_favorite").show()

            }else {
                $("#yes_favorite").hide()
                $("#no_favorite").show()
            }


        })
        $.get("routServlet/findCount",{rid:rid},function (count) {
            $("#span_count").html("已收藏"+count+ "次")
        })
    })
    function addFavorite() {

        var rid = getParameter("rid");
        $.get("routServlet/addFavorite",{rid:rid},function () {
            $.get("routServlet/findByUidAndRid",{rid:rid},function (data) {
                if (data) {
                    $("#no_favorite").hide()
                    $("#yes_favorite").show()

                }else {
                    $("#yes_favorite").hide()
                    $("#no_favorite").show()
                }


            })
            $.get("routServlet/findCount",{rid:rid},function (count) {
                $("#span_count").html("已收藏"+count+ "次")
            })
        })

    }
    function removeFavorite() {
        var rid =getParameter("rid");
        $.get("routServlet/removeFavorite",{rid:rid},function () {
            $.get("routServlet/findByUidAndRid",{rid:rid},function (data) {
                if (data) {
                    $("#no_favorite").hide()
                    $("#yes_favorite").show()

                }else {
                    $("#yes_favorite").hide()
                    $("#no_favorite").show()
                }


            })
            $.get("routServlet/findCount",{rid:rid},function (count) {
                $("#span_count").html("已收藏"+count+ "次")
            })
        })
    }

    </script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值