diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4cdf36b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+catalina.base_IS_UNDEFINED/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**
+!**/src/test/**
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+.mvn
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+
+### VS Code ###
+.vscode/
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..3b1c5e8
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..e96534f
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/foodie-api/pom.xml b/foodie-api/pom.xml
index 11faf2f..acaacc4 100644
--- a/foodie-api/pom.xml
+++ b/foodie-api/pom.xml
@@ -21,6 +21,11 @@
foodie-service
1.0-SNAPSHOT
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
diff --git a/foodie-api/src/main/java/cn/odliken/Application.java b/foodie-api/src/main/java/cn/odliken/Application.java
index e178851..e2cef2a 100644
--- a/foodie-api/src/main/java/cn/odliken/Application.java
+++ b/foodie-api/src/main/java/cn/odliken/Application.java
@@ -2,6 +2,8 @@ package cn.odliken;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+import tk.mybatis.spring.annotation.MapperScan;
/**
* @author: Clay
@@ -12,6 +14,10 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
* 启动类
*/
@SpringBootApplication
+// 扫描mybatis 通用mapper 所在的包
+@MapperScan(basePackages = "cn.odliken.mapper")
+//开启事务管理 可加可不加
+//@EnableTransactionManagement
public class Application {
public static void main(String[] args) {
diff --git a/foodie-api/src/main/java/cn/odliken/controller/PassportController.java b/foodie-api/src/main/java/cn/odliken/controller/PassportController.java
new file mode 100644
index 0000000..968d064
--- /dev/null
+++ b/foodie-api/src/main/java/cn/odliken/controller/PassportController.java
@@ -0,0 +1,53 @@
+package cn.odliken.controller;
+
+import cn.odliken.service.UserService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author: Clay
+ * @date: 2022/1/25 17:05
+ * @description:PassprotController
+ * @email: clay@hchyun.com
+ */
+@RestController
+@RequestMapping("/passport")
+public class PassportController {
+ @Autowired
+ private UserService userService;
+
+
+ // RequestParam 请求类型参数
+ @GetMapping("/usernameIsExist")
+ public HttpStatus usernameIsExist(@RequestParam String username){
+ // 1. 判断入参是否为空
+ if (StringUtils.isBlank(username)){
+ return HttpStatus.INTERNAL_SERVER_ERROR;
+ }
+ //2. 查找注册的用户名是否存在
+ boolean isExist = userService.queryUSerNameIsExist(username);
+
+ if (isExist){
+ return HttpStatus.INTERNAL_SERVER_ERROR;
+ }
+ // 3. 请求成功,用户名可用
+ return HttpStatus.OK;
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/foodie-api/src/main/java/cn/odliken/controller/StuFooController.java b/foodie-api/src/main/java/cn/odliken/controller/StuFooController.java
new file mode 100644
index 0000000..e7c36e8
--- /dev/null
+++ b/foodie-api/src/main/java/cn/odliken/controller/StuFooController.java
@@ -0,0 +1,46 @@
+package cn.odliken.controller;
+
+import cn.odliken.service.StuService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.security.sasl.SaslServer;
+
+/**
+ * @author: Clay
+ * @date: 2022/1/25 14:09
+ * @description:SruFooController
+ * @email: clay@hchyun.com
+ */
+@RestController
+public class StuFooController {
+
+ @Autowired
+ private StuService stuService;
+
+ @GetMapping("/getStu")
+ public Object getStu(int id) {
+ return stuService.getStuInfo(id);
+ }
+ //无幂等性 再同一时间高并发下可能会新增多条数据
+ @PostMapping("/saveStu")
+ public Object saveStu() {
+ stuService.saveStu();
+ return 200;
+ }
+ // 通过id更新和删除是有幂等性的
+ @PostMapping("/updateStu")
+ public Object updateStu(int id) {
+ stuService.updateStu(id);
+ return 200;
+ }
+ @PostMapping("/deleteStu")
+ public Object deleteStu(int id) {
+ stuService.deleteStu(id);
+ return 200;
+ }
+
+
+}
diff --git a/foodie-api/src/test/java/TransTest.java b/foodie-api/src/test/java/TransTest.java
new file mode 100644
index 0000000..aa14868
--- /dev/null
+++ b/foodie-api/src/test/java/TransTest.java
@@ -0,0 +1,19 @@
+import cn.odliken.Application;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+/**
+ * @author: Clay
+ * @date: 2022/1/25 14:59
+ * @description:TransTest
+ * @email: clay@hchyun.com
+ */
+//@RunWith(SpringRunner.class)
+//@SpringBootTest(classes = Application.class)
+public class TransTest {
+
+
+
+
+}
diff --git a/foodie-api/target/classes/cn/odliken/Application.class b/foodie-api/target/classes/cn/odliken/Application.class
index d8405af..8261c39 100644
Binary files a/foodie-api/target/classes/cn/odliken/Application.class and b/foodie-api/target/classes/cn/odliken/Application.class differ
diff --git a/foodie-api/target/foodie-api-1.0-SNAPSHOT.jar b/foodie-api/target/foodie-api-1.0-SNAPSHOT.jar
index 687064e..cec2445 100644
Binary files a/foodie-api/target/foodie-api-1.0-SNAPSHOT.jar and b/foodie-api/target/foodie-api-1.0-SNAPSHOT.jar differ
diff --git a/foodie-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/foodie-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
index 4a57eb7..c976400 100644
--- a/foodie-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
+++ b/foodie-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -1,2 +1,3 @@
+cn\odliken\controller\PassportController.class
cn\odliken\Application.class
cn\odliken\controller\HelloController.class
diff --git a/foodie-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/foodie-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
index f4f203a..1ae9584 100644
--- a/foodie-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
+++ b/foodie-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -1,2 +1,4 @@
F:\架构师之路\project\foodie-dev\foodie-api\src\main\java\cn\odliken\controller\HelloController.java
+F:\架构师之路\project\foodie-dev\foodie-api\src\main\java\cn\odliken\controller\StuFooController.java
F:\架构师之路\project\foodie-dev\foodie-api\src\main\java\cn\odliken\Application.java
+F:\架构师之路\project\foodie-dev\foodie-api\src\main\java\cn\odliken\controller\PassportController.java
diff --git a/foodie-api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/foodie-api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
index e69de29..2ec7c2c 100644
--- a/foodie-api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
+++ b/foodie-api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
@@ -0,0 +1 @@
+TransTest.class
diff --git a/foodie-mapper/target/foodie-mapper-1.0-SNAPSHOT.jar b/foodie-mapper/target/foodie-mapper-1.0-SNAPSHOT.jar
index 6953946..cbc8265 100644
Binary files a/foodie-mapper/target/foodie-mapper-1.0-SNAPSHOT.jar and b/foodie-mapper/target/foodie-mapper-1.0-SNAPSHOT.jar differ
diff --git a/foodie-mapper/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/foodie-mapper/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
index e69de29..190a1f3 100644
--- a/foodie-mapper/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
+++ b/foodie-mapper/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,14 @@
+F:\架构师之路\project\foodie-dev\foodie-mapper\src\main\java\cn\odliken\mapper\ItemsSpecMapper.java
+F:\架构师之路\project\foodie-dev\foodie-mapper\src\main\java\cn\odliken\mapper\OrderItemsMapper.java
+F:\架构师之路\project\foodie-dev\foodie-mapper\src\main\java\cn\odliken\mapper\CarouselMapper.java
+F:\架构师之路\project\foodie-dev\foodie-mapper\src\main\java\cn\odliken\mapper\OrderStatusMapper.java
+F:\架构师之路\project\foodie-dev\foodie-mapper\src\main\java\cn\odliken\mapper\ItemsCommentsMapper.java
+F:\架构师之路\project\foodie-dev\foodie-mapper\src\main\java\cn\odliken\mapper\ItemsImgMapper.java
+F:\架构师之路\project\foodie-dev\foodie-mapper\src\main\java\cn\odliken\mapper\StuMapper.java
+F:\架构师之路\project\foodie-dev\foodie-mapper\src\main\java\cn\odliken\mapper\UserAddressMapper.java
+F:\架构师之路\project\foodie-dev\foodie-mapper\src\main\java\cn\odliken\mapper\OrdersMapper.java
+F:\架构师之路\project\foodie-dev\foodie-mapper\src\main\java\cn\odliken\my\mapper\MyMapper.java
+F:\架构师之路\project\foodie-dev\foodie-mapper\src\main\java\cn\odliken\mapper\ItemsParamMapper.java
+F:\架构师之路\project\foodie-dev\foodie-mapper\src\main\java\cn\odliken\mapper\ItemsMapper.java
+F:\架构师之路\project\foodie-dev\foodie-mapper\src\main\java\cn\odliken\mapper\UsersMapper.java
+F:\架构师之路\project\foodie-dev\foodie-mapper\src\main\java\cn\odliken\mapper\CategoryMapper.java
diff --git a/foodie-pojo/target/foodie-pojo-1.0-SNAPSHOT.jar b/foodie-pojo/target/foodie-pojo-1.0-SNAPSHOT.jar
index 04ec55e..9fe787c 100644
Binary files a/foodie-pojo/target/foodie-pojo-1.0-SNAPSHOT.jar and b/foodie-pojo/target/foodie-pojo-1.0-SNAPSHOT.jar differ
diff --git a/foodie-pojo/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/foodie-pojo/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
index e69de29..3d2ea01 100644
--- a/foodie-pojo/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
+++ b/foodie-pojo/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,13 @@
+F:\架构师之路\project\foodie-dev\foodie-pojo\src\main\java\cn\odliken\pojo\OrderItems.java
+F:\架构师之路\project\foodie-dev\foodie-pojo\src\main\java\cn\odliken\pojo\Carousel.java
+F:\架构师之路\project\foodie-dev\foodie-pojo\src\main\java\cn\odliken\pojo\Category.java
+F:\架构师之路\project\foodie-dev\foodie-pojo\src\main\java\cn\odliken\pojo\Users.java
+F:\架构师之路\project\foodie-dev\foodie-pojo\src\main\java\cn\odliken\pojo\ItemsComments.java
+F:\架构师之路\project\foodie-dev\foodie-pojo\src\main\java\cn\odliken\pojo\ItemsSpec.java
+F:\架构师之路\project\foodie-dev\foodie-pojo\src\main\java\cn\odliken\pojo\UserAddress.java
+F:\架构师之路\project\foodie-dev\foodie-pojo\src\main\java\cn\odliken\pojo\Orders.java
+F:\架构师之路\project\foodie-dev\foodie-pojo\src\main\java\cn\odliken\pojo\Stu.java
+F:\架构师之路\project\foodie-dev\foodie-pojo\src\main\java\cn\odliken\pojo\ItemsImg.java
+F:\架构师之路\project\foodie-dev\foodie-pojo\src\main\java\cn\odliken\pojo\ItemsParam.java
+F:\架构师之路\project\foodie-dev\foodie-pojo\src\main\java\cn\odliken\pojo\OrderStatus.java
+F:\架构师之路\project\foodie-dev\foodie-pojo\src\main\java\cn\odliken\pojo\Items.java
diff --git a/foodie-service/src/main/java/cn/odliken/service/StuService.java b/foodie-service/src/main/java/cn/odliken/service/StuService.java
new file mode 100644
index 0000000..f2590b0
--- /dev/null
+++ b/foodie-service/src/main/java/cn/odliken/service/StuService.java
@@ -0,0 +1,25 @@
+package cn.odliken.service;
+
+import cn.odliken.pojo.Stu;
+
+/**
+ * @author: Clay
+ * @date: 2022/1/25 14:05
+ * @description:StuService
+ * @email: clay@hchyun.com
+ */
+public interface StuService {
+
+ public Stu getStuInfo(int id);
+
+
+
+ public void saveStu();
+
+ public void updateStu(int id);
+
+ public void deleteStu(int id);
+
+
+
+}
diff --git a/foodie-service/src/main/java/cn/odliken/service/UserService.java b/foodie-service/src/main/java/cn/odliken/service/UserService.java
new file mode 100644
index 0000000..5fbfe1b
--- /dev/null
+++ b/foodie-service/src/main/java/cn/odliken/service/UserService.java
@@ -0,0 +1,20 @@
+package cn.odliken.service;
+
+import cn.odliken.pojo.Stu;
+
+/**
+ * @author: Clay
+ * @date: 2022/1/25 14:05
+ * @description:StuService
+ * @email: clay@hchyun.com
+ */
+public interface UserService {
+
+ /**
+ * 判断用户名是否存在
+ * @param username
+ * @return
+ */
+ public boolean queryUSerNameIsExist(String username);
+
+}
diff --git a/foodie-service/src/main/java/cn/odliken/service/impl/StuServiceImpl.java b/foodie-service/src/main/java/cn/odliken/service/impl/StuServiceImpl.java
new file mode 100644
index 0000000..8c60fc9
--- /dev/null
+++ b/foodie-service/src/main/java/cn/odliken/service/impl/StuServiceImpl.java
@@ -0,0 +1,68 @@
+package cn.odliken.service.impl;
+
+import cn.odliken.mapper.StuMapper;
+import cn.odliken.pojo.Stu;
+import cn.odliken.service.StuService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @author: Clay
+ * @date: 2022/1/25 14:07
+ * @description:StuServiceImpl
+ * @email: clay@hchyun.com
+ */
+@Service
+public class StuServiceImpl implements StuService {
+
+
+ @Autowired
+ private StuMapper stuMapper;
+
+ /**
+ * 查询stu
+ *
+ * 只需要事务支持即可
+ * @param id
+ * @return
+ */
+ @Transactional(propagation = Propagation.SUPPORTS)
+ @Override
+ public Stu getStuInfo(int id) {
+ return stuMapper.selectByPrimaryKey(id);
+ }
+
+ @Transactional(propagation = Propagation.REQUIRED)
+ @Override
+ public void saveStu() {
+ Stu stu = new Stu();
+ stu.setName("cao");
+ stu.setAge(2000);
+ stuMapper.insert(stu);
+
+ }
+
+ @Transactional(propagation = Propagation.REQUIRED)
+ @Override
+ public void updateStu(int id) {
+ Stu stu = new Stu();
+ stu.setName("cao");
+ stu.setAge(2000);
+ stu.setId(id);
+ stuMapper.selectByPrimaryKey(stu);
+ }
+
+ @Transactional(propagation = Propagation.REQUIRED)
+ @Override
+ public void deleteStu(int id) {
+ Stu stu = new Stu();
+ stu.setName("cao");
+ stu.setAge(2000);
+ stu.setId(id);
+ stuMapper.deleteByPrimaryKey(stu);
+
+ }
+
+}
diff --git a/foodie-service/src/main/java/cn/odliken/service/impl/UserServiceImpl.java b/foodie-service/src/main/java/cn/odliken/service/impl/UserServiceImpl.java
new file mode 100644
index 0000000..836ac00
--- /dev/null
+++ b/foodie-service/src/main/java/cn/odliken/service/impl/UserServiceImpl.java
@@ -0,0 +1,36 @@
+package cn.odliken.service.impl;
+
+import cn.odliken.mapper.StuMapper;
+import cn.odliken.mapper.UsersMapper;
+import cn.odliken.pojo.Stu;
+import cn.odliken.pojo.Users;
+import cn.odliken.service.StuService;
+import cn.odliken.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.entity.Example;
+
+/**
+ * @author: Clay
+ * @date: 2022/1/25 14:07
+ * @description:StuServiceImpl
+ * @email: clay@hchyun.com
+ */
+@Service
+public class UserServiceImpl implements UserService {
+
+ @Autowired
+ private UsersMapper usersMapper;
+
+ @Transactional(propagation = Propagation.SUPPORTS)
+ @Override
+ public boolean queryUSerNameIsExist(String username) {
+ Example userExample = new Example(Users.class);
+ Example.Criteria userCriteria = userExample.createCriteria();
+ userCriteria.andEqualTo("username",username);
+ Users result = usersMapper.selectOneByExample(userExample);
+ return result==null ? false : true;
+ }
+}
diff --git a/foodie-service/target/foodie-service-1.0-SNAPSHOT.jar b/foodie-service/target/foodie-service-1.0-SNAPSHOT.jar
index 308c282..063b91f 100644
Binary files a/foodie-service/target/foodie-service-1.0-SNAPSHOT.jar and b/foodie-service/target/foodie-service-1.0-SNAPSHOT.jar differ
diff --git a/foodie-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/foodie-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
index e69de29..877b08c 100644
--- a/foodie-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
+++ b/foodie-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,4 @@
+F:\架构师之路\project\foodie-dev\foodie-service\src\main\java\cn\odliken\service\impl\UserServiceImpl.java
+F:\架构师之路\project\foodie-dev\foodie-service\src\main\java\cn\odliken\service\impl\StuServiceImpl.java
+F:\架构师之路\project\foodie-dev\foodie-service\src\main\java\cn\odliken\service\UserService.java
+F:\架构师之路\project\foodie-dev\foodie-service\src\main\java\cn\odliken\service\StuService.java
diff --git a/pom.xml b/pom.xml
index 4cab447..5621969 100644
--- a/pom.xml
+++ b/pom.xml
@@ -65,6 +65,23 @@
2.1.5
+
+
+ commons-codec
+ commons-codec
+ 1.11
+
+
+ org.apache.commons
+ commons-lang3
+ 3.4
+
+
+ org.apache.commons
+ commons-io
+ 1.3.2
+
+