Browse Source

封装inner-api

nnkwrik 6 years ago
parent
commit
8765358ca6
24 changed files with 314 additions and 249 deletions
  1. 6 50
      common/pom.xml
  2. 6 0
      common/src/main/java/io/github/nnkwrik/common/dto/SimpleGoods.java
  3. 7 0
      common/src/main/java/io/github/nnkwrik/common/dto/SimpleUser.java
  4. 6 0
      goods-service/pom.xml
  5. 2 2
      goods-service/src/main/java/io/github/nnkwrik/goodsservice/GoodsServiceApplication.java
  6. 7 3
      goods-service/src/main/java/io/github/nnkwrik/goodsservice/controller/GoodsController.java
  7. 11 7
      goods-service/src/main/java/io/github/nnkwrik/goodsservice/controller/TestController.java
  8. 5 1
      goods-service/src/main/java/io/github/nnkwrik/goodsservice/controller/UserController.java
  9. 0 3
      goods-service/src/main/java/io/github/nnkwrik/goodsservice/service/UserService.java
  10. 5 22
      goods-service/src/main/java/io/github/nnkwrik/goodsservice/service/impl/GoodsServiceImpl.java
  11. 0 16
      goods-service/src/main/java/io/github/nnkwrik/goodsservice/service/impl/UserServiceImpl.java
  12. 6 0
      im-service/pom.xml
  13. 2 2
      im-service/src/main/java/io/github/nnkwrik/imservice/ImServiceApplication.java
  14. 0 42
      im-service/src/main/java/io/github/nnkwrik/imservice/client/UserClient.java
  15. 9 9
      im-service/src/main/java/io/github/nnkwrik/imservice/controller/TestController.java
  16. 8 45
      im-service/src/main/java/io/github/nnkwrik/imservice/service/impl/FormServiceImpl.java
  17. 10 42
      im-service/src/main/java/io/github/nnkwrik/imservice/service/impl/IndexServiceImpl.java
  18. 48 0
      inner-api/pom.xml
  19. 5 3
      inner-api/src/main/java/fangxianyu/innerApi/goods/GoodsClient.java
  20. 43 0
      inner-api/src/main/java/fangxianyu/innerApi/goods/GoodsClientHandler.java
  21. 1 2
      inner-api/src/main/java/fangxianyu/innerApi/user/UserClient.java
  22. 42 0
      inner-api/src/main/java/fangxianyu/innerApi/user/UserClientHandler.java
  23. 0 0
      inner-api/src/main/resources/application.properties
  24. 85 0
      pom.xml

+ 6 - 50
common/pom.xml

@@ -3,28 +3,17 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
-    <groupId>io.github.nnkwrik</groupId>
+    <parent>
+        <groupId>io.github.nnkwrik</groupId>
+        <artifactId>fangxianyu</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+
     <artifactId>common</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
-    <packaging>jar</packaging>
 
     <name>common</name>
     <description>Demo project for Spring Boot</description>
 
-    <parent>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-parent</artifactId>
-        <version>2.1.0.RELEASE</version>
-        <relativePath/> <!-- lookup parent from repository -->
-    </parent>
-
-
-    <properties>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <java.version>1.8</java.version>
-        <spring-cloud.version>Greenwich.M1</spring-cloud.version>
-    </properties>
 
     <dependencies>
 
@@ -64,37 +53,4 @@
 
     </dependencies>
 
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.springframework.cloud</groupId>
-                <artifactId>spring-cloud-dependencies</artifactId>
-                <version>${spring-cloud.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
-
-    <repositories>
-        <repository>
-            <id>spring-milestones</id>
-            <name>Spring Milestones</name>
-            <url>https://repo.spring.io/milestone</url>
-            <snapshots>
-                <enabled>false</enabled>
-            </snapshots>
-        </repository>
-    </repositories>
-
-
 </project>

+ 6 - 0
common/src/main/java/io/github/nnkwrik/common/dto/SimpleGoods.java

@@ -12,4 +12,10 @@ public class SimpleGoods {
     private String name;
     private String primaryPicUrl;
     private Double price;
+
+    public static SimpleGoods unknownGoods() {
+        SimpleGoods unknownGoods = new SimpleGoods();
+        unknownGoods.setName("商品不存在");
+        return unknownGoods;
+    }
 }

+ 7 - 0
common/src/main/java/io/github/nnkwrik/common/dto/SimpleUser.java

@@ -18,4 +18,11 @@ public class SimpleUser {
 
     @JsonFormat(pattern = StdDateFormat.DATE_FORMAT_STR_ISO8601)
     private Date registerTime;
+
+    public static SimpleUser unknownUser() {
+        SimpleUser unknownUser = new SimpleUser();
+        unknownUser.setNickName("用户不存在");
+        unknownUser.setAvatarUrl("https://i.postimg.cc/RVbDV5fN/anonymous.png");
+        return unknownUser;
+    }
 }

+ 6 - 0
goods-service/pom.xml

@@ -76,6 +76,12 @@
             <version>0.0.1-SNAPSHOT</version>
         </dependency>
 
+        <dependency>
+            <groupId>fangxianyu</groupId>
+            <artifactId>inner-api</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
+
         <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>

+ 2 - 2
goods-service/src/main/java/io/github/nnkwrik/goodsservice/GoodsServiceApplication.java

@@ -5,9 +5,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
 import org.springframework.cloud.openfeign.EnableFeignClients;
 
-@SpringBootApplication(scanBasePackages = "io.github.nnkwrik")
+@SpringBootApplication(scanBasePackages = {"io.github.nnkwrik", "fangxianyu.innerApi.user"})
 @EnableEurekaClient
-@EnableFeignClients
+@EnableFeignClients(basePackages = "fangxianyu.innerApi.user")
 public class GoodsServiceApplication {
 
     public static void main(String[] args) {

+ 7 - 3
goods-service/src/main/java/io/github/nnkwrik/goodsservice/controller/GoodsController.java

@@ -1,5 +1,6 @@
 package io.github.nnkwrik.goodsservice.controller;
 
+import fangxianyu.innerApi.user.UserClientHandler;
 import io.github.nnkwrik.common.dto.JWTUser;
 import io.github.nnkwrik.common.dto.Response;
 import io.github.nnkwrik.common.dto.SimpleUser;
@@ -9,8 +10,8 @@ import io.github.nnkwrik.goodsservice.model.po.Goods;
 import io.github.nnkwrik.goodsservice.model.po.GoodsGallery;
 import io.github.nnkwrik.goodsservice.model.po.PostExample;
 import io.github.nnkwrik.goodsservice.model.vo.CategoryPageVo;
-import io.github.nnkwrik.goodsservice.model.vo.GoodsDetailPageVo;
 import io.github.nnkwrik.goodsservice.model.vo.CommentVo;
+import io.github.nnkwrik.goodsservice.model.vo.GoodsDetailPageVo;
 import io.github.nnkwrik.goodsservice.service.GoodsService;
 import io.github.nnkwrik.goodsservice.service.UserService;
 import lombok.extern.slf4j.Slf4j;
@@ -38,6 +39,9 @@ public class GoodsController {
     @Autowired
     private BrowseCache browseCache;
 
+    @Autowired
+    private UserClientHandler userClientHandler;
+
     /**
      * 通过分类浏览商品,获取选定目录下的商品列表和同级的兄弟目录
      *
@@ -91,7 +95,7 @@ public class GoodsController {
         //获取商品详情
         Goods goods = goodsService.getGoodsDetail(goodsId);
         //获取买家信息
-        SimpleUser seller = userService.getUserInfo(goods.getSellerId());
+        SimpleUser seller = userClientHandler.getSimpleUser(goods.getSellerId());
         if (seller == null) {
             log.info("搜索goodsId = 【{}】的详情时出错", goodsId);
             return Response.fail(Response.USER_IS_NOT_EXIST, "无法搜索到商品卖家的信息");
@@ -154,7 +158,7 @@ public class GoodsController {
         }
         post.setSellerId(user.getOpenId());
         goodsService.postGoods(post);
-        log.info("用户发布商品:用户昵称=【{}】,商品名=【{}】,{}张图片", user.getNickName(), post.getName(),post.getImages().size());
+        log.info("用户发布商品:用户昵称=【{}】,商品名=【{}】,{}张图片", user.getNickName(), post.getName(), post.getImages().size());
 
         return Response.ok();
     }

+ 11 - 7
goods-service/src/main/java/io/github/nnkwrik/goodsservice/controller/TestController.java

@@ -1,16 +1,18 @@
 package io.github.nnkwrik.goodsservice.controller;
 
+import fangxianyu.innerApi.user.UserClientHandler;
 import io.github.nnkwrik.common.dto.JWTUser;
 import io.github.nnkwrik.common.dto.Response;
 import io.github.nnkwrik.common.token.TokenSolver;
 import io.github.nnkwrik.common.token.injection.JWT;
-import io.github.nnkwrik.goodsservice.client.UserClient;
 import io.github.nnkwrik.goodsservice.model.po.Goods;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 /**
  * @author nnkwrik
@@ -20,12 +22,12 @@ import java.util.*;
 public class TestController {
 
     @Autowired
-    private UserClient client;
+    private UserClientHandler userClientHandler;
 
     @GetMapping("/testFeign")
     public Response testFeign() {
 
-        return client.getSimpleUser("1");
+        return Response.ok(userClientHandler.getSimpleUser("1"));
     }
 
     @GetMapping("/testFeign2")
@@ -33,17 +35,18 @@ public class TestController {
         List<String> ids = new ArrayList<>();
         ids.add("1");
         ids.add("3");
-        return client.getSimpleUserList(ids);
+        return Response.ok(userClientHandler.getSimpleUserList(ids));
     }
 
     @GetMapping("/testFeign3")
     public Response testFeign3() {
-        return client.getSimpleUser("1");
+        return Response.ok(userClientHandler.getSimpleUser("1"));
     }
 
 
     /**
      * jwt解析失败时会抛错
+     *
      * @param jwt
      * @return
      */
@@ -56,6 +59,7 @@ public class TestController {
 
     /**
      * jwt解析失败时不会抛错
+     *
      * @param jwt 解析失败时是null
      * @return
      */
@@ -80,7 +84,7 @@ public class TestController {
 
     //testNOT_NULL_JSON
     @GetMapping("/testJson")
-    public Object testNOT_NULL_JSON(){
+    public Object testNOT_NULL_JSON() {
         Goods goods = new Goods();
         goods.setId(1);
         goods.setLastEdit(new Date());

+ 5 - 1
goods-service/src/main/java/io/github/nnkwrik/goodsservice/controller/UserController.java

@@ -1,5 +1,6 @@
 package io.github.nnkwrik.goodsservice.controller;
 
+import fangxianyu.innerApi.user.UserClientHandler;
 import io.github.nnkwrik.common.dto.JWTUser;
 import io.github.nnkwrik.common.dto.Response;
 import io.github.nnkwrik.common.dto.SimpleUser;
@@ -29,6 +30,9 @@ public class UserController {
     @Autowired
     private GoodsService goodsService;
 
+    @Autowired
+    private UserClientHandler userClientHandler;
+
     /**
      * 收藏或取消收藏某个商品
      *
@@ -112,7 +116,7 @@ public class UserController {
     public Response getUserPage(@PathVariable("userId") String userId,
                                 @RequestParam(value = "page", defaultValue = "1") int page,
                                 @RequestParam(value = "size", defaultValue = "10") int size) {
-        SimpleUser user = userService.getUserInfo(userId);
+        SimpleUser user = userClientHandler.getSimpleUser(userId);
         if (user == null) {
             log.info("搜索goodsId = 【{}】的详情时出错", userId);
             return Response.fail(Response.USER_IS_NOT_EXIST, "无法搜索到商品卖家的信息");

+ 0 - 3
goods-service/src/main/java/io/github/nnkwrik/goodsservice/service/UserService.java

@@ -1,6 +1,5 @@
 package io.github.nnkwrik.goodsservice.service;
 
-import io.github.nnkwrik.common.dto.SimpleUser;
 import io.github.nnkwrik.goodsservice.model.po.Goods;
 
 import java.util.LinkedHashMap;
@@ -24,7 +23,5 @@ public interface UserService {
 
     List<Goods> getUserPosted(String userId, int page, int size);
 
-    SimpleUser getUserInfo(String userId);
-
     LinkedHashMap<String, List<Goods>> getUserHistoryList(String userId, int page, int size);
 }

+ 5 - 22
goods-service/src/main/java/io/github/nnkwrik/goodsservice/service/impl/GoodsServiceImpl.java

@@ -1,16 +1,16 @@
 package io.github.nnkwrik.goodsservice.service.impl;
 
 import com.github.pagehelper.PageHelper;
+import fangxianyu.innerApi.user.UserClientHandler;
 import io.github.nnkwrik.common.dto.Response;
 import io.github.nnkwrik.common.dto.SimpleUser;
-import io.github.nnkwrik.goodsservice.client.UserClient;
+import io.github.nnkwrik.common.util.BeanListUtils;
 import io.github.nnkwrik.goodsservice.dao.CategoryMapper;
 import io.github.nnkwrik.goodsservice.dao.GoodsMapper;
 import io.github.nnkwrik.goodsservice.model.po.*;
 import io.github.nnkwrik.goodsservice.model.vo.CategoryPageVo;
 import io.github.nnkwrik.goodsservice.model.vo.CommentVo;
 import io.github.nnkwrik.goodsservice.service.GoodsService;
-import io.github.nnkwrik.common.util.BeanListUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -33,8 +33,7 @@ public class GoodsServiceImpl implements GoodsService {
     private GoodsMapper goodsMapper;
 
     @Autowired
-    private UserClient userClient;
-
+    private UserClientHandler userClientHandler;
 
     @Override
     public CategoryPageVo getGoodsAndBrotherCateById(int id, int page, int size) {
@@ -143,7 +142,7 @@ public class GoodsServiceImpl implements GoodsService {
 
 
         Map<String, SimpleUser> simpleUserMap
-                = getSimpleUserList(new ArrayList<>(userIdSet));
+                = userClientHandler.getSimpleUserList(new ArrayList<>(userIdSet));
 
         //加入评论中的用户信息
         baseComment.stream().map(base -> setUser4Comment(simpleUserMap, base).getReplyList())
@@ -154,20 +153,10 @@ public class GoodsServiceImpl implements GoodsService {
     }
 
 
-    private Map<String, SimpleUser> getSimpleUserList(List<String> openIdList) {
-        log.info("从用户服务查询用户的简单信息");
-        Response<Map<String, SimpleUser>> response = userClient.getSimpleUserList(openIdList);
-        if (response.getErrno() == Response.USER_IS_NOT_EXIST) {
-            log.info("没有查到匹配openId的用户");
-            return new HashMap<>();
-        }
-        return response.getData();
-    }
-
     private CommentVo setUser4Comment(Map<String, SimpleUser> simpleUserMap, CommentVo comment) {
         SimpleUser userDTO = simpleUserMap.get(comment.getUserId());
         if (userDTO == null) {
-            comment.setSimpleUser(unknownUser());
+            comment.setSimpleUser(SimpleUser.unknownUser());
         } else {
             comment.setSimpleUser(userDTO);
         }
@@ -180,11 +169,5 @@ public class GoodsServiceImpl implements GoodsService {
         return comment;
     }
 
-    private SimpleUser unknownUser() {
-        SimpleUser unknownUser = new SimpleUser();
-        unknownUser.setNickName("用户不存在");
-        unknownUser.setAvatarUrl("https://i.postimg.cc/RVbDV5fN/anonymous.png");
-        return unknownUser;
-    }
 
 }

+ 0 - 16
goods-service/src/main/java/io/github/nnkwrik/goodsservice/service/impl/UserServiceImpl.java

@@ -1,9 +1,6 @@
 package io.github.nnkwrik.goodsservice.service.impl;
 
 import com.github.pagehelper.PageHelper;
-import io.github.nnkwrik.common.dto.Response;
-import io.github.nnkwrik.common.dto.SimpleUser;
-import io.github.nnkwrik.goodsservice.client.UserClient;
 import io.github.nnkwrik.goodsservice.dao.UserMapper;
 import io.github.nnkwrik.goodsservice.model.po.Goods;
 import io.github.nnkwrik.goodsservice.model.po.GoodsExample;
@@ -31,9 +28,6 @@ public class UserServiceImpl implements UserService {
     @Autowired
     private UserMapper userMapper;
 
-    @Autowired
-    private UserClient userClient;
-
     @Override
     public Boolean userHasCollect(String userId, int goodsId) {
         return userMapper.userHasCollect(userId, goodsId);
@@ -73,16 +67,6 @@ public class UserServiceImpl implements UserService {
         return userMapper.getUserPosted(userId);
     }
 
-    @Override
-    public SimpleUser getUserInfo(String userId) {
-        Response<SimpleUser> response = userClient.getSimpleUser(userId);
-        if (response.getErrno() == Response.USER_IS_NOT_EXIST) {
-            log.info("没有搜索到用户的相关信息");
-            return null;
-        }
-        return response.getData();
-    }
-
 
     @Override
     public LinkedHashMap<String, List<Goods>> getUserHistoryList(String userId, int page, int size) {

+ 6 - 0
im-service/pom.xml

@@ -77,6 +77,12 @@
             <artifactId>common</artifactId>
             <version>0.0.1-SNAPSHOT</version>
         </dependency>
+
+        <dependency>
+            <groupId>fangxianyu</groupId>
+            <artifactId>inner-api</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
     </dependencies>
 
     <dependencyManagement>

+ 2 - 2
im-service/src/main/java/io/github/nnkwrik/imservice/ImServiceApplication.java

@@ -5,9 +5,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
 import org.springframework.cloud.openfeign.EnableFeignClients;
 
-@SpringBootApplication(scanBasePackages = "io.github.nnkwrik")
+@SpringBootApplication(scanBasePackages = {"io.github.nnkwrik", "fangxianyu.innerApi.user", "fangxianyu.innerApi.goods"})
 @EnableEurekaClient
-@EnableFeignClients
+@EnableFeignClients(basePackages = {"fangxianyu.innerApi.user", "fangxianyu.innerApi.goods"})
 public class ImServiceApplication {
 
     public static void main(String[] args) {

+ 0 - 42
im-service/src/main/java/io/github/nnkwrik/imservice/client/UserClient.java

@@ -1,42 +0,0 @@
-package io.github.nnkwrik.imservice.client;
-
-import io.github.nnkwrik.common.dto.Response;
-import io.github.nnkwrik.common.dto.SimpleUser;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * TODO: 与goods-service中的重复
- * 使用user-service的api
- *
- * @author nnkwrik
- * @date 18/11/23 18:06
- */
-@FeignClient(name = "user-service")
-@RequestMapping("/user-service")
-public interface UserClient {
-
-    /**
-     * 获取用户openId的相关信息
-     *
-     * @param openId
-     * @return
-     */
-    @GetMapping("/simpleUser/{openId}")
-    Response<SimpleUser> getSimpleUser(@PathVariable("openId") String openId);
-
-    /**
-     * 获取用户openIdList的相关信息
-     *
-     * @param openIdList
-     * @return
-     */
-    @GetMapping("/simpleUserList")
-    Response<Map<String, SimpleUser>> getSimpleUserList(@RequestParam List<String> openIdList);
-}

+ 9 - 9
im-service/src/main/java/io/github/nnkwrik/imservice/controller/TestController.java

@@ -1,8 +1,8 @@
 package io.github.nnkwrik.imservice.controller;
 
+import fangxianyu.innerApi.goods.GoodsClient;
+import fangxianyu.innerApi.user.UserClient;
 import io.github.nnkwrik.common.dto.Response;
-import io.github.nnkwrik.imservice.client.GoodsClient;
-import io.github.nnkwrik.imservice.client.UserClient;
 import io.github.nnkwrik.imservice.service.WebSocketService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -39,24 +39,24 @@ public class TestController {
     }
 
     @GetMapping("/testGoods")
-    public Response testGoods(){
+    public Response testGoods() {
         return goodsClient.getSimpleGoods(12);
     }
 
     @GetMapping("/testGoodsList")
-    public Response testGoodsList(){
-        return goodsClient.getSimpleGoodsList(Arrays.asList(13,14,16));
+    public Response testGoodsList() {
+        return goodsClient.getSimpleGoodsList(Arrays.asList(13, 14, 16));
 
     }
 
     @GetMapping("/testUser")
-    public Response testUser(){
-        return userClient.getSimpleUser(1+"");
+    public Response testUser() {
+        return userClient.getSimpleUser(1 + "");
     }
 
     @GetMapping("/testUserList")
-    public Response testUserList(){
-        return userClient.getSimpleUserList(Arrays.asList("1","2"));
+    public Response testUserList() {
+        return userClient.getSimpleUserList(Arrays.asList("1", "2"));
 
     }
 

+ 8 - 45
im-service/src/main/java/io/github/nnkwrik/imservice/service/impl/FormServiceImpl.java

@@ -1,17 +1,13 @@
 package io.github.nnkwrik.imservice.service.impl;
 
 import com.github.pagehelper.PageHelper;
-import io.github.nnkwrik.common.dto.Response;
-import io.github.nnkwrik.common.dto.SimpleGoods;
-import io.github.nnkwrik.common.dto.SimpleUser;
-import io.github.nnkwrik.imservice.client.GoodsClient;
-import io.github.nnkwrik.imservice.client.UserClient;
+import fangxianyu.innerApi.goods.GoodsClientHandler;
+import fangxianyu.innerApi.user.UserClientHandler;
 import io.github.nnkwrik.imservice.dao.ChatMapper;
 import io.github.nnkwrik.imservice.dao.HistoryMapper;
 import io.github.nnkwrik.imservice.model.po.Chat;
 import io.github.nnkwrik.imservice.model.po.History;
 import io.github.nnkwrik.imservice.model.vo.ChatForm;
-import io.github.nnkwrik.imservice.redis.RedisClient;
 import io.github.nnkwrik.imservice.service.FormService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,8 +23,6 @@ import java.util.List;
 @Slf4j
 public class FormServiceImpl implements FormService {
 
-    @Autowired
-    private RedisClient redisClient;
 
     @Autowired
     private HistoryMapper historyMapper;
@@ -37,10 +31,11 @@ public class FormServiceImpl implements FormService {
     private ChatMapper chatMapper;
 
     @Autowired
-    private UserClient userClient;
+    private UserClientHandler userClientHandler;
 
     @Autowired
-    private GoodsClient goodsClient;
+    private GoodsClientHandler goodsClientHandler;
+
 
     @Override
     public ChatForm showForm(int chatId, String userId, int page, int size, int offset) {
@@ -50,13 +45,13 @@ public class FormServiceImpl implements FormService {
 
         //TODO 异步调用拿future
         if (chat.getU1().equals(userId)) {
-            vo.setOtherSide(getSimpleUser(chat.getU2()));
+            vo.setOtherSide(userClientHandler.getSimpleUser(chat.getU2()));
             vo.setIsU1(true);
         } else {
-            vo.setOtherSide(getSimpleUser(chat.getU1()));
+            vo.setOtherSide(userClientHandler.getSimpleUser(chat.getU1()));
             vo.setIsU1(false);
         }
-        vo.setGoods(getSimpleGoods(chat.getGoodsId()));
+        vo.setGoods(goodsClientHandler.getSimpleGoods(chat.getGoodsId()));
 
         int pageOffset = (page - 1) * size + offset;
         PageHelper.offsetPage(pageOffset, size);
@@ -67,37 +62,5 @@ public class FormServiceImpl implements FormService {
         return vo;
     }
 
-    //TODO 重复
-    private SimpleGoods getSimpleGoods(Integer goodsId) {
-        log.info("从商品服务查询商品的简单信息");
-        Response<SimpleGoods> response = goodsClient.getSimpleGoods(goodsId);
-        if (response.getErrno() != 0) {
-            log.info("从商品服务获取商品信息列表失败,errno={},原因={}", response.getErrno(), response.getErrmsg());
-            return unknownGoods();
-        }
-        return response.getData();
-    }
-
-    private SimpleUser getSimpleUser(String openId) {
-        log.info("从用户服务查询用户的简单信息");
-        Response<SimpleUser> response = userClient.getSimpleUser(openId);
-        if (response.getErrno() != 0) {
-            log.info("从用户服务获取用户信息列表失败,errno={},原因={}", response.getErrno(), response.getErrmsg());
-            return unknownUser();
-        }
-        return response.getData();
-    }
 
-    private SimpleUser unknownUser() {
-        SimpleUser unknownUser = new SimpleUser();
-        unknownUser.setNickName("用户不存在");
-        unknownUser.setAvatarUrl("https://i.postimg.cc/RVbDV5fN/anonymous.png");
-        return unknownUser;
-    }
-
-    private SimpleGoods unknownGoods() {
-        SimpleGoods unknownGoods = new SimpleGoods();
-        unknownGoods.setName("商品不存在");
-        return unknownGoods;
-    }
 }

+ 10 - 42
im-service/src/main/java/io/github/nnkwrik/imservice/service/impl/IndexServiceImpl.java

@@ -1,11 +1,10 @@
 package io.github.nnkwrik.imservice.service.impl;
 
 import com.github.pagehelper.PageHelper;
-import io.github.nnkwrik.common.dto.Response;
+import fangxianyu.innerApi.goods.GoodsClientHandler;
+import fangxianyu.innerApi.user.UserClientHandler;
 import io.github.nnkwrik.common.dto.SimpleGoods;
 import io.github.nnkwrik.common.dto.SimpleUser;
-import io.github.nnkwrik.imservice.client.GoodsClient;
-import io.github.nnkwrik.imservice.client.UserClient;
 import io.github.nnkwrik.imservice.dao.HistoryMapper;
 import io.github.nnkwrik.imservice.model.po.History;
 import io.github.nnkwrik.imservice.model.po.HistoryExample;
@@ -39,10 +38,10 @@ public class IndexServiceImpl implements IndexService {
     private HistoryMapper historyMapper;
 
     @Autowired
-    private UserClient userClient;
+    private UserClientHandler userClientHandler;
 
     @Autowired
-    private GoodsClient goodsClient;
+    private GoodsClientHandler goodsClientHandler;
 
 
     @Override
@@ -162,10 +161,12 @@ public class IndexServiceImpl implements IndexService {
                                                  Map<Integer, String> chatUserMap) {
 
         //去商品服务查商品图片
-        Map<Integer, SimpleGoods> simpleGoodsMap = getSimpleGoodsList(new ArrayList<>(chatGoodsMap.values()));
+        Map<Integer, SimpleGoods> simpleGoodsMap
+                = goodsClientHandler.getSimpleGoodsList(new ArrayList<>(chatGoodsMap.values()));
 
         //去用户服务查用户名字头像
-        Map<String, SimpleUser> simpleUserMap = getSimpleUserList(new ArrayList<>(chatUserMap.values()));
+        Map<String, SimpleUser> simpleUserMap
+                = userClientHandler.getSimpleUserList(new ArrayList<>(chatUserMap.values()));
 
 
         voList.stream().forEach(vo -> {
@@ -174,7 +175,7 @@ public class IndexServiceImpl implements IndexService {
 
             SimpleUser simpleUser = simpleUserMap.get(userId);
             if (simpleUser == null) {
-                simpleUser = unknownUser();
+                simpleUser = SimpleUser.unknownUser();
             }
             vo.setOtherSide(simpleUser);
 
@@ -182,7 +183,7 @@ public class IndexServiceImpl implements IndexService {
 
             SimpleGoods simpleGoods = simpleGoodsMap.get(goodsId);
             if (simpleGoods == null) {
-                simpleGoods = unknownGoods();
+                simpleGoods = SimpleGoods.unknownGoods();
             }
             vo.setGoods(simpleGoods);
 
@@ -191,37 +192,4 @@ public class IndexServiceImpl implements IndexService {
         return voList;
     }
 
-    //TODO 以下goods-service中有重复
-    private Map<Integer, SimpleGoods> getSimpleGoodsList(List<Integer> goodsIdList) {
-        log.info("从商品服务查询商品的简单信息");
-        Response<Map<Integer, SimpleGoods>> response = goodsClient.getSimpleGoodsList(goodsIdList);
-        if (response.getErrno() != 0) {
-            log.info("从商品服务获取商品信息列表失败,errno={},原因={}", response.getErrno(), response.getErrmsg());
-            return new HashMap<>();
-        }
-        return response.getData();
-    }
-
-    private Map<String, SimpleUser> getSimpleUserList(List<String> openIdList) {
-        log.info("从用户服务查询用户的简单信息");
-        Response<Map<String, SimpleUser>> response = userClient.getSimpleUserList(openIdList);
-        if (response.getErrno() != 0) {
-            log.info("从用户服务获取用户信息列表失败,errno={},原因={}", response.getErrno(), response.getErrmsg());
-            return new HashMap<>();
-        }
-        return response.getData();
-    }
-
-    private SimpleUser unknownUser() {
-        SimpleUser unknownUser = new SimpleUser();
-        unknownUser.setNickName("用户不存在");
-        unknownUser.setAvatarUrl("https://i.postimg.cc/RVbDV5fN/anonymous.png");
-        return unknownUser;
-    }
-
-    private SimpleGoods unknownGoods() {
-        SimpleGoods unknownGoods = new SimpleGoods();
-        unknownGoods.setName("商品不存在");
-        return unknownGoods;
-    }
 }

+ 48 - 0
inner-api/pom.xml

@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>io.github.nnkwrik</groupId>
+        <artifactId>fangxianyu</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+
+    <groupId>fangxianyu</groupId>
+    <artifactId>inner-api</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <packaging>jar</packaging>
+
+    <name>inner-api</name>
+    <description>Demo project for Spring Boot</description>
+
+
+    <dependencies>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>io.github.nnkwrik</groupId>
+            <artifactId>common</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
+
+    </dependencies>
+
+
+</project>

+ 5 - 3
im-service/src/main/java/io/github/nnkwrik/imservice/client/GoodsClient.java → inner-api/src/main/java/fangxianyu/innerApi/goods/GoodsClient.java

@@ -1,11 +1,13 @@
-package io.github.nnkwrik.imservice.client;
+package fangxianyu.innerApi.goods;
 
 import io.github.nnkwrik.common.dto.Response;
 import io.github.nnkwrik.common.dto.SimpleGoods;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 

+ 43 - 0
inner-api/src/main/java/fangxianyu/innerApi/goods/GoodsClientHandler.java

@@ -0,0 +1,43 @@
+package fangxianyu.innerApi.goods;
+
+import io.github.nnkwrik.common.dto.Response;
+import io.github.nnkwrik.common.dto.SimpleGoods;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author nnkwrik
+ * @date 18/12/08 11:02
+ */
+@Component
+@Slf4j
+public class GoodsClientHandler {
+
+    @Autowired
+    private GoodsClient goodsClient;
+
+    public SimpleGoods getSimpleGoods(Integer goodsId) {
+        log.info("从商品服务查询商品的简单信息");
+        Response<SimpleGoods> response = goodsClient.getSimpleGoods(goodsId);
+        if (response.getErrno() != 0) {
+            log.info("从商品服务获取商品信息列表失败,errno={},原因={}", response.getErrno(), response.getErrmsg());
+            return SimpleGoods.unknownGoods();
+        }
+        return response.getData();
+    }
+
+    public Map<Integer, SimpleGoods> getSimpleGoodsList(List<Integer> goodsIdList) {
+        log.info("从商品服务查询商品的简单信息");
+        Response<Map<Integer, SimpleGoods>> response = goodsClient.getSimpleGoodsList(goodsIdList);
+        if (response.getErrno() != 0) {
+            log.info("从商品服务获取商品信息列表失败,errno={},原因={}", response.getErrno(), response.getErrmsg());
+            return new HashMap<>();
+        }
+        return response.getData();
+    }
+}

+ 1 - 2
goods-service/src/main/java/io/github/nnkwrik/goodsservice/client/UserClient.java → inner-api/src/main/java/fangxianyu/innerApi/user/UserClient.java

@@ -1,4 +1,4 @@
-package io.github.nnkwrik.goodsservice.client;
+package fangxianyu.innerApi.user;
 
 import io.github.nnkwrik.common.dto.Response;
 import io.github.nnkwrik.common.dto.SimpleUser;
@@ -39,4 +39,3 @@ public interface UserClient {
     @GetMapping("/simpleUserList")
     Response<Map<String, SimpleUser>> getSimpleUserList(@RequestParam List<String> openIdList);
 }
-

+ 42 - 0
inner-api/src/main/java/fangxianyu/innerApi/user/UserClientHandler.java

@@ -0,0 +1,42 @@
+package fangxianyu.innerApi.user;
+
+import io.github.nnkwrik.common.dto.Response;
+import io.github.nnkwrik.common.dto.SimpleUser;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author nnkwrik
+ * @date 18/12/08 11:02
+ */
+@Component
+@Slf4j
+public class UserClientHandler {
+    @Autowired
+    private UserClient userClient;
+
+    public SimpleUser getSimpleUser(String openId) {
+        log.info("从用户服务查询用户的简单信息");
+        Response<SimpleUser> response = userClient.getSimpleUser(openId);
+        if (response.getErrno() != 0) {
+            log.info("从用户服务获取用户信息列表失败,errno={},原因={}", response.getErrno(), response.getErrmsg());
+            return SimpleUser.unknownUser();
+        }
+        return response.getData();
+    }
+
+    public Map<String, SimpleUser> getSimpleUserList(List<String> openIdList) {
+        log.info("从用户服务查询用户的简单信息");
+        Response<Map<String, SimpleUser>> response = userClient.getSimpleUserList(openIdList);
+        if (response.getErrno() != 0) {
+            log.info("从用户服务获取用户信息列表失败,errno={},原因={}", response.getErrno(), response.getErrmsg());
+            return new HashMap<>();
+        }
+        return response.getData();
+    }
+}

+ 0 - 0
inner-api/src/main/resources/application.properties


+ 85 - 0
pom.xml

@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>io.github.nnkwrik</groupId>
+    <artifactId>fangxianyu</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+
+
+    <modules>
+        <module>common</module>
+        <module>inner-api</module>
+    </modules>
+    <packaging>pom</packaging>
+
+    <name>fangxianyu</name>
+    <description>Demo project for Spring Boot</description>
+
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.1.0.RELEASE</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <java.version>1.8</java.version>
+        <spring-cloud.version>Greenwich.M1</spring-cloud.version>
+    </properties>
+
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>${spring-cloud.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <repositories>
+        <repository>
+            <id>spring-snapshots</id>
+            <name>Spring Snapshots</name>
+            <url>https://repo.spring.io/snapshot</url>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+        </repository>
+    </repositories>
+
+    <pluginRepositories>
+        <pluginRepository>
+            <id>spring-snapshots</id>
+            <name>Spring Snapshots</name>
+            <url>https://repo.spring.io/snapshot</url>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </pluginRepository>
+        <pluginRepository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+        </pluginRepository>
+    </pluginRepositories>
+
+</project>