package com.sp2p.action.app; import java.io.IOException; import java.sql.SQLException; import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.shove.Convert; import com.shove.data.DataException; import com.shove.web.util.JSONUtils; import com.sp2p.service.AssignmentDebtService; import com.sp2p.service.AuctionDebtService; import com.sp2p.service.SelectedService; import com.sp2p.util.DateUtil; /** * 债权转让 */ public class HomeDebtAppAction extends BaseAppAction { public static Log log = LogFactory.getLog(HomeDebtAppAction.class); private static final long serialVersionUID = 1L; private AssignmentDebtService assignmentDebtService; private AuctionDebtService auctionDebtService; private SelectedService selectedService; private List<Map<String, Object>> auctionDaysList; /** * 可以转让的债权 * * @return * @throws IOException */ public String queryCanAssignmentDebt() throws IOException { Map<String, Object> jsonMap = new HashMap<String, Object>(); try { Map<String, String> infoMap = this.getAppInfoMap(); String borrowTitle = infoMap.get("borrowTitle"); String borrowerName = infoMap.get("borrowerName"); pageBean.setPageNum(infoMap.get("curPage")); long userId = this.getUserId(); try { assignmentDebtService.queryCanAssignmentDebt(userId, borrowTitle, borrowerName, pageBean); } catch (SQLException e) { log.error(e); e.printStackTrace(); } jsonMap.put("pageBean", pageBean); jsonMap.put("error", "-1"); jsonMap.put("msg", "查询成功"); JSONUtils.printObject(jsonMap); } catch (IOException e) { paramMap.put("error", "1"); paramMap.put("msg", "未知异常"); JSONUtils.printObject(paramMap); log.error(e); } return null; } /** * 结束竞拍 * @return * @throws IOException */ public String auctingDebtEnd() throws IOException{ Map<String, Object> jsonMap = new HashMap<String, Object>(); try { Map<String, String> infoMap = this.getAppInfoMap(); Map<String, String> authMap = this.getAppAuthMap(); long userId = Convert.strToLong(authMap.get("uid"), -1); String id = infoMap.get("debtId"); if(StringUtils.isBlank(id)){ jsonMap.put("error", "2"); jsonMap.put("msg", "债权ID不能为空"); JSONUtils.printObject(jsonMap); return null; } long debtId = Convert.strToLong(id, -1); assignmentDebtService.auctingDebtSuccess(debtId,userId,1); jsonMap.put("error", "-1"); jsonMap.put("msg", "成功"); JSONUtils.printObject(jsonMap); } catch (Exception e) { paramMap.put("error", "1"); paramMap.put("msg", "未知异常"); JSONUtils.printObject(paramMap); log.error(e); } return null; } /** * 查询竞拍中的债权 * * @return * @throws IOException */ public String queryAuctingDebt() throws IOException { Map<String, Object> jsonMap = new HashMap<String, Object>(); long userId = this.getUserId(); try { Map<String, String> infoMap = this.getAppInfoMap(); String borrowTitle = infoMap.get("borrowTitle"); String borrowerName = infoMap.get("borrowerName"); pageBean.setPageNum(infoMap.get("curPage")); assignmentDebtService.queryAuctingDebt(userId, borrowTitle, borrowerName, "2", 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)); } } jsonMap.put("pageBean", pageBean); jsonMap.put("error", "-1"); jsonMap.put("msg", "成功"); JSONUtils.printObject(jsonMap); } catch (Exception e) { paramMap.put("error", "1"); paramMap.put("msg", "未知异常"); JSONUtils.printObject(paramMap); log.error(e); } return null; } /** * 查询竞拍结束的债权 * * @return * @throws IOException */ public String queryAuctedDebt() throws IOException { Map<String, Object> jsonMap = new HashMap<String, Object>(); long userId = this.getUserId(); try { Map<String, String> infoMap = this.getAppInfoMap(); String borrowTitle = infoMap.get("borrowTitle"); String borrowerName = infoMap.get("borrowerName"); pageBean.setPageNum(infoMap.get("curPage")); assignmentDebtService.queryAuctingDebt(userId, borrowTitle, borrowerName, "3", pageBean); jsonMap.put("pageBean", pageBean); jsonMap.put("error", "-1"); jsonMap.put("msg", "成功"); JSONUtils.printObject(jsonMap); } catch (Exception e) { paramMap.put("error", "1"); paramMap.put("msg", "未知异常"); JSONUtils.printObject(paramMap); log.error(e); } return null; } /** * 添加债权转让 * * @return * @throws IOException */ public String addAssignmentDebt() throws IOException { Map<String, Object> jsonMap = new HashMap<String, Object>(); try { Map<String, String> infoMap = this.getAppInfoMap(); long userId = this.getUserId(); double auctionBasePrice = Convert.strToDouble(infoMap.get("auctionBasePrice"), -1); double debtSum = Convert.strToDouble(infoMap.get("debtSum"), -1); double lowerPrice = debtSum*0.5; if(auctionBasePrice < lowerPrice || auctionBasePrice > debtSum){ NumberFormat nf= new DecimalFormat("0.00"); // this.addFieldError("paramMap.auctionBasePrice", "竞拍底价范围为"+nf.format(lowerPrice)+"到"+debtSum+"元之间"); jsonMap.put("error", "1"); jsonMap.put("msg", "竞拍底价范围为"+nf.format(lowerPrice)+"到"+debtSum+"元之间"); JSONUtils.printObject(jsonMap); return null; } String investId = infoMap.get("investId"); if(StringUtils.isBlank(investId)){ jsonMap.put("error", "2"); jsonMap.put("msg", "投资ID不能为空"); JSONUtils.printObject(jsonMap); return null; } paramMap.put("investId", investId); paramMap.put("alienatorId", userId + ""); paramMap.put("applyTime", DateUtil.dateToString(new Date())); long reslut = -1; reslut = assignmentDebtService.addAssignmentDebt(paramMap); if (reslut != -1) { jsonMap.put("error", "-1"); jsonMap.put("msg", "成功"); JSONUtils.printObject(jsonMap); } else { jsonMap.put("error", "3"); jsonMap.put("msg", "失败"); JSONUtils.printObject(jsonMap); } } catch (Exception e) { paramMap.put("error", "4"); paramMap.put("msg", "未知异常"); JSONUtils.printObject(paramMap); log.error(e); } return null; } /** * 查询失败的债权 * * @return * @throws IOException */ public String queryAuctionFailDebt() throws IOException { Map<String, Object> jsonMap = new HashMap<String, Object>(); long userId = this.getUserId(); try { Map<String, String> infoMap = this.getAppInfoMap(); String borrowTitle = infoMap.get("borrowTitle"); String borrowerName = infoMap.get("borrowerName"); pageBean.setPageNum(infoMap.get("curPage")); assignmentDebtService.queryAuctingDebt(userId, borrowTitle, borrowerName, "4,5,6,7", pageBean); jsonMap.put("pageBean", pageBean); jsonMap.put("error", "-1"); jsonMap.put("msg", "成功"); JSONUtils.printObject(jsonMap); } catch (Exception e) { paramMap.put("error", "1"); paramMap.put("msg", "未知异常"); JSONUtils.printObject(paramMap); log.error(e); } return null; } /** * 取消申请债权转让 * * @return * @throws IOException */ public String cancelApplyDebt() throws IOException { Map<String, Object> jsonMap = new HashMap<String, Object>(); try { Map<String, String> infoMap = this.getAppInfoMap(); Map<String, String> authMap = this.getAppAuthMap(); long userId = Convert.strToLong(authMap.get("uid"), -1); long debtId = Convert.strToLong(infoMap.get("debtId"), -1); assignmentDebtService.cancelAssignmentDebt(debtId,5,userId,1); jsonMap.put("error", "-1"); jsonMap.put("msg", "成功"); JSONUtils.printObject(jsonMap); } catch (Exception e) { paramMap.put("error", "1"); paramMap.put("msg", "未知异常"); JSONUtils.printObject(paramMap); log.error(e); } return null; } /** * 参与竞拍的债权 * * @return * @throws IOException */ public String queryBuyingDebt() throws IOException { Map<String, Object> jsonMap = new HashMap<String, Object>(); long userId = this.getUserId(); try { Map<String, String> infoMap = this.getAppInfoMap(); String borrowTitle = infoMap.get("borrowTitle"); String startTime = infoMap.get("startTime"); String endTime = infoMap.get("endTime"); pageBean.setPageNum(infoMap.get("curPage")); auctionDebtService.queryAuctionDebt(borrowTitle, startTime, endTime, userId, "", 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)); } } jsonMap.put("pageBean", pageBean); jsonMap.put("error", "-1"); jsonMap.put("msg", "成功"); JSONUtils.printObject(jsonMap); } catch (Exception e) { paramMap.put("error", "1"); paramMap.put("msg", "未知异常"); JSONUtils.printObject(paramMap); log.error(e); } return null; } /** * 成功竞拍的债权 * * @return * @throws IOException */ public String querySucessBuyedDebt() throws IOException { Map<String, Object> jsonMap = new HashMap<String, Object>(); long userId = this.getUserId(); try { Map<String, String> infoMap = this.getAppInfoMap(); String borrowTitle = infoMap.get("borrowTitle"); String startTime = infoMap.get("startTime"); String endTime = infoMap.get("endTime"); pageBean.setPageNum(infoMap.get("curPage")); auctionDebtService.querySuccessAuctionDebt(borrowTitle, startTime, endTime, userId, pageBean); jsonMap.put("pageBean", pageBean); jsonMap.put("error", "-1"); jsonMap.put("msg", "成功"); JSONUtils.printObject(jsonMap); } catch (Exception e) { paramMap.put("error", "1"); paramMap.put("msg", "未知异常"); JSONUtils.printObject(paramMap); log.error(e); } return null; } public void setAssignmentDebtService( AssignmentDebtService assignmentDebtService) { this.assignmentDebtService = assignmentDebtService; } public void setAuctionDebtService(AuctionDebtService auctionDebtService) { this.auctionDebtService = auctionDebtService; } public List<Map<String, Object>> getAuctionDaysList() throws SQLException, DataException { auctionDaysList = selectedService.getDebtAuctionDays(); return auctionDaysList; } public void setAuctionDaysList(List<Map<String, Object>> auctionDaysList) { this.auctionDaysList = auctionDaysList; } public void setSelectedService(SelectedService selectedService) { this.selectedService = selectedService; } }