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

📄 experience.java

📁 源码/软件简介: 云网论坛1.1RC国际版是采用JSP开发的集论坛、CMS(网站内容管理系统)、博客、聊天室、商城、交友、语音灌水等于一体的门户式社区。拥有CWBBS ( Cloud Web BBS
💻 JAVA
字号:
package com.redmoon.forum.plugin.score;

import com.redmoon.forum.plugin.base.IPluginScore;
import com.redmoon.forum.plugin.base.IPluginMsgAction;
import com.redmoon.forum.MsgDb;
import javax.servlet.http.HttpServletRequest;
import cn.js.fan.util.ErrMsgException;
import javax.servlet.ServletContext;
import com.redmoon.forum.plugin.ScoreUnit;
import com.redmoon.forum.plugin.ScoreMgr;
import org.apache.log4j.Logger;
import com.redmoon.forum.BoardScoreDb;
import com.redmoon.forum.Privilege;
import com.redmoon.forum.person.UserDb;
import cn.js.fan.util.ResKeyException;

public class Experience implements IPluginScore {
    Logger logger = Logger.getLogger(this.getClass().getName());

    public static final String code = "experience";
    public ScoreUnit scoreUnit;

    public Experience() {
        scoreUnit = getUnit();
    }

    public ScoreUnit getUnit() {
        ScoreMgr sm = new ScoreMgr();
        return sm.getScoreUnit(code);
    }

    public boolean isPluginBoard(String boardCode) {
        if (scoreUnit.getType().equals(scoreUnit.TYPE_FORUM))
            return true;
        BoardScoreDb be = new BoardScoreDb();
        be = be.getBoardScoreDb(boardCode, code);
        if (be.isLoaded())
            return true;
        else
            return false;
    }

    public boolean AddNew(ServletContext application,
                          HttpServletRequest request, MsgDb md) throws
            ErrMsgException {
        if (!isPluginBoard(md.getboardcode()))
            return true;

        Privilege pvg = new Privilege();
        UserDb user = new UserDb();
        user = user.getUser(pvg.getUser(request));
        user.setExperience(user.getExperience() + scoreUnit.getAddValue());
        return user.save();
    }

    /**
     *
     * @param application ServletContext
     * @param request HttpServletRequest
     * @param replyMsgId int 回贴的id
     * @return boolean
     * @throws ErrMsgException
     */
    public boolean AddQuickReply(ServletContext application,
                                 HttpServletRequest request, long replyMsgId) throws
            ErrMsgException {
        MsgDb md = new MsgDb();
        md = md.getMsgDb(replyMsgId);

        if (!isPluginBoard(md.getboardcode()))
            return true;

        Privilege pvg = new Privilege();
        UserDb user = new UserDb();
        user = user.getUser(pvg.getUser(request));
        user.setExperience(user.getExperience() + scoreUnit.getReplyValue());
        boolean re = user.save();
        return re;
    }

    /**
     * 此函数置于MsgDb delSingleMsg中真正删除贴子之前,以便于递归删除贴子
     * @param delId int
     * @return boolean
     * @throws ErrMsgException
     */
    public boolean delSingleMsg(MsgDb md) throws
            ResKeyException {
        if (!isPluginBoard(md.getboardcode()))
            return true;

        UserDb user = new UserDb();
        user = user.getUser(md.getName());
        user.setExperience(user.getExperience() + scoreUnit.getDelValue());
        return user.save();
    }

    public boolean AddReply(ServletContext application,
                          HttpServletRequest request, MsgDb md) throws
            ErrMsgException {

        if (!isPluginBoard(md.getboardcode()))
            return true;

        Privilege pvg = new Privilege();
        UserDb user = new UserDb();
        user = user.getUser(pvg.getUser(request));
        user.setExperience(user.getExperience() + scoreUnit.getReplyValue());
        return user.save();
    }

    public boolean setElite(MsgDb md, int isElite) throws ResKeyException {
        UserDb user = new UserDb();
        user = user.getUser(md.getName());
        int d = scoreUnit.getEliteValue();
        if (isElite==0)
            d = -d;
        user.setExperience(user.getExperience() + d);
        return user.save();
    }

    public void regist(UserDb user) throws ErrMsgException {
        user.setExperience(scoreUnit.getRegistValue());
    }

    public boolean pay(String buyer, String seller, double value) throws ResKeyException {
        int sum = 0;
        if (!buyer.equals(this.SELLER_SYSTEM)) {
            sum = (int) getUserSum(buyer);
            if (sum < value)
                throw new ResKeyException("res.forum.plugin.score.Gold",
                                          "err_inadequate", new Object[] {buyer,
                                          "" + sum});
            // throw new ErrMsgException("经验不足! " + buyer + "的经验总数为:" + sum);
        }

        if (seller.equals(this.SELLER_SYSTEM)) {
            UserDb ud = new UserDb();
            UserDb buser = ud.getUser(buyer);
            buser.setExperience(buser.getExperience() - (int)value);
            return buser.save();
        }
        else {
            if (buyer.equals(this.SELLER_SYSTEM)) {
                UserDb ud = new UserDb();
                UserDb suser = ud.getUser(seller);
                suser.setExperience(suser.getExperience() + (int) value);
                return suser.save();
            }
            else {
                UserDb ud = new UserDb();
                UserDb buser = ud.getUser(buyer);
                UserDb suser = ud.getUser(seller);
                buser.setExperience(buser.getExperience() - (int) value);
                if (buser.save()) {
                    suser.setExperience(suser.getExperience() + (int) value);
                    return suser.save();
                }
            }
        }
        return true;
    }

    public double getUserSum(String userName) {
        UserDb ud = new UserDb();
        ud = ud.getUser(userName);
        return ud.getExperience();
    }

    public boolean changeUserSum(String userName, double valueDlt) {
        UserDb ud = new UserDb();
        ud = ud.getUser(userName);
        ud.setExperience(ud.getExperience() + (int)valueDlt);
        return ud.save();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -