超市账单管理系统

1.用户模块

1.1登陆(15分)
1)用户名或密码错误不能登陆成功(5分),系统中除了登陆页面,其它页面必须都在登陆后才能查看(使用过滤器校验登陆状态)(5分)。
2)登陆成功后进入首页:
首页显示用户名(5分)

1.2退出登陆(5分)

1.3修改密码(10分)
1)修改当前登陆的用户的密码(5分),旧密码输入错误不能修改(5分),修改成功后需要退出登陆状态,跳转到登陆页,让用户重新登陆(否则扣2分)。

2.账单管理
2.1账单管理(25分)
1)实现按商品名称、供应商、是否付款等条件查询订单,三个条件可以自由组合(10分),供应商从数据库读取(5分)。表格中的供应商名需要使用inner join语句关联查询,否则扣5分。
2)实现翻页功能(10分),翻页必须带查询条件,不带条件扣5分。请准备足够的测试数据。数据不足无法演示效果的,所有功能不得分。

2.2添加账单(15分)
1)实现订单添加功能(12分)。供应商从数据库获取,否则扣5分。
2)添加成功后跳转到账单管理列表页(3分)

2.3修改订单(20分)
1)点击修改按钮,进入修改页面,回填表单中的订单信息(15分),不能回填数据不得分。供应商不能正确回填扣5分,付款状态不能回填扣3分。
2)正确修改订单(5分)
3)修改成功后跳转到列表页,否则扣3分。

2.4删除订单(10分)
1)使用ajax实现删除。不使用ajax不得分。

实体类

public class Bill {
    private Integer id;
    private String name;//商品名称
    private String unit;//单位
    private Integer num;
    private Double price;
    private String providerId;//供应商编号
    private String providerName;//供应商名字
    private Integer pay;//是否支付 0未支付 1已支付
    private String time;

    public Bill() {
    }
}
public class Manager {
    private String username;
    private String password;

    public Manager() {
    }
}
public class Provider {
    private String id;
    private String name;
    private String userId;
    private Date time;

    public Provider() {
    }
}
public class User {
    private String id;
    private String name;
    private Integer sex;//0男 1女
    private Integer age;
    private String phone;
    private String type;//类型

    public User() {
    }
}
public class ProUser {
    private String providerId;
    private String providerName;
    private String userName;
    private String userPhone;
    private Date providerTime;

    public ProUser() {
    }
}
/**
 * 查询列表分页显示
 */
public class Page {
    private Integer pageNum; //当前第几页
    private Integer pageSize; //每页几条
    private Integer totalCount; //总共几条
    private Integer totalPages; // 总共几页
    private Integer startRows; //从第几行开始

    public Page() {
    }

    public Page(Integer pageNum, Integer pageSize) {
        this.setPageNum(pageNum);
        this.setPagesize(pageSize);
        this.startRows = (this.pageNum - 1) * this.pageSize;
    }

    public Integer getPageNum() {
        return pageNum;
    }

    public void setPageNum(Integer pageNum) {
        if (pageNum == null || pageNum < 0) {
            pageNum = 1;
        }
        this.pageNum = pageNum;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPagesize(Integer pageSize) {
        //当pageSize过大过小时,默认为2
        if (pageSize == null || pageSize < 0 || pageSize > 5) {
            pageSize = 3;
        }
        this.pageSize = pageSize;
    }

    public Integer getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(Integer totalCount) {
        this.totalCount = totalCount;
        //计算总页数
        if (this.totalCount % this.pageSize == 0) {
            this.totalPages = this.totalCount / this.pageSize;
        } else {
            this.totalPages = this.totalCount / this.pageSize + 1;
        }
    }

    public Integer getTotalPages() {
        return totalPages;
    }

    public void setTotalPages(Integer totalPages) {
        this.totalPages = totalPages;
    }

    public Integer getStartRows() {
        return startRows;
    }

    public void setStartRows(Integer startRows) {
        this.startRows = startRows;
    }
}

实体类

package dao;

import entity.Bill;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import util.DBUtils;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class BillDao {
    private QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());

    /**
     *  按条件查询账单
     * @param name 商品名称
     * @param providerName 供应商名称
     * @param pay 是否支付
     * @return
     */
    public List<Bill> getBill(String name,String providerName,String pay,Integer offset,Integer pageSize){
        String sql = "select b.id id,b.name name,p.name providerName,b.price price,b.pay pay,b.`time` time " +
                " from bill b inner join provider p " +
                " on b.provider_id=p.id " +
                " where 1=1 ";
        List param = new ArrayList();
        if(name!=null){
            sql += " and b.name=? ";
            param.add(name);
        }
        if (providerName!=null){
            sql += " and p.name=? ";
            param.add(providerName);
        }
        if(pay!=null){
            sql += " and b.pay=? ";
            param.add(pay);
        }

        sql += " limit ?,? ";
        param.add(offset);
        param.add(pageSize);

        try {
           return queryRunner.query(sql,new BeanListHandler<>(Bill.class),param.toArray());
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    public int addBill(Bill bill){
        String sql = "insert into bill(name,unit,num,price,provider_id,pay,`time`) values(?,?,?,?,?,?,?)";
        try {
            return queryRunner.update(sql,bill.getName(),bill.getUnit(),bill.getNum(),bill.getPrice(),bill.getProviderId(),bill.getPay(),bill.getTime());
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    /**
     * 根据id获取账单
      * @param id
     * @return
     */
    public Bill getBillById(Integer id){
        String sql = "select b.id,b.name,b.unit,b.num,b.price,b.provider_id providerId,p.name providerName,b.pay,b.`time` " +
                " from bill b inner join provider p" +
                " on b.provider_id = p.id " +
                " where b.id=?";
        try {
            return queryRunner.query(sql,new BeanHandler<>(Bill.class),id);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    public int updateBill(Bill bill){
        String sql = "update bill set name=?,unit=?,num=?,price=?,provider_id=?,pay=?,`time`=? where id=?";
        try {
            return queryRunner.update(sql,bill.getName(),bill.getUnit(),bill.getNum(),bill.getProviderId(),bill.getPay(),bill.getTime(),bill.getId());
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    public int deleteBill(Integer id){
        String sql = "delete from bill where id=?";
        try {
            return queryRunner.update(sql,id);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    /**
     * 查找共有多少条数据
     * @return
     */
    public long selectCount(){
        String sql = "select count(*) from bill";
        try {
            return queryRunner.query(sql,new ScalarHandler<>());
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }
}

package dao;

import entity.Manager;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import util.DBUtils;

import java.sql.SQLException;

public class ManagerDao {
    private QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());

    /**
     * 根据用户名获取管理员数据
     * @param username
     * @return
     */
    public Manager getManager(String username){
        String sql = "select username,password from manager where username=?";
        try {
            return queryRunner.query(sql,new BeanHandler<>(Manager.class),username);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 修改密码
     * @param username
     * @param password
     * @return
     */
    public int updatePassword(String username,String password){
        String sql = "update manager set password=? where username=?";
        try {
            return queryRunner.update(sql,password,username);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }
}

package dao;

import entity.ProUser;
import entity.Provider;
import entity.User;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import util.DBUtils;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class ProviderDao {
    private QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());

    /**
     * 查询供应商和供应商有关的用户
     * ProUser类,封装结果集
     * @return
     */
    public List<ProUser> getAllProvider(){

        String sql = "select p.id providerId,p.name providerName,u.name userName,u.phone userPhone,p.`time` providerTime " +
                " from provider p inner join user u " +
                " on p.user_id = u.id";
        try {
            return queryRunner.query(sql,new BeanListHandler<ProUser>(ProUser.class) );
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 获取所有供应商名称
     * @return
     */
    public List<Provider> getProviderName(){
        String sql = "select name  from provider";
        try {
            return queryRunner.query(sql,new BeanListHandler<>(Provider.class));
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 根据厂商名获取厂商id
     * @param name
     * @return
     */
    public Provider getProviderId(String name){

        String sql = "select id from provider where name=?";
        try {
            return queryRunner.query(sql, new BeanHandler<>(Provider.class),name);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
}

package dao;

import entity.User;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import util.DBUtils;

import java.sql.SQLException;
import java.util.List;

public class UserDao {
    private QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());

    /**
     * 查询全部user
     * @return
     */
    public List<User> getAllUser(){
        String sql = "select id,name,sex,age,phone,type from user";
        try {
            return queryRunner.query(sql,new BeanListHandler<>(User.class));
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
}

service

package service;

import dao.BillDao;
import entity.Bill;
import entity.Page;

import java.util.List;

public class BillService {
    public List<Bill> getBill(String name, String providerName, String pay, Page page){
        BillDao billDao = new BillDao();
        long count = billDao.selectCount();
        page.setTotalCount((int)count);
        return billDao.getBill(name,providerName,pay,page.getStartRows(),page.getPageSize());
    }

    public int addBill(Bill bill){
        BillDao billDao = new BillDao();
        return billDao.addBill(bill);
    }

    public Bill getBillById(Integer id){
        BillDao billDao = new BillDao();
        return billDao.getBillById(id);
    }

    public int updateBill(Bill bill){
        BillDao billDao = new BillDao();
        return billDao.updateBill(bill);
    }

    public int deleteBill(Integer id){
        BillDao billDao = new BillDao();
        return billDao.deleteBill(id);
    }
}

package service;

import dao.ManagerDao;
import entity.Manager;

public class ManagerService {
    /**
     * 管理员登录
     * 判断用户名密码是否正确
     * @param username
     * @param password
     * @return
     */
    public Manager loginManager(String username, String password) {
        ManagerDao managerDao = new ManagerDao();
        Manager manager = managerDao.getManager(username);
        if (manager == null || !manager.getPassword().equals(password)) {
            return null;
        }
        return manager;
    }

    /**
     * 检查密码
     * @param username
     * @param oldPassword 旧密码
     * @param newPassword 新密码
     * @param reNewPassword 重复新密码
     * @return
     */
    public int checkPassword(String username,String oldPassword,String newPassword,String reNewPassword){
        ManagerDao managerDao = new ManagerDao();
        Manager manager = managerDao.getManager(username);
        if(manager!=null&&oldPassword!=null&&newPassword!=null&&reNewPassword!=null) {
            if (!manager.getPassword().equals(oldPassword)) {
                return 1;//填入的旧密码与管理员密码不符合
            }
            if (newPassword.equals(oldPassword)) {
                return 2; //填入的新密码与旧密码相同
            }
            if (!newPassword.equals(reNewPassword)) {
                return 3;//重复填入的新密码与新密码不同
            }

            return 4;//符合要求,修改密码
        }else {
            return 0;
        }
    }

    public int updatePassword(String username,String password){
        ManagerDao managerDao = new ManagerDao();
        return managerDao.updatePassword(username,password);
    }
}

package service;

import dao.ProviderDao;
import entity.ProUser;
import entity.Provider;

import java.util.List;

public class ProviderService {
    public List<ProUser> getAllProvider(){
        ProviderDao providerDao = new ProviderDao();
        return providerDao.getAllProvider();
    }

    public List<Provider> getProviderName(){
        ProviderDao providerDao = new ProviderDao();
        return providerDao.getProviderName();
    }

    public Provider getProviderId(String name){
        ProviderDao providerDao = new ProviderDao();
        return providerDao.getProviderId(name);
    }
}

package service;

import dao.UserDao;
import entity.User;

import java.util.List;

public class UserService {
    /**
     * 获取全部user
     * @return
     */
    public List<User> getAllUser(){
        UserDao userDao = new UserDao();
        return userDao.getAllUser();
    }
}

servlet

package servlet;

import entity.Manager;
import service.ManagerService;
import util.ParameterUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

/**
 *管理员登录
 */
@WebServlet(name = "ManagerLoginServlet", urlPatterns = "/login")
public class ManagerLoginServlet extends HttpServlet {
    private ManagerService managerService = new ManagerService();
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = ParameterUtil.getString(request,"username");
        String password = ParameterUtil.getString(request,"password");
        //验证用户名和密码不为空
        if (username == null) {
            goPage("用户名不能为空", request, response);
            return;
        }
        if (password == null) {
            goPage("密码不能为空", request, response);
            return;
        }
        Manager manager = managerService.loginManager(username,password);
        if(manager==null){
            goPage("用户名密码错误",request,response);
            return;
        }
        HttpSession session=request.getSession();
        session.setAttribute("manager",manager);
        request.getRequestDispatcher("index.jsp").forward(request,response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

    private void goPage(String message, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setAttribute("message", message);
        request.getRequestDispatcher("login.jsp").forward(request, response);
    }
}
package servlet;

import service.ManagerService;
import util.ParameterUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 修改密码
 */
@WebServlet(name = "PasswordServlet", urlPatterns = "/password")
public class PasswordServlet extends HttpServlet {
    private ManagerService managerService = new ManagerService();

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = ParameterUtil.getString(request, "username");
        String password = ParameterUtil.getString(request, "newPassword");
        int res = managerService.updatePassword(username, password);
        if (res > 0) {
            request.setAttribute("message", "密码修改成功");
        }else {
            request.setAttribute("message", "密码修改失败");
        }
        request.getRequestDispatcher("login.jsp").forward(request, response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}
package servlet;

import entity.Manager;
import service.ManagerService;
import util.ParameterUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 修改密码
 * 检查新旧密码是否一致
 * 两次输入新密码是否一致
 */
@WebServlet(name = "CheckPasswordServlet", urlPatterns = "/checkpassword")
public class CheckPasswordServlet extends HttpServlet {
    private ManagerService managerService = new ManagerService();
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = ParameterUtil.getString(request,"username");
        String oldPassword = ParameterUtil.getString(request,"oldPassword");
        String newPassword = ParameterUtil.getString(request,"newPassword");
        String reNewPassword = ParameterUtil.getString(request,"reNewPassword");
        Manager manager = managerService.loginManager(username,oldPassword);
        int res = managerService.checkPassword(username,oldPassword,newPassword,reNewPassword);
        if(res==1){//填入的旧密码与管理员密码不符合
            request.setAttribute("message","旧密码输入错误");
            request.getRequestDispatcher("password.jsp").forward(request,response);
        }
        if(res==2){//填入的新密码与旧密码相同
            request.setAttribute("message","新密码与旧密码相同");
            request.getRequestDispatcher("password.jsp").forward(request,response);
        }
        if(res==3){//重复填入的新密码与新密码不同
            request.setAttribute("message","两次密码输入不同");
            request.getRequestDispatcher("password.jsp").forward(request,response);
        }
        if(res==4){//符合要求,修改密码
            managerService.updatePassword(username,newPassword);
            request.getRequestDispatcher("password?username="+username+"&password="+newPassword).forward(request,response);
        }
//        ObjectMapper mapper = new ObjectMapper();
//        String json = mapper.writeValueAsString(result);
//        response.getWriter().write(json);

    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}
package servlet;

import entity.Bill;
import entity.Page;
import entity.Provider;
import service.BillService;
import service.ProviderService;
import util.ParameterUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * 账单列表
 */
@WebServlet(name = "BillListServlet", urlPatterns = "/billList")
public class BillListServlet extends HttpServlet {
    private BillService billService = new BillService();
    private ProviderService providerService = new ProviderService();
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String name = ParameterUtil.getString(request,"name");
        String providerName = ParameterUtil.getString(request,"tigong");
        String pay = ParameterUtil.getString(request,"fukuan");
        Integer pageNum = ParameterUtil.getInteger(request,"pn");
        Integer pageSize = ParameterUtil.getInteger(request,"ps");
        Page page = new Page(pageNum,pageSize);
        List<Bill> billList = null;
        if(name==null&&providerName==null&&pay==null){
            billList = billService.getBill(null,null,null,page);
        }

        else {
            billList = billService.getBill(name,providerName,pay,page);
        }


        List<Provider> providerNameList = providerService.getProviderName();

        for (Bill bill : billList) {
            System.out.println(bill);
        }
        request.setAttribute("billList",billList);
        request.setAttribute("providerNameList",providerNameList);
        request.setAttribute("page",page);
        request.getRequestDispatcher("billList.jsp").forward(request,response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}
package servlet;

import entity.Bill;
import service.BillService;
import util.ParameterUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 查看订单详细信息
 */
@WebServlet(name = "BillViewServlet", urlPatterns = "/billView")
public class BillViewServlet extends HttpServlet {
    private BillService billService = new BillService();
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Integer id = ParameterUtil.getInteger(request,"id");
        Bill bill = billService.getBillById(id);
        System.out.println(bill);
        request.setAttribute("bill",bill);
        request.getRequestDispatcher("billView.jsp").forward(request,response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}
package servlet;

import entity.Bill;
import entity.Provider;
import service.BillService;
import service.ProviderService;
import util.ParameterUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * 修改前获取回填数据
 */
@WebServlet(name = "ToUpdateBillServlet", urlPatterns = "/toupdatebill")
public class ToUpdateBillServlet extends HttpServlet {
    private BillService billService = new BillService();
    private ProviderService providerService = new ProviderService();
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Integer id = ParameterUtil.getInteger(request,"id");
        Bill bill = billService.getBillById(id);
        List<Provider> providerNameList = providerService.getProviderName();
        request.setAttribute("bill",bill);
        request.setAttribute("providerNameList",providerNameList);
        request.getRequestDispatcher("billUpdate.jsp").forward(request,response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}
package servlet;

import entity.Bill;
import entity.Provider;
import service.BillService;
import service.ProviderService;
import util.ParameterUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 修改
 */
@WebServlet(name = "UpdateBillServlet", urlPatterns = "/updatebill")
public class UpdateBillServlet extends HttpServlet {
    private BillService billService = new BillService();
    private ProviderService providerService = new ProviderService();
    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Integer id = ParameterUtil.getInteger(request,"id");
        String name = ParameterUtil.getString(request,"providerName");
        String unit = ParameterUtil.getString(request,"people");
        Integer num = ParameterUtil.getInteger(request,"phone");
        Double price = ParameterUtil.getDouble(request,"address");
        String supplier = ParameterUtil.getString(request,"supplier");
        Integer pay = ParameterUtil.getInteger(request,"zhifu");
        Provider p = providerService.getProviderId(supplier);
        Bill bill = new Bill(id,name,unit,num,price,p.getId(),pay,sf.format(new Date()));
        int res = billService.updateBill(bill);
        if(res>0){
            request.setAttribute("message","修改成功");
        }else {
            request.setAttribute("message","修改失败");
        }
        response.sendRedirect("billList");
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}
package servlet;

import entity.Provider;
import service.ProviderService;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * 添加前搜索所有供应商名称
 */
@WebServlet(name = "AddProviderNameServlet", urlPatterns = "/addproname")
public class AddProviderNameServlet extends HttpServlet {
    private ProviderService providerService = new ProviderService();

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<Provider> providerNameList = providerService.getProviderName();
        for (Provider provider : providerNameList) {
            System.out.println(provider.getName());
        }
        request.setAttribute("providerNameList",providerNameList);
        request.getRequestDispatcher("billAdd.jsp").forward(request,response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}
package servlet;

import entity.Bill;
import entity.Provider;
import service.BillService;
import service.ProviderService;
import util.ParameterUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * 添加账单
 */
@WebServlet(name = "AddBillServlet", urlPatterns = "/addbill")
public class AddBillServlet extends HttpServlet {
    private BillService billService = new BillService();
    private ProviderService providerService = new ProviderService();
    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String billName = ParameterUtil.getString(request,"billName");
        String billCom = ParameterUtil.getString(request,"billCom");
        Integer billNum = ParameterUtil.getInteger(request,"billNum");
        Double money = ParameterUtil.getDouble(request,"money");
        String supplier = ParameterUtil.getString(request,"supplier");
        Integer pay = ParameterUtil.getInteger(request,"zhifu");

        Provider p = providerService.getProviderId(supplier);
        System.out.println(p.getId());
        Bill bill = new Bill(billName,billCom,billNum,money,p.getId(),pay,sf.format(new Date()));
        System.out.println(bill.getName()+bill.getUnit()+bill.getTime());
        int res = billService.addBill(bill);
        if(res>0){
            request.setAttribute("message","添加成功");
        }else {
            request.setAttribute("message","添加失败");
        }
        response.sendRedirect("billList");
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}
package servlet;

import service.BillService;
import util.ParameterUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 删除账单
 */
@WebServlet(name = "DeleteBillServlet", urlPatterns = "/deleteBill")
public class DeleteBillServlet extends HttpServlet {
    private BillService billService = new BillService();
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("application/json;charset=utf-8");
        Integer id = ParameterUtil.getInteger(request,"id");
        int res = billService.deleteBill(id);
        if(res>0){
            response.getWriter().write("删除成功");
        }else {
            response.getWriter().write("删除失败");
        }
        response.sendRedirect("billList");
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

账单列表页面

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>超市账单管理系统</title>
    <link rel="stylesheet" href="css/public.css"/>
    <link rel="stylesheet" href="css/style.css"/>
</head>
<body>
<!--头部-->
<header class="publicHeader">
    <h1>超市账单管理系统</h1>
    <div class="publicHeaderR">
        <p><span>下午好!</span><span style="color: #fff21b"> ${requestScope.manager.username}</span> , 欢迎你!</p>
        <a href="login.jsp">退出</a>
    </div>
</header>
<!--时间-->
<section class="publicTime">
    <span id="time">2015年1月1日 11:11  星期一</span>
    <a href="#">温馨提示:为了能正常浏览,请使用高版本浏览器!(IE10+)</a>
</section>
<!--主体内容-->
<section class="publicMian ">
    <div class="left">
        <h2 class="leftH2"><span class="span1"></span>功能列表 <span></span></h2>
        <nav>
            <ul class="list">
                <li id="active"><a href="billList">账单管理</a></li>
                <li><a href="providerList">供应商管理</a></li>
                <li><a href="userList">用户管理</a></li>
                <li><a href="password.jsp">密码修改</a></li>
                <li><a href="login.jsp">退出系统</a></li>
            </ul>
        </nav>
    </div>
    <div class="right">
        <div class="location">
            <strong>你现在所在的位置是:</strong>
            <span>账单管理页面</span>
        </div>
        <form action="billList" method="post">
        <div class="search">
            <span>商品名称:</span>
            <input type="text" placeholder="请输入商品的名称" name="name" />

            <span>供应商:</span>
            <select name="tigong" >
                <option value="null">--请选择--</option>
                <c:forEach items="${providerNameList}" var="pname">
                    <option value="${pname.name}">${pname.name}</option>
                </c:forEach>

            </select>

            <span>是否付款:</span>
            <select name="fukuan">
                <option value="null">--请选择--</option>
                <option value="1">已付款</option>
                <option value="0">未付款</option>
            </select>
            <input type="submit" value="查询" style="width: 100px;height: 32px"/>
            <a href="addproname">添加订单</a>
        </div>
        </form>

        <!--账单表格 样式和供应商公用-->
        <table class="providerTable" cellpadding="0" cellspacing="0">
            <tr class="firstTr">
                <th width="10%">账单id</th>
                <th width="20%">商品名称</th>
                <th width="10%">供应商</th>
                <th width="10%">账单金额</th>
                <th width="10%">是否付款</th>
                <th width="10%">创建时间</th>
                <th width="30%">操作</th>
            </tr>
            <c:forEach items="${billList}" var="bill">
                <tr>
                    <td>${bill.id}</td>
                    <td>${bill.name}</td>
                    <td>${bill.providerName}</td>
                    <td>${bill.price}</td>
                    <c:if test="${bill.pay==0}">
                        <td>未支付</td>
                    </c:if>
                    <c:if test="${bill.pay==1}">
                        <td>已支付</td>
                    </c:if>
                    <td>${bill.time}</td>
                    <td>
                        <a href="billView?id=${bill.id}"><img src="img/read.png" alt="查看" title="查看"/></a>
                        <a href="toupdatebill?id=${bill.id}"><img src="img/xiugai.png" alt="修改" title="修改"/></a>
                        <a href="#"  class="removeBill"><img src="img/schu.png" alt="删除" title="删除"/></a>
                    </td>
                </tr>
            </c:forEach>
        </table>
        <div style="float:right;padding:10px">
            <a href="billList?pn=1">首页</a>&nbsp;&nbsp;
            <%--第1页没有上一页--%>
            <c:if test="${requestScope.page.pageNum gt 1}">
                <a href="billList?pn=${requestScope.page.pageNum-1}">上一页</a>&nbsp;&nbsp;
            </c:if>
            <c:forEach begin="1" end="${requestScope.page.totalPages}" varStatus="i">
                <a href="billList?pn=${i.count}">第${i.count}页</a>&nbsp;
            </c:forEach>
            <%--最后一页没有下一页--%>
            <c:if test="${requestScope.page.pageNum lt requestScope.page.totalPages}">
                <a href="billList?pn=${requestScope.page.pageNum+1}">下一页</a>&nbsp;&nbsp;
            </c:if>
            <a href="billList?pn=${requestScope.page.totalPages}">末页</a>&nbsp;
        </div>
    </div>
</section>

<!--点击删除按钮后弹出的页面-->
<div class="zhezhao"></div>
<div class="remove" id="removeBi">
    <div class="removerChid">
        <h2>提示</h2>
        <div class="removeMain">
            <p>你确定要删除该订单吗?</p>
            <a href="#" onclick="del(id)" id="yes">确定</a>
            <a href="#" id="no">取消</a>
        </div>
    </div>
</div>

<footer class="footer">
</footer>

<script src="js/jquery.js"></script>
<script src="js/js.js"></script>
<script src="js/time.js.bak"></script>
<script>

    function del(id) {

        $.ajax({
            url:"${pageContext.request.contextPath}/deleteBill?id="+id,
            type:"get",
            success:function (ret) {

            }
        })

    }
</script>
</body>
</html>

账单更新

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>超市账单管理系统</title>
    <link rel="stylesheet" href="css/public.css"/>
    <link rel="stylesheet" href="css/style.css"/>
</head>
<body>
<!--头部-->
<header class="publicHeader">
    <h1>超市账单管理系统</h1>

    <div class="publicHeaderR">
        <p><span>下午好!</span><span style="color: #fff21b"> ${manager.username}</span> , 欢迎你!</p>
        <a href="login.jsp">退出</a>
    </div>
</header>
<!--时间-->
<section class="publicTime">
    <span id="time">20151111:11  星期一</span>
    <a href="#">温馨提示:为了能正常浏览,请使用高版本浏览器!(IE10+</a>
</section>
<!--主体内容-->
<section class="publicMian ">
    <div class="left">
        <h2 class="leftH2"><span class="span1"></span>功能列表 <span></span></h2>
        <nav>
            <ul class="list">
                <li id="active"><a href="billList">账单管理</a></li>
                <li><a href="providerList">供应商管理</a></li>
                <li><a href="userList">用户管理</a></li>
                <li><a href="password.jsp">密码修改</a></li>
                <li><a href="login.jsp">退出系统</a></li>
            </ul>
        </nav>
    </div>
    <div class="right">
        <div class="location">
            <strong>你现在所在的位置是:</strong>
            <span>账单管理页面 >> 订单修改页面</span>
        </div>
        <div class="providerAdd">
            <form action="updatebill">
                <input type="hidden" name="id" value="${bill.id}">
                <div>
                    <label for="providerName">商品名称:</label>
                    <input type="text" name="providerName" id="providerName" value="${bill.name}"/>
                    <span >*</span>
                </div>
                <div>
                    <label for="people">商品单位:</label>
                    <input type="text" name="people" id="people" value="${bill.unit}"/>
                    <span>*</span>

                </div>
                <div>
                    <label for="phone">商品数量:</label>
                    <input type="text" name="phone" id="phone" value="${bill.num}"/>
                    <span>*</span>
                </div>
                <div>
                    <label for="address">总金额:</label>
                    <input type="text" name="address" id="address" value="${bill.price}"/>
                    <span>*</span>
                </div>

                <div>
                    <label >供应商:</label>
                    <select name="supplier" >
                        <option value="">--请选择相应的提供商--</option>
                        <c:forEach items="${requestScope.providerNameList}" var="pname">
                            <c:if test="${bill.providerName==pname.name}">
                                <option value="${pname.name}" selected>${pname.name}</option>
                            </c:if>
                            <option value="${pname.name}">${pname.name}</option>
                        </c:forEach>
                    </select>
                    <span>*</span>


                </div>
                <div>
                    <label >是否付款:</label>
                    <c:if test="${bill.pay==0}">
                        <input type="radio" name="zhifu" checked value="0"/>未付款
                        <input type="radio" name="zhifu" value="1"/>已付款
                    </c:if>
                    <c:if test="${bill.pay==1}">
                        <input type="radio" name="zhifu" value="0"/>未付款
                        <input type="radio" name="zhifu" checked  value="1"/>已付款
                    </c:if>
                </div>
                <div class="providerAddBtn">
                    <!--<a href="#">保存</a>-->
                    <!--<a href="billList.html">返回</a>-->
                    <input type="submit" value="保存" onclick="history.back(-1)"/>
                    <input type="button" value="返回" onclick="history.back(-1)"/>
                </div>
            </form>
        </div>

    </div>
</section>
<footer class="footer">
</footer>
<script src="js/time.js"></script>

</body>
</html>

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值