package com.sp2p.action.app;
import java.io.IOException;
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.config.AlipayConfig;
import com.shove.security.Encrypt;
import com.shove.web.util.JSONUtils;
import com.sp2p.constants.IConstants;
import com.sp2p.service.HomeInfoSettingService;
import com.sp2p.service.MyHomeService;
import com.sp2p.service.admin.FundManagementService;
public class HomeAppAction extends BaseAppAction {
private static final long serialVersionUID = -8705141732645392945L;
public static Log log = LogFactory.getLog(HomeAppAction.class);
private MyHomeService myHomeService;
private HomeInfoSettingService homeInfoSettingService;
private FundManagementService fundManagementService;
public FundManagementService getFundManagementService() {
return fundManagementService;
}
public void setFundManagementService(FundManagementService fundManagementService) {
this.fundManagementService = fundManagementService;
}
public String queryHome() throws IOException {
Map<String, String> jsonMap = new HashMap<String, String>();
try {
Map<String, String> authMap = this.getAppAuthMap();
long userId = Convert.strToLong(authMap.get("uid"), -1);
if (userId == -1) {
jsonMap.put("error", "1");
jsonMap.put("msg", "请登录");
JSONUtils.printObject(jsonMap);
return null;
}
Map<String, String> homeMap = myHomeService.queryHomeInfo(userId);
Map<String, String> accmountStatisMap = myHomeService
.queryAccountStatisInfo(userId);
jsonMap.putAll(homeMap);
jsonMap.putAll(accmountStatisMap);
jsonMap.put("error", "-1");
jsonMap.put("msg", "成功");
JSONUtils.printObject(jsonMap);
} catch (Exception e) {
log.error(e);
e.printStackTrace();
jsonMap.put("error", "2");
jsonMap.put("msg", "未知异常");
JSONUtils.printObject(jsonMap);
}
return null;
}
public String queryBank() throws IOException {
Map<String, Object> jsonMap = new HashMap<String, Object>();
try {
Map<String, String> authMap = this.getAppAuthMap();
long userId = Convert.strToLong(authMap.get("uid"), -1);
if (userId == -1) {
jsonMap.put("error", "1");
jsonMap.put("msg", "请登录");
JSONUtils.printObject(jsonMap);
return null;
}
List<Map<String, Object>> lists = homeInfoSettingService
.queryBankInfoList(userId);
jsonMap.put("lists", lists);
jsonMap.put("error", "-1");
jsonMap.put("msg", "成功");
JSONUtils.printObject(jsonMap);
} catch (Exception e) {
log.error(e);
e.printStackTrace();
jsonMap.put("error", "2");
jsonMap.put("msg", "未知异常");
JSONUtils.printObject(jsonMap);
}
return null;
}
public String addBank() throws IOException {
Map<String, Object> jsonMap = new HashMap<String, Object>();
try {
Map<String, String> authMap = this.getAppAuthMap();
long userId = Convert.strToLong(authMap.get("uid"), -1);
Map<String, String> appInfoMap = this.getAppInfoMap();
String code = appInfoMap.get("code");
if(StringUtils.isBlank(code)){
jsonMap.put("error", "1");
jsonMap.put("msg", "验证码不能为空");
JSONUtils.printObject(jsonMap);
return null;
}
String randomCode = appInfoMap.get("randomCode") + "";
randomCode = Encrypt.decryptSES(randomCode, AlipayConfig.ses_key);
String phone = session().getAttribute("phone") +"";
if (!randomCode.equals(code)) {
jsonMap.put("error", "2");
jsonMap.put("msg", "验证码不正确");
JSONUtils.printObject(jsonMap);
return null;
}
String recivePhone = appInfoMap.get("recivePhone") + "";
recivePhone = Encrypt.decryptSES(recivePhone, AlipayConfig.ses_key);
String cardUserName = appInfoMap.get("cardUserName");
if (StringUtils.isBlank(cardUserName)) {
jsonMap.put("error", "3");
jsonMap.put("msg", "银行卡持有人不能为空");
JSONUtils.printObject(jsonMap);
return null;
}
String bankName = appInfoMap.get("bankName");
String openBankId = appInfoMap.get("openBankId");
if (StringUtils.isBlank(bankName)) {
jsonMap.put("error", "4");
jsonMap.put("msg", "银行名称不能为空");
JSONUtils.printObject(jsonMap);
return null;
}
String subBankName = appInfoMap.get("subBankName");
if (StringUtils.isBlank(subBankName)) {
jsonMap.put("error", "5");
jsonMap.put("msg", "银行开户行不能为空");
JSONUtils.printObject(jsonMap);
return null;
}
String bankCard = appInfoMap.get("bankCard");
if (StringUtils.isBlank(bankCard)) {
jsonMap.put("error", "6");
jsonMap.put("msg", "银行卡号不能为空");
JSONUtils.printObject(jsonMap);
return null;
}
long bankId = Convert.strToLong(appInfoMap.get("bankId"), -1);
Map<String, String> map = homeInfoSettingService
.queryCardStatus(userId);
int bindingCardNum = Convert.strToInt(map.get("count(*)"), 0);
if (bindingCardNum >= 2) {// 已经绑定两张银行卡,不能再绑定了
jsonMap.put("error", "7");
jsonMap.put("msg", "最多绑定两张银行卡");
JSONUtils.printObject(jsonMap);
return null;
}
// 银行卡验证
/*
* Pattern p = Pattern.compile("[0-9]{19}"); Matcher m =
* p.matcher(bankCard); if(!m.matches()){ JSONUtils.printStr("1");
* return null; }
*/
String province = Convert.strToStr(paramMap.get("province"), null);
String city = Convert.strToStr(paramMap.get("city"), null);
// 新添加的提现银行卡信息状态为2,表示申请中
long result = -1;
if (bankId == -1) {
result = homeInfoSettingService.addBankCardInfo(userId,
cardUserName, bankName, subBankName, bankCard,
IConstants.BANK_CHECK,province,city,openBankId, city, city);
}else{
result = fundManagementService.updateChangeBank(bankId, bankName, "","", province, city, bankCard, IConstants.BANK_CHECK, new Date(), true, "", "");
}
if(result > 0){
jsonMap.put("error", "-1");
jsonMap.put("msg", "成功");
JSONUtils.printObject(jsonMap);
}else{
jsonMap.put("error", "8");
jsonMap.put("msg", "失败");
JSONUtils.printObject(jsonMap);
}
} catch (Exception e) {
log.error(e);
e.printStackTrace();
jsonMap.put("error", "9");
jsonMap.put("msg", "未知异常");
JSONUtils.printObject(jsonMap);
}
return null;
}
public void setMyHomeService(MyHomeService myHomeService) {
this.myHomeService = myHomeService;
}
public MyHomeService getMyHomeService() {
return myHomeService;
}
public void setHomeInfoSettingService(
HomeInfoSettingService homeInfoSettingService) {
this.homeInfoSettingService = homeInfoSettingService;
}
public HomeInfoSettingService getHomeInfoSettingService() {
return homeInfoSettingService;
}
}