Commit 60e9fe9e authored by 黎博's avatar 黎博

修改项目结果,新增vcc还款结果回调接口

parent fe5fcdc1
...@@ -5,7 +5,7 @@ import org.springframework.boot.SpringApplication; ...@@ -5,7 +5,7 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication @SpringBootApplication
@MapperScan(value = "cn.qg.qaplatform.*.mapper") @MapperScan(value = "cn.qg.qaplatform.mapper.*")
public class QaPlatformApplication { public class QaPlatformApplication {
public static void main(String[] args) { public static void main(String[] args) {
......
package cn.qg.qaplatform.automation.controller;
import cn.qg.qaplatform.automation.domain.Interface;
import cn.qg.qaplatform.automation.service.InterfaceService;
import cn.qg.qaplatform.config.SwitchDataSource;
import cn.qg.qaplatform.utils.JsonResult;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
@CrossOrigin
@RestController
@RequestMapping("/interface")
public class InterfaceController {
@Autowired
InterfaceService interfaceService;
@GetMapping("/list")
public JsonResult getInterfaceList(Integer projectId, Integer moduleId,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize) {
IPage<Interface> page = interfaceService.getInterfaceList(projectId, moduleId, pageNum, pageSize);
Map<String, Object> map = new HashMap<>();
map.put("list", page.getRecords());
map.put("total", page.getTotal());
return JsonResult.success(map);
}
@PostMapping("/add")
public JsonResult<Boolean> addInterface(@RequestBody Interface entity) {
SwitchDataSource.dataSourceSwitch("localhost", "automation");
return JsonResult.success(interfaceService.save(entity));
}
@PostMapping("/update")
public JsonResult updateInterface(@RequestBody Interface entity) {
SwitchDataSource.dataSourceSwitch("localhost", "automation");
return JsonResult.success(interfaceService.saveOrUpdate(entity));
}
@GetMapping("/delete")
public JsonResult deleteInterface(Integer id) {
SwitchDataSource.dataSourceSwitch("localhost", "automation");
return JsonResult.success(interfaceService.removeById(id));
}
}
package cn.qg.qaplatform.automation.controller;
import cn.qg.qaplatform.automation.domain.Module;
import cn.qg.qaplatform.automation.service.ModuleService;
import cn.qg.qaplatform.config.SwitchDataSource;
import cn.qg.qaplatform.utils.JsonResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@CrossOrigin
@RestController
@RequestMapping("/module")
public class ModuleController {
@Autowired
ModuleService moduleService;
@GetMapping("/list")
public JsonResult getModuleList() {
SwitchDataSource.dataSourceSwitch("localhost", "automation");
return JsonResult.success(moduleService.list());
}
@PostMapping("/add")
public JsonResult addModule(@RequestBody Module module) {
SwitchDataSource.dataSourceSwitch("localhost", "automation");
return JsonResult.success(moduleService.save(module));
}
@PostMapping("/update")
public JsonResult updateModule(@RequestBody Module module) {
SwitchDataSource.dataSourceSwitch("localhost", "automation");
return JsonResult.success(moduleService.updateById(module));
}
@GetMapping("/delete")
public JsonResult deleteModule(Integer id) {
SwitchDataSource.dataSourceSwitch("localhost", "automation");
return JsonResult.success(moduleService.removeById(id));
}
}
package cn.qg.qaplatform.automation.controller;
import cn.qg.qaplatform.automation.domain.Project;
import cn.qg.qaplatform.automation.service.ProjectService;
import cn.qg.qaplatform.config.SwitchDataSource;
import cn.qg.qaplatform.utils.JsonResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@CrossOrigin
@RestController
@RequestMapping("/project")
public class ProjectController {
@Autowired
ProjectService projectService;
@GetMapping("/list")
public JsonResult getProjectList() {
SwitchDataSource.dataSourceSwitch("localhost", "automation");
return JsonResult.success(projectService.list());
}
@PostMapping("/add")
public JsonResult addProject(@RequestBody Project project) {
SwitchDataSource.dataSourceSwitch("localhost", "automation");
return JsonResult.success(projectService.save(project));
}
@PostMapping("/update")
public JsonResult updateProject(@RequestBody Project project) {
SwitchDataSource.dataSourceSwitch("localhost", "automation");
return JsonResult.success(projectService.updateById(project));
}
@GetMapping("/delete")
public JsonResult deleteProject(Integer id) {
SwitchDataSource.dataSourceSwitch("localhost", "automation");
return JsonResult.success(projectService.removeById(id));
}
}
package cn.qg.qaplatform.automation.controller;
import cn.qg.qaplatform.automation.domain.Testcase;
import cn.qg.qaplatform.automation.service.AssertService;
import cn.qg.qaplatform.automation.service.TestcaseService;
import cn.qg.qaplatform.config.SwitchDataSource;
import cn.qg.qaplatform.utils.JsonResult;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
@CrossOrigin
@RestController
@RequestMapping("/testcase")
public class TestcaseController {
@Autowired
TestcaseService testcaseService;
@Autowired
AssertService assertService;
@GetMapping("/list")
public JsonResult getTestcaseList(Integer projectId, Integer moduleId,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize) {
IPage<Testcase> pageEntity = testcaseService.getTestcaseList(projectId, moduleId, pageNum, pageSize);
Map<String, Object> map = new HashMap<>();
map.put("list", pageEntity.getRecords());
map.put("total", pageEntity.getTotal());
return JsonResult.success(map);
}
@GetMapping("/type")
public JsonResult getTestcaseTypes() {
Map<String, String> map = new HashMap<>();
map.put("0", "标准用例");
map.put("1", "正常用例");
map.put("2", "异常用例");
return JsonResult.success(map);
}
@PostMapping("/add")
public JsonResult addTestcase(@RequestBody Testcase testcase) {
SwitchDataSource.dataSourceSwitch("localhost", "automation");
return JsonResult.success(testcaseService.save(testcase));
}
@GetMapping("/execute")
public JsonResult executeTestcase(Integer testcaseId) throws Exception {
SwitchDataSource.dataSourceSwitch("localhost", "automation");
Map<String, Object> resultMap = new HashMap<>();
JSONObject response = testcaseService.exexuteTestcase(testcaseId);
Boolean assertResult = assertService.assertResponse(testcaseId, response);
resultMap.put("response", response);
resultMap.put("assertResult", assertResult);
if (response != null && assertResult) {
return JsonResult.success(resultMap);
} else {
return JsonResult.serverFailed(resultMap);
}
}
@PostMapping("/update")
public JsonResult updateTestcase(@RequestBody Testcase testcase) {
SwitchDataSource.dataSourceSwitch("localhost", "automation");
Boolean updateResult = testcaseService.updateById(testcase);
return JsonResult.success(updateResult);
}
@GetMapping("/delete")
public JsonResult deleteTestcase(Integer id) {
SwitchDataSource.dataSourceSwitch("localhost", "automation");
return JsonResult.success(testcaseService.removeById(id));
}
}
package cn.qg.qaplatform.automation.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class Assertion {
@TableId(type = IdType.AUTO)
private Integer id;
private Integer testcaseId;
private String comparator;
private String path;
private String expect;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}
package cn.qg.qaplatform.automation.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class Extraction {
@TableId(type = IdType.AUTO)
private Integer id;
private Integer testcaseId;
private String path;
private String varName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}
package cn.qg.qaplatform.automation.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* 接口实体类
*/
@Data
public class Interface {
/**
* 主键id
*/
@TableId(type = IdType.AUTO)
private Integer id;
/**
* 接口名称
*/
private String name;
/**
* 接口路径
*/
private String url;
/**
* 请求方法
*/
private String method;
/**
* 参数类型
*/
private String paramsType;
private Integer moduleId;
private Integer projectId;
/**
* 创建者
*/
private String author;
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
@TableField(exist = false)
private String projectName;
@TableField(exist = false)
private String moduleName;
}
package cn.qg.qaplatform.automation.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* 模块实体类
*/
@Data
public class Module {
@TableId(type = IdType.AUTO)
private Integer id;
private String name;
private Integer projectId;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}
package cn.qg.qaplatform.automation.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* 项目实体类
*/
@Data
public class Project {
@TableId(type = IdType.AUTO)
private Integer id;
private String name;
private String host;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}
package cn.qg.qaplatform.automation.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* 用例实体类
*/
@Data
public class Testcase {
@TableId(type = IdType.AUTO)
private Integer id;
private Integer interfaceId;
private String name;
@TableField(value = "type")
private Integer type;
private String headers;
@TableField(value = "params")
private String params;
private String author;
private Integer projectId;
private Integer moduleId;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mmLss")
private Date updateTime;
@TableField(exist = false)
private String projectName;
@TableField(exist = false)
private String moduleName;
}
package cn.qg.qaplatform.automation.mapper;
import cn.qg.qaplatform.automation.domain.Assertion;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface AssertionMapper extends BaseMapper<Assertion> {
}
package cn.qg.qaplatform.automation.mapper;
import cn.qg.qaplatform.automation.domain.Extraction;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface ExtractionMapper extends BaseMapper<Extraction> {
}
package cn.qg.qaplatform.automation.mapper;
import cn.qg.qaplatform.automation.domain.Interface;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
public interface InterfaceMapper extends BaseMapper<Interface> {
IPage<Interface> getInterfaceList(IPage<Interface> page, Integer projectId, Integer moduleId);
}
package cn.qg.qaplatform.automation.mapper;
import cn.qg.qaplatform.automation.domain.Module;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface ModuleMapper extends BaseMapper<Module> {
}
package cn.qg.qaplatform.automation.mapper;
import cn.qg.qaplatform.automation.domain.Project;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface ProjectMapper extends BaseMapper<Project> {
}
package cn.qg.qaplatform.automation.mapper;
import cn.qg.qaplatform.automation.domain.Testcase;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
public interface TestcaseMapper extends BaseMapper<Testcase> {
IPage<Testcase> getTestcaseList(IPage<Testcase> page, Integer projectId, Integer moduleId);
}
package cn.qg.qaplatform.automation.service;
import cn.qg.qaplatform.automation.domain.Assertion;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
public interface AssertService extends IService<Assertion> {
Boolean assertResponse(Integer testcaseId, JSONObject response);
}
package cn.qg.qaplatform.automation.service;
import cn.qg.qaplatform.automation.domain.Extraction;
import com.baomidou.mybatisplus.extension.service.IService;
public interface ExtractionService extends IService<Extraction> {
}
package cn.qg.qaplatform.automation.service;
import cn.qg.qaplatform.automation.domain.Interface;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* 接口类
*/
public interface InterfaceService extends IService<Interface> {
IPage<Interface> getInterfaceList(Integer projectId, Integer moduleId, Integer pageNum, Integer pageSize);
}
package cn.qg.qaplatform.automation.service;
import cn.qg.qaplatform.automation.domain.Module;
import com.baomidou.mybatisplus.extension.service.IService;
public interface ModuleService extends IService<Module> {
}
package cn.qg.qaplatform.automation.service;
import cn.qg.qaplatform.automation.domain.Project;
import com.baomidou.mybatisplus.extension.service.IService;
public interface ProjectService extends IService<Project> {
}
package cn.qg.qaplatform.automation.service;
import cn.qg.qaplatform.automation.domain.Testcase;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.net.URISyntaxException;
public interface TestcaseService extends IService<Testcase> {
IPage<Testcase> getTestcaseList(Integer projectId, Integer moduleId, Integer pageNum, Integer pageSize);
JSONObject exexuteTestcase(Integer testcaseId) throws Exception;
}
package cn.qg.qaplatform.automation.service.impl;
import cn.qg.qaplatform.automation.domain.Assertion;
import cn.qg.qaplatform.automation.mapper.AssertionMapper;
import cn.qg.qaplatform.automation.service.AssertService;
import cn.qg.qaplatform.utils.assertion.assertUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class AssertServiceImpl extends ServiceImpl<AssertionMapper, Assertion> implements AssertService {
@Autowired
AssertionMapper assertionMapper;
@Override
public Boolean assertResponse(Integer testcaseId, JSONObject response) {
QueryWrapper<Assertion> assertionQueryWrapper = new QueryWrapper<>();
assertionQueryWrapper.eq("testcase_id", testcaseId);
List<Assertion> assertionList = assertionMapper.selectList(assertionQueryWrapper);
if (assertionList != null) {
for (Assertion assertion: assertionList) {
Boolean assertResult = assertUtil.assertJsonResponse(response, assertion.getComparator(), assertion.getPath(), assertion.getExpect());
if (!assertResult) {
log.info("断言失败,本次断言的内容为,对比符:" + assertion.getComparator() + ",检查项:" + assertion.getPath() + ",期望值:" + assertion.getExpect());
return false;
}
}
}
return true;
}
}
package cn.qg.qaplatform.automation.service.impl;
import cn.qg.qaplatform.automation.domain.Extraction;
import cn.qg.qaplatform.automation.mapper.ExtractionMapper;
import cn.qg.qaplatform.automation.service.ExtractionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class ExtractionServiceImpl extends ServiceImpl<ExtractionMapper, Extraction> implements ExtractionService {
}
package cn.qg.qaplatform.automation.service.impl;
import cn.qg.qaplatform.automation.domain.Interface;
import cn.qg.qaplatform.automation.mapper.InterfaceMapper;
import cn.qg.qaplatform.automation.service.InterfaceService;
import cn.qg.qaplatform.config.SwitchDataSource;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class InterfaceServiceImpl extends ServiceImpl<InterfaceMapper, Interface> implements InterfaceService {
@Autowired
InterfaceMapper interfaceMapper;
@Override
public IPage<Interface> getInterfaceList(Integer projectId, Integer moduleId, Integer pageNum, Integer pageSize) {
SwitchDataSource.dataSourceSwitch("localhost", "automation");
IPage<Interface> page = new Page<>(pageNum, pageSize);
return interfaceMapper.getInterfaceList(page, projectId, moduleId);
}
}
package cn.qg.qaplatform.automation.service.impl;
import cn.qg.qaplatform.automation.domain.Module;
import cn.qg.qaplatform.automation.mapper.ModuleMapper;
import cn.qg.qaplatform.automation.service.ModuleService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class ModuleServiceImpl extends ServiceImpl<ModuleMapper, Module> implements ModuleService {
}
package cn.qg.qaplatform.automation.service.impl;
import cn.qg.qaplatform.automation.domain.Project;
import cn.qg.qaplatform.automation.mapper.ProjectMapper;
import cn.qg.qaplatform.automation.service.ProjectService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> implements ProjectService {
}
package cn.qg.qaplatform.automation.service.impl;
import cn.qg.qaplatform.automation.domain.Interface;
import cn.qg.qaplatform.automation.domain.Project;
import cn.qg.qaplatform.automation.domain.Testcase;
import cn.qg.qaplatform.automation.mapper.*;
import cn.qg.qaplatform.automation.service.TestcaseService;
import cn.qg.qaplatform.config.SwitchDataSource;
import cn.qg.qaplatform.utils.HttpClientUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
@Slf4j
@Service
public class TestcaseServiceImpl extends ServiceImpl<TestcaseMapper, Testcase> implements TestcaseService {
@Autowired
TestcaseMapper testcaseMapper;
@Autowired
InterfaceMapper interfaceMapper;
@Autowired
ProjectMapper projectMapper;
@Override
public IPage<Testcase> getTestcaseList(Integer projectId, Integer moduleId, Integer pageNum, Integer pageSize) {
SwitchDataSource.dataSourceSwitch("localhost", "automation");
IPage<Testcase> page = new Page<>(pageNum, pageSize);
return testcaseMapper.getTestcaseList(page, projectId, moduleId);
}
/**
* 执行测试用例的方法
* @param testcaseId 测试用例id
* @return
*/
@Override
public JSONObject exexuteTestcase(Integer testcaseId) throws Exception {
Testcase testcase = testcaseMapper.selectById(testcaseId);
Interface interfaceEntity = interfaceMapper.selectById(testcase.getInterfaceId());
Project project = projectMapper.selectById(interfaceEntity.getProjectId());
String url = project.getHost().concat(interfaceEntity.getUrl());
JSONObject response = new JSONObject();
log.info("本次执行用例名为" + testcase.getName() + ", url为:" + url);
if (interfaceEntity.getMethod().equals("GET")) {
Map<String, Object> headers = JSON.parseObject(testcase.getHeaders(), HashMap.class);
Map<String, Object> params = JSON.parseObject(testcase.getParams(), HashMap.class);
response = HttpClientUtils.doGetReturnJson(url, params, headers);
return response;
} else if (interfaceEntity.getMethod().equals("POST")) {
Map<String, Object> headers = JSON.parseObject(testcase.getHeaders(), HashMap.class);
if (interfaceEntity.getParamsType().equals("form")) {
Map<String, Object> formData = JSON.parseObject(testcase.getParams(), HashMap.class);
response = HttpClientUtils.doPost(url, formData, headers);
return response;
} else if (interfaceEntity.getParamsType().equals("json")) {
JSONObject resposne = HttpClientUtils.doPostJson(url, testcase.getParams(), headers);
return resposne;
}
} else {
throw new Exception("请求方式不支持,当前只支持GET、POST请求!");
}
return null;
}
}
...@@ -2,12 +2,10 @@ package cn.qg.qaplatform.config; ...@@ -2,12 +2,10 @@ package cn.qg.qaplatform.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize; import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration @Configuration
@MapperScan("cn.qg.qaplatform.*.mapper*")
public class MybatisPlusConfig { public class MybatisPlusConfig {
@Bean @Bean
......
package cn.qg.qaplatform.zdata.controller.common; package cn.qg.qaplatform.controller.common;
import cn.qg.qaplatform.enums.Namespace; import cn.qg.qaplatform.enums.Namespace;
import cn.qg.qaplatform.utils.EnumUtils; import cn.qg.qaplatform.utils.EnumUtils;
......
package cn.qg.qaplatform.stools.controller; package cn.qg.qaplatform.controller.stools;
import cn.qg.qaplatform.config.SwitchDataSource; import cn.qg.qaplatform.config.SwitchDataSource;
import cn.qg.qaplatform.stools.entity.LoginInfo; import cn.qg.qaplatform.entity.stools.LoginInfo;
import cn.qg.qaplatform.stools.service.CommonService; import cn.qg.qaplatform.service.stools.CommonService;
import cn.qg.qaplatform.stools.service.LoginInfoService; import cn.qg.qaplatform.service.stools.LoginInfoService;
import cn.qg.qaplatform.utils.JsonResult; import cn.qg.qaplatform.utils.JsonResult;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
......
package cn.qg.qaplatform.stools.controller; package cn.qg.qaplatform.controller.stools;
import cn.qg.qaplatform.stools.utils.JenkinsApi; import cn.qg.qaplatform.utils.JenkinsApi;
import cn.qg.qaplatform.stools.vo.JenkinsBuildInfo; import cn.qg.qaplatform.vo.JenkinsBuildInfo;
import cn.qg.qaplatform.utils.JsonResult; import cn.qg.qaplatform.utils.JsonResult;
import com.offbytwo.jenkins.model.Build; import com.offbytwo.jenkins.model.Build;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
......
package cn.qg.qaplatform.stools.controller; package cn.qg.qaplatform.controller.stools;
import cn.qg.qaplatform.utils.JsonResult; import cn.qg.qaplatform.utils.JsonResult;
import cn.qg.qaplatform.stools.utils.kdsp.AESUtil; import cn.qg.qaplatform.encrypt.kdsp.AESUtil;
import cn.qg.qaplatform.stools.utils.kdsp.RSA; import cn.qg.qaplatform.encrypt.kdsp.RSA;
import cn.qg.qaplatform.stools.vo.EncryptRequest; import cn.qg.qaplatform.vo.EncryptRequest;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
......
package cn.qg.qaplatform.zdata.controller.vcc; package cn.qg.qaplatform.controller.zdata.vcc;
import cn.qg.qaplatform.utils.JsonResult; import cn.qg.qaplatform.utils.JsonResult;
import cn.qg.qaplatform.zdata.entity.VccOpenResultVo; import cn.qg.qaplatform.entity.zdata.VccOpenResultVo;
import cn.qg.qaplatform.zdata.service.vcc.VccDataService; import cn.qg.qaplatform.service.zdata.vcc.VccDataService;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -48,4 +49,11 @@ public class VccGenController { ...@@ -48,4 +49,11 @@ public class VccGenController {
} }
return JsonResult.success(vccDataService.vccManualRiskControl(namespace, phoneNo, result, amount)); return JsonResult.success(vccDataService.vccManualRiskControl(namespace, phoneNo, result, amount));
} }
@GetMapping("/repay/callback")
public JsonResult vccRepayCallback(String namespace, String phoneNo, Integer result) {
JSONObject response = vccDataService.vccRepayCallback(namespace, phoneNo, result);
return JsonResult.success(response);
}
} }
package cn.qg.qaplatform.zdata.controller.vcc; package cn.qg.qaplatform.controller.zdata.vcc;
import cn.qg.qaplatform.utils.JsonResult; import cn.qg.qaplatform.utils.JsonResult;
import cn.qg.qaplatform.zdata.enums.VccStatusEnum; import cn.qg.qaplatform.enums.VccStatusEnum;
import cn.qg.qaplatform.zdata.entity.VccUserEntity; import cn.qg.qaplatform.entity.zdata.VccUserEntity;
import cn.qg.qaplatform.zdata.service.vcc.VccDataService; import cn.qg.qaplatform.service.zdata.vcc.VccDataService;
import cn.qg.qaplatform.utils.page.PageResult; import cn.qg.qaplatform.utils.page.PageResult;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
......
package cn.qg.qaplatform.zdata.controller.xyqb; package cn.qg.qaplatform.controller.zdata.xyqb;
import cn.qg.qaplatform.utils.JsonResult; import cn.qg.qaplatform.utils.JsonResult;
import cn.qg.qaplatform.zdata.service.xyqb.ClearDataService; import cn.qg.qaplatform.service.zdata.xyqb.ClearDataService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
......
package cn.qg.qaplatform.zdata.controller.xyqb; package cn.qg.qaplatform.controller.zdata.xyqb;
import cn.qg.qaplatform.utils.JsonResult; import cn.qg.qaplatform.utils.JsonResult;
import cn.qg.qaplatform.zdata.enums.ChannelEnum; import cn.qg.qaplatform.enums.ChannelEnum;
import cn.qg.qaplatform.zdata.enums.FundEnum; import cn.qg.qaplatform.enums.FundEnum;
import cn.qg.qaplatform.zdata.entity.XyqbApplyDataVo; import cn.qg.qaplatform.entity.zdata.XyqbApplyDataVo;
import cn.qg.qaplatform.zdata.entity.XjfqGenProcessVo; import cn.qg.qaplatform.entity.zdata.XjfqGenProcessVo;
import cn.qg.qaplatform.zdata.service.xyqb.LexinDataService; import cn.qg.qaplatform.service.zdata.xyqb.LexinDataService;
import cn.qg.qaplatform.zdata.service.xyqb.XyqbGenDataService; import cn.qg.qaplatform.service.zdata.xyqb.XyqbGenDataService;
import cn.qg.qaplatform.zdata.service.xyqb.XyqbBasicQueryService; import cn.qg.qaplatform.service.zdata.xyqb.XyqbBasicQueryService;
import cn.qg.qaplatform.utils.EnumUtils; import cn.qg.qaplatform.utils.EnumUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
......
package cn.qg.qaplatform.zdata.controller.xyqb; package cn.qg.qaplatform.controller.zdata.xyqb;
import cn.qg.qaplatform.zdata.service.xyqb.XyqbQueryService; import cn.qg.qaplatform.service.zdata.xyqb.XyqbQueryService;
import cn.qg.qaplatform.utils.JsonResult; import cn.qg.qaplatform.utils.JsonResult;
import cn.qg.qaplatform.zdata.service.xyqb.XyqbBasicQueryService; import cn.qg.qaplatform.service.zdata.xyqb.XyqbBasicQueryService;
import cn.qg.qaplatform.utils.page.PageResult; import cn.qg.qaplatform.utils.page.PageResult;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
......
package cn.qg.qaplatform.zdata.Encrypt; package cn.qg.qaplatform.encrypt;
import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
......
package cn.qg.qaplatform.stools.utils.kdsp; package cn.qg.qaplatform.encrypt.kdsp;
import javax.crypto.Cipher; import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.IvParameterSpec;
......
package cn.qg.qaplatform.stools.utils.kdsp; package cn.qg.qaplatform.encrypt.kdsp;
public class ConfigureEncryptAndDecrypt { public class ConfigureEncryptAndDecrypt {
public static final String CHAR_ENCODING = "UTF-8"; public static final String CHAR_ENCODING = "UTF-8";
......
package cn.qg.qaplatform.stools.utils.kdsp; package cn.qg.qaplatform.encrypt.kdsp;
import java.security.Key; import java.security.Key;
import java.security.KeyFactory; import java.security.KeyFactory;
......
package cn.qg.qaplatform.stools.entity; package cn.qg.qaplatform.entity.stools;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
......
package cn.qg.qaplatform.zdata.entity; package cn.qg.qaplatform.entity.zdata;
import lombok.Data; import lombok.Data;
......
package cn.qg.qaplatform.zdata.entity; package cn.qg.qaplatform.entity.zdata;
import lombok.Data; import lombok.Data;
......
package cn.qg.qaplatform.zdata.entity; package cn.qg.qaplatform.entity.zdata;
import lombok.Data; import lombok.Data;
......
package cn.qg.qaplatform.zdata.entity; package cn.qg.qaplatform.entity.zdata;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
......
package cn.qg.qaplatform.zdata.entity; package cn.qg.qaplatform.entity.zdata;
import lombok.Data; import lombok.Data;
......
package cn.qg.qaplatform.zdata.enums; package cn.qg.qaplatform.enums;
/** /**
* 渠道枚举 * 渠道枚举
......
package cn.qg.qaplatform.zdata.enums; package cn.qg.qaplatform.enums;
/** /**
* 资方枚举 * 资方枚举
......
package cn.qg.qaplatform.zdata.enums; package cn.qg.qaplatform.enums;
/** /**
* 借款状态枚举 * 借款状态枚举
......
package cn.qg.qaplatform.stools.mapper; package cn.qg.qaplatform.mapper.stools;
public interface CommonMapper { public interface CommonMapper {
......
package cn.qg.qaplatform.stools.mapper; package cn.qg.qaplatform.mapper.stools;
import cn.qg.qaplatform.stools.entity.LoginInfo; import cn.qg.qaplatform.entity.stools.LoginInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface LoginInfoMapper extends BaseMapper<LoginInfo> { public interface LoginInfoMapper extends BaseMapper<LoginInfo> {
......
package cn.qg.qaplatform.zdata.mapper; package cn.qg.qaplatform.mapper.zdata;
public interface RuleEngineMapper { public interface RuleEngineMapper {
......
package cn.qg.qaplatform.mapper.zdata;
import java.util.Map;
public interface VccAccountMapper {
Integer getNewestRepayOrderNo(String userId);
Map<String, Object> getNewestRepayResult(String userId);
}
package cn.qg.qaplatform.zdata.mapper; package cn.qg.qaplatform.mapper.zdata;
import cn.qg.qaplatform.zdata.entity.VccUserEntity; import cn.qg.qaplatform.entity.zdata.VccUserEntity;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -20,4 +20,5 @@ public interface VccDataMapper { ...@@ -20,4 +20,5 @@ public interface VccDataMapper {
* 查看vcc风控授信信息 * 查看vcc风控授信信息
*/ */
Map<String, Object> getVccRiskRecord(String uuid); Map<String, Object> getVccRiskRecord(String uuid);
} }
package cn.qg.qaplatform.zdata.mapper; package cn.qg.qaplatform.mapper.zdata;
import cn.qg.qaplatform.entity.zdata.XjfqGenProcessVo;
import cn.qg.qaplatform.zdata.entity.XjfqGenProcessVo; import cn.qg.qaplatform.entity.zdata.XjfqUserEntity;
import cn.qg.qaplatform.zdata.entity.XjfqUserEntity;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
......
package cn.qg.qaplatform.zdata.process; package cn.qg.qaplatform.process;
import cn.qg.qaplatform.config.WebSocketServer; import cn.qg.qaplatform.config.WebSocketServer;
import cn.qg.qaplatform.utils.DBUtils; import cn.qg.qaplatform.utils.DBUtils;
import cn.qg.qaplatform.zdata.Encrypt.LexinEncrypt; import cn.qg.qaplatform.encrypt.LexinEncrypt;
import cn.qg.qaplatform.utils.HttpClientUtils; import cn.qg.qaplatform.utils.HttpClientUtils;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
......
package cn.qg.qaplatform.zdata.process; package cn.qg.qaplatform.process;
import cn.qg.qaplatform.config.WebSocketServer; import cn.qg.qaplatform.config.WebSocketServer;
import cn.qg.qaplatform.zdata.entity.XyqbApplyDataVo; import cn.qg.qaplatform.entity.zdata.XyqbApplyDataVo;
import cn.qg.qaplatform.zdata.Encrypt.LexinEncrypt; import cn.qg.qaplatform.encrypt.LexinEncrypt;
import cn.qg.qaplatform.utils.HttpClientUtils; import cn.qg.qaplatform.utils.HttpClientUtils;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
......
package cn.qg.qaplatform.zdata.process; package cn.qg.qaplatform.process;
import cn.qg.qaplatform.utils.DBUtils; import cn.qg.qaplatform.utils.DBUtils;
import cn.qg.qaplatform.utils.EncryptUtils; import cn.qg.qaplatform.utils.EncryptUtils;
......
package cn.qg.qaplatform.zdata.process; package cn.qg.qaplatform.process;
import cn.qg.qaplatform.config.WebSocketServer; import cn.qg.qaplatform.config.WebSocketServer;
import cn.qg.qaplatform.utils.DBUtils; import cn.qg.qaplatform.utils.DBUtils;
......
package cn.qg.qaplatform.stools.service; package cn.qg.qaplatform.service.stools;
public interface CommonService { public interface CommonService {
......
package cn.qg.qaplatform.stools.service; package cn.qg.qaplatform.service.stools;
import cn.qg.qaplatform.stools.entity.LoginInfo; import cn.qg.qaplatform.entity.stools.LoginInfo;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
public interface LoginInfoService extends IService<LoginInfo> { public interface LoginInfoService extends IService<LoginInfo> {
......
package cn.qg.qaplatform.stools.service.impl; package cn.qg.qaplatform.service.stools.impl;
import cn.qg.qaplatform.config.SwitchDataSource; import cn.qg.qaplatform.config.SwitchDataSource;
import cn.qg.qaplatform.stools.mapper.CommonMapper; import cn.qg.qaplatform.mapper.stools.CommonMapper;
import cn.qg.qaplatform.stools.service.CommonService; import cn.qg.qaplatform.service.stools.CommonService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
......
package cn.qg.qaplatform.stools.service.impl; package cn.qg.qaplatform.service.stools.impl;
import cn.qg.qaplatform.stools.entity.LoginInfo; import cn.qg.qaplatform.entity.stools.LoginInfo;
import cn.qg.qaplatform.stools.mapper.LoginInfoMapper; import cn.qg.qaplatform.mapper.stools.LoginInfoMapper;
import cn.qg.qaplatform.stools.service.LoginInfoService; import cn.qg.qaplatform.service.stools.LoginInfoService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
......
package cn.qg.qaplatform.zdata.service.risk; package cn.qg.qaplatform.service.zdata.risk;
/** /**
* 风控相关服务 * 风控相关服务
......
package cn.qg.qaplatform.zdata.service.risk.impl; package cn.qg.qaplatform.service.zdata.risk.impl;
import cn.qg.qaplatform.config.SwitchDataSource; import cn.qg.qaplatform.config.SwitchDataSource;
import cn.qg.qaplatform.zdata.mapper.RuleEngineMapper; import cn.qg.qaplatform.mapper.zdata.RuleEngineMapper;
import cn.qg.qaplatform.zdata.service.risk.RuleEngineService; import cn.qg.qaplatform.service.zdata.risk.RuleEngineService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
......
package cn.qg.qaplatform.zdata.service.vcc; package cn.qg.qaplatform.service.zdata.vcc;
import cn.qg.qaplatform.zdata.entity.VccOpenResultVo; import cn.qg.qaplatform.entity.zdata.VccOpenResultVo;
import cn.qg.qaplatform.zdata.entity.VccUserEntity; import cn.qg.qaplatform.entity.zdata.VccUserEntity;
import cn.qg.qaplatform.utils.page.PageResult; import cn.qg.qaplatform.utils.page.PageResult;
import com.alibaba.fastjson.JSONObject;
/** /**
...@@ -26,4 +27,7 @@ public interface VccDataService { ...@@ -26,4 +27,7 @@ public interface VccDataService {
VccUserEntity queryUserVccStatus(String namespace, String phoneNo); VccUserEntity queryUserVccStatus(String namespace, String phoneNo);
Boolean vccManualRiskControl(String namespace, String phoneNo, Boolean result, Integer amount); Boolean vccManualRiskControl(String namespace, String phoneNo, Boolean result, Integer amount);
JSONObject vccRepayCallback(String namespace, String phoneNo, Integer result);
} }
package cn.qg.qaplatform.zdata.service.vcc.impl; package cn.qg.qaplatform.service.zdata.vcc.impl;
import cn.qg.qaplatform.config.SwitchDataSource; import cn.qg.qaplatform.config.SwitchDataSource;
import cn.qg.qaplatform.zdata.entity.XjfqGenProcessVo; import cn.qg.qaplatform.entity.zdata.XjfqGenProcessVo;
import cn.qg.qaplatform.zdata.enums.VccStatusEnum; import cn.qg.qaplatform.enums.VccStatusEnum;
import cn.qg.qaplatform.zdata.mapper.VccDataMapper; import cn.qg.qaplatform.mapper.zdata.VccAccountMapper;
import cn.qg.qaplatform.zdata.entity.VccOpenResultVo; import cn.qg.qaplatform.mapper.zdata.VccDataMapper;
import cn.qg.qaplatform.zdata.entity.VccUserEntity; import cn.qg.qaplatform.entity.zdata.VccOpenResultVo;
import cn.qg.qaplatform.zdata.mapper.XyqbLoanDataMapper; import cn.qg.qaplatform.entity.zdata.VccUserEntity;
import cn.qg.qaplatform.zdata.process.Vcc; import cn.qg.qaplatform.mapper.zdata.XyqbLoanDataMapper;
import cn.qg.qaplatform.zdata.service.risk.RuleEngineService; import cn.qg.qaplatform.process.Vcc;
import cn.qg.qaplatform.zdata.service.vcc.VccDataService; import cn.qg.qaplatform.service.zdata.risk.RuleEngineService;
import cn.qg.qaplatform.service.zdata.vcc.VccDataService;
import cn.qg.qaplatform.utils.HttpClientUtils;
import cn.qg.qaplatform.utils.page.PageResult; import cn.qg.qaplatform.utils.page.PageResult;
import cn.qg.qaplatform.utils.page.PageUtil; import cn.qg.qaplatform.utils.page.PageUtil;
import cn.qg.qaplatform.zdata.service.xyqb.XyqbBasicQueryService; import cn.qg.qaplatform.service.zdata.xyqb.XyqbBasicQueryService;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -32,6 +34,9 @@ public class VccDataServiceImpl implements VccDataService { ...@@ -32,6 +34,9 @@ public class VccDataServiceImpl implements VccDataService {
@Autowired @Autowired
VccDataMapper vccDataMapper; VccDataMapper vccDataMapper;
@Autowired
VccAccountMapper vccAccountMapper;
@Autowired @Autowired
RuleEngineService ruleEngineService; RuleEngineService ruleEngineService;
...@@ -183,6 +188,14 @@ public class VccDataServiceImpl implements VccDataService { ...@@ -183,6 +188,14 @@ public class VccDataServiceImpl implements VccDataService {
return vccDataMapper.queryUserVccStatus(phoneNo); return vccDataMapper.queryUserVccStatus(phoneNo);
} }
/**
* vcc手动风控回调
* @param namespace 环境
* @param phoneNo 手机号
* @param result 结果,true/false
* @param amount 授信金额
* @return
*/
@Override @Override
public Boolean vccManualRiskControl(String namespace, String phoneNo, Boolean result, Integer amount) { public Boolean vccManualRiskControl(String namespace, String phoneNo, Boolean result, Integer amount) {
SwitchDataSource.dataSourceSwitch(namespace, "xyqb_user"); SwitchDataSource.dataSourceSwitch(namespace, "xyqb_user");
...@@ -201,4 +214,33 @@ public class VccDataServiceImpl implements VccDataService { ...@@ -201,4 +214,33 @@ public class VccDataServiceImpl implements VccDataService {
return creditResult.get("content").toString().equals("success"); return creditResult.get("content").toString().equals("success");
} }
/**
* vcc还款回调
* @param namespace 环境
* @param phoneNo 手机号
* @param result 回调结果,true/false
* @return
*/
@Override
public JSONObject vccRepayCallback(String namespace, String phoneNo, Integer result) {
String url = "https://acs-" + namespace + ".liangkebang.net/ex/paycenter/repay_notify";
SwitchDataSource.dataSourceSwitch(namespace, "xyqb_user");
XjfqGenProcessVo xjfqGenProcessVo = xyqbLoanDataMapper.getUserInfoByPhoneNo(phoneNo);
SwitchDataSource.dataSourceSwitch(namespace, "acsdb");
Integer orderNo = vccAccountMapper.getNewestRepayOrderNo(xjfqGenProcessVo.getUserId());
Map<String, Object> formData = new HashMap<>();
formData.put("orderNo", orderNo);
if (result.equals(1)) {
formData.put("remark", "还款成功");
}
if (result.equals(2)) {
formData.put("remark", "还款失败");
}
formData.put("payStatus", result);
formData.put("orderData", "{\"payApproachDesc\":\"易宝-广达小贷-VCC专用\",\"orderId\":\"79884519018498\",\"payApproach\":\"65\",\"payApproachName\":\"YEE_PAY_GDXD_VCC\",\"payGateway\":\"0\",\"cardNo\":\"6217000025253636858\",\"payGatewayName\":\"YEE_PAY\"}");
JSONObject response = HttpClientUtils.doPost(url, formData);
log.info("vcc还款回调结果:{}", response);
return response;
}
} }
package cn.qg.qaplatform.zdata.service.xyqb; package cn.qg.qaplatform.service.zdata.xyqb;
/** /**
* 清除羊小咩数据 * 清除羊小咩数据
......
package cn.qg.qaplatform.zdata.service.xyqb; package cn.qg.qaplatform.service.zdata.xyqb;
import cn.qg.qaplatform.zdata.entity.XyqbApplyDataVo; import cn.qg.qaplatform.entity.zdata.XyqbApplyDataVo;
/** /**
* 乐信数据 * 乐信数据
......
package cn.qg.qaplatform.zdata.service.xyqb; package cn.qg.qaplatform.service.zdata.xyqb;
/** /**
* 查询造数据流程中的状态 * 查询造数据流程中的状态
......
package cn.qg.qaplatform.zdata.service.xyqb; package cn.qg.qaplatform.service.zdata.xyqb;
import cn.qg.qaplatform.zdata.entity.XjfqGenProcessVo; import cn.qg.qaplatform.entity.zdata.XjfqGenProcessVo;
import cn.qg.qaplatform.zdata.entity.XjfqUserEntity; import cn.qg.qaplatform.entity.zdata.XjfqUserEntity;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
......
package cn.qg.qaplatform.zdata.service.xyqb; package cn.qg.qaplatform.service.zdata.xyqb;
import cn.qg.qaplatform.zdata.entity.XyqbApplyDataVo; import cn.qg.qaplatform.entity.zdata.XyqbApplyDataVo;
import cn.qg.qaplatform.zdata.entity.XjfqGenProcessVo; import cn.qg.qaplatform.entity.zdata.XjfqGenProcessVo;
import java.io.IOException; import java.io.IOException;
......
package cn.qg.qaplatform.zdata.service.xyqb; package cn.qg.qaplatform.service.zdata.xyqb;
import cn.qg.qaplatform.utils.page.PageResult; import cn.qg.qaplatform.utils.page.PageResult;
......
package cn.qg.qaplatform.zdata.service.xyqb.impl; package cn.qg.qaplatform.service.zdata.xyqb.impl;
import cn.qg.qaplatform.config.SwitchDataSource; import cn.qg.qaplatform.config.SwitchDataSource;
import cn.qg.qaplatform.zdata.entity.XjfqGenProcessVo; import cn.qg.qaplatform.entity.zdata.XjfqGenProcessVo;
import cn.qg.qaplatform.zdata.service.xyqb.ClearDataService; import cn.qg.qaplatform.service.zdata.xyqb.ClearDataService;
import cn.qg.qaplatform.zdata.service.xyqb.XyqbBasicQueryService; import cn.qg.qaplatform.service.zdata.xyqb.XyqbBasicQueryService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.JdbcTemplate;
......
package cn.qg.qaplatform.zdata.service.xyqb.impl; package cn.qg.qaplatform.service.zdata.xyqb.impl;
import cn.qg.qaplatform.zdata.enums.ChannelEnum; import cn.qg.qaplatform.entity.zdata.XyqbApplyDataVo;
import cn.qg.qaplatform.zdata.entity.XyqbApplyDataVo; import cn.qg.qaplatform.process.Common;
import cn.qg.qaplatform.zdata.process.Common; import cn.qg.qaplatform.process.Lexin;
import cn.qg.qaplatform.zdata.process.Lexin; import cn.qg.qaplatform.process.Xyqb;
import cn.qg.qaplatform.zdata.process.Xyqb; import cn.qg.qaplatform.service.zdata.xyqb.QueryInProcessStatusService;
import cn.qg.qaplatform.zdata.service.xyqb.QueryInProcessStatusService; import cn.qg.qaplatform.service.zdata.xyqb.LexinDataService;
import cn.qg.qaplatform.zdata.service.xyqb.LexinDataService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
......
package cn.qg.qaplatform.zdata.service.xyqb.impl; package cn.qg.qaplatform.service.zdata.xyqb.impl;
import cn.qg.qaplatform.config.WebSocketServer; import cn.qg.qaplatform.config.WebSocketServer;
import cn.qg.qaplatform.zdata.service.xyqb.XyqbBasicQueryService; import cn.qg.qaplatform.service.zdata.xyqb.XyqbBasicQueryService;
import cn.qg.qaplatform.zdata.service.xyqb.QueryInProcessStatusService; import cn.qg.qaplatform.service.zdata.xyqb.QueryInProcessStatusService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
......
package cn.qg.qaplatform.zdata.service.xyqb.impl; package cn.qg.qaplatform.service.zdata.xyqb.impl;
import cn.qg.qaplatform.zdata.enums.LoanStatus; import cn.qg.qaplatform.enums.LoanStatus;
import cn.qg.qaplatform.enums.Namespace; import cn.qg.qaplatform.enums.Namespace;
import cn.qg.qaplatform.zdata.mapper.XyqbLoanDataMapper; import cn.qg.qaplatform.mapper.zdata.XyqbLoanDataMapper;
import cn.qg.qaplatform.zdata.entity.XjfqGenProcessVo; import cn.qg.qaplatform.entity.zdata.XjfqGenProcessVo;
import cn.qg.qaplatform.zdata.entity.XjfqUserEntity; import cn.qg.qaplatform.entity.zdata.XjfqUserEntity;
import cn.qg.qaplatform.config.SwitchDataSource; import cn.qg.qaplatform.config.SwitchDataSource;
import cn.qg.qaplatform.zdata.service.xyqb.XyqbBasicQueryService; import cn.qg.qaplatform.service.zdata.xyqb.XyqbBasicQueryService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
......
package cn.qg.qaplatform.zdata.service.xyqb.impl; package cn.qg.qaplatform.service.zdata.xyqb.impl;
import cn.qg.qaplatform.config.WebSocketServer; import cn.qg.qaplatform.config.WebSocketServer;
import cn.qg.qaplatform.zdata.entity.XyqbApplyDataVo; import cn.qg.qaplatform.entity.zdata.XyqbApplyDataVo;
import cn.qg.qaplatform.zdata.entity.XjfqGenProcessVo; import cn.qg.qaplatform.entity.zdata.XjfqGenProcessVo;
import cn.qg.qaplatform.zdata.process.Xyqb; import cn.qg.qaplatform.process.Xyqb;
import cn.qg.qaplatform.zdata.service.xyqb.QueryInProcessStatusService; import cn.qg.qaplatform.service.zdata.xyqb.QueryInProcessStatusService;
import cn.qg.qaplatform.zdata.service.xyqb.XyqbGenDataService; import cn.qg.qaplatform.service.zdata.xyqb.XyqbGenDataService;
import cn.qg.qaplatform.zdata.service.xyqb.XyqbBasicQueryService; import cn.qg.qaplatform.service.zdata.xyqb.XyqbBasicQueryService;
import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
......
package cn.qg.qaplatform.zdata.service.xyqb.impl; package cn.qg.qaplatform.service.zdata.xyqb.impl;
import cn.qg.qaplatform.zdata.entity.XjfqUserEntity; import cn.qg.qaplatform.entity.zdata.XjfqUserEntity;
import cn.qg.qaplatform.zdata.service.xyqb.XyqbQueryService; import cn.qg.qaplatform.service.zdata.xyqb.XyqbQueryService;
import cn.qg.qaplatform.zdata.service.xyqb.XyqbBasicQueryService; import cn.qg.qaplatform.service.zdata.xyqb.XyqbBasicQueryService;
import cn.qg.qaplatform.utils.page.PageResult; import cn.qg.qaplatform.utils.page.PageResult;
import cn.qg.qaplatform.utils.page.PageUtil; import cn.qg.qaplatform.utils.page.PageUtil;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
......
package cn.qg.qaplatform.utils; package cn.qg.qaplatform.utils;
import cn.qg.qaplatform.enums.Namespace; import cn.qg.qaplatform.enums.ChannelEnum;
import cn.qg.qaplatform.zdata.enums.ChannelEnum;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.lang.reflect.Field; import java.lang.reflect.Field;
......
package cn.qg.qaplatform.stools.utils; package cn.qg.qaplatform.utils;
import com.offbytwo.jenkins.JenkinsServer; import com.offbytwo.jenkins.JenkinsServer;
import com.offbytwo.jenkins.model.*; import com.offbytwo.jenkins.model.*;
......
package cn.qg.qaplatform.stools.vo; package cn.qg.qaplatform.vo;
import lombok.Data; import lombok.Data;
......
package cn.qg.qaplatform.stools.vo; package cn.qg.qaplatform.vo;
import lombok.Data; import lombok.Data;
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.qg.qaplatform.automation.mapper.InterfaceMapper">
<select id="getInterfaceList" resultType="cn.qg.qaplatform.automation.domain.Interface">
select i.*,
p.name as projectName,
m.name as moduleName
from interface i, project p, `module` m
where i.project_id = p.id and i.module_id = m.id
<if test="projectId != null">
AND i.`project_id` = #{projectId}
</if>
<if test="moduleId != null">
AND i.`module_id` = #{moduleId}
</if>
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.qg.qaplatform.automation.mapper.TestcaseMapper">
<select id="getTestcaseList" resultType="cn.qg.qaplatform.automation.domain.Testcase">
select t.*,
p.name as projectName,
m.name as moduleName
from testcase t, `interface` i, `project` p, `module` m
where t.`interface_id` = i.`id` and i.`project_id` = p.id and i.`module_id` = m.id
<if test="projectId != null">
AND i.`project_id` = #{projectId}
</if>
<if test="moduleId != null">
AND i.`module_id` = #{moduleId}
</if>
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.qg.qaplatform.stools.mapper.CommonMapper"> <mapper namespace="cn.qg.qaplatform.mapper.stools.CommonMapper">
<insert id="addLoginWhiteList"> <insert id="addLoginWhiteList">
INSERT INTO `white_list` (`key`, `key_type`, `enable`) VALUE (#{key}, #{keyType}, '1'); INSERT INTO `white_list` (`key`, `key_type`, `enable`) VALUE (#{key}, #{keyType}, '1');
......
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.qg.qaplatform.zdata.mapper.RuleEngineMapper"> <mapper namespace="cn.qg.qaplatform.mapper.zdata.RuleEngineMapper">
<insert id="addBlackList"> <insert id="addBlackList">
INSERT INTO `black_list_config` (`uuid`, `expir_date`, `type`, `enable`) VALUES (#{uuid}, '14', '0', '1'); INSERT INTO `black_list_config` (`uuid`, `expir_date`, `type`, `enable`) VALUES (#{uuid}, '14', '0', '1');
......
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.qg.qaplatform.mapper.zdata.VccAccountMapper">
<select id="getNewestRepayOrderNo" resultType="java.lang.Integer">
select `id` from `acs_pay_order` where `user_id` = #{userId} order by `id` desc limit 1
</select>
<select id="getNewestRepayResult" resultType="java.util.Map">
select * from `acs_pay_order` where `user_id` = #{userId} order by `id` desc limit 1
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.qg.qaplatform.zdata.mapper.VccDataMapper"> <mapper namespace="cn.qg.qaplatform.mapper.zdata.VccDataMapper">
<select id="queryVccDataByStatus" resultType="cn.qg.qaplatform.zdata.entity.VccUserEntity"> <select id="queryVccDataByStatus" resultType="cn.qg.qaplatform.entity.zdata.VccUserEntity">
select select
`phone_no` as phoneNo, `phone_no` as phoneNo,
`user_id` as userId, `user_id` as userId,
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
order by id desc order by id desc
</select> </select>
<select id="queryUserVccStatus" resultType="cn.qg.qaplatform.zdata.entity.VccUserEntity"> <select id="queryUserVccStatus" resultType="cn.qg.qaplatform.entity.zdata.VccUserEntity">
select select
`phone_no` as phoneNo, `phone_no` as phoneNo,
`user_id` as userId, `user_id` as userId,
......
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.qg.qaplatform.zdata.mapper.XyqbLoanDataMapper"> <mapper namespace="cn.qg.qaplatform.mapper.zdata.XyqbLoanDataMapper">
<!-- 注册未申请 --> <!-- 注册未申请 -->
<select id="getUnApplyLoanUserUuidList" resultType="java.lang.String"> <select id="getUnApplyLoanUserUuidList" resultType="java.lang.String">
SELECT `uuid` FROM `apply_list` SELECT `uuid` FROM `apply_list`
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
</select> </select>
<!-- 根据uuidList获取用户信息列表 --> <!-- 根据uuidList获取用户信息列表 -->
<select id="getUserDataListByUuidList" parameterType="java.util.List" resultType="cn.qg.qaplatform.zdata.entity.XjfqUserEntity"> <select id="getUserDataListByUuidList" parameterType="java.util.List" resultType="cn.qg.qaplatform.entity.zdata.XjfqUserEntity">
SELECT `id` as userId, `phone_no` as phoneNo, `uuid`, `registered_from` as registeredFrom, `enable`, `created_at` as createdAt FROM `user` SELECT `id` as userId, `phone_no` as phoneNo, `uuid`, `registered_from` as registeredFrom, `enable`, `created_at` as createdAt FROM `user`
where `uuid` in where `uuid` in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")"> <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
</select> </select>
<!-- 根据userIdList获取用户信息List --> <!-- 根据userIdList获取用户信息List -->
<select id="getUserDataListByUserIdList" resultType="cn.qg.qaplatform.zdata.entity.XjfqUserEntity"> <select id="getUserDataListByUserIdList" resultType="cn.qg.qaplatform.entity.zdata.XjfqUserEntity">
SELECT `id` as userId, `uuid`, `phone_no` as phoneNo, `registered_from` as registeredFrom, `enable`, `created_at` as createdAt FROM `user` SELECT `id` as userId, `uuid`, `phone_no` as phoneNo, `registered_from` as registeredFrom, `enable`, `created_at` as createdAt FROM `user`
where `id` in where `id` in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")"> <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
...@@ -94,7 +94,7 @@ ...@@ -94,7 +94,7 @@
</select> </select>
<!-- 根据手机号获取用户信息--> <!-- 根据手机号获取用户信息-->
<select id="getUserInfoByPhoneNo" resultType="cn.qg.qaplatform.zdata.entity.XjfqGenProcessVo"> <select id="getUserInfoByPhoneNo" resultType="cn.qg.qaplatform.entity.zdata.XjfqGenProcessVo">
SELECT `id` as userId, `phone_no` as phoneNo, `uuid`, `registered_from` as registeredFrom, `created_at` as createdAt FROM `user` SELECT `id` as userId, `phone_no` as phoneNo, `uuid`, `registered_from` as registeredFrom, `created_at` as createdAt FROM `user`
WHERE `phone_no` = #{phoneNo} WHERE `phone_no` = #{phoneNo}
</select> </select>
......
package cn.qg.qaplatform.test; package cn.qg.qaplatform.test;
import cn.qg.qaplatform.zdata.process.Common; import cn.qg.qaplatform.process.Common;
import cn.qg.qaplatform.zdata.process.Xyqb; import cn.qg.qaplatform.process.Xyqb;
import cn.qg.qaplatform.utils.DBUtils; import cn.qg.qaplatform.utils.DBUtils;
import cn.qg.qaplatform.zdata.Encrypt.LexinEncrypt; import cn.qg.qaplatform.encrypt.LexinEncrypt;
import cn.qg.qaplatform.utils.HttpClientUtils; import cn.qg.qaplatform.utils.HttpClientUtils;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.springframework.util.DigestUtils; import org.springframework.util.DigestUtils;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment