Commit da065028 authored by 李健华's avatar 李健华

Merge branch 'feature/transaction-20220616' into 'master'

Feature/transaction 20220616

See merge request !6
parents 091a26e0 ef7289e4
......@@ -33,7 +33,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
//String allowedRoutes = "/test/**,/error/**,/user/login";
// String allowedRoutes = "/test/**,/error/**,/repay/**,/channel/**,/order/**,/operate/sys/**,/user/**,/work_order/**,/vcc/**,/transactionReceiptRecord/**";
String[] allowedRoutesArr = allowedRoutes.split(",");
http.httpBasic().and()
.authorizeRequests()
......
......@@ -9,7 +9,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
......@@ -77,9 +82,11 @@ public class TransactionReceiptRecordRest {
//导出压缩包
@RequestMapping("/orderQuery/exportTransactionZipFile")
@ResponseBody
public JsonResult exportTransactionZipFile(HttpServletRequest request, HttpServletResponse response) throws Exception{
public JsonResult exportTransactionZipFile(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception{
try{
//transactionReceiptRecordService.deleteRedis("exportZipFile");
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse)servletResponse;
// transactionReceiptRecordService.deleteRedis("exportZipFile");
String str = transactionReceiptRecordService.checkRedis("exportZipFile");
if(StringUtils.isNotBlank(str)){
return JsonResult.buildErrorStateResult("正在处理中,请稍后查看邮箱");
......
......@@ -42,6 +42,8 @@ import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.ObjectUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.multipart.MultipartFile;
import javax.persistence.criteria.Predicate;
import javax.servlet.http.HttpServletRequest;
......@@ -331,6 +333,7 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
//调用电商接口获取对应数据
log.info("[TransactionReceiptRecordServiceImpl.exportZipFile begin]");
//查询需要导出的数据-导入成功的数据,但未导出成功的数据
String accessToken = request.getHeader("Access-Token");
List<TransactionReceiptRecord> transactionReceiptRecordList= transactionReceiptRecordRepo.selectRecordsByImportStatusAndExportStatus(1,limit);
log.info("[TransactionReceiptRecordServiceImpl.exportZipFile transactionReceiptRecordList] 可导出数据为:",transactionReceiptRecordList.size());
if(CollectionUtils.isEmpty(transactionReceiptRecordList)){
......@@ -421,7 +424,7 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
log.info("需要签章得pdf路径:"+maxExportBatchNo+"/交易凭证/"+directory+"/"+pdfFileName);
filePathList.add(map);
//调用合同中心进行签章
restContract(filePathList,emailList);
restContract(filePathList, emailList, accessToken);
}
} catch (Exception e) {
sftpUtil.logout();
......@@ -498,12 +501,25 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
deleteRedis("exportZipFile");
}
private void getHeaders(HttpServletRequest request) {
log.info("[TransactionReceiptRecordServiceImpl.getHeaders] begin");
Map<String, String> headerMap = new HashMap<>();
Enumeration<String> enumeration = request.getHeaderNames();
while (enumeration.hasMoreElements()) {
String name = enumeration.nextElement();
String value = request.getHeader(name);
headerMap.put(name, value);
log.info("[TransactionReceiptRecordServiceImpl.getHeaders],name:{},value:{}",name,value);
}
// return headerMap;
}
/**
* 调用签章接口
* @param filePathList
*/
private void restContract(List <Map<String,Object>> filePathList,List <Map<String,Object>> emailList){
log.info("contractUrl /contract/batch/sign 调用签章接口");
private void restContract(List <Map<String,Object>> filePathList,List <Map<String,Object>> emailList,String accessToken){
log.info("contractUrl /contract/batch/sign 调用签章接口,accessToken:{}",accessToken);
if(filePathList.isEmpty()){
deleteRedis("exportZipFile");
throw new RuntimeException("没有可以导出的数据");
......@@ -511,6 +527,8 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
String url = contractUrl + "/contract/batch/sign";
Map<String, String> header = Maps.newHashMap();
header.put("Content-type", "application/json");
header.put("Access-Token", accessToken);
log.info("contractUrl /contract/batch/sign 调用签章接口 accessToken,"+accessToken);
log.info("contractUrl /contract/batch/sign 调用签章接口 begin,"+filePathList);
String contractResult = httpService.post(url, header, filePathList);
JSONObject json = JSONObject.parseObject(contractResult);
......@@ -654,34 +672,34 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
for(TransactionReceiptRecord record :transactionReceiptRecordList){
try{
//调用天津自牧用户中心接口
Map param = Maps.newHashMap();
param.put("userIds",record.getUserId());
String userUrl = userSysUrl + "/api/sync/listByUserIds";
//String userUrl = "http://passportapi-test7.liangkebang.net/api/sync/listByUserIds";
log.info("TransactionReceiptRecordServiceImpl updateTransactionRecordsStatus 调用用户中心 begin"+param);
String userResult = httpService.get(userUrl, param);
log.info("TransactionReceiptRecordServiceImpl userResult ="+userResult);
if (StringUtils.isEmpty(userResult)) {
record.setImportStatus(2);
record.setExportStatus(2);
failList.add(record);
continue;
}
//对比拿到的
JSONObject userJsonObject = JSONObject.parseObject(userResult);
String dataStr = userJsonObject.getString("data");
JSONArray userArray = JSONArray.parseArray(dataStr);
if(userArray.size()<=0){
record.setImportStatus(2);
record.setExportStatus(2);
failList.add(record);
continue;
}
JSONObject object= (JSONObject) userArray.get(0);
String userName = object.getString("name");
log.info("TransactionReceiptRecordServiceImpl updateTransactionRecordsStatus 调用用户中心 end");
// Map param = Maps.newHashMap();
// param.put("userIds",record.getUserId());
// String userUrl = userSysUrl + "/api/sync/listByUserIds";
// //String userUrl = "http://passportapi-test7.liangkebang.net/api/sync/listByUserIds";
// log.info("TransactionReceiptRecordServiceImpl updateTransactionRecordsStatus 调用用户中心 begin"+param);
// String userResult = httpService.get(userUrl, param);
// log.info("TransactionReceiptRecordServiceImpl userResult ="+userResult);
// if (StringUtils.isEmpty(userResult)) {
// record.setImportStatus(2);
// record.setExportStatus(2);
// failList.add(record);
// continue;
// }
// //对比拿到的
// JSONObject userJsonObject = JSONObject.parseObject(userResult);
// String dataStr = userJsonObject.getString("data");
// JSONArray userArray = JSONArray.parseArray(dataStr);
// if(userArray.size()<=0){
// record.setImportStatus(2);
// record.setExportStatus(2);
// failList.add(record);
// continue;
// }
// JSONObject object= (JSONObject) userArray.get(0);
// String userName = object.getString("name");
// log.info("TransactionReceiptRecordServiceImpl updateTransactionRecordsStatus 调用用户中心 end");
log.info("TransactionReceiptRecordServiceImpl updateTransactionRecordsStatus 调用商城接口 begin");
if(StringUtils.isNotBlank(userName) && userName.equals(record.getUserName())){
if(StringUtils.isNotBlank(record.getUserName())){
Map<String, String> header = Maps.newHashMap();
header.put("Content-type", "application/json");
header.put("qg-tenant-id", "560761");
......
......@@ -835,28 +835,38 @@ public class UserServiceImpl implements IUserService {
param.put("userId", userId.toString());
param.put("tenantId", "560761");
String result = httpService.post(kdsp, header, param);
log.info("[user][modifyAccountStatusDisableNew] 请求业务系统返回值:{}", result);
if(result!=null){
JSONObject jsonObject = JSONObject.parseObject(result);;
String businessCode = jsonObject.getString("businessCode");
//返回信息
if("0000".equals(businessCode)){
String data = jsonObject.getString("data");
JSONObject dataObject = JSONObject.parseObject(data);
Integer userStatus = dataObject.getInteger("userStatus");
String message = dataObject.getString("message");
//1.不支持注销 2 可以注销
if(userStatus!=null && userStatus.intValue() == 1){
return JsonResult.buildErrorStateResult(message);
}
//调用用户中心,将账户状态更新为冻结
Map param1 = Maps.newHashMap();
param1.put("userId", userId.toString());
String userUrl = userSysUrl + "/innerapi/user/disable";
String userResult = httpService.post(userUrl, header, param1);
log.info("[user][modifyAccountStatusDisableNew] 请求业务系统返回值:{}", userResult);
JSONObject userJsonObject = JSONObject.parseObject(userResult);
String userBusinessCode = userJsonObject.getString("businessCode");
if("0000".equals(userBusinessCode)){
return JsonResult.buildSuccessResult(userJsonObject.getString("msg"),userJsonObject.get("data"));
}else{
return JsonResult.buildErrorStateResult(userJsonObject.getString("msg"),userJsonObject.get("data"));
return JsonResult.buildErrorStateResult("调用用户中心接口报错,注销失败");
}
}else{
return JsonResult.buildErrorStateResult(jsonObject.getString("msg"),jsonObject.get("data"));
return JsonResult.buildErrorStateResult("调用电商接口报错,注销失败");
}
}else{
return JsonResult.buildErrorStateResult("调用kdsp接口报错",null);
return JsonResult.buildErrorStateResult("调用电商接口报错,注销失败");
}
} catch (Exception e) {
log.error("[user][modifyAccountStatusDisableNew] 网络通讯异常,userId:{},ex:{}", userId, ExceptionUtils.getStackTrace(e));
......@@ -881,12 +891,21 @@ public class UserServiceImpl implements IUserService {
param.put("userId", userId.toString());
param.put("tenantId", "560761");
String result = httpService.post(kdsp, header, param);
JSONObject jsonObject = JSONObject.parseObject(result);;
log.info("[user][modifyAccountStatusDisableNew] 请求业务系统返回值:{}", result);
JSONObject jsonObject = JSONObject.parseObject(result);
String businessCode = jsonObject.getString("businessCode");
if(!"0000".equals(businessCode)){
return JsonResult.buildErrorStateResult(jsonObject.getString("msg"),jsonObject.get("data"));
return JsonResult.buildErrorStateResult("调用电商注销接口报错,注销失败");
}else{
return JsonResult.buildSuccessResult("注销成功",null);
String data = jsonObject.getString("data");
JSONObject dataObject = JSONObject.parseObject(data);;
Integer userStatus = dataObject.getInteger("userStatus");
//不能注销
if(userStatus !=null && userStatus.intValue() ==1){
String message = dataObject.getString("message");
return JsonResult.buildErrorStateResult(message);
}
return JsonResult.buildSuccessResult("注销成功",data);
}
}catch (Exception e) {
log.error("[user][modifyAccountStatusDisableNew] 网络通讯异常,userId:{},ex:{}", userId, ExceptionUtils.getStackTrace(e));
......
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