Javawebservlet+Mysql实现的化妆品售卖系统(功能包含分角色,登录/注册、化妆品列表/商品详情/加入购物车/订单结算付款/地址管理/后台权限管理/商品管理/订单列表等)

Javawebservlet+Mysql实现的化妆品售卖系统

本系统为了解决化妆品单品类售卖的专一性,专门将电商的流程与化妆品品类结合,实现了细分化妆品小类的管理,更加高效便捷的实现化妆品的售卖
(文末查看完整源码)

实现功能截图

用户注册
在这里插入图片描述
首页
在这里插入图片描述
在这里插入图片描述
所有化妆品
在这里插入图片描述
商品信息
在这里插入图片描述
添加购物车
在这里插入图片描述
购物车列表
在这里插入图片描述
结算
在这里插入图片描述
新增收货地址
在这里插入图片描述
提交订单
在这里插入图片描述
付款
在这里插入图片描述
后台’

后台登录
在这里插入图片描述
系统管理
菜单管理
在这里插入图片描述
权限管理
在这里插入图片描述
管理员列表
在这里插入图片描述

业务管理
会员管理
在这里插入图片描述
商品管理
在这里插入图片描述
订单管理
在这里插入图片描述
修改密码
在这里插入图片描述

系统功能

本系统实现了以下功能:
1、注册登录
2、化妆品列表
3、化妆品详情
4、加入购物车
5、购物车列表
6、地址管理
7、下单结算付款
8、后台登录
9、系统管理:权限管理/菜单管理/管理员列表
10、业务管理:会员管理/商品管理/订单列表/修改密码

使用技术

数据库:mysql
开发工具:Idea(Myeclispe、Eclipse也可以)
知识点:servlet

项目结构
在这里插入图片描述

代码

java端
实体类
Address.java

package com.leoshop.beans;

public class Address {
	private int addressId;
	private String sendPlace;
	private String sendMan;
	private String sendPhone;
	private int userId;
	public Address(int addressId, String sendPlace, String sendMan,
			String sendPhone, int userId) {
		super();
		this.addressId = addressId;
		this.sendPlace = sendPlace;
		this.sendMan = sendMan;
		this.sendPhone = sendPhone;
		this.userId = userId;
	}
	public Address(String sendPlace, String sendMan, String sendPhone,
			int userId) {
		super();
		this.sendPlace = sendPlace;
		this.sendMan = sendMan;
		this.sendPhone = sendPhone;
		this.userId = userId;
	}
	public Address() {
		super();
	}
	public int getAddressId() {
		return addressId;
	}
	public void setAddressId(int addressId) {
		this.addressId = addressId;
	}
	public String getSendPlace() {
		return sendPlace;
	}
	public void setSendPlace(String sendPlace) {
		this.sendPlace = sendPlace;
	}
	public String getSendMan() {
		return sendMan;
	}
	public void setSendMan(String sendMan) {
		this.sendMan = sendMan;
	}
	public String getSendPhone() {
		return sendPhone;
	}
	public void setSendPhone(String sendPhone) {
		this.sendPhone = sendPhone;
	}
	public int getUserId() {
		return userId;
	}
	public void setUserId(int userId) {
		this.userId = userId;
	}
	@Override
	public String toString() {
		return "Address [addressId=" + addressId + ", sendPlace=" + sendPlace
				+ ", sendMan=" + sendMan + ", sendPhone=" + sendPhone
				+ ", userId=" + userId + "]";
	}
	
}

Cart.java

package com.leoshop.beans;

public class Cart {
	private int cartId;
	private int productId;
	private int saleCount;
	private int userId;
	@Override
	public String toString() {
		return "Cart [cardId=" + cartId + ", productId=" + productId
				+ ", saleCount=" + saleCount + ", userId=" + userId + "]";
	}
	public Cart( int productId, int saleCount, int userId) {
		super();
		this.productId = productId;
		this.saleCount = saleCount;
		this.userId = userId;
	}
	public Cart() {
		super();
	}
	public int getCartId() {
		return cartId;
	}
	public void setCartId(int cardId) {
		this.cartId = cardId;
	}
	public int getProductId() {
		return productId;
	}
	public void setProductId(int productId) {
		this.productId = productId;
	}
	public int getSaleCount() {
		return saleCount;
	}
	public void setSaleCount(int saleCount) {
		this.saleCount = saleCount;
	}
	public int getUserId() {
		return userId;
	}
	public void setUserId(int userId) {
		this.userId = userId;
	}
	
}

Dao层
LeoShopDaoImpl.java

package com.leoshop.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;

import com.leoshop.beans.Address;
import com.leoshop.beans.Cart;
import com.leoshop.beans.Comment;
import com.leoshop.beans.CommentInfo;
import com.leoshop.beans.CommentMsg;
import com.leoshop.beans.CriteriaManager;
import com.leoshop.beans.CriteriaProduct;
import com.leoshop.beans.CriteriaUser;
import com.leoshop.beans.Manager;
import com.leoshop.beans.ManagerPermission;
import com.leoshop.beans.MapPager;
import com.leoshop.beans.Menu;
import com.leoshop.beans.OrderBody;
import com.leoshop.beans.OrderHead;
import com.leoshop.beans.OrderMsg;
import com.leoshop.beans.OrderProduct;
import com.leoshop.beans.Orders;
import com.leoshop.beans.Pager;
import com.leoshop.beans.Product;
import com.leoshop.beans.User;
import com.leoshop.dao.LeoShopDao;
import com.leoshop.utils.JDBCTools;

public class LeoShopDaoImpl extends BaseDaoImpl implements LeoShopDao {
	@Override
	public List<Product> getAll() {
		String sql = "select PRODUCT_ID productId,PRODUCT_NAME productName,PRODUCT_PRICE productPrice,STORE_NUM storeNum,PRODUCT_IMAGE_PATH productImagePath from product";
		return super.getObjectForList(Product.class, sql);
	}

	@Override
	public List<Address> getAddressWithUserId(int userId) {
		String sql = "SELECT ADDRESS_ID addressId,SEND_PLACE sendPlace,SEND_MAN sendMan,"
				+ "SEND_PHONE sendPhone FROM ADDRESS WHERE USER_ID = ?";
		return super.getObjectForList(Address.class, sql, userId);
	}

	@Override
	public Address getAddressById(int addressId) {
		String sql = "SELECT USER_ID userId,SEND_PLACE sendPlace,SEND_MAN sendMan,SEND_PHONE sendPhone,ADDRESS_ID addressId FROM address WHERE ADDRESS_ID=?";
		return super.getObject(Address.class, sql, addressId);
	}

	@Override
	public int addAddress(Address address) {
		String sql = "INSERT INTO address(SEND_MAN,SEND_PLACE,SEND_PHONE,USER_ID)VALUES(?,?,?,?)";
		return super.updateGetGeneratedKeys(sql, address.getSendMan(), address.getSendPlace(), address.getSendPhone(),
				address.getUserId());
	}

	@Override
	public void deleteAddressById(int addressId) {
		String sql = "DELETE FROM address WHERE ADDRESS_ID=?";
		super.update(sql, addressId);
	}

	@Override
	public void updateAddressById(Address address) {
		String sql = "UPDATE address SET SEND_PLACE=?,SEND_MAN=?,SEND_PHONE=? WHERE ADDRESS_ID=?";
		super.update(sql, address.getSendPlace(), address.getSendMan(), address.getSendPhone(), address.getAddressId());
	}

	@Override
	public Pager<Address> getAddressPager(int currPage, int pageSize, int userId) {
		String datesql = "SELECT ADDRESS_ID addressId,SEND_PLACE sendPlace,SEND_MAN sendMan,SEND_PHONE sendPhone,USER_ID userId FROM address WHERE USER_ID=?";
		String datecountsql = "SELECT COUNT(*) FROM address WHERE USER_ID=?";
		return super.getPager(Address.class, datecountsql, datesql, currPage, pageSize, userId);
	}

	@Override
	public List<Cart> getCartForList(int userId) {
		String sql = "SELECT CART_ID cartId,PRODUCT_ID productId,SALE_COUNT saleCount FROM cart WHERE USER_ID=?";
		return super.getObjectForList(Cart.class, sql, userId);
	}

	@Override
	public void updateCart(Cart cart) {
		String sql = "UPDATE cart SET USER_ID=?,PRODUCT_ID=?,SALE_COUNT=? WHERE CART_ID=?";
		super.update(sql, cart.getUserId(), cart.getProductId(), cart.getSaleCount(), cart.getCartId());
	}

	@Override
	public Cart getCart(int cartId) {
		String sql = "SELECT CART_ID cartId,PRODUCT_ID productId,SALE_COUNT saleCount,USER_ID userId FROM cart WHERE CART_ID=?";
		return super.getObject(Cart.class, sql, cartId);
	}

	@Override
	public void deleteCartById(int cartId) {
		String sql = "DELETE FROM cart WHERE CART_ID=?";
		super.update(sql, cartId);
	}

	@Override
	public void deleteCartByUser(int userId) {
		String sql = "DELETE FROM cart WHERE USER_ID=?";
		super.update(sql, userId);
	}

	@Override
	public int cartCount(int userId) {
		String sql = "select count(*)from cart where user_id=" + userId;
		return Integer.parseInt(super.getValue(sql).toString());
	}

	@Override
	public Map<Cart, Product> getCartProductMap(int userId) {
		String sqlCart = "SELECT CART_ID cartId,PRODUCT_ID productId,SALE_COUNT saleCount FROM cart WHERE USER_ID=?;";
		String sqlProduct = "SELECT PRODUCT_STATUS productStatus,PRODUCT_ID productId,PRODUCT_NAME productName,PRODUCT_PRICE productPrice,PRODUCT_IMAGE_PATH productImagePath,STORE_NUM storeNum FROM product WHERE PRODUCT_ID=?;";

		return super.getMapHandler(sqlCart, Cart.class, sqlProduct, Product.class, "PRODUCT_ID", userId);
	}

	@Override
	public Map<Cart, Product> getCartProductMap(int userId, String[] cartIds) {
		String strCartIds = "";
		for (int i = 0; i < cartIds.length - 1; i++) {
			strCartIds += "?,";
		}
		String sqlCart = "SELECT CART_ID cartId,PRODUCT_ID productId,SALE_COUNT saleCount "
				+ "FROM cart WHERE CART_ID IN (" + strCartIds + "?) AND USER_ID=?";
		String sqlProduct = "SELECT PRODUCT_STATUS productStatus,PRODUCT_ID productId,PRODUCT_NAME productName,PRODUCT_PRICE "
				+ "productPrice,PRODUCT_IMAGE_PATH productImagePath,STORE_NUM storeNum FROM "
				+ "product WHERE PRODUCT_ID=?";
		Object[] sqlArray = new Object[cartIds.length + 1];
		for (int i = 0; i < cartIds.length; i++) {
			sqlArray[i] = cartIds[i];
		}
		sqlArray[sqlArray.length - 1] = userId;
		return super.getMapHandler(sqlCart, Cart.class, sqlProduct, Product.class, "PRODUCT_ID", sqlArray);
	}

	@Override
	public void deleteCartByUserCart(int userId, String[] cartIds) {
		String strCartIds = "";
		for (int i = 0; i < cartIds.length - 1; i++) {
			strCartIds += "?,";
		}
		String sql = "DELETE FROM cart WHERE CART_ID IN (" + strCartIds + "?) AND USER_ID=?";
		Object[] sqlArray = new Object[cartIds.length + 1];
		for (int i = 0; i < cartIds.length; i++) {
			sqlArray[i] = cartIds[i];
		}
		sqlArray[sqlArray.length - 1] = userId;
		super.update(sql, sqlArray);
	}

	@Override
	public List<CommentMsg> getCommentMsg(String orderNum, int userId) {
		String sql = "SELECT a.orderId,a.productId,a.productName,a.productPrice,a.productImagePath,b.LEVEL level,b.CONTENT content,b.COMMENT_ID commentId FROM (SELECT orders.ORDER_ID orderId,orders.PRODUCT_ID productId,orders.PRODUCT_NAME productName,orders.PRODUCT_PRICE productPrice,product.PRODUCT_IMAGE_PATH productImagePath FROM orders,product WHERE orders.PRODUCT_ID=product.PRODUCT_ID AND ORDER_NUM=? AND orders.USER_ID=?) a LEFT JOIN comment b ON(a.orderId=b.ORDER_ID)";
		return super.getObjectForList(CommentMsg.class, sql, orderNum, userId);
	}
	
	@Override
	public void addComment(Comment comment) {
		String sql = "INSERT INTO Comment (level,content,order_Id) VALUES (?,?,?)";
		super.update(sql, comment.getLevel(), comment.getContent(), comment.getOrderId());
	}
	
	@Override
	public Set<String> getOrderNum(int userId) {
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try{
			Set<String> orderNums = new TreeSet<String>(new Comparator<String>(){
				public int compare(String s1,String s2){
					return s2.compareTo(s1);
				}
			});
			conn = JDBCTools.getConnection();
			String sql = "SELECT ORDER_NUM FROM orders WHERE VISIBLE=1 AND USER_ID=?";
			ps = conn.prepareStatement(sql);
			ps.setInt(1,userId);
			rs = ps.executeQuery();
			while(rs.next()){
				orderNums.add(rs.getString("ORDER_NUM"));
			}
			return orderNums;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			JDBCTools.release(ps, null, rs);
		}
		return null;
	}

	@Override
	public List<OrderProduct> getOrderProducts(String orderNum) {
		String sql = "SELECT orders.PRODUCT_ID productId,orders.PRODUCT_NAME productName,orders.PRODUCT_PRICE productPrice,orders.SALE_COUNT saleCount,product.PRODUCT_IMAGE_PATH productImagePath FROM orders,product WHERE orders.PRODUCT_ID=product.PRODUCT_ID AND ORDER_NUM=?;";
		List<OrderProduct> product = super.getObjectForList(OrderProduct.class, sql, orderNum);
		return product;
	}
	
	@Override
	public OrderMsg getOrderMsg(String orderNum, List<OrderProduct> product) {
		String sql = "SELECT ord.ORDER_ID orderId,ord.ORDER_NUM orderNum,ord.ORDER_TIME orderTime,ord.ORDER_STATUS orderStatus,ord.NOTE note,ord.USER_ID userId,ord.SEND_PLACE sendPlace,ord.SEND_MAN sendMan,ord.SEND_PHONE sendPhone,com.LEVEL level FROM (SELECT * FROM orders WHERE ORDER_NUM=?) ord LEFT JOIN comment com ON (ord.ORDER_ID=com.ORDER_ID)";
		OrderMsg ordermsg = super.getObject(OrderMsg.class, sql, orderNum);
		ordermsg.setProduct(product);
		return ordermsg;
	}

	@Override
	public List<OrderMsg> getOrderMsgs(int userId) {
		Set<String> orderNums = getOrderNum(userId);//根据用户ID获取所有未删除(可见的)订单编号(按时间先后排列,最近在前)
		Iterator<String> it = orderNums.iterator();
		List<OrderMsg> ordermsg = new ArrayList<OrderMsg>();
		while(it.hasNext()){
			String orderNum = it.next();
			List<OrderProduct> product = getOrderProducts(orderNum);//根据订单编号获取其所有的商品集合
			OrderMsg order = getOrderMsg(orderNum,product);//根据订单编号及其所有的商品集合获取该订单信息
			ordermsg.add(order);
		}
		return ordermsg;
	}

	@Override
	public int addOrders(Orders order) {
		String sql = "INSERT INTO orders (ORDER_NUM,ORDER_TIME,ORDER_STATUS,NOTE,USER_ID,SEND_PLACE,"
				+ "SEND_MAN,SEND_PHONE,PRODUCT_ID,PRODUCT_NAME,PRODUCT_PRICE,SALE_COUNT)"
				+ "values(?,?,?,?,?,?,?,?,?,?,?,?)";
		return super.updateGetGeneratedKeys(sql, order.getOrderNum(), order.getOrderTime(), order.getOrderStatus(),
				order.getNote(), order.getUserId(), order.getSendPlace(), order.getSendMan(), order.getSendPhone(),
				order.getProductId(), order.getProductName(), order.getProductPrice(), order.getSaleCount());
	}

	@Override
	public int getOrderStatus(String orderNum) {
		String sql = "SELECT DISTINCT ORDER_STATUS FROM orders WHERE ORDER_NUM=?";
		return Integer.parseInt(super.getValue(sql, orderNum).toString());
	}

	@Override
	public void changeOrderStatus(String orderNum, int status) {
		String sql = "UPDATE orders SET ORDER_STATUS=? WHERE ORDER_NUM=?";
		super.update(sql, status, orderNum);

	}

	@Override
	public void changeOrderVisible(String orderNum, int status) {
		String sql = "UPDATE orders SET VISIBLE=? WHERE ORDER_NUM=?";
		super.update(sql, status, orderNum);
	}

	@Override
	public Product getProduct(int productId) {
		String sql = "SELECT PRODUCT_STATUS productStatus,PRODUCT_DESC productDesc,PRODUCT_ID productId,PRODUCT_NAME productName,PRODUCT_PRICE productPrice,"
				+ "STORE_NUM storeNum,PRODUCT_IMAGE_PATH productImagePath" + " FROM product WHERE PRODUCT_ID = ? ";
		return super.getObject(Product.class, sql, productId);
	}

	@Override
	public void addProduct(Product product) {
		String sql = "INSERT INTO product(PRODUCT_DESC,PRODUCT_STATUS,PRODUCT_NAME,PRODUCT_PRICE,STORE_NUM,PRODUCT_IMAGE_PATH)values(?,?,?,?,?,?)";
		super.update(sql,product.getProductDesc(),product.getProductStatus(), product.getProductName(), product.getProductPrice(), product.getStoreNum(),
				product.getProductImagePath());
	}

	@Override
	public Pager<Product> getPager(int currPage, int pageSize) {
		String sql1 = "select count(*) from product";
		String sql2 = "SELECT productId,productName,productPrice,storeNum,sales,productImagePath,productDesc,productStatus FROM(" +
				"SELECT p.PRODUCT_ID productId,PRODUCT_NAME productName,PRODUCT_PRICE productPrice,STORE_NUM storeNum," +
				"sales,PRODUCT_IMAGE_PATH productImagePath,PRODUCT_DESC productDesc,PRODUCT_STATUS productStatus" +
				" FROM product p left join(SELECT PRODUCT_ID,SUM(SALE_COUNT) sales" +
				" FROM orders o left join comment c on o.ORDER_ID=c.ORDER_ID GROUP BY" +
				" PRODUCT_ID) amount on p.PRODUCT_ID=amount.PRODUCT_ID ORDER BY sales DESC) info WHERE productStatus=1";
		return super.getPager(Product.class, sql1, sql2, currPage, pageSize);
	}

	// 通过用户名获取用户
	@Override
	public User getUserByUsername(String username) {
		String sql = "SELECT USER_ID userId,USERNAME username,PASSWORD password FROM user WHERE USERNAME=?";
		return super.getObject(User.class, sql, username);
	}

	// 登录
	@Override
	public int userLogin(String username, String password) {
		String sql = "SELECT USER_ID userId FROM user WHERE USERNAME=? AND PASSWORD=?";
		int userId = 0;
		try {
			userId = super.getObject(User.class, sql, username, password).getUserId();
		} catch (Exception e) {
			System.out.println("未获取到与该用户名和密码完全匹配的userId");
		}
		return userId;
	}

	// 注册
	@Override
	public int userRegister(User u) {
		String sql = "insert into user (username,password) values (?,?);";
		return super.updateGetGeneratedKeys(sql, u.getUsername(), u.getPassword());
	}

	@Override
	public User getUserById(int userId) {
		String sql = "SELECT USER_STATUS userStatus,USER_ID userId,username,password,truename,phone,address FROM user WHERE USER_ID=?";
		return super.getObject(User.class, sql, userId);
	}

	@Override
	public void updateUserById(User user) {
		String sql = "UPDATE user SET password=?,truename=?,phone=?,address=? WHERE USER_ID=?";
		super.update(sql, user.getPassword(), user.getTruename(), user.getPhone(), user.getAddress(), user.getUserId());
	}

	@Override
	public Pager<User> getUserPager(int currPage, int pageSize) {
		String sqlForData = "SELECT USER_ID userId,USERNAME username,PASSWORD password,TRUENAME truename,PHONE phone,ADDRESS address FROM user";
		String sqlForDataCount = "SELECT COUNT(*) FROM user";
		return super.getPager(User.class, sqlForDataCount, sqlForData, currPage, pageSize);
	}

	@Override
	public Pager<User> getUserPager(int currPage, int pageSize, CriteriaUser criteriaUser) {
		String sqlForData = null;
		String sqlForDataCount = null;
		String cname = criteriaUser.getUsername();
		boolean bname = cname.equals("%%") || cname == null;
		String ctname = criteriaUser.getTruename();
		boolean btname = ctname.equals("%%") || ctname == null;
		String cphone = criteriaUser.getPhone();
		boolean bphone = cphone.equals("%%") || cphone == null;
		String caddress = criteriaUser.getAddress();
		boolean baddress = caddress.equals("%%") || caddress == null;
		List<Object> params = new ArrayList<Object>(); 
		boolean flag = false;
		if(bname&&btname&&bphone&&baddress){
			sqlForData = "SELECT USER_STATUS userStatus,USER_ID userId,USERNAME username,PASSWORD password,TRUENAME truename,PHONE phone,"
					+ "ADDRESS address FROM user";
			sqlForDataCount = "SELECT COUNT(*) FROM user";
			flag = true;
		}else{
			sqlForData = "SELECT USER_STATUS userStatus,USER_ID userId,USERNAME username,PASSWORD password,TRUENAME truename,PHONE phone,"
					+ "ADDRESS address FROM user WHERE TRUE";
			sqlForDataCount = "SELECT COUNT(*) FROM user WHERE TRUE";
			if(!bname){
				sqlForData += " AND USERNAME LIKE ?";
				sqlForDataCount +=" AND USERNAME LIKE ?";
				params.add(cname);
			}
			if(!btname){
				sqlForData += " AND TRUENAME LIKE ?";
				sqlForDataCount +=" AND TRUENAME LIKE ?";
				params.add(ctname);
			}
			if(!bphone){
				sqlForData += " AND PHONE LIKE ?";
				sqlForDataCount +=" AND PHONE LIKE ?";
				params.add(cphone);
			}
			if(!baddress){
				sqlForData += " AND ADDRESS LIKE ?";
				sqlForDataCount +=" AND ADDRESS LIKE ?";
				params.add(caddress);
			}
		}
		if(flag){
			return super.getPager(User.class, sqlForDataCount, sqlForData, currPage, pageSize);
		}
		return super.getPager(User.class, sqlForDataCount, sqlForData, currPage, pageSize,params.toArray());
	}

	@Override
	public void editUser(User user) {
		String sql = "UPDATE user SET USER_STATUS=?,PASSWORD=?,TRUENAME=?,PHONE=?,ADDRESS=?,USER_STATUS=? WHERE USER_ID=?";
		super.update(sql, user.getUserStatus(),user.getPassword(), user.getTruename(), user.getPhone(),
				user.getAddress(),user.getUserStatus(), user.getUserId());
	}

	@Override
	public User getUserByName(String username) {
		String sql = "SELECT USER_ID userId,USERNAME username,PASSWORD password,TRUENAME truename,PHONE phone,ADDRESS address FROM user WHERE USERNAME=?";
		return super.getObject(User.class, sql, username);
	}

	public void deleteUser(int userId) {
		String sql = "DELETE FROM user WHERE USER_ID=?";
		super.update(sql, userId);
	}

	@Override
	public int addManager(Manager manager) {
		String sql = "INSERT INTO manager(MANAGER_NAME,MANAGER_PASSWORD)VALUES(?,?)";
		return super.updateGetGeneratedKeys(sql, manager.getManagerName(), manager.getManagerPassword());
	}

	@Override
	public void addPromission(int managerId, int roleId) {
		String sql = "INSERT INTO manager_role (MANAGER_ID,ROLE_ID)VALUES(?,?)";
		super.update(sql, managerId, roleId);
	}
	@Override
	public Manager getManager(String managerName) {
		String sql = "SELECT MANAGER_ID managerId,MANAGER_NAME managerName,MANAGER_PASSWORD managerPassword"
				+ " FROM manager WHERE MANAGER_NAME=?";
		return super.getObject(Manager.class, sql, managerName);
	}

	@Override
	public Manager getManager(int managerId) {
		String sql = "SELECT MANAGER_ID managerId,MANAGER_NAME managerName,MANAGER_PASSWORD managerPassword"
				+ " FROM manager WHERE MANAGER_ID=?";
		return super.getObject(Manager.class, sql, managerId);
	}

	@Override
	public List<Manager> getManagers() {
		String sql = "SELECT MANAGER_ID managerId,MANAGER_NAME managerName,MANAGER_PASSWORD managerPassword"
				+ " FROM manager";
		return super.getObjectForList(Manager.class, sql);
	}

	@Override
	public void editManager(Manager manager) {
		String sql = "UPDATE manager SET MANAGER_PASSWORD=? WHERE MANAGER_ID=?";
		super.update(sql,manager.getManagerPassword(), manager.getManagerId());
	}

	@Override
	public void deleteManager(int managerId) {
		/*String sql = "DELETE FROM manager WHERE MANAGER_ID=?";
		super.update(sql, managerId);*/
		// 增加了删除 manager_role 中  manager 的信息
		String managersql = "DELETE FROM manager WHERE MANAGER_ID=?";
		super.update(managersql, managerId);
		String rolesql = "DELETE FROM manager_role WHERE MANAGER_ID=?";
		super.update(rolesql, managerId);
	}

	@Override
	public List<Manager> getManagers(CriteriaManager criteriaManager) {
		String sql = null;
		String managerName = criteriaManager.getManagerName();
		boolean flag = false;
		if(managerName.equals("%%") || managerName == null){
			sql = "SELECT MANAGER_ID managerId,MANAGER_NAME managerName,MANAGER_PASSWORD" + " managerPassword"
					+ " FROM manager";
			flag = true;
		}else {
			sql = "SELECT MANAGER_ID managerId,MANAGER_NAME managerName,MANAGER_PASSWORD" + " managerPassword"
					+ " FROM manager WHERE MANAGER_NAME LIKE ?";
		}
		if(flag){
			return super.getObjectForList(Manager.class, sql);
		}
		return super.getObjectForList(Manager.class, sql, managerName);
	}

	@Override
	public Pager<Product> getProductPager(boolean isBack,int currPage, int pageSize, CriteriaProduct criteriaProduct) {
		String sqlForDataCount = null;
		String sqlForData = null;
		String searchKey = criteriaProduct.getProductName();
		
		boolean flag = false;
		if(isBack){
			if(searchKey.equals("%%") || searchKey == null){
				sqlForDataCount = "SELECT COUNT(*) FROM product";
				sqlForData = "SELECT p.PRODUCT_ID productId,PRODUCT_NAME productName,"
						+ "PRODUCT_PRICE productPrice,STORE_NUM storeNum,salesAmount,"
						+ "sales,levelStatistic,PRODUCT_IMAGE_PATH productImagePath,"
						+ "PRODUCT_DESC productDesc,PRODUCT_STATUS productStatus "
						+ "FROM product p left join(SELECT PRODUCT_ID,(PRODUCT_PRICE*SUM(SALE_COUNT)) salesAmount,"
						+ "SUM(SALE_COUNT) sales,ROUND(AVG(LEVEL),2) levelStatistic "
						+ "FROM orders o left join comment c on o.ORDER_ID=c.ORDER_ID GROUP BY "
						+ "PRODUCT_ID) amount on p.PRODUCT_ID=amount.PRODUCT_ID";
				flag = true;
			}else {
				sqlForDataCount = "SELECT COUNT(*) FROM product WHERE PRODUCT_NAME LIKE ?";
				sqlForData = "SELECT p.PRODUCT_ID productId,PRODUCT_NAME productName,"
						+ "PRODUCT_PRICE productPrice,STORE_NUM storeNum,salesAmount,"
						+ "sales,levelStatistic,PRODUCT_IMAGE_PATH productImagePath,"
						+ "PRODUCT_DESC productDesc,PRODUCT_STATUS productStatus "
						+ "FROM product p left join(SELECT PRODUCT_ID,(PRODUCT_PRICE*SUM(SALE_COUNT)) salesAmount,"
						+ "SUM(SALE_COUNT) sales,ROUND(AVG(LEVEL),2) levelStatistic "
						+ "FROM orders o left join comment c on o.ORDER_ID=c.ORDER_ID GROUP BY "
						+ "PRODUCT_ID) amount on p.PRODUCT_ID=amount.PRODUCT_ID WHERE PRODUCT_NAME LIKE ?";
			}
		}else {
			if(searchKey.equals("%%") || searchKey == null){
				sqlForDataCount = "SELECT COUNT(*) FROM product WHERE PRODUCT_STATUS=1";
				sqlForData = "SELECT PRODUCT_ID productId,PRODUCT_NAME productName,"
						+ "PRODUCT_PRICE productPrice,PRODUCT_IMAGE_PATH productImagePath,PRODUCT_STATUS productStatus "
						+ "FROM product WHERE PRODUCT_STATUS=1";
				flag = true;
			}else {
				sqlForDataCount = "SELECT COUNT(*) FROM product WHERE PRODUCT_STATUS=1 AND PRODUCT_NAME LIKE ?";
				sqlForData = "SELECT PRODUCT_ID productId,PRODUCT_NAME productName,"
						+ "PRODUCT_PRICE productPrice,PRODUCT_IMAGE_PATH productImagePath,PRODUCT_STATUS productStatus "
						+ "FROM product WHERE PRODUCT_STATUS=1 AND PRODUCT_NAME LIKE ?";
			}
		}
		if(flag){
			return super.getPager(Product.class, sqlForDataCount, sqlForData, currPage, pageSize);
		}
		return super.getPager(Product.class, sqlForDataCount, sqlForData, currPage, pageSize,
				searchKey);
	}

	@Override
	public void changeProductStatus(int productStatus, int productId) {
		String sql = "UPDATE product SET PRODUCT_STATUS=? WHERE PRODUCT_ID=?";
		super.update(sql, productStatus,productId);
	}

	@Override
	public void editProduct(Product product) {
		String sql = "UPDATE product SET PRODUCT_NAME=?,PRODUCT_PRICE=?,PRODUCT_DESC=?,"
				+ "PRODUCT_IMAGE_PATH=?,STORE_NUM=?,PRODUCT_STATUS=? WHERE PRODUCT_ID=?";
		super.update(sql,product.getProductName(),product.getProductPrice(),product.getProductDesc(),
				product.getProductImagePath(),product.getStoreNum(),product.getProductStatus(),
				product.getProductId());
	}

	@Override
	public void deleteProductsByIds(String[] productIds) {
		String strProductIds = "";
		for (int i = 0; i < productIds.length - 1; i++) {
			strProductIds += "?,";
		}
		String sql = "DELETE FROM product WHERE PRODUCT_ID IN (" + strProductIds + "?)";
		super.update(sql, productIds);
	}

	@Override
	public void changeUserStatus(String userStatus,String userId) {
		
		String sql = "UPDATE user SET USER_STATUS=? WHERE USER_ID=?";
		super.update(sql,userStatus,userId);
	}
	@Override
	public Map<OrderHead,List<OrderBody>> getOrderMessageInMap(){
		String keySql = "SELECT sum(PRODUCT_PRICE*SALE_COUNT) totalPrice,ORDER_NUM orderNum,ORDER_TIME orderTime,ORDER_STATUS orderStatus,NOTE note,USERNAME username,o.USER_ID userId,SEND_PLACE sendPlace,SEND_PHONE sendPhone,SEND_MAN sendMan,VISIBLE visible FROM orders o left join user u on o.USER_ID=u.USER_ID GROUP BY ORDER_NUM ORDER BY ORDER_TIME DESC";
		String valueSql = "SELECT (PRODUCT_PRICE*SALE_COUNT) subtotal,CONTENT content,LEVEL level,COMMENT_ID commentId,o.ORDER_ID orderId,PRODUCT_ID productId,PRODUCT_NAME productName,PRODUCT_PRICE productPrice,SALE_COUNT saleCount FROM orders o left join comment c on o.ORDER_ID=c.ORDER_ID WHERE ORDER_NUM=?";
		return super.getMapHandlerForValueList(keySql, OrderHead.class, valueSql, OrderBody.class, "ORDER_NUM");
	}
	
	@Override
	public MapPager<OrderHead, OrderBody> getOrderMessageInMapPager(String orderNum,int currPage, int pageSize){
		String keySql = null;
		String valueSql = null;
		String sqlForDataCount = null;
		boolean flag = false;
		if(orderNum.equals("%%")||orderNum == null){
			keySql = "SELECT sum(PRODUCT_PRICE*SALE_COUNT) totalPrice,ORDER_NUM orderNum,ORDER_TIME"
					+ " orderTime,ORDER_STATUS orderStatus,NOTE note,USERNAME username,o.USER_ID userId,"
					+ "SEND_PLACE sendPlace,SEND_PHONE sendPhone,SEND_MAN sendMan,VISIBLE visible FROM "
					+ "orders o left join user u on o.USER_ID=u.USER_ID GROUP BY ORDER_NUM "
					+ "ORDER BY ORDER_TIME DESC";
			valueSql = "SELECT (PRODUCT_PRICE*SALE_COUNT) subtotal,CONTENT content,LEVEL level,"
					+ "COMMENT_ID commentId,o.ORDER_ID orderId,PRODUCT_ID productId,PRODUCT_NAME "
					+ "productName,PRODUCT_PRICE productPrice,SALE_COUNT saleCount FROM orders o left join "
					+ "comment c on o.ORDER_ID=c.ORDER_ID WHERE ORDER_NUM=?";
			sqlForDataCount = "SELECT COUNT(DISTINCT ORDER_NUM) FROM orders";
			flag = true;
		}else {
			keySql = "SELECT sum(PRODUCT_PRICE*SALE_COUNT) totalPrice,ORDER_NUM orderNum,ORDER_TIME"
					+ " orderTime,ORDER_STATUS orderStatus,NOTE note,USERNAME username,o.USER_ID userId,"
					+ "SEND_PLACE sendPlace,SEND_PHONE sendPhone,SEND_MAN sendMan,VISIBLE visible FROM "
					+ "orders o left join user u on o.USER_ID=u.USER_ID GROUP BY ORDER_NUM "
					+ "HAVING ORDER_NUM LIKE ? ORDER BY ORDER_TIME DESC";
			valueSql = "SELECT (PRODUCT_PRICE*SALE_COUNT) subtotal,CONTENT content,LEVEL level,"
					+ "COMMENT_ID commentId,o.ORDER_ID orderId,PRODUCT_ID productId,PRODUCT_NAME "
					+ "productName,PRODUCT_PRICE productPrice,SALE_COUNT saleCount FROM orders o left join "
					+ "comment c on o.ORDER_ID=c.ORDER_ID WHERE ORDER_NUM=?";
			sqlForDataCount = "SELECT COUNT(DISTINCT ORDER_NUM) FROM orders WHERE ORDER_NUM LIKE ?";
		}
		if(flag){
			return super.getMapPager(keySql, OrderHead.class, valueSql, OrderBody.class, "ORDER_NUM", sqlForDataCount, currPage, pageSize);
		}
		return super.getMapPager(keySql, OrderHead.class, valueSql, OrderBody.class, "ORDER_NUM", sqlForDataCount, currPage, pageSize,orderNum);
	}

	@Override
	public void deleteOrderByNum(String orderNum) {
		String sql = "DELETE FROM orders WHERE ORDER_NUM=?";
		super.update(sql, orderNum);
	}

	@Override
	public List<Menu> getMenuByManagerId(int managerId) {
		String sql = "SELECT MENU_ID menuId,MENU_NAME menuName,PARENT_MENU parentMenu,MENU_URL menuUrl,MENU_STATUS menuStatus,NOTE note FROM menu WHERE MENU_ID IN (SELECT MENU_ID FROM role_menu WHERE ROLE_ID IN (SELECT ROLE_ID FROM manager_role WHERE MANAGER_ID = ?))";
		return super.getObjectForList(Menu.class, sql, managerId);
	}
	
	@Override
	public Map<Menu, List<Menu>> getMenus(int managerId) {
		List<Menu> menus = getMenuByManagerId(managerId);
		Iterator<Menu> it = menus.iterator();
		Map<Menu, List<Menu>> map = new TreeMap<Menu, List<Menu>>();
		while(it.hasNext()){
			Menu menu = it.next();
			String sql = "SELECT MENU_ID menuId,MENU_NAME menuName,PARENT_MENU parentMenu,MENU_URL menuUrl,MENU_STATUS menuStatus,NOTE note FROM menu WHERE PARENT_MENU=?";
			List<Menu> sons = super.getObjectForList(Menu.class, sql, menu.getMenuId());
			map.put(menu, sons);
		}
		return map;
	}
	
	@Override
	public List<String> getMenuStr(int managerId) {
		List<Menu> menus = getMenuByManagerId(managerId);
		Iterator<Menu> it = menus.iterator();
		/*String str = "[";
		while(it.hasNext()){
			Menu menu = it.next();
			str = str + "{id:'" + menu.getMenuId() + "',menu:[{text:'" + menu.getMenuName() + "',items:[";
			String sql = "SELECT MENU_ID menuId,MENU_NAME menuName,PARENT_MENU parentMenu,MENU_URL menuUrl,MENU_STATUS menuStatus,NOTE note FROM menu WHERE PARENT_MENU=?";
			List<Menu> sons = super.getObjectForList(Menu.class, sql, menu.getMenuId());
			Iterator<Menu> itson = sons.iterator();
			while(itson.hasNext()){
				Menu son = itson.next();
				str = str + "{id:'" + son.getMenuId() + "',text:'" + son.getMenuName() + "',href:'" + son.getMenuUrl() + "'},";
			}
			str = str.substring(0, str.length()-1);
			str = str + "]}]},";
		}
		str = str.substring(0, str.length()-1);
		str = str + "]";*/
		List<String> menuStr = new ArrayList<String>();
		while(it.hasNext()){
			String str = "";
			Menu menu = it.next();
			str = str + "{id:'" + menu.getMenuId() + "',menu:[{text:'" + menu.getMenuName() + "',items:[";
			String sql = "SELECT MENU_ID menuId,MENU_NAME menuName,PARENT_MENU parentMenu,MENU_URL menuUrl,MENU_STATUS menuStatus,NOTE note FROM menu WHERE PARENT_MENU=?";
			List<Menu> sons = super.getObjectForList(Menu.class, sql, menu.getMenuId());
			Iterator<Menu> itson = sons.iterator();
			while(itson.hasNext()){
				Menu son = itson.next();
				if(son.getMenuStatus()!=0){
					str = str + "{id:'" + son.getMenuId() + "',text:'" + son.getMenuName() + "',href:'" + son.getMenuUrl() + "'},";
				}
			}
			str = str.substring(0, str.length()-1);
			str = str + "]}]}";
			menuStr.add(str);
		}
		return menuStr;
	}

	@Override
	public List<Menu> getAllMenus() {
		String sql = "SELECT MENU_ID menuId,MENU_NAME menuName,PARENT_MENU parentMenu,MENU_URL menuUrl,MENU_STATUS menuStatus,NOTE note FROM menu;";
		return super.getObjectForList(Menu.class, sql);
	}
	@Override
	public List<ManagerPermission> getManagerPermissions(CriteriaManager criteriaManager) {
		String sql = "SELECT mng.managerId,mng.managerName,ROLE_ID roleId " +
				"FROM (SELECT MANAGER_ID managerId,MANAGER_NAME managerName FROM manager WHERE MANAGER_NAME LIKE ?) mng,manager_role " +
				"WHERE manager_role.MANAGER_ID=mng.managerId";
		String managerName = criteriaManager.getManagerName();
		return super.getObjectForList(ManagerPermission.class, sql, managerName);
	}

	@Override
	public void changePromission(int managerId, int roleId) {
		String sql = "UPDATE manager_role SET ROLE_ID=? WHERE MANAGER_ID=?";
		super.update(sql, roleId, managerId);
	}

	@Override
	public int addCart(Cart cart) {
		String sql = "insert into cart(PRODUCT_ID,SALE_COUNT,USER_ID)values(" + cart.getProductId() + ","
				+ cart.getSaleCount() + "," + cart.getUserId() + ")";
		return super.updateGetGeneratedKeys(sql);
		
	}

	@Override
	public List<Cart> getCartsByOrderNum(String orderNum) {
		String sql = "SELECT PRODUCT_ID productId,SALE_COUNT saleCount FROM orders WHERE ORDER_NUM=?";
		return super.getObjectForList(Cart.class, sql, orderNum);
	}
	
	@Override
	public Menu getMenu(int menuId) {
		String sql = "SELECT MENU_ID menuId,MENU_NAME menuName,PARENT_MENU parentMenu,MENU_URL menuUrl,MENU_STATUS menuStatus,NOTE note FROM menu WHERE MENU_ID=?";
		return super.getObject(Menu.class, sql, menuId);
	}

	@Override
	public void changeProductStore(int productId, int saleCount) {
		String selectSql = "SELECT (STORE_NUM-?) FROM product WHERE PRODUCT_ID=?";
		Object storeNum = super.getValue(selectSql, saleCount,productId);
		String sql = "UPDATE product SET STORE_NUM=? WHERE PRODUCT_ID=?";
		super.update(sql, storeNum,productId);
	}

	@Override
	public Product getSingleProductInfo(int productId) {
		String sql = "SELECT p.PRODUCT_ID productId,PRODUCT_NAME productName,PRODUCT_PRICE productPrice,STORE_NUM storeNum,sales,levelStatistic,PRODUCT_IMAGE_PATH productImagePath,PRODUCT_DESC productDesc,PRODUCT_STATUS productStatus FROM product p left join(SELECT PRODUCT_ID,SUM(SALE_COUNT) sales,ROUND(AVG(LEVEL),2) levelStatistic FROM orders o left join comment c on o.ORDER_ID=c.ORDER_ID GROUP BY PRODUCT_ID) amount on p.PRODUCT_ID=amount.PRODUCT_ID WHERE p.PRODUCT_ID=?";
		return super.getObject(Product.class, sql, productId);
	}

	@Override
	public Pager<CommentInfo> getCommentInfoPager(int productId, int currPage,
			int pageSize) {
		String sqlForDataCount = "SELECT COUNT(*) FROM orders o LEFT JOIN user u ON o.USER_ID=u.USER_ID LEFT JOIN comment c ON c.ORDER_ID=o.ORDER_ID  WHERE LEVEL>0 AND PRODUCT_ID=?";
		String sqlForData = "SELECT PRODUCT_ID productId,SALE_COUNT saleCount,PRODUCT_PRICE productPrice,o.ORDER_ID orderId,USERNAME username,ORDER_TIME orderTime,CONTENT content,LEVEL level FROM orders o LEFT JOIN user u ON o.USER_ID=u.USER_ID LEFT JOIN comment c ON c.ORDER_ID=o.ORDER_ID  WHERE LEVEL>0 AND PRODUCT_ID=?";
		return super.getPager(CommentInfo.class, sqlForDataCount, sqlForData, currPage, pageSize, productId);
	}
	@Override
	public void editMenu(Menu menu, int oldmenuId) {
		deleteMenu(oldmenuId);
		addMenu(menu);
	}

	@Override
	public void addMenu(Menu menu) {
		String sql = "INSERT INTO menu (MENU_ID,MENU_NAME,PARENT_MENU,MENU_URL,MENU_STATUS,NOTE) VALUES (?,?,?,?,?,?)";
		super.update(sql, menu.getMenuId(),menu.getMenuName(),menu.getParentMenu(),menu.getMenuUrl(),menu.getMenuStatus(),menu.getNote());
	}

	@Override
	public void deleteMenu(int menuId) {
		String sql = "DELETE FROM menu WHERE MENU_ID=?";
		super.update(sql, menuId);
	}
}

service层
LeoShopServiceImpl.java

package com.leoshop.service.impl;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Map.Entry;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import com.leoshop.beans.Address;
import com.leoshop.beans.Cart;
import com.leoshop.beans.Comment;
import com.leoshop.beans.Manager;
import com.leoshop.beans.Menu;
import com.leoshop.beans.Orders;
import com.leoshop.beans.Product;
import com.leoshop.beans.User;
import com.leoshop.dao.LeoShopDao;
import com.leoshop.dao.impl.LeoShopDaoImpl;
import com.leoshop.exception.UserIsNotLoginException;
import com.leoshop.service.LeoShopService;

public class LeoShopServiceImpl implements LeoShopService  {
	
	private LeoShopDao leoShopDao;
	
	public LeoShopServiceImpl(){
		leoShopDao = new LeoShopDaoImpl();
	}

	@Override
	public int addAddress(Address address) {
		return leoShopDao.addAddress(address);
	}
	
	public String savePurchaseOrder(HttpServletRequest request,
			HttpSession session, int userId, Map<Cart, Product> cartProductMap,
			String[] cartIds, int orderId, String orderNum,String REDIRECT) {
		try {
			int addressId = Integer.parseInt(request.getParameter("addressId"));
			Address address = leoShopDao.getAddressById(addressId);
			String note = request.getParameter("ordernote");
			// 生成订单 创建orders 表
			Timestamp orderTime = new Timestamp(System.currentTimeMillis());
			Random random = new Random();
			String ran = random.nextInt(10)*1000+random.nextInt(10)*100+random.nextInt(10)*10+random.nextInt(10) + "";
			System.out.println(ran);
			orderNum = System.currentTimeMillis() + ran + userId;
			System.out.println(orderNum);
			double totalPrice = 0;//遍历cartProductMap 进行orders表的创建 同时生成订单总价
			int orderStatus = 0;//表示已下单
			List<Orders> orders = new ArrayList<Orders>();
			for(Entry<Cart, Product> cartProduct :cartProductMap.entrySet()){
				//根据Id获取商品,用于验证库存和商品状态
				Product product = leoShopDao.getProduct(cartProduct.getValue().getProductId());
				int saleCount = cartProduct.getKey().getSaleCount();
				int storeNum = product.getStoreNum();
				int productStatus = product.getProductStatus();
				if(productStatus==0){
					return REDIRECT + "productSoldOut.jsp";
				}
				if(saleCount > storeNum){
					return REDIRECT + "outOfStoreNum.jsp";
				}
				Orders order = new Orders(orderNum, orderTime, orderStatus, note, userId, 
					address.getSendPlace(),address.getSendMan(), address.getSendPhone(),
					cartProduct.getValue().getProductId(), cartProduct.getValue().getProductName(),
					cartProduct.getValue().getProductPrice(), cartProduct.getKey().getSaleCount());
				orders.add(order);
				totalPrice += cartProduct.getValue().getProductPrice()*cartProduct.getKey().getSaleCount();
			}
			//库存验证通过再进行Orders表的添加
			for(Orders order:orders){
				orderId = leoShopDao.addOrders(order);
			}
			if(orderId == -1){
				throw new RuntimeException("订单生成失败");
			}
			session.setAttribute("totalPrice", totalPrice);
			session.setAttribute("orderNum", orderNum);
			session.setAttribute("address", address);
		} catch (Exception e) {
			throw new RuntimeException("订单生成时发生异常");
		}
		if(orderId != -1 && orderNum != null){
			// 订单生成过程未发生异常 则 删除购物车中已经下单的商品
			leoShopDao.deleteCartByUserCart(userId,cartIds);
			request.getSession().removeAttribute("buyNowCart");
			//同时减商品库存
			//1)通过订单编号获取购买的商品ID和购买的数量
			List<Cart> boughtProducts = leoShopDao.getCartsByOrderNum(orderNum);
			//2)根据购买的信息,修改数据库商品数量
			for(Cart bought:boughtProducts){
				int productId = bought.getProductId();
				int saleCount = bought.getSaleCount();
				leoShopDao.changeProductStore(productId,saleCount);
			}
			return REDIRECT + "order_create_success.jsp";
		}
		return REDIRECT + "order_create_fail.jsp";
	}

	@Override
	public void submitPayment(String orderNum, int i) {
		leoShopDao.changeOrderStatus(orderNum,i);
	}

	@Override
	public void updateCart(int cartId,int saleCount) {
		Cart cart = leoShopDao.getCart(cartId);
		cart.setSaleCount(saleCount);// 修改saleCount数量
		leoShopDao.updateCart(cart);
	}
	
	public void deleteCart(HttpServletRequest request, UserIsNotLoginException userIsNotLogin) {
		String[] cartIds = request.getParameterValues("cartId");
		for(int i = 0;i < cartIds.length;i++){
			int cartId = -1;
			try {
				cartId = Integer.parseInt(cartIds[i]);
			} catch (NumberFormatException e) {
				throw new RuntimeException("cartId类型转换异常");
			}
			if (cartId == -1) {
				System.out.println("未获得页面传过来的cartId");
			} else if (cartId == 0) {// cartId == 0 标记为清空购物车
				int userId = -1;
				try {
					userId = Integer.parseInt(request.getSession().getAttribute("userId").toString());
				} catch (Exception e) {}
				if(userId == -1){
					throw userIsNotLogin;
				}
				leoShopDao.deleteCartByUser(userId);
			} else {// 不为0 也不是 -1 即 删除购物车中的一条数据
				leoShopDao.deleteCartById(cartId);
			}
		}
	}

	@Override
	public int registerUser(User user) {
		return leoShopDao.userRegister(user);
	}

	@Override
	public int addCart(Cart cart) {
		return leoShopDao.addCart(cart);
	}
	
	public void updateUserInfo(int userId, String password, String truename,
			String phone, String address) {
		User user = leoShopDao.getUserById(userId);
		User userupdate = new User(userId, user.getUsername(), password, truename, phone, address);
		leoShopDao.updateUserById(userupdate);
	}

	@Override
	public void updateAddressById(Address address) {
		leoShopDao.updateAddressById(address);
	}

	@Override
	public void deleteAddressById(int addId) {
		leoShopDao.deleteAddressById(addId);
	}

	@Override
	public void changeOrderVisible(String orderNum, int i) {
		leoShopDao.changeOrderVisible(orderNum, i);
	}

	@Override
	public void changeOrderStatus(String orderNum, int i) {
		leoShopDao.changeOrderStatus(orderNum,i);
	}

	@Override
	public void addComment(Comment comment) {
		leoShopDao.addComment(comment);
	}

	@Override
	public void deleteOrderByNum(String orderNum) {
		leoShopDao.deleteOrderByNum(orderNum);
	}

	@Override
	public void deleteProductsByIds(String[] productIds) {
		leoShopDao.deleteProductsByIds(productIds);
	}

	@Override
	public void changeProductStatus(int productStatus, int productId) {
		leoShopDao.changeProductStatus(productStatus, productId);
	}

	@Override
	public void editProduct(Product product) {
		leoShopDao.editProduct(product);
	}

	@Override
	public void addProduct(Product product) {
		leoShopDao.addProduct(product);
	}

	@Override
	public void editUser(User user) {
		leoShopDao.editUser(user);
	}

	@Override
	public void deleteManager(int managerId) {
		leoShopDao.deleteManager(managerId);
	}

	@Override
	public void editManager(Manager manager) {
		leoShopDao.editManager(manager);
	}
	
	public int addManagerTrans(Manager manager, int roleId) {
		int managerId = leoShopDao.addManager(manager);
		// ---------------------------增加权限--------------------------------
		leoShopDao.addPromission(managerId, roleId);
		// ----------------------------------------------------------------
		return managerId;
	}

	@Override
	public void changePromission(int managerId, int roleId) {
		leoShopDao.changePromission(managerId, roleId);
	}

	@Override
	public void editMenu(Menu menu, int oldmenuId) {
		leoShopDao.editMenu(menu, oldmenuId);
	}

	@Override
	public void addMenu(Menu menu) {
		leoShopDao.addMenu(menu);
	}

	@Override
	public void deleteMenu(int menuId) {
		leoShopDao.deleteMenu(menuId);
	}
	
}

servlet层
LeoShopServlet.java

package com.leoshop.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Random;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import net.sf.json.JSONArray;

import com.leoshop.beans.Address;
import com.leoshop.beans.Cart;
import com.leoshop.beans.Comment;
import com.leoshop.beans.CommentInfo;
import com.leoshop.beans.CommentMsg;
import com.leoshop.beans.CriteriaProduct;
import com.leoshop.beans.OrderMsg;
import com.leoshop.beans.Orders;
import com.leoshop.beans.Pager;
import com.leoshop.beans.Product;
import com.leoshop.beans.User;
import com.leoshop.dao.LeoShopDao;
import com.leoshop.dao.impl.LeoShopDaoImpl;
import com.leoshop.exception.UserIsNotLoginException;
import com.leoshop.proxy.ProxyFactory;
import com.leoshop.service.LeoShopService;
import com.leoshop.service.impl.LeoShopServiceImpl;
import com.leoshop.utils.ReadProperties;

public class LeoShopServlet extends BaseServlet {

	private static final long serialVersionUID = 7541787499026412845L;
	private LeoShopDao leoShopDao;
	private UserIsNotLoginException userIsNotLogin;
	private LeoShopService leoShopService;
	@Override
	public void init() throws ServletException {
		super.init();
		userIsNotLogin = new UserIsNotLoginException("用户未登录");
		leoShopDao = (LeoShopDao) ProxyFactory.getProxyFactory().getProxyInstance(new LeoShopDaoImpl());
		leoShopService = (LeoShopService) ProxyFactory.getProxyFactory().getProxyInstance(new LeoShopServiceImpl());
	}
	//--------------------------------------------前台搜索商品-------------------------------------------
	public String searchProduct (HttpServletRequest request, HttpServletResponse response){
		int currPage = 1;
		try {
			currPage = Integer.parseInt(request.getParameter("currPage"));
		} catch (Exception e) {}
		String criteriaProductName = request.getParameter("searchProductName");
		
		if(criteriaProductName != null){
			criteriaProductName = criteriaProductName.trim();
		}
		CriteriaProduct cProduct = new CriteriaProduct(criteriaProductName, 0, null, null, 0, 0);
		int productPageSize = Integer.parseInt(ReadProperties.getInstance().getProperty("allProductPageSize"));
		Pager<Product> pager = leoShopDao.getProductPager(false,currPage, productPageSize, cProduct);
		request.setAttribute("pager", pager);
		request.setAttribute("criteriaProductName", criteriaProductName);
		return "/searchResult.jsp";
	}
	//前台获取所有商品
	public String getAllProduct (HttpServletRequest request, HttpServletResponse response){
		int currPage = 1;
		try {
			currPage = Integer.parseInt(request.getParameter("currPage"));
		} catch (Exception e) {}
		CriteriaProduct cProduct = new CriteriaProduct(null, 0, null, null, 0, 0);
		int productPageSize = Integer.parseInt(ReadProperties.getInstance().getProperty("allProductPageSize"));
		Pager<Product> pager = leoShopDao.getProductPager(false,currPage, productPageSize, cProduct);
		request.setAttribute("pager", pager);
		return "/allProduct.jsp";
	}
	
