旅游门户网站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">¥<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">¥<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">¥<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;
}