浏览代码

Merge branch 'dev' of http://git.ycjcjy.com/zhiyuxing/estateagents into dev

张延森 5 年前
父节点
当前提交
f7b56331c8
共有 24 个文件被更改,包括 423 次插入86 次删除
  1. 32
    5
      src/main/java/com/huiju/estateagents/common/CommConstant.java
  2. 2
    0
      src/main/java/com/huiju/estateagents/config/FadadaProperties.java
  3. 2
    2
      src/main/java/com/huiju/estateagents/controller/TaRaiseController.java
  4. 103
    12
      src/main/java/com/huiju/estateagents/eContract/controller/TaCompanyController.java
  5. 24
    6
      src/main/java/com/huiju/estateagents/eContract/controller/TaCompanySealController.java
  6. 1
    1
      src/main/java/com/huiju/estateagents/eContract/controller/TaContractController.java
  7. 3
    0
      src/main/java/com/huiju/estateagents/eContract/entity/TaCompany.java
  8. 1
    1
      src/main/java/com/huiju/estateagents/eContract/entity/TaContractBusiness.java
  9. 1
    1
      src/main/java/com/huiju/estateagents/eContract/mapper/TaCompanyMapper.java
  10. 6
    0
      src/main/java/com/huiju/estateagents/eContract/service/ITaCompanyService.java
  11. 1
    1
      src/main/java/com/huiju/estateagents/eContract/service/ITaContractService.java
  12. 67
    6
      src/main/java/com/huiju/estateagents/eContract/service/impl/TaCompanySealUtil.java
  13. 62
    0
      src/main/java/com/huiju/estateagents/eContract/service/impl/TaCompanyServiceImpl.java
  14. 34
    6
      src/main/java/com/huiju/estateagents/eContract/service/impl/TaContractServiceImpl.java
  15. 28
    7
      src/main/java/com/huiju/estateagents/eContract/service/impl/TaContractUserServiceImpl.java
  16. 2
    0
      src/main/java/com/huiju/estateagents/entity/TaMiniapp.java
  17. 1
    2
      src/main/java/com/huiju/estateagents/entity/TaRaise.java
  18. 24
    13
      src/main/java/com/huiju/estateagents/service/impl/TaBuildingServiceImpl.java
  19. 1
    2
      src/main/java/com/huiju/estateagents/service/impl/TaRaiseRecordServiceImpl.java
  20. 14
    17
      src/main/java/com/huiju/estateagents/service/impl/TaRaiseServiceImpl.java
  21. 4
    2
      src/main/resources/application-blue.yml
  22. 3
    1
      src/main/resources/application-green.yml
  23. 6
    0
      src/main/resources/mapper/eContract/TaCompanyMapper.xml
  24. 1
    1
      src/main/resources/mapper/eContract/TaContractMapper.xml

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

@@ -36,27 +36,27 @@ public class CommConstant {
36 36
     /**
37 37
      * 状态: 正常
38 38
      */
39
-    public final static int STATUS_NORMAL = 1;
39
+    public final static Integer STATUS_NORMAL = 1;
40 40
 
41 41
     /**
42 42
      * 状态: 删除
43 43
      */
44
-    public final static int STATUS_DELETE = -1;
44
+    public final static Integer STATUS_DELETE = -1;
45 45
 
46 46
     /**
47 47
      * 状态: 关闭、禁用
48 48
      */
49
-    public final static int STATUS_CLOSED = 9;
49
+    public final static Integer STATUS_CLOSED = 9;
50 50
 
51 51
     /**
52 52
      * 消息未读
53 53
      */
54
-    public final static int MESSAGE_UNREAD = 0;
54
+    public final static Integer MESSAGE_UNREAD = 0;
55 55
 
56 56
     /**
57 57
      * 消息已读
58 58
      */
59
-    public final static int MESSAGE_READED = 1;
59
+    public final static Integer MESSAGE_READED = 1;
60 60
 
61 61
     /**
62 62
      * 点赞置业卡片
@@ -774,4 +774,31 @@ public class CommConstant {
774 774
      * 企业认证人员的身份 2 代理人
775 775
      */
776 776
     public static final String COMPANY_PRINCIPAL_TYPE_AGENT = "2";
777
+
778
+    /**
779
+     * 授权类型 1自动签
780
+     */
781
+    public static final Integer AUTH_TYPE = 1;
782
+
783
+    /**
784
+     * 合同关联业务类型
785
+     */
786
+    public static final String AUTH = "auth";
787
+
788
+    /**
789
+     * 接口线上授权
790
+     */
791
+    public static final String ONLINEAUTH = "onLine";
792
+
793
+    /**
794
+     * 企业实名状态
795
+     */
796
+    public static final Integer REAL_NAME_STATUS = 4;
797
+
798
+    /**
799
+     * 已授权自动签章
800
+     */
801
+    public static final String AUTO_AUTH_STATUS = "3000";
802
+
803
+    public static final String  AUTH_SUCCESS_DESC = "签章成功";
777 804
 }

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

@@ -14,5 +14,7 @@ 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
     private String signNotify;
18 20
 }

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

@@ -155,7 +155,7 @@ public class TaRaiseController extends BaseController {
155 155
             taRaise.setCreateDate(LocalDateTime.now());
156 156
             if (iTaRaiseService.save(taRaise)) {
157 157
                 // 为邀请制,添加认筹被邀请清单
158
-                if (CommConstant.STATUS_NORMAL == taRaise.getIsInvite()) {
158
+                if (CommConstant.STATUS_NORMAL == taRaise.getInvite()) {
159 159
                     iTaRaiseService.saveOrUpdateInvite(taRaise, getOrgId(request), true);
160 160
                 }
161 161
                 responseBean.addSuccess(taRaise);
@@ -238,7 +238,7 @@ public class TaRaiseController extends BaseController {
238 238
             taRaise.setRaisePrice(taRaise.getRaisePrice() != null ? taRaise.getRaisePrice() : null);
239 239
             if (iTaRaiseService.updateById(taRaise)) {
240 240
                 // 为邀请制,添加认筹被邀请清单
241
-                if (CommConstant.STATUS_NORMAL == taRaise.getIsInvite()) {
241
+                if (CommConstant.STATUS_NORMAL == taRaise.getInvite()) {
242 242
                     iTaRaiseService.saveOrUpdateInvite(taRaise, getOrgId(request), false);
243 243
                 }
244 244
                 responseBean.addSuccess(taRaise);

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

@@ -2,6 +2,7 @@ package com.huiju.estateagents.eContract.controller;
2 2
 
3 3
 import com.alibaba.fastjson.JSONArray;
4 4
 import com.alibaba.fastjson.JSONObject;
5
+import com.baomidou.mybatisplus.core.conditions.query.Query;
5 6
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6 7
 import com.baomidou.mybatisplus.core.metadata.IPage;
7 8
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -10,11 +11,16 @@ import com.huiju.estateagents.base.ResponseBean;
10 11
 import com.huiju.estateagents.common.CommConstant;
11 12
 import com.huiju.estateagents.eContract.entity.TaCompanySeal;
12 13
 import com.huiju.estateagents.eContract.entity.TaContract;
14
+import com.huiju.estateagents.eContract.service.ITaCompanySealService;
15
+import com.huiju.estateagents.config.FadadaProperties;
16
+import com.huiju.estateagents.eContract.service.ITaContractService;
13 17
 import com.huiju.estateagents.eContract.entity.TaContractUser;
14 18
 import com.huiju.estateagents.eContract.service.ITaCompanySealService;
15 19
 import com.huiju.estateagents.config.FadadaProperties;
16 20
 import com.huiju.estateagents.eContract.service.ITaContractUserService;
21
+import com.huiju.estateagents.entity.TaMiniapp;
17 22
 import com.huiju.estateagents.sample.entity.TaH5Demand;
23
+import com.huiju.estateagents.service.impl.TaMiniappServiceImpl;
18 24
 import org.apache.commons.lang3.StringUtils;
19 25
 import org.slf4j.Logger;
20 26
 import org.slf4j.LoggerFactory;
@@ -30,9 +36,13 @@ import com.huiju.estateagents.eContract.entity.TaCompany;
30 36
 import org.springframework.web.bind.annotation.RestController;
31 37
 
32 38
 import javax.servlet.http.HttpServletRequest;
39
+import javax.servlet.http.HttpServletResponse;
40
+import java.io.IOException;
41
+import java.io.PrintWriter;
33 42
 import java.util.HashMap;
34 43
 import java.util.List;
35 44
 import java.util.Map;
45
+import java.util.ResourceBundle;
36 46
 
37 47
 /**
38 48
  * <p>
@@ -57,9 +67,16 @@ public class TaCompanyController extends BaseController {
57 67
     @Autowired
58 68
     private ITaCompanySealService iTaCompanySealService;
59 69
 
70
+    @Autowired
71
+    private ITaContractService iTaContractService;
72
+
60 73
     @Autowired
61 74
     public ITaContractUserService iTaContractUserService;
62 75
 
76
+    @Autowired
77
+    private TaMiniappServiceImpl taMiniappService;
78
+
79
+
63 80
     /**
64 81
      * 条件查询企业列表
65 82
      *
@@ -82,7 +99,7 @@ public class TaCompanyController extends BaseController {
82 99
             queryWrapper.like(StringUtils.isNotBlank(companyName), "company_name", companyName);
83 100
             queryWrapper.like(StringUtils.isNotBlank(companyCode), "company_code", companyCode);
84 101
             queryWrapper.eq(StringUtils.isNotBlank(certifiedStatus), "certified_status", certifiedStatus);
85
-            queryWrapper.eq("status", CommConstant.STATUS_NORMAL);
102
+            queryWrapper.eq("status", 2);
86 103
             queryWrapper.orderByDesc("create_date");
87 104
 
88 105
             IPage<TaCompany> result = iTaCompanyService.page(pg, queryWrapper);
@@ -113,7 +130,7 @@ public class TaCompanyController extends BaseController {
113 130
             QueryWrapper<TaCompany> queryWrapper = new QueryWrapper<>();
114 131
             queryWrapper.like(StringUtils.isNotBlank(companyName), "company_name", companyName);
115 132
             queryWrapper.like(StringUtils.isNotBlank(companyCode), "company_code", companyCode);
116
-            queryWrapper.eq("status", CommConstant.STATUS_NORMAL);
133
+            queryWrapper.eq("status", CommConstant.REAL_NAME_STATUS);
117 134
             queryWrapper.orderByDesc("create_date");
118 135
 
119 136
             IPage<TaCompany> result = iTaCompanyService.page(pg, queryWrapper);
@@ -121,6 +138,7 @@ public class TaCompanyController extends BaseController {
121 138
             for (TaCompany taCompany : taCompanyList){
122 139
                 QueryWrapper<TaCompanySeal> sealQueryWrapper = new QueryWrapper<>();
123 140
                 sealQueryWrapper.eq("company_id", taCompany.getCompanyId());
141
+                sealQueryWrapper.ne("status", CommConstant.STATUS_DELETE);
124 142
                 taCompany.setSealNum(iTaCompanySealService.count(sealQueryWrapper));
125 143
             }
126 144
             responseBean.addSuccess(result);
@@ -143,10 +161,10 @@ public class TaCompanyController extends BaseController {
143 161
     @RequestMapping(value = "/channel/taCompanyList", method = RequestMethod.GET)
144 162
     public ResponseBean channelCompanyList(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
145 163
                                            @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
146
-                                           @RequestParam(value = "companyName") String companyName,
147
-                                           @RequestParam(value = "companyCode")String companyCode,
148
-                                           @RequestParam(value = "certifiedStatus")String certifiedStatus,
149
-                                           @RequestParam(value = "authorizeStatus")String authorizeStatus) {
164
+                                           @RequestParam(value = "companyName", required = false) String companyName,
165
+                                           @RequestParam(value = "companyCode", required = false)String companyCode,
166
+                                           @RequestParam(value = "status", required = false)String status,
167
+                                           @RequestParam(value = "authorizeStatus", required = false)String authorizeStatus) {
150 168
         ResponseBean responseBean = new ResponseBean();
151 169
         try {
152 170
             //使用分页插件
@@ -154,9 +172,9 @@ public class TaCompanyController extends BaseController {
154 172
             QueryWrapper<TaCompany> queryWrapper = new QueryWrapper<>();
155 173
             queryWrapper.like(StringUtils.isNotBlank(companyName), "company_name", companyName);
156 174
             queryWrapper.like(StringUtils.isNotBlank(companyCode), "company_code", companyCode);
157
-            queryWrapper.eq(StringUtils.isNotBlank(certifiedStatus), "certified_status", certifiedStatus);
175
+            queryWrapper.eq(StringUtils.isNotBlank(status), "status", status);
158 176
             queryWrapper.eq(StringUtils.isNotBlank(authorizeStatus), "authorize_status", authorizeStatus);
159
-            queryWrapper.eq("status", CommConstant.STATUS_NORMAL);
177
+            queryWrapper.ne("status", CommConstant.STATUS_DELETE);
160 178
             queryWrapper.orderByDesc("create_date");
161 179
 
162 180
             IPage<TaCompany> result = iTaCompanyService.page(pg, queryWrapper);
@@ -164,6 +182,7 @@ public class TaCompanyController extends BaseController {
164 182
             for (TaCompany taCompany : taCompanyList){
165 183
                 QueryWrapper<TaCompanySeal> sealQueryWrapper = new QueryWrapper<>();
166 184
                 sealQueryWrapper.eq("company_id", taCompany.getCompanyId());
185
+                sealQueryWrapper.ne("status", CommConstant.STATUS_DELETE);
167 186
                 taCompany.setSealNum(iTaCompanySealService.count(sealQueryWrapper));
168 187
             }
169 188
             responseBean.addSuccess(result);
@@ -255,7 +274,8 @@ public class TaCompanyController extends BaseController {
255 274
     public ResponseBean taCompanyGet(@PathVariable Integer id) {
256 275
         ResponseBean responseBean = new ResponseBean();
257 276
         try {
258
-            responseBean.addSuccess(iTaCompanyService.getById(id));
277
+            TaCompany taCompany = iTaCompanyService.getCompanyAndContractInfo(id);
278
+            responseBean.addSuccess(taCompany);
259 279
         } catch (Exception e) {
260 280
             e.printStackTrace();
261 281
             logger.error("taCompanyDelete -=- {}", e.toString());
@@ -439,11 +459,55 @@ public class TaCompanyController extends BaseController {
439 459
         }
440 460
     }
441 461
 
462
+    /**
463
+     * 自动授权签章回调
464
+     */
465
+    @RequestMapping(value = "/fadd/autoAuthCompanySeal", method = RequestMethod.POST)
466
+    public void autoAuthCompanySealNotify(@RequestParam(value = "transaction_id",required = false) String transactionId,
467
+                                          @RequestParam(value = "contract_id",required = false) Integer contractId,
468
+                                          @RequestParam(value = "download_url",required = false) String downloadUrl,
469
+                                          @RequestParam(value = "viewpdf_url",required = false) String viewpdfUrl,
470
+                                          @RequestParam(value = "result_code",required = false) String resultCode,
471
+                                          @RequestParam(value = "result_desc",required = false) String resultDesc,
472
+                                          HttpServletRequest request){
473
+        TaContract taContract = new TaContract();
474
+        taContract.setContractId(contractId);
475
+        taContract.setContractDownloadUrl(downloadUrl);
476
+        taContract.setContractViewUrl(viewpdfUrl);
477
+        taContract.setStatus(CommConstant.STATUS_NORMAL);
478
+        iTaContractService.updateById(taContract);
479
+
480
+        if (CommConstant.AUTO_AUTH_STATUS.equals(resultCode) && CommConstant.AUTH_SUCCESS_DESC.equals(resultDesc)){
481
+            TaCompany taCompany = new TaCompany();
482
+            taCompany.setCompanyId(iTaContractService.getById(contractId).getCompanyId());
483
+            taCompany.setAuthorizeStatus(resultCode);
484
+            taCompany.setAuthorizeTransactionId(transactionId);
485
+            taCompany.setAuthorizeContractId(String.valueOf(contractId));
486
+            taCompany.setAuthorizeDownloadUrl(downloadUrl);
487
+            taCompany.setAuthorizeViewUrl(viewpdfUrl);
488
+            taCompany.setAuthorizeDescription(resultDesc);
489
+            taCompany.setAuthorizeType(CommConstant.ONLINEAUTH);
490
+            iTaCompanyService.updateById(taCompany);
491
+        }
492
+    }
493
+
442 494
     /**
443 495
      * 自动签章授权
444 496
      */
445
-    public ResponseBean autoAuthCompanySeal(Integer companyId, HttpServletRequest request){
446
-        return null;
497
+    @RequestMapping(value = "/channel/company/autoAuthCompany/{id}", method = RequestMethod.PUT)
498
+    public ResponseBean autoAuthCompanySeal(@PathVariable Integer id, HttpServletRequest request) throws Exception {
499
+        ResponseBean responseBean = new ResponseBean();
500
+        QueryWrapper<TaMiniapp> taMiniappQueryWrapper = new QueryWrapper<>();
501
+        taMiniappQueryWrapper.eq("org_id", getOrgId(request));
502
+        TaMiniapp taMiniapp = taMiniappService.getOne(taMiniappQueryWrapper);
503
+
504
+        String res = iTaCompanyService.autoAuthCompanySeal(id, getOrgId(request), taMiniapp.getMiniappId());
505
+        TaCompany taCompany = new TaCompany();
506
+        taCompany.setCompanyId(id);
507
+        taCompany.setAuthorizeAddress(res);
508
+        iTaCompanyService.updateById(taCompany);
509
+        responseBean.addSuccess((Object)res);
510
+        return responseBean;
447 511
     }
448 512
 
449 513
 
@@ -451,7 +515,7 @@ public class TaCompanyController extends BaseController {
451 515
      * 手动签署回调函数
452 516
      *
453 517
      */
454
-    @RequestMapping(value = "/fadd/sign", method = RequestMethod.POST)
518
+    @RequestMapping(value = "/fadd/sign", method = {RequestMethod.GET,RequestMethod.POST})
455 519
     public void faddSignNotify(@RequestParam(value = "transaction_id ",required = false) String transaction_id,
456 520
                                   @RequestParam(value = "contract_id ",required = false) String contract_id,
457 521
                                   @RequestParam(value = "result_code",required = false) String result_code,
@@ -462,5 +526,32 @@ public class TaCompanyController extends BaseController {
462 526
                                   @RequestParam(value = "msg_digest",required = false) String msg_digest,
463 527
                                   HttpServletRequest request) {
464 528
         logger.info("企业认证回调函数参数:交易号 {},合同编号 {},签章结果代码 {},签章结果描述 ,{}, 下载地址{}, 查看地址 {},请求时间 {}, 摘要 {} ",transaction_id,contract_id,result_code,result_desc,download_url,viewpdf_url,timestamp,msg_digest);
529
+        TaContract taContract = iTaContractService.getById(contract_id);
530
+        taContract.setContractDownloadUrl(download_url);
531
+        taContract.setContractViewUrl(viewpdf_url);
532
+        iTaContractService.updateById(taContract);
533
+    }
534
+
535
+    /**
536
+     * 查询授权状态接口
537
+     * @param id
538
+     * @return
539
+     */
540
+    @RequestMapping(value = "/channel/company/getAuthStatus/{id}", method = RequestMethod.GET)
541
+    public ResponseBean getAuthStatus(@PathVariable Integer id, HttpServletRequest request){
542
+        QueryWrapper<TaMiniapp> taMiniappQueryWrapper = new QueryWrapper<>();
543
+        taMiniappQueryWrapper.eq("org_id", getOrgId(request));
544
+        TaMiniapp taMiniapp = taMiniappService.getOne(taMiniappQueryWrapper);
545
+
546
+        ResponseBean responseBean = new ResponseBean();
547
+        String res = iTaCompanyService.getAuthStatus(id, taMiniapp.getMiniappId());
548
+        JSONObject result = JSONObject.parseObject(res);
549
+
550
+        if ((Integer) result.get("code") != 1){
551
+            responseBean.addError(result.getString("msg"));
552
+            return responseBean;
553
+        }
554
+        responseBean.addSuccess(result.get("data"));
555
+        return responseBean;
465 556
     }
466 557
 }

+ 24
- 6
src/main/java/com/huiju/estateagents/eContract/controller/TaCompanySealController.java 查看文件

@@ -13,11 +13,14 @@ import com.huiju.estateagents.eContract.entity.TaCompanySeal;
13 13
 import com.huiju.estateagents.eContract.service.ITaCompanySealService;
14 14
 import com.huiju.estateagents.eContract.service.ITaCompanyService;
15 15
 import com.huiju.estateagents.eContract.service.impl.TaCompanySealUtil;
16
+import com.huiju.estateagents.entity.TaMiniapp;
17
+import com.huiju.estateagents.service.impl.TaMiniappServiceImpl;
16 18
 import org.slf4j.Logger;
17 19
 import org.slf4j.LoggerFactory;
18 20
 import org.springframework.beans.factory.annotation.Autowired;
19 21
 import org.springframework.web.bind.annotation.*;
20 22
 
23
+import javax.servlet.http.HttpServletRequest;
21 24
 import java.time.LocalDateTime;
22 25
 
23 26
 /**
@@ -43,6 +46,9 @@ public class TaCompanySealController extends BaseController {
43 46
     @Autowired
44 47
     private TaCompanySealUtil taCompanySealUtil;
45 48
 
49
+    @Autowired
50
+    private TaMiniappServiceImpl taMiniappService;
51
+
46 52
     /**
47 53
      * 分页查询列表
48 54
      * @param pageNum
@@ -59,6 +65,7 @@ public class TaCompanySealController extends BaseController {
59 65
 		    IPage<TaCompanySeal> pg = new Page<>(pageNum, pageSize);
60 66
             QueryWrapper<TaCompanySeal> queryWrapper = new QueryWrapper<>();
61 67
             queryWrapper.like(!StringUtils.isEmpty(sealName), "seal_name", sealName);
68
+            queryWrapper.ne("status", CommConstant.STATUS_DELETE);
62 69
             queryWrapper.orderByDesc("create_date");
63 70
 
64 71
             IPage<TaCompanySeal> result = iTaCompanySealService.page(pg, queryWrapper);
@@ -109,11 +116,14 @@ public class TaCompanySealController extends BaseController {
109 116
      * @return
110 117
      */
111 118
     @RequestMapping(value="/channel/taCompanySeal",method= RequestMethod.POST)
112
-    public ResponseBean taCompanySealAdd(@RequestBody TaCompanySeal taCompanySeal){
119
+    public ResponseBean taCompanySealAdd(@RequestBody TaCompanySeal taCompanySeal, HttpServletRequest request){
113 120
         ResponseBean responseBean = new ResponseBean();
114 121
         try {
122
+            QueryWrapper<TaMiniapp> taMiniappQueryWrapper = new QueryWrapper<>();
123
+            taMiniappQueryWrapper.eq("org_id", getOrgId(request));
124
+            TaMiniapp taMiniapp = taMiniappService.getOne(taMiniappQueryWrapper);
115 125
             TaCompany taCompany = iTaCompanyService.getById(taCompanySeal.getCompanyId());
116
-            String result = taCompanySealUtil.addSignaTure(taCompany.getFadadaCode(), taCompanySeal.getSealImg());
126
+            String result = taCompanySealUtil.addSignaTure(taCompany.getFadadaCode(), taCompanySeal.getSealImg(), taMiniapp.getMiniappId());
117 127
             JSONObject params = JSONObject.parseObject(result);
118 128
             if ((Integer) params.get("code") != 1){
119 129
                 responseBean.addError(params.get("msg").toString());
@@ -143,13 +153,17 @@ public class TaCompanySealController extends BaseController {
143 153
      */
144 154
     @ResponseBody
145 155
     @RequestMapping(value="/channel/delCompanySeal/{id}", method= RequestMethod.PUT)
146
-    public ResponseBean taCompanySealDelete(@PathVariable Integer id){
156
+    public ResponseBean taCompanySealDelete(@PathVariable Integer id, HttpServletRequest request){
147 157
         ResponseBean responseBean = new ResponseBean();
148 158
         try {
159
+            QueryWrapper<TaMiniapp> taMiniappQueryWrapper = new QueryWrapper<>();
160
+            taMiniappQueryWrapper.eq("org_id", getOrgId(request));
161
+            TaMiniapp taMiniapp = taMiniappService.getOne(taMiniappQueryWrapper);
162
+
149 163
             TaCompanySeal taCompanySeal = iTaCompanySealService.getById(id);
150 164
             TaCompany taCompany = iTaCompanyService.getById(taCompanySeal.getCompanyId());
151 165
             iTaCompanyService.getById(taCompanySeal.getCompanyId());
152
-            String res = taCompanySealUtil.delSignature(taCompany.getFadadaCode(), taCompanySeal.getSignatureId());
166
+            String res = taCompanySealUtil.delSignature(taCompany.getFadadaCode(), taCompanySeal.getSignatureId(), taMiniapp.getMiniappId());
153 167
             JSONObject params = JSONObject.parseObject(res);
154 168
             Integer code = (Integer) params.get("code");
155 169
             if (code != 1){
@@ -181,12 +195,16 @@ public class TaCompanySealController extends BaseController {
181 195
      */
182 196
     @RequestMapping(value="/channel/taCompanySeal/{id}",method= RequestMethod.PUT)
183 197
     public ResponseBean taCompanySealUpdate(@PathVariable Integer id,
184
-                                        @RequestBody TaCompanySeal taCompanySeal){
198
+                                        @RequestBody TaCompanySeal taCompanySeal, HttpServletRequest request){
185 199
         ResponseBean responseBean = new ResponseBean();
186 200
         try {
201
+            QueryWrapper<TaMiniapp> taMiniappQueryWrapper = new QueryWrapper<>();
202
+            taMiniappQueryWrapper.eq("org_id", getOrgId(request));
203
+            TaMiniapp taMiniapp = taMiniappService.getOne(taMiniappQueryWrapper);
204
+
187 205
             TaCompany taCompany = iTaCompanyService.getById(taCompanySeal.getCompanyId());
188 206
             TaCompanySeal sealInfo = iTaCompanySealService.getById(id);
189
-            String res = taCompanySealUtil.replaceSignature(taCompany.getFadadaCode(), sealInfo.getSignatureId(), taCompanySeal.getSealImg());
207
+            String res = taCompanySealUtil.replaceSignature(taCompany.getFadadaCode(), sealInfo.getSignatureId(), taCompanySeal.getSealImg(), taMiniapp.getMiniappId());
190 208
             JSONObject params = JSONObject.parseObject(res);
191 209
             Integer code = (Integer) params.get("code");
192 210
             if (code != 1){

+ 1
- 1
src/main/java/com/huiju/estateagents/eContract/controller/TaContractController.java 查看文件

@@ -287,7 +287,7 @@ public class TaContractController extends BaseController {
287 287
             }
288 288
             TaPerson person = taPersons.get(0);
289 289
             String signUrl = iTaContractService.manualContract(taContract, person);
290
-            responseBean.addSuccess(signUrl);
290
+            return ResponseBean.success(signUrl);
291 291
         } catch (Exception e) {
292 292
             e.printStackTrace();
293 293
             logger.error("taCompanyList -=- {}", e.toString());

+ 3
- 0
src/main/java/com/huiju/estateagents/eContract/entity/TaCompany.java 查看文件

@@ -167,4 +167,7 @@ public class TaCompany implements Serializable {
167 167
 
168 168
     @TableField(exist = false)
169 169
     private Integer sealNum;
170
+
171
+    @TableField(exist = false)
172
+    private String contractId;
170 173
 }

+ 1
- 1
src/main/java/com/huiju/estateagents/eContract/entity/TaContractBusiness.java 查看文件

@@ -119,7 +119,7 @@ public class TaContractBusiness implements Serializable {
119 119
     private String contractTemplateAddress;
120 120
 
121 121
     @TableField(exist = false)
122
-    private String signatrueId;
122
+    private String signatureId;
123 123
 
124 124
     @TableField(exist = false)
125 125
     private String fadadaCode;

+ 1
- 1
src/main/java/com/huiju/estateagents/eContract/mapper/TaCompanyMapper.java 查看文件

@@ -18,5 +18,5 @@ import org.springframework.stereotype.Component;
18 18
 @Mapper
19 19
 @Component
20 20
 public interface TaCompanyMapper extends BaseMapper<TaCompany> {
21
-
21
+    TaCompany getCompanyAndContractInfo(@Param("companyId") Integer companyId);
22 22
 }

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

@@ -33,4 +33,10 @@ 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, String miniAppId) throws Exception;
38
+
39
+    TaCompany getCompanyAndContractInfo(Integer companyId);
40
+
41
+    String getAuthStatus(Integer companyId, String miniAppId);
36 42
 }

+ 1
- 1
src/main/java/com/huiju/estateagents/eContract/service/ITaContractService.java 查看文件

@@ -63,5 +63,5 @@ public interface ITaContractService extends IService<TaContract> {
63 63
      * @param person
64 64
      * @return
65 65
      */
66
-    String manualContract(TaContract taContract, TaPerson person);
66
+    String manualContract(TaContract taContract, TaPerson person) throws Exception;
67 67
 }

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

@@ -3,12 +3,18 @@ package com.huiju.estateagents.eContract.service.impl;
3 3
 import com.fadada.sdk.client.FddClientBase;
4 4
 import com.fadada.sdk.util.crypt.FddEncryptTool;
5 5
 import com.fadada.sdk.util.http.HttpsUtil;
6
+import com.huiju.estateagents.common.StringUtils;
6 7
 import com.huiju.estateagents.config.FadadaProperties;
8
+import com.huiju.estateagents.entity.TaMiniapp;
9
+import com.huiju.estateagents.mapper.TaMiniappMapper;
7 10
 import org.apache.http.message.BasicNameValuePair;
8 11
 import org.springframework.beans.factory.annotation.Autowired;
9 12
 import org.springframework.stereotype.Component;
10 13
 
14
+import java.io.File;
11 15
 import java.util.ArrayList;
16
+import java.util.HashMap;
17
+import java.util.Map;
12 18
 
13 19
 @Component
14 20
 public class TaCompanySealUtil {
@@ -16,13 +22,16 @@ public class TaCompanySealUtil {
16 22
     @Autowired
17 23
     private FadadaProperties fadadaProperties;
18 24
 
19
-    public String addSignaTure(String customerId, String imgUrl) throws Exception {
20
-        FddClientBase base = new FddClientBase(fadadaProperties.getAppId(), fadadaProperties.getAppSecret(), fadadaProperties.getVersion(), fadadaProperties.getServeHost());
25
+    @Autowired
26
+    private TaMiniappMapper taMiniappMapper;
27
+
28
+    public String addSignaTure(String customerId, String imgUrl, String miniappId) throws Exception {
29
+        FddClientBase base = new FddClientBase(fadadaProperties.getAppId(), fadadaProperties.getAppSecret(), fadadaProperties.getVersion(), getFddServerHost(miniappId,fadadaProperties.getServeHost()));
21 30
         String base64Url = FddEncryptTool.ImageToBase64ByOnline(imgUrl);
22 31
         return base.invokeaddSignature(customerId, base64Url);
23 32
     }
24 33
 
25
-    public String replaceSignature(String customerId, String signatureId, String imgUrl){
34
+    public String replaceSignature(String customerId, String signatureId, String imgUrl, String miniappId){
26 35
         String base64Url = FddEncryptTool.ImageToBase64ByOnline(imgUrl);
27 36
         ArrayList params = new ArrayList();
28 37
 
@@ -42,10 +51,10 @@ public class TaCompanySealUtil {
42 51
             throw new RuntimeException(var7);
43 52
         }
44 53
 
45
-        return HttpsUtil.doPost(fadadaProperties.getServeHost() + "replace_signature.api", params);
54
+        return HttpsUtil.doPost(getFddServerHost(miniappId,fadadaProperties.getServeHost()) + "replace_signature.api", params);
46 55
     }
47 56
 
48
-    public String delSignature(String customerId, String signatureId){
57
+    public String delSignature(String customerId, String signatureId, String miniappId){
49 58
         ArrayList params = new ArrayList();
50 59
 
51 60
         try {
@@ -63,6 +72,58 @@ public class TaCompanySealUtil {
63 72
             throw new RuntimeException(var7);
64 73
         }
65 74
 
66
-        return HttpsUtil.doPost(fadadaProperties.getServeHost() + "remove_signature.api", params);
75
+        return HttpsUtil.doPost(getFddServerHost(miniappId,fadadaProperties.getServeHost()) + "remove_signature.api", params);
76
+    }
77
+
78
+    public String autoAuthCompanySeal(String transactionId, Integer authType, String contractId, String customerId, String companyId, String miniappId) throws Exception {
79
+        String timeStamp = HttpsUtil.getTimeStamp();
80
+        String sha1 = FddEncryptTool.sha1(fadadaProperties.getAppId() + FddEncryptTool.md5Digest(transactionId + timeStamp) + FddEncryptTool.sha1(fadadaProperties.getAppSecret() + customerId));
81
+        String msgDigest = new String(FddEncryptTool.Base64Encode(sha1.getBytes()));
82
+        StringBuilder stringBuilder = new StringBuilder(getFddServerHost(miniappId,fadadaProperties.getServeHost()) + "before_authsign.api?");
83
+        stringBuilder.append("app_id="+fadadaProperties.getAppId()+"&");
84
+        stringBuilder.append("customer_id="+customerId+"&");
85
+        stringBuilder.append("timestamp="+timeStamp+"&");
86
+        stringBuilder.append("v="+fadadaProperties.getVersion()+"&");
87
+        stringBuilder.append("transaction_id="+transactionId+"&");
88
+        stringBuilder.append("auth_type="+authType+"&");
89
+        stringBuilder.append("contract_id="+contractId+"&");
90
+        stringBuilder.append("msg_digest="+msgDigest+"&");
91
+        stringBuilder.append("notify_url="+fadadaProperties.getAuthNotifyUrl()+"&");
92
+        stringBuilder.append("return_url="+fadadaProperties.getAuthReturnUrl() + companyId);
93
+
94
+        return stringBuilder.toString();
95
+    }
96
+
97
+    public String getAuthStatus(String customerId, String miniappId){
98
+        ArrayList params = new ArrayList();
99
+
100
+        try {
101
+            String timeStamp = HttpsUtil.getTimeStamp();
102
+            String sha1 = FddEncryptTool.sha1(fadadaProperties.getAppId() + FddEncryptTool.md5Digest(timeStamp) + FddEncryptTool.sha1(fadadaProperties.getAppSecret() + customerId));
103
+            String msgDigest = new String(FddEncryptTool.Base64Encode(sha1.getBytes()));
104
+            params.add(new BasicNameValuePair("customer_id", customerId));
105
+            params.add(new BasicNameValuePair("app_id", fadadaProperties.getAppId()));
106
+            params.add(new BasicNameValuePair("timestamp", timeStamp));
107
+            params.add(new BasicNameValuePair("v", fadadaProperties.getVersion()));
108
+            params.add(new BasicNameValuePair("msg_digest", msgDigest));
109
+        } catch (Exception var7) {
110
+            var7.printStackTrace();
111
+            throw new RuntimeException(var7);
112
+        }
113
+
114
+        return HttpsUtil.doPost(getFddServerHost(miniappId,fadadaProperties.getServeHost()) + "get_auth_status.api", params);
115
+    }
116
+
117
+    /**
118
+     * 替换法大大服务器地址
119
+     * @return
120
+     */
121
+    private String getFddServerHost(String miniappId,String subUrl) {
122
+        TaMiniapp taMiniapp = taMiniappMapper.selectById(miniappId);
123
+        int index = subUrl.indexOf(File.separator);
124
+        int twoIndex = subUrl.indexOf(File.separator,index);
125
+        int threeIndex = subUrl.indexOf(File.separator,twoIndex);
126
+        String newUrl = StringUtils.isEmpty(taMiniapp.getFddServerHost()) ? subUrl : taMiniapp.getFddServerHost() + subUrl.substring(threeIndex);
127
+        return newUrl;
67 128
     }
68 129
 }

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

@@ -13,16 +13,24 @@ 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.entity.TaMiniapp;
24
+import com.huiju.estateagents.mapper.TaMiniappMapper;
25
+import com.huiju.estateagents.sample.entity.TaContact;
26
+import com.huiju.estateagents.sample.mapper.TaContactMapper;
20 27
 import jodd.util.URLDecoder;
21 28
 import lombok.extern.slf4j.Slf4j;
22 29
 import org.apache.commons.codec.binary.Base64;
23 30
 import org.springframework.beans.factory.annotation.Autowired;
24 31
 import org.springframework.stereotype.Service;
25 32
 
33
+import java.io.File;
26 34
 import java.time.LocalDateTime;
27 35
 import java.time.format.DateTimeFormatter;
28 36
 
@@ -44,6 +52,15 @@ public class TaCompanyServiceImpl extends ServiceImpl<TaCompanyMapper, TaCompany
44 52
     @Autowired
45 53
     private TaCompanyMapper taCompanyMapper;
46 54
 
55
+    @Autowired
56
+    private TaContractMapper taContractMapper;
57
+
58
+    @Autowired
59
+    private TaCompanySealUtil taCompanySealUtil;
60
+
61
+    @Autowired
62
+    private TaMiniappMapper taMiniappMapper;
63
+
47 64
     /**
48 65
      * 在法大大创建一个新的企业信息
49 66
      *
@@ -70,6 +87,7 @@ public class TaCompanyServiceImpl extends ServiceImpl<TaCompanyMapper, TaCompany
70 87
         taCompany.setCertifiedStatus(CommConstant.CERTIFIED_STATUS_REGISTERED);
71 88
         taCompany.setCreateDate(LocalDateTime.now());
72 89
         taCompany.setStatus(CommConstant.STATUS_UNACCALIMED);
90
+        taCompany.setAuthorizeStatus("3001");
73 91
         taCompanyMapper.insert(taCompany);
74 92
         return taCompany;
75 93
     }
@@ -185,6 +203,37 @@ public class TaCompanyServiceImpl extends ServiceImpl<TaCompanyMapper, TaCompany
185 203
         return taCompany;
186 204
     }
187 205
 
206
+    @Override
207
+    public String autoAuthCompanySeal(Integer companyId, Integer orgId, String miniAppId) throws Exception {
208
+        TaCompany taCompany = taCompanyMapper.selectById(companyId);
209
+        String timeStamp = HttpsUtil.getTimeStamp();
210
+        String transactionId = "TRAN" + timeStamp;
211
+        TaContract taContract = new TaContract();
212
+        taContract.setCompanyId(companyId);
213
+        taContract.setOrgId(orgId);
214
+        taContract.setCreateDate(LocalDateTime.now());
215
+        taContract.setTargetType(CommConstant.AUTH);
216
+        taContract.setStatus(CommConstant.STATUS_UNACCALIMED);
217
+        taContract.setOrgId(orgId);
218
+        taContractMapper.insert(taContract);
219
+
220
+        Integer contractId = taContract.getContractId();
221
+        String customerId = taCompany.getFadadaCode();
222
+        String res = taCompanySealUtil.autoAuthCompanySeal(transactionId, CommConstant.AUTH_TYPE, String.valueOf(contractId), customerId, String.valueOf(companyId), miniAppId);
223
+        return res;
224
+    }
225
+
226
+    @Override
227
+    public TaCompany getCompanyAndContractInfo(Integer companyId) {
228
+        return taCompanyMapper.getCompanyAndContractInfo(companyId);
229
+    }
230
+
231
+    @Override
232
+    public String getAuthStatus(Integer companyId, String miniAppId) {
233
+        TaCompany taCompany = taCompanyMapper.selectById(companyId);
234
+        return taCompanySealUtil.getAuthStatus(taCompany.getFadadaCode(), miniAppId);
235
+    }
236
+
188 237
     /**
189 238
      * url解码
190 239
      * @param bizContent
@@ -195,4 +244,17 @@ public class TaCompanyServiceImpl extends ServiceImpl<TaCompanyMapper, TaCompany
195 244
         bizContent = new String(Base64.decodeBase64(bizContent.getBytes()));
196 245
         return bizContent;
197 246
     }
247
+
248
+    /**
249
+     * 替换法大大服务器地址
250
+     * @return
251
+     */
252
+    private String getFddServerHost(String miniappId,String subUrl) {
253
+        TaMiniapp taMiniapp = taMiniappMapper.selectById(miniappId);
254
+        int index = subUrl.indexOf(File.separator);
255
+        int twoIndex = subUrl.indexOf(File.separator,index);
256
+        int threeIndex = subUrl.indexOf(File.separator,twoIndex);
257
+        String newUrl = StringUtils.isEmpty(taMiniapp.getFddServerHost()) ? subUrl : taMiniapp.getFddServerHost() + subUrl.substring(threeIndex);
258
+        return newUrl;
259
+    }
198 260
 }

+ 34
- 6
src/main/java/com/huiju/estateagents/eContract/service/impl/TaContractServiceImpl.java 查看文件

@@ -10,6 +10,7 @@ import com.fadada.sdk.test.util.ConfigUtil;
10 10
 import com.fadada.sdk.util.http.HttpsUtil;
11 11
 import com.huiju.estateagents.base.ResponseBean;
12 12
 import com.huiju.estateagents.bo.request.ContractRecordRequestBO;
13
+import com.huiju.estateagents.common.StringUtils;
13 14
 import com.huiju.estateagents.config.FadadaProperties;
14 15
 import com.huiju.estateagents.eContract.entity.TaContract;
15 16
 import com.huiju.estateagents.eContract.entity.TaContractBusiness;
@@ -18,8 +19,10 @@ import com.huiju.estateagents.eContract.mapper.TaContractMapper;
18 19
 import com.huiju.estateagents.eContract.mapper.TaContractUserMapper;
19 20
 import com.huiju.estateagents.eContract.service.ITaContractService;
20 21
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
22
+import com.huiju.estateagents.entity.TaMiniapp;
21 23
 import com.huiju.estateagents.entity.TaPerson;
22 24
 import com.huiju.estateagents.entity.TaRaiseRecord;
25
+import com.huiju.estateagents.mapper.TaMiniappMapper;
23 26
 import com.huiju.estateagents.mapper.TaOrgMapper;
24 27
 import com.huiju.estateagents.mapper.TaRaiseRecordMapper;
25 28
 import lombok.extern.slf4j.Slf4j;
@@ -27,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
27 30
 import org.springframework.stereotype.Service;
28 31
 import org.springframework.transaction.annotation.Transactional;
29 32
 
33
+import java.io.File;
30 34
 import java.time.LocalDate;
31 35
 import java.time.LocalDateTime;
32 36
 import java.util.Map;
@@ -58,6 +62,9 @@ public class TaContractServiceImpl extends ServiceImpl<TaContractMapper, TaContr
58 62
     @Autowired
59 63
     private TaContractUserMapper taContractUserMapper;
60 64
 
65
+    @Autowired
66
+    private TaMiniappMapper taMiniappMapper;
67
+
61 68
 
62 69
     @Override
63 70
     public ResponseBean listContractForAdmin(Integer pageNum, Integer pageSize, String contractName, Boolean archives, String signatoryName, Integer signatoryStatus, String customerName, Integer customerStatus, LocalDate archivesStartDate, LocalDate archivesEndDate, Integer orgId) {
@@ -95,6 +102,9 @@ public class TaContractServiceImpl extends ServiceImpl<TaContractMapper, TaContr
95 102
 
96 103
         //根据raiseId获取合同的所有参数
97 104
         TaContractBusiness taContractBusiness = taContractMapper.selectContractInfoByRaiseId(taRaiseRecord.getRaiseId());
105
+        if (null == taContractBusiness){
106
+            throw new Exception("无合同模板,请和置业顾问联系");
107
+        }
98 108
 
99 109
         //先入合同表
100 110
         TaContract taContract = new TaContract();
@@ -111,10 +121,10 @@ public class TaContractServiceImpl extends ServiceImpl<TaContractMapper, TaContr
111 121
         taContractMapper.insert(taContract);
112 122
 
113 123
         //上传合同
114
-        FddClientBase base = new FddClientBase(fadadaProperties.getAppId(),fadadaProperties.getAppSecret(),fadadaProperties.getVersion(),fadadaProperties.getServeHost());
124
+        FddClientBase base = new FddClientBase(fadadaProperties.getAppId(),fadadaProperties.getAppSecret(),fadadaProperties.getVersion(),getFddServerHost(person.getMiniappId(),fadadaProperties.getServeHost()));
115 125
         String result = base.invokeUploadDocs(taContract.getContractId().toString(), taContractBusiness.getContractTemplateName(), null, taContractBusiness.getContractTemplateAddress(), ".pdf");
116 126
         JSONObject jsonObject = JSONObject.parseObject(result);
117
-        if (!jsonObject.getInteger("code").equals("1000")){
127
+        if (!jsonObject.getString("code").equals("1000")){
118 128
             throw new Exception(jsonObject.getString("msg"));
119 129
         }
120 130
 
@@ -131,7 +141,7 @@ public class TaContractServiceImpl extends ServiceImpl<TaContractMapper, TaContr
131 141
         req.setDoc_title(taContractBusiness.getContractTemplateName());
132 142
         String autoSignResult = base.invokeExtSignAuto(req);
133 143
         JSONObject autoSignResultJson = JSONObject.parseObject(autoSignResult);
134
-        if (!autoSignResultJson.getInteger("code").equals("1000")){
144
+        if (!autoSignResultJson.getString("code").equals("1000")){
135 145
             throw new Exception(jsonObject.getString("msg"));
136 146
         }
137 147
 
@@ -140,9 +150,25 @@ public class TaContractServiceImpl extends ServiceImpl<TaContractMapper, TaContr
140 150
         taContract.setContractViewUrl(autoSignResultJson.getString("viewpdf_url"));
141 151
         taContract.setStatus(1);
142 152
         taContractMapper.updateById(taContract);
153
+
154
+        //企业名称
155
+        taContract.setCompanyName(taContractBusiness.getCompanyName());
143 156
         return taContract;
144 157
     }
145 158
 
159
+    /**
160
+     * 替换法大大服务器地址
161
+     * @return
162
+     */
163
+    private String getFddServerHost(String miniappId,String subUrl) {
164
+        TaMiniapp taMiniapp = taMiniappMapper.selectById(miniappId);
165
+        int index = subUrl.indexOf(File.separator);
166
+        int twoIndex = subUrl.indexOf(File.separator,index);
167
+        int threeIndex = subUrl.indexOf(File.separator,twoIndex);
168
+        String newUrl = StringUtils.isEmpty(taMiniapp.getFddServerHost()) ? subUrl : taMiniapp.getFddServerHost() + subUrl.substring(threeIndex);
169
+        return newUrl;
170
+    }
171
+
146 172
     /**
147 173
      * 手动签署合同
148 174
      *
@@ -151,8 +177,7 @@ public class TaContractServiceImpl extends ServiceImpl<TaContractMapper, TaContr
151 177
      * @return
152 178
      */
153 179
     @Override
154
-    public String
155
-    manualContract(TaContract taContract, TaPerson person) {
180
+    public String manualContract(TaContract taContract, TaPerson person) throws Exception {
156 181
         //获取客户信息
157 182
         QueryWrapper<TaContractUser> queryWrapper = new QueryWrapper<>();
158 183
         queryWrapper.eq("mini_openid",person.getMiniOpenid());
@@ -160,12 +185,15 @@ public class TaContractServiceImpl extends ServiceImpl<TaContractMapper, TaContr
160 185
 
161 186
         //根据raiseId获取合同的所有参数
162 187
         TaContractBusiness taContractBusiness = taContractMapper.selectContractInfoByRaiseId(taContract.getTargetId().toString());
188
+        if (null == taContractBusiness){
189
+            throw new Exception("无合同模板,请和置业顾问联系");
190
+        }
163 191
 
164 192
         //手动签署合同
165 193
         String timeStamp = HttpsUtil.getTimeStamp();
166 194
         String transaction_id = "TRAN_" + timeStamp;
167 195
 
168
-        FddClientBase base = new FddClientBase(fadadaProperties.getAppId(),fadadaProperties.getAppSecret(),fadadaProperties.getVersion(),fadadaProperties.getServeHost());
196
+        FddClientBase base = new FddClientBase(fadadaProperties.getAppId(),fadadaProperties.getAppSecret(),fadadaProperties.getVersion(),getFddServerHost(person.getMiniappId(),fadadaProperties.getServeHost()));
169 197
         ExtsignReq req = new ExtsignReq();
170 198
         req.setCustomer_id(taContractUser.getFadadaCode());
171 199
         req.setTransaction_id(transaction_id);

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

@@ -7,19 +7,23 @@ import com.fadada.sdk.client.FddClientBase;
7 7
 import com.fadada.sdk.client.authForfadada.FindCertInfo;
8 8
 import com.fadada.sdk.client.authForfadada.GetPersonVerifyUrl;
9 9
 import com.huiju.estateagents.common.CommConstant;
10
+import com.huiju.estateagents.common.StringUtils;
10 11
 import com.huiju.estateagents.config.FadadaProperties;
11 12
 import com.huiju.estateagents.eContract.entity.TaContractUser;
12 13
 import com.huiju.estateagents.eContract.mapper.TaContractUserMapper;
13 14
 import com.huiju.estateagents.eContract.service.ITaContractUserService;
14 15
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
16
+import com.huiju.estateagents.entity.TaMiniapp;
15 17
 import com.huiju.estateagents.entity.TaPerson;
16 18
 import com.huiju.estateagents.entity.TaRaiseRecord;
19
+import com.huiju.estateagents.mapper.TaMiniappMapper;
17 20
 import jodd.util.URLDecoder;
18 21
 import lombok.extern.slf4j.Slf4j;
19 22
 import org.apache.commons.codec.binary.Base64;
20 23
 import org.springframework.beans.factory.annotation.Autowired;
21 24
 import org.springframework.stereotype.Service;
22 25
 
26
+import java.io.File;
23 27
 import java.time.LocalDateTime;
24 28
 
25 29
 /**
@@ -39,6 +43,9 @@ public class TaContractUserServiceImpl extends ServiceImpl<TaContractUserMapper,
39 43
 
40 44
     @Autowired
41 45
     private TaContractUserMapper taContractUserMapper;
46
+
47
+    @Autowired
48
+    private TaMiniappMapper taMiniappMapper;
42 49
     /**
43 50
      * 小程序端首次签署合同的是要在法大大处创建账号
44 51
      *
@@ -59,9 +66,9 @@ public class TaContractUserServiceImpl extends ServiceImpl<TaContractUserMapper,
59 66
         //没有法大大账号的先注册
60 67
         log.info("========法大大个人注册=======");
61 68
         //在法大大注册个人用户
62
-        FddClientBase base = new FddClientBase(fadadaProperties.getAppId(),fadadaProperties.getAppSecret(),fadadaProperties.getVersion(),fadadaProperties.getServeHost());
63
-        //小程序id为注册账号
64
-        String open_id = person.getMiniappId();
69
+        FddClientBase base = new FddClientBase(fadadaProperties.getAppId(),fadadaProperties.getAppSecret(),fadadaProperties.getVersion(),getFddServerHost(person.getMiniappId(),fadadaProperties.getServeHost()));
70
+        //小程序open——id为注册账号
71
+        String open_id = person.getMiniOpenid();
65 72
         //account_type 1是个人注册
66 73
         String result =base.invokeregisterAccount(open_id,"1");
67 74
         log.info("法大大注册信息{}", result);
@@ -81,8 +88,9 @@ public class TaContractUserServiceImpl extends ServiceImpl<TaContractUserMapper,
81 88
         newContractUser.setOrgId(CommConstant.STATUS_UNACCALIMED);
82 89
 
83 90
         log.info("正在申请个人认证,客户编码是{}",jsonObject.getString("data"));
84
-        GetPersonVerifyUrl personverify = new GetPersonVerifyUrl(fadadaProperties.getAppId(),fadadaProperties.getAppSecret(),fadadaProperties.getVersion(),fadadaProperties.getServeHost());
91
+        GetPersonVerifyUrl personverify = new GetPersonVerifyUrl(fadadaProperties.getAppId(),fadadaProperties.getAppSecret(),fadadaProperties.getVersion(),getFddServerHost(person.getMiniappId(),fadadaProperties.getServeHost()));
85 92
         String customer_id = jsonObject.getString("data");
93
+        //0:三要素标准方案; 1:三要素补充方案;
86 94
         String verifyed_way = "0";
87 95
         String page_modify = "1";
88 96
         String notify_url = fadadaProperties.getCompanyNotify();
@@ -90,13 +98,13 @@ public class TaContractUserServiceImpl extends ServiceImpl<TaContractUserMapper,
90 98
         String customer_ident_type = "0";
91 99
         String personResult = personverify.invokePersonVerifyUrl(customer_id,verifyed_way,
92 100
                 page_modify,notify_url,return_url,null,customer_ident_type,
93
-                null,null,null,null,null);
101
+                null,null,null,"1",null);
94 102
 
95 103
         String data = JSON.parseObject(personResult).getString("data");
96 104
         if (null !=data){
97 105
             String url = JSON.parseObject(data).getString("url");
98 106
             url = decode(url);
99
-            newContractUser.setCertifiedAddress(url);
107
+            newContractUser.setCertifiedAddress(getFddServerHost(person.getMiniappId(),url));
100 108
             newContractUser.setCertifiedSerialNumber(JSON.parseObject(data).getString("transactionNo"));
101 109
         }
102 110
         newContractUser.setStatus(0);
@@ -106,6 +114,19 @@ public class TaContractUserServiceImpl extends ServiceImpl<TaContractUserMapper,
106 114
         return newContractUser;
107 115
     }
108 116
 
117
+    /**
118
+     * 替换法大大服务器地址
119
+     * @return
120
+     */
121
+    private String getFddServerHost(String miniappId,String subUrl) {
122
+        TaMiniapp taMiniapp = taMiniappMapper.selectById(miniappId);
123
+        int index = subUrl.indexOf(File.separator);
124
+        int twoIndex = subUrl.indexOf(File.separator,index);
125
+        int threeIndex = subUrl.indexOf(File.separator,twoIndex);
126
+        String newUrl = StringUtils.isEmpty(taMiniapp.getFddServerHost()) ? subUrl : taMiniapp.getFddServerHost() + subUrl.substring(threeIndex);
127
+        return newUrl;
128
+    }
129
+
109 130
     /**
110 131
      * 去法大大处更新客户的状态
111 132
      *
@@ -119,7 +140,7 @@ public class TaContractUserServiceImpl extends ServiceImpl<TaContractUserMapper,
119 140
         queryWrapper.eq("mini_openid",person.getMiniOpenid());
120 141
         TaContractUser taContractUser = taContractUserMapper.selectOne(queryWrapper);
121 142
         log.info("个人正在从法大大获取最新数据,企业编号是 {}", taContractUser.getFadadaCode());
122
-        FindCertInfo personCertInfo = new FindCertInfo(fadadaProperties.getAppId(),fadadaProperties.getAppSecret(),fadadaProperties.getVersion(),fadadaProperties.getServeHost());
143
+        FindCertInfo personCertInfo = new FindCertInfo(fadadaProperties.getAppId(),fadadaProperties.getAppSecret(),fadadaProperties.getVersion(),getFddServerHost(person.getMiniappId(),fadadaProperties.getServeHost()));
123 144
         String verified_serialno = taContractUser.getCertifiedSerialNumber();
124 145
         String result = personCertInfo.invokeFindPersonCert(verified_serialno,
125 146
                 "1");

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

@@ -59,6 +59,8 @@ public class TaMiniapp implements Serializable {
59 59
 
60 60
     private String aesKey;
61 61
 
62
+    private String fddServerHost;
63
+
62 64
     @TableField(exist = false)
63 65
     private List<TaMiniappTemplate> tpls;
64 66
 }

+ 1
- 2
src/main/java/com/huiju/estateagents/entity/TaRaise.java 查看文件

@@ -170,8 +170,7 @@ public class TaRaise implements Serializable {
170 170
     /**
171 171
      * 是否邀请制 1是 0否
172 172
      */
173
-    @TableField(exist = false)
174
-    private Integer isInvite;
173
+    private Integer invite;
175 174
 
176 175
     /**
177 176
      * 被邀请电话号码

+ 24
- 13
src/main/java/com/huiju/estateagents/service/impl/TaBuildingServiceImpl.java 查看文件

@@ -118,11 +118,14 @@ public class TaBuildingServiceImpl extends ServiceImpl<TaBuildingMapper, TaBuild
118 118
     private TaPersonBuildingMapper taPersonBuildingMapper;
119 119
 
120 120
     @Autowired
121
-    private ITaRaiseInviteService iTaRaiseInviteService;
121
+    private ITaRaiseService iTaRaiseService;
122 122
 
123 123
     @Autowired
124 124
     private ITaPersonService iTaPersonService;
125 125
 
126
+    @Autowired
127
+    private ITaRaiseInviteService iTaRaiseInviteService;
128
+
126 129
     @Override
127 130
     public ResponseBean buildingList(Integer pageNum, Integer pageSize, String name, String code, LocalDateTime startDate, String buildingStatus, String marketStatus, Integer cityId, Integer isMain, Integer orgId, List<TaPersonBuilding> taPersonBuildingList) {
128 131
         Page<TaBuilding> page = new Page<>();
@@ -346,25 +349,33 @@ public class TaBuildingServiceImpl extends ServiceImpl<TaBuildingMapper, TaBuild
346 349
         List<TaSalesBatch> resultSalesBatchList = new ArrayList<>();
347 350
         taSalesBatch.stream().forEach(record -> {
348 351
             // 查询批次下认筹是否开启邀请制
349
-            QueryWrapper<TaRaiseInvite> taRaiseInviteQueryWrapper = new QueryWrapper<>();
350
-            taRaiseInviteQueryWrapper.eq("org_id", orgId);
351
-            taRaiseInviteQueryWrapper.eq("sales_batch_id", record.getSalesBatchId());
352
-            TaRaiseInvite taRaiseInvite = iTaRaiseInviteService.getOne(taRaiseInviteQueryWrapper);
353
-            if (taRaiseInvite == null) {
352
+            QueryWrapper<TaRaise> taRaiseQueryWrapper = new QueryWrapper<>();
353
+            taRaiseQueryWrapper.eq("org_id", orgId);
354
+            taRaiseQueryWrapper.eq("sales_batch_id", record.getSalesBatchId());
355
+            taRaiseQueryWrapper.eq("status", CommConstant.STATUS_NORMAL);
356
+            TaRaise taRaise = iTaRaiseService.getOne(taRaiseQueryWrapper);
357
+            if (taRaise == null) {
354 358
                 resultSalesBatchList.add(record);
355 359
                 return;
356 360
             }
357 361
 
358
-            // 若开启邀请制,校验该用户是否在邀请列表中
359
-            taRaiseInviteQueryWrapper = new QueryWrapper<>();
360
-            taRaiseInviteQueryWrapper.eq("org_id", orgId);
361
-            taRaiseInviteQueryWrapper.eq("invite_tel", person.getTel());
362
-            taRaiseInviteQueryWrapper.eq("sales_batch_id", record.getSalesBatchId());
363
-            TaRaiseInvite taRaiseInvite2 = iTaRaiseInviteService.getOne(taRaiseInviteQueryWrapper);
364
-            if(taRaiseInvite2 != null){
362
+            // 未开启邀请制
363
+            if (CommConstant.STATUS_NORMAL != taRaise.getInvite()) {
365 364
                 resultSalesBatchList.add(record);
366 365
                 return;
367 366
             }
367
+
368
+            if (CommConstant.STATUS_NORMAL == taRaise.getInvite()) {
369
+                // 若开启邀请制,校验该用户是否在邀请列表中
370
+                QueryWrapper<TaRaiseInvite> taRaiseInviteQueryWrapper = new QueryWrapper<>();
371
+                taRaiseInviteQueryWrapper.eq("org_id", orgId);
372
+                taRaiseInviteQueryWrapper.eq("invite_tel", person.getTel());
373
+                taRaiseInviteQueryWrapper.eq("sales_batch_id", record.getSalesBatchId());
374
+                TaRaiseInvite taRaiseInvite = iTaRaiseInviteService.getOne(taRaiseInviteQueryWrapper);
375
+                if (taRaiseInvite != null) {
376
+                    resultSalesBatchList.add(record);
377
+                }
378
+            }
368 379
         });
369 380
 
370 381
         building.setSalesBatch(resultSalesBatchList);

+ 1
- 2
src/main/java/com/huiju/estateagents/service/impl/TaRaiseRecordServiceImpl.java 查看文件

@@ -435,7 +435,7 @@ public class TaRaiseRecordServiceImpl extends ServiceImpl<TaRaiseRecordMapper, T
435 435
                         map.put("taContract", taContract);
436 436
                     }
437 437
                 } else {
438
-                    taRaiseRecord.setShowContract(0);
438
+                    taRaiseRecord.setShowContract(1);
439 439
                 }
440 440
             } else {
441 441
                 taRaiseRecord.setShowContract(0);
@@ -448,7 +448,6 @@ public class TaRaiseRecordServiceImpl extends ServiceImpl<TaRaiseRecordMapper, T
448 448
         map.put("taRaiseHouseList", taRaiseHouseList);
449 449
         map.put("houseList", houseList);
450 450
         map.put("taOrder", taOrder);
451
-
452 451
         map.put("taRaise", taRaise);
453 452
         responseBean.addSuccess(map);
454 453
         return responseBean;

+ 14
- 17
src/main/java/com/huiju/estateagents/service/impl/TaRaiseServiceImpl.java 查看文件

@@ -114,23 +114,20 @@ public class TaRaiseServiceImpl extends ServiceImpl<TaRaiseMapper, TaRaise> impl
114 114
             return responseBean;
115 115
         }
116 116
 
117
-        // 获取邀请人数据
118
-        QueryWrapper<TaRaiseInvite> taRaiseInviteQueryWrapper = new QueryWrapper<>();
119
-        taRaiseInviteQueryWrapper.eq("org_id", orgId);
120
-        taRaiseInviteQueryWrapper.eq("raise_id", taRaise.getRaiseId());
121
-        taRaiseInviteQueryWrapper.orderByAsc("create_date");
122
-        List<TaRaiseInvite> taRaiseInviteList = taRaiseInviteService.list(taRaiseInviteQueryWrapper);
123
-        StringBuilder inviteTelSb = new StringBuilder();
124
-        taRaiseInviteList.stream().forEach(record -> {
125
-            inviteTelSb.append(record.getInviteTel() + "\n");
126
-        });
127
-
128
-        if (CollectionUtils.isEmpty(taRaiseInviteList)) {
129
-            taRaise.setIsInvite(CommConstant.STATUS_UNACCALIMED);
130
-        } else {
131
-            taRaise.setIsInvite(CommConstant.STATUS_NORMAL);
117
+        if (taRaise.getInvite() != null && CommConstant.STATUS_NORMAL == taRaise.getInvite()) {
118
+            // 获取邀请人数据
119
+            QueryWrapper<TaRaiseInvite> taRaiseInviteQueryWrapper = new QueryWrapper<>();
120
+            taRaiseInviteQueryWrapper.eq("org_id", orgId);
121
+            taRaiseInviteQueryWrapper.eq("raise_id", taRaise.getRaiseId());
122
+            taRaiseInviteQueryWrapper.orderByAsc("create_date");
123
+            List<TaRaiseInvite> taRaiseInviteList = taRaiseInviteService.list(taRaiseInviteQueryWrapper);
124
+            StringBuilder inviteTelSb = new StringBuilder();
125
+            taRaiseInviteList.stream().forEach(record -> {
126
+                inviteTelSb.append(record.getInviteTel() + "\n");
127
+            });
132 128
             taRaise.setInviteTel(inviteTelSb.toString());
133 129
         }
130
+
134 131
         taRaise.setRaisePrice(taRaise.getRaisePrice() == null ? null : taRaise.getRaisePrice());
135 132
         responseBean.addSuccess(taRaise);
136 133
         return responseBean;
@@ -189,7 +186,7 @@ public class TaRaiseServiceImpl extends ServiceImpl<TaRaiseMapper, TaRaise> impl
189 186
         String[] inviteTelArr = StringUtils.isEmpty(taRaise.getInviteTel()) ?
190 187
                 new String[]{} : taRaise.getInviteTel().split("\n");
191 188
 
192
-        Arrays.asList(inviteTelArr).stream().forEach(record -> {
189
+        Arrays.asList(inviteTelArr).stream().distinct().forEach(record -> {
193 190
             TaRaiseInvite taRaiseInvite = new TaRaiseInvite();
194 191
             taRaiseInvite.setOrgId(orgId);
195 192
             taRaiseInvite.setRaiseId(taRaise.getRaiseId());
@@ -204,7 +201,7 @@ public class TaRaiseServiceImpl extends ServiceImpl<TaRaiseMapper, TaRaise> impl
204 201
             } else {
205 202
                 QueryWrapper<TaRaiseInvite> taRaiseInviteQueryWrapper = new QueryWrapper<>();
206 203
                 taRaiseInviteQueryWrapper.eq("org_id", orgId);
207
-                taRaiseInviteQueryWrapper.eq("org_id", taRaise.getRaiseId());
204
+                taRaiseInviteQueryWrapper.eq("raise_id", taRaise.getRaiseId());
208 205
                 taRaiseInviteQueryWrapper.eq("invite_tel", record);
209 206
                 TaRaiseInvite queryResult = taRaiseInviteService.getOne(taRaiseInviteQueryWrapper);
210 207
                 if (queryResult == null) {

+ 4
- 2
src/main/resources/application-blue.yml 查看文件

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

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

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

+ 6
- 0
src/main/resources/mapper/eContract/TaCompanyMapper.xml 查看文件

@@ -2,4 +2,10 @@
2 2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 3
 <mapper namespace="com.huiju.estateagents.eContract.mapper.TaCompanyMapper">
4 4
 
5
+    <select id="getCompanyAndContractInfo" resultType="com.huiju.estateagents.eContract.entity.TaCompany">
6
+        select *,a.contract_id From ta_company t
7
+        left join ta_contract a on t.company_id = a.company_id and a.target_type = 'auth' and a.status = 1
8
+        where t.company_id = #{companyId}
9
+    </select>
10
+
5 11
 </mapper>

+ 1
- 1
src/main/resources/mapper/eContract/TaContractMapper.xml 查看文件

@@ -110,7 +110,7 @@
110 110
         SELECT
111 111
             t.*,
112 112
             c.contract_template_address,
113
-            s.signatrue_id,
113
+            s.signature_id,
114 114
             d.fadada_code
115 115
         FROM
116 116
             ta_contract_business t