	//--------------------------------------------购物车及下单-------------------------------------------
	// 确认订单页的添加地址
	public void addAddress(HttpServletRequest request, HttpServletResponse response) throws IOException {
		int userId = -1;
		try {
			userId = Integer.parseInt(request.getSession().getAttribute("userId").toString());
		} catch (Exception e) {}
		if(userId == -1){
			throw userIsNotLogin;
		}
		String sendplace = request.getParameter("sendplace");
		String sendman = request.getParameter("sendman");
		String sendphone = request.getParameter("sendphone");
		Address address = new Address(sendplace, sendman, sendphone, userId);
		int addressId = leoShopService.addAddress(address);
		address.setAddressId(addressId);
		JSONArray json = JSONArray.fromObject(address);
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
		out.print(json.toString());
		out.flush();
		out.close();
	}

	// 点击结算后的订单页面
	public String buyleo(HttpServletRequest request, HttpServletResponse response){
		int userId = -1;
		try {
			userId = Integer.parseInt(request.getSession().getAttribute("userId").toString());
		} catch (Exception e) {}
		if(userId == -1){
			throw userIsNotLogin;
		}
		List<Address> addresses = leoShopDao.getAddressWithUserId(userId);
		request.setAttribute("addresses", addresses);
		String[] cartIds = request.getParameterValues("cartId");
		if(cartIds.length ==0){
			return leoCart(request, response);
		}
		Map<Cart,Product> cartProductMap = leoShopDao.getCartProductMap(userId,cartIds);
		request.getSession().setAttribute("cartProductMap", cartProductMap);
		request.getSession().setAttribute("cartIds", cartIds);
		return "/buyleo.jsp";
	}
	// 点击立即购买后的订单页面
	public String buyleoNowConfirm(HttpServletRequest request, HttpServletResponse response) {
		Cart buyNowCart = (Cart) request.getSession().getAttribute("buyNowCart");
		int userId = buyNowCart.getUserId();
		List<Address> addresses = leoShopDao.getAddressWithUserId(userId);
		request.setAttribute("addresses", addresses);
		String[] cartIds = new String[]{buyNowCart.getCartId()+""};
		if(cartIds.length ==0){
			return leoCart(request, response);
		}
		Map<Cart,Product> cartProductMap = new HashMap<Cart, Product>();
		Product product = leoShopDao.getProduct(buyNowCart.getProductId());
		cartProductMap.put(buyNowCart, product);
		request.getSession().setAttribute("cartProductMap", cartProductMap);
		request.getSession().setAttribute("cartIds", cartIds);
		return "/buyleo.jsp";
	}

	// 确认提交订单(处理表单的重复提交)
	public String confirmOrder(HttpServletRequest request, HttpServletResponse response) {
		HttpSession session = request.getSession();
		int userId = -1;
		try {
			userId = Integer.parseInt(request.getSession().getAttribute("userId").toString());
		} catch (Exception e) {}
		if(userId == -1){
			throw userIsNotLogin;
		}
		//处理表单的重复提交start
		String tokenValue = request.getParameter("token");
		String token = (String) session.getAttribute("token");
		if(token != null && token.equals(tokenValue)){
			session.removeAttribute("token");
		}else {
			return REDIRECT + "repeatCreateOrder.jsp";
		}
		//处理表单的重复提交end
		Map<Cart,Product> cartProductMap = (Map<Cart, Product>)session.getAttribute("cartProductMap");
		String[] cartIds = (String[]) request.getSession().getAttribute("cartIds");
		int orderId = -1;
		String orderNum = null;
		return leoShopService.savePurchaseOrder(request, session, userId, cartProductMap,
				cartIds, orderId, orderNum,REDIRECT);
	}

	// 付款的方法
	public String payment(HttpServletRequest request, HttpServletResponse response) {
		String orderNum = request.getParameter("orderNum");
		int orderStatus = leoShopDao.getOrderStatus(orderNum);
		//System.out.println("orderStatus::" + orderStatus);
		if (orderStatus != 0) {
			return REDIRECT + "AboutBlank.jsp";
		}
		leoShopService.submitPayment(orderNum,1);//将订单状态修改为1 表示已付款
		request.getSession().removeAttribute("totalPrice");
		request.getSession().removeAttribute("cartProductMap");
		request.getSession().removeAttribute("address");
		request.getSession().removeAttribute("orderNum");
		return REDIRECT + "payment_success.jsp";
	}

	// 购物车页面
	public String leoCart(HttpServletRequest request, HttpServletResponse response) {
		int userId = -1;
		try {
			userId = Integer.parseInt(request.getSession().getAttribute("userId").toString());
		} catch (Exception e) {}
		if(userId == -1){
			throw userIsNotLogin;
		}
		return REDIRECT + "checkout.jsp";
	}

	// 获取购物车信息
	public Map<Cart,Product> getCartInfo(HttpServletRequest request, HttpServletResponse response) {
		int userId = -1;
		try {
			userId = (Integer) request.getSession().getAttribute("userId");
		} catch (Exception e) {}
		if(userId == -1){
			return null;
		}
		Map<Cart,Product> cartProductMap = leoShopDao.getCartProductMap(userId);
		return cartProductMap;
	}

	// 修改购买数量
	public void alterSaleCount(HttpServletRequest request, HttpServletResponse response) throws IOException {
		int cartId = Integer.parseInt(request.getParameter("cartId"));
		int saleCount = Integer.parseInt(request.getParameter("saleCount"));
		leoShopService.updateCart(cartId,saleCount);
	}

	// 删除购物车
	public void deleteCart(HttpServletRequest request, HttpServletResponse response) {
		leoShopService.deleteCart(request,userIsNotLogin);
	}
	
