Commit 08d9d4e6 authored by 郝彦辉's avatar 郝彦辉

原因code码表修改,结果表数据修改

parent e60adb61
......@@ -43,6 +43,8 @@ public class BlackGreyListResult implements Serializable {
@JsonIgnore
private Timestamp updatedAt;
private Long Id;
public static Set<String> typesToSet(String oldTypesStr, String newType){
......
package cn.quantgroup.qgblservice.service.impl;
import cn.quantgroup.qgblservice.constant.Constant;
import cn.quantgroup.qgblservice.repository.mybatis.entity.blacklist.BlackGreyListDetails;
import cn.quantgroup.qgblservice.repository.mybatis.entity.blacklist.BlackGreyListQueryVo;
import cn.quantgroup.qgblservice.repository.mybatis.entity.blacklist.BlackGreyListResult;
import cn.quantgroup.qgblservice.repository.mybatis.entity.blacklist.BlackListChannelExpireConfigVo0;
import cn.quantgroup.qgblservice.repository.mybatis.entity.blacklist.*;
import cn.quantgroup.qgblservice.repository.mybatis.entity.tidb.BlackListQueryTidbVo0;
import cn.quantgroup.qgblservice.repository.mybatis.entity.tidb.TmpBlackGreyList;
import cn.quantgroup.qgblservice.repository.mybatis.entity.tidb.TmpBlackGreyListRowMapper;
......@@ -531,9 +528,13 @@ public class BlackListToolsManagerServiceImpl implements IBlackListToolsManagerS
blackGreyListService.updateBlackListOverdueDay();
}
else if("updat_detail_reasons".equals(operatType)){
updat_detail_reasons();
}
else if("updat_result_reasons".equals(operatType)){
updat_result_reasons();
}
else{
......@@ -1419,14 +1420,22 @@ public class BlackListToolsManagerServiceImpl implements IBlackListToolsManagerS
}
/**
* -----------------------------------------------------------------------------<br>
* 描 述: 批量修改详情表reason_code <br>
* 创建人: yanhui.Hao <br>
* 创建时间: 2020.04.28 10:38 <br>
* 最后修改人: <br>
* 最后修改时间: 2020.04.28 10:38 <br>
* 入参说明: <br>
* 出参说明: <br>
* -----------------------------------------------------------------------------
*/
private void updat_detail_reasons() {
long totalStar = System.currentTimeMillis();
String sql_details_query = " select d.id, d.type, d.reason_code from black_grey_list_details d "
+ " WHERE id > ? AND id<=?;";
//int maxId = 11429420;
int maxId = 0;
try {
String value = stringRedisTemplate.opsForValue().get("UPDATE_HUITOHEI_MAXID_DETAIL");
......@@ -1516,7 +1525,7 @@ public class BlackListToolsManagerServiceImpl implements IBlackListToolsManagerS
if (updateBeanList.size() > 0) {
totalUpdateCount+=updateBeanList.size();
thisPageOk = JdbcExecuters.updateBatchExecute(updateBeanList, blackListJdbcTemplate, "updat_detail_reasons");
thisPageOk = JdbcExecuters.updateBatchDetailExecute(updateBeanList, blackListJdbcTemplate, "updat_detail_reasons");
totalOkCount+=thisPageOk;
}
}
......@@ -1526,10 +1535,141 @@ public class BlackListToolsManagerServiceImpl implements IBlackListToolsManagerS
log.info("updat_detail_reasons()处理结束 page: {} , startId: {} , endId: {} , updateBeanList: {} , thisPageOk: {} , 耗时: {} <<<<<<------\n", page, startId, endId, (updateBeanList != null ? updateBeanList.size() : 0), thisPageOk, ((System.currentTimeMillis() - thisPageStart) + ".ms"));
}
}
log.info("\n>>>>>>方法update_huiTohei_type10()处理 Method End, totalQueryCount: {} , totalUpdateCount: {} , totalOkCount: {} , total cost: {} <<<<<<", totalQueryCount, totalUpdateCount, totalOkCount, (System.currentTimeMillis() - totalStar) + ".ms");
log.info("\n>>>>>>updat_detail_reasons()处理 Method End, totalQueryCount: {} , totalUpdateCount: {} , totalOkCount: {} , total cost: {} <<<<<<", totalQueryCount, totalUpdateCount, totalOkCount, (System.currentTimeMillis() - totalStar) + ".ms");
}
/**
* -----------------------------------------------------------------------------<br>
* 描 述: 批量修改结果表的reasons <br>
* 创建人: yanhui.Hao <br>
* 创建时间: 2020.04.28 10:36 <br>
* 最后修改人: <br>
* 最后修改时间: 2020.04.28 10:36 <br>
* 入参说明: <br>
* 出参说明: <br>
* -----------------------------------------------------------------------------
*/
private void updat_result_reasons() {
long totalStar = System.currentTimeMillis();
String sql_details_query = " select r.id, r.r_id, r.types, r.reasons from black_grey_list_result r "
+ " WHERE id > ? AND id<=?;";
int maxId = 0;
try {
String value = stringRedisTemplate.opsForValue().get("UPDATE_HUITOHEI_MAXID_RESULT");
if (StringUtils.isNotEmpty(value)) {
maxId = Integer.parseInt(value);
}
} catch (Exception e) {
log.error("获取redis里值异常, key: {} ", "UPDATE_HUITOHEI_MAXID_RESULT", e);
}
log.info("updat_result_reasons()查询缓存, maxId : {} ", maxId);
if (maxId <= 0) {
return;
}
int totalQueryCount = 0, totalUpdateCount = 0, totalOkCount = 0;
int totalPage = maxId / LIMIT_X;
if ((maxId % LIMIT_X) != 0) {
totalPage += 1;
}
int startId = 0, endId = 0;
for (int page = 1; page <= totalPage; page++) {
startId = (page - 1) * LIMIT_X;
endId = startId + LIMIT_X;
long thisPageStart = System.currentTimeMillis();
List<BlackGreyListResult> updateBeanList = null;
int thisPageOk = 0;
try {
log.info("updat_result_reasons()处理开始 page: {} , startId: {} , endId: {} , totalPage: {} ------>>>>>>", page, startId, endId, totalPage);
List<BlackGreyListResult> tmpQueryList = blackListJdbcTemplate.query(sql_details_query, new Object[]{startId, endId}, new RowMapper<BlackGreyListResult>() {
@Override
public BlackGreyListResult mapRow(ResultSet rs, int rowNum) throws SQLException {
BlackGreyListResult bean = new BlackGreyListResult();
bean.setId(rs.getLong("id"));
bean.setRId(rs.getString("r_id"));
bean.setTypes(rs.getString("types"));
bean.setReasons(rs.getString("reasons"));
return bean;
}
});
if (tmpQueryList != null && tmpQueryList.size() > 0) {
totalQueryCount = totalQueryCount + tmpQueryList.size();
updateBeanList = new ArrayList<>();
for (BlackGreyListResult resultBean : tmpQueryList) {
if(resultBean.getReasons()!=null){
List<ReasonsVo> reasonsList = null;
try {
reasonsList = JSON.parseArray(resultBean.getReasons(), ReasonsVo.class);
}catch (Exception e){
log.info("reasons转换异常, bean: {} ", JSON.toJSONString(resultBean));
}
if(reasonsList!=null && reasonsList.size()>0){
for (ReasonsVo rvo : reasonsList){
if("1".equals(rvo.getReason())){
rvo.setReason("B_001"); //"现金分期逾期大于15天,且仍然在逾"
}
else if("2".equals(rvo.getReason())){
rvo.setReason("B_002"); //vcc逾期大于15天,且仍然在逾
}
else if("3".equals(rvo.getReason())){
rvo.setReason("B_003");//白条在逾
}
else if("4".equals(rvo.getReason())){
rvo.setReason("B_004");//恶意投诉客户
}
else if("5".equals(rvo.getReason())){
rvo.setReason("G_001");//历史老黑名单客户(除内部现金分期/vcc逾期大于15天以上且仍然在逾,白条在逾客户)
}
else if("6".equals(rvo.getReason())){
rvo.setReason("G_002");//发生过15天以上逾期已经结清的客户,从黑名单转标记为灰名单
}
}
resultBean.setReasons(JSON.toJSONString(reasonsList));
updateBeanList.add(resultBean);
}
}
}
if (updateBeanList.size() > 0) {
totalUpdateCount+=updateBeanList.size();
thisPageOk = JdbcExecuters.updateBatchResultExecute(updateBeanList, blackListJdbcTemplate, "updat_result_reasons");
totalOkCount+=thisPageOk;
}
}
} catch (Exception e) {
log.error("updat_result_reasons()处理异常, page: {} , startId: {} , endId: {} ", page, startId, endId, e);
} finally {
log.info("updat_result_reasons()处理结束 page: {} , startId: {} , endId: {} , updateBeanList: {} , thisPageOk: {} , 耗时: {} <<<<<<------\n", page, startId, endId, (updateBeanList != null ? updateBeanList.size() : 0), thisPageOk, ((System.currentTimeMillis() - thisPageStart) + ".ms"));
}
}
log.info("\n>>>>>>updat_result_reasons()处理 Method End, totalQueryCount: {} , totalUpdateCount: {} , totalOkCount: {} , total cost: {} <<<<<<", totalQueryCount, totalUpdateCount, totalOkCount, (System.currentTimeMillis() - totalStar) + ".ms");
}
/**
* -----------------------------------------------------------------------------<br>
* 描 述: 手动导入黑灰名单 <br>
* 创建人: yanhui.Hao <br>
* 创建时间: 2020.04.28 10:37 <br>
* 最后修改人: <br>
* 最后修改时间: 2020.04.28 10:37 <br>
* 入参说明: <br>
* 出参说明: <br>
* -----------------------------------------------------------------------------
*/
@Override
public String importBlackGrey(String txtTableFile) {
List<String> contextList = ReadOrWriteTxt.readTxtList(txtTableFile);
......
package cn.quantgroup.qgblservice.utils.jdbc;
import cn.quantgroup.qgblservice.repository.mybatis.entity.blacklist.BlackGreyListDetails;
import cn.quantgroup.qgblservice.repository.mybatis.entity.blacklist.BlackGreyListResult;
import cn.quantgroup.qgblservice.repository.mybatis.entity.tidb.BlackListQueryTidbVo0;
import cn.quantgroup.qgblservice.repository.mybatis.entity.tidb.TmpBlackGreyList;
import cn.quantgroup.qgblservice.utils.MD5Util;
......@@ -256,8 +257,18 @@ public class JdbcExecuters {
return atomicInteger.get();
}
//批量修改灰名单详情表
public static int updateBatchExecute(List<BlackGreyListDetails> detailsList, JdbcTemplate jdbcTemplate, String type) {
/**
* -----------------------------------------------------------------------------<br>
* 描 述: 批量修改灰名单详情表 <br>
* 创建人: yanhui.Hao <br>
* 创建时间: 2020.04.28 10:37 <br>
* 最后修改人: <br>
* 最后修改时间: 2020.04.28 10:37 <br>
* 入参说明: <br>
* 出参说明: <br>
* -----------------------------------------------------------------------------
*/
public static int updateBatchDetailExecute(List<BlackGreyListDetails> detailsList, JdbcTemplate jdbcTemplate, String type) {
Connection conn = null;
PreparedStatement ps = null;
AtomicInteger atomicInteger = new AtomicInteger();
......@@ -307,6 +318,66 @@ public class JdbcExecuters {
return atomicInteger.get();
}
/**
* -----------------------------------------------------------------------------<br>
* 描 述: 批量修改灰名单-结果表 <br>
* 创建人: yanhui.Hao <br>
* 创建时间: 2020.04.28 10:37 <br>
* 最后修改人: <br>
* 最后修改时间: 2020.04.28 10:37 <br>
* 入参说明: <br>
* 出参说明: <br>
* -----------------------------------------------------------------------------
*/
public static int updateBatchResultExecute(List<BlackGreyListResult> resultList, JdbcTemplate jdbcTemplate, String type) {
Connection conn = null;
PreparedStatement ps = null;
AtomicInteger atomicInteger = new AtomicInteger();
String sql_updat_result_reasons= "update black_grey_list_result r set r.reasons=? where r.id=? ";
String sql_run = "";
if("updat_result_reasons".equals(type)){
sql_run = sql_updat_result_reasons;
}else{
new SQLException("参数错误,必须传!");
}
try {
conn = jdbcTemplate.getDataSource().getConnection();
ps = conn.prepareStatement(sql_run);
conn.setAutoCommit(false);
for (int i = 0; i < resultList.size(); i++) {
if("updat_result_reasons".equals(type)){
BlackGreyListResult bean = resultList.get(i);
ps.setString(1, bean.getReasons());
ps.setLong(2, bean.getId());
}else{
new SQLException("参数错误,必须传!");
}
ps.addBatch();
atomicInteger.getAndIncrement();
if (i > 0 && i % 500 == 0) {
ps.executeBatch();
conn.commit();
ps.clearBatch();
}
}
ps.executeBatch();
conn.commit();
} catch (Exception e) {
log.error("方法updateBatchExecute批量修改数据异常, type: {} ", type, e);
return 0;
} finally {
close(conn, ps, null);
}
return atomicInteger.get();
}
/**
* 关闭资源
......
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