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

📄 pmsaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
			} else {
				if (pmid != null) {
					int pid = convertInt(pmid);
					Pms pms = pmsServer.findPmsBypmid(pid);
					Members member = memberServer.findMemberById(pms.getMsgtoid());
					request.setAttribute("member", member);
					request.setAttribute("pms", pms);
				}
			}
			setExtcredits(request);
			return mapping.findForward("todisplay");
		} else if(inajax!=null){
			if(uid==0){
				this.showMessage(true, "对不起,您还没有登录,不能操作。", response, false);
				return null;
			}
			List<Map<String,String>>usergroups = dataBaseService.executeQuery("select maxpmnum from jrun_usergroups where groupid="+user.getGroupid());
			if(usergroups==null || usergroups.size()<=0 || usergroups.get(0).get("maxpmnum").equals("0")){
				this.showMessage(true, "您已经登录,但你的帐号或其所在的用户组无权访问该页面。", response, false);
				return null;
			}
			usergroups = null;
			String pid = request.getParameter("pid");
			request.setAttribute("pid", pid);
			Members members = memberServer.findMemberById(convertInt(uids));
			request.setAttribute("members",members);
			return mapping.findForward("tosendajax");
		}else{
			String tradepid = request.getParameter("tradepid");
			if(tradepid!=null && !tradepid.equals("")){
				List<Map<String,String>> trades = dataBaseService.executeQuery("SELECT * FROM jrun_trades WHERE pid='"+tradepid+"'");
				if(trades.size()>0){
					Map<String,String>trade = trades.get(0);
					String subject = "[议价]"+trade.get("subject");
					String message = "[url="+boardurl+"viewthread.jsp?do=tradeinfo&tid="+trade.get("tid")+"&pid="+tradepid+"]"+trade.get("subject")+"[/url]\n";
					message += Common.toDigit(trade.get("costprice"))>0?"商品原价:"+trade.get("costprice")+"\n":"";
					message += "商品价格:"+trade.get("price")+"\n";
					message += "物流方式:";
					String transport = trade.get("transport");
					if(transport.equals("1")){
						message += "卖家承担运费";
					}else if(transport.equals("2")){
						message += "买家承担运费";
					}else if(transport.equals("3")){
						message += "虚拟物品或无需邮递";
					}else if(transport.equals("4")){
						message += "买家收到货物后直接支付给物流公司";
					}
					if(transport.equals("1") || transport.equals("2")||transport.equals("4")){
						if(Common.toDigit(trade.get("ordinaryfee"))>0){
							message += ",平邮 "+trade.get("ordinaryfee")+" 元";
						}
						if(Common.toDigit(trade.get("expressfee"))>0){
							message += ",快递 "+trade.get("expressfee")+" 元";
						}
						if(Common.toDigit(trade.get("emsfee"))>0){
							message += ",EMS "+trade.get("emsfee")+" 元";
						}
					}
					message +="\n商品所在地:"+trade.get("locus")+"\n\n";
					message += "购买数量: \n";
					message += "我期望的价格是: \n";
					message += "我议价的理由是: \n";
					Pms pms = new Pms();
					pms.setSubject(subject);
					pms.setMessage(message);
					request.setAttribute("pms", pms);
				}
			}
			List<Map<String,String>>buddylist = dataBaseService.executeQuery("select b.buddyid,m.username from jrun_buddys as b left join jrun_members as m on b.buddyid=m.uid where b.uid = "+uid);
			if (buddylist != null && buddylist.size() > 0) {
				request.setAttribute("buddylist", buddylist);
			} else {
				request.setAttribute("buddylist", null);
			}
			Members members = memberServer.findMemberById(convertInt(uids));
			request.setAttribute("member",members);
			setExtcredits(request);
			return mapping.findForward("todisplay");
		}
	}
	@SuppressWarnings("unchecked")
	public ActionForward sendPms(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		HttpSession session = request.getSession();
		int uid = (Integer) session.getAttribute("jsprun_uid");
		Members fromMember = (Members)session.getAttribute("user");
		int timestamp = (Integer)(request.getAttribute("timestamp"));
		Map<String,String> settings = (Map<String,String>)session.getServletContext().getAttribute("fsmap");
		request.setAttribute("settings", settings);
		String msgto = request.getParameter("msgto");
		String msgtobuddys[] = request.getParameterValues("msgtobuddys[]");
		String subject = request.getParameter("subject");
		String message = request.getParameter("message");
		if(Common.isEmpty(subject)||Common.isEmpty(message))
		{
			request.setAttribute("errorInfo", "请完成标题或内容栏。");
			return mapping.findForward("showMessage");
		}
		String saveoutbox = request.getParameter("saveoutbox");
		DataParse dataParse = (DataParse) BeanFactory.getBean("dataParse");
		Map seccodedata = dataParse.characterParse(settings.get("seccodedata"),false);
		int minposts = Common.toDigit(String.valueOf(seccodedata.get("minposts")),1000000000L, 0L).intValue();
		int seccodestatus = Common.toDigit(settings.get("seccodestatus"), 255L, 0L).intValue();
		boolean seccodecheck = (seccodestatus & 8) > 0&& (minposts <= 0 || fromMember.getPosts() < minposts);
		Map secqaa = dataParse.characterParse(settings.get("secqaa"),false);
		dataParse=null;
		minposts = Common.toDigit(String.valueOf(secqaa.get("minposts")), 1000000000L,	0L).intValue();
		int secqaastatus = Common.toDigit(String.valueOf(secqaa.get("status")), 255L,0L).intValue();
		boolean secqaacheck = (secqaastatus & 4) > 0 && (minposts <= 0 || fromMember.getPosts() < minposts);
		String seccodeverify = request.getParameter("seccodeverify");
		String secanswer = request.getParameter("secanswer");
		if (seccodecheck) {
			if (!seccodeverify.equals(request.getSession().getAttribute("rand"))) {
				request.setAttribute("errorInfo", "您输入的验证码不正确,无法提交,请返回修改。");
				return mapping.findForward("showMessage");
			}
		}
		if (secqaacheck) {
			if (!secanswer.trim().equals(request.getSession().getAttribute("answer").toString())) {
				request.setAttribute("errorInfo", "验证问答回答错误,无法提交,请返回修改。");
				return mapping.findForward("showMessage");
			}
		}
		String ss = "";
		List<Map<String,String>> wordlist = dataBaseService.executeQuery("select * from jrun_words", new String[]{"find","replacement"});
		if(wordlist!=null && wordlist.size()>0){
			for(Map<String,String> word :wordlist){
				if(Common.matches(message,word.get("find"))){
					if(word.get("replacement").equals("{BANNED}")){
						request.setAttribute("errorInfo", "对不起,您填写的内容包含不良内容而无法提交,请返回修改。");
						return mapping.findForward("showMessage");
					}else if(word.get("replacement").equals("{MOD}")){
					}else{
						message = message.replaceAll(word.get("find"),word.get("replacement"));
					}
				}
				if(Common.matches(subject,word.get("find"))){
					if(word.get("replacement").equals("{BANNED}")){
						request.setAttribute("errorInfo", "对不起,您填写的标题包含不良内容而无法提交,请返回修改。");
						return mapping.findForward("showMessage");
					}else if(word.get("replacement").equals("{MOD}")){
					}else{
						subject = subject.replaceAll(word.get("find"),word.get("replacement"));
					}
				}
			}
		}
		wordlist = null;
		message = Common.cutstr(message, 40000, "");
		List<Pms> pmslist = new ArrayList();
		List<Map<String,String>> members = dataBaseService.executeQuery("select m.uid,m.username,m.newsletter,mm.ignorepm,u.maxpmnum from jrun_members m left join jrun_memberfields mm on m.uid=mm.uid left join jrun_usergroups as u on m.groupid=u.groupid where m.username='"+msgto.trim()+"'", new String[]{"uid","username","newsletter","ignorepm","maxpmnum"});
		if ((msgto != null && !msgto.equals("") && members != null && members.size()>0) || msgtobuddys != null) {
			if (msgto != null && !msgto.equals("") && members.size()>0) {
				Map<String,String> member = members.get(0);
				String ignore = member.get("ignorepm");
				if (!ignore.equals("")) {
					if (ignore.toLowerCase().matches("\\{all\\}")) {
						ss = member.get("username") + " 拒绝接受您或所有人发来的短消息,请返回修改。";
					} else {
						String ignores[] = ignore.split(",");
						for (int i = 0; i < ignores.length; i++) {
							if (fromMember.getUsername().equals(ignores[i].trim())) {
								ss = member.get("username")	+ " 拒绝接受您或所有人发来的短消息,请返回修改。";
							}
						}
					}
				}
				if (member.get("maxpmnum").equals("0")) {
					ss = member.get("username")+ " 拒绝接受您或所有人发来的短消息,请返回修改。";
				}
				if (!member.get("newsletter").equals("0")) {
					Pms pms = new Pms();
					pms.setSubject(subject);
					pms.setDateline(timestamp);
					pms.setDelstatus(Byte.valueOf("0"));
					if (saveoutbox != null) {
						pms.setFolder("outbox");
					} else {
						pms.setFolder("inbox");
					}
					pms.setMessage(message);
					pms.setMsgfrom(fromMember.getUsername());
					pms.setMsgfromid(fromMember.getUid());
					pms.setMsgtoid(Common.toDigit(member.get("uid")));
					pms.setNew_(Byte.valueOf("1"));
					dataBaseService.runQuery("update jrun_members set newpm=1 where uid="+member.get("uid"));
					pmslist.add(pms);
				} else {
					ss = member.get("username") + " 拒绝接受您或所有人发来的短消息,请返回修改。";
				}
			}
			if (msgtobuddys != null) {
				for (int i = 0; i < msgtobuddys.length; i++) {
					List<Map<String,String>> memberslist = dataBaseService.executeQuery("select m.uid,m.username,m.newsletter,mm.ignorepm,u.maxpmnum from jrun_members m left join jrun_memberfields mm on m.uid=mm.uid left join jrun_usergroups as u on m.groupid=u.groupid where m.uid="+msgtobuddys[i], new String[]{"uid","username","newsletter","ignorepm","maxpmnum"});
					Map<String,String> member = memberslist.get(0);; memberslist=null;
					String ignore = member.get("ignorepm");
					if (!ignore.equals("")) {
						if (ignore.indexOf("{all}")!=-1) {
							ss = member.get("username")+ " 拒绝接受您或所有人发来的短消息,请返回修改。";
						} else {
							String ignores[] = ignore.split(",");
							for (int j = 0; j < ignores.length; j++) {
								if (fromMember.getUsername().equals(ignores[j].trim())) {
									ss = member.get("username")+ " 拒绝接受您或所有人发来的短消息,请返回修改。";
								}
							}
						}
					}
					if (member.get("maxpmnum").equals("0")) {
						ss = member.get("username") + " 拒绝接受您或所有人发来的短消息,请返回修改。";
					}
					if (!member.get("newsletter").equals("0")) {
						Pms pms = new Pms();
						pms.setSubject(subject);
						pms.setDateline(timestamp);
						pms.setDelstatus(Byte.valueOf("0"));
						if (saveoutbox != null) {
							pms.setFolder("outbox");
						} else {
							pms.setFolder("inbox");
						}
						pms.setMessage(message);
						pms.setMsgfrom(fromMember.getUsername());
						pms.setMsgfromid(fromMember.getUid());
						pms.setMsgtoid(Common.toDigit(member.get("uid")));
						pms.setNew_(Byte.valueOf("1"));
						dataBaseService.runQuery("update jrun_members set newpm=1 where uid="+member.get("uid"));
						pmslist.add(pms);
					} else {
						ss = member.get("username") + " 拒绝接受您或所有人发来的短消息,请返回修改。";
					}
				}
			}
		} else {
			ss = "收件人不存在或存在重复,请返回修改。";
		}
		if (ss.equals("")) {
			if (saveoutbox != null) {
				request.setAttribute("successInfo", "短消息已保存,现在将转入草稿箱。");
				request.setAttribute("requestPath", "pm.jsp?folder=outbox");
				pmsServer.insertPmsList(pmslist);
			} else {
				String messages = null;
				Map creditspolicys=((DataParse) BeanFactory.getBean("dataParse")).characterParse(settings.get("creditspolicy"),false);
				Map<Integer, Integer> postcredits=(Map<Integer,Integer>)creditspolicys.get("pm");
				Map extcredits = ((DataParse) BeanFactory.getBean("dataParse")).characterParse(settings.get("extcredits"), true);
				Set<Integer> keys = postcredits.keySet();
				for (Integer key : keys) {
					Map extcreditmap = (Map)extcredits.get(key);
					if(extcreditmap!=null){
						int extcredit = fromMember==null?0:(Integer)Common.getValues(fromMember, "extcredits"+key);
						int getattacreditvalue = Integer.valueOf(postcredits.get(key)+"");
						String lowerlimit = extcreditmap.get("lowerlimit")==null?"0":String.valueOf(extcreditmap.get("lowerlimit"));
						if(getattacreditvalue!=0&&extcredit-getattacreditvalue<=Integer.valueOf(lowerlimit)){
							messages =  "对不起,您的操作将会导致您的 <b>"+extcreditmap.get("title")+"</b> 低于系统规定的下限值 "+lowerlimit+(extcreditmap.get("unit")!=null?"":extcreditmap.get("unit"))+",请返回修正后重新提交。";
							break;
						}
					}
				}
				if(messages==null && uid!=0){
					Common.updatepostcredits("-", uid, postcredits);
					Common.updatepostcredits(uid, settings.get("creditsformula"));
					Common.updateMember(session, uid);
				}else{
					request.setAttribute("errorInfo", messages);
					return mapping.findForward("showMessage");
				}
				pmsServer.insertPmsList(pmslist);
				if(Common.isshowsuccess(session, "pm_send_succeed")){
					Common.requestforward(response, "pm.jsp?folder=inbox");
					return null;
				}else{
					request.setAttribute("successInfo", "短消息发送成功,现在将转入消息列表。");
					request.setAttribute("requestPath", "pm.jsp?folder=inbox");

⌨️ 快捷键说明

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