Commit 45f9f2ff authored by 黎博's avatar 黎博

更新

parent 8c234aba
......@@ -19,6 +19,7 @@
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
......@@ -108,12 +109,24 @@
<version>2.11.1</version>
</dependency>
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.35</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.12</version>
</dependency>
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.6</version>
</dependency>
</dependencies>
<build>
......
......@@ -3,7 +3,6 @@ package cn.quantgroup.qaplatform;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@SpringBootApplication
@MapperScan(value = "cn.quantgroup.qaplatform.dao")
......
......@@ -5,15 +5,14 @@ package cn.quantgroup.qaplatform.common.enums;
*/
public enum LoanStatus {
UNLOGIN(0, "未登录"),
UNAPPLY(1, "未申请"),
UNDER_REVIEW(2, "审核中"),
REVIEW_PASS(3, "审核通过"),
REVIEW_REFUSE(4, "审核拒绝"),
LOAN_ING(5, "放款中"),
LOAN_SUCESS(6, "放款成功"),
LOAN_FAIL(7, "放款失败"),
MULTI_ORDER(8, "多订单白名单");
UNAPPLY(0, "注册未申请"),
UNDER_REVIEW(1, "授信中"),
REVIEW_PASS(2, "审核通过"),
REVIEW_REFUSE(3, "审核拒绝"),
LOAN_ING(4, "审核通过未提现"),
LOAN_SUCESS(5, "放款成功"),
LOAN_FAIL(6, "放款失败"),
MULTI_ORDER(7, "多订单白名单");
private Integer status;
private String desc;
......
package cn.quantgroup.qaplatform.controller;
import cn.quantgroup.qaplatform.common.JsonResult;
import cn.quantgroup.qaplatform.service.BasicLoanStatusDataService;
import cn.quantgroup.qaplatform.service.LoanUserDataService;
import cn.quantgroup.qaplatform.service.QueryBasicLoanStatusDataService;
import cn.quantgroup.qaplatform.service.QueryLoanUserDataService;
import cn.quantgroup.qaplatform.utils.page.PageResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
......@@ -15,13 +15,13 @@ import java.util.Map;
@CrossOrigin
@RestController
public class LoanUserDataController {
public class QueryLoanUserDataController {
@Autowired
private BasicLoanStatusDataService basicLoanStatusDataService;
private QueryBasicLoanStatusDataService basicLoanStatusDataService;
@Autowired
private LoanUserDataService loanUserDataService;
private QueryLoanUserDataService loanUserDataService;
/**
* @return 获取所有借款用户状态
......@@ -50,9 +50,11 @@ public class LoanUserDataController {
@GetMapping("/getLoanUserData")
public JsonResult getLoanUserData(@RequestParam(value = "namespace") String namespace,
@RequestParam(value = "status") Integer status,
@RequestParam(defaultValue = "1") Integer channel,
@RequestParam(defaultValue = "480") Integer fundId,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize) {
PageResult result = loanUserDataService.getLoanUserData(namespace, status, pageNum, pageSize);
PageResult result = loanUserDataService.getLoanUserData(namespace, status, channel, fundId, pageNum, pageSize);
return JsonResult.success(result);
}
......
......@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
public interface BasicLoanStatusDataMapper {
public interface QueryBasicLoanStatusDataMapper {
/**
* 根据uuidList获取用户数据信息
......@@ -18,7 +18,7 @@ public interface BasicLoanStatusDataMapper {
/**
* 获取未申请用户数据uuidList
*/
List<String> getUnApplyLoanUserUuidList();
List<String> getUnApplyLoanUserUuidList(Integer channel);
/**
* 判断手机号是否存在库里
......@@ -38,18 +38,26 @@ public interface BasicLoanStatusDataMapper {
* @param status 0-审核中,1-审核拒绝,2-审核通过
* @return
*/
List<String> getAuditStatusUserIdList(Integer status);
List<String> getAuditStatusUserIdList(Integer status, Integer channel);
/**
* 根据资方和渠道id查询审核通过未提现的用户
* @param channel
* @param fundId
* @return
*/
List<String> queryAuthAndUnWithdraw(Integer channel, Integer fundId);
/**
* 根据借款状态获取用户列表
* @param status 20-放款中,15-放款成功,23-放款失败
* @param progress 20-放款中,15-放款成功,23-放款失败
* @return
*/
List<String> getLoanStatusUserIdList(Integer status);
List<String> getLoanStatusUserIdList(Integer progress, Integer channel, Integer fundId);
/**
* 获取多订单用例id列表
* @return
*/
List<String> getMultiOrderUserIdList();
List<String> getMultiOrderuuidList();
}
......@@ -33,6 +33,11 @@ public class LoanUser {
*/
private Long registeredFrom;
/**
* 分配的资方
*/
private Integer fundId;
/**
* 创建日期
*/
......
......@@ -8,7 +8,7 @@ import java.util.Map;
/**
* 单个状态数据查询
*/
public interface BasicLoanStatusDataService {
public interface QueryBasicLoanStatusDataService {
/**
* 获取所有的用户状态
*/
......@@ -28,7 +28,7 @@ public interface BasicLoanStatusDataService {
* 获取未申请用户
* @return uuidList
*/
List<String> getUnApplyUserUuidList(String namespace);
List<String> getUnApplyUserUuidList(String namespace, Integer channel);
/**
* 判断用户是否存在
......@@ -38,7 +38,12 @@ public interface BasicLoanStatusDataService {
/**
* 获取审核状态的用户Id列表
*/
List<String> getAuditStatusUserIdList(String namespace, Integer status);
List<String> getAuditStatusUserIdList(String namespace, Integer status, Integer channel);
/**
* 审核通过未提现
*/
List<String> queryAuthAndUnWithdraw(String namespace, Integer channel, Integer fundId);
/**
* 根据userIdList获取用户信息列表
......@@ -48,7 +53,7 @@ public interface BasicLoanStatusDataService {
/**
* 获取不同放款状态的用户
*/
List<String> getLoanStatusUserIdList(String namespace, Integer status);
List<String> getLoanStatusUserIdList(String namespace, Integer status, Integer channel, Integer fundId);
/**
* 获取多订单用户信息列表
......
......@@ -5,13 +5,13 @@ import cn.quantgroup.qaplatform.utils.page.PageResult;
/**
* 多个状态结合查询
*/
public interface LoanUserDataService {
public interface QueryLoanUserDataService {
/**
* 获取已有用户状态数据
* @param status 用户状态
* @param namespace 环境
* @return
*/
PageResult getLoanUserData(String namespace, Integer status, Integer pageNum, Integer pageSize);
PageResult getLoanUserData(String namespace, Integer status, Integer channel, Integer fundId, Integer pageNum, Integer pageSize);
}
......@@ -3,9 +3,9 @@ package cn.quantgroup.qaplatform.service.impl;
import cn.quantgroup.qaplatform.common.SwitchDataSource;
import cn.quantgroup.qaplatform.common.enums.LoanStatus;
import cn.quantgroup.qaplatform.common.enums.Namespace;
import cn.quantgroup.qaplatform.dao.BasicLoanStatusDataMapper;
import cn.quantgroup.qaplatform.dao.QueryBasicLoanStatusDataMapper;
import cn.quantgroup.qaplatform.domain.LoanUser;
import cn.quantgroup.qaplatform.service.BasicLoanStatusDataService;
import cn.quantgroup.qaplatform.service.QueryBasicLoanStatusDataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -15,10 +15,10 @@ import java.util.List;
import java.util.Map;
@Service
public class BasicLoanStatusDataServiceImpl implements BasicLoanStatusDataService {
public class QueryBasicLoanStatusDataServiceImpl implements QueryBasicLoanStatusDataService {
@Autowired
BasicLoanStatusDataMapper basicLoanStatusDataMapper;
QueryBasicLoanStatusDataMapper basicLoanStatusDataMapper;
/**
* 获取所有用户状态
* @return 用户状态列表
......@@ -67,9 +67,9 @@ public class BasicLoanStatusDataServiceImpl implements BasicLoanStatusDataServic
* @return
*/
@Override
public List<String> getUnApplyUserUuidList(String namespace) {
public List<String> getUnApplyUserUuidList(String namespace, Integer channel) {
SwitchDataSource.dataSourceSwitch(namespace, "business_flow");
return basicLoanStatusDataMapper.getUnApplyLoanUserUuidList();
return basicLoanStatusDataMapper.getUnApplyLoanUserUuidList(channel);
}
/**
......@@ -89,24 +89,38 @@ public class BasicLoanStatusDataServiceImpl implements BasicLoanStatusDataServic
/**
* 根据审核状态获取用户Id列表
* @param namespace
* @param status 0-审核中,1-审核成功,2-审核拒绝
* @param status 0-授信中,1-审核拒绝,2-审核成功
* @return
*/
@Override
public List<String> getAuditStatusUserIdList(String namespace, Integer status) {
public List<String> getAuditStatusUserIdList(String namespace, Integer status, Integer channel) {
SwitchDataSource.dataSourceSwitch(namespace, "xyqb");
if (status == 0) {
return basicLoanStatusDataMapper.getAuditStatusUserIdList(0);
return basicLoanStatusDataMapper.getAuditStatusUserIdList(0, channel);
}
if (status == 1) {
return basicLoanStatusDataMapper.getAuditStatusUserIdList(2);
return basicLoanStatusDataMapper.getAuditStatusUserIdList(1, channel);
}
if (status == 2) {
return basicLoanStatusDataMapper.getAuditStatusUserIdList(1);
return basicLoanStatusDataMapper.getAuditStatusUserIdList(2, channel);
}
return null;
}
/**
* 审核通过未提现
* @param namespace 环境
* @param channel 渠道id
* @param fundId 资方id
* @return 用户id列表
*/
@Override
public List<String> queryAuthAndUnWithdraw(String namespace, Integer channel, Integer fundId) {
SwitchDataSource.dataSourceSwitch(namespace, "xyqb");
List<String> userIdList = basicLoanStatusDataMapper.queryAuthAndUnWithdraw(channel, fundId);
return userIdList;
}
/**
* 根据userIdList获取用户信息列表
*
......@@ -123,20 +137,17 @@ public class BasicLoanStatusDataServiceImpl implements BasicLoanStatusDataServic
/**
* 获取不同放款状态的用户
* @param namespace
* @param status 0-放款中,1-放款成功,2-放款失败
* @param status 0-放款失败,1-放款成功
* @return
*/
@Override
public List<String> getLoanStatusUserIdList(String namespace, Integer status) {
public List<String> getLoanStatusUserIdList(String namespace, Integer status, Integer channel, Integer fundId) {
SwitchDataSource.dataSourceSwitch(namespace, "xyqb");
if (status == 0) {
return basicLoanStatusDataMapper.getLoanStatusUserIdList(20);
return basicLoanStatusDataMapper.getLoanStatusUserIdList(23, channel, fundId);
}
if (status == 1) {
return basicLoanStatusDataMapper.getLoanStatusUserIdList(15);
}
if (status == 2) {
return basicLoanStatusDataMapper.getLoanStatusUserIdList(23);
return basicLoanStatusDataMapper.getLoanStatusUserIdList(15, channel, fundId);
}
return null;
}
......@@ -148,7 +159,7 @@ public class BasicLoanStatusDataServiceImpl implements BasicLoanStatusDataServic
*/
@Override
public List<String> getMultiOrderUserDataList(String namespace) {
SwitchDataSource.dataSourceSwitch(namespace, "xyqb");
return basicLoanStatusDataMapper.getMultiOrderUserIdList();
SwitchDataSource.dataSourceSwitch("fe", "workflow");
return basicLoanStatusDataMapper.getMultiOrderuuidList();
}
}
......@@ -2,8 +2,8 @@ package cn.quantgroup.qaplatform.service.impl;
import cn.quantgroup.qaplatform.config.DynamicDataSource;
import cn.quantgroup.qaplatform.domain.LoanUser;
import cn.quantgroup.qaplatform.service.BasicLoanStatusDataService;
import cn.quantgroup.qaplatform.service.LoanUserDataService;
import cn.quantgroup.qaplatform.service.QueryBasicLoanStatusDataService;
import cn.quantgroup.qaplatform.service.QueryLoanUserDataService;
import cn.quantgroup.qaplatform.utils.RandomDataUtils;
import cn.quantgroup.qaplatform.utils.page.PageResult;
import cn.quantgroup.qaplatform.utils.page.PageUtil;
......@@ -19,58 +19,54 @@ import java.util.List;
* 查询旧有数据
*/
@Service
public class LoadUserDataServiceImpl implements LoanUserDataService {
public class QueryLoanUserDataServiceImpl implements QueryLoanUserDataService {
@Autowired
private BasicLoanStatusDataService basicLoanStatusDataService;
private QueryBasicLoanStatusDataService basicLoanStatusDataService;
/**
* 筛选某个状态的用户(0-未登录,1-未申请,2-审核中,3-审核通过待提现,4-放款中,5-放款失败,6-还款中,7-审核拒绝
* 筛选某个状态的用户(0-注册未申请,1-授信中,2-审核通过,3-审核拒绝,4-审核通过未提现,5-放款成功,6-放款失败,7-多订单
* @param namespace 环境
* @param status 用户状态
* @param channel 渠道id
* @param fundId 资方id
* @return
*/
@Override
public PageResult getLoanUserData(String namespace, Integer status, Integer pageNum, Integer pageSize) {
public PageResult getLoanUserData(String namespace, Integer status, Integer channel, Integer fundId, Integer pageNum, Integer pageSize) {
List<LoanUser> result = new ArrayList<>();
/**
* 0-未登录
* 0-注册未申请
*/
if (status == 0) {
int count = 0;
do {
String phone = RandomDataUtils.createMobile();
LoanUser loanUser = new LoanUser();
if (!basicLoanStatusDataService.queryIfPhoneExist(namespace, phone)) {
loanUser.setPhoneNo(phone);
result.add(loanUser);
count++;
}
} while (count < 10);
List<String> uuidList = basicLoanStatusDataService.getUnApplyUserUuidList(namespace, channel);
PageHelper.startPage(pageNum, pageSize);
result = basicLoanStatusDataService.getUserDataListByUuidList(namespace, uuidList);
PageInfo<LoanUser> pageList = new PageInfo<>(result);
PageResult pageResult = PageUtil.getPageResult(pageList, pageNum, pageSize);
return pageResult;
}
/**
* 1-未申请
* 1-授信中
*/
if (status == 1) {
List<String> uuidList = basicLoanStatusDataService.getUnApplyUserUuidList(namespace);
List<String> userIdList = basicLoanStatusDataService.getAuditStatusUserIdList(namespace, 0, channel);
PageHelper.startPage(pageNum, pageSize);
result = basicLoanStatusDataService.getUserDataListByUuidList(namespace, uuidList);
result = basicLoanStatusDataService.getUserDataListByUserIdList(namespace, userIdList);
PageInfo<LoanUser> pageList = new PageInfo<>(result);
PageResult pageResult = PageUtil.getPageResult(pageList, pageNum, pageSize);
return pageResult;
}
/**
* 2-审核
* 2-审核通过
*/
if (status == 2) {
List<String> userIdList = basicLoanStatusDataService.getAuditStatusUserIdList(namespace, 0);
List<String> userIdList = basicLoanStatusDataService.getAuditStatusUserIdList(namespace, 2, channel);
PageHelper.startPage(pageNum, pageSize);
result = basicLoanStatusDataService.getUserDataListByUserIdList(namespace, userIdList);
PageInfo<LoanUser> pageList = new PageInfo<>(result);
......@@ -79,75 +75,68 @@ public class LoadUserDataServiceImpl implements LoanUserDataService {
}
/**
* 3-审核通过
* 3-审核拒绝
*/
if (status == 3) {
List<String> userIdList = basicLoanStatusDataService.getAuditStatusUserIdList(namespace, 1);
List<String> userIdList = basicLoanStatusDataService.getAuditStatusUserIdList(namespace, 1, channel);
PageHelper.startPage(pageNum, pageSize);
result = basicLoanStatusDataService.getUserDataListByUserIdList(namespace, userIdList);
result.forEach((item)->item.setFundId(fundId));
PageInfo<LoanUser> pageList = new PageInfo<>(result);
PageResult pageResult = PageUtil.getPageResult(pageList, pageNum, pageSize);
return pageResult;
}
/**
* 4-审核拒绝
* 4-审核通过未提现
*/
if (status == 4) {
List<String> userIdList = basicLoanStatusDataService.getAuditStatusUserIdList(namespace, 2);
List<String> userIdList = basicLoanStatusDataService.queryAuthAndUnWithdraw(namespace, channel, fundId);
PageHelper.startPage(pageNum, pageSize);
result = basicLoanStatusDataService.getUserDataListByUserIdList(namespace, userIdList);
result.forEach((item)->item.setFundId(fundId));
PageInfo<LoanUser> pageList = new PageInfo<>(result);
PageResult pageResult = PageUtil.getPageResult(pageList, pageNum, pageSize);
return pageResult;
}
/**
* 5-放款
* 5-放款成功
*/
if (status == 5) {
List<String> userIdList = basicLoanStatusDataService.getLoanStatusUserIdList(namespace, 0);
List<String> userIdList = basicLoanStatusDataService.getLoanStatusUserIdList(namespace, 1, channel, fundId);
PageHelper.startPage(pageNum, pageSize);
result = basicLoanStatusDataService.getUserDataListByUserIdList(namespace, userIdList);
result.forEach((item)->item.setFundId(fundId));
PageInfo<LoanUser> pageList = new PageInfo<>(result);
PageResult pageResult = PageUtil.getPageResult(pageList, pageNum, pageSize);
return pageResult;
}
/**
* 6-放款成功
* 6-放款失败
*/
if (status == 6) {
List<String> userIdList = basicLoanStatusDataService.getLoanStatusUserIdList(namespace, 1);
List<String> userIdList = basicLoanStatusDataService.getLoanStatusUserIdList(namespace, 0, channel, fundId);
PageHelper.startPage(pageNum, pageSize);
result = basicLoanStatusDataService.getUserDataListByUserIdList(namespace, userIdList);
result.forEach((item)->item.setFundId(fundId));
PageInfo<LoanUser> pageList = new PageInfo<>(result);
PageResult pageResult = PageUtil.getPageResult(pageList, pageNum, pageSize);
return pageResult;
}
/**
* 7-放款失败
* 7-多订单
*/
if (status == 7) {
List<String> userIdList = basicLoanStatusDataService.getLoanStatusUserIdList(namespace, 2);
PageHelper.startPage(pageNum, pageSize);
result = basicLoanStatusDataService.getUserDataListByUserIdList(namespace, userIdList);
PageInfo<LoanUser> pageList = new PageInfo<>(result);
PageResult pageResult = PageUtil.getPageResult(pageList, pageNum, pageSize);
return pageResult;
}
/**
* 8-多订单未申请
*/
if (status == 8) {
List<String> userIdList = basicLoanStatusDataService.getMultiOrderUserDataList(namespace);
if (userIdList.isEmpty()) {
List<String> uuidList = basicLoanStatusDataService.getMultiOrderUserDataList(namespace);
if (uuidList.isEmpty()) {
return null;
}
PageHelper.startPage(pageNum, pageSize);
result = basicLoanStatusDataService.getUserDataListByUserIdList(namespace, userIdList);
result = basicLoanStatusDataService.getUserDataListByUuidList(namespace, uuidList);
PageInfo<LoanUser> pageList = new PageInfo<>(result);
PageResult pageResult = PageUtil.getPageResult(pageList, pageNum, pageSize);
return pageResult;
......
package cn.quantgroup.qaplatform.utils;
import cn.quantgroup.qaplatform.common.enums.Namespace;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 数据库连接工具类
*/
public class DBUtils {
private String JDBC_DRIVER = "com.mysql.jdbc.Driver";
private String db_url = "";
private final String username;
private final String password;
private Connection conn = null;
private Statement stmt = null;
public DBUtils(String namespace, String database, String username, String password) {
this.username = username;
this.password = password;
this.db_url = Namespace.valueOf(namespace.toUpperCase()).getUrl() + database;
}
/**
* 数据库连接
*/
public void connect() {
try {
Class.forName(JDBC_DRIVER);
this.conn = DriverManager.getConnection(this.db_url, this.username, this.password);
stmt = this.conn.createStatement();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 关闭数据库连接
*/
public void closeConnection() {
try {
if (this.conn != null && this.conn.isValid(0)) {
this.conn.close();
this.conn = null;
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 查询
*
* @param sql
* @return
*/
public Map queryForMap(String sql) throws SQLException {
ResultSet resultSet = null;
try {
resultSet = this.stmt.executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
}
return resultSetToMap(resultSet);
}
public List queryForList(String sql) throws SQLException {
ResultSet resultSet = null;
try {
resultSet = this.stmt.executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
}
return resultSetToList(resultSet);
}
/**
* ResultSet转换成List
*
* @param resultSet
* @return
* @throws SQLException
*/
public List resultSetToList(ResultSet resultSet) throws SQLException {
ResultSetMetaData md = resultSet.getMetaData();
int num = md.getColumnCount();
List listOfRows = new ArrayList();
while (resultSet.next()) {
Map mapOfColValues = new HashMap(num);
for (int i = 1; i <= num; i++) {
mapOfColValues.put(md.getColumnName(i), resultSet.getObject(i));
}
listOfRows.add(mapOfColValues);
}
return listOfRows;
}
/**
* ResultSet转换成Map
*
* @param resultSet
* @return
* @throws SQLException
*/
public Map resultSetToMap(ResultSet resultSet) throws SQLException {
ResultSetMetaData md = resultSet.getMetaData();
int num = md.getColumnCount();
Map map = new HashMap(num);
while (resultSet.next()) {
for (int i = 1; i <= num; i++) {
map.put(md.getColumnName(i), resultSet.getObject(i));
}
}
return map;
}
public static void main(String[] args) throws SQLException {
String namespace = "test1";
String database = "xyqb_user";
String phone = "13712345678";
String sql = "select id, uuid from user where phone_no=" + phone;
DBUtils dbUtils = new DBUtils(namespace, database, "qa", "qatest");
dbUtils.connect();
Map resultMap = dbUtils.queryForMap(sql);
System.out.println(resultMap);
dbUtils.closeConnection();
}
}
package cn.quantgroup.qaplatform.utils;
import sun.misc.BASE64Decoder;
import java.nio.charset.Charset;
import java.util.Base64;
/**
* 加密工具类
*/
public class EncryptUtils {
/**
*
* @param phone
* @return
* @throws Exception
*/
public static String base64Encrypt(String phone) throws Exception {
String phoneNoBase64 = encryptBASE64(phone);
String encryptResult = "Verification " + phoneNoBase64;
return encryptResult;
}
/**
*
* @param phone
* @param code
* @return
* @throws Exception
*/
public static String base64Encrypt(String phone, String code) throws Exception {
String phoneNoBase64 = encryptBASE64(phone, code);
String encryptResult = "Verification " + phoneNoBase64;
return encryptResult;
}
/**
*
* @param key
* @return
* @throws Exception
*/
public static String base64Decrypt(String key) throws Exception {
return new String((new BASE64Decoder()).decodeBuffer(key), "UTF-8");
}
/**
*
* @param key
* @return
* @throws Exception
*/
public static String encryptBASE64(String key) throws Exception {
return Base64.getEncoder().encodeToString((key + ":0000").getBytes(Charset.forName("UTF-8")));
}
/**
*
* @param key
* @param code
* @return
* @throws Exception
*/
public static String encryptBASE64(String key, String code) throws Exception {
return Base64.getEncoder().encodeToString((key + ":" + "code").getBytes(Charset.forName("UTF-8")));
}
}
......@@ -20,51 +20,92 @@ import java.io.UnsupportedEncodingException;
import java.net.URISyntaxException;
import java.util.*;
import com.alibaba.fastjson.JSONObject;
@Slf4j
public class HttpClientUtils {
private static CloseableHttpClient client = HttpClients.createDefault();
public static String doGet(String url) {
public static JSONObject doGet(String url) {
JSONObject result = new JSONObject();
HttpGet get = new HttpGet(url);
String respStr = null;
Map<String, Object> resultMap = new HashMap<>();
try {
CloseableHttpResponse response = client.execute(get);
HttpEntity httpEntity = response.getEntity();
respStr = EntityUtils.toString(httpEntity, "utf-8");
// resultMap = JsonTransUtil.strToMap(respStr);
String respStr = EntityUtils.toString(httpEntity, "utf-8");
result = JSONObject.parseObject(respStr);
} catch (IOException e) {
e.printStackTrace();
}
// return resultMap;
return respStr;
return result;
}
public static String doGet(String url, Map<String, Object> params) throws URISyntaxException {
public static void doGetWithoutResponse(String url) {
HttpGet get = new HttpGet(url);
Map<String, Object> resultMap = new HashMap<>();
try {
CloseableHttpResponse response = client.execute(get);
} catch (IOException e) {
e.printStackTrace();
}
}
public static JSONObject doGet(String url, Map<String, Object> params) throws URISyntaxException {
// HttpGet get = new HttpGet(url);
JSONObject result = new JSONObject();
URIBuilder uriBuilder = new URIBuilder(url);
if (params != null && !params.isEmpty()) {
Set<String> keySet = params.keySet();
for (String key : keySet) {
uriBuilder.setParameter(key, params.get(key).toString());
}
}
HttpGet get = new HttpGet(uriBuilder.build());
String respStr = null;
try {
CloseableHttpResponse response = client.execute(get);
HttpEntity httpEntity = response.getEntity();
respStr = EntityUtils.toString(httpEntity, "utf-8");
result = JSONObject.parseObject(respStr);
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
public static JSONObject doGet(String url, Map<String, Object> params, Map<String, Object> headers) throws URISyntaxException {
JSONObject result = new JSONObject();
URIBuilder uriBuilder = new URIBuilder(url);
if (params != null && !params.isEmpty()) {
Set<String> keySet = params.keySet();
for(String key: keySet) {
for (String key : keySet) {
uriBuilder.setParameter(key, params.get(key).toString());
}
}
HttpGet get = new HttpGet(uriBuilder.build());
String respStr = null;
if (headers != null && !headers.isEmpty()) {
Set<String> keySet = headers.keySet();
for (String s : keySet) {
get.addHeader(s, headers.get(s).toString());
}
}
try {
CloseableHttpResponse response = client.execute(get);
HttpEntity httpEntity = response.getEntity();
respStr = EntityUtils.toString(httpEntity, "utf-8");
System.out.println(respStr);
result = JSONObject.parseObject(respStr);
} catch (IOException e) {
e.printStackTrace();
}
return respStr;
return result;
}
public static void doPost(String url, String params) {
public static JSONObject doPost(String url, String params) {
JSONObject result = new JSONObject();
try {
HttpPost post = new HttpPost(url);
List<NameValuePair> list = new ArrayList<>();
......@@ -80,14 +121,16 @@ public class HttpClientUtils {
CloseableHttpResponse response = client.execute(post);
HttpEntity responseEntity = response.getEntity();
String responseString = EntityUtils.toString(responseEntity, "utf-8");
System.out.println(responseString);
result = JSONObject.parseObject(responseString);
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
public static void doPost(String url, Map<String, Object> params) {
public static JSONObject doPost(String url, Map<String, Object> params) {
JSONObject result = new JSONObject();
try {
HttpPost post = new HttpPost(url);
List list = new ArrayList();
......@@ -101,17 +144,18 @@ public class HttpClientUtils {
post.setEntity(urlEncodedFormEntity);
}
CloseableHttpResponse response = client.execute(post);
HttpEntity responseEntity = response.getEntity();
String responseString = EntityUtils.toString(responseEntity, "utf-8");
System.out.println(responseString);
HttpEntity entity = response.getEntity();
String respEntity = EntityUtils.toString(entity, "utf-8");
result = JSONObject.parseObject(respEntity);
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
public static Map<String, Object> doPost(String url, Map<String, Object> params, Map<String, Object> headers) {
Map<String, Object> resultMap = new HashMap<>();
public static JSONObject doPost(String url, Map<String, Object> params, Map<String, Object> headers) {
JSONObject result = new JSONObject();
try {
HttpPost post = new HttpPost(url);
List list = new ArrayList();
......@@ -133,14 +177,15 @@ public class HttpClientUtils {
CloseableHttpResponse response = client.execute(post);
HttpEntity responseEntity = response.getEntity();
String responseString = EntityUtils.toString(responseEntity, "utf-8");
resultMap = JsonTransUtils.strToMap(responseString);
result = JSONObject.parseObject(responseString);
} catch (IOException e) {
e.printStackTrace();
}
return resultMap;
return result;
}
public static void doPostJson(String url, String params, String headers) {
public static JSONObject doPostJson(String url, String params, String headers) {
JSONObject result = new JSONObject();
HttpPost httpPost = new HttpPost(url);
if (StringUtils.isNotEmpty(params)) {
StringEntity stringEntity = new StringEntity(params, "utf-8");
......@@ -157,11 +202,12 @@ public class HttpClientUtils {
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
public static Map<String, Object> doPostJson(String url, String params, Map<String, Object> headers) {
public static JSONObject doPostJson(String url, String params, Map<String, Object> headers) {
JSONObject result = new JSONObject();
HttpPost httpPost = new HttpPost(url);
Map<String, Object> resultMap = new HashMap<>();
if (StringUtils.isNotEmpty(params)) {
StringEntity stringEntity = new StringEntity(params, "utf-8");
httpPost.setEntity(stringEntity);
......@@ -176,11 +222,11 @@ public class HttpClientUtils {
CloseableHttpResponse response = client.execute(httpPost);
HttpEntity responseEntity = response.getEntity();
String responseStr = EntityUtils.toString(responseEntity, "utf-8");
resultMap = JsonTransUtils.strToMap(responseStr);
result = JSONObject.parseObject(responseStr);
} catch (IOException e) {
e.printStackTrace();
}
return resultMap;
return result;
}
public static void main(String[] args) throws UnsupportedEncodingException {
......@@ -199,8 +245,9 @@ public class HttpClientUtils {
formData.put("btRegisterChannelId", "");
formData.put("dimension", "");
formData.put("click_id", "");
Map<String,Object> resMap = doPost(url, formData, headers);
System.out.println(resMap.keySet());
JSONObject result = doPost(url, formData, headers);
System.out.println(result);
System.out.println(result.get("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.quantgroup.qaplatform.dao.BasicLoanStatusDataMapper">
<!-- 未申请 -->
<mapper namespace="cn.quantgroup.qaplatform.dao.QueryBasicLoanStatusDataMapper">
<!-- 注册未申请 -->
<select id="getUnApplyLoanUserUuidList" resultType="java.lang.String">
SELECT `uuid` FROM `apply_list`
<where>
`apply_status` = 1
</where>
WHERE `apply_status` = 1 AND `channel_id`=#{channel}
</select>
<!-- 根据uuidList获取用户信息列表 -->
......@@ -32,31 +30,37 @@
</foreach>
</select>
<!-- 获取不同放款状态的用户Id列表 xyqb库 -->
<select id="getLoanStatusUserIdList" resultType="java.lang.String">
SELECT `user_id` FROM `loan_application_history`
<where>
`progress` = #{status}
</where>
</select>
<!-- 根据不同审核状态返回用户Id列表 -->
<select id="getAuditStatusUserIdList" resultType="java.lang.String">
SELECT `user_id` FROM apply_quota_record
<where>
`apply_status` = #{status}
</where>
WHERE `apply_status` = #{param1} AND `apply_from`=#{param2}
</select>
<!-- 审核通过未提现 xyqb库 -->
<select id="queryAuthAndUnWithdraw" resultType="java.lang.String">
SELECT afrr.user_id
FROM apply_funding_risk_record as afrr
LEFT JOIN assets_order as ao ON afrr.assets_order_id = ao.id
WHERE ao.created_from = #{param1}
AND afrr.funding_corp_id=#{param2}
AND afrr.apply_status = 2
AND ao.status &lt;&gt; 1
</select>
<!-- 获取不同放款状态的用户Id列表 xyqb库 -->
<select id="getLoanStatusUserIdList" resultType="java.lang.String">
SELECT lah.`user_id`
FROM `loan_application_history` as lah
LEFT JOIN `apply_funding_risk_record` as afrr
on lah.`user_id` = afrr.`user_id`
WHERE `progress` = #{progress}
AND `channel_id` = #{channel}
AND `funding_corp_id` = #{fundId}
</select>
<!-- 获取多订单用户列表 -->
<select id="getMultiOrderUserIdList" resultType="java.lang.String">
SELECT `user_id` FROM loan_application_history
<where>
`progress` = 15 or
`progress` = 16
</where>
GROUP BY `user_id`
HAVING COUNT(DISTINCT created_from)>1
<select id="getMultiOrderuuidList" resultType="java.lang.String">
SELECT uuid FROM `white_list_config_new`
</select>
</mapper>
\ No newline at end of file
package cn.quantgroup.qaplatform.test;
import cn.quantgroup.qaplatform.utils.DBUtils;
import cn.quantgroup.qaplatform.utils.EncryptUtils;
import cn.quantgroup.qaplatform.utils.HttpClientUtils;
import cn.quantgroup.qaplatform.utils.JsonTransUtils;
import com.alibaba.fastjson.JSONObject;
import java.net.URISyntaxException;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class ProcessTest {
public static String namespace = "test1";
public static String phone = "13712345678";
public static String token = "";
public static String uuid = "";
public static Long userId;
public static int productId = 1;
public static String name = "刘志国";
public static String idNo = "455129197108031107";
public static Long createdFrom = 1L;
/**
* 标准登录
*
* @throws Exception
*/
public static void login() throws Exception {
String url = "http://passportapi-" + namespace + ".liangkebang.net" + "/user/login/fastV1";
Map<String, Object> params = new HashMap<>();
params.put("channelId", "1");
params.put("createdFrom", "1");
params.put("key", "xyqb");
params.put("btRegisterChannelId", "");
params.put("dimension", "");
params.put("click_id", "");
Map<String, Object> header = new HashMap<String, Object>();
header.put("Content-Type", "application/x-www-form-urlencoded");
String verification = EncryptUtils.base64Encrypt(phone);
header.put("Authorization", verification);
JSONObject result = HttpClientUtils.doPost(url, params, header);
Map map = (Map) result.get("data");
token = (String) map.get("token");
System.out.println("登录: " + result);
}
/**
* 查询用户中心id
*
* @throws SQLException
*/
public static void checkUserId() throws SQLException {
String sql = "select id, uuid from user where phone_no=" + phone;
DBUtils dbUtils = new DBUtils(namespace, "xyqb_user", "qa", "qatest");
dbUtils.connect();
Map result = dbUtils.queryForMap(sql);
uuid = (String) result.get("uuid");
userId = (Long) result.get("id");
System.out.println("查询用户中心id: " + result);
dbUtils.closeConnection();
}
/**
* 同步session到xyqb
*
* @throws URISyntaxException
*/
public static void syncSessionToXyqb() throws URISyntaxException {
String url = "http://api-" + namespace + ".liangkebang.net" + "/ex/login/receive_token?token=" + token;
HttpClientUtils.doGetWithoutResponse(url);
}
/**
* 授信session同步
*
* @throws URISyntaxException
*/
public static void creditSessionSync() throws URISyntaxException {
String url = "http://api-" + namespace + ".liangkebang.net" + "/v3/credit/apply?productId=" + productId;
Map<String, Object> headers = new HashMap<String, Object>();
headers.put("x-auth-token", token);
JSONObject result = HttpClientUtils.doGet(url, null, headers);
System.out.println("授信session同步");
System.out.println(result);
if (!result.get("code").equals("0000")) {
System.out.println("授信session同步失败");
}
}
/**
* 实名认证
*/
public static void realNameVerified() {
String url = "http://api-" + namespace + ".liangkebang.net" + "/loan/auth/id_no";
Map<String, Object> params = new HashMap<>();
params.put("name", name);
params.put("idNo", idNo);
params.put("idType", 0);
Map<String, Object> headers = new HashMap<>();
headers.put("x-auth-token", token);
JSONObject result = HttpClientUtils.doPost(url, params, headers);
System.out.println("实名认证:" + result);
}
/**
* 基本信息认证
*/
public static void authBasicInfo() {
String url = "http://scapi-" + namespace + ".liangkebang.net" + "/auth/basic2/infos";
Map<String, Object> headers = new HashMap<>();
headers.put("x-auth-token", token);
Map<String, Object> params = new HashMap<>();
params.put("firstName", "任明星");
params.put("firstMobile", "13500000002");
params.put("firstRelation", 2);
params.put("secondName", "陈玉秋");
params.put("secondMobile", "13500000001");
params.put("secondRelation", 2);
params.put("address", "中国电子大厦");
params.put("city", "市辖区");
params.put("cityCode", 110100);
params.put("province", "北京市");
params.put("provinceCode", 110000);
params.put("districtCode", 110116);
params.put("vocation", 3);
params.put("salary", 3);
params.put("education", 3);
params.put("email", "12345678@qq.com");
JSONObject result = HttpClientUtils.doPost(url, params, headers);
System.out.println("基本信息认证:" + result);
}
/**
* 进入上传身份证页
*/
public static void enterAuthOcr() {
String url = "http://mapi-" + namespace + ".liangkebang.net" + "/sc/auth/ocr/url";
Map<String, Object> headers = new HashMap<>();
headers.put("x-auth-token", token);
Map<String, Object> params = new HashMap<>();
String returnUrl = "http://scapi-" + namespace + ".liangkebang.net/auth-page";
params.put("returnUrl", returnUrl);
params.put("registerFrom", createdFrom);
JSONObject result = HttpClientUtils.doPost(url, params, headers);
Map respData = (Map) result.get("data");
String respUrl = (String) respData.get("url");
String[] split1 = respUrl.split("\\?");
String[] split2 = split1[1].split("\\&");
String[] split3 = split2[0].split("\\=");
String ockToken = split3[1];
System.out.println("进入上传身份证页:" + result);
System.out.println("OCR_token为:" + ockToken);
}
public static void main(String[] args) throws Exception {
login();
checkUserId();
creditSessionSync();
syncSessionToXyqb();
realNameVerified();
authBasicInfo();
enterAuthOcr();
}
}
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