旅游门户网站04

旅游门户网站04

旅游线路的收藏功能:

是否收藏过:

在这里插入图片描述

servlet

public void isfavorite(HttpServletRequest request,HttpServletResponse response) throws IOException {
    String rid_ = request.getParameter("rid");
    Integer rid = Integer.parseInt(rid_);
    Object object =  request.getSession().getAttribute("user");
    ResponseInfo info = new ResponseInfo();
    if(object==null){
        info.setFlag(false);
    }else {
        User user = (User) object;
        Boolean b =service.ifFavorite(rid,user.getUid());
        info.setFlag(b);
    }
    writeResponse(info,response);
}

service

@Override
public Boolean ifFavorite(Integer rid, int uid) {
    Boolean b = favoriteDao.findRouteByRidAndUid(rid,uid);
    return b;
}

Dao

@Override
public Boolean findRouteByRidAndUid(Integer rid, int uid) {
    Favorite favorite=null;
    try{
        favorite = jdbcTemplate.queryForObject("select * from tab_favorite where rid = ? and uid = ?", new BeanPropertyRowMapper<Favorite>(Favorite.class), rid, uid);
    }catch (Exception e){
        favorite=null;
    }
    return favorite!=null;
}
点击按钮收藏线路:

在这里插入图片描述

js

$.get("route/isfavorite",{rid:rid},function(data) {
    if (data.flag){
        $("#fav").html('<a  class="btn already "  id="remove" disabled="disabled"><i class="glyphicon glyphicon-heart-empty"></i>点击收藏</a>\n' +
            '                        ');
        }else {
        $("#fav").html('<a class="btn" id="add"><i class="glyphicon glyphicon-heart-empty" id="favorite"></i>点击收藏</a> ');
    }
    $("#add").click(function() {
                var rid=getParameter("rid");
                $.get("user/findUser",{},function(data) {
                    if (data.flag){
                        $.get("route/addFavorite",{rid:rid,uid:data.data.uid},function(data) {
                            location.reload();
                        });
                    }else {
                        location.href="http://localhost:80/sumang/login.html?href="+location.href;
                    }
                });
            });
});

servlet

public void addFavorite(HttpServletRequest request,HttpServletResponse response) throws IOException {
    String uid_ = request.getParameter("uid");
    String rid_ = request.getParameter("rid");
    Integer rid = Integer.parseInt(rid_);
    Integer uid = Integer.parseInt(uid_);
    service.addFavorite(rid,uid);
    writeResponse("ok",response);
}

service

@Override
public void addFavorite(Integer rid, Integer uid) {
    routeDao.updateCountByRid(rid);
    favoriteDao.add(rid,uid);
}

Dao

@Override
public void add(Integer rid, Integer uid) {
    jdbcTemplate.update("insert into tab_favorite(rid,uid,date ) values(?,?,?) ",rid,uid,new Date());
}

@Override
public void updateCountByRid(Integer rid) {
   jdbcTemplate.update("update tab_route set count=count+1 where rid = ?",rid);
}

收藏页面:

$(function() {
    load(1);
    click();
});
function click() {
    $("#shaixuan-button").click(function() {
        var rname = $("#rname").val();
        var begin = $("#begin").val();
        var end = $("#end").val();
        if(rname){
            //url解码
            rname = window.decodeURIComponent(rname);
        }
        load(1,rname,begin,end);
        // location.href="http://localhost/sumang/favoriterank.html?currentPage="+1+"rname="+rname+"&begin="+begin+"&end="+end;
    });
}

