基于B2C的网上拍卖系统
网上拍卖解决方案作为网络消费者与网站商家进行网络交易的平台,旨在为广大网上商家提供一个安全、可靠、可全面支持商品销售的电子商务运营平台,浏览者或潜在客户在这个平台上可以进行商品的查看、搜索、交易、交流。系统集会员、产品展示、订购系统、订单管理、促销管理、分类搜索、在线支付于一身。
功能截图:
登录页面:
首页:
促销:
秒杀:
竞拍:
留言:
购物车:
后台登录:
留言列表:
后台主页:
支付:
技术点介绍
开发工具:Eclipse 。
运行环境:jdk1.7
服务器:Tomcat 7.0。
数据库:MySql。
操作系统:Windows 7
需求
1、用例图:
2、系统E-R图:
源码(部分)
1、bean类:Order.java:
package cn.itbaizhan.bean;
import org.nutz.dao.entity.annotation.Column;
import org.nutz.dao.entity.annotation.Id;
import org.nutz.dao.entity.annotation.One;
import org.nutz.dao.entity.annotation.Table;
@Table("order1")
public class Order {
@Id
private int id;
@Column("proid")
private int proid;
@One(target = Product.class, field = "proid")
private Product product;
@Column("count")
private String count;
@Column("singleprice")
private String singleprice;
@Column("price")
private String price;
@Column("userid")
private int userid;
@One(target = User.class, field = "userid")
private User user;
@Column("sffk")
private int sffk;
@Column("tel")
private String tel;
@Column("address")
private String address;
@Column("date")
private String date;
@Column("senddept")
private String senddept;
@Column("visible")
private int visible;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getCount() {
return count;
}
public void setCount(String count) {
this.count = count;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public int getSffk() {
return sffk;
}
public void setSffk(int sffk) {
this.sffk = sffk;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getSenddept() {
return senddept;
}
public void setSenddept(String senddept) {
this.senddept = senddept;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public int getProid() {
return proid;
}
public void setProid(int proid) {
this.proid = proid;
}
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getSingleprice() {
return singleprice;
}
public void setSingleprice(String singleprice) {
this.singleprice = singleprice;
}
public int getVisible() {
return visible;
}
public void setVisible(int visible) {
this.visible = visible;
}
}
User.java:
package cn.itbaizhan.bean;
import org.nutz.dao.entity.annotation.Column;
import org.nutz.dao.entity.annotation.Id;
import org.nutz.dao.entity.annotation.Table;
@Table("user")
public class User {
@Id
private int id;
@Column("username")
private String username;
@Column("password")
private String password;
@Column("sex")
private int sex;
@Column("email")
private String email;
@Column("admin")
private int admin;
public int getAdmin() {
return admin;
}
public void setAdmin(int admin) {
this.admin = admin;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
2、业务逻辑类:(订单处理逻辑)OrderService.java:
package cn.itbaizhan.service;
import java.util.List;
import org.nutz.dao.Cnd;
import org.nutz.ioc.loader.annotation.IocBean;
import cn.itbaizhan.bean.Order;
import cn.itbaizhan.bean.User;
@IocBean(name="orderService",fields={"dao"})
public class OrderService extends BaseService{
/**
*
* @param userid
* @param proid
* @return
*/
public List<Order> findOrderByUseridAndProid(int userid,int proid){
List<Order> list = dao.query(Order.class, Cnd.wrap("userid = "+userid+" AND proid = "+proid+" and sffk = 0 and visible = 1"), null);
return list;
}
public List<Order> findOrderByProid(int proid){
List<Order> list = dao.query(Order.class, Cnd.wrap("proid = "+proid+" and sffk = 0 and visible = 1 "), null);
return list;
}
public List<Order> findOrderByProid1(int proid){
List<Order> list = dao.query(Order.class, Cnd.wrap("proid = "+proid+" and sffk = 0 and visible = 0 "), null);
return list;
}
/**
* 添加cart
* @param id
* @return
*/
public Order addOrder(Order order){
return dao.insert(order);
}
/**
* 购物车列表
* @return
*/
public List<Order> getCartList(int id){
return dao.query(Order.class, Cnd.wrap("userid="+id+" and sffk=0 and visible = 1 order by id desc"), null);
}
/**
* 已购物品
* @return
*/
public List<Order> getOrderList(int id){
return dao.query(Order.class, Cnd.wrap("userid="+id+" and sffk=1 and visible = 1 order by date desc"), null);
}
/**
*
* @return
*/
public List<Order> getAllOrderList(){
return dao.query(Order.class, Cnd.wrap("sffk=1"), null);
}
/**
* 根据ID查询
*/
public Order findOrderById(int id){
Order order = dao.fetch(Order.class, id);
return order;
}
/**
* 修改
* @param id
* @return
*/
public int editOrder(Order order){
return dao.update(order);
}
/**
* 删除
* @param id
* @return
*/
public int deleteOrder(int id){
return dao.delete(Order.class, id);
}
}
UserSerVice.java:
package cn.itbaizhan.service;
import java.util.List;
import org.nutz.dao.Cnd;
import org.nutz.dao.pager.Pager;
import org.nutz.ioc.loader.annotation.IocBean;
import cn.itbaizhan.bean.User;
@IocBean(name="userService",fields={"dao"})
public class UserService extends BaseService{
public List<User> findUserByNameAndPsd(String username,String password){
List<User> list = dao.query(User.class, Cnd.wrap("username = '"+username+"' AND password = '"+password+"'"), null);
return list;
}
/**
*查询人员
*/
public List<User> findUsers(Pager pager,String sortnameParmName,String sortorderParmName){
return dao.query(User.class,Cnd.wrap("ORDER BY "+sortnameParmName+" "+sortorderParmName),pager);
}
/**
*查询全部人员
*/
public List<User> findListUsers(){
return dao.query(User.class,null);
}
/**
* 查询人员总数
* @return
*/
public int findUsersCount(){
return dao.count(User.class);
}
/**
* 添加人员
* @param id
* @return
*/
public User addUser(User user){
return dao.insert(user);
}
/**
* 根据ID查询
*/
public User findUserById(int id){
User user = dao.fetch(User.class, id);
return user;
}
/**
* 修改人员
* @param id
* @return
*/
public int editUser(User user){
return dao.update(user);
}
/**
* 删除人员
* @param id
* @return
*/
public int deleteUser(int id){
return dao.delete(User.class, id);
}
}
3、Action类:OrderAction.java:
package cn.itbaizhan.action;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.View;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.view.JspView;
import cn.itbaizhan.bean.Order;
import cn.itbaizhan.bean.Product;
import cn.itbaizhan.bean.User;
import cn.itbaizhan.common.PagerUtil;
import cn.itbaizhan.service.OrderService;
import cn.itbaizhan.service.ProductService;
import cn.itbaizhan.service.UserService;
@IocBean
@At("/order")
public class OrderAction {
@Inject("refer:orderService")
private OrderService orderService;
@Inject("refer:productService")
private ProductService productService;
@Inject("refer:userService")
private UserService userService;
/**
* add order
* @param request
* @return
*/
@At("/add")
public View list(HttpServletRequest request){
String id = request.getParameter("id");
String price = request.getParameter("price");
User user = (User)request.getSession().getAttribute("user");
Order order = new Order();
order.setProid(Integer.parseInt(id));
List<Order> listOrd = orderService.findOrderByUseridAndProid(user.getId(), Integer.parseInt(id));
if(listOrd.size()>0){
Order existorder = listOrd.get(0);
int count = Integer.parseInt(existorder.getCount())+1;
int newprice = count* Integer.parseInt(existorder.getSingleprice());
existorder.setCount(String.valueOf(count));
existorder.setVisible(1);
existorder.setPrice(String.valueOf(newprice));
orderService.editOrder(existorder);
}else{
order.setSingleprice(price);
order.setPrice(price);
order.setCount("1");
order.setVisible(1);
order.setUserid(user.getId());
order = orderService.addOrder(order);
if(order!=null){
request.setAttribute("msg", "添加成功");
}else{
request.setAttribute("msg", "添加失败");
}
}
List<Order> list = orderService.getCartList(user.getId());
request.setAttribute("list", list);
int sumprice = 0;
for(int i=0;i<list.size();i++){
list.get(i).setUser(userService.findUserById(list.get(i).getUserid()));
list.get(i).setProduct(productService.findProductById(list.get(i).getProid()));
if(sumprice==0){
sumprice = Integer.parseInt(list.get(i).getPrice());
}else{
sumprice += Integer.parseInt(list.get(i).getPrice());
}
}
request.setAttribute("sumprice", sumprice);
request.setAttribute("count", list.size());
return new JspView("jsp.cart");
}
/**
*
* @param request
* @return
*/
@At("/changeCount")
public View changeCount(HttpServletRequest request){
String id = request.getParameter("id");
String count = request.getParameter("count");
Order order = orderService.findOrderById(Integer.parseInt(id));
order.setCount(count);
int price = Integer.parseInt(count)*Integer.parseInt(order.getSingleprice());
order.setPrice(String.valueOf(price));
orderService.editOrder(order);
//**
User user = (User)request.getSession().getAttribute("user");
List<Order> list = orderService.getCartList(user.getId());
request.setAttribute("list", list);
int sumprice = 0;
for(int i=0;i<list.size();i++){
list.get(i).setUser(userService.findUserById(list.get(i).getUserid()));
list.get(i).setProduct(productService.findProductById(list.get(i).getProid()));
if(sumprice==0){
sumprice = Integer.parseInt(list.get(i).getPrice());
}else{
sumprice += Integer.parseInt(list.get(i).getPrice());
}
}
request.setAttribute("sumprice", sumprice);
request.setAttribute("count", list.size());
return new JspView("jsp.cart");
}
/**
*
* @param request
* @return
*/
@At("/deleteorder")
public View deleteorder(HttpServletRequest request){
String id = request.getParameter("id");
orderService.deleteOrder(Integer.parseInt(id));
//**
User user = (User)request.getSession().getAttribute("user");
List<Order> list = orderService.getCartList(user.getId());
request.setAttribute("list", list);
int sumprice = 0;
for(int i=0;i<list.size();i++){
list.get(i).setUser(userService.findUserById(list.get(i).getUserid()));
list.get(i).setProduct(productService.findProductById(list.get(i).getProid()));
if(sumprice==0){
sumprice = Integer.parseInt(list.get(i).getPrice());
}else{
sumprice += Integer.parseInt(list.get(i).getPrice());
}
}
request.setAttribute("sumprice", sumprice);
request.setAttribute("count", list.size());
return new JspView("jsp.cart");
}
/**
* 到结算页面
*/
@At("/tocheckout")
public View tocheckout(HttpServletRequest request){
String price = request.getParameter("price");
request.setAttribute("price", price);
return new JspView("jsp.checkout");
}
/**
* 到付款界面
*/
@At("/topay")
public View topay(HttpServletRequest request){
String price = request.getParameter("price");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String tel = request.getParameter("tel");
String address = request.getParameter("address");
String senddept = request.getParameter("senddept");
User user = (User)request.getSession().getAttribute("user");
List<Order> list = orderService.getCartList(user.getId());
Order order = new Order();
for(int i=0;i<list.size();i++){
order = list.get(i);
order.setAddress(address);
order.setDate(df.format(new Date()));
order.setSenddept(senddept);
order.setTel(tel);
orderService.editOrder(order);
}
request.setAttribute("price", price);
return new JspView("jsp.pay");
}
/**
* 支付
* @param request
* @return
*/
@At("/pay")
public View pay(HttpServletRequest request){
User user = (User)request.getSession().getAttribute("user");
List<Order> list = orderService.getCartList(user.getId());
Order order = new Order();
Product product = new Product();
for(int i=0;i<list.size();i++){
order = list.get(i);
order.setSffk(1);
order.setVisible(1);
orderService.editOrder(order);
product = productService.findProductById(order.getProid());
if(product.getSfms()==1){//如果是秒杀,秒杀数量-1
product.setMscount(product.getMscount()-1);
productService.editProduct(product);
}
}
request.setAttribute("msg", "付款成功");
//新品上市
List<Product> newlist = productService.findNewProduct();
request.setAttribute("newlist", newlist);
//促销
List<Product> cxlist = productService.findCxProduct();
request.setAttribute("cxlist", cxlist);
return new JspView("jsp.index");
}
/**
*
* @param request
* @return
*/
@At("/toOrderList")
public View toOrderList(HttpServletRequest request){
User user = (User)request.getSession().getAttribute("user");
List<Order> list = orderService.getOrderList(user.getId());
for(int i=0;i<list.size();i++){
list.get(i).setUser(userService.findUserById(list.get(i).getUserid()));
list.get(i).setProduct(productService.findProductById(list.get(i).getProid()));
}
request.setAttribute("list", list);
return new JspView("jsp.orderlist");
}
@At("/addprice")
public View addprice(HttpServletRequest request){
User user = (User)request.getSession().getAttribute("user");
String addprice = request.getParameter("addprice");
//***
String id = request.getParameter("id");
Product product = productService.findProductById(Integer.parseInt(id));
int jpprice = Integer.parseInt(product.getJpprice())+Integer.parseInt(addprice);
product.setJpprice(String.valueOf(jpprice));
productService.editProduct(product);
Order order = new Order();
List<Order> listorder = orderService.findOrderByProid(product.getId());
if(listorder.size()>0){
orderService.deleteOrder(listorder.get(0).getId());
}
order.setUserid(user.getId());
order.setProid(product.getId());
order.setCount("1");
order.setVisible(0);
order.setPrice(String.valueOf(jpprice));
orderService.addOrder(order);
//促销
List<Product> cxlist = productService.findCxProduct();
request.setAttribute("cxlist", cxlist);
request.setAttribute("product", product);
Calendar c =Calendar.getInstance();
try{
c.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(product.getJpdate()));
}catch (ParseException e) {
e.printStackTrace();
}
long current_time=System.currentTimeMillis();
long end_time=c.getTimeInMillis();
long time=end_time-current_time;
request.setAttribute("time", time/1000);
return new JspView("jsp.jpdetail");
}
@At("/setVisible")
public View setVisible(HttpServletRequest request){
String id = request.getParameter("id");
User user = (User)request.getSession().getAttribute("user");
List<Order> list = orderService.findOrderByProid1(Integer.parseInt(id));
if(list.size()>0){
Order order = list.get(0);
order.setVisible(1);
orderService.editOrder(order);
}
//新品上市
List<Product> newlist = productService.findNewProduct();
request.setAttribute("newlist", newlist);
//促销
List<Product> cxlist = productService.findCxProduct();
request.setAttribute("cxlist", cxlist);
return new JspView("jsp.index");
}
//houtai****************************************************
@At("/htlist")
public View htlist(HttpServletRequest request){
User user = (User)request.getSession().getAttribute("user");
String pagerNum = request.getParameter("pagerNum");
if(pagerNum==null){
pagerNum = "1";
}
List<Order> list = orderService.getAllOrderList();
request.setAttribute("count", list.size());
request.setAttribute("maxPager", PagerUtil.getMaxPager(list.size()));
list = (List<Order>) PagerUtil.getPager(list, Integer.parseInt(pagerNum));
for(int i=0;i<list.size();i++){
list.get(i).setUser(userService.findUserById(list.get(i).getUserid()));
list.get(i).setProduct(productService.findProductById(list.get(i).getProid()));
}
request.setAttribute("list", list);
request.setAttribute("pagerNum", pagerNum);
return new JspView("jsp.admin.order");
}
}
UserAction.java:
package cn.itbaizhan.action;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.View;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.view.JspView;
import cn.itbaizhan.bean.Product;
import cn.itbaizhan.bean.User;
import cn.itbaizhan.service.ProductService;
import cn.itbaizhan.service.UserService;
@IocBean
@At("/user")
public class UserAction {
@Inject("refer:userService")
private UserService userService;
@Inject("refer:productService")
private ProductService productService;
/**
* 到登录/注册页面
* @param request
* @return
*/
@At("/tologin")
public View tologin(HttpServletRequest request){
return new JspView("jsp.login");
}
/**
* 到注册页面
* @param request
* @return
*/
@At("/toregister")
public View toregister(HttpServletRequest request){
return new JspView("jsp.register");
}
/**
* 注册
* @param request
* @return
*/
@At("/register")
public View register(HttpServletRequest request){
String username=request.getParameter("username");
String password=request.getParameter("password");
String email=request.getParameter("email");
User user = new User();
user.setUsername(username);
user.setPassword(password);
user.setEmail(email);
user = userService.addUser(user);
if(user!=null){
request.setAttribute("msg", "success");
}else{
request.setAttribute("msg", "error");
}
return new JspView("jsp.register");
}
/**
* login
*/
@At("/login")
public View login(HttpServletRequest request){
String username = request.getParameter("username");
String password = request.getParameter("password");
List<User> list = userService.findUserByNameAndPsd(username, password);
//新品上市
List<Product> newlist = productService.findNewProduct();
request.setAttribute("newlist", newlist);
//促销
List<Product> cxlist = productService.findCxProduct();
request.setAttribute("cxlist", cxlist);
if(list.size()!=1){
request.setAttribute("msg", "error");
return new JspView("jsp.login");
}else{
request.setAttribute("user", list.get(0));
request.getSession().setAttribute("user", list.get(0));
return new JspView("jsp.index");
}
}
/**
* Adminlogin
*/
@At("/adminlogin")
public View adminlogin(HttpServletRequest request){
String username = request.getParameter("username");
String password = request.getParameter("password");
//如果直接请求该方法,就跳转到后台登录页面
if(username==null&&password==null){
return new JspView("jsp.admin.login");
}
List<User> list = userService.findUserByNameAndPsd(username, password);
if(list.size()!=1){
request.setAttribute("msg", "用户名或密码错误");
return new JspView("jsp.admin.login");
}else{
if(list.get(0).getAdmin()==1){
request.setAttribute("user", list.get(0));
request.getSession().setAttribute("user", list.get(0));
return new JspView("jsp.admin.index");
}else{
request.setAttribute("msg", "无管理员权限");
return new JspView("jsp.admin.login");
}
}
}
/**
* adminlogout
* @param request
* @return
*/
@At("/adminlogout")
public View adminlogout(HttpServletRequest request){
request.getSession().setAttribute("user", null);
return new JspView("jsp.admin.login");
}
/**
* logout
* @param request
* @return
*/
@At("/logout")
public View logout(HttpServletRequest request){
request.getSession().setAttribute("user", null);
//新品上市
List<Product> newlist = productService.findNewProduct();
request.setAttribute("newlist", newlist);
//促销
List<Product> cxlist = productService.findCxProduct();
request.setAttribute("cxlist", cxlist);
return new JspView("jsp.index");
}
/**
* 跳转到修改密码
* @param request
* @return
*/
@At("/tochangePsd")
public View tochangePsd(HttpServletRequest request){
return new JspView("jsp.changePsd");
}
/**
* 跳转到admin修改密码
* @param request
* @return
*/
@At("/toAdminChangePsd")
public View toAdminChangePsd(HttpServletRequest request){
return new JspView("jsp.admin.changePsd");
}
/**
* 修改密码
* @param request
* @return
*/
@At("/changePsd")
public View changePsd(HttpServletRequest request){
User user = (User)request.getSession().getAttribute("user");
String oldpsd = request.getParameter("oldpsd");
String newpsd = request.getParameter("newpsd");
String cpsd = request.getParameter("cpsd");
if(oldpsd.equals(user.getPassword())){
if(newpsd.equals(cpsd)){
user.setPassword(newpsd);
int i = userService.editUser(user);
if(i==1){
request.setAttribute("msg", "密码修改成功");
return new JspView("jsp.changePsd");
}else{
request.setAttribute("msg", "密码修改失败");
return new JspView("jsp.changePsd");
}
}else{
request.setAttribute("msg", "新密码两次输入不一致");
return new JspView("jsp.changePsd");
}
}else{
request.setAttribute("msg", "原密码错误");
return new JspView("jsp.changePsd");
}
}
/**
* admin修改密码
* @param request
* @return
*/
@At("/adminChangePsd")
public View adminChangePsd(HttpServletRequest request){
User user = (User)request.getSession().getAttribute("user");
String newpsd = request.getParameter("newpsd");
user.setPassword(newpsd);
int i = userService.editUser(user);
if(i==1){
request.setAttribute("msg", "密码修改成功");
return new JspView("jsp.admin.changePsd");
}else{
request.setAttribute("msg", "密码修改失败");
return new JspView("jsp.admin.changePsd");
}
}
}
4、分页辅助类:Page.java
package cn.itbaizhan.common;
import java.util.List;
import java.util.Map;
import org.nutz.dao.pager.Pager;
public class Page extends Pager{
/**
*
*/
private static final long serialVersionUID = 1L;
public Page(Pager pager) {
setPageNumber(pager.getPageNumber());
setPageSize(pager.getPageSize());
setRecordCount(pager.getRecordCount());
}
@SuppressWarnings("rawtypes")
private List<Map> list;
public List<Map> getList() {
return list;
}
public void setList(List<Map> list) {
this.list = list;
}
}
写在最后
全部源码和详细文档,可加博主V交流:Code2Life2