package com.hehenian.biz.service.loan.impl;
import java.io.IOException;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import com.hehenian.biz.common.base.dataobject.PageDo;
import com.hehenian.biz.common.exception.BusinessException;
import com.hehenian.biz.common.loan.IManagerLoanService;
import com.hehenian.biz.common.loan.dataobject.CertificateDo;
import com.hehenian.biz.common.loan.dataobject.LoanCheckedDo;
import com.hehenian.biz.common.loan.dataobject.LoanDo;
import com.hehenian.biz.common.loan.dataobject.LoanDo.LoanStatus;
import com.hehenian.biz.common.loan.dataobject.LoanDo.ProcessStep;
import com.hehenian.biz.common.loan.dataobject.LoanLogDo;
import com.hehenian.biz.common.loan.dataobject.LoanPersonCheckDo;
import com.hehenian.biz.common.loan.dataobject.LoanPersonDo;
import com.hehenian.biz.common.loan.dataobject.LoanProductDo;
import com.hehenian.biz.common.loan.dataobject.LoanRelationDo;
import com.hehenian.biz.common.loan.dataobject.LoanStatusDo;
import com.hehenian.biz.common.loan.dataobject.LoanUserBankDo;
import com.hehenian.biz.common.settle.SettleCalculatorUtils;
import com.hehenian.biz.common.system.dataobject.SettDetailDo;
import com.hehenian.biz.common.system.dataobject.SettSchemeDo;
import com.hehenian.biz.common.util.CommonReqUtil;
import com.hehenian.biz.common.util.DateUtils;
import com.hehenian.biz.common.util.HttpClientUtils;
import com.hehenian.biz.common.util.IdCardUtils;
import com.hehenian.biz.common.util.Md5Utils;
import com.hehenian.biz.component.loan.ILoanLogComponent;
import com.hehenian.biz.component.loan.ILoanPersonCheckComponent;
import com.hehenian.biz.component.loan.IManagerLoanComponent;
import com.hehenian.biz.component.loan.IManagerSettSchemeComponent;
import com.hehenian.lend.manager.common.contant.Constants;
/**
* @author zhengyfmf
*/
@Service("managerLoanService")
public class ManagerLoanServiceImpl implements IManagerLoanService{
private static Log log= LogFactory.getLog(ManagerLoanServiceImpl.class);
@Autowired
private IManagerLoanComponent managerLoanComponent;
@Autowired
private IManagerSettSchemeComponent managerSettSchemeComponent;
@Autowired
private ILoanLogComponent loanLogComponent;
@Autowired
private ILoanPersonCheckComponent loanPersonCheckComponent;
@Override
public int managerUpdateLoanStatus(LoanDo loanDo) {
return managerLoanComponent.updateLoanStatus(loanDo);
}
@Value("#{sysconfig['call.xiaodai.order.http']}")
private String callUrl;
@Value("#{sysconfig['call.color.house.http']}")
private String colorHouseUrl;
@Value("#{sysconfig['color.house.key']}")
private String colorToken;
@Value("#{sysconfig['color.house.resouce.appId']}")
private String colorHouseResourceAppId;
/**
*
* @param ownerName 业主真实姓名
* @param ownerIDCardNo 业主身份证号
* @param cname 小区名称
* @param houseNo 房号
* @param loanId 订单ID
*/
@Override
public void callColorHouseCheck(String ownerName, String ownerIDCardNo , String cname, String houseNo,Long loanId){
Map<String,String> params = new HashMap<String,String>();
params.put("cname", cname);
params.put("houseNo", houseNo);
params.put("ownerName", ownerName);
params.put("ownerIDCardNo", ownerIDCardNo);
long ts = System.currentTimeMillis()/1000;
params.put("ts", String.valueOf(ts));
params.put("appID", colorHouseResourceAppId);
//组织参数
StringBuilder sb = new StringBuilder();
//sign=MD5($appID+$ts+$token+false)
sb.append(colorHouseResourceAppId).append(String.valueOf(ts)).append(colorToken)
.append("false");
String sign=Md5Utils.MD5(sb.toString());
params.put("sign", sign);
try{
//调用彩生活地产
String jsonString = HttpClientUtils.post(colorHouseUrl, params);
Integer respCode = 1;
String respMsg ="";
//处理返回结果
try {
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> returnParams = mapper.readValue(jsonString, new TypeReference<HashMap<String, Object>>() {
});
respCode = (Integer) returnParams.get("code");
respMsg = (String) returnParams.get("message");
//请求成功
if(0==respCode){
Map context = (Map) returnParams.get("content");
Integer returnCname = (Integer)context.get("cname");
Integer returnHouseNo = (Integer) context.get("houseNo");
Integer returnOwnerName = (Integer) context.get("ownerName");
Integer returnOwnerIDCardNo = (Integer) context.get("ownerIDCardNo");
String returnManagementFee = (String) context.get("feeRecord");
LoanPersonCheckDo newLoanPersonCheckDo = new LoanPersonCheckDo();
newLoanPersonCheckDo.setCname(String.valueOf(returnCname));
newLoanPersonCheckDo.setHouseAddress(String.valueOf(returnHouseNo));
newLoanPersonCheckDo.setIdno(String.valueOf(returnOwnerIDCardNo));
newLoanPersonCheckDo.setName(String.valueOf(returnOwnerName));
newLoanPersonCheckDo.setMngfee(returnManagementFee);
newLoanPersonCheckDo.setLoanId(loanId);
LoanDo loanDo = new LoanDo();
loanDo.setLoanId(loanId);
boolean isPass = true;
if(0==returnCname||0==returnOwnerIDCardNo||0==returnOwnerName){
isPass = false;
}
/*
int count_one = 0;
for(int i = 0 ; i <returnManagementFee.length();i++){
char oneMonth = returnManagementFee.charAt(i);
char one = '1';
if(one == oneMonth){
count_one++;
}
}
if(count_one<6){
isPass = false;
}
*/
if(isPass){
loanDo.setLoanStatus(LoanStatus.PENDING);
loanDo.setProcessNextStep(LoanDo.ProcessStep.PROXY_CHECK);
}else{
loanDo.setLoanStatus(LoanStatus.NOPASS);
loanDo.setProcessNextStep(LoanDo.ProcessStep.TO_EDIT);
}
loanPersonCheckComponent.addLoanPersonCheck(newLoanPersonCheckDo);
loanDo.setProcessCurrentStep(LoanDo.ProcessStep.CALL_COLOR_HOUSE_CHECK);
managerLoanComponent.updateLoanStatus(loanDo);
}
} catch (IOException e) {
log.error(e.getMessage(), e);
}
LoanLogDo log = new LoanLogDo();
log.setLoanId(loanId);
log.setLogType(6);//日志类型:1-上标,2-生成还款计划表5-二审通过大于30W走小贷 6, 调用验证业主
log.setOrderCode("");
log.setLogMsg(respMsg);
if(0==respCode){
log.setLogStatus(0);
log.setLogMsg("请求彩生活验证业主接口成功");
}else{
log.setLogStatus(1);
log.setLogMsg("请求彩生活验证业主接口失败");
}
loanLogComponent.addLoanLog(log);
}catch(Exception e){
log.error(e);
}
}
@Override
public boolean managerUpdateLoanStatus(List<Map<String,Object>> paramList){
return managerLoanComponent.updateLoanStatusByMap(paramList);
}
@Override
public PageDo<Map<String,Object>> managerGetLoanPage(Map<String,Object> param, PageDo<Map<String,Object>> page) {
param.put(Constants.MYBATIS_PAGE, page);
List<Map<String, Object>> list;
try {
list = managerLoanComponent.getLoanPage(param);
if(list != null){
DecimalFormat myformat = new DecimalFormat();
myformat.applyPattern("##,###.00");
for(int i=0 ;i<list.size();i++){
Map<String,Object> map = list.get(i);
/*map.remove("LOANID");
map.remove("SCHEMEID");
map.remove("CREATETIME");
map.remove("LOANSTATUS");
map.remove("PRODUCTNAME");
map.remove("PRODUCTCODE");
map.remove("SCHEMENAME");
map.remove("APPLYAMOUNT");
map.remove("REALNAME");
map.remove("ORDERCODE");
map.remove("MOBILE");
map.remove("LOANPERIOD");
map.remove("ANNUALRATE");
map.remove("REFERENCEMOBILE");
map.remove("AUDITUSER");*/
map.put("num", i+1);
map.put("loanStatusDesc", LoanStatusDo.getLoanStatusDesc((String)map.get("loanStatus")));
if(map.get("applyAmount")!=null){
map.put("applyAmount", myformat.format(map.get("applyAmount")));
}
if(map.get("annualRate")!=null){
map.put("annualRate", String.valueOf(map.get("annualRate")));
}
if(map.get("createTime")!=null){
try {
map.put("createTime", DateUtils.formatTime(DateUtils.parseTime(map.get("createTime").toString())));
} catch (ParseException e) {
e.printStackTrace();
}
}
}
}
page.setPage(list);
} catch (Exception e1) {
e1.printStackTrace();
}
return page;
}
@Override
public LoanDo getDetailLoanByLoanId(Long loanId) {
return managerLoanComponent.getDetailLoanByLoanId(loanId);
}
@Override
public PageDo<LoanDo> getLoanListPage(Map<String,Object> param, PageDo<LoanDo> page) {
param.put(Constants.MYBATIS_PAGE, page);
List<LoanDo> list = managerLoanComponent.getLoanListPage(param);
page.setPage(list);
return page;
}
@Override
public LoanPersonDo getLoanDetailByLoanId(Long loanId) {
return managerLoanComponent.getLoanDetailByLoanId(loanId);
}
@Override
public List<LoanProductDo> listLoanProduct(Map<String, Object> param) {
return managerLoanComponent.listLoanProduct(param);
}
@Override
public List<Map<String, Object>> getLabelExportData(Map<String, Object> param) {
List<Map<String, Object>> labelExportDataList =managerLoanComponent.getLabelExportData(param);
DecimalFormat myformat = new DecimalFormat();
myformat.applyPattern("#####");
for(Map<String, Object> temp:labelExportDataList){
String idNo =null==temp.get("idNo")?"":temp.get("idNo").toString();
temp.put("age", IdCardUtils.getAgeByIdCard(idNo));
String sexString =IdCardUtils.getGenderByIdCard(idNo);
sexString=sexString.equals("M")?"男":sexString.equals("F")?"女":"未知";
temp.put("sex", sexString);
temp.put("annualRate","10");
if(temp.get("applyAmount")!=null){
temp.put("applyAmount", myformat.format(temp.get("applyAmount")));
}
if(temp.get("jobIncome")!=null){
temp.put("jobIncome", myformat.format(temp.get("jobIncome")));
}
}
return labelExportDataList;
}
@Override
public boolean initRepayPlan(LoanDo loanDo) {
try {
SettSchemeDo settSchemeDo = managerSettSchemeComponent.getBySchemeId(loanDo.getSchemeId());
List<SettDetailDo> list = SettleCalculatorUtils.calSettDetailForRepayPlanRecord(loanDo.getLoanAmount(), loanDo.getLoanPeriod(), loanDo.getAnnualRate(), loanDo.getInvestAnnualRate(), settSchemeDo);
boolean res = managerLoanComponent.initRepayPlan(loanDo, list);
return res ;
} catch (Exception e) {
e.printStackTrace();
}
return false ;
}
@Override
public LoanDo getLoanByLoanId(Long loanId) {
return managerLoanComponent.getLoanByLoanId(loanId);
}
@Override
public LoanPersonDo getLoanInfoForSbByLoanId(Long loanId) {
return managerLoanComponent.getLoanInfoForSbByLoanId(loanId);
}
@Override
public LoanPersonDo getLoanInfoForFkByOrderCode(String orderCode) {
return managerLoanComponent.getLoanInfoForFkByOrderCode(orderCode);
}
@Override
public Map<String, Object> getBankAccountForHF(String idNo) {
return managerLoanComponent.getBankAccountForHF(idNo);
}
@Override
public Map<String, Object> getBankAccountForTL(String idNo) {
return managerLoanComponent.getBankAccountForTL(idNo);
}
@Override
public List<Map<String,Object>> getSbNameForHF(String orderCode) {
return managerLoanComponent.getSbNameForHF(orderCode);
}
@Override
public List<Map<String,Object>> getSbNameForTL(String orderCode) {
return managerLoanComponent.getSbNameForTL(orderCode);
}
@Override
public int updateLoan(LoanDo loanDo) {
return managerLoanComponent.updateLoan(loanDo);
}
@Override
public LoanPersonDo getLoanPersonDetail(Long loanId) {
return managerLoanComponent.getLoanPersonDetail(loanId);
}
@Override
public List<LoanUserBankDo> managerGetTbcInfo(Long userId) {
return managerLoanComponent.getTbcInfo(userId);
}
@Override
public List<LoanUserBankDo> managerGetTdbcInfo(Long userId) {
return managerLoanComponent.getTdbcInfo(userId);
}
@Override
public List<LoanCheckedDo> getLoanCheckedByLoanId(Long loanId, String checkType) {
Map<String, Object> param = new HashMap<String, Object>();
param.put("loanId", loanId);
param.put("checkType", checkType);
return managerLoanComponent.getLoanCheckedByLoanId(param);
}
@Override
public int updateLoanChecked(LoanCheckedDo loanCheckedDo) {
//return managerLoanComponent.updateLoanChecked(loanCheckedDo);
//--ljc 20150703 注掉上面代码,并替换为下面代码
int rlt=0;
try{
settingLoanProcessStep(loanCheckedDo);
rlt=managerLoanComponent.updateLoanChecked(loanCheckedDo);
/*
if("1".equals(loanCheckedDo.getCheckResult()) && "2".equals(loanCheckedDo.getCheckType() )){//二审通过,判断申请金额是否大于30万,30万走小贷
sendToXiaoDaiDoLoanLog(loanCheckedDo.getLoanId());
}
*/
}catch(BusinessException e)
{
rlt=Integer.valueOf(e.getErrorCode());
}catch(Exception e)
{
rlt=-1;
log.error("修改流程异常",e);
}
return rlt;
}
//记录日志
private void sendToXiaoDaiDoLoanLog(final long loanId){
final LoanDo loanDo = managerLoanComponent.getFullLoanDo(loanId);
new Thread(new Runnable() {
public void run() {
//==============lml add date:2015/07/07
String[] strArr = sendOrderToXiaoDai(loanDo);
Map<String, Object> param = new HashMap<String, Object>();
LoanLogDo log = new LoanLogDo();
log.setLoanId(loanDo.getLoanId());
log.setLogType(5);//日志类型:1-上标,2-生成还款计划表5-二审通过大于30W走小贷
log.setOrderCode(loanDo.getOrderCode());
if(strArr[0].equals("true")){
log.setLogStatus(0);
log.setLogMsg("请求小贷接口成功...");
}else{
log.setLogStatus(1);
log.setLogMsg("请求小贷接口失败...");
}
loanLogComponent.addLoanLog(log);
//==============lml add date:2015/07/07
}
}).start();
}
/**
* 处理订单流程步骤
* @author ljc
* @date 20150703
* @param loanCheckedDo
* @throws Exception
*/
private void settingLoanProcessStep(LoanCheckedDo loanCheckedDo)throws Exception
{
if(loanCheckedDo==null)
{
throw new BusinessException("审核对象不能为空");
}
if(loanCheckedDo.getLoanId()==null)
{
throw new BusinessException("借款ID不能为空", "-101");
}
String checkResult=loanCheckedDo.getCheckResult();
if(org.apache.commons.lang.StringUtils.isBlank(checkResult))
{
throw new BusinessException("审核状态值错误", "-102");
}
LoanDo loanDo=new LoanDo();
loanDo.setLoanId(loanCheckedDo.getLoanId());
String step=loanCheckedDo.getCheckType();
if("1".equals(checkResult))//一审通过,流程进入二审状态
{
loanDo.setLoanStatus(LoanStatus.PROCESSING);
}else if("0".equals(checkResult))//一审不通过,流程返回审核失败。
{
loanDo.setLoanStatus(LoanStatus.NOPASS);
}else if("2".equals(checkResult))//一审修改,流程状态进入草稿状态。
{
loanDo.setLoanStatus(LoanStatus.DRAFT);
}else{
throw new BusinessException("审核状态值错误", "-103");
}
LoanDo oldLoanDo = this.getLoanByLoanId(loanCheckedDo.getLoanId());
double Amt = oldLoanDo.getApplyAmount();
LoanStatus Status = loanDo.getLoanStatus();
if("2".equals(step)){//二审
loanDo.setLoanStatus(getNextStatus(Status, ProcessStep.MENDSTEP2,Amt));
loanDo.setProcessCurrentStep(ProcessStep.MENDSTEP2);
loanDo.setProcessNextStep(getNextStep(Status, ProcessStep.MENDSTEP2,Amt));
}else if("1".equals(step)){//一审
loanDo.setProcessCurrentStep(ProcessStep.MENDSTEP1);
loanDo.setProcessNextStep(getNextStep(Status, ProcessStep.MENDSTEP1,Amt));
}else{
throw new BusinessException("审核步骤错误", "-104");
}
managerUpdateLoanStatus(loanDo);
}
private LoanStatus getNextStatus(LoanStatus currentStatus, ProcessStep currentStep ,Double applayAmount ){
if(LoanStatus.DRAFT.equals(currentStatus)){
return LoanStatus.DRAFT;
}
if(LoanStatus.NOPASS.equals(currentStatus)){
return LoanStatus.NOPASS;
}
if(LoanStatus.PROCESSING.equals(currentStatus)&&ProcessStep.MENDSTEP1.equals(currentStep)){
return LoanStatus.PROCESSING;
}
if(LoanStatus.PROCESSING.equals(currentStatus)&&ProcessStep.MENDSTEP2.equals(currentStep)){
// if(applayAmount.doubleValue() >= 300000){
// return LoanStatus.PROCESSING;
// }else{
// return LoanStatus.AUDITED;
// }
return LoanStatus.AUDITED;
}
return LoanStatus.DRAFT;
}
/**
* 获取下个步骤
* @param loanDo
* @return
*/
private ProcessStep getNextStep(LoanStatus currentStatus, ProcessStep currentStep ,Double applayAmount){
if(LoanStatus.NOPASS.equals(currentStatus)){
return ProcessStep.NULL;
}
if(LoanStatus.PROCESSING.equals(currentStatus)&&ProcessStep.MENDSTEP2.equals(currentStep)){
// if(applayAmount.doubleValue() >= 300000){
// return ProcessStep.XIAODAI_AUDIT;
// }else{
// return ProcessStep.TO_SUBJECT;
// }
return ProcessStep.TO_SUBJECT;
}
if(LoanStatus.PROCESSING.equals(currentStatus)&&ProcessStep.MENDSTEP1.equals(currentStep)){
return ProcessStep.MENDSTEP2;
}
return ProcessStep.TO_EDIT;
}
@Override
public int createLoanChecked(LoanCheckedDo loanCheckedDo) {
//return managerLoanComponent.createLoanChecked(loanCheckedDo);
//--ljc 20150703 注掉上面代码,并替换为下面代码(修改订单流程状态)
int rlt=0;
try{
settingLoanProcessStep(loanCheckedDo);
rlt=managerLoanComponent.createLoanChecked(loanCheckedDo);
/*
if("1".equals(loanCheckedDo.getCheckResult()) && "2".equals(loanCheckedDo.getCheckType() )){//二审通过,判断申请金额是否大于30万,30万走小贷
sendToXiaoDaiDoLoanLog(loanCheckedDo.getLoanId());
}
*/
}catch(BusinessException e)
{
rlt=Integer.valueOf(e.getErrorCode());
}catch(Exception e)
{
rlt=-1;
log.error("修改流程异常",e);
}
return rlt;
}
@Override
public LoanDo getLoanforUpdate(Map<String, Object> param) {
return managerLoanComponent.getLoanforUpdate(param);
}
/**
* 获取渠道列表
*/
@Override
public List<Map<String, Object>> getChannelTypeList() {
return managerLoanComponent.getChannelTypeList();
}
@Override
public List<LoanRelationDo> getLoanRelationListByLoanId(Long loanId) {
return managerLoanComponent.getLoanRelationDoList(loanId);
}
@Override
public String[] sendOrderToXiaoDai(LoanDo loan) {
String[] arrStr = new String[2];
arrStr[0] = "false";
Map<String,Object> mapBig = new HashMap<String,Object>();
List list = new ArrayList();
Map<String,String> map = new HashMap<String,String>();
if(loan != null){
LoanPersonDo person = loan.getLoanPersonDo();
SimpleDateFormat toDate = new SimpleDateFormat("yyyy/MM/dd");
//person
String name= "",ide= "",handset= "",educe= "",marriage= "",age= "",sex= "",localtime= "",communitycode= "",housetel= "",islocals= "",houseProvince
= "",houseCity= "",housearea= "",houseaddress= "",regionProvince= "",regionCity= "",region
= "",regionaddress= "",livingconditions= "",email= "",qq= "",workunit= "",unitproperty= "",industry= "",posttime= "",postgrade= "",
workUnitProvince= "",workUnitCity= "",workunitarea= "",unitaddress= "",unittel= "",salarymonth= "",paydate= "",otherincome= "",
monthincomesum= "",partnerName= "",partnerIDEType= "",partnerIDE= "",partnerHandset
= "",partnerUnittel= "",partnerHousetel= "",partnerWorkunit= "",partnerDuty= "",partnerHouseProvice= "",partnerHouseCity
= "",partnerHouseArea= "",partnerHouseaddress= "",isknow = "";
//project
String isFirstLoan= "",applyGuaSum= "",buninessType= "",applyGuaTerm= "",loanRate
= "",returnType= "",bussinessStatus= "",organdto= "",clientSource= "",channelType= "",
loanPurposeType = "";
if(person != null){//person
name = StringUtils.defaultString(person.getRealName());
ide = StringUtils.defaultString(person.getIdNo());
handset = StringUtils.defaultString(person.getMobile());
educe = person.getEducation() == null ? "":
person.getEducation().toString() == "GRADE_SCHOOL" ? "960097":
person.getEducation().toString() == "HIGN_SCHOOL" ? "1700171":
person.getEducation().toString() == "POLYTECH_SCHOOL" ? "1700171":
person.getEducation().toString() == "VOCATION_SCHOOL" ? "1700171":
person.getEducation().toString() == "JUNIOR_COLLEGE" ? "960096":
person.getEducation().toString() == "BACHELOR" ? "321":
person.getEducation().toString() == "MASTER" ? "1700170":"";
marriage = person.getMarriaged() == null ? "":
person.getMarriaged().toString() == "UNMARRIED" ? "330":
person.getMarriaged().toString() == "MARRIED" ? "331":
person.getMarriaged().toString() == "DIVORCE" ? "1700172":"";
age = StringUtils.defaultString(person.getAge().toString());
sex = person.getSex() == null ? "":
person.getSex().toString() == "MALE" ? "男":
person.getSex().toString() == "FEMALE" ? "女":"";
email = StringUtils.defaultString(person.getEmail());
//1010101 居民身份证 1010106 其它
partnerIDEType = "1010101";
}
//project
buninessType = StringUtils.defaultString(loan.getProductName());
loanRate = StringUtils.defaultString(loan.getAnnualRate().toString());
applyGuaSum = StringUtils.defaultString(loan.getApplyAmount().toString(),"0");
applyGuaTerm = StringUtils.defaultString(loan.getLoanPeriod().toString());
returnType = StringUtils.defaultString(loan.getSchemeName());
bussinessStatus = StringUtils.defaultString(LoanStatusDo.getLoanStatusDesc(loan.getLoanStatus().toString()));
//
//------------------------person对象组装------------------------
map.put("name",name);//借款人姓名
map.put("ide",ide);//身份证
map.put("handset",handset);//手机号码
map.put("educe",educe);//教育程度
map.put("marriage",marriage);//婚姻
map.put("age",age);//年龄
map.put("sex",sex);//性别
map.put("localtime",localtime);//来本地时间 格式2015/07/06
map.put("communitycode",communitycode);
map.put("housetel",housetel);
map.put("islocals",islocals);
map.put("houseProvince",houseProvince);
map.put("houseCity",houseCity);
map.put("housearea",housearea);
map.put("houseaddress",houseaddress);
map.put("regionProvince",regionProvince);
map.put("regionCity",regionCity);
map.put("region", region);
map.put("regionaddress", regionaddress);
map.put("livingconditions", livingconditions);
map.put("email", email);
map.put("qq", qq);
map.put("workunit", workunit);
map.put("unitproperty", unitproperty);
map.put("industry",industry);
map.put("posttime", posttime);
map.put("postgrade", postgrade);
map.put("workUnitProvince", workUnitProvince);
map.put("workUnitCity", workUnitCity);
map.put("workunitarea",workunitarea);
map.put("unitaddress", unitaddress);
map.put("unittel",unittel);
map.put("salarymonth",salarymonth);
map.put("paydate",paydate);
map.put("otherincome",otherincome);
map.put("monthincomesum",monthincomesum);
map.put("partnerName", partnerName);
map.put("partnerIDEType", partnerIDEType);
map.put("partnerIDE", partnerIDE);
map.put("partnerHandset", partnerHandset);
map.put("partnerUnittel",partnerUnittel);
map.put("partnerHousetel",partnerHousetel);
map.put("partnerWorkunit", partnerWorkunit);
map.put("partnerDuty",partnerDuty);
map.put("partnerHouseProvice",partnerHouseProvice);
map.put("partnerHouseCity", partnerHouseCity);
map.put("partnerHouseArea", partnerHouseArea);
map.put("partnerHouseaddress",partnerHouseaddress);
map.put("isknow", isknow);
//添加到大MAP对象
mapBig.put("person", map);
//------------------------project对象组装------------------------
map = new HashMap<String,String>();
map.put("isFirstLoan", isFirstLoan);
map.put("applyGuaSum", applyGuaSum);//申请金额
map.put("buninessType", buninessType);//产品类型
map.put("applyGuaTerm", applyGuaTerm);//贷款期限(月)
map.put("loanRate", loanRate);//贷款利率
map.put("returnType", returnType);//还款方式
map.put("bussinessStatus", bussinessStatus);//订单状态
map.put("organdto", organdto);
map.put("clientSource", clientSource);
map.put("channelType",channelType);
map.put("loanPurposeType", loanPurposeType);
//添加到大MAP对象
mapBig.put("project", map);
//------------------------linkman对象组装------------------------
if(person != null){
List<LoanRelationDo> relatList = person.getLoanRelationDoList();
if(relatList.size() > 0){
for (LoanRelationDo loanRelationDo : relatList) {
map = new HashMap<String,String>();
map.put("name", StringUtils.defaultString(loanRelationDo.getRalationName()));
String rekatShip = loanRelationDo.getRelationship() == null ? "":
loanRelationDo.getRelationship().equals("父母") ? "1800202":
loanRelationDo.getRelationship().equals("子女") ? "1800203":
loanRelationDo.getRelationship().equals("兄弟") ? "1800204":
loanRelationDo.getRelationship().equals("姐妹") ? "1800206":
loanRelationDo.getRelationship().equals("兄妹") ? "1800207":
loanRelationDo.getRelationship().equals("姐弟") ? "1910193":
loanRelationDo.getRelationship().equals("亲戚") ? "9460949":
loanRelationDo.getRelationship().equals("朋友") ? "9460950":
loanRelationDo.getRelationship().equals("同事") ? "9460951":
loanRelationDo.getRelationship().equals("配偶") ? "9460952":
loanRelationDo.getRelationship().equals("本人") ? "9460964":"ENU150117000001";
map.put("relationNotice", rekatShip);
map.put("handset", StringUtils.defaultString(loanRelationDo.getMobile()));
map.put("houseTel", "");
map.put("workUnit", "");
map.put("post", "");
map.put("workUnitTel", "");
list.add(map);
}
}
//添加到大MAP对象
mapBig.put("linkman", list);
map = new HashMap<String,String>();
list = new ArrayList();
//------------------------file对象组装------------------------
List<CertificateDo> certifiList = person.getCertificateDoList();
if(certifiList.size() > 0){
for (CertificateDo certificateDo : certifiList) {
map = new HashMap<String,String>();
map.put("code", StringUtils.defaultString(certificateDo.getFileType().toString()));
map.put("path", StringUtils.defaultString(certificateDo.getFilePath()));
list.add(map);
}
}
//添加到大MAP对象
mapBig.put("file", list);
map = new HashMap<String,String>();
}
list = new ArrayList();
list.add(mapBig);
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray.toString());
String jsonString = jsonArray.toString();
String url = callUrl;
//String url = "http://10.111.2.7:8080/credit.core.platform/p2p/order.do";
String res = CommonReqUtil.pushServiceToPost(url.trim(),jsonString);
JSONObject jsonObject = JSONObject.fromObject(res);
arrStr[0] = jsonObject.get("success").toString();
arrStr[1] = jsonObject.get("errorMessage").toString();
}else{
arrStr[1] = "loan is null";
}
return arrStr;
}
}