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

📄 topicadminactionservice.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
		Threadsmod threadsmod = null;
		ThreadsmodId threadsmodId  = null;
		StringBuffer tidBuffer = new StringBuffer();
		for(Threads threads_old : threadsList){
			
			Integer tid = threads_old.getTid();
			tidBuffer.append(tid+",");
			threadsmod = new Threadsmod();
			threadsmodId = new ThreadsmodId();
			threadsmodId.setAction(operationE);
			threadsmodId.setDateline(timestamp);
			threadsmodId.setExpiration(0);
			threadsmodId.setMagicid((short)0);
			threadsmodId.setStatus((byte)1);
			threadsmodId.setTid(tid);
			threadsmodId.setUid((Integer)parameterMap.get("uid"));
			threadsmodId.setUsername((String)parameterMap.get("username"));
			threadsmod.setId(threadsmodId);
			threadsmodList.add(threadsmod);
			writeLog(parameterMap,currentForumName, threads_old.getSubject(),threads_old.getTid()+"", operationE,timestamp);
		}
		threadsmod = null;
		threadsmodId = null;
		
		if(tidBuffer.length()>0){
			StringBuffer sqlBuffer = new StringBuffer("UPDATE "+tableprefix+"threads AS t SET t.typeid="+parameterMap.get("typeId")+", t.moderated=1 WHERE t.tid IN(");
			sqlBuffer.append(tidBuffer);
			int sqlBSize = sqlBuffer.length();
			sqlBuffer.replace(sqlBSize-1, sqlBSize, ")");
			((DataBaseDao)BeanFactory.getBean("dataBaseDao")).execute(sqlBuffer.toString());
			sqlBuffer = null;
		}
		tidBuffer = null;
		
		sendMessageToAuthor(parameterMap,currentForumName, (String)parameterMap.get("url"), operationE, threadsList,(Float)parameterMap.get("timeoffset"));
		((ThreadsmodDao)BeanFactory.getBean("threadsmodDao")).saveList(threadsmodList);
		threadsmodList = null;
		Common.updatemodworks((Map<String,String>)parameterMap.get("settingMap"), (Integer)parameterMap.get("uid"), timestamp, operationE, (short)threadsList.size());
		operationE = null;
		threadsList = null;
		return null;
	}
	private String operating_digest(Map<String,Object> parameterMap){
		String[] moderate_ = (String[])parameterMap.get("moderate_");
		if(moderate_==null){
			return "对不起,您没有选择主题或者无法操作特殊主题,请返回修改。";
		}
		String expiration = (String)parameterMap.get("expiration");
		float timeoffset = (Float)parameterMap.get("timeoffset");
		Integer expirationInteger = validateExpiration(expiration==null?"":expiration,timeoffset);
		expiration = null;
		if(expirationInteger==null){
			return "您设置的有效期限超出系统允许的范围或格式不正确,请返回修改。";
		}
		DataBaseDao dataBaseDao = ((DataBaseDao)BeanFactory.getBean("dataBaseDao"));
		String fid = (String)parameterMap.get("fid");
		String currentForumName = dataBaseDao.executeQuery("SELECT name FROM "+tableprefix+"forums WHERE fid="+fid).get(0).get("name");
		String level = (String)parameterMap.get("level");
		String operationE = null;
		
		if(level.equals("0")){
			operationE = "UDG";
		}else{
			if(expirationInteger==0){
				operationE = "DIG";
			}else{
				operationE = "EDI";
			}
		}
		
		List<Threads> threadsList = getThreadsList(moderate_);
		List<Threadsmod> threadsmodList = new ArrayList<Threadsmod>();
		Map<String,String> updateField = new HashMap<String, String>();
		updateField.put("digestposts", "digestposts");
		
		MembersDao memberDao = ((MembersDao)BeanFactory.getBean("memberDao"));
		PostOperating postOperating = (PostOperating)BeanFactory.getBean("postOperating");
		Forumfields forumfields = ((ForumfieldsDao)BeanFactory.getBean("forumfieldsDao")).findById(Short.valueOf(fid));
		
		byte levelByte = Byte.parseByte(level);
		String creditspolicy = (String) parameterMap.get("creditspolicy");
		String creditsformula = (String)parameterMap.get("creditsformula");
		int timestamp = Common.time();
		StringBuffer updateThreadsId = new StringBuffer();
		for(Threads threads_old : threadsList){
			Integer tid = threads_old.getTid();
			byte digest = threads_old.getDigest();
			updateThreadsId.append(tid+",");
			
			if(Byte.parseByte(level)!=digest){
				Members members = memberDao.findMemberById(threads_old.getAuthorid());
				if(members!=null){
					postOperating.setMembersExtcredit(forumfields, creditspolicy, members, updateField, postOperating.stick,true,levelByte-digest);
					
					if(digest==0&&Byte.valueOf(level)!=0){
						members.setDigestposts((short)(members.getDigestposts()+1));
					}else if(digest!=0&&Byte.valueOf(level)==0){
						members.setDigestposts((short)(members.getDigestposts()-1));
					}
					
					postOperating.setCredits(creditsformula, members,updateField);
					memberDao.modifyMember(members);
				}
			}
			
			Threadsmod threadsmod = new Threadsmod();
			ThreadsmodId threadsmodId = new ThreadsmodId();
			threadsmodId.setAction(operationE);
			threadsmodId.setDateline(timestamp);
			threadsmodId.setExpiration(expirationInteger);
			threadsmodId.setMagicid((short)0);
			threadsmodId.setStatus((byte)1);
			threadsmodId.setTid(tid);
			threadsmodId.setUid((Integer)parameterMap.get("uid"));
			threadsmodId.setUsername((String)parameterMap.get("username"));
			threadsmod.setId(threadsmodId);
			threadsmodList.add(threadsmod);
			writeLog(parameterMap,currentForumName, threads_old.getSubject(),threads_old.getTid()+"", operationE,timestamp);
		}
		creditspolicy = null;
		creditsformula = null;
		expirationInteger = null;
		updateField = null;
		memberDao = null;
		postOperating = null;
		forumfields = null;
		
		if(updateThreadsId.length()!=0){
			StringBuffer sqlBuffer = new StringBuffer("UPDATE "+tableprefix+"threads AS t SET t.digest="+level+", t.moderated=1 WHERE t.tid IN(");
			sqlBuffer.append(updateThreadsId);
			int sqlL = sqlBuffer.length();
			sqlBuffer.replace(sqlL-1, sqlL, ")");
			dataBaseDao.execute(sqlBuffer.toString());
			sqlBuffer = new StringBuffer("UPDATE "+tableprefix+"threadsmod SET status=0 WHERE tid IN(");
			sqlBuffer.append(updateThreadsId);
			sqlL = sqlBuffer.length();
			sqlBuffer.replace(sqlL-1, sqlL, ")");
			sqlBuffer.append(" AND action in ('DIG', 'UDI', 'EDI', 'UED') AND status=1");
			dataBaseDao.execute(sqlBuffer.toString());
			sqlBuffer = null;
			dataBaseDao = null;
		}
		level = null;
		updateThreadsId = null;
		sendMessageToAuthor(parameterMap,currentForumName, (String)parameterMap.get("url"), operationE, threadsList,(Float)parameterMap.get("timeoffset"));
		((ThreadsmodDao)BeanFactory.getBean("threadsmodDao")).saveList(threadsmodList);
		threadsmodList = null;
		Common.updatemodworks((Map<String,String>)parameterMap.get("settingMap"), (Integer)parameterMap.get("uid"), timestamp, operationE, (short)threadsList.size());
		threadsList = null;
		operationE = null;
		return null;
	}
	private String operating_delete(Map<String, Object> parameterMap) {
		PostsDao postsDao = ((PostsDao)BeanFactory.getBean("postsDao"));
		if (parameterMap.get("moderate_") == null) {
			return "对不起,您没有选择主题或者无法操作特殊主题,请返回修改。";
		}
		String expiration = (String)parameterMap.get("expiration");
		float timeoffset = (Float)parameterMap.get("timeoffset");
		Integer expirationInteger = validateExpiration(expiration==null?"":expiration,timeoffset);
		expiration = null;
		if(expirationInteger==null){
			return "您设置的有效期限超出系统允许的范围或格式不正确,请返回修改。";
		}
		
		
		String operationE = expirationInteger==0?"DEL":"TDEL";
		
		Map<String, String> updateField = new HashMap<String, String>();
		Map<String, String> updateField_posts = new HashMap<String, String>();
		updateField.put("posts", "posts");
		updateField_posts.put("posts", "posts");

		List<Threads> threadsList = getThreadsList((String[])parameterMap.get("moderate_"));
		List<Threadsmod> threadsmodList = new ArrayList<Threadsmod>();
		
		Forums forums = null;
		Short fid = Short.valueOf((String)parameterMap.get("fid"));
		if(fid==null&&threadsList.size()>0){
			fid = threadsList.get(0).getFid();
		}
		if(fid!=null){
			forums = ((ForumsDao)BeanFactory.getBean("forumsDao")).findById(fid);
		}
		if(forums==null){
			return "错误--03.ON 1817";
		}
		byte invisble = forums.getRecyclebin();
		String currentForumName = forums.getName();
		DataBaseDao dataBaseDao = ((DataBaseDao)BeanFactory.getBean("dataBaseDao"));
		PostOperating postOperating = (PostOperating)BeanFactory.getBean("postOperating");
		Forumfields forumfields = ((ForumfieldsDao)BeanFactory.getBean("forumfieldsDao")).findById(fid);
		MembersDao membersDao = ((MembersDao)BeanFactory.getBean("memberDao"));
		
		Map<String,String> tid_delThreadMap = new HashMap<String, String>();
		Map<String,String> tid_moveThreadMap = new HashMap<String, String>();
		List<Map<String,String>> resultMapList = dataBaseDao.executeQuery("SELECT tid,action FROM "+tableprefix+"threadsmod WHERE status=1 AND (action='TDEL' OR action REGEXP '^[m|r][0-9]+$')");
		for(Map<String,String> temp : resultMapList){
			if(temp.get("action").equals("TDEL")){
				tid_delThreadMap.put(temp.get("tid"),"");
			}else{
				tid_moveThreadMap.put(temp.get("tid"), "");
			}
		}
		int losslessdel = Integer.parseInt((String)parameterMap.get("losslessdel"));
		Calendar calendar = Common.getGMTCalendar();
		calendar.add(Calendar.DAY_OF_YEAR, -losslessdel);
		Long nowSubtrationLoss = calendar.getTimeInMillis();
		calendar = null;
		int timestamp = Common.time();
		String attachurl_realy = (String)parameterMap.get("attachurl_realy");
		String creditsformula = (String) parameterMap.get("creditsformula");
		int tid = 0; 
		boolean updateCredit = false;
		boolean updateCredit_post = false;
		int tempPostNum = 0;
		Posts postsTemp = null;
		List<Posts> postsList = null;
		StringBuffer tidBuffer = new StringBuffer();
		StringBuffer pidBuffer = new StringBuffer();
		List<Integer> postsIdList = new ArrayList<Integer>();
		for (Threads threads_old : threadsList) {
			tid = threads_old.getTid();
			if(tid_delThreadMap.get(String.valueOf(tid))!=null){
				dataBaseDao.executeDelete("DELETE FROM "+tableprefix+"threadsmod WHERE status=1 AND action='TDEL' AND  tid="+tid);
			}
			if(tid_moveThreadMap.get(String.valueOf(tid))!=null){
				dataBaseDao.execute("UPDATE "+tableprefix+"threadsmod SET status=0 WHERE tid="+tid+" AND status=1 AND action REGEXP '^[m|r][0-9]+$'");
			}
			
			if(expirationInteger==0){
				updateCredit = losslessdel==0||nowSubtrationLoss<threads_old.getDateline()*1000L;
				tidBuffer.append(tid+",");
				
				Members members = membersDao.findMemberById(threads_old.getAuthorid());
				
				if(members!=null){
					if (threads_old.getDigest() != 0) {
						updateField.put("digestposts", "digestposts");
						postOperating.setMembersExtcredit(forumfields, (String) parameterMap.get("creditspolicy"), members, updateField, postOperating.stick, false,1);
						members.setDigestposts((short) (members.getDigestposts() - 1));
					}
					tempPostNum = members.getPosts() - 1;
					members.setPosts(tempPostNum>0?tempPostNum:0);
					if(updateCredit){
						postOperating.setMembersExtcredit(forumfields, (String) parameterMap.get("creditspolicy"), members, updateField, postOperating.posts, false,1);
					}
					postsTemp = postsDao.findByTid(tid);
					if(postsTemp!=null){
						Integer threadPid = postsTemp.getPid();
						operatingAttachment(threadPid, attachurl_realy, forumfields, parameterMap, members, updateField,invisble == 0,updateCredit);
					}
					postOperating.setCredits(creditsformula, members,updateField);
					membersDao.modifyMember(members);
				}
				postsList = postsDao.getPostsListByTid(tid);
				for (Posts posts : postsList) {
					postsIdList.add(posts.getPid());
					updateCredit_post = losslessdel==0||nowSubtrationLoss<posts.getDateline()*1000L;
					pidBuffer.append(posts.getPid()+",");
					if (posts.getFirst().byteValue()==1) {
						continue;
					} else {
						Members members_reply = ((MembersDao)BeanFactory.getBean("memberDao")).findMemberById(posts.getAuthorid());
						if(members_reply!=null){
							members_reply.setPosts(members_reply.getPosts() >= 1?members_reply.getPosts() - 1:0);
							if(updateCredit_post){
								postOperating.setMembersExtcredit(forumfields, (String) parameterMap.get("creditspolicy"), members_reply, updateField, postOperating.reply, false,1);
							}
							operatingAttachment(posts.getPid(), attachurl_realy, forumfields,parameterMap, members_reply, updateField,invisble == 0,updateCredit_post);
							postOperating.setCredits((String) parameterMap.get("creditsformula"),members_reply, updateField_posts);
							((MembersDao)BeanFactory.getBean("memberDao")).modifyMember(members_reply);
						}
					}
				}
			}
			if (expirationInteger!=0||invisble != 0) {
					Threadsmod threadsmod = new Threadsmod();
					ThreadsmodId threadsmodId = new ThreadsmodId();
					threadsmodId.setAction(operationE);
					threadsmodId.setDateline(timestamp);
					threadsmodId.setExpiration(expirationInteger);
					threadsmodId.setMagicid((short) 0);
					threadsmodId.setStatus((byte) 1);
					threadsmodId.setTid(tid);
					threadsmodId.setUid((Integer) parameterMap.get("uid"));
					threadsmodId.setUsername((String) parameterMap.get("username"));
					threadsm

⌨️ 快捷键说明

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