function load(currentPage,rname,begin,end) {
    $.get("route/favoriterank",{currentPage:currentPage,rname:rname,begin:begin,end:end},function (data) {
        $("#totalPage").html(data.data.totalPage);
        $("#totalCount").html(data.data.totalSize);
        // alert(rname);

        var pages='<li οnclick="javascipt:load('+1+',\''+rname+'\',\''+begin+'\',\''+end+'\')"><a href="javascript:void(0)">首页</a></li>\n' + '<li οnclick="load('+(data.data.currentPage-1)+',\''+rname+'\',\''+begin+'\',\''+end+'\')" class="threeword"><a href="javascript:void(0)">上一页</a></li>';

        var begin_;
        var end_;
        if(data.data.totalPage < 10){
            //总页码不够10页

            begin_ = 1;
            end_ = data.data.totalPage;
        } else {
            begin_ = data.data.currentPage - 5 ;
            end_ = data.data.currentPage + 4 ;
            if (begin_<1){
                begin_=1;
                end_=10;
            }
            if (end>data.data.totalPage){
                end_=data.data.totalPage;
                begin_=end_-9;
            }

        }

        for (var i=begin_;i<=end_;i++){
            if(data.data.currentPage == i){

                li = '<li class="curPage" οnclick="javascipt:load('+i+',\''+rname+'\',\''+begin+'\',\''+end+'\')"><a href="javascript:void(0)">'+i+'</a></li>';

            }else{
                //创建页码的li
                li = '<li οnclick="javascipt:load('+i+',\''+rname+'\',\''+begin+'\',\''+end+'\')"><a href="javascript:void(0)">'+i+'</a></li>';
            }
            pages+=li;
        }
        pages+=' <li οnclick="load('+(data.data.currentPage+1)+',\''+rname+'\',\''+begin+'\',\''+end+'\')" class="threeword"><a href="javascript:void(0);">下一页</a></li>\n' +
            '                            <li οnclick="load('+data.data.totalPage+',\''+rname+'\',\''+begin+'\',\''+end+'\')" class="threeword"><a href="javascript:void(0);">末页</a></li>';

        $("#page").html(pages);


        var lis = '';
        for (var i = 0; i < data.data.list.length; i++) {
            if(i==0){
                lis +=
                    '<li>'+
                    '<span class="num one">'+(i+1)+'</span>'+
                    '<a href="route_detail.html?rid=' + data.data.list[i].rid + '">' +
                    '<img src="' + data.data.list[i].rimage + '" alt=""></a>'+
                    '<h4><a href="route_detail.html?rid=' + data.data.list[i].rid + '">' + data.data.list[i].rname + '</a></h4>'+
                    '<p>'+
                    '<b class="price">&yen;<span>' + data.data.list[i].price + '</span>起</b>'+
                    '<span class="shouchang">已收藏' + data.data.list[i].count + '次</span>'+
                    '</p>'+
                    '</li>';
            }else if(i==1){
                lis +=
                    '<li>'+
                    '<span class="num two">'+(i+1)+'</span>'+
                    '<a href="route_detail.html?rid=' + data.data.list[i].rid + '">' +
                    '<img src="' + data.data.list[i].rimage + '" alt=""></a>'+
                    '<h4><a href="route_detail.html?rid=' + data.data.list[i].rid + '">' + data.data.list[i].rname + '</a></h4>'+
                    '<p>'+
                    '<b class="price">&yen;<span>' + data.data.list[i].price + '</span>起</b>'+
                    '<span class="shouchang">已收藏' + data.data.list[i].count + '次</span>'+
                    '</p>'+
                    '</li>';
            }else{
                lis +=
                    '<li>'+
                    '<span class="num">'+(i+1)+'</span>'+
                    '<a href="route_detail.html?rid=' + data.data.list[i].rid + '">' +
                    '<img src="' + data.data.list[i].rimage + '" alt=""></a>'+
                    '<h4><a href="route_detail.html?rid=' + data.data.list[i].rid + '">' + data.data.list[i].rname + '</a></h4>'+
                    '<p>'+
                    '<b class="price">&yen;<span>' + data.data.list[i].price + '</span>起</b>'+
                    '<span class="shouchang">已收藏' + data.data.list[i].count + '次</span>'+
                    '</p>'+
                    '</li>';
            }

        }
        $("#list").html(lis);
        window.scrollTo(0,0);

    },"json");

}

servlet

public void favoriterank(HttpServletRequest request,HttpServletResponse response) throws IOException {
    String currentPage_ = request.getParameter("currentPage");
    String begin_ = request.getParameter("begin");
    String end_ = request.getParameter("end");
    String rname_ = request.getParameter("rname");
    Integer begin = null;
    Integer end = null;
    Integer currentPage;
    String rname = null;

  if(StringUtils.isEmpty(rname_)||rname_.equals("null")||rname_.equals("undefined")){

    }else {
        byte[] bytes = rname_.getBytes("iso-8859-1");
        rname=new String(bytes,"utf-8");
    }

  if(StringUtils.isEmpty(currentPage_)||currentPage_.equals("null")||Integer.parseInt(currentPage_)==0){
        currentPage= 1;
    }else {
        currentPage = Integer.parseInt(currentPage_);
    }

  if(StringUtils.isEmpty(begin_)||begin_.equals("null")||begin_.equals("undefined")){

    }else {
        begin=Integer.parseInt(begin_);
    }

   if(StringUtils.isEmpty(end_)||end_.equals("null")||end_.equals("undefined")){

    }else {
        end=Integer.parseInt(end_);
    }

    PageBean<Route> pb = service.favoriterank_byRnameBeginEnd(currentPage,rname,begin,end);
    ResponseInfo info = new ResponseInfo();
    if (pb.getList()==null||pb.getList().size()==0){
        info.setFlag(false);
        info.setErrorMsg("线路查询失败");
    }else {
        info.setFlag(true);
        info.setData(pb);

    }
    writeResponse(info,response);

}

service

@Override
public PageBean<Route> favoriterank_byRnameBeginEnd(Integer currentPage, String rname, Integer begin, Integer end) {
    PageBean<Route> pb = new PageBean<>();
    List<Route> list = routeDao.getfavoriterank_byRnameBeginEnd(currentPage,rname,begin,end,8);
    Integer size = routeDao.findCount_byRnameBeginEnd(rname,begin,end);

    pb.setCurrentPage(currentPage);
    pb.setList(list);
    pb.setPageSize(8);
    pb.setTotalPage(size%8 == 0?size/8:size/8+1);
    pb.setTotalSize(size);

    return pb;
}

Dao

    @Override
    public List<Route> getfavoriterank_byRnameBeginEnd(Integer currentPage, String rname, Integer begin, Integer end, int i) {
        StringBuilder sb = new StringBuilder("select * from tab_route where 1=1");
//        List<String> params = new ArrayList<>();
        if(!StringUtils.isEmpty(rname)){
            sb.append(" and rname like  '"+"%"+rname+"%"+"'");
//            params.add("'"+"%"+rname+"%"+"'");
        }
        if(begin!=null){
            sb.append(" and price > "+begin+"");
//            params.add(begin);
        }
        if(end!=null){
            sb.append(" and price < "+end+"");
//            params.add(begin);
        }
        sb.append(" order by COUNT desc limit "+(currentPage-1)*i+","+i);
        System.out.println(sb);
        List<Route> list = jdbcTemplate.query(sb.toString(), new BeanPropertyRowMapper<Route>(Route.class));
        System.out.println(list);
        return list;
    }

    @Override
    public Integer findCount_byRnameBeginEnd(String rname, Integer begin, Integer end) {
        StringBuilder sb = new StringBuilder("select count(*) from tab_route where 1=1 ");
//        List<Integer> params = new ArrayList<>();
        if(!StringUtils.isEmpty(rname)){
            sb.append(" and rname like  '"+"%"+rname+"%"+"'");
//            params.add("'"+"%"+rname+"%"+"'");
        }
        if(begin!=null){
            sb.append(" and price > "+begin+"");
//            params.add(begin);
        }
        if(end!=null){
            sb.append(" and price < "+end+"");
//            params.add(begin);
        }
        sb.append(" order by COUNT desc");
        Integer integer = jdbcTemplate.queryForObject(sb.toString(), Integer.class);
        System.out.println(integer);
        return integer;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值