📄 userdb.java
字号:
package com.redmoon.forum.person;import java.io.*;import java.sql.*;import java.util.*;import java.util.Date;import javax.servlet.*;import javax.servlet.http.*;import cn.js.fan.base.*;import cn.js.fan.db.*;import cn.js.fan.security.*;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.Config;import com.redmoon.forum.setup.*;import com.redmoon.forum.treasure.*;import com.redmoon.forum.util.*;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 static final int CHECK_STATUS_NOT = 0; public static final int CHECK_STATUS_PASS = 1; public static final String myfaceBasePath = "myface"; public static final String ADMIN = "Administrator"; 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) { Object[] docBlock = getObjectBlock(query, startIndex); return new ObjectBlockIterator(this, docBlock, query, startIndex, endIndex); } public boolean create(String name, String pwd, String nick, String gender, int check_status) { String sql = "insert into sq_user (name,nick,pwd,rawPwd,timeZone,Gender,RegDate,check_status,RealPic) values (?,?,?,?,?,?,?,?,'face.gif')"; boolean re = false; String pwdMD5 = ""; try { pwdMD5 = SecurityUtil.MD5(pwd); } catch (Exception e) { logger.error("regist:" + e.getMessage()); } Conn conn = new Conn(connname); try { PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, name); ps.setString(2, nick); ps.setString(3, pwdMD5); ps.setString(4, pwd); ps.setString(5, "GMT+08:00"); ps.setString(6, gender); ps.setString(7, "" + new java.util.Date().getTime()); ps.setInt(8, check_status); re = conn.executePreUpdate() == 1 ? true : false; } catch (SQLException e) { logger.error("create:" + e.getMessage()); } finally { if (conn != null) { conn.close(); conn = null; } } if (re) { UserCache uc = new UserCache(this); uc.refreshCreate(); ForumDb fd = new ForumDb(); fd = fd.getForumDb(); fd.setUserCount(fd.getUserCount() + 1); fd.setUserNew(name); fd.save(); } return re; } public boolean create() throws ErrMsgException { UserDb user = getUserDbByNick(name); if (user != null && user.isLoaded()) { throw new ErrMsgException("该用户名已被注册,请选择新的用户名!"); } String tzID = timeZone.getID(); boolean isvalid = false; int srt = secret ? 1 : 0; if (name == null || name.equals("")) { name = "" + SequenceMgr.nextID(SequenceMgr.SQ_USER); } 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,IP,rawPwd,timeZone,home,msn,lastTime,curTime,locale,nick,check_status,fetion,can_rename) 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); if (birthday==null) ps.setString(9, ""); else 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.setString(30, ip); ps.setString(31, rawPwd); ps.setString(32, tzID); ps.setString(33, home); ps.setString(34, msn); ps.setString(35, "" + System.currentTimeMillis()); ps.setString(36, "" + System.currentTimeMillis()); ps.setString(37, locale); ps.setString(38, nick); ps.setInt(39, checkStatus); ps.setString(40, fetion); ps.setInt(41, canRename?1:0); 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(); 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 pk = (PrimaryKey)primaryKey.clone(); pk.setValue(primaryKeyValue); return (UserDb) uc.getObjectDb(pk); } public boolean del() throws ResKeyException, ErrMsgException { boolean re = false; UserConfigDb ucd = new UserConfigDb(); long blogId = ucd.getBlogIdByUserName(name); if (blogId != UserConfigDb.NO_BLOG) { ucd = ucd.getUserConfigDb(blogId); 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(); UserPrivDb upd = new UserPrivDb(); upd = upd.getUserPrivDb(name); upd.del(); 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=?," + "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=?,nick=?,check_status=?,online_time=?,fetion=?,can_rename=? 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," + "experience,credit,addcount," + "delcount,arrestday,arrestreason,arresttime,arrestpolice,ispolice,RegDate,lastTime,curTime,eliteCount,gold,favoriate,isValid,rawPwd,diskSpaceAllowed,diskSpaceUsed,isSecret,ip,releasetime,timeZone,home,msn,group_code,locale,nick,check_status,online_time,fetion,can_rename from sq_user where name=?"; } public void setQueryList() { QUERY_LIST = "select name from sq_user order by RegDate desc"; } public ObjectBlockIterator listUserRank(String rankType, int count) { String sql = "select name from sq_user order by " + rankType + " desc"; return getObjects(sql, 0, count); } 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)); 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, experience); ps.setInt(24, credit); ps.setInt(25, addCount); ps.setInt(26, delCount); ps.setInt(27, arrestDay); ps.setString(28, arrestReason); if (arrestTime == null) ps.setString(29, null); else ps.setString(29, DateUtil.toLongString(arrestTime)); ps.setString(30, arrestPolice); ps.setInt(31, isPolice); ps.setString(32, DateUtil.toLongString(lastTime)); ps.setString(33, DateUtil.toLongString(curTime)); ps.setInt(34, eliteCount); ps.setInt(35, gold); ps.setString(36, favoriate); ps.setInt(37, valid ? 1 : 0); ps.setString(38, rawPwd); ps.setInt(39, (int) diskSpaceAllowed); ps.setInt(40, (int) diskSpaceUsed); ps.setInt(41, secret ? 1 : 0); ps.setString(42, ip); releaseTime = DateUtil.addDate(arrestTime, arrestDay); ps.setString(43, DateUtil.toLongString(releaseTime)); String tzID = timeZone.getID(); ps.setString(44, tzID); ps.setString(45, home); ps.setString(46, msn); ps.setString(47, groupCode); ps.setString(48, locale); ps.setString(49, nick); ps.setInt(50, checkStatus); ps.setFloat(51, onlineTime); ps.setString(52, fetion); ps.setInt(53, canRename?1:0); ps.setString(54, name); re = conn.executePreUpdate() == 1 ? true : false; } catch (Exception e) { logger.error("save:" + e.getMessage()); e.printStackTrace(); } finally { UserCache uc = new UserCache(this); primaryKey.setValue(name); uc.refreshSave(primaryKey); uc.refreshNick(nick); if (conn != null) { conn.close(); conn = null; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -