?? adminaction.java
字號:
package com.yxq.action;
import java.util.List;
import com.yxq.actionSuper.AdminSuperAction;
import com.yxq.dao.OpDB;
import com.yxq.model.CreatePage;
public class AdminAction extends AdminSuperAction {
/** 功能:管理員操作-進行列表顯示信息 */
public String ListShow(){
request.setAttribute("mainPage","../info/listshow.jsp");
session.remove("adminOP");
int infoType=showType.getInfoType();
String stateType=showType.getStateType();
String payforType=showType.getPayforType();
session.put("infoType",Integer.valueOf(infoType)); //保存已選擇的“信息類別”的選項
session.put("payforType",payforType); //保存已選擇的“付費狀態”的選項
session.put("stateType",stateType); //保存已選擇的“審核狀態”的選項
String sqlall="";
String sqlsub="";
Object[] params=null;
String mark="";
int perR=8;
if(!stateType.equals("all")&&!payforType.equals("all")){ //沒有同時選擇“付費狀態”與“審核狀態”中的“全部”選項
mark="1";
sqlall="SELECT * FROM tb_info WHERE (info_type=?) AND (info_state=?) AND (info_payfor=?) ORDER BY info_date DESC";
sqlsub="SELECT TOP "+perR+" * FROM tb_info WHERE (info_type=?) AND (info_state=?) AND (info_payfor=?) ORDER BY info_date DESC";
params=new Object[3];
params[0]=Integer.valueOf(infoType);
params[1]=stateType;
params[2]=payforType;
}else if(stateType.equals("all")&&payforType.equals("all")){ //同時選擇了“付費狀態”與“審核狀態”中的“全部”選項
mark="2";
sqlall="SELECT * FROM tb_info WHERE (info_type=?) ORDER BY info_date DESC";
sqlsub="SELECT TOP "+perR+" * FROM tb_info WHERE (info_type=?) ORDER BY info_date DESC";
params=new Object[1];
params[0]=Integer.valueOf(infoType);
}else if(payforType.equals("all")){ //選擇了“付費狀態”中的“全部”選項,“審核狀態”選項任意
mark="3";
sqlall="SELECT * FROM tb_info WHERE (info_type=?) AND (info_state=?) ORDER BY info_date DESC";
sqlsub="SELECT TOP "+perR+" * FROM tb_info WHERE (info_type=?) AND (info_state=?) ORDER BY info_date DESC";
params=new Object[2];
params[0]=Integer.valueOf(infoType);
params[1]=stateType;
}
else if(stateType.equals("all")){ //選擇了“審核狀態”中的“全部”選項,“付費狀態”選項任意
mark="4";
sqlall="SELECT * FROM tb_info WHERE (info_type=?) AND (info_payfor=?) ORDER BY info_date DESC";
sqlsub="SELECT TOP "+perR+" * FROM tb_info WHERE (info_type=?) AND (info_payfor=?) ORDER BY info_date DESC";
params=new Object[2];
params[0]=Integer.valueOf(infoType);
params[1]=payforType;
}
String strCurrentP=request.getParameter("showpage");
String gowhich="admin_ListShow.action";
OpDB myOp=new OpDB();
CreatePage createPage=myOp.OpCreatePage(sqlall, params,perR,strCurrentP,gowhich); //調用OpDB類中的OpCreatePage()方法計算出總記錄數、總頁數,并且設置當前頁碼,這些信息都封裝到了createPage對象中
int currentP=createPage.getCurrentP();
if(currentP>1){
int top=(currentP-1)*perR;
if(mark.equals("1")){
sqlsub="SELECT TOP "+perR+" * FROM tb_info i WHERE (info_type = ?) AND (info_payfor = ?) AND (info_state = ?) AND (info_date < (SELECT MIN(info_date) FROM (SELECT TOP "+top+" (info_date) FROM tb_info WHERE (info_type = i.info_type) AND (info_payfor = i.info_payfor) AND (info_state = i.info_state) ORDER BY info_date DESC) AS mindate)) ORDER BY info_date DESC";
}
else if(mark.equals("2")){
sqlsub="SELECT TOP "+perR+" * FROM tb_info i WHERE (info_type = ?) AND (info_date < (SELECT MIN(info_date) FROM (SELECT TOP "+top+" (info_date) FROM tb_info WHERE (info_type = i.info_type) ORDER BY info_date DESC) AS mindate)) ORDER BY info_date DESC";
}
else if(mark.equals("3")){
sqlsub="SELECT TOP "+perR+" * FROM tb_info i WHERE (info_type = ?) AND (info_state = ?) AND (info_date < (SELECT MIN(info_date) FROM (SELECT TOP "+top+" (info_date) FROM tb_info WHERE (info_type = i.info_type) AND (info_state = i.info_state) ORDER BY info_date DESC) AS mindate)) ORDER BY info_date DESC";
}
else if(mark.equals("4")){
sqlsub="SELECT TOP "+perR+" * FROM tb_info i WHERE (info_type = ?) AND (info_payfor = ?) AND (info_date < (SELECT MIN(info_date) FROM (SELECT TOP "+top+" (info_date) FROM tb_info WHERE (info_type = i.info_type) AND (info_payfor = i.info_payfor) ORDER BY info_date DESC) AS mindate)) ORDER BY info_date DESC";
}
}
List adminlistshow=myOp.OpListShow(sqlsub, params);
request.setAttribute("adminlistshow",adminlistshow);
request.setAttribute("createpage",createPage);
return SUCCESS;
}
/** 功能:管理員操作-顯示要審核的信息 */
public String CheckShow(){
request.setAttribute("mainPage","../info/checkshow.jsp");
comebackState();
String sql="SELECT * FROM tb_info WHERE (id = ?)";
String checkID=request.getParameter("checkID");
if(checkID==null||checkID.equals(""))
checkID="-1";
Object[] params={checkID};
OpDB myOp=new OpDB();
infoSingle=myOp.OpSingleShow(sql, params);
if(infoSingle==null){ //信息不存在
request.setAttribute("mainPage","/pages/error.jsp");
addFieldError("AdminShowNoExist",getText("city.singleshow.no.exist"));
}
return SUCCESS;
}
/** 功能:管理員操作-審核信息(更新數據庫) */
public String Check(){
session.put("adminOP","Check"); //記錄當前操作為“審核信息”
String checkID=request.getParameter("checkID");
String sql="UPDATE tb_info SET info_state = 1 WHERE (id = ?)";
Object[] params={checkID};
OpDB myOp=new OpDB();
int i=myOp.OpUpdate(sql, params);
if(i>0){ //審核信息成功
return "checkSuccess";
}
else{ //審核信息失敗
comebackState();
addFieldError("AdminCheckUnSuccess",getText("city.admin.check.no.success"));
request.setAttribute("mainPage","/pages/error.jsp");
return "UnSuccess";
}
}
/** 功能:管理員操作-刪除信息(更新數據庫) */
public String Delete(){
session.put("adminOP","Delete"); //記錄當前操作為“刪除信息”
String deleteID=request.getParameter("deleteID");
String sql="DELETE tb_info WHERE (id = ?)";
Object[] params={deleteID};
OpDB myOp=new OpDB();
int i=myOp.OpUpdate(sql, params);
if(i>0){ //刪除信息成功
return "deleteSuccess";
}
else{ //刪除信息失敗
comebackState();
addFieldError("AdminDeleteUnSuccess",getText("city.admin.delete.no.success"));
request.setAttribute("mainPage","/pages/error.jsp");
return "UnSuccess";
}
}
/** 功能:管理員操作-顯示要進行付費設置的信息 */
public String SetMoneyShow(){
request.setAttribute("mainPage","../info/moneyshow.jsp");
String moneyID=request.getParameter("moneyID");
if(moneyID==null||moneyID.equals(""))
moneyID="-1";
String sql="SELECT * FROM tb_info WHERE (id = ?)";
Object[] params={moneyID};
OpDB myOp=new OpDB();
infoSingle=myOp.OpSingleShow(sql, params);
if(infoSingle==null){ //信息不存在
request.setAttribute("mainPage","/pages/error.jsp");
addFieldError("AdminShowNoExist",getText("city.singleshow.no.exist"));
}
return SUCCESS;
}
/** 功能:管理員操作-設置已付費信息(更新數據庫) */
public String SetMoney(){
String moneyID=request.getParameter("moneyID");
if(moneyID==null||moneyID.equals(""))
moneyID="-1";
String sql="UPDATE tb_info SET info_payfor=1 WHERE (id = ?)";
Object[] params={Integer.valueOf(moneyID)};
OpDB myOp=new OpDB();
int i=myOp.OpUpdate(sql, params);
if(i>0){ //信息付費設置成功
addFieldError("AdminSetMoneySuccess",getText("city.admin.setmoney.success"));
request.setAttribute("mainPage","/pages/error.jsp");
return "setMoneySuccess";
}
else{ //信息付費設置失敗
addFieldError("AdminSetMoneyUnSuccess",getText("city.admin.setmoney.no.success"));
request.setAttribute("mainPage","/pages/error.jsp");
return "UnSuccess";
}
}
/** 功能:驗證操作-后臺進行列表顯示信息時,驗證是否選擇了一種顯示方式及信息類別 */
public void validateListShow(){
request.setAttribute("mainPage","/pages/error.jsp");
String adminOP=(String)session.get("adminOP");
if(adminOP==null)
adminOP="";
if(adminOP.equals("Check")||adminOP.equals("Delete")) //如果是進行了“通過審核”或“刪除信息”操作后,再來調用ListShow()方法顯示信息列表,則需要恢復之前選擇的“顯示方式”和“信息類別”狀態,從而重新在ListShow()方法中查詢出符合條件的記錄
comebackState();
else{
int getInfoType=showType.getInfoType();
String getPayforType=showType.getPayforType();
String getStateType=showType.getStateType();
if(getInfoType<=0){
if(session.get("infoType")!=null){
getInfoType=(Integer)session.get("infoType");
showType.setInfoType(getInfoType);
}
}
if(getPayforType==null||getPayforType.equals("")){
getPayforType=(String)session.get("payforType");
showType.setPayforType(getPayforType);
}
if(getStateType==null||getStateType.equals("")){
getStateType=(String)session.get("stateType");
showType.setStateType(getStateType);
}
if(getInfoType<=0){ //沒有選擇“信息類別”
addFieldError("AdminListNoType",getText("city.admin.list.no.infoType"));
}
else{
if(getPayforType==null||getPayforType.equals("")){ //沒有選擇“付費狀態”選項
addFieldError("AdminListNoPayForType",getText("city.admin.list.no.payforType"));
}
if(getStateType==null||getStateType.equals("")){ //沒有選擇“審核狀態”選項
addFieldError("AdminListNoStateType",getText("city.admin.list.no.stateType"));
}
}
}
}
/** 功能:驗證操作-后臺進行信息的付費設置操作時,驗證是否輸入了信息ID值和輸入的ID值是否為數字格式 */
public void validateSetMoneyShow() {
request.setAttribute("mainPage","/pages/error.jsp");
String moneyID=request.getParameter("moneyID");
if(moneyID==null||moneyID.equals("")){ //沒有輸入信息ID值
addFieldError("moneyIDError",getText("city.admin.setMoney.no.moneyID"));
}
else{ //驗證輸入的信息ID值是否為數字格式
try{
int id=Integer.parseInt(moneyID);
if(id<0) //若ID為負數
addFieldError("moneyIDError",getText("city.admin.setMoney.moneyID.0"));
}catch(NumberFormatException e){
addFieldError("moneyIDError",getText("city.admin.setMoney.format.moneyID"));
e.printStackTrace();
}
}
}
/** 功能:恢復在“顯示方式”中的選擇狀態 */
private void comebackState(){
/* 獲取session中保存的選擇狀態。
* 將選擇狀態保存在session中,
* 是在管理員單擊“顯示”按鈕請求列表顯示時,
* 在ListShow()方法中實現的
*/
Integer getInfoType=(Integer)session.get("infoType");
String getPayForType=(String)session.get("payforType");
String getStateType=(String)session.get("stateType");
/* 恢復選擇的狀態 */
if(getPayForType!=null&&getStateType!=null&&getInfoType!=null){
showType.setInfoType(getInfoType.intValue());
showType.setPayforType(getPayForType);
showType.setStateType(getStateType);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -