Browse Source

整合api完成

yq 2 years ago
parent
commit
17eb8da7fb
17 changed files with 327 additions and 69 deletions
  1. 9 0
      pom.xml
  2. 14 5
      usky-module-demo/usky-module-demo-api/pom.xml
  3. 31 0
      usky-module-demo/usky-module-demo-api/src/main/java/com/usky/demo/api/RemoteUserService.java
  4. 105 0
      usky-module-demo/usky-module-demo-api/src/main/java/com/usky/demo/api/domain/SysUserVO.java
  5. 48 0
      usky-module-demo/usky-module-demo-api/src/main/java/com/usky/demo/api/factory/RemoteUserFallbackFactory.java
  6. 7 0
      usky-module-demo/usky-module-demo-biz/pom.xml
  7. 4 2
      usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/RuoYiSystemApplication.java
  8. 12 8
      usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/controller/MybatisGeneratorUtils.java
  9. 1 1
      usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/controller/TestController.java
  10. 60 0
      usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/controller/api/SysUserControllerApi.java
  11. 21 0
      usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/controller/web/SysUserController.java
  12. 2 2
      usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/domain/SysUser.java
  13. 3 3
      usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/mapper/SysUserMapper.java
  14. 3 3
      usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/service/SysUserService.java
  15. 5 5
      usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/service/impl/SysUserServiceImpl.java
  16. 0 38
      usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/controller/web/SysUserController.java
  17. 2 2
      usky-module-demo/usky-module-demo-biz/src/main/resources/mapper.demo/SysUserMapper.xml

+ 9 - 0
pom.xml

@@ -20,4 +20,13 @@
         <module>usky-module-demo</module>
     </modules>
 
+
+    <dependencies>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+
+    </dependencies>
+
 </project>

+ 14 - 5
usky-module-demo/usky-module-demo-api/pom.xml

@@ -10,11 +10,20 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>usky-module-demo-api</artifactId>
+    <!-- SpringCloud Openfeign -->
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.usky</groupId>
+            <artifactId>usky-common-core</artifactId>
+        </dependency>
+    </dependencies>
 
-    <properties>
-
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
-    </properties>
+    <build>
+        <finalName>${project.artifactId}</finalName>
+    </build>
 
 </project>

+ 31 - 0
usky-module-demo/usky-module-demo-api/src/main/java/com/usky/demo/api/RemoteUserService.java

@@ -0,0 +1,31 @@
+package com.usky.demo.api;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.demo.api.domain.SysUserVO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+@FeignClient(contextId = "remoteUserService", value = "usky-demo")
+public interface RemoteUserService {
+
+
+
+    @GetMapping("/byUserName")
+    ApiResult<List<SysUserVO>> getByUserName(String userName);
+
+
+    @PostMapping("/byUserName")
+    ApiResult<List<SysUserVO>> add(@RequestBody SysUserVO sysUserVO);
+
+
+    @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    ApiResult<String> upload(@RequestPart(value = "file") MultipartFile file);
+}

+ 105 - 0
usky-module-demo/usky-module-demo-api/src/main/java/com/usky/demo/api/domain/SysUserVO.java

@@ -0,0 +1,105 @@
+package com.usky.demo.api.domain;
+
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class SysUserVO {
+
+    /**
+     * 用户ID
+     */
+    private Long userId;
+
+    /**
+     * 部门ID
+     */
+    private Long deptId;
+
+    /**
+     * 用户账号
+     */
+    private String userName;
+
+    /**
+     * 用户昵称
+     */
+    private String nickName;
+
+    /**
+     * 用户类型(00系统用户)
+     */
+    private String userType;
+
+    /**
+     * 用户邮箱
+     */
+    private String email;
+
+    /**
+     * 手机号码
+     */
+    private String phonenumber;
+
+    /**
+     * 用户性别(0男 1女 2未知)
+     */
+    private String sex;
+
+    /**
+     * 头像地址
+     */
+    private String avatar;
+
+    /**
+     * 密码
+     */
+    private String password;
+
+    /**
+     * 帐号状态(0正常 1停用)
+     */
+    private String status;
+
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
+    private String delFlag;
+
+    /**
+     * 最后登录IP
+     */
+    private String loginIp;
+
+    /**
+     * 最后登录时间
+     */
+    private LocalDateTime loginDate;
+
+    /**
+     * 创建者
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新者
+     */
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 48 - 0
usky-module-demo/usky-module-demo-api/src/main/java/com/usky/demo/api/factory/RemoteUserFallbackFactory.java

@@ -0,0 +1,48 @@
+package com.usky.demo.api.factory;
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.exception.BusinessException;
+import com.usky.demo.api.RemoteUserService;
+import com.usky.demo.api.domain.SysUserVO;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+
+/**
+ * 用户服务降级处理
+ *
+ * @author ruoyi
+ */
+@Component
+public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserService>
+{
+    private static final Logger log = LoggerFactory.getLogger(RemoteUserFallbackFactory.class);
+
+    @Override
+    public RemoteUserService create(Throwable throwable)
+    {
+        log.error("用户服务调用失败:{}", throwable.getMessage());
+        return new RemoteUserService() {
+            @Override
+            public ApiResult<List<SysUserVO>> getByUserName(String userName) {
+                throw new BusinessException(throwable.getMessage());
+            }
+
+            @Override
+            public ApiResult<List<SysUserVO>> add(SysUserVO sysUserVO) {
+                throw new BusinessException(throwable.getMessage());
+            }
+
+            @Override
+            public ApiResult<String> upload(MultipartFile file) {
+                throw new BusinessException(throwable.getMessage());
+            }
+        };
+    }
+}

+ 7 - 0
usky-module-demo/usky-module-demo-biz/pom.xml

@@ -88,6 +88,13 @@
         </dependency>
 
 
+        <dependency>
+            <groupId>com.usky</groupId>
+            <artifactId>usky-module-demo-api</artifactId>
+            <version>0.0.1</version>
+        </dependency>
+
+
     </dependencies>
 
     <build>

+ 4 - 2
usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/RuoYiSystemApplication.java → usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/RuoYiSystemApplication.java

@@ -1,9 +1,10 @@
-package com.usky.demo;
+package com.usky.demo.biz;
 
 
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.context.annotation.ComponentScan;
 
 /**
@@ -13,7 +14,8 @@ import org.springframework.context.annotation.ComponentScan;
  */
 
 
-@MapperScan(value = "com.usky.demo.mapper")
+@EnableFeignClients
+@MapperScan(value = "com.usky.demo.biz.mapper")
 @ComponentScan("com.usky")
 @SpringBootApplication
 public class RuoYiSystemApplication

+ 12 - 8
usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/controller/MybatisGeneratorUtils.java → usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/controller/MybatisGeneratorUtils.java

@@ -1,4 +1,4 @@
-package com.usky.demo.controller;//package com.usky.demo.controller;//package com.usky.dm.controller.web.business;//package com.usky.dm.controller.web;
+package com.usky.demo.biz.controller;//package com.usky.demo.controller;//package com.usky.dm.controller.web.business;//package com.usky.dm.controller.web;
 
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.generator.AutoGenerator;
@@ -18,17 +18,20 @@ import java.util.List;
 public class MybatisGeneratorUtils {
     public static void main(String[] args) {
 
-            shell("usky-modules-demo-biz");
+            shell("usky-module-demo","usky-module-demo-biz");
     }
 
-    private static void shell(String model) {
+    private static void shell(String parentName,String model) {
 
         AutoGenerator mpg = new AutoGenerator();
         //1、全局配置
         GlobalConfig gc = new GlobalConfig();
-        File file = new File(model);
-        String path = file.getAbsolutePath();
-        gc.setOutputDir(path + "/src/main/java");  //生成路径(一般都是生成在此项目的src/main/java下面)
+//        File file = new File(model);
+//        String path = file.getAbsolutePath();
+        String projectPath = System.getProperty("user.dir");
+        projectPath+="/"+parentName;
+        projectPath+="/"+model;
+        gc.setOutputDir(projectPath+ "/src/main/java");  //生成路径(一般都是生成在此项目的src/main/java下面)
         //修改为自己的名字
         gc.setAuthor("ya"); //设置作者
         gc.setOpen(false);
@@ -48,7 +51,7 @@ public class MybatisGeneratorUtils {
 
         // 3、包配置
         PackageConfig pc = new PackageConfig();
-        pc.setParent("com.usky.demo");
+        pc.setParent("com.usky.demo.biz");
         pc.setController("controller.web");
         pc.setEntity("domain");
         pc.setMapper("mapper");
@@ -86,11 +89,12 @@ public class MybatisGeneratorUtils {
         // 自定义输出配置
         List<FileOutConfig> focList = new ArrayList<>();
         // 自定义配置会被优先输出
+        String finalProjectPath = projectPath;
         focList.add(new FileOutConfig(templatePath) {
             @Override
             public String outputFile(TableInfo tableInfo) {
                 // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
-                return path + "/src/main/resources/mapper.demo" + "/"
+                return finalProjectPath + "/src/main/resources/mapper.demo" + "/"
                         + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
             }
         });

+ 1 - 1
usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/controller/TestController.java → usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/controller/TestController.java

@@ -1,4 +1,4 @@
-package com.usky.demo.controller;//package com.usky.demo.controller;
+package com.usky.demo.biz.controller;//package com.usky.demo.controller;
 //
 //
 //import org.springframework.web.bind.annotation.RestController;

+ 60 - 0
usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/controller/api/SysUserControllerApi.java

@@ -0,0 +1,60 @@
+package com.usky.demo.biz.controller.api;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.exception.BusinessException;
+import com.usky.common.core.util.BeanMapperUtils;
+import com.usky.common.core.util.FileUtils;
+import com.usky.common.spring.util.GlobalUtils;
+import com.usky.demo.api.RemoteUserService;
+import com.usky.demo.api.domain.SysUserVO;
+import com.usky.demo.biz.domain.SysUser;
+import com.usky.demo.biz.service.SysUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+
+@RestController
+public class SysUserControllerApi implements RemoteUserService {
+
+    @Autowired
+    private SysUserService sysUserService;
+    @Override
+    public ApiResult<List<SysUserVO>> getByUserName(String userName) {
+        LambdaQueryWrapper<SysUser> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(SysUser::getUserName,userName);
+        return ApiResult.success(BeanMapperUtils.mapList(sysUserService.list(queryWrapper),SysUser.class,SysUserVO.class));
+    }
+
+    @Override
+    public ApiResult<List<SysUserVO>> add(SysUserVO sysUserVO) {
+        sysUserService.save(BeanMapperUtils.map(sysUserVO, SysUser.class));
+        return ApiResult.success(new ArrayList<>());
+    }
+
+    @Override
+    public ApiResult<String> upload(MultipartFile multipartFile) {
+        Optional.ofNullable(multipartFile).orElseThrow(() ->  new BusinessException("文件为空"));
+        String originalFilename = multipartFile.getOriginalFilename();
+        String newFileName = System.currentTimeMillis() + originalFilename;
+        File file = FileUtils.getFile(GlobalUtils.getTempBaseDir(), newFileName);
+        String urlPath = "";
+        try {
+            try {
+                multipartFile.transferTo(file);
+            } catch (IOException e) {
+                throw new BusinessException("文件上传失败");
+            }
+        } catch (Exception e) {
+
+        }
+        return ApiResult.success(urlPath);
+    }
+}

+ 21 - 0
usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/controller/web/SysUserController.java

@@ -0,0 +1,21 @@
+package com.usky.demo.biz.controller.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ * 用户信息表 前端控制器
+ * </p>
+ *
+ * @author ya
+ * @since 2022-04-21
+ */
+@Controller
+@RequestMapping("/sysUser")
+public class SysUserController {
+
+}
+

+ 2 - 2
usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/domain/SysUser.java → usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/domain/SysUser.java

@@ -1,4 +1,4 @@
-package com.usky.demo.domain;
+package com.usky.demo.biz.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -14,7 +14,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author ya
- * @since 2022-04-20
+ * @since 2022-04-21
  */
 @Data
 @EqualsAndHashCode(callSuper = false)

+ 3 - 3
usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/mapper/SysUserMapper.java → usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/mapper/SysUserMapper.java

@@ -1,6 +1,6 @@
-package com.usky.demo.mapper;
+package com.usky.demo.biz.mapper;
 
-import com.usky.demo.domain.SysUser;
+import com.usky.demo.biz.domain.SysUser;
 import com.usky.common.mvc.base.CrudMapper;
 
 /**
@@ -9,7 +9,7 @@ import com.usky.common.mvc.base.CrudMapper;
  * </p>
  *
  * @author ya
- * @since 2022-04-20
+ * @since 2022-04-21
  */
 public interface SysUserMapper extends CrudMapper<SysUser> {
 

+ 3 - 3
usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/service/SysUserService.java → usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/service/SysUserService.java

@@ -1,6 +1,6 @@
-package com.usky.demo.service;
+package com.usky.demo.biz.service;
 
-import com.usky.demo.domain.SysUser;
+import com.usky.demo.biz.domain.SysUser;
 import com.usky.common.mvc.base.CrudService;
 
 /**
@@ -9,7 +9,7 @@ import com.usky.common.mvc.base.CrudService;
  * </p>
  *
  * @author ya
- * @since 2022-04-20
+ * @since 2022-04-21
  */
 public interface SysUserService extends CrudService<SysUser> {
 

+ 5 - 5
usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/service/impl/SysUserServiceImpl.java → usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/biz/service/impl/SysUserServiceImpl.java

@@ -1,8 +1,8 @@
-package com.usky.demo.service.impl;
+package com.usky.demo.biz.service.impl;
 
-import com.usky.demo.domain.SysUser;
-import com.usky.demo.mapper.SysUserMapper;
-import com.usky.demo.service.SysUserService;
+import com.usky.demo.biz.domain.SysUser;
+import com.usky.demo.biz.mapper.SysUserMapper;
+import com.usky.demo.biz.service.SysUserService;
 import com.usky.common.mvc.base.AbstractCrudService;
 import org.springframework.stereotype.Service;
 
@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service;
  * </p>
  *
  * @author ya
- * @since 2022-04-20
+ * @since 2022-04-21
  */
 @Service
 public class SysUserServiceImpl extends AbstractCrudService<SysUserMapper, SysUser> implements SysUserService {

+ 0 - 38
usky-module-demo/usky-module-demo-biz/src/main/java/com/usky/demo/controller/web/SysUserController.java

@@ -1,38 +0,0 @@
-package com.usky.demo.controller.web;
-
-
-import com.usky.common.core.bean.ApiResult;
-import com.usky.demo.domain.SysUser;
-import com.usky.demo.service.SysUserService;
-import com.usky.demo.service.impl.SysUserServiceImpl;
-import io.swagger.annotations.ApiResponses;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-
-/**
- * <p>
- * 用户信息表 前端控制器
- * </p>
- *
- * @author ya
- * @since 2022-04-20
- */
-@RestController
-@RequestMapping("/sysUser")
-public class SysUserController {
-
-
-    @Autowired
-    private SysUserService sysUserService;
-
-    @RequestMapping("/list")
-    public ApiResult<List<SysUser>> getList(){
-        return ApiResult.success(sysUserService.list());
-    }
-}
-

+ 2 - 2
usky-module-demo/usky-module-demo-biz/src/main/resources/mapper.demo/SysUserMapper.xml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.usky.demo.mapper.SysUserMapper">
+<mapper namespace="com.usky.demo.biz.mapper.SysUserMapper">
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.usky.demo.domain.SysUser">
+    <resultMap id="BaseResultMap" type="com.usky.demo.biz.domain.SysUser">
         <id column="user_id" property="userId" />
         <result column="dept_id" property="deptId" />
         <result column="user_name" property="userName" />