📄 pmsaction.java
字号:
} 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 + -