package com.sp2p.action.admin;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONObject;
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.JSONUtils;
import com.shove.util.SqlInfusion;
import com.sp2p.action.front.BaseFrontAction;
import com.sp2p.action.front.FrontMyPaymentAction;
import com.sp2p.constants.IConstants;
import com.sp2p.entity.Admin;
import com.sp2p.service.RegionService;
import com.sp2p.service.admin.AdminService;
import com.sp2p.service.admin.FundManagementService;
import com.sp2p.util.ChinaPnRInterface;
@SuppressWarnings("serial")
public class UserBankManagerAction extends BaseFrontAction {
public static Log log = LogFactory.getLog(LinksAction.class);
private AdminService adminService;
private List<Map<String, Object>> checkers;
private FundManagementService fundManagementService;
@SuppressWarnings("unused")
private RegionService regionService; // 省市Service
private List<Map<String, Object>> provinceList;
private List<Map<String, Object>> cityList;
public FundManagementService getFundManagementService() {
return fundManagementService;
}
public void setFundManagementService(FundManagementService fundManagementService) {
this.fundManagementService = fundManagementService;
}
public String queryUserBankInit() throws SQLException, DataException {
String types = Convert.strToStr(SqlInfusion.FilteSqlInfusion(request("types")), "-1");
request().setAttribute("types", types);
return SUCCESS;
}
@SuppressWarnings("unused")
private long workPro = -1L;// 初始化省份默认值
@SuppressWarnings("unchecked")
public String queryUserBankList() throws DataException, SQLException {
String userName = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("userName")), null);
String realName = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("realName")), null);
String checkUser = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("checkUser")), null);
String commitTimeStart = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("commitTimeStart")), null);
String commitTimeEnd = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("commitTimeEnd")), null);
int cardStatus = Convert.strToInt(paramMap.get("cardStatus"), -1);
/*
* String checkStartTime =
* Convert.strToStr(paramMap.get("checkTimeStart"), null); String
* checkTimeEnd = Convert.strToStr(paramMap.get("checkTimeEnd"), null);
* checkTimeEnd = FrontMyPaymentAction.changeEndTime(checkTimeEnd);
*/
commitTimeEnd = FrontMyPaymentAction.changeEndTime(commitTimeEnd);
Long checkUserId = -100L;
if (checkUser != null) {
checkUserId = Convert.strToLong(checkUser, -100L);
}
try {
// 加载银行卡信息
fundManagementService.queryBankCardInfos(pageBean, userName, realName, checkUserId, commitTimeStart, commitTimeEnd, cardStatus);
checkers = getCheckers();
List<Map<String, Object>> ll = pageBean.getPage();
if (ll != null && ll.size() > 0) {
for (Map<String, Object> mp : ll) {
if (mp.get("checkUser") != null) {
String chechUser = mp.get("checkUser").toString();
for (Map<String, Object> cc : checkers) {
if (cc.get("id").toString().equals(chechUser)) {
mp.put("checkUser", cc.get("userName"));
break;
}
}
}
}
}
int pageNum = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize();
request().setAttribute("pageNum", pageNum);
} catch (DataException e) {
log.error(e);
e.printStackTrace();
throw e;
} catch (SQLException e) {
log.error(e);
e.printStackTrace();
throw e;
}
return SUCCESS;
}
@SuppressWarnings("unchecked")
public String queryUserModifiyBankList() throws Exception {
String userName = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("userName")), null);
String realName = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("realName")), null);
// username 需要转换成 id 去搜条件
String checkUser = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("checkUser")), null);
String cStartTime = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("commitTimeStart")), null);
String cEndTime = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("commitTimeEnd")), null);
int cardStatus = Convert.strToInt(paramMap.get("cardStatus"), -1);
cEndTime = FrontMyPaymentAction.changeEndTime(cEndTime);
Long checkUserId = -100L;
if (checkUser != null) {
checkUserId = Convert.strToLong(checkUser, -100L);
}
try {
// 加载银行卡信息
fundManagementService.queryModifyBankCardInfos(pageBean, userName, realName, checkUserId, cStartTime, cEndTime, cardStatus);
getCheckers();
List<Map<String, Object>> ll = pageBean.getPage();
if (ll != null && ll.size() > 0) {
for (Map<String, Object> mp : ll) {
if (mp.get("checkUser") != null) {
String chechUser = mp.get("checkUser").toString();
for (Map<String, Object> cc : checkers) {
if (cc.get("id").toString().equals(chechUser)) {
mp.put("checkUser", cc.get("userName"));
}
}
}
}
}
int pageNum = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize();
request().setAttribute("pageNum", pageNum);
} catch (Exception e) {
log.error(e);
e.printStackTrace();
throw e;
}
return SUCCESS;
}
/**
* 审核 银行卡
*
* @return
* @throws DataException
* @throws SQLException
*/
public String queryOneBankCardInfo() throws DataException, SQLException {
Long bankId = request("bankId") == null ? -1 : Convert.strToLong(request("bankId"), -1);
try {
// 加载银行卡信息
paramMap = fundManagementService.queryBankCard(bankId);
if (paramMap != null && paramMap.size() > 0) {
if (SqlInfusion.FilteSqlInfusion(paramMap.get("mobilePhone")) == null || SqlInfusion.FilteSqlInfusion(paramMap.get("mobilePhone").trim()).equals("")) {
SqlInfusion.FilteSqlInfusion(paramMap.put("mobilePhone", paramMap.get("cellPhone")));
}
request().setAttribute("paramMap", paramMap);
}
} catch (DataException e) {
log.error(e);
e.printStackTrace();
throw e;
} catch (SQLException e) {
log.error(e);
e.printStackTrace();
throw e;
}
return SUCCESS;
}
/**
* 银行卡变更
*
* @return
* @throws SQLException
* @throws DataException
*/
public String queryModifyBankInfo() throws SQLException, DataException {
Long bankId = request("bankId") == null ? -100L : Convert.strToLong(request("bankId"), -100);
try {
paramMap = fundManagementService.queryOneBankCardInfo(bankId);
} catch (SQLException e) {
log.error(e);
e.printStackTrace();
throw e;
} catch (DataException e) {
log.error(e);
e.printStackTrace();
throw e;
}
request().setAttribute("bankId", bankId);
return SUCCESS;
}
/**
* 银行卡审核
*/
public String updateUserBankInfo() throws Exception {
// 汇付绑定银行卡
String remark = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("remark")), "");
Integer status = Convert.strToInt(paramMap.get("status"), -100);
Long bankId = Convert.strToLong(paramMap.get("bankId"), -1);
String usrCustId = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("usrCustId")), ""); // 用户客户号
String openBankId = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("openBankId")), "CIB"); // 银行代号
String openAcctId = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("openAcctId")), ""); // 开户银行账号
String openProvId = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("provinceId")), ""); // 开户银行省份代号
String openAreaId = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("cityId")), ""); // 开户银行地区代号
String openBranchName = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("openBranchName")), ""); // 开户支行
String cmdId = "BgBindCard";
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
Long result = -1L;
if (status == 3) {
result = fundManagementService.updateBankInfo(admin.getId(), bankId, remark, status, admin.getUserName(), admin.getLastIP());
if (result > 0) {
JSONUtils.printStr2("操作成功");
return null;
}
JSONUtils.printStr2("操作失败");
return null;
}
try {
// 用户绑定银行卡
JSONObject json = JSONObject.fromObject(ChinaPnRInterface.bgBindCard(cmdId, usrCustId, openBankId, openAcctId, openProvId, openAreaId,
openBranchName));
int ret = json.getInt("RespCode");
if (ret == 0) {
result = fundManagementService.updateBankInfo(admin.getId(), bankId, remark, status, admin.getUserName(), admin.getLastIP());
JSONUtils.printStr2("操作成功");
} else {
JSONUtils.printStr2("失败:" + json.getString("RespDesc"));
}
return null;
} catch (Exception e) {
log.error(e);
e.printStackTrace();
JSONUtils.printStr("系统出现异常");
return null;
}
}
/**
* 银行卡变更审核
*/
public String updateUserModifyBank() throws DataException, SQLException {
Long checkUserId = paramMap.get("userName") == null ? null : Convert.strToLong(paramMap.get("userName"), -100);
String remark = SqlInfusion.FilteSqlInfusion(paramMap.get("remark") == null ? null : Convert.strToStr(paramMap.get("remark"), null));
Integer check_result = paramMap.get("status") == null ? -100 : Convert.strToInt(paramMap.get("status"), -100);
Long bankId = paramMap.get("bankId") == null ? null : Convert.strToLong(paramMap.get("bankId"), -1);
// String provinceId = paramMap.get("provinceId") == null ? null :
// Convert.strToStr(paramMap.get("provinceId"), null);
// String cityId = paramMap.get("cityId") == null ? null :
// Convert.strToStr(paramMap.get("cityId"), null);
String openBranchName = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("openBranchName")), ""); // 开户支行
String usrCustId = Convert.strToStr(paramMap.get("usrCustId"), ""); // 用户客户号
String openBankId = Convert.strToStr(paramMap.get("openBankId"), "CIB"); // 银行代号
String openAcctId = Convert.strToStr(paramMap.get("openAcctId"), ""); // 开户银行账号
String openProvId = Convert.strToStr(paramMap.get("provinceId"), ""); // 开户银行省份代号
String openAreaId = Convert.strToStr(paramMap.get("cityId"), ""); // 开户银行地区代号
String cmdId = "BgBindCard";
try {
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
if (check_result == 100 || check_result == 3) {
fundManagementService.updateModifyBankInfo(checkUserId, bankId, remark, check_result, paramMap.get("modifiedBankName"),
paramMap.get("modifiedBranchBankName"), paramMap.get("modifiedCardNo"), paramMap.get("modifiedTime"), false);
// 添加操作日志
operationLogService.addOperationLog("t_bankcard", admin.getUserName(), IConstants.UPDATE, admin.getLastIP(), 0, "银行卡变更审核不通过", 3);
JSONUtils.printStr2("审核不通过,操作成功!");
return null;
}
// 用户绑定银行卡
JSONObject json = JSONObject.fromObject(ChinaPnRInterface.bgBindCard(cmdId, usrCustId, openBankId, openAcctId, openProvId, openAreaId,
openBranchName));
int ret = json.getInt("RespCode");
if (ret == 0) {// 审核成功
fundManagementService.updateModifyBankInfo(checkUserId, bankId, remark, check_result, paramMap.get("modifiedBankName"),
paramMap.get("modifiedBranchBankName"), paramMap.get("modifiedCardNo"), paramMap.get("modifiedTime"), true);
// 添加操作日志
operationLogService.addOperationLog("t_bankcard", admin.getUserName(), IConstants.UPDATE, admin.getLastIP(), 0, "银行卡变更审核成功", 2);
JSONUtils.printStr2("操作成功");
} else {
JSONUtils.printStr2("失败:"+json.getString("RespDesc"));
}
} catch (Exception e) {
log.error(e);
e.printStackTrace();
}
return null;
}
public AdminService getAdminService() {
return adminService;
}
public void setAdminService(AdminService adminService) {
this.adminService = adminService;
}
/*
* public UserBankManagerService getUserBankService() { return
* userBankService; }
*
* public void setUserBankService(UserBankManagerService userBankService) {
* this.userBankService = userBankService; }
*/
public List<Map<String, Object>> getCheckers() throws SQLException, DataException {
if (checkers == null) {
// 加载审核人员列表
checkers = adminService.queryAdministors(IConstants.ADMIN_ENABLE);
}
return checkers;
}
public void setCheckers(List<Map<String, Object>> checkers) {
this.checkers = checkers;
}
public List<Map<String, Object>> getProvinceList() {
return provinceList;
}
public void setProvinceList(List<Map<String, Object>> provinceList) {
this.provinceList = provinceList;
}
public List<Map<String, Object>> getCityList() {
return cityList;
}
public void setCityList(List<Map<String, Object>> cityList) {
this.cityList = cityList;
}
}