MemberServiceIml.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package anyi.space.memberConsumer.service.impl;
  2. import anyi.sapce.common.entity.Member;
  3. import anyi.sapce.common.entity.ResponseResult;
  4. import anyi.space.memberConsumer.service.MemberService;
  5. import com.fasterxml.jackson.core.JsonProcessingException;
  6. import com.fasterxml.jackson.databind.ObjectMapper;
  7. import lombok.RequiredArgsConstructor;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.http.ResponseEntity;
  10. import org.springframework.stereotype.Service;
  11. import org.springframework.web.client.RestTemplate;
  12. import java.util.Map;
  13. /**
  14. * @ProjectName: distributedSystemLearn
  15. * @FileName: MemberServiceIml
  16. * @Author: 杨逸
  17. * @Data:2025/4/13 20:10
  18. * @Description:
  19. */
  20. @Slf4j
  21. @RequiredArgsConstructor
  22. @Service
  23. public class MemberServiceIml implements MemberService {
  24. private final RestTemplate restTemplate;
  25. private final ObjectMapper objectMapper;
  26. private final static String MEMBER_SERVICE_URL = "http://member-service-provider";
  27. @Override
  28. public Member getById(Long id) {
  29. /**
  30. * 通过RestTemplate调用远程服务
  31. */
  32. ResponseEntity<ResponseResult> resultResponseEntity = restTemplate.getForEntity(MEMBER_SERVICE_URL + "/member-provider/member?id="+id, ResponseResult.class);
  33. try {
  34. log.info("远程调用服务返回结果:{}",objectMapper.writeValueAsString(resultResponseEntity.getBody()));
  35. } catch (JsonProcessingException e) {
  36. e.printStackTrace();
  37. }
  38. Object data = resultResponseEntity.getBody().getData();
  39. //映射请求结果
  40. Map map = (Map) data;
  41. Member member = new Member();
  42. id = Long.valueOf(map.get("id") + "");
  43. member.setId(id);
  44. member.setName((String) map.get("name"));
  45. member.setPwd((String) map.get("pwd"));
  46. member.setEmail((String) map.get("email"));
  47. member.setGender((int)map.get("gender"));
  48. return member;
  49. }
  50. @Override
  51. public boolean save(Member member) {
  52. //直接传递参数,是使用json的格式提交数据
  53. ResponseEntity<ResponseResult> responseResultResponseEntity = restTemplate.postForEntity(MEMBER_SERVICE_URL + "/member-provider/member", member, ResponseResult.class);
  54. //HttpEntity<String> stringHttpEntity = new HttpEntity<>();
  55. Object data = responseResultResponseEntity.getBody().getData();
  56. boolean flag = (boolean) data;
  57. return flag;
  58. }
  59. }