Browse Source

报价采纳/拒绝增加异常处理

chenw 7 years ago
parent
commit
13cfffd782

+ 25 - 2
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/PurchaseServiceImpl.java

@@ -1,8 +1,10 @@
 package com.usoftchina.saas.purchase.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.netflix.discovery.converters.Auto;
+import com.rabbitmq.tools.json.JSONUtil;
 import com.usoftchina.saas.account.dto.CompanyDTO;
 import com.usoftchina.saas.commons.cache.ConfigsCache;
 import com.usoftchina.saas.document.api.AddressApi;
@@ -54,6 +56,7 @@ import com.usoftchina.saas.transfers.dto.MessageInfo;
 import com.usoftchina.saas.utils.BeanMapper;
 import com.usoftchina.saas.utils.CollectionUtils;
 import com.usoftchina.saas.utils.JsonUtils;
+import feign.Response;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -61,6 +64,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
+import java.io.IOException;
+import java.io.Reader;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.concurrent.CountDownLatch;
@@ -895,10 +900,28 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
     public void DealInquiry(InquiryDealReqDTO inquiryDealReqDTO) {
         Long enUU = companyApi.getCompanyById(BaseContextHolder.getCompanyId()).getData().getUu();
         Long userUU = accountApi.getAccountById(BaseContextHolder.getUserId()).getData().getUu();
+        Response response = null;
         if (inquiryDealReqDTO.getStatus() == 1){
-            inquiryApi.adoptQuote(inquiryDealReqDTO.getId(), inquiryDealReqDTO.getStatus(), enUU, userUU);
+            response = inquiryApi.adoptQuote(inquiryDealReqDTO.getId(), inquiryDealReqDTO.getStatus(), enUU, userUU);
         }else{
-            inquiryApi.refuseQuote(inquiryDealReqDTO.getId(), inquiryDealReqDTO.getStatus(), enUU, userUU, inquiryDealReqDTO.getRefusereason());
+            response = inquiryApi.refuseQuote(inquiryDealReqDTO.getId(), inquiryDealReqDTO.getStatus(), enUU, userUU, inquiryDealReqDTO.getRefusereason());
+        }
+        if (response.status() == 500){
+            try {
+                Reader reader = response.body().asReader();
+                int size = response.body().length();
+                char[] ch = new char[size];
+                int temp = 0, len = 0;
+                while ((temp = reader.read()) != -1){
+                    ch[len] = (char) temp;
+                    len++;
+                }
+                reader.close();
+                JSONObject jsonObject = JSONObject.parseObject(new String(ch));
+                throw new BizException(79320, jsonObject.getString("message"));
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
         }
     }
 

+ 4 - 3
applications/transfers/mall-api/src/main/java/com/usoftchina/saas/inquiry/api/InquiryApi.java

@@ -3,6 +3,7 @@ package com.usoftchina.saas.inquiry.api;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.exception.ExceptionCode;
 import com.usoftchina.saas.inquiry.po.inquiry.*;
+import feign.Response;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.stereotype.Component;
 import org.springframework.ui.ModelMap;
@@ -115,7 +116,7 @@ public interface InquiryApi {
      * @param useruu    用户uu
      */
     @PostMapping("/buyer/adopt")
-    void adoptQuote(@RequestParam("id") Long id, @RequestParam("status") Short status,
+    Response adoptQuote(@RequestParam("id") Long id, @RequestParam("status") Short status,
                     @RequestParam("enuu") Long enuu, @RequestParam("useruu") Long useruu);
 
     /**
@@ -127,6 +128,6 @@ public interface InquiryApi {
      * @param refusereason  拒绝理由
      */
     @PostMapping("/buyer/refuse")
-    void refuseQuote(@RequestParam("id") Long id, @RequestParam("status") Short status, @RequestParam("enuu") Long enuu,
-                     @RequestParam("useruu") Long useruu, @RequestParam("refusereason") String refusereason);
+    Response refuseQuote(@RequestParam("id") Long id, @RequestParam("status") Short status, @RequestParam("enuu") Long enuu,
+                         @RequestParam("useruu") Long useruu, @RequestParam("refusereason") String refusereason);
 }

+ 27 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/saas/inquiry/po/inquiry/InquiryResult.java

@@ -0,0 +1,27 @@
+package com.usoftchina.saas.inquiry.po.inquiry;
+
+/**
+ * @Author chenwei
+ * @Date 2019/01/24
+ */
+public class InquiryResult {
+
+    private Boolean success;
+    private String message;
+
+    public Boolean getSuccess() {
+        return success;
+    }
+
+    public void setSuccess(Boolean success) {
+        this.success = success;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+}

+ 34 - 2
applications/transfers/mall-api/src/test/java/com/usoftchina/saas/inquiry/test/InquiryApiTest.java

@@ -3,6 +3,7 @@ package com.usoftchina.saas.inquiry.test;
 import com.usoftchina.saas.inquiry.api.InquiryApi;
 import com.usoftchina.saas.inquiry.po.inquiry.*;
 import com.usoftchina.saas.utils.JsonUtils;
+import feign.Response;
 import org.junit.FixMethodOrder;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -13,6 +14,7 @@ import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.ui.ModelMap;
 
 import javax.naming.directory.InvalidSearchFilterException;
+import java.io.*;
 import java.util.*;
 
 /**
@@ -159,7 +161,37 @@ public class InquiryApiTest {
     }
 
     @Test
-    public void testH_refuseQuote(){
-        inquiryApi.refuseQuote(0L, new Short("1"), enUU, userUU, "reason");
+    public void testH_refuseQuote() throws IOException {
+        Response response = inquiryApi.refuseQuote(83950L, new Short("0"), 10050689L, 1000027286L, "测试");
+        if (response.status() == 500){
+            //读取内容方式1
+            InputStream in = response.body().asInputStream();
+            char[] bytes = new char[in.available()];
+            InputStreamReader reader = new InputStreamReader(in);
+            int length = reader.read(bytes);
+            System.out.println("result:" + new String(bytes, 0, length));
+            reader.close();
+            in.close();
+            //读取内容方式2
+            Reader reader2 = response.body().asReader();
+            int size = response.body().length();
+            char[] ch = new char[size];
+            int temp = 0, len = 0;
+            while ((temp = reader2.read()) != -1){
+                ch[len] = (char) temp;
+                len++;
+            }
+            reader2.close();
+            System.out.println("result2: ==========" + new String(ch));
+            //方式3
+            BufferedReader bufferedReader = new BufferedReader(response.body().asReader());
+            StringBuilder sb = new StringBuilder();
+            String line = null;
+            while (bufferedReader.readLine() != null ){
+                sb.append(line);
+            }
+            bufferedReader.close();
+            System.out.println("result3: " + sb);
+        }
     }
 }