JavaWeb旅游项目5
查看详细信息,图片也要实现展示
//根据id查询一个旅游线路的详细信息。
public void findOne(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.获取前台提交上来的rid
String rid = request.getParameter("rid");
// int rid = 1;
// if (ridStr != null && ridStr.length() > 0 && !ridStr.equals("undefined")) {
// rid = Integer.parseInt(ridStr);
// }
//2.调用service
RouteService routeService = new RouteServiceImpl();
Route route = routeService.findOneByRid(rid);
//转为json返回
writeValue(route, response);
}
route_detail.html
$(function () {
//获取rid
var rid = UrlParam.param("rid");
// alert(rid);
//发送Ajax请求
$.get("route/findOne",{'rid':rid},function(route){
//展示文本信息
$('#rname').text(route.rname);
$('#routeIntroduce').text(route.routeIntroduce);
$('#sname').text(route.seller.sname);
$('#consphone').text(route.seller.consphone);
$('#address').text(route.seller.address);
//price
$('#price').text("价格:" + route.price);
//收藏次数
$('#count').text(route.count);
//图片展示
var ddstr = ' <a class="up_img up_img_disable"></a>';
//遍历routeImgList
for (var i = 0; i < route.routeImgList.length ; i++) {
var astr;
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>';
$('#dd').html(ddstr);
//展示图片和切换图片
goImg();
});
$(document).ready(function() {
//自动播放
goImg();
// var timer = setInterval("auto_play()", 5000);
});
function goImg() {
//焦点图效果
//点击图片切换图片
$('.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;
}
});
}
@Override
public Route findOneByRid(int rid) {
System.out.println(rid);
System.out.println("调用了");
String sql = "select * from tab_route where rid=?";
Route route = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Route>(Route.class), rid);
return route;
}
package org.westos.travel.dao.impl;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.westos.travel.dao.SellerDao;
import org.westos.travel.domain.Seller;
import org.westos.travel.util.JDBCUtils;
public class SellerDaoImpl implements SellerDao {
private JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
@Override
//根据sid查询商家
public Seller findSellerBySid(int sid) {
String sql = "select * from tab_seller where sid=?";
Seller seller = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Seller>(Seller.class), sid);
return seller;
}
}
package org.westos.travel.dao.impl;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.westos.travel.dao.RouteImgDao;
import org.westos.travel.domain.RouteImg;
import org.westos.travel.util.JDBCUtils;
import java.util.List;
public class RouteImgDaoImpl implements RouteImgDao {
private JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
@Override
public List<RouteImg> findImags(int rid) {
String sql="select * from tab_route_img where rid=?";
List<RouteImg> routeImgList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<RouteImg>(RouteImg.class), rid);
return routeImgList;
}
}
收藏功能
//判断登陆用户是否收藏过此线路
public void isFavorite(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1。获取rid
String ridStr = request.getParameter("rid");
int rid = 0;
if (ridStr != null && ridStr.length() > 0 && !ridStr.equals("undefined")) {
rid = Integer.parseInt(ridStr);
}
//从session中获取当前登陆用户
User user = (User) request.getSession().getAttribute("user");
int uid = 0;
//判断当前用户是否登陆
//如果登录获取uid
if (user != null) {
//获取用户的id
uid = user.getUid();
}
//调用service 传递rid和uid
FavoriteService favoriteService = new FavoriteServiceImpl();
//true 说明该用户收藏过 false 代表登录没收藏或没登录
boolean flag = favoriteService.isFavorite(rid, uid);
//3.转为JSON返回
writeValue(flag, response);
}
//中添加收藏的方法
public void addFavorite(HttpServletRequest request, HttpServletResponse response) {
//1.获取rid
String ridStr = request.getParameter("rid");
int rid = 0;
if (ridStr != null && ridStr.length() > 0 && !ridStr.equals("undefined")) {
rid = Integer.parseInt(ridStr);
}
//2.从session中获取当前登录用户
User user = (User) request.getSession().getAttribute("user");
int uid = 0;
//3.判断当前用户是否登录,如果登录获取uid
if (user != null) {
//获取用户的uid
uid = user.getUid();
}else{
//如果用户没有登录直接return
return;
}
//4.调用service完成添加
FavoriteService favoriteService = new FavoriteServiceImpl();
favoriteService.add(uid,rid);
//不需要给前台返回数据
}
}
package org.westos.travel.service;
public interface FavoriteService {
boolean isFavorite(int uid, int rid);
void add(int uid, int rid);
}
package org.westos.travel.service.impl;
import org.westos.travel.dao.FavoriteDao;
import org.westos.travel.dao.impl.FavoriteDaoImpl;
import org.westos.travel.domain.Favorite;
import org.westos.travel.service.FavoriteService;
public class FavoriteServiceImpl implements FavoriteService {
private FavoriteDao favoriteDao = new FavoriteDaoImpl();
@Override
public boolean isFavorite(int uid, int rid) {
Favorite favorite = favoriteDao.findFavoriteByUidAndRid(rid, uid);
System.out.println(favorite);
return favorite!=null; //说明收藏过,返回true
}
@Override
public void add(int uid, int rid) {
favoriteDao.add(uid,rid);
}
}
package org.westos.travel.dao;
import org.westos.travel.domain.Favorite;
public interface FavoriteDao {
Favorite findFavoriteByUidAndRid(int uid, int rid);
// int countRouteByRid(int rid);
void add(int uid, int rid);
int findCountByRid(int rid);
}
package org.westos.travel.dao.impl;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.westos.travel.dao.FavoriteDao;
import org.westos.travel.domain.Favorite;
import org.westos.travel.util.JDBCUtils;
import java.util.Date;
public class FavoriteDaoImpl implements FavoriteDao {
@Override
public Favorite findFavoriteByUidAndRid(int uid, int rid) {
JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
Favorite favorite = null;
try {
String sql = "select * from tab_favorite where rid=? and uid=?";
//jdbcTemplate 如果查不出来,返回会null 就报异常了,我们自己可以捕获异常处理一下
favorite = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Favorite>(Favorite.class), rid, uid);
} catch (DataAccessException e) {
//e.printStackTrace();
}
return favorite;
}
//查询该线路的收藏次
@Override
public int findCountByRid(int rid) {
JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
String sql = "select count(*) from tab_favorite where rid=?";
Integer count = jdbcTemplate.queryForObject(sql, Integer.class, rid);
return count;
}
@Override
public void add(int uid, int rid) {
JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
String sql = "insert into tab_favorite values(?,?,?)";
int i = jdbcTemplate.update(sql, rid, new Date(), uid);
}
}