Comment implémenter le système de centre commercial de fleurs en Java
Introduction au projet
Ce projet est un projet front-end et back-end, divisé en deux rôles : les utilisateurs ordinaires et les administrateurs se connectent à la réception et les administrateurs se connectent. au backend ;
Le rôle d'administrateur comprend les fonctions suivantes :
Connexion administrateur, gestion des utilisateurs, gestion des catégories de fleurs, gestion des fleurs, gestion des commandes et livraison, gestion des messages, système gestion des annonces et autres fonctions.
Le rôle d'utilisateur comprend les fonctions suivantes :
Le site Web fournit une page d'accueil de l'utilisateur, l'enregistrement et la connexion de l'utilisateur, l'affichage des détails des fleurs, l'ajout de produits au panier, la confirmation de commande, la commande personnelle vue, message du centre commercial, annonces du centre commercial et autres fonctions.
Exigences en matière d'environnement
1 Environnement d'exécution : de préférence java jdk 1.8, nous fonctionnons sur cette plateforme. D'autres versions sont théoriquement possibles.
2. Environnement IDE : IDEA, Eclipse, Myeclipse sont tous disponibles. IDÉE recommandée ;
3.Environnement Tomcat : les versions Tomcat 7.x, 8.x, 9.x sont disponibles
4.Environnement matériel : Windows 7/8/10 1G de mémoire ou supérieur ; ou Mac OS ;
5. Base de données : MySql version 5.7 ;
6. 🎜#Pile technologique
1. Backend : Spring+SpringMVC+Mybatis
2. Frontend : JSP+jQuery+Ajax
Instructions d'utilisation#🎜. 🎜## 🎜🎜#1. Utilisez Navicat ou d'autres outils pour créer une base de données avec le nom correspondant dans MySQL et importez le fichier SQL du projet ;
2. Utilisez IDEA/Eclipse/MyEclipse pour importer le projet ; , et Eclipse/MyEclipse à importer S'il s'agit d'un projet maven, veuillez sélectionner maven ; s'il s'agit d'un projet maven, une fois l'importation réussie, veuillez exécuter la commande maven clean ; 🎜🎜#3. Modifiez le fichier de configuration jdbc.properties dans le projet. Modifiez la configuration de la base de données par la vôtre ;
4 Exécutez le projet et entrez localhost:8080/ pour vous connecter
#. 🎜🎜#Compte utilisateur/mot de passe : user/123456#🎜🎜 #Compte administrateur/mot de passe : admin/admin
Affichage du rendu
# 🎜🎜## 🎜🎜#
# 🎜🎜 #
# 🎜🎜 #Core Code
/** * 商品 **/ @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); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

Java est un langage de programmation populaire qui peut être appris aussi bien par les développeurs débutants que par les développeurs expérimentés. Ce didacticiel commence par les concepts de base et progresse vers des sujets avancés. Après avoir installé le kit de développement Java, vous pouvez vous entraîner à la programmation en créant un simple programme « Hello, World ! ». Une fois que vous avez compris le code, utilisez l'invite de commande pour compiler et exécuter le programme, et « Hello, World ! » s'affichera sur la console. L'apprentissage de Java commence votre parcours de programmation et, à mesure que votre maîtrise s'approfondit, vous pouvez créer des applications plus complexes.
