⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userdb.java

📁 源码/软件简介: 云网论坛1.1RC国际版是采用JSP开发的集论坛、CMS(网站内容管理系统)、博客、聊天室、商城、交友、语音灌水等于一体的门户式社区。拥有CWBBS ( Cloud Web BBS
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
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 + -