📄 userdb.java
字号:
package com.redmoon.forum.person;
import java.io.*;
import java.sql.*;
import java.util.*;
import java.util.Date;
import javax.servlet.*;
import cn.js.fan.base.*;
import cn.js.fan.db.*;
import cn.js.fan.util.*;
import cn.js.fan.web.*;
import com.redmoon.blog.*;
import com.redmoon.chat.*;
import com.redmoon.forum.*;
import com.redmoon.forum.setup.*;
import com.redmoon.forum.treasure.*;
import com.redmoon.kit.util.*;
public class UserDb extends ObjectDb {
String name, pwdMd5, realName, email;
int experience, credit, addCount, delCount;
String realPic;
private String gender;
private Date regDate;
public UserDb(String name) {
this.name = name;
init();
load();
}
public UserDb() {
init();
}
public String getRealPic() {
return this.realPic;
}
public void setRealPic(String r) {
this.realPic = r;
}
public ObjectBlockIterator getUsers(String query,
int startIndex,
int endIndex) {
// if (!SecurityUtil.isValidSql(query))
// return null;
//可能取得的infoBlock中的元素的顺序号小于endIndex
Object[] docBlock = getObjectBlock(query, startIndex);
return new ObjectBlockIterator(this, docBlock, query,
startIndex, endIndex);
}
public boolean create() throws ErrMsgException {
UserDb user = getUser(name);
if (user.isLoaded()) {
throw new ErrMsgException("该用户名已被注册,请选择新的用户名!");
}
String tzID = timeZone.getID();
boolean isvalid = false;
int srt = secret?1:0;
int id = (int)SequenceMgr.nextID(SequenceMgr.SQ_USER);
/*
String sql =
"insert into sq_user (id, name,pwd,Question,Answer,RealName,Career,Gender,Job, Birthday," +
"Marriage, Phone, Mobile, State, City, Address, PostCode, IDCard," +
"RealPic, Hobbies, Email,OICQ,RegDate,sign,experience,credit,gold,lastTime,curTime,diskSpaceAllowed,diskSpaceUsed,isSecret,IP,rawPwd,timeZone,home,msn) values (" +
id + "," +
StrUtil.sqlstr(name) + "," +
StrUtil.sqlstr(pwdMd5) + "," +
StrUtil.sqlstr(question) + "," +
StrUtil.sqlstr(answer) + "," + StrUtil.sqlstr(realName) + "," +
StrUtil.sqlstr(career) + "," + StrUtil.sqlstr(gender) + "," +
StrUtil.sqlstr(job) + "," + DateUtil.toLong(birthday) + "," +
marriage + "," +
StrUtil.sqlstr(phone) + "," + StrUtil.sqlstr(mobile) + "," +
StrUtil.sqlstr(state) + "," + StrUtil.sqlstr(city) + "," +
StrUtil.sqlstr(address) + "," + StrUtil.sqlstr(postCode) + "," +
StrUtil.sqlstr(IDCard) + "," + StrUtil.sqlstr(realPic) + "," +
StrUtil.sqlstr(hobbies) + "," + StrUtil.sqlstr(email) + "," +
StrUtil.sqlstr(oicq) + "," + StrUtil.sqlstr("" + System.currentTimeMillis()) + "," +
StrUtil.sqlstr(sign) + "," + experience + "," + credit + "," + gold + "," + StrUtil.sqlstr("" + System.currentTimeMillis()) + "," + StrUtil.sqlstr("" + System.currentTimeMillis()) + "," + diskSpaceAllowed + "," + diskSpaceUsed + "," + srt + "," + StrUtil.sqlstr(ip) + "," + StrUtil.sqlstr(rawPwd) + "," + StrUtil.sqlstr(tzID) + "," + StrUtil.sqlstr(home) + "," + StrUtil.sqlstr(msn) + ")";
*/
PreparedStatement ps = null;
String sql =
"insert into sq_user (name,pwd,Question,Answer,RealName,Career,Gender,Job, Birthday," +
"Marriage, Phone, Mobile, State, City, Address, PostCode, IDCard," +
"RealPic, Hobbies, Email,OICQ,RegDate,sign,experience,credit,gold,diskSpaceAllowed,diskSpaceUsed,isSecret,id,IP,rawPwd,timeZone,home,msn,lastTime,curTime,locale) values (" +
"?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
Conn conn = new Conn(connname);
try {
ps = conn.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, pwdMd5);
ps.setString(3, question);
ps.setString(4, answer);
ps.setString(5, realName);
ps.setString(6, career);
ps.setString(7, gender);
ps.setString(8, job);
ps.setString(9, "" + birthday.getTime());
ps.setInt(10, marriage);
ps.setString(11, phone);
ps.setString(12, mobile);
ps.setString(13, state);
ps.setString(14, city);
ps.setString(15, address);
ps.setString(16, postCode);
ps.setString(17, IDCard);
ps.setString(18, realPic);
ps.setString(19, hobbies);
ps.setString(20, email);
ps.setString(21, oicq);
ps.setString(22, "" + System.currentTimeMillis());
ps.setString(23, sign);
ps.setInt(24, experience);
ps.setInt(25, credit);
ps.setInt(26, gold);
ps.setLong(27, diskSpaceAllowed);
ps.setLong(28, diskSpaceUsed);
ps.setInt(29, srt);
ps.setInt(30, id);
ps.setString(31, ip);
ps.setString(32, rawPwd);
ps.setString(33, tzID);
ps.setString(34, home);
ps.setString(35, msn);
ps.setString(36, "" + System.currentTimeMillis());
ps.setString(37, "" + System.currentTimeMillis());
ps.setString(38, locale);
isvalid = conn.executePreUpdate() == 1 ? true : false;
} catch (SQLException e) {
logger.error("create:" + e.getMessage());
isvalid = false;
} finally {
if (conn != null) {
conn.close();
conn = null;
}
}
if (isvalid) {
UserCache uc = new UserCache(this);
uc.refreshCreate();
}
// 更新论坛总人数
if (isvalid) {
ForumDb fd = new ForumDb();
fd = fd.getForumDb();
fd.setUserCount(fd.getUserCount() + 1);
fd.setUserNew(name);
fd.save();
}
return isvalid;
}
public ObjectDb getObjectDb(Object primaryKeyValue) {
UserCache uc = new UserCache(this);
primaryKey.setValue(primaryKeyValue);
return (UserDb)uc.getObjectDb(primaryKey);
}
public boolean del() throws ResKeyException, ErrMsgException {
boolean re = false;
// 删除博客
UserConfigDb ucd = new UserConfigDb();
ucd = ucd.getUserConfigDb(name);
ucd.del();
// 删除用户的贴子
MsgDb md = new MsgDb();
md.delMessagesOfUser(name);
// 删除好友列表
UserFriendDb ufd = new UserFriendDb();
ufd.delFriendsOfUser(name);
// 删除版主
BoardManagerDb bmd = new BoardManagerDb();
bmd.delManager(name);
// 删除财富
TreasureUserDb tu = new TreasureUserDb();
tu.delTreasureOfUser(name);
// 删除聊天室主持
RoomEmceeDb red = new RoomEmceeDb();
red.delEmcee(name);
// 更新会员总数
ForumDb fd = ForumDb.getInstance();
fd.setUserCount(fd.getUserCount() - 1);
fd.save();
Conn conn = new Conn(connname);
try {
PreparedStatement ps = conn.prepareStatement(QUERY_DEL);
ps.setString(1, name);
re = conn.executePreUpdate() == 1 ? true : false;
} catch (Exception e) {
logger.error("del:" + e.getMessage());
} finally {
UserCache uc = new UserCache(this);
primaryKey.setValue(name);
uc.refreshDel(primaryKey);
if (conn != null) {
conn.close();
conn = null;
}
}
return re;
}
public int getObjectCount(String sql) {
UserCache uc = new UserCache(this);
return uc.getObjectCount(sql);
}
public int getUserCount(String sql) {
return getObjectCount(sql);
}
public Object[] getObjectBlock(String query, int startIndex) {
UserCache dcm = new UserCache(this);
return dcm.getObjectBlock(query, startIndex);
}
public ObjectDb getObjectRaw(PrimaryKey pk) {
return new UserDb(pk.getStrValue());
}
public void setQueryCreate() {
}
public void setQuerySave() {
this.QUERY_SAVE =
"update sq_user set pwd=?,Question=?,Answer=?,realname=?," +
"Career=?,Gender=?,Job=?," +
"Birthday=?,Marriage=?,Phone=?," +
"Mobile=?,State=?,City=?,Address=?," +
"PostCode=?,IDCard=?,RealPic=?,Hobbies=?," +
"Email=?,OICQ=?,sign=?,myface=?,myfacewidth=?," +
"myfaceheight=?,experience=?,credit=?,addcount=?," +
"delcount=?,arrestday=?,arrestreason=?,arresttime=?,arrestpolice=?,ispolice=?,lastTime=?,curTime=?,eliteCount=?,gold=?,favoriate=?,isValid=?,rawPwd=?,diskSpaceAllowed=?,diskSpaceUsed=?,isSecret=?,ip=?,releasetime=?,timeZone=?,home=?,msn=?,group_code=?,locale=? where name=?";
}
public void setQueryDel() {
QUERY_DEL = "delete from sq_user where name=?";
}
public void setQueryLoad() {
QUERY_LOAD = "select pwd,Question,Answer,realname," +
"Career,Gender,Job," +
"Birthday,Marriage,Phone," +
"Mobile,State,City,Address," +
"PostCode,IDCard,RealPic,Hobbies," +
"Email,OICQ,sign,myface,myfacewidth," +
"myfaceheight,experience,credit,addcount," +
"delcount,arrestday,arrestreason,arresttime,arrestpolice,ispolice,RegDate,lastTime,curTime,eliteCount,gold,favoriate,isValid,rawPwd,diskSpaceAllowed,diskSpaceUsed,isSecret,id,ip,releasetime,timeZone,home,msn,group_code,locale from sq_user where name=?";
}
public void setQueryList() {
QUERY_LIST = "select name from sq_user order by RegDate desc";
}
public synchronized boolean save() {
boolean re = false;
Conn conn = new Conn(connname);
try {
PreparedStatement ps = conn.prepareStatement(QUERY_SAVE);
ps.setString(1, pwdMd5);
ps.setString(2, question);
ps.setString(3, answer);
ps.setString(4, realName);
ps.setString(5, career);
ps.setString(6, gender);
ps.setString(7, job);
ps.setString(8, "" + DateUtil.toLong(birthday));
// logger.info("save:birthday=" + birthday);
ps.setInt(9, marriage);
ps.setString(10, phone);
ps.setString(11, mobile);
ps.setString(12, state);
ps.setString(13, city);
ps.setString(14, address);
ps.setString(15, postCode);
ps.setString(16, IDCard);
ps.setString(17, realPic);
ps.setString(18, hobbies);
ps.setString(19, email);
ps.setString(20, oicq);
ps.setString(21, sign);
ps.setString(22, myface);
ps.setInt(23, myfaceWidth);
ps.setInt(24, myfaceHeight);
ps.setInt(25, experience);
ps.setInt(26, credit);
ps.setInt(27, addCount);
ps.setInt(28, delCount);
ps.setInt(29, arrestDay);
ps.setString(30, arrestReason);
logger.info("userDb.java arrtestime=" + arrestTime + " longstr=" + DateUtil.toLongString(arrestTime));
if (arrestTime==null)
ps.setString(31, null);
else
ps.setString(31, DateUtil.toLongString(arrestTime));
ps.setString(32, arrestPolice);
ps.setInt(33, isPolice);
ps.setString(34, DateUtil.toLongString(lastTime));
ps.setString(35, DateUtil.toLongString(curTime));
ps.setInt(36, eliteCount);
ps.setInt(37, gold);
ps.setString(38, favoriate);
ps.setInt(39, valid?1:0);
ps.setString(40, rawPwd);
ps.setInt(41, (int)diskSpaceAllowed);
ps.setInt(42, (int)diskSpaceUsed);
ps.setInt(43, secret?1:0);
ps.setString(44, ip);
releaseTime = DateUtil.addDate(arrestTime, arrestDay);
ps.setString(45, DateUtil.toLongString(releaseTime));
String tzID = timeZone.getID();
ps.setString(46, tzID);
ps.setString(47, home);
ps.setString(48, msn);
ps.setString(49, groupCode);
ps.setString(50, locale);
ps.setString(51, name);
logger.info("save:birthday999=" + birthday);
re = conn.executePreUpdate() == 1 ? true : false;
// logger.info("save:birthday99900000=" + birthday);
} catch (Exception e) {
logger.error("save:" + e.getMessage());
e.printStackTrace();
} finally {
UserCache uc = new UserCache(this);
primaryKey.setValue(name);
uc.refreshSave(primaryKey);
if (conn != null) {
conn.close();
conn = null;
}
}
return re;
}
public void setPrimaryKey() {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -