package com.xxxx.project.accountcheck.accordOrgCheck;
import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import oracle.jdbc.OracleTypes;
import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;
import org.hibernate.SessionFactory;
import org.hibernate.connection.ConnectionProvider;
import org.hibernate.engine.SessionFactoryImplementor;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.xxxx.common.BaseAction;
import com.xxxx.common.BaseDao;
/**
* 支付提现 对账 按照运营机构号统计 对账action
* @author
* @date 2016-3-18 上午09:36:00
*/
@Controller
@Scope("prototype")
public class AccordOrgCheckAction extends BaseDao{
private Logger log = Logger.getLogger(this.getClass());
private String searchTime;//搜索时间
private String wallettype;// 支付 提现
private String msg;
/**
* 调用存储过程所需参数
*/
private String i_settle_date;//查询日期
private String i_type;//钱包操作类型 支付,提现
private Object o_rescursor="";//游标
private String procName = "{call xxxx_COUNT_xxx_ORGCODE(?,?,?)}";//存储过程名字
/**
* 传输到页面的数据
* @return
* @date 2016-3-18下午03:54:24
*/
private List<AccordOrgCheck> AccordOrgCheckList;
private String orgcode;
private String total_count;
private String total_money;
public String accordOrgCheckList(){
if(searchTime==null){//如果查询时间为空则默认查询昨天的
//赋默认值
log.info("默认查询日期为昨天");
Calendar cal= Calendar.getInstance();
cal.add(Calendar.DATE, -1);
String yesterday = new SimpleDateFormat( "yyyy-MM-dd").format(cal.getTime());
searchTime=yesterday;
}
String searchTimeStr =searchTime.replaceAll("-", "") ;
//调用存储过程
AccordOrgCheckList = excuteProcForMapString(procName,searchTimeStr, wallettype, o_rescursor);
if(("[]").equals(AccordOrgCheckList.toString())){
//该天无记录
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("page","<div style='font-size: 18px;height: 30px;line-height: 30px;text-align:center;'><font size=2>暂无记录!</font></div>");
}
return "accordOrgCheckList";
}
/**
* 调用存储过程方法
* @return
* @date 2016-3-18下午03:20:46
*/
private List<AccordOrgCheck> excuteProcForMapString(String procName,String searchTimeStr,String wallettype,Object o_rescursor ){
CallableStatement statement = null;
ResultSet rs = null;
AccordOrgCheckList = new ArrayList<AccordOrgCheck>();
AccordOrgCheck aoc ;
SessionFactory sessionFactory = this.getSessionFactory();
if (sessionFactory instanceof SessionFactoryImplementor){
ConnectionProvider cp = ((SessionFactoryImplementor) sessionFactory)
.getConnectionProvider();
try {
statement = cp.getConnection().prepareCall(procName);
statement.setString(1, searchTimeStr);
statement.setString(2, wallettype);
statement.registerOutParameter(3, OracleTypes.CURSOR);
statement.execute();
rs = (ResultSet) statement.getObject(3);
while(rs.next()){
aoc = new AccordOrgCheck();
orgcode = rs.getString("orgcode");
total_count = String.valueOf(rs.getInt("total_count"));
total_money = String.valueOf(rs.getDouble("total_money"));
aoc.setOrgcode(orgcode);
aoc.setTotal_count(total_count);
aoc.setTotal_money(total_money);
AccordOrgCheckList.add(aoc);
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
cp.close();
}
}
return AccordOrgCheckList;
}
public String getSearchTime() {
return searchTime;
}
public void setSearchTime(String searchTime) {
this.searchTime = searchTime;
}
public String getWallettype() {
return wallettype;
}
public void setWallettype(String wallettype) {
this.wallettype = wallettype;
}
public Logger getLog() {
return log;
}
public void setLog(Logger log) {
this.log = log;
}
public String getI_settle_date() {
return i_settle_date;
}
public void setI_settle_date(String iSettleDate) {
i_settle_date = iSettleDate;
}
public String getI_type() {
return i_type;
}
public void setI_type(String iType) {
i_type = iType;
}
public Object getO_rescursor() {
return o_rescursor;
}
public void setO_rescursor(Object oRescursor) {
o_rescursor = oRescursor;
}
public String getProcName() {
return procName;
}
public void setProcName(String procName) {
this.procName = procName;
}
public String getOrgcode() {
return orgcode;
}
public void setOrgcode(String orgcode) {
this.orgcode = orgcode;
}
public String getTotal_count() {
return total_count;
}
public void setTotal_count(String totalCount) {
total_count = totalCount;
}
public String getTotal_money() {
return total_money;
}
public void setTotal_money(String totalMoney) {
total_money = totalMoney;
}
public List<AccordOrgCheck> getAccordOrgCheckList() {
return AccordOrgCheckList;
}
public void setAccordOrgCheckList(List<AccordOrgCheck> accordOrgCheckList) {
AccordOrgCheckList = accordOrgCheckList;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
oracle游标的使用
最新推荐文章于 2023-03-24 08:50:01 发布