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 + +