/** * @Project: hehenian-web * @Package com.hehenian.web.view.trade.action * @Title: AssignmentDebtAction.java * @Description: TODO * @author: liuzgmf * @date 2014年9月26日 上午11:09:24 * @Copyright: HEHENIAN Co.,Ltd. All rights reserved. * @version V1.0 */ package com.hehenian.web.view.trade.action; import java.net.URLDecoder; import java.text.ParseException; import java.util.Date; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.time.DateUtils; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.SessionAware; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import com.hehenian.biz.common.account.dataobject.AccountUserDo; import com.hehenian.biz.common.base.result.IResult; import com.hehenian.biz.common.trade.IAssignmentDebtService; import com.hehenian.biz.common.trade.IAuctionDebtService; import com.hehenian.biz.common.trade.IParameterLogService; import com.hehenian.biz.common.trade.dataobject.AssignmentDebtDo; import com.hehenian.biz.common.trade.dataobject.AuctionDebtDo.AuctionStatus; import com.hehenian.biz.common.trade.dataobject.ParameterLogDo.ParameterType; import com.hehenian.biz.common.util.StringUtil; import com.hehenian.web.common.contant.WebConstants; import com.hehenian.web.common.util.ServletUtils; import com.opensymphony.xwork2.ActionSupport; /** * * @author: liuzgmf * @date 2014年9月26日 上午11:09:24 */ @Scope("prototype") @Controller("newAssignmentDebtAction") public class NewAssignmentDebtAction extends ActionSupport implements ServletRequestAware, SessionAware { private static final long serialVersionUID = 1L; @Autowired private IAssignmentDebtService newAssignmentDebtService; @Autowired private IAuctionDebtService newAuctionDebtService; @Autowired private IParameterLogService parameterLogService; private HttpServletRequest request; private Map<String, Object> session; @Override public void setServletRequest(HttpServletRequest request) { this.request = request; } @Override public void setSession(Map<String, Object> session) { this.session = session; } /** * 债权转让申请 * * @return * @author: liuzgmf * @date: 2014年9月26日上午11:10:37 */ public String addAssignmentDebt() { AssignmentDebtDo assignmentDebtDo = new AssignmentDebtDo(); assignmentDebtDo.setDebtSum(StringUtil.strToDouble(request.getParameter("paramMap.debtSum"), 0.00)); String auctionBasePrice = request.getParameter("paramMap.auctionBasePrice"); assignmentDebtDo.setAuctionBasePrice(StringUtil.strToDouble(auctionBasePrice, 0.00)); assignmentDebtDo.setDebtLimit(StringUtil.strToInt(request.getParameter("paramMap.debtLimit"))); assignmentDebtDo.setAuctionMode(StringUtil.strToInt(request.getParameter("paramMap.auctionMode"))); assignmentDebtDo.setViewCount(StringUtil.strToInt(request.getParameter("paramMap.viewCount"))); assignmentDebtDo.setBorrowId(StringUtil.strToLong(request.getParameter("paramMap.borrowId"))); AccountUserDo user = (AccountUserDo) session.get(WebConstants.SESSION_USER); assignmentDebtDo.setAlienatorId(user.getId());// 转让人 assignmentDebtDo.setAuctionerId(StringUtil.strToLong(request.getParameter("paramMap.auctionerId"))); String auctionHighPrice = request.getParameter("paramMap.auctionHighPrice"); assignmentDebtDo.setAuctionHighPrice(StringUtil.strToDouble(auctionHighPrice, 0.00)); String manageFee = request.getParameter("paramMap.manageFee"); assignmentDebtDo.setManageFee(StringUtil.strToDouble(manageFee, 0.00)); assignmentDebtDo.setInvestId(StringUtil.strToLong(request.getParameter("paramMap.investId"))); IResult<?> result = newAssignmentDebtService.addAssignmentDebt(assignmentDebtDo); if (result.isSuccess()) { ServletUtils.write("1"); } else { ServletUtils.write(result.getErrorMessage()); } return null; } /** * 债权转让审核审核 * * @return * @author: liuzgmf * @date: 2014年9月26日上午11:10:37 */ public String updateDebtAudit() { AssignmentDebtDo assignmentDebtDo = new AssignmentDebtDo(); assignmentDebtDo.setDebtStatus(StringUtil.strToInt(request.getParameter("paramMap.status"))); assignmentDebtDo.setId(StringUtil.strToLong(request.getParameter("paramMap.id"))); assignmentDebtDo.setInvestId(StringUtil.strToLong(request.getParameter("paramMap.investId"))); assignmentDebtDo.setDetails(request.getParameter("paramMap.remark")); try { String publishTime = request.getParameter("paramMap.time"); if (StringUtils.isNotBlank(publishTime)) { assignmentDebtDo.setPublishTime(DateUtils .parseDate(publishTime, new String[] { "yyyy-MM-dd HH:mm:ss" })); } else { assignmentDebtDo.setPublishTime(new Date()); } } catch (ParseException ignore) { assignmentDebtDo.setPublishTime(new Date()); } assignmentDebtDo.setAuctionDays(3);// 债权转让期为3天 IResult<?> result = newAssignmentDebtService.updateDebtAudit(assignmentDebtDo); if (result.isSuccess()) { ServletUtils.write("1"); } else { ServletUtils.write("2"); } return null; } /** * 债权转让申请购买 * * @return * @author: liuzgmf * @date: 2014年9月26日上午11:10:37 */ public String addPurchaseDebt() { Long debtId = Long.parseLong(request.getParameter("paramMap.id")); Double auctionPrice = Double.parseDouble(request.getParameter("paramMap.auctionPrice")); AccountUserDo user = (AccountUserDo) session.get(WebConstants.SESSION_USER); IResult<?> result = newAssignmentDebtService.addPurchaseDebt(user.getId(), debtId, auctionPrice); // 发送请求到汇付 if (result != null && result.isSuccess()) { String htmlText = (String) result.getModel(); ServletUtils.write(htmlText); return null; } else { ServletUtils.write(result.getErrorMessage()); return null; } } /** * 债权转让汇付天下回调(前台回调 ) * * @return * @author: liuzgmf * @date: 2014年9月26日上午11:10:37 */ public String updatePurchaseDebt() throws Exception { ServletUtils.logRequestParameters();// 打印参数日志 parameterLogService.addParameterLog(ServletUtils.getRequestParameters(), ParameterType.RESP); String respCode = request.getParameter("RespCode"); String ordId = request.getParameter("OrdId"); if (!WebConstants.RESP_CODE_SUCCESS.equals(respCode)) { newAssignmentDebtService.updateAuctionStatus(ordId, AuctionStatus.FAILURE, AuctionStatus.PROCESSING);// 设置状态为提现失败 request.setAttribute(WebConstants.MESSAGE_KEY, URLDecoder.decode(request.getParameter("RespDesc"), "UTF-8") + ",请联系客服!"); return ERROR; } String creditDealAmt = request.getParameter("CreditDealAmt"); newAssignmentDebtService.updatePurchaseDebt(StringUtil.strToLong(ordId), StringUtil.strToDouble(creditDealAmt)); request.setAttribute(WebConstants.MESSAGE_KEY, "债权转让成功!"); return SUCCESS; } /** * 债权转让汇付天下回调(后台) * * @return * @author: liuzgmf * @date: 2014年9月26日上午11:10:37 */ public String updatePurchaseDebtBg() throws Exception { ServletUtils.logRequestParameters();// 打印参数日志 parameterLogService.addParameterLog(ServletUtils.getRequestParameters(), ParameterType.RESP); String respCode = request.getParameter("RespCode"); String ordId = request.getParameter("OrdId"); if (!WebConstants.RESP_CODE_SUCCESS.equals(respCode)) { newAssignmentDebtService.updateAuctionStatus(ordId, AuctionStatus.FAILURE, AuctionStatus.PROCESSING);// 设置状态为提现失败 ServletUtils.write("RECV_ORD_ID_" + ordId);// 成功应答,标示订单已成功处理 return null; } String creditDealAmt = request.getParameter("CreditDealAmt"); IResult<?> result = newAssignmentDebtService.updatePurchaseDebt(StringUtil.strToLong(ordId), StringUtil.strToDouble(creditDealAmt)); if (result.isSuccess()) { ServletUtils.write("RECV_ORD_ID_" + ordId);// 成功应答,标示订单已成功处理 return null; } return null; } /** * 商户扣款对账 * * @return * @author: liuzgmf * @date: 2014年10月13日下午1:58:39 */ public String trfReconciliation() { String beginDate = request.getParameter("beginDate"); String endDate = request.getParameter("endDate"); String pageNum = request.getParameter("PageNum"); Map<String, Object> params = newAssignmentDebtService.trfReconciliation(beginDate, endDate, pageNum); request.setAttribute("params", params); return SUCCESS; } /** * 投标对账(放款和还款对账) * * @return * @author: liuzgmf * @date: 2014年10月13日下午1:57:39 */ public String reconciliation() { String beginDate = request.getParameter("beginDate"); String endDate = request.getParameter("endDate"); String pageNum = request.getParameter("PageNum"); String queryTransType = request.getParameter("QueryTransType"); Map<String, Object> params = newAssignmentDebtService.reconciliation(beginDate, endDate, pageNum, queryTransType); request.setAttribute("params", params); return SUCCESS; } /** * 充值对账 * * @return * @author: liuzgmf * @date: 2014年10月13日下午1:58:12 */ public String saveReconciliation() { String beginDate = request.getParameter("beginDate"); String endDate = request.getParameter("endDate"); String pageNum = request.getParameter("PageNum"); Map<String, Object> params = newAssignmentDebtService.saveReconciliation(beginDate, endDate, pageNum); request.setAttribute("params", params); return SUCCESS; } /** * 取现对账 * * @return * @author: liuzgmf * @date: 2014年10月13日下午1:58:23 */ public String cashReconciliation() { String beginDate = request.getParameter("beginDate"); String endDate = request.getParameter("endDate"); String pageNum = request.getParameter("PageNum"); Map<String, Object> params = newAssignmentDebtService.cashReconciliation(beginDate, endDate, pageNum); request.setAttribute("params", params); return SUCCESS; } /** * 账户明细查询 * * @return * @author: liuzgmf * @date: 2014年10月13日下午1:58:23 */ public String queryAcctDetails() { String userId = request.getParameter("userId"); Map<String, Object> params = newAssignmentDebtService.queryAcctDetails(Long.parseLong(userId)); ServletUtils.write((String) params.get("htmlText")); return null; } }