JavaBeans的設計和實作
(四)Mission類和MComp類是和任務相關的兩個類。Mission類是記錄任務資訊的類,MComp是關于任務完成資訊的類。詳情如下:
public class Mission {//任務類的屬性如下:
public String MName,MCon,Depart,Mstatus,MT,Note,TDate;//任務名稱,任務内容,所需部門,任務狀态,任務類型,到期時間
public java.sql.Date RDate;//釋出時間
public int MNO,Mneed,Mcatch,Ulevel;//任務編号,所需人數,已領取人數,所需級别
任務的增加,修改,删除,全部展示等操作與前面紀念品類的相關操作類似,不再重複介紹。
/*為使用者展示可選擇的任務,首先使用者所在部門必須在任務所需部門内,使用者的級别要高于任務所需級别。同時,目前時間應大于任務釋出時間,小于任務到期時間。*/
public static Vector ListForUser(String _Depart,int _Ulevel,String Mobile) {
DBConnect dbc = null;
Vector MissionVector = new Vector();
Calendar c = Calendar.getInstance();//擷取目前時間
Calendar temp = null;//擷取目前時間
java.util.Date date = null;
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
date=c.getTime();//Calendar轉成DATE類型
String dqDate=sdf2.format(date);//實作把目前日期格式為yyyy-MM-dd
java.sql.Date date1=DataConvert.StrTosqlDate(dqDate);
_Depart="%"+_Depart+"%";
String strSQL = "SELECT * FROM Mission where Depart like ? and Mneed>Mcatch and Ulevel<=? and RDate<=? and MNO not in (select MNO from MComp where Mobile=?) ORDER BY MNO DESC";
try {
dbc = new DBConnect();
dbc.prepareStatement(strSQL);
dbc.setString(1, _Depart);
dbc.setInt(2, _Ulevel);
dbc.setDate(3, date1);
dbc.setString(4, Mobile);
ResultSet rs = dbc.executeQuery();
while (rs.next()) {
Mission mission = new Mission();
mission.setMNO(rs.getInt("MNO"));
mission.setMName(rs.getString("MName"));
mission.setMCon(rs.getString("MCon"));
mission.setRDate(rs.getString("RDate"));
mission.setTDate(rs.getString("TDate"));
mission.setUlevel(rs.getInt("Ulevel"));
mission.setDepart(rs.getString("Depart"));
mission.setMneed(rs.getInt("Mneed"));
mission.setMcatch(rs.getInt("Mcatch"));
mission.setMstatus(rs.getString("Mstatus"));
mission.setMT(rs.getString("MT"));
mission.setNote(rs.getString("Note"));
MissionVector.add(mission);
}
} catch (Exception e) {
System.err.println(e);
} finally {
try {
dbc.close();
} catch (Exception e) {
e.printStackTrace();
}}
return MissionVector;
}
/*任務被領取後要更新任務已被領取的數量*/
public static String UpdateMcatch(String _MNO, int _Mcatch) {
DBConnect dbc = null;
try {
dbc = new DBConnect();
dbc.prepareStatement("UPDATE Mission SET Mcatch=? WHERE MNO=?");
dbc.setInt(1, _Mcatch);
dbc.setInt(2, DataConvert.StrToInt(_MNO));
dbc.executeUpdate();
dbc.close();
return "1";
} catch (Exception e) {
e.printStackTrace();
return e.toString();
}}}
任務完成類:
public class MComp {//主要屬性如下:
public String Mobile,Mstatus,Eva,Note;//手機号辨別使用者,任務狀态,任務完成情況的評價
public java.sql.Date CDate;//任務完成時間
public int MCNO,MNO,MTScore,EvaLevel;//任務編号辨別任務,完成任務所得積分,評價等級
/*為特定使用者列出完成任務情況*/
public static Vector ListByMobile(String _Mobile) {
DBConnect dbc = null;
Vector MCompVector = new Vector();
String strSQL = "SELECT * FROM MComp where Mobile=? ORDER BY CDate DESC";
try {
dbc = new DBConnect();
dbc.prepareStatement(strSQL);
dbc.setString(1, _Mobile);
ResultSet rs = dbc.executeQuery();
while (rs.next()) {
MComp mComp = new MComp();
mComp.setMCNO(rs.getInt("MCNO"));
mComp.setMNO(rs.getInt("MNO"));
mComp.setMobile(rs.getString("Mobile"));
mComp.setCDate(rs.getString("CDate"));
mComp.setMstatus(rs.getString("Mstatus"));
mComp.setMTScore(rs.getInt("MTScore"));
mComp.setEvaLevel(rs.getInt("EvaLevel"));
mComp.setEva(rs.getString("Eva"));
mComp.setNote(rs.getString("Note"));
MCompVector.add(mComp);
}
} catch (Exception e) {
System.err.println(e);
} finally {
try {
dbc.close();
} catch (Exception e) {
e.printStackTrace();
}}
return MCompVector;
}
/*根據任務狀态列出清單 */
public static Vector ListByMstatus(String _Mstatus) {
DBConnect dbc = null;
Vector MCompVector = new Vector();
String strSQL = "SELECT * FROM MComp where Mstatus=? ORDER BY CDate DESC";
try {
dbc = new DBConnect();
dbc.prepareStatement(strSQL);
dbc.setString(1, _Mstatus);
ResultSet rs = dbc.executeQuery();
while (rs.next()) {
MComp mComp = new MComp();
mComp.setMCNO(rs.getInt("MCNO"));
mComp.setMNO(rs.getInt("MNO"));
mComp.setMobile(rs.getString("Mobile"));
mComp.setCDate(rs.getString("CDate"));
mComp.setMstatus(rs.getString("Mstatus"));
mComp.setMTScore(rs.getInt("MTScore"));
mComp.setEvaLevel(rs.getInt("EvaLevel"));
mComp.setEva(rs.getString("Eva"));
mComp.setNote(rs.getString("Note"));
MCompVector.add(mComp);}
} catch (Exception e) {
System.err.println(e);
} finally {
try {
dbc.close();
} catch (Exception e) {
e.printStackTrace();
}}
return MCompVector;
}
/* 更新任務狀态 */
public static String UpdateMstatus(String _MCNO, String _Mstatus) {
DBConnect dbc = null;
try {
dbc = new DBConnect();
dbc.prepareStatement("UPDATE MComp SET Mstatus=? WHERE MCNO=?");
dbc.setString(1, _Mstatus);
dbc.setInt(2, DataConvert.StrToInt(_MCNO));
dbc.executeUpdate();
dbc.close();
return "1";
} catch (Exception e) {
e.printStackTrace();
return e.toString();
}}
/* 更新評價 */
public static String UpdateEva(String _MCNO,String _Eva, String _EvaLevel) {
DBConnect dbc = null;
try {
dbc = new DBConnect();
dbc.prepareStatement("UPDATE MComp SET Eva=?,Note=? WHERE MCNO=?");
dbc.setString(1, _Eva);
dbc.setString(2, _EvaLevel);
dbc.setInt(3, DataConvert.StrToInt(_MCNO));
dbc.executeUpdate();
dbc.close();
return "1";
} catch (Exception e) {
e.printStackTrace();
return e.toString();
}}
/* 更新評價等級 */
public static String UpdateEvaLevel(String _MCNO,int _EvaLevel) {
DBConnect dbc = null;
try {
dbc = new DBConnect();
dbc.prepareStatement("UPDATE MComp SET EvaLevel=? WHERE MCNO=?");
dbc.setInt(1, _EvaLevel);
dbc.setInt(2, DataConvert.StrToInt(_MCNO));
dbc.executeUpdate();
dbc.close();
return "1";
} catch (Exception e) {
e.printStackTrace();
return e.toString();
}}
/* 更新使用者獲得的積分 */
public static String UpdateMTScore(String _MCNO,int _MTScore) {
DBConnect dbc = null;
try {
dbc = new DBConnect();
dbc.prepareStatement("UPDATE MComp SET MTScore=? WHERE MCNO=?");
dbc.setInt(1, _MTScore);
dbc.setInt(2, DataConvert.StrToInt(_MCNO));
dbc.executeUpdate();
dbc.close();
return "1";
} catch (Exception e) {
e.printStackTrace();
return e.toString();
}}
/* 更新任務完成時間 */
public static String UpdateCDate(String _MCNO,String _CDate) {
DBConnect dbc = null;
try {
dbc = new DBConnect();
dbc.prepareStatement("UPDATE MComp SET CDate=? WHERE MCNO=?");
dbc.setDate(1, DataConvert.StrTosqlDate(_CDate));
dbc.setInt(2, DataConvert.StrToInt(_MCNO));
dbc.executeUpdate();
dbc.close();
return "1";
} catch (Exception e) {
e.printStackTrace();
return e.toString();
}}}