From 8b5ecd6f27112a94b85068d51f2d93eb248396ea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=BA=B7=E8=8F=8A=E8=8F=8A?= <2582304574@qq.com>
Date: Sat, 26 Apr 2025 23:29:40 +0800
Subject: [PATCH] 1111
---
.gitignore | 37 +++
DB_flower.sql | 154 +++++++++++
pom.xml | 131 ++++++++++
.../shanzhu/flower/BackendApplication.java | 31 +++
.../com/shanzhu/flower/config/Constant.java | 20 ++
.../com/shanzhu/flower/config/HttpMsg.java | 52 ++++
.../flower/config/ProcessInterceptor.java | 40 +++
.../shanzhu/flower/config/WebMvcConfig.java | 22 ++
.../flower/controller/CartController.java | 176 +++++++++++++
.../flower/controller/FlowerController.java | 244 ++++++++++++++++++
.../controller/FlowerTypeController.java | 88 +++++++
.../flower/controller/LoginController.java | 42 +++
.../flower/controller/OrderController.java | 119 +++++++++
.../flower/controller/UserController.java | 92 +++++++
.../java/com/shanzhu/flower/dao/CartDao.java | 41 +++
.../com/shanzhu/flower/dao/FlowersDao.java | 41 +++
.../java/com/shanzhu/flower/dao/LoginDao.java | 18 ++
.../java/com/shanzhu/flower/dao/OrderDao.java | 44 ++++
.../com/shanzhu/flower/dao/SpeciesDao.java | 34 +++
.../java/com/shanzhu/flower/dao/UserDao.java | 44 ++++
.../java/com/shanzhu/flower/entity/Cart.java | 19 ++
.../com/shanzhu/flower/entity/Flower.java | 25 ++
.../com/shanzhu/flower/entity/LoginForm.java | 12 +
.../java/com/shanzhu/flower/entity/Order.java | 22 ++
.../com/shanzhu/flower/entity/OrderVo.java | 17 ++
.../java/com/shanzhu/flower/entity/Param.java | 11 +
.../java/com/shanzhu/flower/entity/R.java | 16 ++
.../com/shanzhu/flower/entity/Species.java | 15 ++
.../java/com/shanzhu/flower/entity/User.java | 19 ++
.../shanzhu/flower/service/CartService.java | 20 ++
.../flower/service/FlowersService.java | 21 ++
.../shanzhu/flower/service/OrderService.java | 22 ++
.../flower/service/SpeciesService.java | 14 +
.../shanzhu/flower/service/UserService.java | 20 ++
.../flower/service/impl/CartServiceImpl.java | 55 ++++
.../service/impl/FlowersServiceImpl.java | 46 ++++
.../flower/service/impl/OrderServiceImpl.java | 55 ++++
.../service/impl/SpeciesServiceImpl.java | 41 +++
.../flower/service/impl/UserServiceImpl.java | 45 ++++
.../com/shanzhu/flower/util/VerifyUtil.java | 19 ++
src/main/resources/application.yml | 22 ++
41 files changed, 2006 insertions(+)
create mode 100644 .gitignore
create mode 100644 DB_flower.sql
create mode 100644 pom.xml
create mode 100644 src/main/java/com/shanzhu/flower/BackendApplication.java
create mode 100644 src/main/java/com/shanzhu/flower/config/Constant.java
create mode 100644 src/main/java/com/shanzhu/flower/config/HttpMsg.java
create mode 100644 src/main/java/com/shanzhu/flower/config/ProcessInterceptor.java
create mode 100644 src/main/java/com/shanzhu/flower/config/WebMvcConfig.java
create mode 100644 src/main/java/com/shanzhu/flower/controller/CartController.java
create mode 100644 src/main/java/com/shanzhu/flower/controller/FlowerController.java
create mode 100644 src/main/java/com/shanzhu/flower/controller/FlowerTypeController.java
create mode 100644 src/main/java/com/shanzhu/flower/controller/LoginController.java
create mode 100644 src/main/java/com/shanzhu/flower/controller/OrderController.java
create mode 100644 src/main/java/com/shanzhu/flower/controller/UserController.java
create mode 100644 src/main/java/com/shanzhu/flower/dao/CartDao.java
create mode 100644 src/main/java/com/shanzhu/flower/dao/FlowersDao.java
create mode 100644 src/main/java/com/shanzhu/flower/dao/LoginDao.java
create mode 100644 src/main/java/com/shanzhu/flower/dao/OrderDao.java
create mode 100644 src/main/java/com/shanzhu/flower/dao/SpeciesDao.java
create mode 100644 src/main/java/com/shanzhu/flower/dao/UserDao.java
create mode 100644 src/main/java/com/shanzhu/flower/entity/Cart.java
create mode 100644 src/main/java/com/shanzhu/flower/entity/Flower.java
create mode 100644 src/main/java/com/shanzhu/flower/entity/LoginForm.java
create mode 100644 src/main/java/com/shanzhu/flower/entity/Order.java
create mode 100644 src/main/java/com/shanzhu/flower/entity/OrderVo.java
create mode 100644 src/main/java/com/shanzhu/flower/entity/Param.java
create mode 100644 src/main/java/com/shanzhu/flower/entity/R.java
create mode 100644 src/main/java/com/shanzhu/flower/entity/Species.java
create mode 100644 src/main/java/com/shanzhu/flower/entity/User.java
create mode 100644 src/main/java/com/shanzhu/flower/service/CartService.java
create mode 100644 src/main/java/com/shanzhu/flower/service/FlowersService.java
create mode 100644 src/main/java/com/shanzhu/flower/service/OrderService.java
create mode 100644 src/main/java/com/shanzhu/flower/service/SpeciesService.java
create mode 100644 src/main/java/com/shanzhu/flower/service/UserService.java
create mode 100644 src/main/java/com/shanzhu/flower/service/impl/CartServiceImpl.java
create mode 100644 src/main/java/com/shanzhu/flower/service/impl/FlowersServiceImpl.java
create mode 100644 src/main/java/com/shanzhu/flower/service/impl/OrderServiceImpl.java
create mode 100644 src/main/java/com/shanzhu/flower/service/impl/SpeciesServiceImpl.java
create mode 100644 src/main/java/com/shanzhu/flower/service/impl/UserServiceImpl.java
create mode 100644 src/main/java/com/shanzhu/flower/util/VerifyUtil.java
create mode 100644 src/main/resources/application.yml
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..24062a7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,37 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target
+/.mvn/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+*.log
+*.jar
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+
+### VS Code ###
+.vscode/
diff --git a/DB_flower.sql b/DB_flower.sql
new file mode 100644
index 0000000..7cba687
--- /dev/null
+++ b/DB_flower.sql
@@ -0,0 +1,154 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server : local
+ Source Server Type : MySQL
+ Source Server Version : 80029
+ Source Host : localhost:3306
+ Source Schema : DB_flower
+
+ Target Server Type : MySQL
+ Target Server Version : 80029
+ File Encoding : 65001
+
+ Date: 26/01/2024 15:29:41
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for carts
+-- ----------------------------
+DROP TABLE IF EXISTS `carts`;
+CREATE TABLE `carts` (
+ `id` int NOT NULL AUTO_INCREMENT,
+ `fid` int DEFAULT NULL,
+ `flower` varchar(255) DEFAULT NULL,
+ `amount` int DEFAULT NULL,
+ `price` float DEFAULT NULL,
+ `uid` int DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `flower` (`flower`),
+ KEY `uid` (`uid`),
+ KEY `fk2` (`fid`),
+ CONSTRAINT `carts_ibfk_2` FOREIGN KEY (`uid`) REFERENCES `users` (`id`),
+ CONSTRAINT `fk2` FOREIGN KEY (`fid`) REFERENCES `flowers` (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8mb3;
+
+-- ----------------------------
+-- Records of carts
+-- ----------------------------
+BEGIN;
+INSERT INTO `carts` VALUES (32, 2, '粉色玫瑰花', 1, NULL, 10);
+INSERT INTO `carts` VALUES (33, 4, '金枝玉叶玫瑰', 3, NULL, 10);
+INSERT INTO `carts` VALUES (34, 1, '杭州水果捞', 1, NULL, 10);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for flowers
+-- ----------------------------
+DROP TABLE IF EXISTS `flowers`;
+CREATE TABLE `flowers` (
+ `id` int NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) DEFAULT NULL,
+ `species_name` varchar(255) DEFAULT NULL,
+ `price` float DEFAULT NULL,
+ `detail` varchar(255) DEFAULT NULL,
+ `img_guid` varchar(255) DEFAULT NULL,
+ `state` int DEFAULT '1' COMMENT '商品状态',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `name` (`name`),
+ KEY `species_name` (`species_name`),
+ CONSTRAINT `flowers_ibfk_1` FOREIGN KEY (`species_name`) REFERENCES `species` (`species_name`)
+) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb3;
+
+-- ----------------------------
+-- Records of flowers
+-- ----------------------------
+BEGIN;
+INSERT INTO `flowers` VALUES (1, '杭州水果捞', '春日', 10, '杭州水果捞', 'fe71ee4538644b4da67b046d3a6825a8.jpg', 1);
+INSERT INTO `flowers` VALUES (2, '粉色玫瑰花', '夏日', 199, '粉色玫瑰花,送爱人~', '67975badf69646c0a70e8154208c7acd.jpg', 1);
+INSERT INTO `flowers` VALUES (3, '牡丹', '夏日', 299, '国花,价格优惠', 'hehua.jpg', 1);
+INSERT INTO `flowers` VALUES (4, '金枝玉叶玫瑰', '秋日', 999.99, '金枝玉叶玫瑰', '8d59b8723ad6409ab3b10847f86ef196.jpg', 1);
+INSERT INTO `flowers` VALUES (5, '紫色小雏菊', '夏日', 188, '紫色小雏菊~', 'eff301d8ca194fb99639ebe4f1d328b9.jpg', 1);
+INSERT INTO `flowers` VALUES (6, NULL, NULL, NULL, NULL, '', 1);
+INSERT INTO `flowers` VALUES (7, '粉百合', '冬日', 10000, '粉百合', '6d901436d6e84160b04de4cafa79a611.jpg', 1);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for orders
+-- ----------------------------
+DROP TABLE IF EXISTS `orders`;
+CREATE TABLE `orders` (
+ `id` int NOT NULL AUTO_INCREMENT,
+ `order_guid` varchar(255) DEFAULT NULL,
+ `flower` varchar(255) DEFAULT NULL,
+ `amount` int DEFAULT NULL,
+ `price` float DEFAULT NULL,
+ `state` int DEFAULT NULL,
+ `uid` int DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `flower` (`flower`),
+ KEY `uid` (`uid`),
+ CONSTRAINT `orders_ibfk_2` FOREIGN KEY (`uid`) REFERENCES `users` (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb3;
+
+-- ----------------------------
+-- Records of orders
+-- ----------------------------
+BEGIN;
+INSERT INTO `orders` VALUES (27, NULL, '杭州水果捞', 3, 30, 0, 10);
+INSERT INTO `orders` VALUES (28, NULL, '金枝玉叶玫瑰', 1, 999.99, 0, 10);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for species
+-- ----------------------------
+DROP TABLE IF EXISTS `species`;
+CREATE TABLE `species` (
+ `id` int NOT NULL AUTO_INCREMENT,
+ `species_name` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `species` (`species_name`)
+) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb3;
+
+-- ----------------------------
+-- Records of species
+-- ----------------------------
+BEGIN;
+INSERT INTO `species` VALUES (8, NULL);
+INSERT INTO `species` VALUES (7, '冬日');
+INSERT INTO `species` VALUES (11, '友情花');
+INSERT INTO `species` VALUES (2, '夏日');
+INSERT INTO `species` VALUES (9, '情人花');
+INSERT INTO `species` VALUES (1, '春日');
+INSERT INTO `species` VALUES (3, '秋日');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for users
+-- ----------------------------
+DROP TABLE IF EXISTS `users`;
+CREATE TABLE `users` (
+ `id` int NOT NULL AUTO_INCREMENT,
+ `account` varchar(255) DEFAULT NULL,
+ `name` varchar(255) DEFAULT NULL,
+ `password` varchar(255) DEFAULT NULL,
+ `phone` varchar(255) DEFAULT NULL,
+ `address` varchar(255) DEFAULT NULL,
+ `role` varchar(255) DEFAULT NULL COMMENT '角色',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `account` (`account`)
+) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb3;
+
+-- ----------------------------
+-- Records of users
+-- ----------------------------
+BEGIN;
+INSERT INTO `users` VALUES (1, 'user2', 'user2', '123456', '13566662222', '北京市昌平区2号', 'user');
+INSERT INTO `users` VALUES (2, 'admin', '系统管理员', '123456', '123456', '上海市黄浦区南京西路8号', 'admin');
+INSERT INTO `users` VALUES (10, 'user', '杭州水果捞', '123456', '18679121111', '杭州余杭区', 'user');
+COMMIT;
+
+SET FOREIGN_KEY_CHECKS = 1;
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..d512733
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,131 @@
+
+
+ 4.0.0
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.4.5
+
+
+
+ com.shanzhu
+ flower-backend
+ 1.0.0-RELEASE
+
+ flower-backend
+ jar
+
+ 花店商城后台
+
+
+ 1.8
+
+
+
+
+
+ org.projectlombok
+ lombok
+ 1.18.10
+ provided
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 2.1.3
+
+
+
+ tk.mybatis
+ mapper-spring-boot-starter
+ 2.0.4
+
+
+
+ mysql
+ mysql-connector-java
+ runtime
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.junit.vintage
+ junit-vintage-engine
+
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.4.2
+ compile
+
+
+
+ net.sourceforge.nekohtml
+ nekohtml
+ 1.9.22
+
+
+
+ org.apache.commons
+ commons-pool2
+
+
+
+ org.apache.poi
+ poi-ooxml
+ 3.17
+
+
+
+ io.springfox
+ springfox-swagger2
+ 2.9.2
+
+
+
+ io.springfox
+ springfox-swagger-ui
+ 2.9.2
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ 1.8
+ 1.8
+
+
+
+
+
+
diff --git a/src/main/java/com/shanzhu/flower/BackendApplication.java b/src/main/java/com/shanzhu/flower/BackendApplication.java
new file mode 100644
index 0000000..4cd451f
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/BackendApplication.java
@@ -0,0 +1,31 @@
+package com.shanzhu.flower;
+
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+
+/**
+ * SpringBoot 启动类
+ * 项目启动入口(点击右键 选择 "run BackendApplication" 启动项目)
+ *
+ * 什么是SpringBoot?(https://www.php.cn/faq/498384.html)
+ *
+ * @author: ShanZhu
+ * @date: 2023-01-24
+ */
+@Slf4j
+@SpringBootApplication
+@MapperScan("com.shanzhu.flower.dao")
+public class BackendApplication {
+
+ public static void main(String[] args) {
+
+ //SpringBoot 执行启动
+ SpringApplication.run(BackendApplication.class, args);
+
+ log.info("=====================项目后端启动成功============================");
+ }
+
+}
diff --git a/src/main/java/com/shanzhu/flower/config/Constant.java b/src/main/java/com/shanzhu/flower/config/Constant.java
new file mode 100644
index 0000000..d9e84d4
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/config/Constant.java
@@ -0,0 +1,20 @@
+package com.shanzhu.flower.config;
+
+/**
+ * 常量
+ * 图片静态文件路径
+ *
+ * @author: ShanZhu
+ * @date: 2024-01-24
+ */
+public class Constant {
+
+ public static int PAGE_SIZE = 5;
+
+ // 商品展示
+ public static int SHOW_PAGE_SIZE = 9;
+
+ public static String IMG_USE_PATH = "static/imgs/";
+
+ public static String DEFAULT_IMG = "img.jpg";
+}
diff --git a/src/main/java/com/shanzhu/flower/config/HttpMsg.java b/src/main/java/com/shanzhu/flower/config/HttpMsg.java
new file mode 100644
index 0000000..fa4a369
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/config/HttpMsg.java
@@ -0,0 +1,52 @@
+package com.shanzhu.flower.config;
+
+/**
+ * http状态消息
+ *
+ * @author: ShanZhu
+ * @date: 2024-01-24
+ */
+public class HttpMsg {
+ public static String ERROR_INPUT = "表单信息不正确";
+ public static String ERROR_VERIFY = "用户名或密码错误";
+ public static String ADD_USER_OK = "新建用户成功";
+ public static String ADD_USER_FAILED = "新建用户失败,该账号已存在";
+ public static String UPDATE_USER_OK = "修改用户信息成功";
+ public static String UPDATE_USER_FAILED = "修改用户信息失败";
+ public static String DELETE_USER_OK = "删除用户信息成功";
+ public static String DELETE_USER_FAILED = "删除用户信息失败";
+
+ public static String DELETE_TYPE_OK = "删除类型成功";
+ public static String DELETE_TYPE_FAILED = "有商品绑定此类型,删除类型失败";
+ public static String UPDATE_TYPE_OK = "修改类型成功";
+ public static String UPDATE_TYPE_FAILED = "有商品绑定此类型,修改类型失败";
+ public static String ADD_TYPE_OK = "新建类型成功";
+ public static String ADD_TYPE_FAILED = "新建类型失败,该类型名称已存在";
+
+ public static String DELETE_FLOWER_OK = "删除类型成功";
+ public static String DELETE_FLOWER_FAILED = "有商品绑定此类型,删除类型失败";
+ public static String UPDATE_FLOWER_OK = "修改类型成功";
+ public static String UPDATE_FLOWER_FAILED = "有商品绑定此类型,修改类型失败";
+ public static String ADD_FLOWER_OK = "新建类型成功";
+ public static String ADD_FLOWER_FAILED = "新建类型失败,该类型名称已存在";
+
+ public static String NO_TYPE_NOW = "当前没有花朵种类,请先创建!";
+
+ public static String UPDATE_PIC_OK = "更新图片成功";
+ public static String UPDATE_PIC_FAILED = "更新图片失败";
+
+ public static String INVALID_PARAM = "参数不合法";
+
+ public static String INVALID_USER = "登录失效,请重新登录";
+
+ public static String ADD_CART_OK = "加入购物车成功";
+ public static String ADD_CART_FAILED = "加入购物车失败";
+
+ public static String BUY_OK = "下单成功";
+
+ public static String UPDATE_ORDER_OK = "订单发货状态更新成功";
+ public static String ERROR_FILE_TYPE = "错误的文件类型";
+
+ public static String GOODS_UP_OK = "商品上架成功";
+ public static String GOODS_DOWN_OK = "商品下架成功";
+}
diff --git a/src/main/java/com/shanzhu/flower/config/ProcessInterceptor.java b/src/main/java/com/shanzhu/flower/config/ProcessInterceptor.java
new file mode 100644
index 0000000..77e6370
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/config/ProcessInterceptor.java
@@ -0,0 +1,40 @@
+package com.shanzhu.flower.config;
+
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.HandlerInterceptor;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * 请求处理拦截器
+ *
+ * @author: ShanZhu
+ * @date: 2024-01-24
+ */
+@Component
+public class ProcessInterceptor implements HandlerInterceptor {
+
+ @Override
+ public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
+ httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");
+ httpServletResponse.setHeader("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
+ httpServletResponse.setHeader("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
+ httpServletResponse.setHeader("X-Powered-By", "Jetty");
+ String method = httpServletRequest.getMethod();
+ if (method.equals("OPTIONS")) {
+ httpServletResponse.setStatus(200);
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
+ }
+
+ @Override
+ public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/shanzhu/flower/config/WebMvcConfig.java b/src/main/java/com/shanzhu/flower/config/WebMvcConfig.java
new file mode 100644
index 0000000..2147b26
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/config/WebMvcConfig.java
@@ -0,0 +1,22 @@
+package com.shanzhu.flower.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * web mvc配置,跨域配置等
+ *
+ * @author: ShanZhu
+ * @date: 2024-01-24
+ */
+@Configuration
+public class WebMvcConfig implements WebMvcConfigurer {
+
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+
+ registry.addInterceptor(new ProcessInterceptor()).addPathPatterns("/**");
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/shanzhu/flower/controller/CartController.java b/src/main/java/com/shanzhu/flower/controller/CartController.java
new file mode 100644
index 0000000..d459bd4
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/controller/CartController.java
@@ -0,0 +1,176 @@
+package com.shanzhu.flower.controller;
+
+import com.shanzhu.flower.config.Constant;
+import com.shanzhu.flower.config.HttpMsg;
+import com.shanzhu.flower.dao.FlowersDao;
+import com.shanzhu.flower.entity.Cart;
+import com.shanzhu.flower.entity.R;
+import com.shanzhu.flower.service.CartService;
+import com.shanzhu.flower.service.OrderService;
+import org.springframework.web.bind.annotation.*;
+import tk.mybatis.mapper.util.StringUtil;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 购物车 控制层
+ *
+ * @author: ShanZhu
+ * @date: 2024-01-24
+ */
+@RestController
+@RequestMapping("cart")
+public class CartController {
+
+ @Resource
+ private CartService cartService;
+
+ @Resource
+ private OrderService orderService;
+
+ @Resource
+ private FlowersDao flowersDao;
+
+ /**
+ * 查询用户购物车
+ *
+ * @param account 用户账号
+ * @return 购物车
+ */
+ @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 carts = cartService.queryByAccount(account);
+
+ for (Cart cart : carts) {
+ float price = flowersDao.queryPrice(cart.getFid());
+ cart.setPrice(cart.getAmount() * price);
+ }
+
+ return r.setCode(2000).setData(carts);
+ }
+
+
+ /**
+ * 分页查询购物车
+ *
+ * @param page 页数
+ * @param searchKey 查询条件
+ * @param account 账户
+ * @return 购物车列表
+ */
+ @RequestMapping("/find")
+ R find(
+ @RequestParam("page") int page,
+ @RequestParam("searchKey") String searchKey,
+ @RequestParam("account") String account
+ ) {
+
+ R r = new R();
+
+ Map map = new HashMap<>();
+ List carts = cartService.find(searchKey, account);
+
+ if (carts == null) {
+ return r.setCode(2000);
+ }
+
+ List items = carts.size() >= page * Constant.PAGE_SIZE ?
+ carts.subList((page - 1) * Constant.PAGE_SIZE, page * Constant.PAGE_SIZE)
+ : carts.subList((page - 1) * Constant.PAGE_SIZE, carts.size());
+
+ int len = carts.size() % Constant.PAGE_SIZE == 0 ? carts.size() / Constant.PAGE_SIZE
+ : (carts.size() / Constant.PAGE_SIZE + 1);
+ map.put("items", items);
+ map.put("len", len);
+
+ return r.setCode(2000).setData(map);
+ }
+
+ /**
+ * 购买
+ *
+ * @param account 账号
+ * @return 结果
+ */
+ @RequestMapping("/buy")
+ R buy(@RequestParam("account") String account) {
+ R r = new R();
+
+ // 查该用户的购物车
+ List carts = (List) queryByAccount(account).getData();
+ for (Cart cart : carts) {
+ // 增加订单数据
+ orderService.add(cart);
+ // 删除购物车数据
+ cartService.delete(cart.getId());
+ }
+
+ return r.setCode(2000).setMsg(HttpMsg.BUY_OK);
+ }
+
+ /**
+ * 新增购物车
+ *
+ * @param cart 购物车信息
+ * @return 购物车
+ */
+ @RequestMapping("/create")
+ R create(@RequestBody Cart cart) {
+ R r = new R();
+
+ int ans = cartService.add(cart);
+
+ if (ans == 1) {
+ return r.setCode(2000).setMsg(HttpMsg.ADD_CART_OK);
+ }
+
+ return r.setCode(4000).setMsg(HttpMsg.ADD_CART_FAILED);
+ }
+
+ /**
+ * 更新购物车
+ *
+ * @param cart 购物车信息
+ * @return 结果
+ */
+ @RequestMapping("/update")
+ R update(@RequestBody Cart cart) {
+ R r = new R();
+
+ int ans = cartService.update(cart);
+
+ if (ans >= 0) {
+ return r.setCode(2000).setMsg(HttpMsg.UPDATE_USER_OK);
+ }
+
+ return r.setCode(4000).setMsg(HttpMsg.UPDATE_USER_FAILED);
+ }
+
+ /**
+ * 删除购物车
+ *
+ * @param id 购物车id
+ * @return 结果
+ */
+ @DeleteMapping("/delete")
+ R delete(@RequestParam("id") int id) {
+ R r = new R();
+ int ans = cartService.delete(id);
+ if (ans == 1) {
+ return r.setCode(2000).setMsg(HttpMsg.DELETE_USER_OK);
+ }
+ return r.setCode(4000).setMsg(HttpMsg.DELETE_USER_FAILED);
+ }
+
+}
+
diff --git a/src/main/java/com/shanzhu/flower/controller/FlowerController.java b/src/main/java/com/shanzhu/flower/controller/FlowerController.java
new file mode 100644
index 0000000..8a55da7
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/controller/FlowerController.java
@@ -0,0 +1,244 @@
+package com.shanzhu.flower.controller;
+
+import com.shanzhu.flower.config.Constant;
+import com.shanzhu.flower.config.HttpMsg;
+import com.shanzhu.flower.dao.FlowersDao;
+import com.shanzhu.flower.entity.Flower;
+import com.shanzhu.flower.entity.R;
+import com.shanzhu.flower.service.FlowersService;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.*;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+
+/**
+ * 鲜花 控制层
+ *
+ * @author: ShanZhu
+ * @date: 2024-01-24
+ */
+@RestController
+@RequestMapping("flower")
+public class FlowerController {
+
+ @Value("${uploadPath}")
+ private String uploadPath;
+
+ @Resource
+ private FlowersService flowerService;
+ @Resource
+ private FlowersDao flowersDao;
+
+ /**
+ * 分页查询鲜花商品
+ *
+ * @param page 页数
+ * @param searchKey 查询条件
+ * @param searchType 查询类型
+ * @return 商品
+ */
+ @RequestMapping("/find")
+ R find(
+ @RequestParam("page") int page,
+ @RequestParam("searchKey") String searchKey,
+ @RequestParam("searchType") String searchType
+ ) {
+ R r = new R();
+ List flowers = flowerService.find(searchKey, searchType);
+
+ if (flowers == null) {
+ return r.setCode(2000);
+ }
+
+ return getResponse(flowers, page, Constant.SHOW_PAGE_SIZE, r);
+ }
+
+ /**
+ * 管理员查询所有
+ *
+ * @param page 分页页数
+ * @param searchKey 查询条件
+ * @return 结果
+ */
+ @RequestMapping("/findAll")
+ R findAll(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey) {
+ R r = new R();
+ List flowers = flowerService.findAll(searchKey);
+
+ if (flowers == null) {
+ return r.setCode(2000);
+ }
+
+ return getResponse(flowers, page, Constant.PAGE_SIZE, r);
+ }
+
+ /**
+ * 创建鲜花商品
+ *
+ * @param flower 商品信息
+ * @return 结果
+ */
+ @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);
+ }
+
+ /**
+ * 更新鲜花商品
+ *
+ * @param flower 商品信息
+ * @return 结果
+ */
+ @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);
+ }
+
+ /**
+ * 改版商品状态
+ *
+ * @param flower 商品信息
+ * @return 结果
+ */
+ @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);
+ }
+
+ /**
+ * 上传图片
+ *
+ * @param file 文件信息
+ * @return 结果
+ */
+ @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);
+ }
+
+ }
+
+ /**
+ * 更新图片guid
+ *
+ * @param guid guid
+ * @param id id
+ * @return 结果
+ */
+ @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);
+ }
+
+ /**
+ * 删除图片
+ *
+ * @param id 图片id
+ * @return 结果
+ */
+ @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 = uploadPath;
+ // 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();
+ }
+ }
+ }
+
+ private R getResponse(List flowers, int page, int pageSize, R r) {
+ Map map = new HashMap<>();
+ List 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);
+ }
+
+}
+
diff --git a/src/main/java/com/shanzhu/flower/controller/FlowerTypeController.java b/src/main/java/com/shanzhu/flower/controller/FlowerTypeController.java
new file mode 100644
index 0000000..4b01c9a
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/controller/FlowerTypeController.java
@@ -0,0 +1,88 @@
+package com.shanzhu.flower.controller;
+
+import com.shanzhu.flower.config.Constant;
+import com.shanzhu.flower.config.HttpMsg;
+import com.shanzhu.flower.entity.R;
+import com.shanzhu.flower.entity.Species;
+import com.shanzhu.flower.service.SpeciesService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 鲜花种类 控制层
+ */
+@RestController
+@RequestMapping("species")
+public class FlowerTypeController {
+
+ @Resource
+ private SpeciesService speciesService;
+
+ @RequestMapping("/findAll")
+ R findAll() {
+ R r = new R();
+ List all = speciesService.findAll();
+ if (all.size()<=0){
+ return r.setCode(4000).setMsg(HttpMsg.NO_TYPE_NOW);
+ }
+ return r.setCode(2000).setData(all);
+ }
+
+ @RequestMapping("/find")
+ R find(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey) {
+ R r = new R();
+ Map map = new HashMap<>();
+ List list = speciesService.find(searchKey);
+ if (list == null) {
+ return r.setCode(2000);
+ }
+ List items = list.size() >= page * Constant.PAGE_SIZE ?
+ list.subList((page - 1) * Constant.PAGE_SIZE, page * Constant.PAGE_SIZE)
+ : list.subList((page - 1) * Constant.PAGE_SIZE, list.size());
+ int len = list.size() % Constant.PAGE_SIZE == 0 ? list.size() / Constant.PAGE_SIZE
+ : (list.size() / Constant.PAGE_SIZE + 1);
+ map.put("items", items);
+ map.put("len", len);
+ return r.setCode(2000).setData(map);
+ }
+
+ @RequestMapping("/create")
+ R create(@RequestBody Species species) {
+ R r = new R();
+ try {
+ speciesService.add(species);
+ return r.setCode(2000).setMsg(HttpMsg.ADD_TYPE_OK);
+ } catch (Exception e) {
+ return r.setCode(4000).setMsg(HttpMsg.ADD_TYPE_FAILED);
+ }
+ }
+
+ @RequestMapping("/update")
+ R update(@RequestBody Species species) {
+ R r = new R();
+ try {
+ speciesService.update(species);
+ return r.setCode(2000).setMsg(HttpMsg.UPDATE_TYPE_OK);
+ } catch (Exception e) {
+ return r.setCode(4000).setMsg(HttpMsg.UPDATE_TYPE_FAILED);
+ }
+ }
+
+ @DeleteMapping("/delete")
+ R delete(@RequestParam("id") int id) {
+ R r = new R();
+ try {
+ speciesService.delete(id);
+ return r.setCode(2000).setMsg(HttpMsg.DELETE_TYPE_OK);
+ } catch (Exception e) {
+ return r.setCode(4000).setMsg(HttpMsg.DELETE_TYPE_FAILED);
+ }
+ }
+
+}
+
diff --git a/src/main/java/com/shanzhu/flower/controller/LoginController.java b/src/main/java/com/shanzhu/flower/controller/LoginController.java
new file mode 100644
index 0000000..2c7770f
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/controller/LoginController.java
@@ -0,0 +1,42 @@
+package com.shanzhu.flower.controller;
+
+import com.shanzhu.flower.config.HttpMsg;
+import com.shanzhu.flower.dao.LoginDao;
+import com.shanzhu.flower.entity.LoginForm;
+import com.shanzhu.flower.entity.R;
+import com.shanzhu.flower.entity.User;
+import com.shanzhu.flower.util.VerifyUtil;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+
+/**
+ * 用户登录 控制层
+ *
+ * @author: ShanZhu
+ * @date: 2024-01-24
+ */
+@RestController
+@RequestMapping("login")
+public class LoginController {
+
+ @Resource
+ private LoginDao loginDao;
+
+ @RequestMapping("/doLogin")
+ R doLogin(@RequestBody LoginForm form) {
+ R r = new R();
+ if (!VerifyUtil.verifyLoginForm(form)) {
+ return r.setCode(4000).setMsg(HttpMsg.ERROR_INPUT);
+ }
+ User loginUser = loginDao.login(form);
+ if (loginUser != null) {
+ return r.setCode(2000).setMsg("欢迎您:" + loginUser.getName()).setData(loginUser);
+ }
+ return r.setCode(4000).setMsg(HttpMsg.ERROR_VERIFY);
+ }
+
+}
diff --git a/src/main/java/com/shanzhu/flower/controller/OrderController.java b/src/main/java/com/shanzhu/flower/controller/OrderController.java
new file mode 100644
index 0000000..f4ad9cd
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/controller/OrderController.java
@@ -0,0 +1,119 @@
+package com.shanzhu.flower.controller;
+
+import com.shanzhu.flower.config.Constant;
+import com.shanzhu.flower.config.HttpMsg;
+import com.shanzhu.flower.dao.OrderDao;
+import com.shanzhu.flower.dao.UserDao;
+import com.shanzhu.flower.entity.Order;
+import com.shanzhu.flower.entity.OrderVo;
+import com.shanzhu.flower.entity.R;
+import com.shanzhu.flower.entity.User;
+import com.shanzhu.flower.service.OrderService;
+import org.springframework.web.bind.annotation.*;
+import tk.mybatis.mapper.util.StringUtil;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 订单 控制层
+ *
+ * @author: ShanZhu
+ * @date: 2024-01-24
+ */
+@RestController
+@RequestMapping("order")
+public class OrderController {
+
+ @Resource
+ private OrderService orderService;
+
+ @Resource
+ private UserDao userDao;
+
+ @Resource
+ private OrderDao orderDao;
+
+ @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 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 map = new HashMap<>();
+ List 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 map = new HashMap<>();
+ List orders = orderService.findAll(searchKey);
+ if (orders == null) {
+ return r.setCode(2000);
+ }
+ List 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 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);
+ }
+
+}
+
diff --git a/src/main/java/com/shanzhu/flower/controller/UserController.java b/src/main/java/com/shanzhu/flower/controller/UserController.java
new file mode 100644
index 0000000..4b5cfe0
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/controller/UserController.java
@@ -0,0 +1,92 @@
+package com.shanzhu.flower.controller;
+
+import com.shanzhu.flower.config.Constant;
+import com.shanzhu.flower.config.HttpMsg;
+import com.shanzhu.flower.entity.R;
+import com.shanzhu.flower.entity.User;
+import com.shanzhu.flower.service.UserService;
+import org.springframework.web.bind.annotation.*;
+import tk.mybatis.mapper.util.StringUtil;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 用户 控制层
+ *
+ * @author: ShanZhu
+ * @date: 2024-01-24
+ */
+@RestController
+@RequestMapping("user")
+public class UserController {
+
+ @Resource
+ private UserService userService;
+
+ @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 map = new HashMap<>();
+ List users = userService.find(searchKey);
+ if (users == null) {
+ return r.setCode(2000);
+ }
+ List 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);
+ }
+
+}
+
diff --git a/src/main/java/com/shanzhu/flower/dao/CartDao.java b/src/main/java/com/shanzhu/flower/dao/CartDao.java
new file mode 100644
index 0000000..9897a5d
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/dao/CartDao.java
@@ -0,0 +1,41 @@
+package com.shanzhu.flower.dao;
+
+import com.shanzhu.flower.entity.Cart;
+import org.apache.ibatis.annotations.*;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface CartDao {
+
+ @Select("select * from carts where flower like concat('%',#{searchKey},'%') and account = #{account};")
+ List find(@Param("searchKey") String searchKey, @Param("account") String account);
+
+ @Select("select * from carts;")
+ List findAll();
+
+ @Select("select * from carts where fid = #{fid} and uid = #{uid};")
+ Cart checkIsAdded(Cart cart);
+
+ @Update("update carts set amount = amount + 1 where fid = #{fid} and uid = #{uid};")
+ int addAmount(Cart cart);
+
+ @Select("select * from carts where uid = #{uid};")
+ List queryByUid(int uid);
+
+ @Update("update carts set name = #{name},password = #{password},phone = #{phone},address = #{address} where id = #{id};")
+ int update(Cart cart);
+
+ @Delete("delete from carts where id = #{id};")
+ int delete(int id);
+
+ @Insert("insert into carts(fid,flower,amount,uid) " +
+ "values(#{fid},#{flower},1,#{uid});")
+ int add(Cart cart);
+
+}
+
+
+
+
diff --git a/src/main/java/com/shanzhu/flower/dao/FlowersDao.java b/src/main/java/com/shanzhu/flower/dao/FlowersDao.java
new file mode 100644
index 0000000..dac65c0
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/dao/FlowersDao.java
@@ -0,0 +1,41 @@
+package com.shanzhu.flower.dao;
+
+import com.shanzhu.flower.entity.Flower;
+import org.apache.ibatis.annotations.*;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface FlowersDao {
+
+ @Select("select * from flowers where name like concat('%',#{searchKey},'%') " +
+ "and species_name like concat('%',#{searchType},'%') and state = 1;")
+ List find(@Param("searchKey") String searchKey, @Param("searchType")String searchType);
+
+ @Select("select * from flowers where name like concat('%',#{searchKey},'%');")
+ List findAll(String searchKey);
+
+ @Select("select price from flowers where id = #{fid};")
+ Float queryPrice(int fid);
+
+ @Update("update flowers set name = #{name}, species_name = #{species_name}, price = #{price}, detail = #{detail} where id = #{id};")
+ Integer update(Flower flower);
+
+ @Update("update flowers set img_guid = #{img_guid} where id = #{id};")
+ Integer updateImg(@Param("img_guid") String img_guid,@Param("id") Integer id);
+
+ @Update("update flowers set state = ${state} where id = #{id};")
+ Integer changeState(Flower flower);
+
+ @Delete("delete from flowers where id = #{id};")
+ Integer delete(int id);
+
+ @Insert("insert into flowers(name,species_name,price,detail,state) values(#{name},#{species_name},${price},#{detail},1);")
+ Integer add(Flower flower);
+
+}
+
+
+
+
diff --git a/src/main/java/com/shanzhu/flower/dao/LoginDao.java b/src/main/java/com/shanzhu/flower/dao/LoginDao.java
new file mode 100644
index 0000000..48a3ec0
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/dao/LoginDao.java
@@ -0,0 +1,18 @@
+package com.shanzhu.flower.dao;
+
+import com.shanzhu.flower.entity.LoginForm;
+import com.shanzhu.flower.entity.User;
+import org.apache.ibatis.annotations.Select;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface LoginDao {
+
+ @Select("select * from users where account = #{account} and password = #{password} and role = #{role};")
+ User login(LoginForm form);
+
+}
+
+
+
+
diff --git a/src/main/java/com/shanzhu/flower/dao/OrderDao.java b/src/main/java/com/shanzhu/flower/dao/OrderDao.java
new file mode 100644
index 0000000..5c9f97c
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/dao/OrderDao.java
@@ -0,0 +1,44 @@
+package com.shanzhu.flower.dao;
+
+import com.shanzhu.flower.entity.Cart;
+import com.shanzhu.flower.entity.Order;
+import org.apache.ibatis.annotations.*;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface OrderDao {
+
+ @Select("select * from orders where flower like concat('%',#{searchKey},'%') and uid = #{uid};")
+ List find(@Param("searchKey") String searchKey, @Param("uid") int uid);
+
+ @Select("select * from orders where flower like concat('%',#{searchKey},'%');")
+ List findAll(String searchKey);
+
+
+ @Select("select * from orders where fid = #{fid} and uid = #{uid};")
+ Order checkIsAdded(Order order);
+
+
+ @Update("update orders set state = #{state} where id = #{id};")
+ int changeState(Order order);
+
+ @Select("select * from orders where uid = #{uid};")
+ List queryByUid(int uid);
+
+ @Update("update orders set name = #{name},password = #{password},phone = #{phone},address = #{address} where id = #{id};")
+ int update(Order order);
+
+ @Delete("delete from orders where id = #{id};")
+ int delete(int id);
+
+ @Insert("insert into orders(flower,amount,price,state,uid) " +
+ "values(#{flower},#{amount},#{price},0,#{uid});")
+ int add(Cart cart);
+
+}
+
+
+
+
diff --git a/src/main/java/com/shanzhu/flower/dao/SpeciesDao.java b/src/main/java/com/shanzhu/flower/dao/SpeciesDao.java
new file mode 100644
index 0000000..db2ed84
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/dao/SpeciesDao.java
@@ -0,0 +1,34 @@
+package com.shanzhu.flower.dao;
+
+import com.shanzhu.flower.entity.Species;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface SpeciesDao {
+
+ @Select("select * from species where species_name like concat('%',#{searchKey},'%');")
+ List find(String searchKey);
+
+ @Select("select * from species;")
+ List findAll();
+
+ @Update("update species set species_name = #{species_name} where id = #{id};")
+ int update(Species species);
+
+ @Delete("delete from species where id = #{id};")
+ int delete(int id);
+
+ @Insert("insert into species(species_name) values(#{species_name});")
+ int add(Species species);
+
+}
+
+
+
+
diff --git a/src/main/java/com/shanzhu/flower/dao/UserDao.java b/src/main/java/com/shanzhu/flower/dao/UserDao.java
new file mode 100644
index 0000000..07c464e
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/dao/UserDao.java
@@ -0,0 +1,44 @@
+package com.shanzhu.flower.dao;
+
+import com.shanzhu.flower.entity.User;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface UserDao {
+
+ @Select("select * from users where (account like concat('%',#{searchKey},'%') or name like concat('%',#{searchKey},'%')) and role = 'user';")
+ List find(String searchKey);
+
+ @Select("select * from users where id = #{id};")
+ User queryById(Integer id);
+
+ @Select("select * from users;")
+ List findAll();
+
+ @Select("select * from users where account = #{account} and role = 'user';")
+ User queryInfo(String account);
+
+ @Select("select id from users where account = #{account} and role = 'user';")
+ Integer queryIdByAccount(String account);
+
+ @Update("update users set name = #{name},password = #{password},phone = #{phone},address = #{address} where id = #{id};")
+ int update(User user);
+
+ @Delete("delete from users where id = #{id};")
+ int delete(int id);
+
+ @Insert("insert into users(account,name,password,phone,address,role) " +
+ "values(#{account},#{name},#{password},#{phone},#{address},'user');")
+ int add(User user);
+
+}
+
+
+
+
diff --git a/src/main/java/com/shanzhu/flower/entity/Cart.java b/src/main/java/com/shanzhu/flower/entity/Cart.java
new file mode 100644
index 0000000..3fbc9bb
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/entity/Cart.java
@@ -0,0 +1,19 @@
+package com.shanzhu.flower.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+public class Cart {
+
+ private int id;
+ private int fid;
+ private String flower;
+ private int amount;
+ private float price;
+ private int uid;
+ private String account;
+}
+
+
diff --git a/src/main/java/com/shanzhu/flower/entity/Flower.java b/src/main/java/com/shanzhu/flower/entity/Flower.java
new file mode 100644
index 0000000..d61e979
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/entity/Flower.java
@@ -0,0 +1,25 @@
+package com.shanzhu.flower.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+public class Flower {
+
+ private int id;
+ private String name;
+ // 分类名称
+ private String species_name;
+ private float price;
+ // 详细介绍
+ private String detail;
+ // 图片
+ private String img_guid;
+ // 是否上架
+ private int state;
+
+}
+
+
+
diff --git a/src/main/java/com/shanzhu/flower/entity/LoginForm.java b/src/main/java/com/shanzhu/flower/entity/LoginForm.java
new file mode 100644
index 0000000..a345d01
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/entity/LoginForm.java
@@ -0,0 +1,12 @@
+package com.shanzhu.flower.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+public class LoginForm {
+ private String account;
+ private String password;
+ private String role;
+}
diff --git a/src/main/java/com/shanzhu/flower/entity/Order.java b/src/main/java/com/shanzhu/flower/entity/Order.java
new file mode 100644
index 0000000..424ae09
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/entity/Order.java
@@ -0,0 +1,22 @@
+package com.shanzhu.flower.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+public class Order {
+
+ private int id;
+ private String order_guid;
+ private String flower;
+ private int amount;
+ private float price;
+ private float state;
+ // 用户 id
+ private int uid;
+
+}
+
+
+
diff --git a/src/main/java/com/shanzhu/flower/entity/OrderVo.java b/src/main/java/com/shanzhu/flower/entity/OrderVo.java
new file mode 100644
index 0000000..9a57950
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/entity/OrderVo.java
@@ -0,0 +1,17 @@
+package com.shanzhu.flower.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+public class OrderVo extends Order{
+
+ private String username;
+ private String phone;
+ private String address;
+
+}
+
+
+
diff --git a/src/main/java/com/shanzhu/flower/entity/Param.java b/src/main/java/com/shanzhu/flower/entity/Param.java
new file mode 100644
index 0000000..ae6a9ca
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/entity/Param.java
@@ -0,0 +1,11 @@
+package com.shanzhu.flower.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+public class Param {
+ private String searchKey;
+ private int page;
+}
diff --git a/src/main/java/com/shanzhu/flower/entity/R.java b/src/main/java/com/shanzhu/flower/entity/R.java
new file mode 100644
index 0000000..65a2d76
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/entity/R.java
@@ -0,0 +1,16 @@
+package com.shanzhu.flower.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+public class R {
+ private int code;
+ private String msg;
+ private Object data;
+
+}
+
+
+
diff --git a/src/main/java/com/shanzhu/flower/entity/Species.java b/src/main/java/com/shanzhu/flower/entity/Species.java
new file mode 100644
index 0000000..886f392
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/entity/Species.java
@@ -0,0 +1,15 @@
+package com.shanzhu.flower.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+public class Species {
+ private int id;
+ private String species_name;
+
+}
+
+
+
diff --git a/src/main/java/com/shanzhu/flower/entity/User.java b/src/main/java/com/shanzhu/flower/entity/User.java
new file mode 100644
index 0000000..16031f4
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/entity/User.java
@@ -0,0 +1,19 @@
+package com.shanzhu.flower.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+public class User {
+ private int id;
+ private String account;
+ private String name;
+ private String password;
+ private String phone;
+ private String address;
+ private String role;
+}
+
+
+
diff --git a/src/main/java/com/shanzhu/flower/service/CartService.java b/src/main/java/com/shanzhu/flower/service/CartService.java
new file mode 100644
index 0000000..ff76edf
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/service/CartService.java
@@ -0,0 +1,20 @@
+package com.shanzhu.flower.service;
+
+import com.shanzhu.flower.entity.Cart;
+
+import java.util.List;
+
+/**
+ * 购物车 服务
+ *
+ * @author: ShanZhu
+ * @date: 2024-01-24
+ */
+public interface CartService {
+
+ int add(Cart cart);
+ int delete(int uid);
+ int update(Cart cart);
+ List find(String searchKey,String account);
+ List queryByAccount(String account);
+}
diff --git a/src/main/java/com/shanzhu/flower/service/FlowersService.java b/src/main/java/com/shanzhu/flower/service/FlowersService.java
new file mode 100644
index 0000000..06fcc82
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/service/FlowersService.java
@@ -0,0 +1,21 @@
+package com.shanzhu.flower.service;
+
+import com.shanzhu.flower.entity.Flower;
+
+import java.util.List;
+
+/**
+ * 鲜花商品 服务层
+ *
+ * @author: ShanZhu
+ * @date: 2024-01-24
+ */
+public interface FlowersService {
+
+ int add(Flower flower);
+ int delete(int id);
+ int update(Flower flower);
+ List find(String searchKey,String searchType);
+ List findAll(String searchKey);
+ int updateImg(String img_guid,Integer id);
+}
diff --git a/src/main/java/com/shanzhu/flower/service/OrderService.java b/src/main/java/com/shanzhu/flower/service/OrderService.java
new file mode 100644
index 0000000..2fcfbce
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/service/OrderService.java
@@ -0,0 +1,22 @@
+package com.shanzhu.flower.service;
+
+import com.shanzhu.flower.entity.Cart;
+import com.shanzhu.flower.entity.Order;
+
+import java.util.List;
+
+/**
+ * 订单 服务层
+ *
+ * @author: ShanZhu
+ * @date: 2024-01-24
+ */
+public interface OrderService {
+
+ int add(Cart cart);
+ int delete(int uid);
+ int update(Order order);
+ List find(String searchKey, String account);
+ List findAll(String searchKey);
+ List queryByAccount(String account);
+}
diff --git a/src/main/java/com/shanzhu/flower/service/SpeciesService.java b/src/main/java/com/shanzhu/flower/service/SpeciesService.java
new file mode 100644
index 0000000..c662e23
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/service/SpeciesService.java
@@ -0,0 +1,14 @@
+package com.shanzhu.flower.service;
+
+import com.shanzhu.flower.entity.Species;
+
+import java.util.List;
+
+public interface SpeciesService {
+
+ int add(Species species);
+ int delete(int id);
+ int update(Species species);
+ List find(String searchKey);
+ List findAll();
+}
diff --git a/src/main/java/com/shanzhu/flower/service/UserService.java b/src/main/java/com/shanzhu/flower/service/UserService.java
new file mode 100644
index 0000000..abe7071
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/service/UserService.java
@@ -0,0 +1,20 @@
+package com.shanzhu.flower.service;
+
+import com.shanzhu.flower.entity.User;
+
+import java.util.List;
+
+/**
+ * 用户 服务层
+ *
+ * @author: ShanZhu
+ * @date: 2024-01-24
+ */
+public interface UserService {
+
+ int add(User user);
+ int delete(int uid);
+ int update(User user);
+ List find(String searchKey);
+ User queryInfo(String account);
+}
diff --git a/src/main/java/com/shanzhu/flower/service/impl/CartServiceImpl.java b/src/main/java/com/shanzhu/flower/service/impl/CartServiceImpl.java
new file mode 100644
index 0000000..fa01a60
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/service/impl/CartServiceImpl.java
@@ -0,0 +1,55 @@
+package com.shanzhu.flower.service.impl;
+
+import com.shanzhu.flower.dao.CartDao;
+import com.shanzhu.flower.dao.UserDao;
+import com.shanzhu.flower.entity.Cart;
+import com.shanzhu.flower.service.CartService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class CartServiceImpl implements CartService {
+
+ @Resource
+ private CartDao cartDao;
+
+ @Resource
+ private UserDao userDao;
+
+ @Override
+ public int add(Cart cart) {
+ int uid = userDao.queryIdByAccount(cart.getAccount());
+ cart.setUid(uid);
+ Cart cart1 = cartDao.checkIsAdded(cart);
+ if (cart1==null){
+ return cartDao.add(cart);
+ }else {
+ return cartDao.addAmount(cart);
+ }
+ }
+
+ @Override
+ public int delete(int uid) {
+ return cartDao.delete(uid);
+ }
+
+ @Override
+ public int update(Cart cart) {
+ return cartDao.update(cart);
+ }
+
+ @Override
+ public List find(String searchKey,String account) {
+ return cartDao.find(searchKey,account);
+ }
+
+ @Override
+ public List queryByAccount(String account) {
+ Integer uid = userDao.queryIdByAccount(account);
+ return cartDao.queryByUid(uid);
+ }
+
+
+}
diff --git a/src/main/java/com/shanzhu/flower/service/impl/FlowersServiceImpl.java b/src/main/java/com/shanzhu/flower/service/impl/FlowersServiceImpl.java
new file mode 100644
index 0000000..631506a
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/service/impl/FlowersServiceImpl.java
@@ -0,0 +1,46 @@
+package com.shanzhu.flower.service.impl;
+
+import com.shanzhu.flower.dao.FlowersDao;
+import com.shanzhu.flower.entity.Flower;
+import com.shanzhu.flower.service.FlowersService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class FlowersServiceImpl implements FlowersService {
+
+ @Resource
+ private FlowersDao flowersDao;
+
+ @Override
+ public int add(Flower flower) {
+ return flowersDao.add(flower);
+ }
+
+ @Override
+ public int delete(int id) {
+ return flowersDao.delete(id);
+ }
+
+ @Override
+ public int update(Flower flower) {
+ return flowersDao.update(flower);
+ }
+
+ @Override
+ public List find(String searchKey,String searchType) {
+ return flowersDao.find(searchKey,searchType);
+ }
+
+ @Override
+ public List findAll(String searchKey) {
+ return flowersDao.findAll(searchKey);
+ }
+
+ @Override
+ public int updateImg(String img_guid,Integer id) {
+ return flowersDao.updateImg(img_guid,id);
+ }
+}
diff --git a/src/main/java/com/shanzhu/flower/service/impl/OrderServiceImpl.java b/src/main/java/com/shanzhu/flower/service/impl/OrderServiceImpl.java
new file mode 100644
index 0000000..d950ff0
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/service/impl/OrderServiceImpl.java
@@ -0,0 +1,55 @@
+package com.shanzhu.flower.service.impl;
+
+import com.shanzhu.flower.dao.OrderDao;
+import com.shanzhu.flower.dao.UserDao;
+import com.shanzhu.flower.entity.Cart;
+import com.shanzhu.flower.entity.Order;
+import com.shanzhu.flower.service.OrderService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class OrderServiceImpl implements OrderService {
+
+ @Resource
+ private OrderDao orderdao;
+
+ @Resource
+ private UserDao userDao;
+
+ @Override
+ public int add(Cart cart) {
+ return orderdao.add(cart);
+ }
+
+ @Override
+ public int delete(int uid) {
+ return orderdao.delete(uid);
+ }
+
+ @Override
+ public int update(Order order) {
+ return orderdao.update(order);
+ }
+
+ @Override
+ public List find(String searchKey,String account) {
+ Integer uid = userDao.queryIdByAccount(account);
+ return orderdao.find(searchKey,uid);
+ }
+
+ @Override
+ public List findAll(String searchKey) {
+ return orderdao.findAll(searchKey);
+ }
+
+ @Override
+ public List queryByAccount(String account) {
+ Integer uid = userDao.queryIdByAccount(account);
+ return orderdao.queryByUid(uid);
+ }
+
+
+}
diff --git a/src/main/java/com/shanzhu/flower/service/impl/SpeciesServiceImpl.java b/src/main/java/com/shanzhu/flower/service/impl/SpeciesServiceImpl.java
new file mode 100644
index 0000000..34ad99b
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/service/impl/SpeciesServiceImpl.java
@@ -0,0 +1,41 @@
+package com.shanzhu.flower.service.impl;
+
+import com.shanzhu.flower.dao.SpeciesDao;
+import com.shanzhu.flower.entity.Species;
+import com.shanzhu.flower.service.SpeciesService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class SpeciesServiceImpl implements SpeciesService {
+
+ @Resource
+ private SpeciesDao speciesDao;
+
+ @Override
+ public int add(Species species) {
+ return speciesDao.add(species);
+ }
+
+ @Override
+ public int delete(int uid) {
+ return speciesDao.delete(uid);
+ }
+
+ @Override
+ public int update(Species species) {
+ return speciesDao.update(species);
+ }
+
+ @Override
+ public List find(String searchKey) {
+ return speciesDao.find(searchKey);
+ }
+
+ @Override
+ public List findAll() {
+ return speciesDao.findAll();
+ }
+}
diff --git a/src/main/java/com/shanzhu/flower/service/impl/UserServiceImpl.java b/src/main/java/com/shanzhu/flower/service/impl/UserServiceImpl.java
new file mode 100644
index 0000000..46e2c8b
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/service/impl/UserServiceImpl.java
@@ -0,0 +1,45 @@
+package com.shanzhu.flower.service.impl;
+
+import com.shanzhu.flower.dao.UserDao;
+import com.shanzhu.flower.entity.User;
+import com.shanzhu.flower.service.UserService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class UserServiceImpl implements UserService {
+
+ @Resource
+ private UserDao userdao;
+
+ @Override
+ public int add(User user) {
+ try {
+ return userdao.add(user);
+ }catch (Exception e){
+ return 0;
+ }
+ }
+
+ @Override
+ public int delete(int uid) {
+ return userdao.delete(uid);
+ }
+
+ @Override
+ public int update(User user) {
+ return userdao.update(user);
+ }
+
+ @Override
+ public List find(String searchKey) {
+ return userdao.find(searchKey);
+ }
+
+ @Override
+ public User queryInfo(String account) {
+ return userdao.queryInfo(account);
+ }
+}
diff --git a/src/main/java/com/shanzhu/flower/util/VerifyUtil.java b/src/main/java/com/shanzhu/flower/util/VerifyUtil.java
new file mode 100644
index 0000000..89f555d
--- /dev/null
+++ b/src/main/java/com/shanzhu/flower/util/VerifyUtil.java
@@ -0,0 +1,19 @@
+package com.shanzhu.flower.util;
+
+
+import com.shanzhu.flower.entity.LoginForm;
+import tk.mybatis.mapper.util.StringUtil;
+
+public class VerifyUtil {
+
+ public static boolean verifyLoginForm(LoginForm form) {
+ if (form==null || StringUtil.isEmpty(form.getAccount())|| StringUtil.isEmpty(form.getPassword())|| StringUtil.isEmpty(form.getRole())) {
+ return false;
+ }
+ if (form.getRole().equals("user") || form.getRole().equals("admin")){
+ return true;
+ }
+ return false;
+ }
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
new file mode 100644
index 0000000..38c20b0
--- /dev/null
+++ b/src/main/resources/application.yml
@@ -0,0 +1,22 @@
+#后端服务端口
+server:
+ port: 8081
+
+spring:
+ #数据库配置
+ datasource:
+ url: jdbc:mysql://localhost:3306/DB_flower?characterEncoding=UTF-8&serverTimezone=UTC
+ username: root
+ password: 123456
+
+ resources:
+ chain:
+ strategy:
+ content:
+ enabled: true
+ paths: /**
+mybatis:
+ type-aliases-package: com.shanzhu.flower.entity
+
+#图片上传路径 图片所在的路径位置
+uploadPath: /Users/jiawang/saleProject/花店商城/flower-frontend/static/imgs/