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

📄 rewarddb.java

📁 cwbbs 云网论坛源码
💻 JAVA
字号:
package com.redmoon.forum.plugin.reward;import java.sql.*;import cn.js.fan.base.*;import cn.js.fan.db.*;import cn.js.fan.util.*;import cn.js.fan.web.*;import com.redmoon.forum.plugin.ScoreMgr;import com.redmoon.forum.plugin.ScoreUnit;import com.redmoon.forum.MsgDb;public class RewardDb extends ObjectDb {    public RewardDb() {        super();    }    public RewardDb(long msgId) {        this.msgId = msgId;        init();        load();    }    public void initDB() {        this.tableName = "plugin_reward";        primaryKey = new PrimaryKey("msgId", PrimaryKey.TYPE_LONG);        objectCache = new RewardCache(this);        this.QUERY_CREATE = "insert into plugin_reward (msg_id, score, money_code, is_end, score_given) values (?, ?, ?, 0, 0)";        this.QUERY_SAVE = "update plugin_reward set score=?,is_end=?,money_code=?,score_given=? where msg_id=?";        this.QUERY_DEL = "delete from plugin_reward where msg_id=?";        this.QUERY_LOAD =            "select score, is_end, money_code, score_given from plugin_reward where msg_id=?";        isInitFromConfigDB = false;    }    public boolean del() {        int rowcount = 0;        Conn conn = null;        try {            conn = new Conn(connname);            PreparedStatement ps = conn.prepareStatement(this.QUERY_DEL);            ps.setLong(1, msgId);            rowcount = conn.executePreUpdate();        } catch (SQLException e) {            logger.error("del:" + e.getMessage());        } finally {            if (conn != null) {                conn.close();                conn = null;            }        }        if (rowcount > 0) {            RewardCache cc = new RewardCache(this);            primaryKey.setValue(new Long(msgId));            cc.refreshDel(primaryKey);                                }        return rowcount>0? true:false;    }    public ObjectDb getObjectRaw(PrimaryKey pk) {        return new RewardDb(pk.getLongValue());    }    public boolean create() throws ResKeyException {        int rowcount = 0;        Conn conn = null;        try {            conn = new Conn(connname);            PreparedStatement ps = conn.prepareStatement(this.QUERY_CREATE);            ps.setLong(1, msgId);            ps.setInt(2, score);            ps.setString(3, moneyCode);            rowcount = conn.executePreUpdate();        } catch (SQLException e) {            logger.error("create:" + e.getMessage());            throw new ResKeyException(new SkinUtil(), SkinUtil.ERR_DB);        } finally {            if (conn != null) {                conn.close();                conn = null;            }        }        return rowcount>0? true:false;    }    public boolean save() throws ResKeyException {        int rowcount = 0;        Conn conn = null;        try {            conn = new Conn(connname);            PreparedStatement ps = conn.prepareStatement(this.QUERY_SAVE);            ps.setInt(1, score);            ps.setInt(2, end?1:0);            ps.setString(3, moneyCode);            ps.setInt(4, scoreGiven);            ps.setLong(5, msgId);            rowcount = conn.executePreUpdate();        } catch (SQLException e) {            logger.error("save:" + e.getMessage());            throw new ResKeyException(SkinUtil.ERR_DB);        } finally {            RewardCache uc = new RewardCache(this);            primaryKey.setValue(new Long(msgId));            uc.refreshSave(primaryKey);            if (conn != null) {                conn.close();                conn = null;            }        }        return rowcount>0? true:false;    }    public RewardDb getRewardDb(long id) {        return (RewardDb)getObjectDb(new Long(id));    }    public void load() {        ResultSet rs = null;        Conn conn = new Conn(connname);        try {            PreparedStatement ps = conn.prepareStatement(this.QUERY_LOAD);            ps.setLong(1, msgId);            primaryKey.setValue(new Long(msgId));            rs = conn.executePreQuery();            if (rs.next()) {                score = rs.getInt(1);                end = rs.getInt(2)==1;                moneyCode = rs.getString(3);                scoreGiven = rs.getInt(4);                loaded = true;            }        } catch (SQLException e) {            logger.error("load:" + e.getMessage());        }        finally {            if (conn!=null) {                conn.close();                conn = null;            }        }    }    public void setMsgId(long msgId) {        this.msgId = msgId;    }    public void setScore(int score) {        this.score = score;    }    public void setEnd(boolean end) {        this.end = end;    }    public void setMoneyCode(String moneyCode) {        this.moneyCode = moneyCode;    }    public void setScoreGiven(int scoreGiven) {        this.scoreGiven = scoreGiven;    }    public long getMsgId() {        return msgId;    }    public int getScore() {        return score;    }    public boolean isEnd() {        return end;    }    public String getMoneyCode() {        return moneyCode;    }    public int getScoreGiven() {        return scoreGiven;    }        public int doPay(MsgDb curMsgDb, int score) throws ResKeyException {        RewardDb rootRd = getRewardDb(curMsgDb.getRootid());                int syScore = rootRd.getScore() - rootRd.getScoreGiven();        if (syScore < score) {            throw new ResKeyException(RewardSkin.getResource(), "err_score_inadequate", new Object[] {"" + rootRd.getScore(), "" + syScore});        }        String moneyCode = rootRd.getMoneyCode();        ScoreMgr sm = new ScoreMgr();        ScoreUnit su = sm.getScoreUnit(moneyCode);        int r = 0;                boolean re = su.getScore().pay(su.getScore().SELLER_SYSTEM, curMsgDb.getName(), score);        if (re) {                        RewardDb rd = new RewardDb();            rd.setMsgId(curMsgDb.getId());            rd.setScore(score);            re = rd.create();            if (re) {                r = 1;                rootRd.setScoreGiven(rootRd.getScoreGiven() + score);                                if (rootRd.getScore() - rootRd.getScoreGiven()==0) {                    rootRd.setEnd(true);                    r = 2;                }                re = rootRd.save();            }        }        return r;    }    private long msgId;    private int score = 0;    private boolean end = false;    private String moneyCode;    private int scoreGiven = 0;}

⌨️ 快捷键说明

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