/**
* @auther liminglmf
* @date 2015年4月24日
*/
package com.hehenian.manager.actions.loan;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.hehenian.biz.common.base.dataobject.PageDo;
import com.hehenian.biz.common.loan.ILoanProductService;
import com.hehenian.biz.common.loan.ILoanProvidedService;
import com.hehenian.biz.common.loan.dataobject.LoanFeeRuleDo;
import com.hehenian.biz.common.loan.dataobject.LoanProductDo;
import com.hehenian.biz.common.loan.dataobject.LoanProvidedDo;
import com.hehenian.biz.common.loan.dataobject.LoanSettSchemeDo;
import com.hehenian.manager.actions.BaseAction;
import com.hehenian.manager.actions.common.Maps;
import com.hehenian.manager.actions.common.PageDoUtil;
import com.hehenian.manager.commons.NewPagination;
import com.hehenian.manager.modules.sys.model.UserInfos;
/**
* @author liminglmf
*
*/
@Controller
@RequestMapping("/loan/product/*")
public class LoanProductController extends BaseAction{
@Autowired
private ILoanProductService loanProductService;
@Autowired
private ILoanProvidedService loanProvidedService;
Map<Object, Object> map_success = Maps.mapByAarray(EXECUTE_STATUS,EXECUTE_SUCCESS);
Map<Object, Object> map_failure = Maps.mapByAarray(EXECUTE_STATUS,EXECUTE_FAILURE);
@RequestMapping("index")
public String menuProd(ModelMap modelMap){
return "/loan/loanProductIndex";
}
/**
* 产品列表
* @param pagination
* @param response
*/
@RequestMapping("list")
@ResponseBody
public void listDatas(NewPagination<LoanProductDo> pagination,
HttpServletResponse response){
PageDo<LoanProductDo> page = PageDoUtil.getPage(pagination);
String name = getString("name");
String code = getString("code");
String guarantee = getString("guarantee");
String mortgage = getString("mortgage");
String retaLock = getString("retaLock");
String status = getString("status");
Map<String,Object> param = new HashMap<String,Object>();
if(StringUtils.isNotBlank(name)){
param.put("name", name);
}
if(StringUtils.isNotBlank(code)){
param.put("code", code);
}
if(StringUtils.isNotBlank(mortgage)){
param.put("mortgage", mortgage);
}
if(StringUtils.isNotBlank(guarantee)){
param.put("guarantee", guarantee);
}
if(StringUtils.isNotBlank(retaLock)){
param.put("retaLock", retaLock);
}
if(StringUtils.isNotBlank(status)){
param.put("status", status);
}
page = loanProductService.getLoanProductPage(param, page);
pagination = PageDoUtil.getPageValue(pagination, page);
outPrint(response, JSONObject.fromObject(pagination, getDefaultJsonConfig()));
}
/**
* 跳转编辑页面
* @auther liminglmf
* @date 2015年5月12日
* @param modelMap
* @param id
* @return
*/
@RequestMapping("toedit")
public String toedit(ModelMap modelMap,Long id){
LoanProductDo loanProductDo = null;
if(id != null){
loanProductDo = loanProductService.getProdById(id);
}else{
loanProductDo = new LoanProductDo();
loanProductDo.setGuarantee("0");
loanProductDo.setMortgage("0");
loanProductDo.setRetaLock("1");
loanProductDo.setStatus("T");
}
modelMap.addAttribute("prodDo", loanProductDo);
return "/loan/editLoanProduct";
}
/**
* 保存产品信息
* @auther liminglmf
* @date 2015年5月12日
* @param loanProductDo
* @param response
*/
@RequestMapping("/save")
@ResponseBody
public void addLoanProduct(LoanProductDo loanProductDo,HttpServletResponse response){
int i = 0;
if(loanProductDo.getId() !=null && !"".equals(loanProductDo.getId())){
i = loanProductService.updateLoanProductDo(loanProductDo);
}else{
i = loanProductService.addLoanProductDo(loanProductDo);
}
if(i <= 0){
outPrint(response, JSONSerializer.toJSON(map_failure));
}
//return JSONSerializer.toJSON(map);
outPrint(response, JSONSerializer.toJSON(map_success));
}
/**
* 删除产品信息
* @auther liminglmf
* @date 2015年5月12日
* @param response
* @param ids
*/
@RequestMapping("/delete")
@ResponseBody
public void deleteLoanProduct(HttpServletResponse response,String ids){
int i = 0;
if(StringUtils.isNotBlank(ids)){
i = loanProductService.deleteLoanProductDo(ids);
}else{
outPrint(response, JSONSerializer.toJSON(map_failure));
}
if(i <= 0){
outPrint(response, JSONSerializer.toJSON(map_failure));
}
outPrint(response, JSONSerializer.toJSON(map_success));
}
/**
* 查看产品明细
* @auther liminglmf
* @date 2015年5月12日
* @param id
* @param model
* @return
*/
@RequestMapping("/detail")
public String prodDetail(Long id,ModelMap modelMap){
LoanProductDo loanProductDo = loanProductService.getProdById(id);
modelMap.addAttribute("prodDo", loanProductDo);
Map<String, Object> param = new HashMap<String, Object>();
param.put("prodId", id);
List<LoanProvidedDo> provList = loanProvidedService.getLoanProvidList(param);
if(provList != null && provList.size() >0){
modelMap.addAttribute("provDoBolean", "1");
modelMap.addAttribute("provDo", provList.get(0));
}else{
modelMap.addAttribute("provDoBolean", "0");
}
List<LoanSettSchemeDo> listSett = loanProductService.queryByProdId(id);
if(listSett != null && listSett.size() >0){
modelMap.addAttribute("settDoBolean", "1");
modelMap.addAttribute("settDoList", listSett);
}else{
modelMap.addAttribute("settDoBolean", "0");
}
return "loan/loanProdDetail";
}
/************************************************产品前提**********begin******************************************************/
@RequestMapping("/prov/toedit")
public String toAddProv(Long prodId,ModelMap modelMap){
int count = loanProvidedService.selectCountByProdId(prodId);
LoanProvidedDo loanProvidedDo = null;
if(count > 0){
Map<String, Object> param = new HashMap<String, Object>();
param.put("prodId", prodId);
List<LoanProvidedDo> provList = loanProvidedService.getLoanProvidList(param);
loanProvidedDo=provList.get(0);
}else{
loanProvidedDo = new LoanProvidedDo();
loanProvidedDo.setProdId(prodId);
loanProvidedDo.setStatus("T");
loanProvidedDo.setIfpunch("1");
}
modelMap.addAttribute("provDo", loanProvidedDo);
return "loan/editLoanProvid";
}
@RequestMapping("/prov/save")
@ResponseBody
public void addLoanProvid(LoanProvidedDo loanProvidedDo,HttpServletResponse response){
int i = 0;
if(loanProvidedDo.getId() != null && !"".equals(loanProvidedDo.getId())){
i = loanProvidedService.updateLoanProvidedDo(loanProvidedDo);
}else{
if(loanProvidedDo.getProdId() == null){
outPrint(response, JSONSerializer.toJSON(map_failure));
}
i = loanProvidedService.addLoanProvidedDo(loanProvidedDo);
}
if(i <= 0){
outPrint(response, JSONSerializer.toJSON(map_failure));
}
outPrint(response, JSONSerializer.toJSON(map_success));
}
/************************************************产品前提******end**********************************************************/
/************************************************产品方案**********************begin******************************************/
@RequestMapping("/sett/toadd")
public String toAddSett(Long prodId,ModelMap modelMap){
LoanSettSchemeDo loanSettSchemeDo = new LoanSettSchemeDo();
loanSettSchemeDo.setProdId(prodId);
loanSettSchemeDo.setStatus("P");
modelMap.addAttribute("settDo", loanSettSchemeDo);
return "loan/editLoanSett";
}
@RequestMapping("/sett/toedit")
public String toEditSett(Long id,ModelMap modelMap){
LoanSettSchemeDo loanSettSchemeDo = loanProductService.getLoanSettById(id);
modelMap.addAttribute("settDo", loanSettSchemeDo);
return "loan/editLoanSett";
}
@RequestMapping("/sett/save")
@ResponseBody
public void addLoanSett(LoanSettSchemeDo loanSettSchemeDo,HttpServletResponse response){
int i = 0;
UserInfos userDetails = (UserInfos) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if(loanSettSchemeDo.getId() !=null && !"".equals(loanSettSchemeDo.getId())){
loanSettSchemeDo.setUpdateUserId(Long.parseLong(userDetails.getUserId()+""));
i = loanProductService.updateLoanSettSchemeDo(loanSettSchemeDo);
}else{
loanSettSchemeDo.setCreateUserId(Long.parseLong(userDetails.getUserId()+""));
loanSettSchemeDo.setUpdateUserId(Long.parseLong(userDetails.getUserId()+""));
i = loanProductService.addLoanSettSchemeDo(loanSettSchemeDo);
}
if(i <=0){
outPrint(response, JSONSerializer.toJSON(map_failure));
}
outPrint(response, JSONSerializer.toJSON(map_success));
}
@RequestMapping("/sett/index")
public String menuProdSett(ModelMap modelMap){
return "/loan/loanSettIndex";
}
@RequestMapping("/sett/list")
@ResponseBody
public void listSett(NewPagination<LoanSettSchemeDo> pagination,
HttpServletResponse response){
PageDo<LoanSettSchemeDo> page = PageDoUtil.getPage(pagination);
String strProdId = getString("prodId");
String status = getString("status");
Map<String,Object> param = new HashMap<String,Object>();
if(StringUtils.isNotBlank(strProdId) && !"0".equals(strProdId)){
param.put("prodId", Long.parseLong(strProdId));
}
if(StringUtils.isNotBlank(status)){
param.put("status", Long.parseLong(status));
}
page = loanProductService.getLoanSettPage(param, page);
pagination = PageDoUtil.getPageValue(pagination, page);
outPrint(response, JSONObject.fromObject(pagination, getDefaultJsonConfig()));
}
@RequestMapping("/sett/delete")
@ResponseBody
public void deleteLoanSett(String ids,HttpServletResponse response){
if(StringUtils.isNotBlank(ids)){
int i = loanProductService.deleteLoanSettDo(ids);
if(i <= 0){
outPrint(response, JSONSerializer.toJSON(map_failure));
}
outPrint(response, JSONSerializer.toJSON(map_success));
}else{
outPrint(response, JSONSerializer.toJSON(map_failure));
}
}
/************************************************产品方案**********************end******************************************/
/************************************************产品方案规则****************begin************************************************/
@RequestMapping("/fee/toadd")
public String toAddFee(Long settId,ModelMap modelMap){
LoanFeeRuleDo loanFeeRuleDo = new LoanFeeRuleDo();
loanFeeRuleDo.setSchemeId(settId);
loanFeeRuleDo.setIsInclude("F");
loanFeeRuleDo.setIsInitRepayPlanUse("F");
modelMap.addAttribute("feeDo", loanFeeRuleDo);
return "loan/editLoanFee";
}
@RequestMapping("/fee/toedit")
public String toeditFee(Long id,ModelMap modelMap){
LoanFeeRuleDo loanFeeRuleDo = loanProductService.getLoanFeeById(id);
modelMap.addAttribute("feeDo", loanFeeRuleDo);
return "loan/editLoanFee";
}
@RequestMapping("/fee/save")
@ResponseBody
public void addLoanFee(LoanFeeRuleDo loanFeeRuleDo,HttpServletResponse response){
int i = 0;
UserInfos userDetails = (UserInfos) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if(loanFeeRuleDo.getId() !=null && !"".equals(loanFeeRuleDo.getId())){
loanFeeRuleDo.setUpdateUserId(Long.parseLong(userDetails.getUserId()+""));
i = loanProductService.updateLoanFeeDo(loanFeeRuleDo);
}else{
loanFeeRuleDo.setUpdateUserId(Long.parseLong(userDetails.getUserId()+""));
loanFeeRuleDo.setCreateUserId(Long.parseLong(userDetails.getUserId()+""));
i = loanProductService.addLoanFeeDo(loanFeeRuleDo);
}
if(i <= 0){
outPrint(response, JSONSerializer.toJSON(map_failure));
}
outPrint(response, JSONSerializer.toJSON(map_success));
}
@RequestMapping("/fee/delete")
@ResponseBody
public void deleteLoanFee(String ids,HttpServletResponse response){
if(StringUtils.isNotBlank(ids)){
int i = loanProductService.deleteLoanFeeDo(ids);
if(i <= 0){
outPrint(response, JSONSerializer.toJSON(map_failure));
}
outPrint(response, JSONSerializer.toJSON(map_success));
}else{
outPrint(response, JSONSerializer.toJSON(map_failure));
}
}
/************************************************产品方案规则****************end************************************************/
/* */
/*
*//************************************************产品前提****************************************************************//*
@RequestMapping("/prov/delete")
@ResponseBody
public ModelAndView deleteLoanProvided(String ids){
if(StringUtils.isNotBlank(ids)){
int i = loanProvidedService.deleteLoanProvidedDo(ids);
if(i>0){
return this.ajaxSuccessAndRefresh("操作成功");
}else{
return this.ajaxFailure("操作失败");
}
}else{
return this.ajaxFailure("请选择需要操作的数据");
}
}
*//************************************************产品方案****************************************************************//*
@RequestMapping("/sett/list/{prodId}")
public String loanSettList(@PathVariable("prodId") String prodId,Model model){
PageDo<LoanSettSchemeDo> page = getPage();
Map<String,Object> param = new HashMap<String,Object>();
param.put("prodId", Long.parseLong(prodId));
page = loanProductService.getLoanSettPage(param, page);
model.addAttribute("pageDo", page);
return "loan/loanSettList";
}
@RequestMapping("/sett/delete")
@ResponseBody
public ModelAndView deleteLoanSett(String ids){
if(StringUtils.isNotBlank(ids)){
int i = loanProductService.deleteLoanSettDo(ids);
if(i>0){
return this.ajaxSuccessAndRefresh("操作成功");
}else{
return this.ajaxFailure("操作失败");
}
}else{
return this.ajaxFailure("请选择需要操作的数据");
}
}
*//************************************************产品方案规则****************************************************************//*
@RequestMapping("/fee/list/{settId}")
public String loanFeeList(@PathVariable("settId") String settId,Model model){
PageDo<LoanFeeRuleDo> page = getPage();
Map<String,Object> param = new HashMap<String,Object>();
param.put("settId", Long.parseLong(settId));
page = loanProductService.getLoanFeePage(param, page);
model.addAttribute("pageDo", page);
return "loan/loanFeeList";
}
@RequestMapping("/fee/delete")
@ResponseBody
public ModelAndView deleteLoanFee(String ids){
if(StringUtils.isNotBlank(ids)){
int i = loanProductService.deleteLoanFeeDo(ids);
if(i>0){
return this.ajaxSuccessAndRefresh("操作成功");
}else{
return this.ajaxFailure("操作失败");
}
}else{
return this.ajaxFailure("请选择需要操作的数据");
}
}*/
}