Ver código fonte

Merge branch 'test' into test-xq2

785834757 1 ano atrás
pai
commit
2ca6157c0e
17 arquivos alterados com 459 adições e 18 exclusões
  1. 27 5
      src/main/java/com/ydtech/modules/equity/components/EquityRequestApiComponents.java
  2. 21 0
      src/main/java/com/ydtech/modules/equity/controller/EquityController.java
  3. 34 0
      src/main/java/com/ydtech/modules/equity/model/request/OrderveRificationRightInfoVo.java
  4. 66 0
      src/main/java/com/ydtech/modules/equity/model/response/RightInfoDto.java
  5. 24 0
      src/main/java/com/ydtech/modules/equity/model/response/RightInfoResultResponse.java
  6. 44 0
      src/main/java/com/ydtech/modules/equity/model/vo/RightInfoQueryVo.java
  7. 18 0
      src/main/java/com/ydtech/modules/equity/service/EquityService.java
  8. 24 3
      src/main/java/com/ydtech/modules/equity/service/impl/EquityServiceImpl.java
  9. 1 1
      src/main/java/com/ydtech/modules/order/constants/OrderCacheConstant.java
  10. 22 0
      src/main/java/com/ydtech/modules/order/controller/InsCrawlerOrderController.java
  11. 5 1
      src/main/java/com/ydtech/modules/order/entity/api/zijin/constants/enums/MotorVehicleInsuranceEnum.java
  12. 30 0
      src/main/java/com/ydtech/modules/order/entity/crawler/request/CrawlerBaseSendSmsCodeRequest.java
  13. 26 0
      src/main/java/com/ydtech/modules/order/entity/crawler/request/GuoRenCrawlerSendSmsCodeRequest.java
  14. 4 0
      src/main/java/com/ydtech/modules/order/entity/dto/TaskPoolDataExcelDto.java
  15. 11 0
      src/main/java/com/ydtech/modules/order/service/InsCrawlerOrderService.java
  16. 99 8
      src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java
  17. 3 0
      src/main/java/com/ydtech/modules/protocol/entity/vo/PtlAgreementSaveVo.java

+ 27 - 5
src/main/java/com/ydtech/modules/equity/components/EquityRequestApiComponents.java

@@ -4,10 +4,9 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.equity.model.request.*;
-import com.ydtech.modules.equity.model.response.BaseResponse;
-import com.ydtech.modules.equity.model.response.LocalEquityPackagePage;
-import com.ydtech.modules.equity.model.response.PageResultResponse;
-import com.ydtech.modules.equity.model.response.PointRatioDto;
+import com.ydtech.modules.equity.model.response.*;
+import com.ydtech.modules.equity.model.request.OrderveRificationRightInfoVo;
+import com.ydtech.modules.equity.model.vo.RightInfoQueryVo;
 import com.ydtech.modules.equity.utils.SMCheckDataUtils;
 import com.ydtech.modules.order.utils.InsuranceLog;
 import com.ydtech.utils.HttpUtil;
@@ -17,7 +16,6 @@ import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
 import org.springframework.lang.Nullable;
 import org.springframework.stereotype.Component;
-import org.springframework.web.client.RestTemplate;
 
 import java.util.HashMap;
 import java.util.List;
@@ -129,4 +127,28 @@ public class EquityRequestApiComponents {
             return null;
         }
     }
+
+    /**
+     * 获取权益列表
+     * @param rightInfoQueryVo
+     * @return
+     */
+    public RightInfoResultResponse findListByPhoneAndLicenseNo(RightInfoQueryVo rightInfoQueryVo){
+
+        RightInfoResultResponse response = request(properties.getUrl(), "findListByPhoneAndLicenseNo"
+                ,rightInfoQueryVo , RightInfoResultResponse.class);
+        RightInfoResultResponse res = JSON.parseObject(response.getResult()).toJavaObject(RightInfoResultResponse.class);
+        return res;
+    }
+
+    /**
+     * 保单核销权益卷接口
+     * @param orderveRificationRightInfoVo
+     * @return
+     */
+    public BaseResponse orderveRificationRightInfo(OrderveRificationRightInfoVo orderveRificationRightInfoVo){
+        BaseResponse response = request(properties.getUrl(), "orderveRificationRightInfo"
+                ,orderveRificationRightInfoVo , BaseResponse.class);
+        return response;
+    }
 }

+ 21 - 0
src/main/java/com/ydtech/modules/equity/controller/EquityController.java

@@ -9,10 +9,12 @@ import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.customer.entity.vo.ReturnMessageVo;
 import com.ydtech.modules.equity.model.InsAreaCompanyEquity;
+import com.ydtech.modules.equity.model.request.OrderveRificationRightInfoVo;
 import com.ydtech.modules.equity.model.response.LocalEquityPackagePage;
 import com.ydtech.modules.equity.model.vo.AddEquityPageQueryVo;
 import com.ydtech.modules.equity.model.vo.EquityPageQueryVo;
 import com.ydtech.modules.equity.model.vo.EquitySaveVo;
+import com.ydtech.modules.equity.model.vo.RightInfoQueryVo;
 import com.ydtech.modules.equity.service.EquityService;
 import com.ydtech.modules.order.entity.BasePageResult;
 import io.swagger.annotations.Api;
@@ -122,5 +124,24 @@ public class EquityController  extends BaseController {
         return HttpResult.ok();
     }
 
+    /**
+     * 获取权益列表
+     * @param rightInfoQueryVo
+     * @return
+     */
+    @PostMapping("/findListByPhoneAndLicenseNo")
+    public HttpResult findListByPhoneAndLicenseNo(@Validated @RequestBody RightInfoQueryVo rightInfoQueryVo) {
+        return HttpResult.ok(equityService.findListByPhoneAndLicenseNo(rightInfoQueryVo));
+    }
+
+    /**
+     * 提交权益信息
+     * @param orderveRificationRightInfoVo
+     * @return
+     */
+    @PostMapping("/orderveRificationRightInfo")
+    public HttpResult orderveRificationRightInfo(@Validated @RequestBody OrderveRificationRightInfoVo orderveRificationRightInfoVo){
+        return HttpResult.ok(equityService.orderveRificationRightInfo(orderveRificationRightInfoVo));
+    }
 
 }

+ 34 - 0
src/main/java/com/ydtech/modules/equity/model/request/OrderveRificationRightInfoVo.java

@@ -0,0 +1,34 @@
+package com.ydtech.modules.equity.model.request;
+
+
+import com.ydtech.modules.equity.model.request.BaseRequest;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2025/7/22 16:20
+ *  @Description: 下单核销对象
+ */
+@Data
+public class OrderveRificationRightInfoVo extends BaseRequest {
+
+    @ApiModelProperty(value = "子订单号")
+    private String subOrderNo;
+
+    @ApiModelProperty(value = "保单总保费")
+    private BigDecimal sumPremium;
+
+    @ApiModelProperty(value = "关联权益卷id")
+    private String localRightsUserInfoId;
+
+    @ApiModelProperty(value = "核销人工号")
+    private String writeOffUserId;
+
+    @ApiModelProperty(value = "核销人名称")
+    private String writeOffUserName;
+
+}

+ 66 - 0
src/main/java/com/ydtech/modules/equity/model/response/RightInfoDto.java

@@ -0,0 +1,66 @@
+package com.ydtech.modules.equity.model.response;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class RightInfoDto extends BaseResponse {
+
+    @ApiModelProperty(value = "用户关联权益卷id")
+    private String localRightsUserInfoId;
+
+
+    @ApiModelProperty(value = "权益卷名称")
+    private String localRightsUserInfoName;
+
+    @ApiModelProperty(value = "分类Id")
+    private String classifyId;
+
+    @ApiModelProperty(value = "分类名称")
+    private String classifyName;
+
+    @ApiModelProperty(value = "状态(0:未使用 1:已使用 3.待领取4.已失效)")
+    private String status;
+
+    @ApiModelProperty(value = "状态值")
+    private String statusName;
+    /**
+     * 兑换人
+     */
+    @ApiModelProperty(value = "姓名")
+    private String exchangeName;
+
+    @ApiModelProperty(value = "电话")
+    private String exchangePhone;
+
+
+    @ApiModelProperty(value = "申请兑现时间")
+    private String exchangeTime;
+
+
+    @ApiModelProperty(value = "兑换状态 0 未兑换  1已兑换  ")
+    private String exchangeStatus;
+
+    @ApiModelProperty(value = "兑换状态名称")
+    private String exchangeStatusName;
+
+    @ApiModelProperty(value = "兑换订单号")
+    private String exchangeSubOrderNo;
+
+    @ApiModelProperty(value = "操作(兑换)时间")
+    private String oprationDate;
+
+    @ApiModelProperty(value = "操作人")
+    private String writeOffUserName;
+
+
+    @ApiModelProperty(value = "有效期开始时间")
+    private String periodValidityBeginDate;
+
+    @ApiModelProperty(value = "有效期结束时间")
+    private String periodValidityEndDate;
+
+
+    @ApiModelProperty(value = "使用有限期类型(1.用户领取后生效2.三方用户赠送时间起3.固定时间段4.长期可用)")
+    private String useType;
+}

+ 24 - 0
src/main/java/com/ydtech/modules/equity/model/response/RightInfoResultResponse.java

@@ -0,0 +1,24 @@
+package com.ydtech.modules.equity.model.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class RightInfoResultResponse extends BaseResponse {
+
+    @JsonProperty("records")
+    public List<RightInfoDto> records;
+
+    @JsonProperty("total")
+    public int total;
+
+    @JsonProperty("pages")
+    public int pages;
+
+    @JsonProperty("size")
+    public int size;
+}

+ 44 - 0
src/main/java/com/ydtech/modules/equity/model/vo/RightInfoQueryVo.java

@@ -0,0 +1,44 @@
+package com.ydtech.modules.equity.model.vo;
+
+import com.ydtech.modules.equity.model.request.BaseRequest;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class RightInfoQueryVo extends BaseRequest {
+
+    @ApiModelProperty(value = "页码")
+    private Integer pageNo;
+
+    @ApiModelProperty(value = "页数")
+    private Integer pageSize;
+
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "有效期开始时间")
+    private String periodValidityBeginDate;
+
+    @ApiModelProperty(value = "有效期结束时间")
+    private String periodValidityEndDate;
+
+    @ApiModelProperty(value = "权益状态")
+    private String status;
+
+    @ApiModelProperty(value = "兑换状态")
+    private String exchangeStatus;
+
+    @ApiModelProperty(value = "操作开始时间")
+    private String oprationBeginDate;
+
+    @ApiModelProperty(value = "操作结束时间")
+    private String oprationEndDate;
+
+    @ApiModelProperty(value = "操作人")
+    private String oprationName;
+
+}

+ 18 - 0
src/main/java/com/ydtech/modules/equity/service/EquityService.java

@@ -2,9 +2,13 @@ package com.ydtech.modules.equity.service;
 
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.equity.model.InsAreaCompanyEquity;
+import com.ydtech.modules.equity.model.request.OrderveRificationRightInfoVo;
+import com.ydtech.modules.equity.model.response.BaseResponse;
+import com.ydtech.modules.equity.model.response.RightInfoResultResponse;
 import com.ydtech.modules.equity.model.vo.AddEquityPageQueryVo;
 import com.ydtech.modules.equity.model.vo.EquityPageQueryVo;
 import com.ydtech.modules.equity.model.vo.EquitySaveVo;
+import com.ydtech.modules.equity.model.vo.RightInfoQueryVo;
 
 public interface EquityService {
 
@@ -67,4 +71,18 @@ public interface EquityService {
      * @return
      */
     InsAreaCompanyEquity queryEquityInfo(String companyId);
+
+    /**
+     * 获取权益列表
+     * @param rightInfoQueryVo
+     * @return
+     */
+    RightInfoResultResponse findListByPhoneAndLicenseNo(RightInfoQueryVo rightInfoQueryVo);
+
+    /**
+     * 9.保单核销权益卷接口
+     * @param orderveRificationRightInfoVo
+     * @return
+     */
+    BaseResponse orderveRificationRightInfo(OrderveRificationRightInfoVo orderveRificationRightInfoVo);
 }

+ 24 - 3
src/main/java/com/ydtech/modules/equity/service/impl/EquityServiceImpl.java

@@ -6,16 +6,16 @@ import com.ydtech.core.page.PageResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.service.SysUserService;
+import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.equity.components.EquityApiConfigurationProperties;
 import com.ydtech.modules.equity.components.EquityRequestApiComponents;
 import com.ydtech.modules.equity.model.InsAreaCompanyEquity;
 import com.ydtech.modules.equity.model.request.*;
-import com.ydtech.modules.equity.model.response.LocalEquityPackagePage;
-import com.ydtech.modules.equity.model.response.PageResultResponse;
-import com.ydtech.modules.equity.model.response.PointRatioDto;
+import com.ydtech.modules.equity.model.response.*;
 import com.ydtech.modules.equity.model.vo.AddEquityPageQueryVo;
 import com.ydtech.modules.equity.model.vo.EquityPageQueryVo;
 import com.ydtech.modules.equity.model.vo.EquitySaveVo;
+import com.ydtech.modules.equity.model.vo.RightInfoQueryVo;
 import com.ydtech.modules.equity.service.EquityService;
 import com.ydtech.modules.equity.service.InsAreaCompanyEquityService;
 import com.ydtech.modules.order.constants.BusinessConstant;
@@ -102,6 +102,26 @@ public class EquityServiceImpl implements EquityService {
         return equity;
     }
 
+    @Override
+    public RightInfoResultResponse findListByPhoneAndLicenseNo(RightInfoQueryVo rightInfoQueryVo) {
+        RightInfoResultResponse listByPhoneAndLicenseNo = equityRequestApiComponents.findListByPhoneAndLicenseNo(rightInfoQueryVo);
+        return listByPhoneAndLicenseNo;
+    }
+
+    @Override
+    public BaseResponse orderveRificationRightInfo(OrderveRificationRightInfoVo orderveRificationRightInfoVo) {
+        // 查询订单金额
+        InsAreaCompany insAreaCompany = insAreaCompanyService.getById(orderveRificationRightInfoVo.getSubOrderNo());
+        if (Objects.isNull(insAreaCompany)){
+            throw new SystemException("订单不存在!");
+        }
+        orderveRificationRightInfoVo.setSumPremium(insAreaCompany.getSumpremium());
+        orderveRificationRightInfoVo.setWriteOffUserId(BaseController.getUserId());
+        orderveRificationRightInfoVo.setWriteOffUserName(BaseController.getUser().getName());
+        BaseResponse baseResponse = equityRequestApiComponents.orderveRificationRightInfo(orderveRificationRightInfoVo);
+        return baseResponse;
+    }
+
     @Override
     public EquityPageQueryVo equityInfo(EquityPageQueryVo pageQueryVo) {
 
@@ -128,6 +148,7 @@ public class EquityServiceImpl implements EquityService {
                 totalAmount = fee.getTotalAmount();
             }
         }
+        pageQueryVo.setAmount(totalAmount);
         int pageNum = pageQueryVo.getPageNum();
         int pageSize = pageQueryVo.getPageSize();
         PageResult pageResult = new PageResult();

+ 1 - 1
src/main/java/com/ydtech/modules/order/constants/OrderCacheConstant.java

@@ -117,7 +117,7 @@ public class OrderCacheConstant {
     /**
      * 泰山财险 验证码token
      */
-    public static final String TS_ACCESS_TOKEN = "ts:access:token:";
+    public static final String BS_ACCESS_TOKEN = ":access:token:";
 
     /**
      * 泰山财险 验证码token

+ 22 - 0
src/main/java/com/ydtech/modules/order/controller/InsCrawlerOrderController.java

@@ -183,6 +183,28 @@ public class InsCrawlerOrderController extends BaseController {
         }
     }
 
+    @PostMapping(value = "/sendLoginSmsCode")
+    @ApiOperation(value = "统一发送登录验证码")
+    public HttpResult sendLoginSmsCode(@RequestBody PtlAgreementAttributionDto agreementAttributionDto) {
+        JSONObject response = insuranceCrawlerOrderService.sendLoginSmsCode(agreementAttributionDto);
+        if (response.getInteger("code") == 200){
+            return HttpResult.ok(response.getString("message"),response.getString("secretKey"));
+        }else{
+            return HttpResult.error("验证码发送失败");
+        }
+    }
+
+    @PostMapping(value = "/verifyLoginSmsCode")
+    @ApiOperation(value = "统一校验登录验证码")
+    public HttpResult verifyLoginSmsCode(@RequestBody PtlAgreementSaveVo agreement) {
+        boolean result = insuranceCrawlerOrderService.verifyLoginSmsCode(agreement);
+        if (result){
+            return HttpResult.ok("登录成功");
+        }else{
+            return HttpResult.error("登录失败");
+        }
+    }
+
     @GetMapping(value = "getYaCarDamageVerificationDict")
     @ApiOperation(value = "永安车损验证字典获取")
     public HttpResult getYaCarDamageVerificationDict() {

+ 5 - 1
src/main/java/com/ydtech/modules/order/entity/api/zijin/constants/enums/MotorVehicleInsuranceEnum.java

@@ -41,7 +41,11 @@ public enum MotorVehicleInsuranceEnum {
     MVI_A3("A3", "新能源汽车损失保险", " 商业险主险, 保额同车辆实际价值"),
     MVI_B3("B3", "新能源汽车第三者责任保险", "商业险主险,10万、15万、20万、30万、50万、100万,超过100万的校验“保额/限额”必须为50万的整数倍"),
     MVI_D5("D5", "新能源汽车车上人员责任保险(司机)", " 商业险主险"),
-    MVI_D6("D6", "新能源汽车车上人员责任保险(乘客)", " 商业险主险");
+    MVI_D6("D6", "新能源汽车车上人员责任保险(乘客)", " 商业险主险"),
+    MVI_T5("T5", "新能源道路救援服务特约条款", "必须大于0, 且在(2、7、12、17、22)之内"),
+    MVI_T6("T6", "新能源车辆安全检测特约条款", "必须大于0"),
+    MVI_T7("T7", "新能源代为驾驶服务特约条款", "必须大于0"),
+    MVI_T8("T8", "新能源代为送检服务特约条款", "必须大于0");
 
 
 

+ 30 - 0
src/main/java/com/ydtech/modules/order/entity/crawler/request/CrawlerBaseSendSmsCodeRequest.java

@@ -0,0 +1,30 @@
+package com.ydtech.modules.order.entity.crawler.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.protocol.entity.dto.PtlAgreementAttributionDto;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@NoArgsConstructor
+public class CrawlerBaseSendSmsCodeRequest implements Serializable {
+
+    private static final long serialVersionUID = 01404102263425770704306L;
+
+    /**
+     * 账号
+     */
+    @JsonProperty(value = "username")
+    private String username;
+
+    @JsonProperty(value = "pwd")
+    private String password;
+
+
+    public CrawlerBaseSendSmsCodeRequest(String username,String password){
+        this.username = username;
+        this.password = password;
+    }
+}

+ 26 - 0
src/main/java/com/ydtech/modules/order/entity/crawler/request/GuoRenCrawlerSendSmsCodeRequest.java

@@ -0,0 +1,26 @@
+package com.ydtech.modules.order.entity.crawler.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+public class GuoRenCrawlerSendSmsCodeRequest extends CrawlerBaseSendSmsCodeRequest {
+
+    private static final long serialVersionUID = 01404102263425770704306L;
+
+    @JsonProperty(value = "other")
+    private List<String> other;
+
+
+    public GuoRenCrawlerSendSmsCodeRequest(String username, String password){
+        this.setUsername(username);
+        this.setPassword(password);
+        this.setOther(new ArrayList<>());
+    }
+}

+ 4 - 0
src/main/java/com/ydtech/modules/order/entity/dto/TaskPoolDataExcelDto.java

@@ -36,6 +36,9 @@ public class TaskPoolDataExcelDto {
     @ExcelProperty("录入来源")
     private String entryStatus;
 
+    @ExcelProperty("操作人")
+    private String operatorName;
+
     @ExcelProperty("保险公司")
     private String insCompany;
 
@@ -98,6 +101,7 @@ public class TaskPoolDataExcelDto {
         this.taxAmount = insOrder.getTaxamount();
         this.jyPremium = insOrder.getJypremium();
         this.insuredName = insOrder.getInsuredname();
+        this.operatorName = insOrder.getOperatorName();
         /**
         try {
             UnderwritingStatus status = UnderwritingStatus.valueOf("US_" + insOrder.getUnderwritingStatus());

+ 11 - 0
src/main/java/com/ydtech/modules/order/service/InsCrawlerOrderService.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.order.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
@@ -135,4 +136,14 @@ public interface InsCrawlerOrderService extends BaseOrderService<Object> {
      * @return
      */
     YaCrawlerVerifyCodeResponse yaVerifyCode(String companyId, String smsCode) throws Exception;
+
+
+    JSONObject sendLoginSmsCode(PtlAgreementAttributionDto agreementAttributionDto);
+
+    /**
+     * 校验登录验证码
+     * @param agreement
+     * @return
+     */
+    Boolean verifyLoginSmsCode(PtlAgreementSaveVo agreement);
 }

+ 99 - 8
src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java

@@ -59,15 +59,14 @@ import java.math.RoundingMode;
 import java.net.URL;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
+import static com.ydtech.modules.order.constants.OrderCacheConstant.BS_ACCESS_TOKEN;
+
 
 @Service
 @RequiredArgsConstructor
@@ -929,7 +928,7 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         }
         // 将返回参数放入redis
         redisTemplate.opsForValue()
-                .set(OrderCacheConstant.TS_ACCESS_TOKEN + attributionDto.getUsername(), JSON.toJSONString(response.getData()), OrderCacheConstant.TS_ACCESS_TOKEN_TIME,
+                .set("TSBX"+OrderCacheConstant.BS_ACCESS_TOKEN + attributionDto.getUsername(), JSON.toJSONString(response.getData()), OrderCacheConstant.TS_ACCESS_TOKEN_TIME,
                         TimeUnit.SECONDS);
     }
 
@@ -943,7 +942,7 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
             throw new SystemException(response.getMessage());
         }
         // 将返回参数放入redis
