package com.hehenian.app.view.loan.group;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
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.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.hehenian.biz.common.account.IPersonService;
import com.hehenian.biz.common.account.IUserService;
import com.hehenian.biz.common.account.dataobject.AccountUserDo;
import com.hehenian.biz.common.base.result.IResult;
import com.hehenian.biz.common.base.result.ResultSupport;
import com.hehenian.biz.common.filesaving.IFileServerService;
import com.hehenian.biz.common.loan.ICommonService;
import com.hehenian.biz.common.loan.ILoanApplyService;
import com.hehenian.biz.common.loan.ILoanChannelService;
import com.hehenian.biz.common.loan.ILoanPersonService;
import com.hehenian.biz.common.loan.ILoanUserService;
import com.hehenian.biz.common.loan.dataobject.JobDo;
import com.hehenian.biz.common.loan.dataobject.JobDo.JobType;
import com.hehenian.biz.common.loan.dataobject.LoanDo;
import com.hehenian.biz.common.loan.dataobject.LoanDo.LoanStatus;
import com.hehenian.biz.common.loan.dataobject.LoanPersonDo;
import com.hehenian.biz.common.loan.dataobject.LoanProductDo;
import com.hehenian.biz.common.notify.INotifyService;
import com.hehenian.biz.common.notify.dataobject.LoanSMSNotifyDo;
import com.hehenian.biz.common.notify.dataobject.NotifyDo;
import com.hehenian.biz.common.system.dataobject.SettDetailDo;
import com.hehenian.biz.common.trade.ISettleCalculatorService;
import com.hehenian.biz.common.util.CalculateUtils;
import com.hehenian.biz.common.util.DateUtil;
import com.hehenian.biz.common.util.HttpClientUtils;
import com.hehenian.biz.common.util.IdCardUtils;
import com.hehenian.biz.common.util.Md5Utils;
import com.hehenian.web.common.constant.WebConstants;
/**
* @Description 集团贷款申请控制器
* @author huangzl QQ: 272950754
* @date 2015年6月8日 上午10:05:42
* @Project hehenian-lend-app
* @Package com.hehenian.app.view.loan.group
* @File LoanGroupController.java
*/
@Controller
@RequestMapping(value = "/app/group")
public class LoanGroupController {
private final Logger logger = Logger.getLogger(this.getClass());
@Autowired
private IUserService accountUserService;
@Autowired
private IPersonService personService;
@Autowired
private ILoanApplyService loanApplyService;
@Autowired
private ILoanPersonService loanPersonService;
@Autowired
private ILoanUserService loanUserService;
@Autowired
private ILoanChannelService loanChannelService;
@Autowired
private ISettleCalculatorService settleCalculatorService;
@Autowired
private INotifyService smsNotifyService;
@Autowired
private ICommonService commonService;
@Autowired
private IUserService userService;
@Autowired
private IFileServerService fileServerService;
@Value("#{appconfig['color.life.AG.URL']}")
private String colorLifeAG_URL;
@Value("#{appconfig['color.life.AG.COLOR.APP.ID']}")
private String COLOR_APP_ID;
@Value("#{appconfig['color.life.AG.COLOR.TOKEN']}")
private String COLOR_TOKEN;
/**
* 获取彩生活登录认证
* @param session
* @param request
* @return
*/
@RequestMapping("/getAuth")
//@ResponseBody
public String getAuth( HttpSession session, HttpServletRequest request) {
long currentTime = System.currentTimeMillis()/1000;
String ts = String.valueOf(currentTime);
//sign=MD5($appID+$ts+$token+false)
String sign = Md5Utils.MD5(COLOR_APP_ID+ts+COLOR_TOKEN+"false");
String openId = request.getParameter("openID");
String token =request.getParameter("accessToken");
System.out.println("ts="+ts+";sign="+sign+";");
Map<String,String> params = new HashMap<String,String>(10);
params.put("openID", openId);
params.put("accessToken", token);
try {
StringBuffer url = new StringBuffer();
url.append(colorLifeAG_URL).append("?sign=").append(sign).append("&ts=").append(ts).append("&appID=").append(COLOR_APP_ID);
String result = HttpClientUtils.post(url.toString(), params);
logger.info("彩生活认证结果:"+result);
ObjectMapper mapper = new ObjectMapper();
Map<Object, Object> params1 = mapper.readValue(result.toString(), new TypeReference<HashMap<Object, Object>>() {});
int code =Integer.valueOf(params1.get("code").toString());
if(code==0){
if(params1.get("content").toString().length()>0){
Map<Object, Object> contentTemp=(Map<Object, Object>) params1.get("content");
// //注册
// IResult<AccountUserDo> registerResult = userService.register(-1, "cgj_"+contentTemp.get("username").toString(),contentTemp.get("mobile").toString(), DigestUtils.md5Hex(contentTemp.get("mobile").toString() + WebConstants.PASS_KEY), 100,-1L);
// AccountUserDo user = registerResult.getModel();
// if (registerResult.isSuccess()) {
//// userService.updatePerson(user, realName, idNo, mobile);
//// userService.updateColourlifeInfo(user.getId(), Long.valueOf(null == sourceUserId ? "-1" : sourceUserId), cid, cname, caddress);
// }
AccountUserDo user = new AccountUserDo();
user.setUsername(contentTemp.get("username")==null?"":contentTemp.get("username").toString());
//放入session
session.setAttribute("user", user);
session.setAttribute("contentTemp", contentTemp);
}else{
session.setAttribute(WebConstants.MESSAGE_KEY,"财管家数据异常");
return "common/notify_message";
}
}else{
String message =params1.get("message").toString();
// String contentEncrypt =params1.get("contentEncrypt").toString();
session.setAttribute(WebConstants.MESSAGE_KEY,message);
return "common/notify_message";
}
} catch (Exception e) {
e.printStackTrace();
}
return "app/group/index";
}
// /**
// * 获取彩管家登录认证
// * @param session
// * @param request
// * @return
// */
// @SuppressWarnings("unused")
// @RequestMapping(value = "getAuth")
// //@ResponseBody
// public String getAuth(HttpSession session, HttpServletRequest request) {
// return "app/group/index";
// }
// /**
// * 借款申请首页
// *
// * @param colorId
// * @param cid
// * @param cName
// * @param caddress
// * @param mobile
// * @param model
// * @return
// * @author: huangzl
// * @date: 2015年6月8日 19:13:59
// */
// @SuppressWarnings("deprecation")
// @RequestMapping("/index")
// public String index(@RequestParam("userid") String sourceUserId, String username, Long cid, String cname, String caddress, String mobile, Integer channelType, String realName, String idNo, Model model, HttpSession session, HttpServletRequest request) {
// realName = null == realName ? "" : URLDecoder.decode(realName);
// idNo = null == idNo ? "" : URLDecoder.decode(idNo);
// username = null == username ? "" : URLDecoder.decode(username);
// cname = null == cname ? "" : URLDecoder.decode(cname);
// caddress = null == caddress ? "" : URLDecoder.decode(caddress);
// logger.warn("渠道类型ID:" + channelType + ",用户ID:" + sourceUserId + ",小区ID:" + cid + ",小区名称:" + cname + ",小区地址:" + caddress + ",手机号码:" + mobile + ",真实姓名:" + realName + ",身份证号码:" + idNo);
// IResult<AccountUserDo> result = userService.register(-1, username, mobile, DigestUtils.md5Hex(mobile + WebConstants.PASS_KEY), 100, Long.valueOf(null == sourceUserId ? "-1" : sourceUserId));
// AccountUserDo user = result.getModel();
// if (result.isSuccess()) {
// userService.updatePerson(user, realName, idNo, mobile);
// userService.updateColourlifeInfo(user.getId(), Long.valueOf(null == sourceUserId ? "-1" : sourceUserId), cid, cname, caddress);
// }
//
// if (StringUtils.isBlank(sourceUserId)) {
// model.addAttribute(WebConstants.MESSAGE_KEY, "请求参数有误,请联系客服!");
// return "app/group/index";
// }
// session.setAttribute("user", user);
// if (channelType == null || channelType.intValue() < 1) {
// channelType = 1; // 彩生活
// }
// realName = user.getPerson().getRealName();
// idNo = user.getPerson().getIdNo();
// LoanChannelDo loanChannelDo = new LoanChannelDo();
// LoanUserDo loanUserDo = new LoanUserDo();
// loanChannelDo.setChannelType(channelType);
// loanChannelDo.setSourceUserId(sourceUserId);
// loanUserDo.setCid(cid);
// loanUserDo.setLevel(1);
// try {
// if (StringUtils.isNotBlank(cname)) {
// loanUserDo.setCname(URLDecoder.decode(cname, "utf-8"));
// }
// if (StringUtils.isNotBlank(caddress)) {
// loanUserDo.setCaddress(URLDecoder.decode(caddress, "utf-8"));
// }
// if (StringUtils.isNotBlank(realName)) {
// loanUserDo.setName(URLDecoder.decode(realName, "utf-8"));
// }
// if (StringUtils.isNotBlank(idNo)) {
// loanUserDo.setIdNo(idNo);
// }
// loanUserDo.setIdNo(idNo);
// } catch (Exception e) {
// e.printStackTrace();
// }
// loanUserDo.setMobile(mobile);
//
// loanChannelDo.setLoanUserDo(loanUserDo);
// // 隐藏手机号码和身份证号码部分号码
// if (StringUtils.isNotBlank(mobile) && mobile.length() >= 7) {
// loanUserDo.setMobile(mobile);
// mobile = mobile.substring(0, 4) + "****" + mobile.substring(mobile.length() - 4);
// loanUserDo.setMobileShort(mobile);
// }
// if (StringUtils.isNotBlank(idNo) && idNo.length() >= 7) {
// loanUserDo.setIdNo(idNo);
// idNo = idNo.substring(0, 4) + "***********" + idNo.substring(idNo.length() - 4);
// loanUserDo.setIdNoShort(idNo);
// }
// loanChannelDo.setLoanUserDo(loanUserDo);
// session.setAttribute("loanChannelDo", loanChannelDo);
// setLoanCount(session);
// return "app/group/index";
// }
// /**
// * 借款申请首页
// *
// * @param colorId
// * @param cid
// * @param cName
// * @param caddress
// * @param mobile
// * @param model
// * @return
// * @author: huangzl
// * @date: 2015年6月8日 19:13:59
// */
// @SuppressWarnings("deprecation")
// @RequestMapping("/index")
// public String index(@RequestParam("userid") String sourceUserId, String username, Long cid, String cname, String caddress, String mobile, Integer channelType, String realName, String idNo, Model model, HttpSession session, HttpServletRequest request) {
// realName = null == realName ? "" : URLDecoder.decode(realName);
// idNo = null == idNo ? "" : URLDecoder.decode(idNo);
// username = null == username ? "" : URLDecoder.decode(username);
// cname = null == cname ? "" : URLDecoder.decode(cname);
// caddress = null == caddress ? "" : URLDecoder.decode(caddress);
// logger.warn("渠道类型ID:" + channelType + ",用户ID:" + sourceUserId + ",小区ID:" + cid + ",小区名称:" + cname + ",小区地址:" + caddress + ",手机号码:" + mobile + ",真实姓名:" + realName + ",身份证号码:" + idNo);
// IResult<AccountUserDo> result = userService.register(-1, username, mobile, DigestUtils.md5Hex(mobile + WebConstants.PASS_KEY), 100, Long.valueOf(null == sourceUserId ? "-1" : sourceUserId));
// AccountUserDo user = result.getModel();
// if (result.isSuccess()) {
// userService.updatePerson(user, realName, idNo, mobile);
// userService.updateColourlifeInfo(user.getId(), Long.valueOf(null == sourceUserId ? "-1" : sourceUserId), cid, cname, caddress);
// }
// // 判断小区是否开通
// List<Map<String, Long>> testAreaList = loanApplyService.getTestAreaName();
// boolean isUsable = false;
// if (testAreaList != null && cid != null) {
// for (Map<String, Long> m : testAreaList) {
// if (m != null) {
// Long isUsableCid = m.get("cid");
// if (isUsableCid == null) {
// continue;
// }
// if (isUsableCid.longValue() == cid.longValue()) {
// isUsable = true;
// break;
// }
// }
// }
// if (false == isUsable) {
// return "app/group/notify_message";
// }
// }
// // end 判断小区是否开通
//
// if (StringUtils.isBlank(sourceUserId)) {
// model.addAttribute(WebConstants.MESSAGE_KEY, "请求参数有误,请联系客服!");
// return "app/group/index";
// }
// session.setAttribute("user", user);
// if (channelType == null || channelType.intValue() < 1) {
// channelType = 1; // 彩生活
// }
// realName = user.getPerson().getRealName();
// idNo = user.getPerson().getIdNo();
// LoanChannelDo loanChannelDo = new LoanChannelDo();
// LoanUserDo loanUserDo = new LoanUserDo();
// loanChannelDo.setChannelType(channelType);
// loanChannelDo.setSourceUserId(sourceUserId);
// loanUserDo.setCid(cid);
// loanUserDo.setLevel(1);
// try {
// if (StringUtils.isNotBlank(cname)) {
// loanUserDo.setCname(URLDecoder.decode(cname, "utf-8"));
// }
// if (StringUtils.isNotBlank(caddress)) {
// loanUserDo.setCaddress(URLDecoder.decode(caddress, "utf-8"));
// }
// if (StringUtils.isNotBlank(realName)) {
// loanUserDo.setName(URLDecoder.decode(realName, "utf-8"));
// }
// if (StringUtils.isNotBlank(idNo)) {
// loanUserDo.setIdNo(idNo);
// }
// loanUserDo.setIdNo(idNo);
// } catch (Exception e) {
// e.printStackTrace();
// }
// loanUserDo.setMobile(mobile);
//
// loanChannelDo.setLoanUserDo(loanUserDo);
// // 隐藏手机号码和身份证号码部分号码
// if (StringUtils.isNotBlank(mobile) && mobile.length() >= 7) {
// loanUserDo.setMobile(mobile);
// mobile = mobile.substring(0, 4) + "****" + mobile.substring(mobile.length() - 4);
// loanUserDo.setMobileShort(mobile);
// }
// if (StringUtils.isNotBlank(idNo) && idNo.length() >= 7) {
// loanUserDo.setIdNo(idNo);
// idNo = idNo.substring(0, 4) + "***********" + idNo.substring(idNo.length() - 4);
// loanUserDo.setIdNoShort(idNo);
// }
// loanChannelDo.setLoanUserDo(loanUserDo);
// session.setAttribute("loanChannelDo", loanChannelDo);
// setLoanCount(session);
// return "app/group/index";
// }
@RequestMapping(value = "/welcome", method = RequestMethod.GET)
public String goElendWelcome() {
return "app/group/index";
}
/**
* 个人信息填写页面
*
* @param userId
* @param loanId
* @param model
* @param session
* @return
* @author: huangzl
* @date: 2015年6月8日 19:13:42
*/
@RequestMapping(value = "/personalInfo", method = RequestMethod.GET)
public String saveLoanPerson(Model model, HttpSession session) {
return "app/group/person_update";
}
/**
* 个人信息填写页面
*
* @param userId
* @param loanPersonDo
* @param model
* @return
* @author: huangzl
* @date: 2015年6月8日 19:13:34
*/
@RequestMapping(value = "/personalInfo", method = RequestMethod.POST)
public String saveLoanPerson(@ModelAttribute LoanPersonDo loanPersonDo, @RequestParam String company,@RequestParam String dept,Model model, HttpSession session) {
// LoanChannelDo loanChannelDo = (LoanChannelDo) session.getAttribute("loanChannelDo");
// if (loanChannelDo != null) {
// loanPersonDo.setColorId(loanChannelDo.getSourceUserId());
// loanPersonDo.setCid(loanChannelDo.getLoanUserDo().getCid());
// loanPersonDo.setCname(loanChannelDo.getLoanUserDo().getCname());
// loanPersonDo.setCaddress(loanChannelDo.getLoanUserDo().getCaddress());
// }
loanPersonDo.setAge(IdCardUtils.getAgeByIdCard(loanPersonDo.getIdNo()));
// try {
// if (StringUtils.isNotBlank(loanPersonDo.getRealName())) {
// loanPersonDo.setRemark(URLDecoder.decode(loanPersonDo.getRealName(), "utf-8"));
// }
// } catch (UnsupportedEncodingException e) {
// e.printStackTrace();
// }
session.setAttribute("loanPersonDo", loanPersonDo);
return "app/group/loan_update";
}
/**
* 计算结算明细
*
* @param loanAmount
* @param annualRateArr
* 月利率 逗号隔开
* @param loanPeriod
* @param schemeIdArr
* 还款方式 逗号隔开
* @return
* @author: huangzl
* @date: 2015年6月8日 19:13:23
*/
@RequestMapping(value = "/calSettDetail", method = RequestMethod.GET)
@ResponseBody
public IResult<?> calSettDetail(Double loanAmount, Integer loanPeriod) {
IResult<Object> result = new ResultSupport<Object>();
if (loanAmount == null || CalculateUtils.le(loanAmount, 0d)) {
return new ResultSupport<Integer>(false, "借款金额有误!");
}
String loanAmoutString = new DecimalFormat("###0.#").format(loanAmount);
if (Long.valueOf(loanAmoutString) % 100 != 0) {
result.setSuccess(false);
result.setErrorMessage("请确认金额为100的整数倍!");
result.setResultCode("money");
return result;
}
if (loanAmoutString.length() > 11) {
result.setSuccess(false);
result.setErrorMessage("输入金额不能超过999亿!");
result.setResultCode("money");
return result;
}
if (loanPeriod == null || loanPeriod.intValue() <= 0) {
return new ResultSupport<Integer>(false, "借款期限有误!");
}
DecimalFormat df = new DecimalFormat("##0.00");
List<List<String>> repayAmountAllList = new ArrayList<List<String>>();
Long schemeId = 5l;
Double annualRate = 18.0;
List<SettDetailDo> settDetailDoList = settleCalculatorService.calSettDetail(loanAmount, annualRate, loanPeriod, schemeId);
List<String> repayAmountList = new ArrayList<String>();
System.out.println("===================================start repay scheme ============================================");
for (int k = 0; k < settDetailDoList.size(); k++) {
SettDetailDo settDetailDo = settDetailDoList.get(k);
System.out.println(settDetailDo);
Double repayAmount = CalculateUtils.add(CalculateUtils.add(CalculateUtils.add(settDetailDo.getPrincipal(), settDetailDo.getInterest()), settDetailDo.getServFee() == null ? 0 : settDetailDo.getServFee()), settDetailDo.getConsultFee() == null ? 0 : settDetailDo.getConsultFee());
repayAmountList.add(df.format(repayAmount));
}
System.out.println("===================================end repay scheme ============================================");
repayAmountAllList.add(repayAmountList);
result.setSuccess(true);
result.setModel(repayAmountAllList);
return result;
}
/**
* 计算授信金额
*
* @return
* @author: huangzlmf
* @date: 2015年4月21日 12:49:05
*/
@RequestMapping("/calCreditAmountGroup")
@ResponseBody
public Map<String, Object> calCreditAmountGroup(String income, String loanPeriod) {
logger.info("----Start:calCreditAmountGroup;income=" + income + ";loanPeriod=" + loanPeriod + ";");
Map<String, Object> map = new HashMap<String, Object>();
// 如果月收入或借款期限为空,则返回错误信息
if (StringUtils.isBlank(income) || StringUtils.isBlank(loanPeriod)) {
map.put("error", true);
map.put("message", "请求非法!");
logger.info("----End:calCreditAmountGroup;income=" + income + ";loanPeriod=" + loanPeriod + ";message=请求非法!");
return map;
}
double incomeD = Double.parseDouble(income);
int loanPeriodI = Integer.parseInt(loanPeriod);
loanPeriodI = (loanPeriodI < 6 ? 3 : 6);//
// 借款期限小于6个月,则按3个月计算,大于等于6个月,则按6个月计算
int index = 1;
if (CalculateUtils.le(incomeD, 3000)) {
index = 1;
} else if (CalculateUtils.le(incomeD, 5000)) {
index = 2;
} else if (CalculateUtils.le(incomeD, 8000)) {
index = 3;
} else if (CalculateUtils.le(incomeD, 10000)) {
index = 4;
} else if (CalculateUtils.gt(incomeD, 10000)) {
index = 5;
}
index = (loanPeriodI == 6 ? (index + 5) : index);
double creditAmount = CalculateUtils.round(CalculateUtils.mul(incomeD, creditRateMap.get(index)), 0);
// 借款期限为6个月,最高可借贷100000元
if (loanPeriodI == 6 && CalculateUtils.gt(creditAmount, 100000)) {
creditAmount = 100000;
}
// 借款期限为3个月,最高可借贷70000元
if (loanPeriodI == 3 && CalculateUtils.gt(creditAmount, 70000)) {
creditAmount = 70000;
}
map.put("error", false);
map.put("creditAmount", creditAmount);
logger.info("----End:calCreditAmountGroup;income=" + income + ";loanPeriod=" + loanPeriod + ";");
return map;
}
/**
* 借款申请页面
*
* @param loanDo
* @param model
* @return
* @author: huangzl
* @date: 2015年6月8日 19:13:12
*/
@RequestMapping(value = "/applyfor", method = RequestMethod.POST)
public String saveLoanDetail(@ModelAttribute LoanDo loanDo, @RequestParam String hasHouse, Model model, HttpServletRequest request, HttpSession session) {
if (loanDo.getApplyAmount() == null || CalculateUtils.le(loanDo.getApplyAmount(), 0d)) {
model.addAttribute("resultCode", "money");
model.addAttribute(WebConstants.MESSAGE_KEY, "借款金额有误!");
return "app/group/loan_update";
}
String loanAmoutString = new DecimalFormat("###0.#").format(loanDo.getApplyAmount());
if (Long.valueOf(loanAmoutString) % 100 != 0) {
model.addAttribute(WebConstants.MESSAGE_KEY, "请确认金额为100的整数倍!");
model.addAttribute("resultCode", "money");
return "app/group/loan_update";
}
if (loanAmoutString.length() > 11) {
model.addAttribute(WebConstants.MESSAGE_KEY, "输入金额不能超过999亿!");
model.addAttribute("resultCode", "money");
return "app/group/loan_update";
}
// 借款期限为3个月,最高可借贷70000元
if (loanDo.getLoanPeriod() == 3 && CalculateUtils.gt(loanDo.getApplyAmount(), 70000)) {
model.addAttribute(WebConstants.MESSAGE_KEY, "借款期限为3个月,最高可借贷70000元");
model.addAttribute("resultCode", "money");
return "app/group/loan_update";
}
// 借款期限为6个月,最高可借贷100000元
if (loanDo.getLoanPeriod() == 6 && CalculateUtils.gt(loanDo.getApplyAmount(), 100000)) {
model.addAttribute(WebConstants.MESSAGE_KEY, "借款期限为6个月,最高可借贷100000元");
model.addAttribute("resultCode", "money");
return "app/group/loan_update";
}
LoanPersonDo loanPersonDo = (LoanPersonDo) session.getAttribute("loanPersonDo");
loanPersonDo.setHasHouse(hasHouse);
String idNo=loanPersonDo.getIdNo();
loanPersonDo.setAge(IdCardUtils.getAgeByIdCard(idNo));
String sexString = IdCardUtils.getGenderByIdCard(idNo);
loanPersonDo.setSex(sexString.equals("M") ? LoanPersonDo.Sex.MALE : LoanPersonDo.Sex.FEMALE);
// AccountUserDo user = (AccountUserDo) session.getAttribute("user");
// if (null==user || null==user.getId()) {
String mobile =loanPersonDo.getMobile();
String realName=loanPersonDo.getRealName();
IResult<AccountUserDo> result= userService.register(-1, "", mobile, DigestUtils.md5Hex(mobile + WebConstants.PASS_KEY), 100,-1);
AccountUserDo user =result.getModel();
//session.setAttribute("user", user );
if (result.isSuccess()) {
userService.updatePerson(user, realName, idNo, mobile);
}
// } else {
loanDo.setUserId(user.getId());
// }
loanDo.setLoanType(1);
loanDo.setLoanUsage("集团贷");
loanDo.setSchemeId(5l);
loanDo.setAnnualRate(18.0);
loanDo.setLoanStatus(LoanStatus.PENDING);
// 初始化 产品code 订单号
loanDo.setProductCode(LoanProductDo.JTD);
loanDo.setOrderCode(commonService.generateOrderCode(LoanProductDo.JTD));
//渠道
loanDo.setChannelId(1L);//彩生活
JobDo jobDo = loanPersonDo.getJobDo();
jobDo.setCompanyName(loanPersonDo.getRemark());
jobDo.setPosition("3");
jobDo.setJobYear(0);
jobDo.setCompanyPhone("未知");
jobDo.setJobType(JobType.SALARYMAN);
// loanPersonDo.setJobDo(jobDo);
loanDo.setLoanPersonDo(loanPersonDo);
Long res = loanApplyService.saveLoan(loanDo);
if (res != null && res.longValue() > 0) {
loanPersonDo.setLoanId(res);
model.addAttribute("loanPersonDo", loanPersonDo);
// 发送短信通知
sendSMS(model, session);
return "redirect:/app/group/showDocumentList";
} else {
model.addAttribute(WebConstants.MESSAGE_KEY, "系统异常,请稍后再试!");
return "app/group/loan_update";
}
}
/**
* 发送短信
*/
private void sendSMS(Model model, HttpSession session){
LoanPersonDo loanPersonDo = (LoanPersonDo) session.getAttribute("loanPersonDo");
LoanDo loanDo = loanApplyService.getByLoanId(loanPersonDo.getLoanId());
//给贷 款人的短信内容
String smsStr="尊敬的集团贷 用户,您申请的贷 款信息已经提交,集团贷 将尽快与您取得联系,谢谢您的配合。如有需要,请联系客服:4008303737";
NotifyDo nd = new LoanSMSNotifyDo(smsStr,loanPersonDo.getMobile(),"mail_template_default.ftl");
smsNotifyService.send(nd);
//hehenian
smsStr="新的集团贷 :贷 款人:"+loanPersonDo.getRealName()+",手机号码:"+loanPersonDo.getMobile()+",申请贷 款金额:"+loanDo.getApplyAmountString()+"元";
nd = new LoanSMSNotifyDo(smsStr,"13823501900,15019238715","mail_template_default.ftl");
smsNotifyService.send(nd);
model.addAttribute("applyDo", loanDo);
}
/**
* 借款申请成功页面
*
* @param loanId
* @param model
* @return
* @author: huangzl
* @date: 2015年6月8日 19:12:58
*/
@RequestMapping(value = "/showDocumentList", method = RequestMethod.GET)
public String showDocumentList(HttpServletRequest request) {
LoanPersonDo loanPersonDo = (LoanPersonDo) request.getSession().getAttribute("loanPersonDo");
request.setAttribute("loanPersonDo", loanPersonDo);
return "app/group/success";
}
public static void setLoanCount(HttpSession session) {
int ud = 0;
try {
ud = Integer.parseInt((String) session.getServletContext().getAttribute("lcUpdateTime"));
} catch (Exception e) {
}
if (ud == 0) {
session.getServletContext().setAttribute("loanCount", 263);
session.getServletContext().setAttribute("loanCountAmt", 3970);
session.getServletContext().setAttribute("lcUpdateTime", DateUtil.YYYYMMDD.format(new Date()));
} else {
int nd = Integer.parseInt(DateUtil.YYYYMMDD.format(new Date()));
int loanCount = Integer.parseInt(session.getServletContext().getAttribute("loanCount").toString());
int loanCountAmt = Integer.parseInt(session.getServletContext().getAttribute("loanCountAmt").toString());
if (ud < nd) {
int temp = (int) (Math.random() * 10);
session.getServletContext().setAttribute("loanCountAmt", loanCountAmt + temp * 2);
loanCount = loanCount + temp;
}
session.getServletContext().setAttribute("loanCount", loanCount);
session.getServletContext().setAttribute("lcUpdateTime", nd);
}
}
private static Map<Integer, Double> creditRateMap = new HashMap<Integer, Double>();
static {
// 借款期限3个月授信比例
creditRateMap.put(1, 1.5);
creditRateMap.put(2, 2.0);
creditRateMap.put(3, 2.5);
creditRateMap.put(4, 3.0);
creditRateMap.put(5, 3.5);
// 借款期限6个月授信比例
creditRateMap.put(6, 3.0);
creditRateMap.put(7, 3.5);
creditRateMap.put(8, 4.0);
creditRateMap.put(9, 4.5);
creditRateMap.put(10, 5.0);
}
}