package com.nova.sankuai.controller.v1.platform; import com.nova.sankuai.domain.api.xiamenzhongheyinhua.XiaMenZhongHeYinHuaResponse; import com.nova.sankuai.domain.api.xiamenzhongheyinhua.XiaMenZhongHeYinHuaUtil; import com.nova.sankuai.domain.entity.ApiCompany; import com.nova.sankuai.domain.entity.ApiCompanyRecord; import com.nova.sankuai.domain.entity.CustomerUser; import com.nova.sankuai.domain.entity.ProtocolInfo; import com.nova.sankuai.domain.enums.ApiCompanyCodeEnum; import com.nova.sankuai.domain.vo.platform.ImportCustomerParameter; import com.nova.sankuai.infra.config.CommonException; import com.nova.sankuai.infra.constants.ResultCode; import com.nova.sankuai.infra.utils.ResultJson; import com.nova.sankuai.service.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.Objects; /** *

* 平台提供给其他系统调用的接口 *

* * @author Zhangjc * @since 2021/11/18 */ @Api(tags = "平台提供给其他系统调用的接口") @RestController() @RequestMapping("/api/v1/largecredit") @RequiredArgsConstructor @Slf4j public class LargeCreditController { private final ICustomerService customerService; private final IChannelInfoService channelInfoService; private final IApiCompanyService apiCompanyService; private final IApiCompanyRecordService apiCompanyRecordService; private final IProtocolInfoService protocolInfoService; private final ICustomerUserService customerUserService; @ApiOperation("撞库测试") @GetMapping("/customCheck") public ResultJson checkCustomer(@RequestParam(name = "phone",required = false) String phone, @RequestParam(name = "phone_md5",required = false) String phoneMD5) { ResultJson result = new ResultJson<>(ResultCode.SUCCESS); if (StringUtils.isEmpty(phone) && StringUtils.isEmpty(phoneMD5)) { result.setData(false); result.setMsg("失败"); result.setCode(ResultCode.BAD_REQUEST.getCode()); return result; } CustomerUser customerUser = customerUserService.checkCustomer(phone, phoneMD5); if (customerUser == null) { result.setMsg("成功"); result.setData(true); } else { result.setMsg("失败"); result.setData(false); } return result; } @ApiOperation("爱助贷撞库测试") @GetMapping("/aizhudai/customCheck") public ResultJson aizhudaiCustomCheck(@RequestParam String phone) { ApiCompany one = apiCompanyService.lambdaQuery() .eq(ApiCompany::getCompanyCode, ApiCompanyCodeEnum.XiaMenZhongHeYinHua.getCode()) .eq(ApiCompany::getEnableFlag, 1).one(); if (one != null) { Integer count = apiCompanyRecordService.lambdaQuery().eq(ApiCompanyRecord::getCompanyId, one.getId()) .eq(ApiCompanyRecord::getStatus, ApiCompanyRecord.SUCCESS).count(); if (one.getCustomerNum() == null || count < one.getCustomerNum()) { XiaMenZhongHeYinHuaResponse checkResp = XiaMenZhongHeYinHuaUtil.phoneCheckExists(phone); if (Objects.equals(checkResp.getCode(), 0)) { return ResultJson.ok(true); } } } return ResultJson.ok(false); } @ApiOperation("同步用户信息") @PostMapping("/customImport") public ResultJson importCustomer(@RequestBody @Valid ImportCustomerParameter parameter) { ResultJson result = new ResultJson<>(ResultCode.SUCCESS); CustomerUser customerUser = customerUserService.checkCustomer(parameter.getPhone(), null); if (customerUser != null) { log.info("撞库失败:手机号为:" + parameter.getPhone()); result.setCode(ResultCode.SERVER_ERROR.getCode()); result.setMsg("失败"); result.setData(false); return result; } try { ResultJson checkResult = channelInfoService.checkChannel(parameter.getAppid(), parameter.toString()); if (checkResult != null) { return checkResult; } log.info("导入其他平台用户开始,原始数据:" + parameter.toString()); customerService.importCustomerFromPlatform(parameter); result.setMsg("成功"); result.setData(true); } catch (CommonException e) { log.error("导入其他平台用户出错", e); result.setCode(ResultCode.SERVER_ERROR.getCode()); result.setMsg(e.getMessage()); result.setData(false); } return result; } @ApiOperation("爱助贷同步用户信息") @PostMapping("/aizhudai/customImport") public ResultJson aizhudaiCustomImport(@RequestBody @Valid ImportCustomerParameter parameter) { ResultJson result = new ResultJson<>(ResultCode.SUCCESS); try { ResultJson checkResult = channelInfoService.checkChannel(parameter.getAppid(), parameter.toString()); if (checkResult != null) { return checkResult; } log.info("爱助贷同步用户信息开始,原始数据:" + parameter); customerService.aizhudaiCustomImport(parameter); result.setMsg("成功"); result.setData(true); log.info("爱助贷同步用户信息结束"); } catch (CommonException e) { log.error("爱助贷同步用户信息出错", e); result.setCode(ResultCode.SERVER_ERROR.getCode()); result.setMsg(e.getMessage()); result.setData(false); } return result; } @GetMapping(value = "/getProtocol") @ApiOperation(value = "获取协议") public String getProtocol(String code) { ProtocolInfo protocolInfo = protocolInfoService.lambdaQuery().eq(ProtocolInfo::getCode, code).one(); String content = ""; if (protocolInfo != null) { content = String.format("%s", protocolInfo.getContent()); } return content; } }