Commit 0be7746a authored by 黎博's avatar 黎博

优化项目,新增接口自动化模块

parent c406bf5f
...@@ -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.dao") @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.common.JsonResult;
import cn.qg.qaplatform.common.SwitchDataSource;
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.common.JsonResult;
import cn.qg.qaplatform.common.SwitchDataSource;
import com.sun.org.apache.xpath.internal.operations.Mod;
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.common.JsonResult;
import cn.qg.qaplatform.common.SwitchDataSource;
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.common.JsonResult;
import cn.qg.qaplatform.common.SwitchDataSource;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.net.URISyntaxException;
import java.util.HashMap;
import java.util.List;
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.common.SwitchDataSource;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.common.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;
}
}
...@@ -154,5 +154,16 @@ public class SwitchDataSource { ...@@ -154,5 +154,16 @@ public class SwitchDataSource {
DynamicDataSource.dataSourcesMap.put(dbKey, druidDataSource); DynamicDataSource.dataSourcesMap.put(dbKey, druidDataSource);
DynamicDataSource.setDataSource(dbKey); DynamicDataSource.setDataSource(dbKey);
} }
if (namespace.equals("localhost")) {
DruidDataSource druidDataSource = new DruidDataSource();
String url = Namespace.LOCALHOST.getUrl() + database + SUFFIX;
String dbKey = Namespace.LOCALHOST.getKey();
druidDataSource.setUrl(url);
druidDataSource.setUsername(Namespace.LOCALHOST.getUsername());
druidDataSource.setPassword(Namespace.LOCALHOST.getPassword());
DynamicDataSource.dataSourcesMap.put(dbKey, druidDataSource);
DynamicDataSource.setDataSource(dbKey);
}
} }
} }
...@@ -32,7 +32,7 @@ import java.util.Map; ...@@ -32,7 +32,7 @@ import java.util.Map;
public class HttpLogAspect { public class HttpLogAspect {
private static final Logger logger = LoggerFactory.getLogger(HttpLogAspect.class); private static final Logger logger = LoggerFactory.getLogger(HttpLogAspect.class);
@Pointcut("execution(public * cn.qg.qaplatform.controller..*.*(..))") @Pointcut("execution(public * cn.qg.qaplatform.*.controller..*.*(..))")
public void httpRequestLog() {} public void httpRequestLog() {}
/** /**
......
...@@ -11,7 +11,8 @@ public enum Namespace { ...@@ -11,7 +11,8 @@ public enum Namespace {
XYQB("xyqb", "xyqb","jdbc:mysql://172.17.5.5:32556/", "qa", "qatest"), XYQB("xyqb", "xyqb","jdbc:mysql://172.17.5.5:32556/", "qa", "qatest"),
FE("fe", "fe", "jdbc:mysql://172.17.5.9:31024/", "qa", "qatest"), FE("fe", "fe", "jdbc:mysql://172.17.5.9:31024/", "qa", "qatest"),
VCC("vcc", "vcc", "jdbc:mysql://172.17.5.8:31110/", "qa", "qatest"), VCC("vcc", "vcc", "jdbc:mysql://172.17.5.8:31110/", "qa", "qatest"),
VCC2("vcc2", "vcc2", "jdbc:mysql://172.17.5.12:30977/", "qa", "qatest"); VCC2("vcc2", "vcc2", "jdbc:mysql://172.17.5.12:30977/", "qa", "qatest"),
LOCALHOST("localhost", "localhost", "jdbc:mysql://127.0.0.1:3306/", "root", "123456");
private String key; private String key;
......
package cn.qg.qaplatform.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
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.Configuration;
/**
* Mybatis-plus分页配置
*/
@Configuration
@MapperScan("cn.qg.qaplatform.*.mapper*")
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
return paginationInterceptor;
}
}
package cn.qg.qaplatform.utils; package cn.qg.qaplatform.utils;
import cn.qg.qaplatform.common.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.utils.assertion;
import com.alibaba.fastjson.JSONObject;
public class assertUtil {
public static Boolean assertJsonResponse(JSONObject response, String comparator, String check, String expect) {
return true;
}
}
package cn.qg.qaplatform.controller; package cn.qg.qaplatform.zdata.controller;
import cn.qg.qaplatform.common.JsonResult; import cn.qg.qaplatform.common.JsonResult;
import cn.qg.qaplatform.common.enums.ChannelEnum; import cn.qg.qaplatform.zdata.enums.ChannelEnum;
import cn.qg.qaplatform.common.enums.FundEnum; import cn.qg.qaplatform.zdata.enums.FundEnum;
import cn.qg.qaplatform.domain.ApplyDataVo; import cn.qg.qaplatform.zdata.domain.ApplyDataVo;
import cn.qg.qaplatform.domain.GenLoanUser; import cn.qg.qaplatform.zdata.domain.GenLoanUser;
import cn.qg.qaplatform.service.LexinDataService; import cn.qg.qaplatform.zdata.service.LexinDataService;
import cn.qg.qaplatform.service.XyqbDataService; import cn.qg.qaplatform.zdata.service.XyqbDataService;
import cn.qg.qaplatform.service.QueryBasicLoanStatusDataService; import cn.qg.qaplatform.zdata.service.QueryBasicLoanStatusDataService;
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.controller; package cn.qg.qaplatform.zdata.controller;
import cn.qg.qaplatform.common.JsonResult; import cn.qg.qaplatform.common.JsonResult;
import cn.qg.qaplatform.domain.GenVccUser; import cn.qg.qaplatform.zdata.domain.GenVccUser;
import cn.qg.qaplatform.service.VccDataService; import cn.qg.qaplatform.zdata.service.VccDataService;
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;
......
package cn.qg.qaplatform.controller; package cn.qg.qaplatform.zdata.controller;
import cn.qg.qaplatform.service.QueryLoanUserDataService; import cn.qg.qaplatform.zdata.service.QueryLoanUserDataService;
import cn.qg.qaplatform.common.JsonResult; import cn.qg.qaplatform.common.JsonResult;
import cn.qg.qaplatform.service.QueryBasicLoanStatusDataService; import cn.qg.qaplatform.zdata.service.QueryBasicLoanStatusDataService;
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.controller; package cn.qg.qaplatform.zdata.controller;
import cn.qg.qaplatform.common.JsonResult; import cn.qg.qaplatform.common.JsonResult;
import cn.qg.qaplatform.common.enums.VccStatusEnum; import cn.qg.qaplatform.zdata.enums.VccStatusEnum;
import cn.qg.qaplatform.domain.QueryVccUser; import cn.qg.qaplatform.zdata.domain.QueryVccUser;
import cn.qg.qaplatform.service.VccDataService; import cn.qg.qaplatform.zdata.service.VccDataService;
import cn.qg.qaplatform.utils.page.PageResult; import cn.qg.qaplatform.utils.page.PageResult;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
......
package cn.qg.qaplatform.domain; package cn.qg.qaplatform.zdata.domain;
import lombok.Data; import lombok.Data;
......
package cn.qg.qaplatform.domain; package cn.qg.qaplatform.zdata.domain;
import lombok.Data; import lombok.Data;
......
package cn.qg.qaplatform.domain; package cn.qg.qaplatform.zdata.domain;
import lombok.Data; import lombok.Data;
import java.util.Date;
@Data @Data
public class GenVccUser { public class GenVccUser {
/** /**
......
package cn.qg.qaplatform.domain; package cn.qg.qaplatform.zdata.domain;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
......
package cn.qg.qaplatform.domain; package cn.qg.qaplatform.zdata.domain;
import lombok.Data; import lombok.Data;
......
package cn.qg.qaplatform.common.enums; package cn.qg.qaplatform.zdata.enums;
/** /**
* 渠道枚举 * 渠道枚举
......
package cn.qg.qaplatform.common.enums; package cn.qg.qaplatform.zdata.enums;
/** /**
* 资方枚举 * 资方枚举
......
package cn.qg.qaplatform.common.enums; package cn.qg.qaplatform.zdata.enums;
/** /**
* 借款状态枚举 * 借款状态枚举
......
package cn.qg.qaplatform.dao; package cn.qg.qaplatform.zdata.mapper;
import cn.qg.qaplatform.domain.GenLoanUser; import cn.qg.qaplatform.zdata.domain.GenLoanUser;
import cn.qg.qaplatform.domain.QueryLoanUser; import cn.qg.qaplatform.zdata.domain.QueryLoanUser;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
......
package cn.qg.qaplatform.dao; package cn.qg.qaplatform.zdata.mapper;
import cn.qg.qaplatform.domain.QueryVccUser; import cn.qg.qaplatform.zdata.domain.QueryVccUser;
import java.util.List; import java.util.List;
......
package cn.qg.qaplatform.dao; package cn.qg.qaplatform.zdata.mapper;
public interface RuleEngineMapper { public interface RuleEngineMapper {
......
package cn.qg.qaplatform.process; package cn.qg.qaplatform.zdata.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.process; package cn.qg.qaplatform.zdata.process;
import cn.qg.qaplatform.config.WebSocketServer; import cn.qg.qaplatform.config.WebSocketServer;
import cn.qg.qaplatform.domain.ApplyDataVo; import cn.qg.qaplatform.zdata.domain.ApplyDataVo;
import cn.qg.qaplatform.utils.Encrypt.LexinEncrypt; import cn.qg.qaplatform.utils.Encrypt.LexinEncrypt;
import cn.qg.qaplatform.utils.HttpClientUtils; import cn.qg.qaplatform.utils.HttpClientUtils;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
......
package cn.qg.qaplatform.process; package cn.qg.qaplatform.zdata.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;
...@@ -17,7 +17,6 @@ import java.io.InputStreamReader; ...@@ -17,7 +17,6 @@ import java.io.InputStreamReader;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
...@@ -55,6 +54,8 @@ public class Vcc { ...@@ -55,6 +54,8 @@ public class Vcc {
header.put("Authorization", verification); header.put("Authorization", verification);
JSONObject result = HttpClientUtils.doPost(url, params, header); JSONObject result = HttpClientUtils.doPost(url, params, header);
Map<String, String> map = (Map<String, String>) result.get("data"); Map<String, String> map = (Map<String, String>) result.get("data");
log.info("登录参数:" + params);
log.info("登录结果:" + result);
return map; return map;
} }
...@@ -67,6 +68,7 @@ public class Vcc { ...@@ -67,6 +68,7 @@ public class Vcc {
headers.put("x-auth-token", token); headers.put("x-auth-token", token);
headers.put("vccchannel", vccChannel); headers.put("vccchannel", vccChannel);
JSONObject result = HttpClientUtils.doGetReturnJson(url, null, headers); JSONObject result = HttpClientUtils.doGetReturnJson(url, null, headers);
log.info("creaditUrl结果:" + result);
Map<String, String> data = (Map) result.get("data"); Map<String, String> data = (Map) result.get("data");
String returnUrl = data.get("url"); String returnUrl = data.get("url");
String vccToken = returnUrl.split("=")[1]; String vccToken = returnUrl.split("=")[1];
......
package cn.qg.qaplatform.process; package cn.qg.qaplatform.zdata.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.service; package cn.qg.qaplatform.zdata.service;
import cn.qg.qaplatform.domain.ApplyDataVo; import cn.qg.qaplatform.zdata.domain.ApplyDataVo;
/** /**
* 乐信数据 * 乐信数据
......
package cn.qg.qaplatform.service; package cn.qg.qaplatform.zdata.service;
import cn.qg.qaplatform.domain.GenLoanUser; import cn.qg.qaplatform.zdata.domain.GenLoanUser;
import cn.qg.qaplatform.domain.QueryLoanUser; import cn.qg.qaplatform.zdata.domain.QueryLoanUser;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
......
package cn.qg.qaplatform.service; package cn.qg.qaplatform.zdata.service;
/** /**
* 查询造数据流程中的状态 * 查询造数据流程中的状态
......
package cn.qg.qaplatform.service; package cn.qg.qaplatform.zdata.service;
import cn.qg.qaplatform.utils.page.PageResult; import cn.qg.qaplatform.utils.page.PageResult;
......
package cn.qg.qaplatform.service; package cn.qg.qaplatform.zdata.service;
/** /**
* 风控相关接口 * 风控相关接口
......
package cn.qg.qaplatform.service; package cn.qg.qaplatform.zdata.service;
import cn.qg.qaplatform.domain.GenVccUser; import cn.qg.qaplatform.zdata.domain.GenVccUser;
import cn.qg.qaplatform.domain.QueryVccUser; import cn.qg.qaplatform.zdata.domain.QueryVccUser;
import cn.qg.qaplatform.utils.page.PageResult; import cn.qg.qaplatform.utils.page.PageResult;
......
package cn.qg.qaplatform.service; package cn.qg.qaplatform.zdata.service;
import cn.qg.qaplatform.domain.ApplyDataVo; import cn.qg.qaplatform.zdata.domain.ApplyDataVo;
import cn.qg.qaplatform.domain.GenLoanUser; import cn.qg.qaplatform.zdata.domain.GenLoanUser;
import java.io.IOException; import java.io.IOException;
......
package cn.qg.qaplatform.service.impl; package cn.qg.qaplatform.zdata.service.impl;
import cn.qg.qaplatform.common.enums.ChannelEnum; import cn.qg.qaplatform.zdata.enums.ChannelEnum;
import cn.qg.qaplatform.domain.ApplyDataVo; import cn.qg.qaplatform.zdata.domain.ApplyDataVo;
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.QueryInProcessStatusService; import cn.qg.qaplatform.zdata.service.QueryInProcessStatusService;
import cn.qg.qaplatform.service.LexinDataService; import cn.qg.qaplatform.zdata.service.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.service.impl; package cn.qg.qaplatform.zdata.service.impl;
import cn.qg.qaplatform.common.enums.LoanStatus; import cn.qg.qaplatform.zdata.enums.LoanStatus;
import cn.qg.qaplatform.common.enums.Namespace; import cn.qg.qaplatform.common.enums.Namespace;
import cn.qg.qaplatform.dao.QueryBasicLoanStatusDataMapper; import cn.qg.qaplatform.zdata.mapper.QueryBasicLoanStatusDataMapper;
import cn.qg.qaplatform.domain.GenLoanUser; import cn.qg.qaplatform.zdata.domain.GenLoanUser;
import cn.qg.qaplatform.domain.QueryLoanUser; import cn.qg.qaplatform.zdata.domain.QueryLoanUser;
import cn.qg.qaplatform.common.SwitchDataSource; import cn.qg.qaplatform.common.SwitchDataSource;
import cn.qg.qaplatform.service.QueryBasicLoanStatusDataService; import cn.qg.qaplatform.zdata.service.QueryBasicLoanStatusDataService;
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.service.impl; package cn.qg.qaplatform.zdata.service.impl;
import cn.qg.qaplatform.config.WebSocketServer; import cn.qg.qaplatform.config.WebSocketServer;
import cn.qg.qaplatform.service.QueryBasicLoanStatusDataService; import cn.qg.qaplatform.zdata.service.QueryBasicLoanStatusDataService;
import cn.qg.qaplatform.service.QueryInProcessStatusService; import cn.qg.qaplatform.zdata.service.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.service.impl; package cn.qg.qaplatform.zdata.service.impl;
import cn.qg.qaplatform.domain.QueryLoanUser; import cn.qg.qaplatform.zdata.domain.QueryLoanUser;
import cn.qg.qaplatform.service.QueryLoanUserDataService; import cn.qg.qaplatform.zdata.service.QueryLoanUserDataService;
import cn.qg.qaplatform.service.QueryBasicLoanStatusDataService; import cn.qg.qaplatform.zdata.service.QueryBasicLoanStatusDataService;
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.service.impl; package cn.qg.qaplatform.zdata.service.impl;
import cn.qg.qaplatform.common.SwitchDataSource; import cn.qg.qaplatform.common.SwitchDataSource;
import cn.qg.qaplatform.dao.RuleEngineMapper; import cn.qg.qaplatform.zdata.mapper.RuleEngineMapper;
import cn.qg.qaplatform.service.RuleEngineService; import cn.qg.qaplatform.zdata.service.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.service.impl; package cn.qg.qaplatform.zdata.service.impl;
import cn.qg.qaplatform.common.SwitchDataSource; import cn.qg.qaplatform.common.SwitchDataSource;
import cn.qg.qaplatform.common.enums.VccStatusEnum; import cn.qg.qaplatform.zdata.enums.VccStatusEnum;
import cn.qg.qaplatform.dao.QueryVccDataMapper; import cn.qg.qaplatform.zdata.mapper.QueryVccDataMapper;
import cn.qg.qaplatform.domain.GenVccUser; import cn.qg.qaplatform.zdata.domain.GenVccUser;
import cn.qg.qaplatform.domain.QueryVccUser; import cn.qg.qaplatform.zdata.domain.QueryVccUser;
import cn.qg.qaplatform.process.Vcc; import cn.qg.qaplatform.zdata.process.Vcc;
import cn.qg.qaplatform.service.RuleEngineService; import cn.qg.qaplatform.zdata.service.RuleEngineService;
import cn.qg.qaplatform.service.VccDataService; import cn.qg.qaplatform.zdata.service.VccDataService;
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.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
......
package cn.qg.qaplatform.service.impl; package cn.qg.qaplatform.zdata.service.impl;
import cn.qg.qaplatform.config.WebSocketServer; import cn.qg.qaplatform.config.WebSocketServer;
import cn.qg.qaplatform.domain.ApplyDataVo; import cn.qg.qaplatform.zdata.domain.ApplyDataVo;
import cn.qg.qaplatform.domain.GenLoanUser; import cn.qg.qaplatform.zdata.domain.GenLoanUser;
import cn.qg.qaplatform.process.Xyqb; import cn.qg.qaplatform.zdata.process.Xyqb;
import cn.qg.qaplatform.service.QueryInProcessStatusService; import cn.qg.qaplatform.zdata.service.QueryInProcessStatusService;
import cn.qg.qaplatform.service.XyqbDataService; import cn.qg.qaplatform.zdata.service.XyqbDataService;
import cn.qg.qaplatform.service.QueryBasicLoanStatusDataService; import cn.qg.qaplatform.zdata.service.QueryBasicLoanStatusDataService;
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;
......
...@@ -25,8 +25,8 @@ server: ...@@ -25,8 +25,8 @@ server:
# mybatis-plus 配置 # mybatis-plus 配置
mybatis-plus: mybatis-plus:
mapper-locations: classpath:mapper/*.xml mapper-locations: classpath:mapper/*/*.xml
type-aliases-package: cn.qg.qaplatform.domain type-aliases-package: cn.qg.qaplatform.*.domain
configuration: configuration:
map-underscore-to-camel-case: true map-underscore-to-camel-case: true
......
<?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.dao.QueryBasicLoanStatusDataMapper"> <mapper namespace="cn.qg.qaplatform.zdata.mapper.QueryBasicLoanStatusDataMapper">
<!-- 注册未申请 --> <!-- 注册未申请 -->
<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.domain.QueryLoanUser"> <select id="getUserDataListByUuidList" parameterType="java.util.List" resultType="cn.qg.qaplatform.zdata.domain.QueryLoanUser">
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.domain.QueryLoanUser"> <select id="getUserDataListByUserIdList" resultType="cn.qg.qaplatform.zdata.domain.QueryLoanUser">
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.domain.GenLoanUser"> <select id="getUserInfoByPhoneNo" resultType="cn.qg.qaplatform.zdata.domain.GenLoanUser">
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>
......
<?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.dao.QueryVccDataMapper"> <mapper namespace="cn.qg.qaplatform.zdata.mapper.QueryVccDataMapper">
<select id="queryVccDataByStatus" resultType="cn.qg.qaplatform.domain.QueryVccUser"> <select id="queryVccDataByStatus" resultType="cn.qg.qaplatform.zdata.domain.QueryVccUser">
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.domain.QueryVccUser"> <select id="queryUserVccStatus" resultType="cn.qg.qaplatform.zdata.domain.QueryVccUser">
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.dao.RuleEngineMapper"> <mapper namespace="cn.qg.qaplatform.zdata.mapper.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');
......
package cn.qg.qaplatform.test; package cn.qg.qaplatform.test;
import cn.qg.qaplatform.process.Common; import cn.qg.qaplatform.zdata.process.Common;
import cn.qg.qaplatform.process.Xyqb; import cn.qg.qaplatform.zdata.process.Xyqb;
import cn.qg.qaplatform.utils.DBUtils; import cn.qg.qaplatform.utils.DBUtils;
import cn.qg.qaplatform.utils.Encrypt.LexinEncrypt; import cn.qg.qaplatform.utils.Encrypt.LexinEncrypt;
import cn.qg.qaplatform.utils.HttpClientUtils; import cn.qg.qaplatform.utils.HttpClientUtils;
......
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