op_buy.java~1~
上传用户:sxlinghang
上传日期:2022-07-20
资源大小:1405k
文件大小:17k
源码类别:

数据库编程

开发平台:

Java

  1. package bookshop.run;
  2. /**
  3.  * <p>Title: </p>
  4.  * <p>Description: </p>
  5.  * <p>Copyright: Copyright (c) 2004</p>
  6.  * <p>Company: </p>
  7.  * @author not attributable
  8.  * @version 1.0
  9.  */
  10. import java.sql.*;
  11. import java.util.Vector;
  12. import bookshop.util.*;
  13. import bookshop.book.*;
  14. import javax.servlet.http.*;
  15. public class op_buy extends DataBase {
  16.     private javax.servlet.http.HttpServletRequest request; //建立页面请求
  17.     private HttpSession session; //页面的session;
  18.     private boolean sqlflag = true; //对接收到的数据是否正确
  19.     private Vector purchaselist; //显示图书列表向量数组
  20.     private Vector allorder; //订购单列表
  21.     private Vector order_list; //订单清单列表
  22.     private int booknumber = 0; //购书总数量
  23.     private float all_price = 0; //购书总价钱
  24.     private boolean isEmpty = false; //库中的书数量是否够购买的数
  25.     private int leaveBook = 0; //库存数量
  26.     private String orderId = ""; //用户订单号
  27.     private boolean isLogin = true; //用户是否登录!
  28.     private int page = 1; //显示的页码
  29.     private int pageSize = 15; //每页显示的订单数
  30.     private int pageCount = 0; //页面总数
  31.     private long recordCount = 0; //查询的记录总数
  32.     public op_buy() {
  33.       super();
  34.   }
  35.     public Vector getPurchaselist() {
  36.       return purchaselist;
  37.     }
  38.     public Vector getOrder_list() {
  39.       return order_list;
  40.     }
  41.     public Vector getAllorder() {
  42.       return allorder;
  43.     }
  44.     public boolean getSqlflag() {
  45.       return sqlflag;
  46.     }
  47.     public void setIsEmpty(boolean flag) {
  48.       isEmpty = flag;
  49.     }
  50.     public boolean getIsEmpty() {
  51.       return isEmpty;
  52.     }
  53.     public void setLeaveBook(int bknum) {
  54.       leaveBook = bknum;
  55.     }
  56.     public int getLeaveBook() {
  57.       return leaveBook;
  58.     }
  59.     public void setOrderId(String newId) {
  60.       orderId = newId;
  61.     }
  62.     public String getOrderId() {
  63.       return orderId;
  64.     }
  65.     public void setIsLogin(boolean flag) {
  66.       isLogin = flag;
  67.     }
  68.     public boolean getIsLogin() {
  69.       return isLogin;
  70.     }
  71.     public int getPage() { //显示的页码
  72.       return page;
  73.     }
  74.     public void setPage(int newpage) {
  75.       page = newpage;
  76.     }
  77.     public int getPageSize() { //每页显示的图书数
  78.       return pageSize;
  79.     }
  80.     public void setPageSize(int newpsize) {
  81.       pageSize = newpsize;
  82.     }
  83.     public int getPageCount() { //页面总数
  84.       return pageCount;
  85.     }
  86.     public void setPageCount(int newpcount) {
  87.       pageCount = newpcount;
  88.     }
  89.     public long getRecordCount() {
  90.       return recordCount;
  91.     }
  92.     public void setRecordCount(long newrcount) {
  93.       recordCount = newrcount;
  94.     }
  95.     public String getGbk(String str) {
  96.       try {
  97.         return new String(str.getBytes("ISO8859-1"));
  98.       }
  99.       catch (Exception e) {
  100.         return str;
  101.       }
  102.     }
  103.     public String getSql() {
  104.       sqlStr = "select id,classname from book order by id";
  105.       return sqlStr;
  106.     }
  107.     /**
  108.      * 往购物车中添加选购的图书
  109.      * @param newrequest
  110.      * @return
  111.      */
  112.     public boolean addnew(HttpServletRequest newrequest) {
  113.       request = newrequest;
  114.       String ID = request.getParameter("bookid");
  115.       String Amount = request.getParameter("amount");
  116.       long bookid = 0;
  117.       int amount = 0;
  118.       try {
  119.         bookid = Long.parseLong(ID);
  120.         amount = Integer.parseInt(Amount);
  121.       }
  122.       catch (Exception e) {
  123.         return false;
  124.       }
  125.       if (amount < 1)
  126.         return false;
  127.       session = request.getSession(false);
  128.       if (session == null) {
  129.         return false;
  130.       }
  131.       purchaselist = (Vector) session.getAttribute("shopcar");
  132.       sqlStr = "select leav_number from book where id=" + bookid;
  133.       try {
  134.         DataBase db = new DataBase();
  135.                   db.connect();
  136.                   stmt = db.conn.createStatement ();
  137.         rs = stmt.executeQuery(sqlStr);
  138.         if (rs.next()) {
  139.           if (amount > rs.getInt(1)) {
  140.             leaveBook = rs.getInt(1);
  141.             isEmpty = true;
  142.             return false;
  143.           }
  144.         }
  145.         rs.close();
  146.       }
  147.       catch (SQLException e) {
  148.         return false;
  149.       }
  150.       allorder iList = new allorder();
  151.       iList.setBookNo(bookid);
  152.       iList.setAmount(amount);
  153.       boolean match = false; //是否购买过该图书
  154.       if (purchaselist == null) { //第一次购买
  155.         purchaselist = new Vector();
  156.         purchaselist.addElement(iList);
  157.       }
  158.       else { // 不是第一次购买
  159.         for (int i = 0; i < purchaselist.size(); i++) {
  160.           allorder itList = (allorder) purchaselist.elementAt(i);
  161.           if (iList.getBookNo() == itList.getBookNo()) {
  162.             itList.setAmount(itList.getAmount() + iList.getAmount());
  163.             purchaselist.setElementAt(itList, i);
  164.             match = true;
  165.             break;
  166.           } //if name matches结束
  167.         } // for循环结束
  168.         if (!match)
  169.           purchaselist.addElement(iList);
  170.       }
  171.       session.setAttribute("shopcar", purchaselist);
  172.       return true;
  173.     }
  174.     /**
  175.      * 修改已经放进购物车的数据
  176.      * @param newrequest
  177.      * @return
  178.      */
  179.     public boolean modiShoper(HttpServletRequest newrequest) {
  180.       request = newrequest;
  181.       String ID = request.getParameter("bookid");
  182.       String Amount = request.getParameter("amount");
  183.       long bookid = 0;
  184.       int amount = 0;
  185.       try {
  186.         bookid = Long.parseLong(ID);
  187.         amount = Integer.parseInt(Amount);
  188.       }
  189.       catch (Exception e) {
  190.         return false;
  191.       }
  192.       if (amount < 1)
  193.         return false;
  194.       session = request.getSession(false);
  195.       if (session == null) {
  196.         return false;
  197.       }
  198.       purchaselist = (Vector) session.getAttribute("shopcar");
  199.       if (purchaselist == null) {
  200.         return false;
  201.       }
  202.       sqlStr = "select leav_number from book where id=" + bookid;
  203.       try {
  204.         DataBase db = new DataBase();
  205.                   db.connect();
  206.                   stmt = db.conn.createStatement ();
  207.         rs = stmt.executeQuery(sqlStr);
  208.         if (rs.next()) {
  209.           if (amount > rs.getInt(1)) {
  210.             leaveBook = rs.getInt(1);
  211.             isEmpty = true;
  212.             return false;
  213.           }
  214.         }
  215.         rs.close();
  216.       }
  217.       catch (SQLException e) {
  218.         return false;
  219.       }
  220.       for (int i = 0; i < purchaselist.size(); i++) {
  221.         allorder itList = (allorder) purchaselist.elementAt(i);
  222.         if (bookid == itList.getBookNo()) {
  223.           itList.setAmount(amount);
  224.           purchaselist.setElementAt(itList, i);
  225.           break;
  226.         } //if name matches结束
  227.       } // for循环结束
  228.       return true;
  229.     }
  230.     /**
  231.      *删除购物车中数据
  232.      * @param newrequest
  233.      * @return
  234.      */
  235.     public boolean delShoper(HttpServletRequest newrequest) {
  236.       request = newrequest;
  237.       String ID = request.getParameter("bookid");
  238.       long bookid = 0;
  239.       try {
  240.         bookid = Long.parseLong(ID);
  241.       }
  242.       catch (Exception e) {
  243.         return false;
  244.       }
  245.       session = request.getSession(false);
  246.       if (session == null) {
  247.         return false;
  248.       }
  249.       purchaselist = (Vector) session.getAttribute("shopcar");
  250.       if (purchaselist == null) {
  251.         return false;
  252.       }
  253.       for (int i = 0; i < purchaselist.size(); i++) {
  254.         allorder itList = (allorder) purchaselist.elementAt(i);
  255.         if (bookid == itList.getBookNo()) {
  256.           purchaselist.removeElementAt(i);
  257.           break;
  258.         } //if name matches结束
  259.       } // for循环结束
  260.       return true;
  261.     }
  262.     /**
  263.      * 提交购物车
  264.      * @param newrequest
  265.      * @return
  266.      * @throws java.lang.Exception
  267.      */
  268.     public boolean payout(HttpServletRequest newrequest) throws Exception {
  269.       request = newrequest;
  270.       session = request.getSession(false);
  271.     // System.out.print("f1");
  272.       if (session == null) {
  273.         return false;
  274.       }
  275.       String Userid = (String) session.getAttribute("userid"); //取得用户ID号
  276.       long userid = 0;
  277.       if (Userid == null || Userid.equals("")) {
  278.         isLogin = false;
  279.         return false;
  280.       }
  281.       else {
  282.         try {
  283.           userid = Long.parseLong(Userid);
  284.         }
  285.         catch (NumberFormatException e) {
  286.         //  System.out.print(e.getMessage());
  287.           return false;
  288.         }
  289.       }
  290.   System.out.println("f2");
  291.       purchaselist = (Vector) session.getAttribute("shopcar");
  292.       if (purchaselist == null || purchaselist.size() < 0) {
  293.         return false;
  294.       }
  295.       String Content = request.getParameter("content");
  296.       if (Content == null) {
  297.         Content = "";
  298.       }
  299.      //   System.out.print("f3");
  300.       Content = getGbk(Content);
  301.       String IP = request.getRemoteAddr();
  302.       String TotalPrice = request.getParameter("totalprice");
  303.   //System.out.println("f4");
  304.       sqlStr = "insert into orders (orderId,UserId,SubmitTime,ConsignmentTime,TotalPrice,content,IPAddress,IsPayoff,IsSales) values (";
  305.       orderId="000"+userid;
  306.       sqlStr = sqlStr  + orderId + ",'";
  307.       sqlStr = sqlStr + userid + "',now(),now()+7,'";
  308.       sqlStr = sqlStr + TotalPrice + "','";
  309.       sqlStr = sqlStr + dataFormat.toSql(Content) + "','";
  310.       sqlStr = sqlStr + IP + "',1,1)";
  311.     //  System.out.print(sqlStr);
  312.       try {
  313.         stmt.execute(sqlStr);
  314.         sqlStr = "select max(id) from orders where UserId = " + userid;
  315.         rs = stmt.executeQuery(sqlStr);
  316.         long indentid = 0;
  317.         while (rs.next()) {
  318.           indentid = rs.getLong(1);
  319.         }
  320.         rs.close();
  321.         for (int i = 0; i < purchaselist.size(); i++) {
  322.           allorder iList = (allorder) purchaselist.elementAt(i);
  323.           sqlStr =
  324.               "insert into allorder (orderId,BookNo,Amount) values (";
  325.           sqlStr = sqlStr + orderId + ",'";
  326.           sqlStr = sqlStr + iList.getBookNo() + "','";
  327.           sqlStr = sqlStr + iList.getAmount() + "')";
  328.           stmt.execute(sqlStr);
  329.           sqlStr = "update book set leav_number=leav_number - " +
  330.               iList.getAmount() + " where id = " + iList.getBookNo();
  331.           stmt.execute(sqlStr);
  332.         }
  333.         return true;
  334.       }
  335.       catch (SQLException e) {
  336.         System.out.print(e.getMessage());
  337.         return false;
  338.       }
  339.     }
  340.     /**
  341.      * 查询指定用户id的所有订单
  342.      * @param userid
  343.      * @return
  344.      */
  345.     public boolean getOrder(long userid) {
  346.       sqlStr = "select * from orders where userid = '" + userid +
  347.           "' order by id desc";
  348.       try {
  349.         DataBase db = new DataBase();
  350.                   db.connect();
  351.                   stmt = db.conn.createStatement ();
  352.         rs = stmt.executeQuery(sqlStr);
  353.         allorder = new Vector();
  354.         while (rs.next()) {
  355.           order ind = new order();
  356.           ind.setId(rs.getLong("id"));
  357.           ind.setOrderId(rs.getString("orderId"));
  358.           ind.setUserId(rs.getLong("userid"));
  359.           ind.setSubmitTime(rs.getString("submitTime"));
  360.           ind.setConsignmentTime(rs.getString("ConsignmentTime"));
  361.           ind.setTotalPrice(rs.getFloat("TotalPrice"));
  362.           ind.setContent(rs.getString("content"));
  363.           ind.setIPAddress(rs.getString("IpAddress"));
  364.           if (rs.getInt("IsPayoff") == 1)
  365.             ind.setIsPayoff(false);
  366.           else
  367.             ind.setIsPayoff(true);
  368.           if (rs.getInt("IsSales") == 1)
  369.             ind.setIsSales(false);
  370.           else
  371.             ind.setIsSales(true);
  372.           allorder.addElement(ind);
  373.         }
  374.         rs.close();
  375.         return true;
  376.       }
  377.       catch (SQLException e) {
  378.         return false;
  379.       }
  380.     }
  381.     /**
  382.      * 查询指定订单编号的订单
  383.      * @param iid
  384.      * @return
  385.      */
  386.     public boolean getSinggleOrder(long iid) {
  387.       sqlStr = "select * from orders where id = '" + iid +
  388.           "' order by id desc";
  389.       try {
  390.         DataBase db = new DataBase();
  391.                   db.connect();
  392.                   stmt = db.conn.createStatement ();
  393.         rs = stmt.executeQuery(sqlStr);
  394.         allorder = new Vector();
  395.         while (rs.next()) {
  396.           order ind = new order();
  397.           ind.setId(rs.getLong("id"));
  398.           ind.setOrderId(rs.getString("orderId"));
  399.           ind.setUserId(rs.getLong("userid"));
  400.           ind.setSubmitTime(rs.getString("submitTime"));
  401.           ind.setConsignmentTime(rs.getString("ConsignmentTime"));
  402.           ind.setTotalPrice(rs.getFloat("TotalPrice"));
  403.           ind.setContent(rs.getString("content"));
  404.           ind.setIPAddress(rs.getString("IpAddress"));
  405.           if (rs.getInt("IsPayoff") == 1)
  406.             ind.setIsPayoff(false);
  407.           else
  408.             ind.setIsPayoff(true);
  409.           if (rs.getInt("IsSales") == 1)
  410.             ind.setIsSales(false);
  411.           else
  412.             ind.setIsSales(true);
  413.           allorder.addElement(ind);
  414.         }
  415.         rs.close();
  416.         return true;
  417.       }
  418.       catch (SQLException e) {
  419.         return false;
  420.       }
  421.     }
  422.     /**
  423.      * 查询书店的所有订单数据
  424.      * @return
  425.      */
  426.     public boolean getOrder() {
  427.       sqlStr = "select count(*) from orders"; //取出记录数
  428.       int rscount = pageSize;
  429.       try {
  430.         DataBase db = new DataBase();
  431.                   db.connect();
  432.                   stmt = db.conn.createStatement ();
  433.         ResultSet rs1 = stmt.executeQuery(sqlStr);
  434.         if (rs1.next())
  435.           recordCount = rs1.getInt(1);
  436.         rs1.close();
  437.       }
  438.       catch (SQLException e) {
  439.         return false;
  440.       }
  441.       //设定有多少pageCount
  442.       if (recordCount < 1)
  443.         pageCount = 0;
  444.       else
  445.         pageCount = (int) (recordCount - 1) / pageSize + 1;
  446.         //检查查看的页面数是否在范围内
  447.       if (page < 1)
  448.         page = 1;
  449.       else if (page > pageCount)
  450.         page = pageCount;
  451.       rscount = (int) recordCount % pageSize; // 最后一页记录数
  452.       //sql为倒序取值
  453.       sqlStr = "select  * from orders ";
  454.       if (page == 1) {
  455.         sqlStr = sqlStr + " order by Id desc";
  456.       }
  457.       else {
  458.         sqlStr = sqlStr + " order by Id desc  limit "+(recordCount - pageSize * page) +","+ (recordCount - pageSize * (page - 1));
  459.       }
  460.       try {
  461.         DataBase db = new DataBase();
  462.                   db.connect();
  463.                   stmt = db.conn.createStatement ();
  464.         rs = stmt.executeQuery(sqlStr);
  465.         allorder = new Vector();
  466.         while (rs.next()) {
  467.           order ind = new order();
  468.           ind.setId(rs.getLong("id"));
  469.           ind.setOrderId(rs.getString("orderid"));
  470.           ind.setUserId(rs.getLong("userid"));
  471.           ind.setSubmitTime(rs.getString("submitTime"));
  472.           ind.setConsignmentTime(rs.getString("ConsignmentTime"));
  473.           ind.setTotalPrice(rs.getFloat("TotalPrice"));
  474.           ind.setContent(rs.getString("content"));
  475.           ind.setIPAddress(rs.getString("IpAddress"));
  476.           if (rs.getInt("IsPayoff") == 1)
  477.             ind.setIsPayoff(false);
  478.           else
  479.             ind.setIsPayoff(true);
  480.           if (rs.getInt("IsSales") == 1)
  481.             ind.setIsSales(false);
  482.           else
  483.             ind.setIsSales(true);
  484.           allorder.addElement(ind);
  485.         }
  486.         rs.close();
  487.         return true;
  488.       }
  489.       catch (SQLException e) {
  490.         System.out.println(e);
  491.         return false;
  492.       }
  493.     }
  494.     /**
  495.      * 获得订单列表
  496.      * @param nid
  497.      * @return
  498.      */
  499.     public boolean getAllorder(long nid) {
  500.       sqlStr = "select * from allorder where orderId = '" + nid + "'";
  501.       try {
  502.         DataBase db = new DataBase();
  503.                   db.connect();
  504.                   stmt = db.conn.createStatement ();
  505.         rs = stmt.executeQuery(sqlStr);
  506.         order_list = new Vector();
  507.         while (rs.next()) {
  508.           allorder identlist = new allorder();
  509.           identlist.setId(rs.getLong("id"));
  510.           identlist.setOrderId(rs.getLong("orderId"));
  511.           identlist.setBookNo(rs.getLong("BookNo"));
  512.           identlist.setAmount(rs.getInt("Amount"));
  513.           order_list.addElement(identlist);
  514.         }
  515.         rs.close();
  516.         return true;
  517.       }
  518.       catch (SQLException e) {
  519.         return false;
  520.       }
  521.     }
  522.     /**
  523.      * 修改订单,修改付款标志
  524.      * @param res
  525.      * @return
  526.      */
  527.     public boolean update(HttpServletRequest res) {
  528.       request = res;
  529.       int payoff = 1;
  530.       int sales = 1;
  531.       long orderId = 0;
  532.       try {
  533.         payoff = Integer.parseInt(request.getParameter("payoff"));
  534.         sales = Integer.parseInt(request.getParameter("sales"));
  535.         orderId = Long.parseLong(request.getParameter("orderId"));
  536.         sqlStr = "update orders set IsPayoff = '" + payoff + "',IsSales='" +
  537.             sales + "' where id =" + orderId;
  538.         DataBase db = new DataBase();
  539.                   db.connect();
  540.                   stmt = db.conn.createStatement ();
  541.         stmt.execute(sqlStr);
  542.         return true;
  543.       }
  544.       catch (Exception e) {
  545.         return false;
  546.       }
  547.     }
  548.     /**
  549.      * 删除订单
  550.      * @param id
  551.      * @return
  552.      */
  553.     public boolean delete(long id) {
  554.       try {
  555.         DataBase db = new DataBase();
  556.                   db.connect();
  557.                   stmt = db.conn.createStatement ();
  558.         sqlStr = "delete from allorder where orderId =" + id;
  559.         stmt.execute(sqlStr);
  560.         sqlStr = "delete from orders where id= " + id;
  561.         stmt.execute(sqlStr);
  562.         return true;
  563.       }
  564.       catch (SQLException e) {
  565.         return false;
  566.       }
  567.     }
  568.   }