This project is a front-end and back-end project, divided into two roles: ordinary users and administrators. Ordinary users log in at the front desk and administrators log in at the backend;
Administrator roles include the following Functions:
Administrator login, user management, flower category management, flower management, order management and delivery, message management, system announcement management and other functions.
User roles include the following functions:
The website provides user homepage, user registration and login, flower details view, product addition to shopping cart, order confirmation, personal order view, mall message board and mall announcements and many other functions.
1. Running environment: preferably java jdk 1.8, we run on this platform. Other versions are theoretically possible.
2. IDE environment: IDEA, Eclipse, Myeclipse are all available. Recommended IDEA;
3. Tomcat environment: Tomcat 7.x, 8.x, 9.x versions are available
4. Hardware environment: windows 7/8/10 1G memory or more; Or Mac OS;
5. Database: MySql version 5.7;
6. Whether it is a Maven project: No;
1. Backend :Spring SpringMVC Mybatis
2. Front-end: JSP jQuery Ajax
1. Use Navicat or other tools to create a database with the corresponding name in mysql and import it The sql file of the project;
2. Use IDEA/Eclipse/MyEclipse to import the project. When importing into Eclipse/MyEclipse, if it is a maven project, please select maven; if it is a maven project, please execute maven clean after the import is successful; maven install command, and then run;
3. Change the database configuration in the jdbc.properties configuration file in the project to your own configuration;
4. Run the project and enter localhost:8080/ to log in
User account/password: user/123456
Administrator account/password: admin/admin
/** * 商品 **/ @RestController @RequestMapping("flower") public class FlowerController { @Autowired FlowersService flowerService; @Autowired FlowersDao flowersDao; @RequestMapping("/test") R test() { R r = new R(); return r; } //find @RequestMapping("/find") R find(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey, @RequestParam("searchType") String searchType) { R r = new R(); List<Flower> flowers = flowerService.find(searchKey, searchType); if (flowers == null) { return r.setCode(2000); } return getResponse(flowers, page, Constant.SHOW_PAGE_SIZE, r); } // 管理员查询所有 @RequestMapping("/findAll") R findAll(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey) { R r = new R(); List<Flower> flowers = flowerService.findAll(searchKey); if (flowers == null) { return r.setCode(2000); } return getResponse(flowers, page, Constant.PAGE_SIZE, r); } // 返回结果 private R getResponse(List<Flower> flowers, int page, int pageSize, R r) { Map<String, Object> map = new HashMap<>(); List<Flower> items = flowers.size() >= page * pageSize ? flowers.subList((page - 1) * pageSize, page * pageSize) : flowers.subList((page - 1) * pageSize, flowers.size()); int len = flowers.size() % pageSize == 0 ? flowers.size() / pageSize : (flowers.size() / pageSize + 1); for (Flower item : items) { if (item.getImg_guid() == null) { item.setImg_guid(Constant.DEFAULT_IMG); } item.setImg_guid(Constant.IMG_USE_PATH + item.getImg_guid()); } map.put("items", items); map.put("len", len); return r.setCode(2000).setData(map); } @RequestMapping("/create") R create(@RequestBody Flower flower) { R r = new R(); int ans = flowerService.add(flower); if (ans == 1) { return r.setCode(2000).setMsg(HttpMsg.ADD_FLOWER_OK); } return r.setCode(4000).setMsg(HttpMsg.ADD_FLOWER_FAILED); } @RequestMapping("/update") R update(@RequestBody Flower flower) { R r = new R(); int ans = flowerService.update(flower); if (ans >= 0) { return r.setCode(2000).setMsg(HttpMsg.UPDATE_FLOWER_OK); } return r.setCode(4000).setMsg(HttpMsg.UPDATE_FLOWER_FAILED); } @RequestMapping("/changeState") R changeState(@RequestBody Flower flower) { R r = new R(); flowersDao.changeState(flower); String msg = flower.getState() == 1?HttpMsg.GOODS_UP_OK:HttpMsg.GOODS_DOWN_OK; return r.setCode(2000).setMsg(msg); } // 保存上传的图片 @RequestMapping("/updateImg") R updateImg(@RequestParam("file") MultipartFile file) { R r = new R(); // 只接收 jpg/png 图片 String filename = file.getOriginalFilename(); if (!filename.endsWith(".jpg") && !filename.endsWith(".png")){ return r.setCode(4000).setMsg(HttpMsg.ERROR_FILE_TYPE); } String img_guid = UUID.randomUUID().toString().replaceAll("-", "") + ".jpg"; try { savePic(file.getInputStream(), img_guid); return r.setCode(2000).setMsg(HttpMsg.UPDATE_PIC_OK).setData(img_guid); } catch (IOException e) { return r.setCode(4000).setMsg(HttpMsg.UPDATE_PIC_FAILED); } } @PutMapping("/updateImgGuid") R updateImgGuid(@RequestParam("guid") String guid, @RequestParam("id") int id) { R r = new R(); int ans = flowerService.updateImg(guid, id); if (ans == 1) { return r.setCode(2000).setMsg(HttpMsg.UPDATE_PIC_OK); } return r.setCode(4000).setMsg(HttpMsg.UPDATE_PIC_FAILED); } @DeleteMapping("/delete") R delete(@RequestParam("id") int id) { R r = new R(); int ans = flowerService.delete(id); if (ans == 1) { return r.setCode(2000).setMsg(HttpMsg.DELETE_FLOWER_OK); } return r.setCode(4000).setMsg(HttpMsg.DELETE_FLOWER_FAILED); } private void savePic(InputStream inputStream, String fileName) { OutputStream os = null; try { String path = Constant.IMG_PATH; // 1K的数据缓冲 byte[] bs = new byte[1024]; // 读取到的数据长度 int len; // 输出的文件流保存到本地文件 os = new FileOutputStream(new File(path + fileName)); // 开始读取 while ((len = inputStream.read(bs)) != -1) { os.write(bs, 0, len); } } catch (Exception e) { e.printStackTrace(); } finally { // 完毕,关闭所有链接 try { os.close(); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } }
/** * 用户 **/ @RestController @RequestMapping("order") public class OrderController { @Autowired OrderService orderService; @Autowired UserDao userDao; @Autowired OrderDao orderDao; @Autowired FlowersDao flowersDao; @RequestMapping("/test") R test() { R r = new R(); return r.setCode(4000).setMsg(Constant.IMG_PATH).setData(orderDao.findAll(null)); } @RequestMapping("/queryByAccount") R queryByAccount(@RequestParam("account") String account) { R r = new R(); if (StringUtil.isEmpty(account)) { return r.setCode(4000).setMsg(HttpMsg.INVALID_PARAM); } List<Order> orders = orderService.queryByAccount(account); return r.setCode(2000).setData(orders); } @RequestMapping("/find") R find(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey, @RequestParam("account") String account) { R r = new R(); Map<String, Object> map = new HashMap<>(); List<Order> orders = orderService.find(searchKey, account); if (orders == null) { return r.setCode(2000); } map.put("items", orders); map.put("len", orders.size()); return r.setCode(2000).setData(map); } @RequestMapping("/findAll") R findAll(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey) { R r = new R(); Map<String, Object> map = new HashMap<>(); List<Order> orders = orderService.findAll(searchKey); if (orders == null) { return r.setCode(2000); } List<Order> items = orders.size() >= page * Constant.PAGE_SIZE ? orders.subList((page - 1) * Constant.PAGE_SIZE, page * Constant.PAGE_SIZE) : orders.subList((page - 1) * Constant.PAGE_SIZE, orders.size()); int len = orders.size() % Constant.PAGE_SIZE == 0 ? orders.size() / Constant.PAGE_SIZE : (orders.size() / Constant.PAGE_SIZE + 1); List<OrderVo> vos = new ArrayList<>(); for (Order item : items) { User user = userDao.queryById(item.getUid()); OrderVo vo = new OrderVo(); vo.setAddress(user.getAddress()).setPhone(user.getPhone()).setUsername(user.getName()) .setAmount(item.getAmount()).setFlower(item.getFlower()).setId(item.getId()) .setUid(item.getUid()).setOrder_guid(item.getOrder_guid()).setPrice(item.getPrice()) .setState(item.getState()); vos.add(vo); } map.put("items", vos); map.put("len", len); return r.setCode(2000).setData(map); } @RequestMapping("/update") R update(@RequestBody Order order) { R r = new R(); int ans = orderService.update(order); if (ans >= 0) { return r.setCode(2000).setMsg(HttpMsg.UPDATE_USER_OK); } return r.setCode(4000).setMsg(HttpMsg.UPDATE_USER_FAILED); } @RequestMapping("/changeState") R changeState(@RequestBody Order order) { orderDao.changeState(order); return new R().setCode(2000).setMsg(HttpMsg.UPDATE_ORDER_OK); } @DeleteMapping("/delete") R delete(@RequestParam("id") int id) { R r = new R(); int ans = orderService.delete(id); if (ans == 1) { return r.setCode(2000).setMsg(HttpMsg.DELETE_USER_OK); } return r.setCode(4000).setMsg(HttpMsg.DELETE_USER_FAILED); } }
/** * 用户 **/ @RestController @RequestMapping("user") public class UserController { @Autowired UserService userService; @Autowired UserDao dao; @RequestMapping("/test") R test() { R r = new R(); return r.setCode(4000).setMsg(Constant.IMG_PATH).setData(dao.findAll()); } @RequestMapping("/queryInfoByAccount") R queryInfoByAccount(@RequestParam("account") String account) { R r = new R(); if (StringUtil.isEmpty(account)){ return r.setCode(4000).setMsg(HttpMsg.INVALID_PARAM); } User loginUser = userService.queryInfo(account); if (loginUser == null){ return r.setCode(4000).setMsg(HttpMsg.INVALID_USER); } return r.setCode(2000).setData(loginUser); } @RequestMapping("/find") R find(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey) { R r = new R(); Map<String, Object> map = new HashMap<>(); List<User> users = userService.find(searchKey); if (users == null) { return r.setCode(2000); } List<User> items = users.size() >= page * Constant.PAGE_SIZE ? users.subList((page - 1) * Constant.PAGE_SIZE, page * Constant.PAGE_SIZE) : users.subList((page - 1) * Constant.PAGE_SIZE, users.size()); int len = users.size() % Constant.PAGE_SIZE == 0 ? users.size() / Constant.PAGE_SIZE : (users.size() / Constant.PAGE_SIZE + 1); map.put("items", items); map.put("len", len); return r.setCode(2000).setData(map); } @RequestMapping("/create") R create(@RequestBody User user) { R r = new R(); int ans = userService.add(user); if (ans == 1) { return r.setCode(2000).setMsg(HttpMsg.ADD_USER_OK); } return r.setCode(4000).setMsg(HttpMsg.ADD_USER_FAILED); } @RequestMapping("/update") R update(@RequestBody User user) { R r = new R(); int ans = userService.update(user); if (ans >= 0) { return r.setCode(2000).setMsg(HttpMsg.UPDATE_USER_OK); } return r.setCode(4000).setMsg(HttpMsg.UPDATE_USER_FAILED); } @DeleteMapping("/delete") R delete(@RequestParam("id") int id) { R r = new R(); int ans = userService.delete(id); if (ans == 1) { return r.setCode(2000).setMsg(HttpMsg.DELETE_USER_OK); } return r.setCode(4000).setMsg(HttpMsg.DELETE_USER_FAILED); } }
The above is the detailed content of How to implement flower mall system in Java. For more information, please follow other related articles on the PHP Chinese website!