浏览代码

新需求

魏超 5 年前
父节点
当前提交
8bab67945b

+ 2
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java 查看文件

@@ -773,4 +773,6 @@ public class CommConstant {
773 773
      * 企业认证人员的身份 2 代理人
774 774
      */
775 775
     public static final String COMPANY_PRINCIPAL_TYPE_AGENT = "2";
776
+
777
+    public static final Integer AUTH_TYPE = 1;
776 778
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/config/FadadaProperties.java 查看文件

@@ -14,4 +14,6 @@ public class FadadaProperties {
14 14
     private String version;
15 15
     private String serveHost;
16 16
     private String companyNotify;
17
+    private String authReturnUrl;
18
+    private String authNotifyUrl;
17 19
 }

+ 46
- 2
src/main/java/com/huiju/estateagents/eContract/controller/TaCompanyController.java 查看文件

@@ -9,8 +9,10 @@ import com.huiju.estateagents.base.BaseController;
9 9
 import com.huiju.estateagents.base.ResponseBean;
10 10
 import com.huiju.estateagents.common.CommConstant;
11 11
 import com.huiju.estateagents.eContract.entity.TaCompanySeal;
12
+import com.huiju.estateagents.eContract.entity.TaContract;
12 13
 import com.huiju.estateagents.eContract.service.ITaCompanySealService;
13 14
 import com.huiju.estateagents.config.FadadaProperties;
15
+import com.huiju.estateagents.eContract.service.ITaContractService;
14 16
 import com.huiju.estateagents.sample.entity.TaH5Demand;
15 17
 import org.apache.commons.lang3.StringUtils;
16 18
 import org.slf4j.Logger;
@@ -27,9 +29,13 @@ import com.huiju.estateagents.eContract.entity.TaCompany;
27 29
 import org.springframework.web.bind.annotation.RestController;
28 30
 
29 31
 import javax.servlet.http.HttpServletRequest;
32
+import javax.servlet.http.HttpServletResponse;
33
+import java.io.IOException;
34
+import java.io.PrintWriter;
30 35
 import java.util.HashMap;
31 36
 import java.util.List;
32 37
 import java.util.Map;
38
+import java.util.ResourceBundle;
33 39
 
34 40
 /**
35 41
  * <p>
@@ -54,6 +60,9 @@ public class TaCompanyController extends BaseController {
54 60
     @Autowired
55 61
     private ITaCompanySealService iTaCompanySealService;
56 62
 
63
+    @Autowired
64
+    private ITaContractService iTaContractService;
65
+
57 66
     /**
58 67
      * 条件查询企业列表
59 68
      *
@@ -419,10 +428,45 @@ public class TaCompanyController extends BaseController {
419 428
         iTaCompanyService.updateById(taCompany);
420 429
     }
421 430
 
431
+    /**
432
+     * 自动授权签章回调
433
+     */
434
+    @RequestMapping(value = "/fadd/autoAuthCompanySeal", method = RequestMethod.POST)
435
+    public void autoAuthCompanySealNotify(@RequestParam String transactionId,
436
+                                          @RequestParam Integer contractId,
437
+                                          @RequestParam String downloadUrl,
438
+                                          @RequestParam String viewpdfUrl,
439
+                                          @RequestParam String resultCode,
440
+                                          @RequestParam String resultDesc,
441
+                                          HttpServletRequest request){
442
+        TaContract taContract = new TaContract();
443
+        taContract.setContractId(contractId);
444
+        QueryWrapper<TaContract> contractQueryWrapper = new QueryWrapper<>();
445
+        contractQueryWrapper.eq("contract_download_url", downloadUrl);
446
+        contractQueryWrapper.eq("contract_view_url", viewpdfUrl);
447
+        iTaContractService.update(taContract, contractQueryWrapper);
448
+
449
+        TaCompany taCompany = new TaCompany();
450
+        taCompany.setCompanyId(iTaContractService.getById(contractId).getCompanyId());
451
+        QueryWrapper<TaCompany> taCompanyQueryWrapper = new QueryWrapper<>();
452
+        taCompanyQueryWrapper.eq("authorize_status", resultCode.equals("3000") ? "1" : "0");
453
+        taCompanyQueryWrapper.eq("authorize_transaction_id", transactionId);
454
+        taCompanyQueryWrapper.eq("authorize_contract_id", contractId);
455
+        taCompanyQueryWrapper.eq("authorize_download_url", downloadUrl);
456
+        taCompanyQueryWrapper.eq("authorize_view_url", viewpdfUrl);
457
+        taCompanyQueryWrapper.eq("authorize_description", resultDesc);
458
+        iTaCompanyService.update(taCompany, taCompanyQueryWrapper);
459
+
460
+    }
461
+
422 462
     /**
423 463
      * 自动签章授权
424 464
      */
425
-    public ResponseBean autoAuthCompanySeal(Integer companyId, HttpServletRequest request){
426
-        return null;
465
+    @RequestMapping(value = "/channel/company/autoAuthCompany/{id}", method = RequestMethod.PUT)
466
+    public ResponseBean autoAuthCompanySeal(@PathVariable Integer id, HttpServletRequest request, HttpServletResponse response) throws Exception {
467
+        ResponseBean responseBean = new ResponseBean();
468
+        String res = iTaCompanyService.autoAuthCompanySeal(id, getOrgId(request));
469
+        responseBean.addSuccess((Object)res);
470
+        return responseBean;
427 471
     }
428 472
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/eContract/service/ITaCompanyService.java 查看文件

@@ -33,4 +33,6 @@ public interface ITaCompanyService extends IService<TaCompany> {
33 33
      * @return
34 34
      */
35 35
     TaCompany updateCompanyInfoByFdd(Integer id) throws Exception;
36
+
37
+    String autoAuthCompanySeal(Integer companyId, Integer orgId) throws Exception;
36 38
 }

+ 21
- 0
src/main/java/com/huiju/estateagents/eContract/service/impl/TaCompanySealUtil.java 查看文件

@@ -9,6 +9,8 @@ import org.springframework.beans.factory.annotation.Autowired;
9 9
 import org.springframework.stereotype.Component;
10 10
 
11 11
 import java.util.ArrayList;
12
+import java.util.HashMap;
13
+import java.util.Map;
12 14
 
13 15
 @Component
14 16
 public class TaCompanySealUtil {
@@ -65,4 +67,23 @@ public class TaCompanySealUtil {
65 67
 
66 68
         return HttpsUtil.doPost(fadadaProperties.getServeHost() + "remove_signature.api", params);
67 69
     }
70
+
71
+    public String autoAuthCompanySeal(String transactionId, Integer authType, String contractId, String customerId, String companyId) throws Exception {
72
+        String timeStamp = HttpsUtil.getTimeStamp();
73
+        String sha1 = FddEncryptTool.sha1(fadadaProperties.getAppId() + FddEncryptTool.md5Digest(transactionId + timeStamp) + FddEncryptTool.sha1(fadadaProperties.getAppSecret() + customerId));
74
+        String msgDigest = new String(FddEncryptTool.Base64Encode(sha1.getBytes()));
75
+        StringBuilder stringBuilder = new StringBuilder("http://test.api.fabigbig.com:8888/api/before_authsign.api?");
76
+        stringBuilder.append("app_id="+fadadaProperties.getAppId()+"&");
77
+        stringBuilder.append("customer_id="+customerId+"&");
78
+        stringBuilder.append("timestamp="+timeStamp+"&");
79
+        stringBuilder.append("v="+fadadaProperties.getVersion()+"&");
80
+        stringBuilder.append("transaction_id="+transactionId+"&");
81
+        stringBuilder.append("auth_type="+authType+"&");
82
+        stringBuilder.append("contract_id="+contractId+"&");
83
+        stringBuilder.append("msg_digest="+msgDigest+"&");
84
+        stringBuilder.append("notify_url="+fadadaProperties.getAuthNotifyUrl()+"&");
85
+        stringBuilder.append("return_url="+fadadaProperties.getAuthReturnUrl() + companyId);
86
+
87
+        return stringBuilder.toString();
88
+    }
68 89
 }

+ 28
- 0
src/main/java/com/huiju/estateagents/eContract/service/impl/TaCompanyServiceImpl.java 查看文件

@@ -13,10 +13,15 @@ import com.fadada.sdk.util.http.HttpsUtil;
13 13
 import com.huiju.estateagents.common.CommConstant;
14 14
 import com.huiju.estateagents.common.StringUtils;
15 15
 import com.huiju.estateagents.config.FadadaProperties;
16
+import com.huiju.estateagents.controller.CommonController;
16 17
 import com.huiju.estateagents.eContract.entity.TaCompany;
18
+import com.huiju.estateagents.eContract.entity.TaContract;
17 19
 import com.huiju.estateagents.eContract.mapper.TaCompanyMapper;
20
+import com.huiju.estateagents.eContract.mapper.TaContractMapper;
18 21
 import com.huiju.estateagents.eContract.service.ITaCompanyService;
19 22
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
23
+import com.huiju.estateagents.sample.entity.TaContact;
24
+import com.huiju.estateagents.sample.mapper.TaContactMapper;
20 25
 import jodd.util.URLDecoder;
21 26
 import lombok.extern.slf4j.Slf4j;
22 27
 import org.apache.commons.codec.binary.Base64;
@@ -44,6 +49,12 @@ public class TaCompanyServiceImpl extends ServiceImpl<TaCompanyMapper, TaCompany
44 49
     @Autowired
45 50
     private TaCompanyMapper taCompanyMapper;
46 51
 
52
+    @Autowired
53
+    private TaContractMapper taContractMapper;
54
+
55
+    @Autowired
56
+    private TaCompanySealUtil taCompanySealUtil;
57
+
47 58
     /**
48 59
      * 在法大大创建一个新的企业信息
49 60
      *
@@ -185,6 +196,23 @@ public class TaCompanyServiceImpl extends ServiceImpl<TaCompanyMapper, TaCompany
185 196
         return taCompany;
186 197
     }
187 198
 
199
+    @Override
200
+    public String autoAuthCompanySeal(Integer companyId, Integer orgId) throws Exception {
201
+        TaCompany taCompany = taCompanyMapper.selectById(companyId);
202
+        String timeStamp = HttpsUtil.getTimeStamp();
203
+        String transactionId = "TRAN" + timeStamp;
204
+        TaContract taContract = new TaContract();
205
+        taContract.setCompanyId(companyId);
206
+        taContract.setOrgId(orgId);
207
+        taContract.setCreateDate(LocalDateTime.now());
208
+        taContractMapper.insert(taContract);
209
+
210
+        Integer contractId = taContract.getContractId();
211
+        String customerId = taCompany.getFadadaCode();
212
+        String res = taCompanySealUtil.autoAuthCompanySeal(transactionId, CommConstant.AUTH_TYPE, String.valueOf(contractId), customerId, String.valueOf(companyId));
213
+        return res;
214
+    }
215
+
188 216
     /**
189 217
      * url解码
190 218
      * @param bizContent

+ 3
- 1
src/main/resources/application-blue.yml 查看文件

@@ -84,4 +84,6 @@ fadada:
84 84
   appSecret: "xcIaK36Vc09yXXRdinXYcXhW"
85 85
   version: "2.0"
86 86
   serveHost: "https://testapi.fadada.com:8443/api/"
87
-  companyNotify: "https://dev.pawoma.cn/api/fadd/company"
87
+  companyNotify: "https://dev.pawoma.cn/api/fadd/company"
88
+  authReturnUrl: "http://localhost:8000/#/eContract/seal/detail?id="
89
+  authNotifyUrl: "https://dev.pawoma.cn/api/fadd/autoAuthCompanySeal"

+ 3
- 1
src/main/resources/application-green.yml 查看文件

@@ -84,4 +84,6 @@ fadada:
84 84
   appSecret: "xcIaK36Vc09yXXRdinXYcXhW"
85 85
   version: "2.0"
86 86
   serveHost: "https://testapi.fadada.com:8443/api/"
87
-  companyNotify: "https://dev.pawoma.cn/api/fadd/company"
87
+  companyNotify: "https://dev.pawoma.cn/api/fadd/company"
88
+  authReturnUrl: "http://localhost:8000/#/eContract/seal/detail?id="
89
+  authNotifyUrl: "https://dev.pawoma.cn/api/fadd/autoAuthCompanySeal"