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

📄 credit.java

📁 cwbbs 云网论坛源码
💻 JAVA
字号:
package com.redmoon.forum.plugin.score;import com.redmoon.forum.plugin.base.IPluginScore;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;import com.redmoon.forum.plugin.ScoreExchangeConfig;import com.redmoon.forum.plugin.ScoreRecordDb;public class Credit implements IPluginScore {    Logger logger = Logger.getLogger(this.getClass().getName());    public static final String code = "credit";    public ScoreUnit scoreUnit;    public Credit() {        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 void login(UserDb user) throws ErrMsgException {        user.setCredit(user.getCredit() + scoreUnit.getLoginValue());        user.save();    }    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.setCredit(user.getCredit() + scoreUnit.getAddValue());        return user.save();    }    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.setCredit(user.getCredit() + scoreUnit.getReplyValue());        return user.save();    }    public boolean delSingleMsg(MsgDb md) throws            ResKeyException {        if (!isPluginBoard(md.getboardcode()))            return true;        UserDb user = new UserDb();        user = user.getUser(md.getName());        user.setCredit(user.getCredit() + 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.setCredit(user.getCredit() + 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.setCredit(user.getCredit() + d);        return user.save();    }    public void regist(UserDb user) throws ErrMsgException {        user.setCredit(scoreUnit.getRegistValue());    }    public boolean pay(String buyer, String seller, double value) throws ResKeyException {        int sum = 0;        if (!buyer.equals(SELLER_SYSTEM)) {            sum = (int) getUserSum(buyer);            if (sum < value) {                UserDb ud = new UserDb();                ud = ud.getUser(buyer);                throw new ResKeyException("res.forum.plugin.score.Gold",                                          "err_inadequate", new Object[] {ud.getNick(),                                          "" + sum, "" + (int)value});            }                    }        boolean re = false;        if (seller.equals(this.SELLER_SYSTEM)) {            UserDb ud = new UserDb();            UserDb buser = ud.getUser(buyer);            buser.setCredit(buser.getCredit() - (int) value);            re = buser.save();        }        else {            if (buyer.equals(this.SELLER_SYSTEM)) {                UserDb ud = new UserDb();                UserDb suser = ud.getUser(seller);                suser.setCredit(suser.getCredit() + (int) value);                re = suser.save();            }            else {                UserDb ud = new UserDb();                UserDb buser = ud.getUser(buyer);                UserDb suser = ud.getUser(seller);                buser.setCredit(buser.getCredit() - (int) value);                if (buser.save()) {                    suser.setCredit(suser.getCredit() + (int) value);                    re = suser.save();                }            }        }        if (re) {            ScoreRecordDb srd = new ScoreRecordDb();            srd.setBuyer(buyer);            srd.setSeller(seller);            srd.setFromScore(code);            srd.setToScore(code);            srd.setFromValue(value);            srd.setToValue(value);            srd.setOperation(ScoreRecordDb.OPERATION_PAY);            srd.create();        }        return re;    }    public double getUserSum(String userName) {        UserDb ud = new UserDb();        ud = ud.getUser(userName);        return ud.getCredit();    }    public boolean changeUserSum(String userName, double valueDlt) {        UserDb ud = new UserDb();        ud = ud.getUser(userName);        ud.setCredit(ud.getCredit() + (int)valueDlt);        return ud.save();    }    public boolean onAddAttachment(String userName, int attachmentCount) {        UserDb user = new UserDb();        user = user.getUser(userName);        user.setCredit(user.getCredit() + scoreUnit.getAddAttachmentValue() * attachmentCount);        return user.save();    }    public boolean onDelAttachment(String userName, int attachmentCount) {        UserDb user = new UserDb();        user = user.getUser(userName);        user.setCredit(user.getCredit() + scoreUnit.getDelAttachmentValue() * attachmentCount);        return user.save();    }    public boolean exchange(String userName, String toScore,                            double value) throws ResKeyException {        if(toScore.equals(code)){            throw new ResKeyException("res.forum.plugin.score.Gold","err_code");        }        int sum = 0, exchangeMin = 0;        sum = (int) getUserSum(userName);        ScoreExchangeConfig secfg = new ScoreExchangeConfig();        String tax = secfg.getProperty("tax");        exchangeMin = secfg.getIntProperty("exchangemin");        UserDb ud = new UserDb();        ud = ud.getUser(userName);        if (sum < value || sum < exchangeMin) {            throw new ResKeyException("res.forum.plugin.score.Gold","err_inadequate", new Object[] {ud.getNick(),"" + sum, "" + (int) value});        }        ud.setCredit(ud.getCredit() - (int) value);        if (ud.save()) {            ScoreMgr sm = new ScoreMgr();            ScoreUnit fromSu = sm.getScoreUnit(code);            int fromRatio = fromSu.getRatio();            ScoreUnit toSu = sm.getScoreUnit(toScore);            int toRatio = toSu.getRatio();            toSu.getScore().changeUserSum(userName, (int)(value * fromRatio * ((double)1 - Double.parseDouble(tax)) / toRatio));            ScoreRecordDb srd = new ScoreRecordDb();            srd.setBuyer(userName);            srd.setSeller(userName);            srd.setFromScore(code);            srd.setToScore(toScore);            srd.setFromValue(value);            srd.setToValue(value * fromRatio *                                  ((double) 1 - Double.parseDouble(tax)) /                                  toRatio);            srd.setOperation(ScoreRecordDb.OPERATION_EXCHANGE);            return srd.create();        }        return true;    }    public boolean transfer(String fromUserName, String toUserName, double value) throws            ResKeyException {        if (fromUserName.equals(toUserName)) {            throw new ResKeyException("res.forum.plugin.score.Gold", "err_name");        }        int sum = 0, transferMin = 0;        sum = (int) getUserSum(fromUserName);        ScoreExchangeConfig secfg = new ScoreExchangeConfig();        String tax = secfg.getProperty("tax");        transferMin = secfg.getIntProperty("transfermin");        UserDb ud = new UserDb();        UserDb fuser = ud.getUser(fromUserName);        if (sum < value || sum < transferMin) {            throw new ResKeyException("res.forum.plugin.score.Gold","err_inadequate", new Object[] {fuser.getNick(),"" + sum, "" + (int) value});        }        UserDb tuser = ud.getUser(toUserName);        fuser.setCredit(fuser.getCredit() - (int) value);        if (fuser.save()) {            tuser.setCredit(tuser.getCredit() + (int) (value * ((double) 1 - Double.parseDouble(tax))));            tuser.save();            ScoreRecordDb srd = new ScoreRecordDb();            srd.setBuyer(fromUserName);            srd.setSeller(toUserName);            srd.setFromScore(code);            srd.setFromValue(value);            srd.setToValue(value *                                  ((double) 1 - Double.parseDouble(tax)));            srd.setOperation(ScoreRecordDb.OPERATION_TRANSFER);            return srd.create();        }        return true;    }}

⌨️ 快捷键说明

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