replyproxy.java
来自「社区文章采用的是平板、树形自由选择的两种展示方式」· Java 代码 · 共 445 行 · 第 1/2 页
JAVA
445 行
/*
* Created on 2007-3-24
* Last modified on 2007-12-20
* Powered by YeQiangWei.com
*/
package com.yeqiangwei.club.service.topic;
import java.util.List;
import org.apache.log4j.Logger;
import com.yeqiangwei.club.exception.ClubException;
import com.yeqiangwei.club.ip.IPSeeker;
import com.yeqiangwei.club.param.TopicParameter;
import com.yeqiangwei.club.service.ServiceLocator;
import com.yeqiangwei.club.service.ServiceWrapper;
import com.yeqiangwei.club.model.Counters;
import com.yeqiangwei.club.model.ManageLog;
import com.yeqiangwei.club.model.Message;
import com.yeqiangwei.club.model.Reply;
import com.yeqiangwei.club.model.User;
import com.yeqiangwei.club.service.counter.CountService;
import com.yeqiangwei.club.service.message.MessageService;
import com.yeqiangwei.club.service.security.UserPower;
import com.yeqiangwei.club.service.user.RuleService;
import com.yeqiangwei.club.service.user.UserService;
import com.yeqiangwei.club.service.util.ManageLogService;
import com.yeqiangwei.club.service.util.NoAllowedCharService;
import com.yeqiangwei.club.util.LocalizeFile;
import com.yeqiangwei.club.util.MessageUtils;
import com.yeqiangwei.club.view.util.ViewCoder;
import com.yeqiangwei.club.controller.form.TopicTrashForm;
import com.yeqiangwei.util.FormatDateTime;
import com.yeqiangwei.util.IpUtils;
import com.yeqiangwei.util.StringHelper;
import com.yeqiangwei.util.Validator;
public class ReplyProxy implements ReplyService{
private static final Logger logger = Logger.getLogger(ReplyProxy.class);
private static ReplyService REPLY_SERVICE;
private static UserPower USER_POWER;
static{
if(REPLY_SERVICE==null)REPLY_SERVICE = new ReplyServiceImpl();
if(USER_POWER==null)USER_POWER = new UserPower();
}
public int trash(List<Integer> list, boolean isDeleted) throws ClubException {
if(!Validator.isEmpty(list)){
return REPLY_SERVICE.trash(list,isDeleted);
}else{
throw new ClubException(MessageUtils.getMessage("error_parameter"));
}
}
public int delete(List<Integer> ids) {
int c = 0;
if(!Validator.isEmpty(ids)){
c = REPLY_SERVICE.delete(ids);
}
return c;
}
public int updateIsManaged(Reply reply){
return REPLY_SERVICE.updateIsManaged(reply);
}
public Reply trash(TopicTrashForm form) throws ClubException {
Reply model = REPLY_SERVICE.trash(form);
if(!Validator.isEmpty(model)){
User byuser = form.getUser(); //操作人员
User umodel = this.getUserService().findById(form.getUserId()); //帖子作者
if(!Validator.isEmpty(umodel)){
ManageLog log = new ManageLog();
log.setTopicId(model.getTopicId());
log.setReplyId(model.getReplyId());
log.setTitle(model.getTitle());
if(!Validator.isEmpty(byuser)){
log.setByUserId(byuser.getUserId() );
log.setByUserName(byuser.getUserName());
log.setByUserIp(form.getUserIp());
}
log.setCreateDateTime(FormatDateTime.now());
log.setForumId(model.getForumId());
log.setUserName(umodel.getUserName());
log.setUserId(umodel.getUserId());
log.setIsList(form.getIsList());
log.setListByUserName(form.getListByUserName());
log.setIsManaged(true);
if(form.getIsDeleted()){
this.getUserService().ruleUtils(umodel,model.getForumId(),8); //获取用户积分变动
this.getUserService().update(umodel,false);
this.getUserService().ruleUtils(log,model.getForumId(),8); //获取日志积分变动
log.setMemo("文章被删除");
}else{
log.setMemo("文章被恢复");
}
StringBuffer temp = new StringBuffer();
temp.append(form.getContent());
log.setContent(temp.toString());
this.getManageLogService().create(log);
if(form.getSendMessage()==1){ //如果需要通知用户
Message message = new Message();
message.setUserIdOfTake(umodel.getUserId());
message.setUserNameOfTake(umodel.getUserName());
message.setUserIdOfSend(form.getUser().getUserId());
message.setUserNameOfSend(form.getUser().getUserName());
message.setIsOpened(false);
message.setCreateDateTime(FormatDateTime.now());
message.setUserIpOfTake(model.getUserIp());
message.setUserIpOfSend(form.getUserIp());
message.setTitle(log.getMemo()+"("+model.getTitle()+")");
StringBuffer sb = new StringBuffer();
if(!Validator.isEmpty(form.getContent())){
sb.append(form.getContent());
sb.append("\r\n");
}
sb.append("信誉:");
sb.append(ViewCoder.getRuleElement(log.getCredit()));
sb.append("\r\n积分:");
sb.append(ViewCoder.getRuleElement(log.getScore()));
sb.append("\r\n金币:");
sb.append(ViewCoder.getRuleElement(log.getMoney()));
sb.append("\r\n人气:");
sb.append(ViewCoder.getRuleElement(log.getViews()));
message.setContent(sb.toString());
this.getMessageService().create(message, true);
}
}
}
return model;
}
public List<Reply> findReplyAndContent(TopicParameter param) {
return REPLY_SERVICE.findReplyAndContent(param);
}
public Reply findReplyAndContentById(int id) {
return REPLY_SERVICE.findReplyAndContentById(id);
}
public List<Reply> findReplyByTopicId(TopicParameter param) {
return REPLY_SERVICE.findReplyByTopicId(param);
}
public Reply findById(int id) {
return REPLY_SERVICE.findById(id);
}
public void createOrUpdate(Reply model) throws ClubException {
if(model.getReplyId()>0){
this.update(model);
}else{
this.create(model);
}
}
private void localizeFile(Reply model){
if(model.getLocalizeImage()==1
&&USER_POWER.canAccess(
model.getUser(),model.getForumId(),UserPower.OPERATEPOWER,6))
{ //本地化图片
String temp = model.getRContent().getContent();
temp = LocalizeFile.localizeImage(temp,LocalizeFile.imagepath(model.getForumId()));
model.getRContent().setContent(temp);
}
}
private void noAllowed(Reply model) throws ClubException{
if(!this.getNoAllowedCharService().permissionTopic(model)){
throw new ClubException(MessageUtils.getMessage("error_noAllowedChar"));
}else{
double u_score = 0;
double u_money = 0;
double u_credit = 0;
int u_views = 0;
if(!Validator.isEmpty(model.getUser())){
model.setUserId(model.getUser().getUserId());
model.setUserName(model.getUser().getUserName().trim());
u_score = model.getUser().getScore();
u_money = model.getUser().getMoney();
u_credit = model.getUser().getCredit();
u_views = model.getUser().getViews();
}else{//判断用户是否在页面同时输入了用户名和密码,如果是则请求数据库验证,否则只当作过客提交
User user = null;
if(!Validator.isEmpty(model.getPassword())&&!Validator.isEmpty(model.getUserName())){
user = new User();
user.setUserName(model.getUserName());
user.setPassword(model.getPassword());
user = this.getUserService().findByUserNameAndPassword(user,true);
if(Validator.isEmpty(user)){//如果登录失败
//this.setMessage(MessageUtils.getMessage("error_login"));
throw new ClubException(MessageUtils.getMessage("error_login"));
}else{
model.setUserId(user.getUserId());
model.setUserName(user.getUserName());
model.setUser(user);
u_score = user.getScore();
u_money = user.getMoney();
u_credit = user.getCredit();
u_views = user.getViews();
}
}else{//如果密码为空则为过客取名
String eip = IpUtils.enAddr(model.getUserIp());
eip = eip.substring(eip.length()-6,eip.length());
List<String> iplist = IPSeeker.getInstance().IPParser(model.getUserIp());
if(!Validator.isEmpty(iplist)){
model.setUserName(iplist.get(0)+"网友"+eip);
}else{
model.setUserName("网友"+eip);
}
}
/**
* 判断用户操作所需积分等参数
*/
double score = this.getRuleService().getElement(model.getForumId(),RuleService.SCORE,20);
double money = this.getRuleService().getElement(model.getForumId(),RuleService.MONEY,20);
double credit = this.getRuleService().getElement(model.getForumId(),RuleService.CREDIT,20);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?