经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MySQL » 查看文章
大项目之网上书城(九)——订单Demo
来源:cnblogs  作者:return_false  时间:2019/6/24 8:47:01  对本文有异议

大项目之网上书城(九)——订单Demo

主要改动

加了创建订单,为订单付款,删除订单。

1.OrderServiceImpl

代码

有添加、删除、付款、根据是否付款查找。还加了添加收货信息登记。

  1. package cn.edu.bdu.mc.services.impls;
  2. import java.sql.SQLException;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.UUID;
  6. import cn.edu.bdu.mc.beans.Book;
  7. import cn.edu.bdu.mc.beans.Order;
  8. import cn.edu.bdu.mc.beans.Orderitem;
  9. import cn.edu.bdu.mc.daos.BookDao;
  10. import cn.edu.bdu.mc.daos.OrderDao;
  11. import cn.edu.bdu.mc.daos.OrderitemDao;
  12. import cn.edu.bdu.mc.daos.impls.BookDaoImpl;
  13. import cn.edu.bdu.mc.daos.impls.OrderDaoImpl;
  14. import cn.edu.bdu.mc.daos.impls.OrderitemDaoImpl;
  15. import cn.edu.bdu.mc.services.OrderService;
  16. public class OrderServiceImpl implements OrderService {
  17. private OrderDao orderDao = new OrderDaoImpl();
  18. private OrderitemDao orderitemDao = new OrderitemDaoImpl();
  19. private BookDao bookDao = new BookDaoImpl();
  20. @Override
  21. public boolean addOrder(String order_id, int user_id, String name, String address, String phone, String[] book_ids) throws SQLException {
  22. // TODO Auto-generated method stub
  23. List<Book>books = new ArrayList<Book>();
  24. for (String book_id : book_ids) {
  25. Book book = bookDao.findBookById(Integer.parseInt(book_id));
  26. books.add(book);
  27. //如果数量不够了就本次购买失败
  28. if(book.getCount()==0) {
  29. return false;
  30. }
  31. }
  32. Order order = new Order();
  33. order.setUser_id(user_id);
  34. order.setReciver_name(name);
  35. order.setReciver_phone(phone);
  36. order.setReciver_address(address);
  37. order.setOrder_id(order_id);
  38. orderDao.addOrder(order);
  39. for (Book book : books) {
  40. Orderitem orderitem = new Orderitem();
  41. orderitem.setBook_id(book.getBook_id());
  42. orderitem.setOrder_id(order_id);
  43. orderitem.setCount(1);
  44. orderitem.setPrice(book.getPrice());
  45. book.setCount(book.getCount()-1);
  46. bookDao.update(book);
  47. orderitemDao.addOrderitem(orderitem);
  48. }
  49. return true;
  50. }
  51. @Override
  52. public void AfterPay(String order_id) throws SQLException {
  53. Order order = orderDao.findOrderById(order_id);
  54. order.setPaystate(1);
  55. orderDao.update(order);
  56. }
  57. @Override
  58. public Order delById(String order_id) throws SQLException {
  59. // TODO Auto-generated method stub
  60. Order order = orderDao.delById(order_id);
  61. orderitemDao.delById(order_id);
  62. return order;
  63. }
  64. @Override
  65. public List<Order> findNotPayByUser_id(int user_id) throws SQLException {
  66. // TODO Auto-generated method stub
  67. return orderDao.findOrderByUser_id(user_id, 0);
  68. }
  69. @Override
  70. public List<Order> findAreadyPayByUser_id(int user_id) throws SQLException {
  71. // TODO Auto-generated method stub
  72. return orderDao.findOrderByUser_id(user_id, 1);
  73. }
  74. }

2.OrderDaoImpl

代码

目前有添加、删除、根据order_id查找和根据user_id查找

  1. package cn.edu.bdu.mc.daos.impls;
  2. import java.sql.SQLException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. import java.util.List;
  6. import javax.sql.DataSource;
  7. import org.apache.commons.dbutils.QueryRunner;
  8. import org.apache.commons.dbutils.handlers.BeanHandler;
  9. import org.apache.commons.dbutils.handlers.BeanListHandler;
  10. import cn.edu.bdu.mc.beans.Order;
  11. import cn.edu.bdu.mc.daos.OrderDao;
  12. import cn.edu.bdu.mc.utils.JDBCUtil;
  13. public class OrderDaoImpl implements OrderDao {
  14. private DataSource dataSource = JDBCUtil.getDataSource();
  15. private QueryRunner queryRunner = new QueryRunner(dataSource);
  16. @Override
  17. public void addOrder(Order order) throws SQLException {
  18. // TODO Auto-generated method stub
  19. String sql = "insert into `order`(user_id,order_id,reciver_name,reciver_phone,reciver_address,paystate,money,order_time) values(?,?,?,?,?,0,0,?)";
  20. Date date = new Date();
  21. SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
  22. String date1 = dateFormat.format(date);
  23. queryRunner.update(sql,order.getUser_id(),order.getOrder_id(),order.getReciver_name(),order.getReciver_phone(),order.getReciver_address(),date1);
  24. }
  25. @Override
  26. public void update(Order order) throws SQLException {
  27. // TODO Auto-generated method stub
  28. String sql = "update `order` set user_id = ?,reciver_name = ?,reciver_phone = ?,reciver_address = ?,paystate = ?,money = ?,order_time = ?";
  29. queryRunner.update(sql,order.getUser_id(),order.getReciver_name(),order.getReciver_phone(),order.getReciver_address(),order.getPaystate(),order.getMoney(),order.getOrder_time());
  30. }
  31. @Override
  32. public Order findOrderById(String order_id) throws SQLException {
  33. // TODO Auto-generated method stub
  34. String sql = "select * from `order` where order_id = ?";
  35. return queryRunner.query(sql, new BeanHandler<Order>(Order.class), order_id);
  36. }
  37. @Override
  38. public Order delById(String order_id) throws SQLException {
  39. Order order = findOrderById(order_id);
  40. String sql = "delete from `order` where order_id = ?";
  41. queryRunner.update(sql, order_id);
  42. return order;
  43. }
  44. @Override
  45. public List<Order> findOrderByUser_id(int user_id, int paystate) throws SQLException {
  46. // TODO Auto-generated method stub
  47. String sql = "select * from `order` where user_id = ? and paystate = ?";
  48. return queryRunner.query(sql, new BeanListHandler<Order>(Order.class), user_id, paystate);
  49. }
  50. }

3.OrderitemDaoImpl

代码

目前有添加和删除

  1. package cn.edu.bdu.mc.daos.impls;
  2. import java.sql.SQLException;
  3. import javax.sql.DataSource;
  4. import org.apache.commons.dbutils.QueryRunner;
  5. import cn.edu.bdu.mc.beans.Orderitem;
  6. import cn.edu.bdu.mc.daos.OrderitemDao;
  7. import cn.edu.bdu.mc.utils.JDBCUtil;
  8. public class OrderitemDaoImpl implements OrderitemDao {
  9. private DataSource dataSource = JDBCUtil.getDataSource();
  10. private QueryRunner queryRunner = new QueryRunner(dataSource);
  11. @Override
  12. public void addOrderitem(Orderitem orderitem) throws SQLException {
  13. // TODO Auto-generated method stub
  14. String sql = "insert into orderitem values (?,?,?,?)";
  15. queryRunner.update(sql,orderitem.getOrder_id(),orderitem.getBook_id(),orderitem.getCount(),orderitem.getPrice());
  16. }
  17. @Override
  18. public void delById(String order_id) throws SQLException {
  19. // TODO Auto-generated method stub
  20. String sql = "delete from `order` where order_id = ?";
  21. queryRunner.update(sql, order_id);
  22. }
  23. }

4.orderitem_insert触发器

代码

orderitem中每增加一项,将他对应的order_id的订单的钱增加上他的书的价格乘以数量。

  1. DROP TRIGGER IF EXISTS `orderitem_insert`;
  2. DELIMITER ;;
  3. CREATE TRIGGER `orderitem_insert` AFTER INSERT ON `orderitem` FOR EACH ROW begin
  4. update `order` set money = money + new.price * new.count where order_id = new.order_id;
  5. end
  6. ;;
  7. DELIMITER ;

5.DelOrderServlet

代码

  1. package cn.edu.bdu.mc.servlets;
  2. import java.io.IOException;
  3. import java.sql.SQLException;
  4. import java.util.List;
  5. import javax.servlet.ServletException;
  6. import javax.servlet.annotation.WebServlet;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import cn.edu.bdu.mc.beans.Order;
  11. import cn.edu.bdu.mc.services.OrderService;
  12. import cn.edu.bdu.mc.services.impls.OrderServiceImpl;
  13. /**
  14. * Servlet implementation class DelOrderServlet
  15. */
  16. @WebServlet("/DelOrder")
  17. public class DelOrderServlet extends HttpServlet {
  18. private static final long serialVersionUID = 1L;
  19. /**
  20. * @see HttpServlet#HttpServlet()
  21. */
  22. public DelOrderServlet() {
  23. super();
  24. // TODO Auto-generated constructor stub
  25. }
  26. /**
  27. * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  28. */
  29. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  30. try {
  31. String order_id = request.getParameter("order_id");
  32. OrderService orderService = new OrderServiceImpl();
  33. Order order = orderService.delById(order_id);
  34. response.sendRedirect(request.getContextPath()+"/client/order.jsp");
  35. } catch (SQLException e) {
  36. // TODO Auto-generated catch block
  37. e.printStackTrace();
  38. }
  39. }
  40. /**
  41. * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  42. */
  43. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  44. // TODO Auto-generated method stub
  45. doGet(request, response);
  46. }
  47. }

6.NewOrderServlet

代码

  1. package cn.edu.bdu.mc.servlets;
  2. import java.io.IOException;
  3. import java.sql.SQLException;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import java.util.Map;
  7. import java.util.UUID;
  8. import javax.servlet.ServletException;
  9. import javax.servlet.annotation.WebServlet;
  10. import javax.servlet.http.HttpServlet;
  11. import javax.servlet.http.HttpServletRequest;
  12. import javax.servlet.http.HttpServletResponse;
  13. import javax.servlet.http.HttpSession;
  14. import cn.edu.bdu.mc.beans.Order;
  15. import cn.edu.bdu.mc.beans.User;
  16. import cn.edu.bdu.mc.services.OrderService;
  17. import cn.edu.bdu.mc.services.impls.OrderServiceImpl;
  18. /**
  19. * Servlet implementation class NewOrderServlet
  20. */
  21. @WebServlet("/NewOrder")
  22. public class NewOrderServlet extends HttpServlet {
  23. private static final long serialVersionUID = 1L;
  24. /**
  25. * @see HttpServlet#HttpServlet()
  26. */
  27. public NewOrderServlet() {
  28. super();
  29. // TODO Auto-generated constructor stub
  30. }
  31. /**
  32. * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  33. */
  34. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  35. if(request.getSession().getAttribute("shouhuo")==null) {
  36. response.sendRedirect(request.getContextPath()+"/client/shouhuo.jsp");
  37. }else {
  38. try {
  39. String[] book_ids = request.getParameter("book_id_list").split("#");
  40. User user = (User) request.getSession().getAttribute("user");
  41. int user_id = user.getUser_id();
  42. Map<String, String>shouhuo = (Map<String, String>) request.getSession().getAttribute("shouhuo");
  43. String name = shouhuo.get("name");
  44. String phone = shouhuo.get("phone");
  45. String address = shouhuo.get("address");
  46. OrderService orderService = new OrderServiceImpl();
  47. String order_id = UUID.randomUUID().toString();
  48. boolean create_order = orderService.addOrder(order_id, user_id, name, address, phone, book_ids);
  49. if(create_order) {
  50. String htmlCode="<!DOCTYPE html>\n" +
  51. "<html>"
  52. + "<head>"
  53. + "<link rel=\"stylesheet\" href=\""+request.getContextPath()+"/bootstrap-3.3.7-dist/css/bootstrap.min.css\">"
  54. + "</head>"
  55. + "<body>"
  56. + "<div style=\"position:absolute;left:44%;top:42%;height:140px;width:240px;background-color:rgba(145, 162, 196, 0.9);border:1px;text-align:center;\"id=\"quit1\">\r\n" +
  57. " <h3>订单创建成功!请尽快付款!</h3><a class=\"btn btn-info\" href=\""+request.getContextPath()+"/client/order.jsp\">查看订单</a>&nbsp;&nbsp;&nbsp;&nbsp;"
  58. +"<a class=\"btn btn-info\" href=\""+request.getContextPath()+"/PayFor?order_id=\""+order_id+">立即付款</a>\n" +
  59. "</div>"
  60. + "</body>"
  61. + "</html>";
  62. response.getWriter().write(htmlCode);
  63. }else {
  64. String htmlCode="<!DOCTYPE html>\n" +
  65. "<html>"
  66. + "<head>"
  67. + "<link rel=\"stylesheet\" href=\""+request.getContextPath()+"/bootstrap-3.3.7-dist/css/bootstrap.min.css\">"
  68. + "</head>"
  69. + "<body>"
  70. + "<div style=\"position:absolute;left:44%;top:46%;height:100px;width:240px;background-color:rgba(145, 162, 196, 0.9);border:1px;text-align:center;\"id=\"quit1\">\r\n" +
  71. " <h3>订单创建失败!请检查订单!</h3><a class=\"btn btn-info\" href=\""+request.getContextPath()+"/client/order.jsp\">查看订单</a>&nbsp;&nbsp;&nbsp;&nbsp;"
  72. +"<a class=\"btn btn-info\" href=\""+request.getContextPath()+"/client/index.jsp\">再逛逛</a>\n" +
  73. "</div>"
  74. + "</body>"
  75. + "</html>";
  76. response.getWriter().write(htmlCode);
  77. }
  78. } catch (SQLException e) {
  79. // TODO Auto-generated catch block
  80. e.printStackTrace();
  81. }
  82. }
  83. }
  84. /**
  85. * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  86. */
  87. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  88. // TODO Auto-generated method stub
  89. doGet(request, response);
  90. }
  91. }

7.PayForServlet

代码

  1. package cn.edu.bdu.mc.servlets;
  2. import java.io.IOException;
  3. import java.sql.SQLException;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.annotation.WebServlet;
  8. import javax.servlet.http.HttpServlet;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11. import javax.servlet.http.HttpSession;
  12. import cn.edu.bdu.mc.beans.Order;
  13. import cn.edu.bdu.mc.beans.User;
  14. import cn.edu.bdu.mc.daos.OrderDao;
  15. import cn.edu.bdu.mc.daos.impls.OrderDaoImpl;
  16. import cn.edu.bdu.mc.services.OrderService;
  17. import cn.edu.bdu.mc.services.impls.OrderServiceImpl;
  18. /**
  19. * Servlet implementation class PayForServlet
  20. */
  21. @WebServlet("/PayFor")
  22. public class PayForServlet extends HttpServlet {
  23. private static final long serialVersionUID = 1L;
  24. /**
  25. * @see HttpServlet#HttpServlet()
  26. */
  27. public PayForServlet() {
  28. super();
  29. // TODO Auto-generated constructor stub
  30. }
  31. /**
  32. * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  33. */
  34. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  35. try {
  36. String order_id = request.getParameter("order_id");
  37. OrderService orderService = new OrderServiceImpl();
  38. orderService.AfterPay(order_id);
  39. String htmlCode="<!DOCTYPE html>\n" +
  40. "<html>"
  41. + "<head>"
  42. + "<link rel=\"stylesheet\" href=\""+request.getContextPath()+"/bootstrap-3.3.7-dist/css/bootstrap.min.css\">"
  43. + "</head>"
  44. + "<body>"
  45. + "<div style=\"position:absolute;left:44%;top:46%;height:100px;width:240px;background-color:rgba(145, 162, 196, 0.9);border:1px;text-align:center;\"id=\"quit1\">\r\n" +
  46. " <h3>购买成功!</h3><a class=\"btn btn-info\" href=\""+request.getContextPath()+"/client/index.jsp\">继续购买</a>&nbsp;&nbsp;&nbsp;&nbsp;"
  47. +"<a class=\"btn btn-info\" href=\""+request.getContextPath()+"/client/order.jsp\">查看订单</a>\n" +
  48. "</div>"
  49. + "</body>"
  50. + "</html>";
  51. response.getWriter().write(htmlCode);
  52. } catch (SQLException e) {
  53. // TODO Auto-generated catch block
  54. e.printStackTrace();
  55. }
  56. }
  57. /**
  58. * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  59. */
  60. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  61. // TODO Auto-generated method stub
  62. doGet(request, response);
  63. }
  64. }

8.shouhuo.jsp

代码

  1. <%@ page language="java" contentType="text/html; charset=utf-8"
  2. pageEncoding="utf-8"%>
  3. <!DOCTYPE html>
  4. <html>
  5. <head>
  6. <title>收货地址</title>
  7. </head>
  8. <body style="background-color:#bbb;width:1400px;margin:0 auto">
  9. <!-- 调用头部页面 -->
  10. <div style="width:100%;height:100px;float:left">
  11. <jsp:include page="/client/head.jsp"></jsp:include>
  12. </div>
  13. <!-- 通用内容体大小 -->
  14. <div style="width:70%;height:720px;float:left;margin-left:15%;">
  15. <!-- 好看的图 -->
  16. <div style="width:55%;height:100%;float:left;margin-top:10%;">
  17. <img alt="快递员" src="${pageContext.request.contextPath }/client/img/kuaidi.jpg" style="width:90%;">
  18. </div>
  19. <!-- 登录界面 -->
  20. <div style="width:45%;height:80%;float:left;margin-top:7%">
  21. <h1 style="color:#8b6914;text-align:center">收货信息</h1>
  22. <hr style="height:2px;border:none;border-top:5px ridge green;" />
  23. <form action="${pageContext.request.contextPath }/ShouHuo" method="post" class="form-horizontal" role="form">
  24. <div class="form-group">
  25. <label for="lastname" class="col-sm-3 control-label input-lg">姓名</label>
  26. <div class="col-sm-9">
  27. <input type="text" name="name" class="form-control input-lg"
  28. placeholder="收货人姓名" style="float:left"/>
  29. </div>
  30. </div>
  31. <div class="form-group">
  32. <label for="firstname" class="col-sm-3 control-label input-lg">手机号</label>
  33. <div class="col-sm-9">
  34. <input type="text" name="phone"
  35. class="form-control input-lg" placeholder="收货人手机号" style="float:left"/>
  36. </div>
  37. </div>
  38. <div class="form-group">
  39. <label for="firstname" class="col-sm-3 control-label input-lg">地址</label>
  40. <div class="col-sm-9">
  41. <input type="text" name="address"
  42. class="form-control input-lg" placeholder="收货人地址" style="float:left"/>
  43. </div>
  44. </div>
  45. <div class="form-group">
  46. <label for="firstname" class="col-sm-1 control-label input-lg"></label>
  47. <div class="col-sm-5">
  48. <input type="submit" name="submit" value="提交"
  49. class="form-control input-lg btn btn-primary"style="width:100%;float:left"/>
  50. </div>
  51. <div class="col-sm-5">
  52. <input type="reset" name="reset" value="重置" id="re"
  53. class="form-control input-lg btn btn-warning"style="width:100%;float:left"/>
  54. </div>
  55. </div>
  56. </form>
  57. </div>
  58. </div>
  59. <!-- 调用底部页面 -->
  60. <div style="width:100%;height:60px;float:left">
  61. <jsp:include page="/client/foot.jsp"></jsp:include>
  62. </div>
  63. </body>
  64. </html>

效果图

9.order.jsp

代码

  1. <%@page import="cn.edu.bdu.mc.beans.User"%>
  2. <%@page import="cn.edu.bdu.mc.services.impls.OrderServiceImpl"%>
  3. <%@page import="cn.edu.bdu.mc.services.OrderService"%>
  4. <%@page import="cn.edu.bdu.mc.beans.Order"%>
  5. <%@page import="java.util.List"%>
  6. <%@ page language="java" contentType="text/html; charset=utf-8"
  7. pageEncoding="utf-8"%>
  8. <!DOCTYPE html>
  9. <html>
  10. <head>
  11. <title>订单</title>
  12. </head>
  13. <%
  14. User user = (User)request.getSession().getAttribute("user");
  15. OrderService orderService = new OrderServiceImpl();
  16. List<Order>notPay = orderService.findNotPayByUser_id(user.getUser_id());
  17. List<Order>areadyPay = orderService.findAreadyPayByUser_id(user.getUser_id());
  18. %>
  19. <body style="background-color:#bbb;width:1400px;margin:0 auto">
  20. <!-- 调用头部页面 -->
  21. <div style="width:100%;height:100px;float:left">
  22. <jsp:include page="/client/head.jsp"></jsp:include>
  23. </div>
  24. <!-- 通用内容体大小 -->
  25. <div style="width:70%;height:720px;float:left;margin-left:15%;">
  26. 未付款:<br>
  27. <% if(notPay==null){ %>
  28. <br>
  29. <% }else{ %>
  30. <% for(Order order : notPay){%>
  31. id=<font><%=order.getOrder_id() %></font>&nbsp;&nbsp;money=<font><%=order.getMoney() %></font>&nbsp;&nbsp;
  32. <a href="${pageContext.request.contextPath }/PayFor?order_id=<%=order.getOrder_id() %>">付款</a>&nbsp;&nbsp;
  33. <a href="${pageContext.request.contextPath }/DelOrder?order_id=<%=order.getOrder_id() %>">删除</a>&nbsp;&nbsp;
  34. <br>
  35. <% } %>
  36. <% } %>
  37. 已付款:<br>
  38. <% if(areadyPay==null){ %>
  39. <br>
  40. <% }else{ %>
  41. <% for(Order order : areadyPay){%>
  42. id=<font><%=order.getOrder_id() %></font>&nbsp;&nbsp;money=<font><%=order.getMoney() %></font>&nbsp;&nbsp;
  43. <br>
  44. <% } %>
  45. <% } %>
  46. </div>
  47. <!-- 调用底部页面 -->
  48. <div style="width:100%;height:60px;float:left">
  49. <jsp:include page="/client/foot.jsp"></jsp:include>
  50. </div>
  51. </body>
  52. </html>

效果图

点击付款后,还删除了一个,忘截图了

总结

今天弄得不是很多,又是各种报错。再加上开始的晚,于是拖到了现在才更。

原文链接:http://www.cnblogs.com/zhangA/p/11071231.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号