package com.sp2p.action.admin;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.shove.Convert;
import com.shove.data.DataException;
import com.shove.util.SqlInfusion;
import com.sp2p.action.front.BaseFrontAction;
import com.sp2p.constants.IConstants;
import com.sp2p.entity.Admin;
import com.sp2p.service.AssignmentDebtService;
import com.sp2p.service.OperationLogService;
import com.sp2p.util.DateUtil;
/**
* 债权转让
*/
public class DebtManageAction extends BaseFrontAction {
public static Log log = LogFactory.getLog(DebtManageAction.class);
private static final long serialVersionUID = 1L;
private AssignmentDebtService assignmentDebtService;
/**
* 申请中的债权转让初始化
* @return
*/
public String queryApplyDebtInit(){
return SUCCESS;
}
/**
* 申请中的债权转让
* @throws DataException
*/
public String queryApplyDebtInfo() throws DataException{
String debtStatus = "1";
String borrowerName = SqlInfusion.FilteSqlInfusion(paramMap.get("borrowerName"));
String alienatorName = SqlInfusion.FilteSqlInfusion(paramMap.get("alienatorName"));
try {
assignmentDebtService.queryApplyDebt(borrowerName,alienatorName,debtStatus,pageBean);
Map<String, String> repaymentMap = assignmentDebtService.queryApplyDebtDetail();
request().setAttribute("repaymentMap",repaymentMap);
//统计当前页应收款
double debtSumm = 0;
List<Map<String,Object>> payList = pageBean.getPage();
if (payList!=null){
for (Map<String, Object> map : payList) {
debtSumm = debtSumm +Convert.strToDouble(map.get("debtSum")+"",0);
}
}
DecimalFormat fmt=new DecimalFormat("0.00");
request().setAttribute("debtSumm", fmt.format(debtSumm));
} catch (SQLException e) {
e.printStackTrace();
}
int pageNum = (int) (pageBean.getPageNum() - 1)* pageBean.getPageSize();
request().setAttribute("pageNum", pageNum);
return SUCCESS;
}
/**
* 债权转让审核
* @return
*/
public String auditDebt(){
String auditStatus = SqlInfusion.FilteSqlInfusion(paramMap.get("auditStatus"));
long id = Convert.strToLong(paramMap.get("id"), -1);
Map<String,String> map = new HashMap<String, String>();
map.put("publishTime", DateUtil.dateToString(new Date()));
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
if("1".equals(auditStatus)){
map.put("debtStatus", "2");
}else{
map.put("debtStatus", "6");
}
try {
assignmentDebtService.updateAssignmentDebt(id,1, map);
if("1".equals(auditStatus)){
operationLogService.addOperationLog("t_assignment_debt", admin.getUserName(), IConstants.UPDATE, admin.getLastIP(), 0, "债权转让审核成功", 2);
}else{
operationLogService.addOperationLog("t_assignment_debt", admin.getUserName(), IConstants.UPDATE, admin.getLastIP(), 0, "债权转让审核失败", 2);
}
} catch (SQLException e) {
log.error(e);
e.printStackTrace();
}
return SUCCESS;
}
/**
* 跳转到审核页面
* @return
*/
public String queryApplyDebtAuditDetail(){
long id = Convert.strToLong(request("id"), -1);
try {
paramMap.putAll(assignmentDebtService.getAssignmentDebt(id));
long borrowId = Convert.strToLong(paramMap.get("borrowId"), -1);
long userId = Convert.strToLong(paramMap.get("alienatorId"), -1);
long investId = Convert.strToLong(paramMap.get("investId"), -1);
List<Map<String,Object>> list = assignmentDebtService.queryDebtBacking(borrowId,userId,investId);
request().setAttribute("list", list);
} catch (SQLException e) {
log.error(e);
e.printStackTrace();
} catch (DataException e) {
log.error(e);
e.printStackTrace();
}
return SUCCESS;
}
/**
* 查询正在转让中的债权初始化
* @return
*/
public String queryAuctingAssignmentDebtInit(){
return SUCCESS;
}
/**
* 查询正在转让中的债权
* @return
*/
@SuppressWarnings("unchecked")
public String queryAuctingAssignmentDebtInfo(){
String debtStatus = "2";
String borrowerName = SqlInfusion.FilteSqlInfusion(paramMap.get("borrowerName"));
String alienatorName = SqlInfusion.FilteSqlInfusion(paramMap.get("alienatorName"));
try {
assignmentDebtService.queryAssignmentDebt(borrowerName,alienatorName,debtStatus,pageBean);
List<Map<String,Object>> list = pageBean.getPage();
if(list != null){
Date nowDate = new Date();
for(Map<String,Object> map : list){
Date date = (Date)map.get("remainAuctionTime");
map.put("remainDays", DateUtil.remainDateToString(nowDate, date));
}
}
} catch (SQLException e) {
e.printStackTrace();
}
int pageNum = (int) (pageBean.getPageNum() - 1)* pageBean.getPageSize();
request().setAttribute("pageNum", pageNum);
return SUCCESS;
}
/**
* 查询正在转让中的债权初始化
* @return
*/
public String querySuccessAssignmentDebtInit(){
return SUCCESS;
}
/**
* 查询转让成功的债权
* @return
* @throws DataException
*/
public String querySuccessAssignmentDebtInfo() throws DataException{
String debtStatus = "3";
String borrowerName = SqlInfusion.FilteSqlInfusion(paramMap.get("borrowerName"));
String alienatorName = SqlInfusion.FilteSqlInfusion(paramMap.get("alienatorName"));
try {
assignmentDebtService.queryAssignmentDebt(borrowerName,alienatorName,debtStatus,pageBean);
Map<String, String> repaymentMap = assignmentDebtService.queryApplySuccessDebtDetail();
request().setAttribute("repaymentMap",repaymentMap);
//统计当前页应收款
double debtSumm = 0;
List<Map<String,Object>> payList = pageBean.getPage();
if (payList!=null){
for (Map<String, Object> map : payList) {
debtSumm = debtSumm +Convert.strToDouble(map.get("debtSum")+"",0);
}
}
DecimalFormat fmt=new DecimalFormat("0.00");
request().setAttribute("debtSumm", fmt.format(debtSumm));
} catch (SQLException e) {
e.printStackTrace();
}
int pageNum = (int) (pageBean.getPageNum() - 1)* pageBean.getPageSize();
request().setAttribute("pageNum", pageNum);
return SUCCESS;
}
/**
* 查询失败的债权初始化
* @return
*/
public String queryFailDebtInit(){
return SUCCESS;
}
/**
* 查询失败的债权
* @return
* @throws DataException
*/
public String queryFailDebtInfo() throws DataException{
String debtStatus = "4,5,6,7";
String borrowerName = SqlInfusion.FilteSqlInfusion(paramMap.get("borrowerName"));
String alienatorName = SqlInfusion.FilteSqlInfusion(paramMap.get("alienatorName"));
try {
assignmentDebtService.queryAssignmentDebt(borrowerName,alienatorName,debtStatus,pageBean);
Map<String, String> repaymentMap = assignmentDebtService.queryApplyFailDebtDetail();
request().setAttribute("repaymentMap",repaymentMap);
//统计当前页应收款
double debtSumm = 0;
List<Map<String,Object>> payList = pageBean.getPage();
if (payList!=null){
for (Map<String, Object> map : payList) {
debtSumm = debtSumm +Convert.strToDouble(map.get("debtSum")+"",0);
}
}
DecimalFormat fmt=new DecimalFormat("0.00");
request().setAttribute("debtSumm", fmt.format(debtSumm));
} catch (SQLException e) {
e.printStackTrace();
}
int pageNum = (int) (pageBean.getPageNum() - 1)* pageBean.getPageSize();
request().setAttribute("pageNum", pageNum);
return SUCCESS;
}
/**
* 结束竞拍
* @return
*/
public String debtEndSuccess(){
long id = Convert.strToLong(request("id"), -1);
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
try {
assignmentDebtService.auctingDebtSuccess(id,admin.getId(),2); //区分前后台用户
} catch (SQLException e) {
log.error(e);
e.printStackTrace();
}
return SUCCESS;
}
/**
* 撤回债权转让
* @return
*/
public String cancelManageDebt(){
long id = Convert.strToLong(request("id"), -1);
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
try {
assignmentDebtService.cancelAssignmentDebt(id, 5,admin.getId(),2); //区分前后台用户
} catch (SQLException e) {
log.error(e);
e.printStackTrace();
}
return SUCCESS;
}
/**
* 债权转让详情
* @return
*/
public String queryManageDebtDetail(){
long id = Convert.strToLong(request("id"), -1);
try {
Map<String, String> map = assignmentDebtService.getAssignmentDebt(id);
if(map==null)
return SUCCESS;
paramMap.putAll(map);
} catch (SQLException e) {
log.error(e);
e.printStackTrace();
} catch (DataException e) {
log.error(e);
e.printStackTrace();
}
return SUCCESS;
}
public void setAssignmentDebtService(
AssignmentDebtService assignmentDebtService) {
this.assignmentDebtService = assignmentDebtService;
}
public AssignmentDebtService getAssignmentDebtService() {
return assignmentDebtService;
}
}