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

📄 common.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
			creditsadd.append(", extcredits" + key + "= extcredits" + key+ operator + creditsarray.get(key));
		}
		dataBaseService.runQuery("UPDATE jrun_members SET posts=posts+('"+ operator + 1 + "') " + ", lastpost='" + timestamp + "'" + " " + creditsadd+ " WHERE uid =" + uid,true);
		creditsadd=null;
	}
	public static void updatepostcredits(String operator, int uid,Map<Integer, Integer> creditsarray) {
		StringBuffer creditsadd = new StringBuffer();
		Set<Integer> keys = creditsarray.keySet();
		for (Integer key : keys) {
			creditsadd.append(", extcredits" + key + "= extcredits" + key+ operator + creditsarray.get(key));
		}
		if(creditsadd.length()>0){
			dataBaseService.runQuery("UPDATE jrun_members SET " + creditsadd.substring(1)+ " WHERE uid =" + uid,true);
		}
		creditsadd=null;
	}
	public static void updatepostcredits(int uid,String creditsformula) {
		dataBaseService.runQuery("UPDATE jrun_members SET credits="+creditsformula+" WHERE uid =" + uid,true);
	}
	public static void updateMember(HttpSession session,int uid) {
		if(uid>0){
			session.setAttribute("user", memberService.findMemberById(uid));
		}
	}
	@SuppressWarnings("unchecked")
	public static void calcGroup(HttpSession session,HttpServletRequest request,HttpServletResponse response,Map<String,String> settings){
		Members member = (Members) session.getAttribute("user");
		int timestamp = (Integer)request.getAttribute("timestamp");
		if (member != null) {
			List<Map<String,String>> meminfolist = dataBaseService.executeQuery("select mm.groupterms,m.extgroupids,m.credits,m.extcredits1,m.extcredits2,m.extcredits3,m.extcredits4,m.extcredits5,m.extcredits6,m.extcredits7,m.extcredits8,m.groupid,m.adminid,m.newpm,u.type from jrun_members as m left join jrun_memberfields as mm on m.uid=mm.uid left join jrun_usergroups as u on m.groupid=u.groupid where m.uid="+member.getUid());
			if(meminfolist!=null && meminfolist.size()>0){
				Map<String,String> membermap = meminfolist.get(0);
				session.setAttribute("jsprun_groupid", Short.valueOf(membermap.get("groupid")));
				member.setGroupid(Short.valueOf(membermap.get("groupid")));
				member.setAdminid(Byte.valueOf(membermap.get("adminid")));
				member.setNewpm(Byte.valueOf(membermap.get("newpm")));
				member.setExtgroupids(membermap.get("extgroupids"));
				member.setCredits(Integer.valueOf(membermap.get("credits")));
				member.setExtcredits1(Integer.valueOf(membermap.get("extcredits1")));
				member.setExtcredits2(Integer.valueOf(membermap.get("extcredits2")));
				member.setExtcredits3(Integer.valueOf(membermap.get("extcredits3")));
				member.setExtcredits4(Integer.valueOf(membermap.get("extcredits4")));
				member.setExtcredits5(Integer.valueOf(membermap.get("extcredits5")));
				member.setExtcredits6(Integer.valueOf(membermap.get("extcredits6")));
				member.setExtcredits7(Integer.valueOf(membermap.get("extcredits7")));
				member.setExtcredits8(Integer.valueOf(membermap.get("extcredits8")));
				session.setAttribute("user",member);
				String groupterm = membermap.get("groupterms");
				Map grouptermMap = dataParse.characterParse(groupterm,false);
				if(grouptermMap!=null && !grouptermMap.keySet().isEmpty()){
				Map extMap = (Map) grouptermMap.get("ext");
				if (extMap != null) {
					if (!extMap.keySet().isEmpty()) {
						String extgroupids = membermap.get("extgroupids");
						Map extids = new HashMap();
						if (!extgroupids.equals("")) {
							String extdids[] = extgroupids.split("\t");
							if (extdids != null && extdids.length > 0) {
								for (int i = 0; i < extdids.length; i++) {
									extids.put(extdids[i], "yes");
								}
							}
						}
						Iterator it = extMap.keySet().iterator();
						List keylist = new ArrayList();
						while (it.hasNext()) {
							Object key = it.next();
							int time = (Integer) extMap.get(key);
							if (Common.toDigit(time + "", 100000000000000L, 0L).intValue() < timestamp) {
								keylist.add(key);
								if (extids != null && extids.get(key) != null) {
									extids.remove(key);
								}
							}
						}
						if(keylist.size()>0){
							for(int j=0;j<keylist.size();j++){
								extMap.remove(keylist.get(j));
							}
						}
						grouptermMap.put("ext", extMap);
						keylist = null;
						String extidp = "";
						if (extids != null) {
							Iterator its = extids.keySet().iterator();
							while (its.hasNext()) {
								Object key = its.next();
								if(!key.toString().equals("")){
									extidp += key + "\t";
								}
							}
						}
						if(!member.getExtgroupids().equals(extidp)){
							member.setExtgroupids(extidp);
							dataBaseService.runQuery("update jrun_members set extgroupids = '"+extidp.trim()+"' where uid="+member.getUid(),true);
						}
					}else{
						grouptermMap.remove("ext");
					}
				}
				Map mapMap = (Map) grouptermMap.get("main");
				if (mapMap != null&&mapMap.size()>0) {
					byte adminid = (mapMap.get("adminid")==null?(byte)0:Byte.valueOf(mapMap.get("adminid").toString()));
					short groupid = (mapMap.get("groupid")==null?(short)10:Short.valueOf(mapMap.get("groupid").toString()));
					int time = 0;
					if(mapMap.get("time")!=null){
						time = (Integer)mapMap.get("time");
					}
					if (time>0) {
						if (time < timestamp) {
							member.setAdminid(adminid);
							member.setGroupid(groupid);
							member.setGroupexpiry(0);
							member.setCredits(Common.toDigit(membermap.get("credits")));
							dataBaseService.runQuery("update jrun_members set adminid = "+adminid+",groupid="+groupid+",groupexpiry=0 where uid="+member.getUid(),true);
							session.setAttribute("user", member);
							session.setAttribute("jsprun_adminid", member.getAdminid());
							session.setAttribute("jsprun_groupid", member.getGroupid());
							if(mapMap.get("bktime")!=null){
								mapMap.put("time", mapMap.get("bktime"));
								mapMap.remove("bktime");
								mapMap.put("groupid", mapMap.get("bkgroupid"));
								mapMap.remove("bkgroupid");
								mapMap.put("adminid", mapMap.get("bkadminid"));
								mapMap.remove("bkadminid");
								grouptermMap.put("main", mapMap);
							}else{
								grouptermMap.remove("main");
							}
						}
					}
				}
				mapMap=null;
				if(grouptermMap.keySet().isEmpty()){
					dataBaseService.runQuery("update jrun_memberfields set groupterms = '' where uid="+member.getUid(),true);
				}else{
					String pmdf = dataParse.combinationChar(grouptermMap);
					if(!pmdf.equals(groupterm)){
						dataBaseService.runQuery("update jrun_memberfields set groupterms = '"+pmdf+"' where uid="+member.getUid(),true);
						}
					}
				}
				List<Map<String,String>> usergrouplist = dataBaseService.executeQuery("select type from jrun_usergroups where groupid="+member.getGroupid());
				if (usergrouplist.size()<=0||usergrouplist.get(0).get("type").equals("member")) {
					List<Map<String,String>> membergrouplist = dataBaseService.executeQuery("select groupid from jrun_usergroups where type='member' and "+ membermap.get("credits")+" >= creditshigher and creditslower > "+ membermap.get("credits"));
					if (membergrouplist.size()>0 && !membergrouplist.get(0).get("groupid").equals(member.getGroupid()+"")) {
						member.setGroupid(Common.toDigit(membergrouplist.get(0).get("groupid"),1000000L,0L).shortValue());
						member.setAdminid(Byte.valueOf("0"));
						dataBaseService.runQuery("update jrun_members set adminid=0,groupid="+membergrouplist.get(0).get("groupid")+" where uid="+member.getUid(),true);
					}
					membergrouplist = null;
				}
				session.setAttribute("jsprun_adminid", member.getAdminid());
				session.setAttribute("jsprun_groupid", member.getGroupid());
				session.setAttribute("user", member);
				membermap = null;
			}else{
				CookieUtil.clearCookies(request, response, settings);
			}
		}
	}
	public static boolean uploadFile(FormFile src,String targetpath){
		InputStream is = null;
		OutputStream os = null;
		boolean flag = false;
		try {
			is = new BufferedInputStream(src.getInputStream(),4096);
			os =  new BufferedOutputStream(new FileOutputStream(targetpath),4096);
			int count = 0;
			byte[] buffer = new byte[4096];
			while((count = is.read(buffer))>0){
		         os.write(buffer,0,count);
		    }
			flag = true;
			buffer = null;
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			if(os != null){
				try {
					os.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if(is != null){
				try {
					is.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		is = null;src=null;
		return flag;
	}
	public static void updatemodworks(Map<String, String> settings, int uid,int timestamp, String modaction, int posts) {
		String today = new SimpleDateFormat("yyyy-MM-dd").format(timestamp* 1000L+ Common.toDigit(settings.get("timeoffset"), 1000L, 0L).intValue()* 3600);
		if ("1".equals(settings.get("modworkstatus")) && !"".equals(modaction) && posts > 0) {
			List<Map<String, String>> modworks = dataBaseService.executeQuery("SELECT * FROM jrun_modworks WHERE uid='"+ uid + "' AND modaction='" + modaction+ "' AND dateline='" + today + "'");
			if (modworks != null && modworks.size() > 0) {
				dataBaseService.runQuery("UPDATE jrun_modworks SET count=count+1, posts=posts+'" + posts+ "' WHERE uid='" + uid + "' AND modaction='"+ modaction + "' AND dateline='" + today + "'",true);
			} else {
				dataBaseService.runQuery("INSERT INTO jrun_modworks (uid, modaction, dateline, count, posts) VALUES ('"+ uid + "', '" + modaction + "', '" + today + "', 1, '"+ posts + "')",true);
			}
		}
	}
	public static void updatemodlog(Members member, int timestamp, String tid,String action, Integer expiration, int status, boolean iscron) {
		int uid = iscron ? member.getUid() : 0;
		String username = iscron ? "0" : member.getUsername();
		expiration = expiration != null ? expiration : 0;
		String data = "";
		String comma = "";
		String[] tids = tid.split(",");
		if (tids != null && tids.length > 0) {
			for (String obj : tids) {
				data += comma + " ('" + obj + "', '" + uid + "', '" + username+ "', '" + timestamp + "', '" + action + "', '"+ expiration + "', '1')";
				comma = ",";
			}
		}
		if (!"".equals(data)) {
			dataBaseService.runQuery("INSERT INTO jrun_threadsmod (tid, uid, username, dateline, action, expiration, status) VALUES "+ data,true);
		}
	}
	@SuppressWarnings({ "unchecked", "deprecation" })
	public static void updatesession(HttpServletRequest request,Map<String, String> settings) {
		HttpSession httpSession = request.getSession();
		int seccode = (Integer) request.getAttribute("seccode");
		boolean sessionexists = (Boolean) request.getAttribute("sessionexists");
		String sid = (String) httpSession.getAttribute("jsprun_sid");
		String onlineip = request.getRemoteAddr();
		int jsprun_uid = (Integer) httpSession.getAttribute("jsprun_uid");
		Members member = (Members) httpSession.getAttribute("user");
		int timestamp=(Integer)(request.getAttribute("timestamp"));
		int lastactivity = timestamp;
		int pvfrequence = Common.toDigit(settings.get("pvfrequence"), 1000000000L,0L).intValue();
		int spageviews = 0;
		int lastolupdate = (Integer) request.getAttribute("lastolupdate");
		int oltimespan = Common.toDigit(settings.get("oltimespan"), 1000000000L,0L).intValue();
		int onlinehold = Common.toDigit(settings.get("onlinehold"), 1000000000L,0L).intValue();
		String styleid = (String)httpSession.getAttribute("styleid");
		short groupid = (Short) httpSession.getAttribute("jsprun_groupid");
		styleid = Common.toDigit(styleid)>0? styleid : settings.get("styleid");
		byte invisible = 0;
		int jsprun_action =Common.toDigit((String)request.getAttribute("jsprun_action"), 255L, 0L).intValue();
		Short fid = (Short) request.getAttribute("fid");
		Integer tid = (Integer) request.getAttribute("tid");
		fid = fid != null ? fid : 0;
		tid = tid != null ? tid : 0;
		short bloguid = 0;
		String jsprun_userss=null;
		if (member != null) {
			lastactivity = member.getLastactivity();
			invisible = member.getInvisible();
			jsprun_userss = member.getUsername();
		}else{
			jsprun_userss="";
		}
		if (oltimespan > 0&& jsprun_uid > 0	&& lastactivity > 0	&& ((timestamp - (lastolupdate > 0 ? lastolupdate : lastactivity)) > (oltimespan * 60))) {
			lastolupdate = timestamp;
			List<Map<String, String>> count = dataBaseService.executeQuery("SELECT count(*) count FROM jrun_onlinetime WHERE uid='" + jsprun_uid	+ "' AND lastupdate<='" + (timestamp - oltimespan * 60)	+ "'");
			int size = (count != null && count.size() > 0 ? Integer	.valueOf(count.get(0).get("count")) : 0);
			if (size > 0) {
				dataBaseService.runQuery("UPDATE jrun_onlinetime SET total=total+'"	+ oltimespan + "', thismonth=thismonth+'" + oltimespan	+ "', lastupdate='" + timestamp + "' WHERE uid='"+ jsprun_uid + "' AND lastupdate<='"+ (timestamp - oltimespan * 60) + "'",true);
			} else {
				List<Map<String,String>> insert = dataBaseService.executeQuery("select uid from jrun_onlinetime where uid="+jsprun_uid+" limit 1");
				if(insert==null || insert.size()<=0){
					dataBaseService.runQuery("INSERT INTO jrun_onlinetime (uid, thismonth, total, lastupdate) VALUES ('"+ jsprun_uid + "', '" + oltimespan + "', '"	+ oltimespan + "', '" + timestamp + "')",true);
				}
				insert = null;
			}
		}
		if (sessionexists) {
			String pageviewsadd = null;
			if (pvfrequence > 0 && jsprun_uid > 0) {
				if (spageviews >= pvfrequence) {
					pageviewsadd = ", pageviews=\'0\'";
					dataBaseService.runQuery("UPDATE jrun_members SET pageviews=pageviews+'" + spageviews+ "' WHERE uid='" + jsprun_uid + "'",true);
					member.setPageviews(member.getPageviews()+spageviews);
					httpSession.setAttribute("user",member);
				} else {
					pageviewsadd = ", pageviews=pageviews+1";
				}
			} else {
				pageviewsadd = "";
			}
			dataBaseService.runQuery("UPDATE jrun_sessions SET uid='" + jsprun_uid+ "', username='" + jsprun_userss + "', groupid='"+ groupid + "', styleid='" + styleid + "', invisible='"	+ invisible + "', action='" + jsprun_action+ "', lastactivity='" + timestamp + "', lastolupdate='"+ lastolupdate + "', seccode='" + seccode + "', fid='"+ fid + "', tid='" + tid + "', bloguid='" + bloguid + "' "+ pageviewsadd + " WHERE sid='" + sid + "'",true);
		} else {
			String[] ips = onlineip.split("\\.");
			if(ips.length<4){
				ips=new String[]{"0","0","0","0"};
			}
			dataBaseService.runQuery("DELETE FROM jrun_sessions WHERE sid='" + sid+ "' OR lastactivity<" + (timestamp - onlinehold)+ " OR ('" + jsprun_uid + "'<>'0' AND uid='" + jsprun_uid+ "') OR (uid='0' AND ip1='" + ips[0] + "' AND ip2='"+ ips[1] + "' AND ip3='" + ips[2] + "' AND ip4='" + ips[3]+ "' AND lastactivity>" + (timestamp - 60) + ")",true);
			dataBaseService.runQuery("REPLACE INTO jrun_sessions (sid, ip1, ip2, ip3, ip4, uid, username, groupid, styleid, invisible, action, lastactivity, lastolupdate, seccode, fid, tid, bloguid) VALUES ('"+ sid + "

⌨️ 快捷键说明

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