📄 experience.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 + -