-        redisTemplate.opsForValue().set(OrderCacheConstant.TS_ACCESS_TOKEN + attributionDto.getUsername(), JSON.toJSONString(response.getData()), OrderCacheConstant.TS_ACCESS_TOKEN_TIME,
+        redisTemplate.opsForValue().set("TSBX"+OrderCacheConstant.BS_ACCESS_TOKEN + attributionDto.getUsername(), JSON.toJSONString(response.getData()), OrderCacheConstant.TS_ACCESS_TOKEN_TIME,
                 TimeUnit.SECONDS);
     }
 
@@ -952,7 +951,7 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         // 获取协议的用户名密码
 
         String apiUrl = ptlCrawlerApiService.getByTemplateId(agreement.getAttribution().getTemplateId(), PtlCrawlerApiType.API_1);
-        String token = redisTemplate.opsForValue().get(OrderCacheConstant.TS_ACCESS_TOKEN + agreement.getAttribution().getUsername());
+        String token = redisTemplate.opsForValue().get("TSBX"+OrderCacheConstant.BS_ACCESS_TOKEN + agreement.getAttribution().getUsername());
         if (StringUtils.isNotBlank(token)) {
             TsCrawlerLoginRequest request = JSON.parseObject(token).toJavaObject(TsCrawlerLoginRequest.class);
             TsCrawlerLoginRequest tsRequest = new TsCrawlerLoginRequest(agreement.getAttribution(), agreement.getAgreement().getSmsCode(), request);
@@ -978,7 +977,7 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         attributionDto.setFields(attributionTemplateDtos);
         String apiUrl = ptlCrawlerApiService.getByTemplateId(attribution.getTemplateId(), PtlCrawlerApiType.API_1);
         String token = redisTemplate.opsForValue()
-                .get(OrderCacheConstant.TS_ACCESS_TOKEN + attributionDto.getUsername());
+                .get("TSBX"+OrderCacheConstant.BS_ACCESS_TOKEN + attributionDto.getUsername());
         if (StringUtils.isNotBlank(token)) {
             TsCrawlerLoginRequest request = JSON.parseObject(token).toJavaObject(TsCrawlerLoginRequest.class);
             TsCrawlerLoginRequest tsRequest = new TsCrawlerLoginRequest(attributionDto, smscode, request);
@@ -1031,6 +1030,98 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         return response;
     }
 
+    @Override
+    public JSONObject sendLoginSmsCode(PtlAgreementAttributionDto agreementAttributionDto) {
+//        InsAreaCompany insAreaCompany = insAreaCompanyService.getById(companyId);
+        PtlAgreementAttribution attribution = ptlAgreementAttributionService.getOne(new LambdaQueryWrapper<PtlAgreementAttribution>()
+                .eq(PtlAgreementAttribution::getTemplateId,agreementAttributionDto.getTemplateId()));
+
+        PtlAgreementAttributionDto attributionDto = new PtlAgreementAttributionDto();
+        BeanUtils.copyProperties(attribution, attributionDto);
+
+        String apiUrl = ptlCrawlerApiService.getByTemplateId(attribution.getTemplateId(), PtlCrawlerApiType.API_11);
+        JSONObject response = new JSONObject();
+        // 国任发送验证码
+        if (attribution.getInsCompanyId().equals("XDCX1000000")) {
+            GuoRenCrawlerSendSmsCodeRequest crawlerSendSmsCodeRequest = new GuoRenCrawlerSendSmsCodeRequest(attribution.getUsername(),attribution.getPassword());
+            response = insCrawlerOrderComponents.request(apiUrl, InsuranceEnum.XDCX.getCode(), "校验验证码",
+                    crawlerSendSmsCodeRequest, JSONObject.class);
+            // 返回失败
+            if (response.getInteger("code") != 200){
+                throw new SystemException(response.getString("message"));
+            }
+            // 将返回参数放入redis
+            redisTemplate.opsForValue().set(InsuranceEnum.XDCX.getCode()+ BS_ACCESS_TOKEN + attribution.getUsername(), response.getString("secretKey"), OrderCacheConstant.TS_ACCESS_TOKEN_TIME,
+                    TimeUnit.SECONDS);
+        }
+        // 泰山发送验证码
+        if (attribution.getInsCompanyId().equals("TSBX1000000")){
+            TsCrawlerLoginRequest crawlerLoginRequest = new TsCrawlerLoginRequest(attributionDto);
+            TsCrawlerBaseResponse tsResponse = insCrawlerOrderComponents.request(apiUrl, InsuranceEnum.TSBX.getCode(), "获取验证码",
+                    crawlerLoginRequest, TsCrawlerBaseResponse.class);
+            if (!tsResponse.getCode().equals(200)) {
+                throw new SystemException(tsResponse.getMessage());
+            }
+            // 将返回参数放入redis
+            redisTemplate.opsForValue().set(InsuranceEnum.TSBX.getCode()+OrderCacheConstant.BS_ACCESS_TOKEN + attributionDto.getUsername(), JSON.toJSONString(tsResponse.getData()), OrderCacheConstant.TS_ACCESS_TOKEN_TIME,
+                    TimeUnit.SECONDS);
+        }
+//        if (attribution.getInsCompanyId().equals(""))
+        return response;
+    }
+
+    @Override
+    public Boolean verifyLoginSmsCode(PtlAgreementSaveVo agreement) {
+        // 获取协议的用户名密码
+        String apiUrl = ptlCrawlerApiService.getByTemplateId(agreement.getAttribution().getTemplateId(), PtlCrawlerApiType.API_1);
+
+        String companyCode = agreement.getAgreement().getPartnerCompaniesId().substring(0,4);
+
+        // 泰山登录
+        if (companyCode.equals(InsuranceEnum.TSBX.getCode())){
+            String token = redisTemplate.opsForValue().get(InsuranceEnum.TSBX.getCode()+OrderCacheConstant.BS_ACCESS_TOKEN + agreement.getAttribution().getUsername());
+            if (StringUtils.isNotBlank(token)) {
+                TsCrawlerLoginRequest request = JSON.parseObject(token).toJavaObject(TsCrawlerLoginRequest.class);
+                TsCrawlerLoginRequest tsRequest = new TsCrawlerLoginRequest(agreement.getAttribution(), agreement.getAgreement().getSmsCode(), request);
+                TsCrawlerBaseResponse response = insCrawlerOrderComponents.request(apiUrl, agreement.getAgreement().getPartnerCompaniesId(), "登录",
+                        tsRequest, TsCrawlerBaseResponse.class);
+                if (!response.getCode().equals(200)) {
+                    throw new SystemException("泰山登录失败:" + response.getMessage());
+                }
+            } else {
+                throw new SystemException("验证码已失效!请重新发送!");
+            }
+        }
+        // 国任登录
+        else if (companyCode.equals(InsuranceEnum.XDCX.getCode())){
+            String secretKey = redisTemplate.opsForValue().get(InsuranceEnum.XDCX.getCode()+OrderCacheConstant.BS_ACCESS_TOKEN + agreement.getAttribution().getUsername());
+            if (StringUtils.isNotBlank(secretKey)) {
+                JSONObject grRequest = new JSONObject();
+                grRequest.put("username",agreement.getAttribution().getUsername());
+                grRequest.put("pwd",agreement.getAttribution().getPassword());
+                grRequest.put("smscode",agreement.getAgreement().getSmsCode());
+                grRequest.put("secretKey",secretKey);
+                // 组装 Other 信息
+                Map<String,String> otherMap = new HashMap<>();
+                agreement.getAttribution().getFields().forEach(item->{
+                    otherMap.put(item.getField(),item.getValue());
+                });
+                grRequest.put("other",otherMap);
+                JSONObject response = insCrawlerOrderComponents.request(apiUrl, agreement.getAgreement().getPartnerCompaniesId(), "登录",
+                        grRequest, JSONObject.class);
+                if (response.getInteger("code") != 200) {
+                    throw new SystemException("登录失败:" + response.getString("message"));
+                }
+            } else {
+                throw new SystemException("验证码已失效!请重新发送!");
+            }
+        }
+        else{
+            // 正常登录流程
+        }
+        return true;
+    }
+
 
     public BufferedImage ImageFromUrl(String urlAddr) {
         try {

+ 3 - 0
src/main/java/com/ydtech/modules/protocol/entity/vo/PtlAgreementSaveVo.java

@@ -15,6 +15,9 @@ import java.util.List;
 @ApiModel("协议信息上传")
 public class PtlAgreementSaveVo {
 
+    //协议id
+    private String id;
+
     @ApiModelProperty("协议id")
     private String agreementId;