	//-----------------------------------------------------------------------------------------
	// 获取Header页面需要的信息
	public void responseHeaderInfo(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
		int userId = -1;
		try {
			userId = (Integer) request.getSession().getAttribute("userId");
		} catch (Exception e) {
			System.out.println("用户未登录,身份:游客!!");
		}
		if(userId != -1){
			User userHeader = leoShopDao.getUserById(userId);
			System.out.println("用户登录:[[ID:" + userId + ";用户名:" + userHeader.getUsername() + "]]......");
			request.setAttribute("userHeader", userHeader);
			Map<Cart,Product> cartProductMap = getCartInfo(request, response);
			request.setAttribute("cartProductMap", cartProductMap);
		}
		getServletContext().getRequestDispatcher("/header.jsp").include(request, response);
	}
	// ---------------------------------------登录及注册-----------------------------------------------
	// 登录
	public void login(HttpServletRequest request, HttpServletResponse response){
		PrintWriter out = null;
		try {
			response.setContentType("text/html;charset=UTF-8");
			out = response.getWriter();
			String username = request.getParameter("username");
			String password = request.getParameter("password");
			User user = leoShopDao.getUserByName(username);
			boolean logStatus = false;
			if(user != null){
				logStatus = password.equals(user.getPassword());
			}
			if(logStatus){
				request.getSession().setAttribute("userId", user.getUserId());
			}
			String jsonStr = "[{'logStatus':'" + logStatus + "'}]";
			JSONArray json = JSONArray.fromObject(jsonStr);
			out.write(json.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(out != null){
				out.flush();
				out.close();
			}
		}
		
	}

	// 注册
	public void regServlet(HttpServletRequest request, HttpServletResponse response) throws IOException {
		PrintWriter out = null;
		try {
			response.setContentType("text/html;charset=UTF-8");
			out = response.getWriter();
			String username = request.getParameter("username");
			String password = request.getParameter("password");
			String jsonStr = null;
			if ( leoShopDao.getUserByUsername(username) != null) {
				String regStatus = "hasThisUser";
				jsonStr =  "[{'regStatus':'" + regStatus + "'}]";
				JSONArray json = JSONArray.fromObject(jsonStr);
				out.write(json.toString());
				return;
			}
			if(username!=null&&!username.equals("")&&password!=null&&!password.equals("")){
				User user = new User(username, password);
				//int userId = leoShopDao.userRegister(user);
				int userId = leoShopService.registerUser(user);
				if (userId > 0) {
					String regStatus = "regSuccess";
					jsonStr =  "[{'regStatus':'" + regStatus + "'}]";
					JSONArray json = JSONArray.fromObject(jsonStr);
					out.write(json.toString());
					request.getSession().setAttribute("userId", userId);
					return;
				}
			}
			String regStatus = "regFail";
			jsonStr =  "[{'regStatus':'" + regStatus + "'}]";
			JSONArray json = JSONArray.fromObject(jsonStr);
			out.write(json.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(out != null){
				out.flush();
				out.close();
			}
		}
		
	}
	
	// 注销
	public String out(HttpServletRequest request, HttpServletResponse response) {
		HttpSession session = request.getSession();
		session.invalidate();
		return REDIRECT + "AboutBlank.jsp";
	}
	//---------------------------------------------------------------------------------------------

	// 显示主页,首页商品展示
	public String index(HttpServletRequest request, HttpServletResponse response) {
		int productPageSize = Integer.parseInt(ReadProperties.getInstance().getProperty("homeProductNum"));
		Pager<Product> pager = leoShopDao.getPager(1, productPageSize);
		request.setAttribute("pager", pager);
		return "/index.jsp";
	}

	// 获取一件商品
	public String getProduct(HttpServletRequest request, HttpServletResponse response) {
		int productId = 0;
		try {
			productId = Integer.parseInt(request.getParameter("productid"));
		} catch (Exception e) {
			System.out.println("商品id获取失败");
		}
		getCommentInfo(request, response);
		Product productInfo = leoShopDao.getSingleProductInfo(productId);
		request.setAttribute("product", productInfo);
		index(request, response);
		return "/single.jsp";
	}
	//获取某件商品的评价详情
	public String getCommentInfo(HttpServletRequest request, HttpServletResponse response) {
		Pager<CommentInfo> commentPager = getProductCommentPager(request);
		request.setAttribute("commentPager", commentPager);
		return null;
	}
	
	//获取某件商品的评价详情
	public void getCommentPager(HttpServletRequest request, HttpServletResponse response) {
		PrintWriter out = null;
		Pager<CommentInfo> commentPager = getProductCommentPager(request);
		try {
			response.setContentType("text/html;charset=UTF-8");
			out = response.getWriter();
			JSONArray json = JSONArray.fromObject(commentPager);
			out.write(json.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(out != null){
				out.flush();
				out.close();
			}
		}
		
		
	}
	//获取商品详情页的评论分页内容
	private Pager<CommentInfo> getProductCommentPager(HttpServletRequest request) {
		int productId = 0;
		int currPage = 1;
		int pageSize = 6;
		try {
			pageSize = Integer.parseInt(ReadProperties.getInstance().getProperty(
					"singleCommentPageSize"));
		} catch (Exception e) {}
		try {
			productId = Integer.parseInt(request.getParameter("productid"));
		} catch (Exception e1) {
			System.out.println("商品id获取失败");
		}
		try {
			currPage = Integer.parseInt(request.getParameter("currPage"));
		} catch (Exception e) {}
		Pager<CommentInfo> commentPager = leoShopDao.getCommentInfoPager(productId,currPage, pageSize);
		return commentPager;
	}

	//立即购买
	public String buyNow(HttpServletRequest request, HttpServletResponse response) {
		HttpSession session = request.getSession();
		int userId = -1;
		try {
			userId = Integer.parseInt(request.getSession().getAttribute("userId").toString());
		} catch (Exception e) {}
		if(userId == -1){
			throw userIsNotLogin;
		}
		String productId = request.getParameter("productId");
		String saleCount = request.getParameter("number");
		Cart cart = new Cart(Integer.parseInt(productId), Integer.parseInt(saleCount), userId);
		session.setAttribute("buyNowCart", cart);
		return REDIRECT + "buyleoNowConfirm.do";// 重定向到servlet;
	}
	//加入购物车
	public void addProductToCart(HttpServletRequest request,HttpServletResponse response){
		int userId = -1;
		try {
			userId = Integer.parseInt(request.getSession().getAttribute("userId").toString());
		} catch (Exception e) {}
		if(userId == -1){
			throw userIsNotLogin;
		}
		PrintWriter out = null;
		try {
			response.setContentType("text/html;charset=UTF-8");
			out = response.getWriter();
			String productId = request.getParameter("productId");
			String saleCount = request.getParameter("saleCount");
			Cart cart = new Cart();
			cart.setProductId(Integer.parseInt(productId));
			cart.setUserId(userId);
			cart.setSaleCount(Integer.parseInt(saleCount));
			int cartId = leoShopService.addCart(cart);
			int cartCount=leoShopDao.cartCount(userId);
			String jsonStr = "[{'cartId':'" + cartId + "','cartCount':'"+cartCount +"'}]";
			JSONArray json = JSONArray.fromObject(jsonStr);
			out.write(json.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			out.flush();
			out.close();
		}
	}
	// ---------------------------------------------------------------------------------------

	// 获取用户信息
	public String getUserById(HttpServletRequest request, HttpServletResponse response) {
		int userId = -1;
		try {
			userId = Integer.parseInt(request.getSession().getAttribute("userId").toString());
		} catch (Exception e) {}
		if(userId == -1){
			throw userIsNotLogin;
		}
		User user = leoShopDao.getUserById(userId);
		request.setAttribute("user", user);
		return "accountMsg.jsp";
	}

	// 修改用户信息
	public String updateUserById(HttpServletRequest request, HttpServletResponse response) {
		int userId = -1;
		try {
			userId = Integer.parseInt(request.getSession().getAttribute("userId").toString());
		} catch (Exception e) {}
		if(userId == -1){
			throw userIsNotLogin;
		}
		try {
			String password = request.getParameter("password");
			String truename = request.getParameter("truename");
			String phone = request.getParameter("phone");
			String address = request.getParameter("address");
			leoShopService.updateUserInfo(userId, password, truename, phone, address);
			return getUserById(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	// 获取地址分页信息
	public String getAddressPager(HttpServletRequest request, HttpServletResponse response) {
		int userId = -1;
		try {
			userId = Integer.parseInt(request.getSession().getAttribute("userId").toString());
		} catch (Exception e) {}
		if(userId == -1){
			throw userIsNotLogin;
		}
		String currPage = request.getParameter("currPage");
		if (currPage == null) {
			currPage = "1";
		}
		Pager<Address> pager = leoShopDao.getAddressPager(Integer.parseInt(currPage), 4, userId);
		request.setAttribute("pager", pager);
		return "accountDir.jsp";
	}

	// 获取一条地址
	public String getAddressById(HttpServletRequest request, HttpServletResponse response) {
		int addId = Integer.parseInt(request.getParameter("addId").toString());
		Address address = leoShopDao.getAddressById(addId);
		request.setAttribute("address", address);
		return "accountDirTab.jsp";
	}

	// 修改地址
	public String updateAddressById(HttpServletRequest request, HttpServletResponse response) {
		int userId = -1;
		try {
			userId = Integer.parseInt(request.getSession().getAttribute("userId").toString());
		} catch (Exception e) {}
		if(userId == -1){
			throw userIsNotLogin;
		}
		try {
			int addId = Integer.parseInt(request.getParameter("addId").toString());
			String sendplace = request.getParameter("sendplace");
			String sendman = request.getParameter("sendman");
			String sendphone = request.getParameter("sendphone");
			Address address = new Address(addId, sendplace, sendman, sendphone, userId);
			leoShopService.updateAddressById(address);
			return getAddressPager(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	// 删除地址
	public String deleteAddressById(HttpServletRequest request, HttpServletResponse response) {
		try {
			int addId = Integer.parseInt(request.getParameter("addId").toString());
			leoShopService.deleteAddressById(addId);
			return getAddressPager(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	// 添加地址
	public String addAddr(HttpServletRequest request, HttpServletResponse response) {
		int userId = -1;
		try {
			userId = Integer.parseInt(request.getSession().getAttribute("userId").toString());
		} catch (Exception e) {}
		if(userId == -1){
			throw userIsNotLogin;
		}
		try {
			String sendplace = request.getParameter("sendplace");
			String sendman = request.getParameter("sendman");
			String sendphone = request.getParameter("sendphone");
			Address address = new Address(sendplace, sendman, sendphone, userId);
			leoShopService.addAddress(address);
			return getAddressPager(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	// 获取显示所有订单信息
	public String getOrderMsgs(HttpServletRequest request,HttpServletResponse response){
		int userId = -1;
		try {
			userId = Integer.parseInt(request.getSession().getAttribute("userId").toString());
		} catch (Exception e) {}
		if(userId == -1){
			throw userIsNotLogin;
		}
		List<OrderMsg> ordermsg = leoShopDao.getOrderMsgs(userId);
		request.setAttribute("ordermsg", ordermsg);
		return "accountOrd.jsp"; 
	}
	
	// 删除订单(修改订单Visible状态,默认为1,0-->删除)
	public String deleteOrderById(HttpServletRequest request,HttpServletResponse response){
		String orderNum = request.getParameter("orderNum").toString();
		leoShopService.changeOrderVisible(orderNum, 0);
		return getOrderMsgs(request, response);
	}
	
	// 确认收货(修改订单orderStatus状态)
	public String receiveProduct(HttpServletRequest request,HttpServletResponse response){
		String orderNum = request.getParameter("orderNum").toString();
		leoShopService.changeOrderStatus(orderNum,3);
		return getOrderMsgs(request, response);
	}
	
	// 通过orderNum获取订单、商品信息返回评价页面
	public String getCommentMsg(HttpServletRequest request, HttpServletResponse response) throws IOException {
		int userId = -1;
		try {
			userId = Integer.parseInt(request.getSession().getAttribute("userId").toString());
		} catch (Exception e) {}
		if(userId == -1){
			throw userIsNotLogin;
		}
		String orderNum = request.getParameter("orderNum");
		List<CommentMsg> commentMsgs = leoShopDao.getCommentMsg(orderNum, userId);
		request.setAttribute("orderNum", orderNum);
		request.setAttribute("commentMsgs", commentMsgs);
		return "commentTab.jsp"; 
	}
	
	// 添加商品评价信息
	public String submitComment(HttpServletRequest request, HttpServletResponse response) throws IOException {
		String orderNum = request.getParameter("orderNum");
		int level = Integer.parseInt(request.getParameter("level"));
		String content = request.getParameter("content");
		int orderId = Integer.parseInt(request.getParameter("orderId"));
		Comment comment = new Comment(level, content, orderId);
		leoShopService.addComment(comment);
		request.setAttribute("orderNum", orderNum);
		return getCommentMsg(request, response); 
	}
}

完整源码

觉得有用,记得一键三连哦!

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

anmu4200

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值