📄 postoperating.java
字号:
package cn.jsprun.foreg.service;
import java.lang.reflect.Method;
import java.util.Iterator;
import java.util.Map;
import cn.jsprun.domain.Forumfields;
import cn.jsprun.domain.Members;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.DataParse;
public class PostOperating {
public final String reply = "reply";
public final String posts = "posts";
public final String stick = "stick";
public final String attachment = "attachment";
public void setMembersExtcredit(Forumfields forumfields,String creditspolicy,Members members,Map<String,String> updateField,String operating,boolean add,Integer multiple){
Class[] classArray = {Forumfields.class,String.class,DataParse.class};
Object[] objectArray = {forumfields,creditspolicy,((DataParse)BeanFactory.getBean("dataParse"))};
Method method = null;
try {
method = PostOperating.class.getDeclaredMethod("getCredits_"+operating, classArray);
classArray=null;
} catch (Exception e) {
e.printStackTrace();
}
method.setAccessible(true);
Map<Integer, Byte> resultMap = null;
try {
resultMap = (Map<Integer,Byte>)method.invoke(this, objectArray);
objectArray=null;
} catch (Exception e) {
e.printStackTrace();
}
if(resultMap!=null){
Iterator<Integer> iterator = resultMap.keySet().iterator();
while (iterator.hasNext()) {
Integer key = iterator.next();
int value = (multiple==null?1:multiple)*resultMap.get(key);
setMembersExtcredit(key+"", members, value, add);
if(updateField!=null){
updateField.put("extcredits" + key, "extcredits" + key);
}
}
}
}
public void setMembersExtcredit(String extcredit,Members members,int value,boolean add){
try {
Method method_get = Members.class.getMethod("getExtcredits" + extcredit);
int extcredits = (Integer) method_get.invoke(members);
int temp = 0;
if(add){
temp = extcredits + value;
}else{
temp = extcredits - value;
}
Method method_set = Members.class.getMethod("setExtcredits" + extcredit, Integer.class);
method_set.invoke(members, temp);
} catch (Exception e) {
e.printStackTrace();
}
}
private Map<Integer,Integer> getCredits_reply(Forumfields forumfields,String creditspolicy,DataParse dataParse){
String replycredits = forumfields.getReplycredits();
Map<Integer,Integer> resultMap = null;
if(replycredits!=null&&!replycredits.equals("")){
resultMap = dataParse.characterParse(replycredits, false);
}else{
resultMap = (Map<Integer,Integer>)dataParse.characterParse(creditspolicy, false).get("reply");
}
return resultMap;
}
private Map<Integer,Integer> getCredits_stick(Forumfields forumfields,String creditspolicy,DataParse dataParse){
String digestcredits = forumfields.getDigestcredits();
Map<Integer,Integer> resultMap = null;
if(digestcredits!=null&&!digestcredits.equals("")){
resultMap = dataParse.characterParse(digestcredits, false);
}else{
resultMap = (Map<Integer,Integer>)dataParse.characterParse(creditspolicy, false).get("digest");
}
return resultMap;
}
private Map<Integer,Integer> getCredits_attachment(Forumfields forumfields,String creditspolicy,DataParse dataParse){
String postattachcredits = forumfields.getPostattachcredits();
Map<Integer,Integer> resultMap = null;
if(postattachcredits!=null&&!postattachcredits.equals("")){
resultMap = dataParse.characterParse(postattachcredits, false);
}else{
resultMap = (Map<Integer,Integer>)dataParse.characterParse(creditspolicy, false).get("postattach");
}
return resultMap;
}
private Map<Integer,Integer> getCredits_posts(Forumfields forumfields,String creditspolicy,DataParse dataParse) {
String postcredits = forumfields.getPostcredits();
Map<Integer,Integer> resultMap = null;
if(postcredits!=null&&!postcredits.equals("")){
resultMap = dataParse.characterParse(postcredits, false);
}else{
resultMap = (Map<Integer,Integer>)dataParse.characterParse(creditspolicy, false).get("post");
}
return resultMap;
}
public void setCredits(String creditsformula,Members members,Map<String,String> updateField){
StringBuffer operationString = new StringBuffer(creditsformula.replaceAll("\\s", ""));
boolean sign = updateField==null;
while (true) {
if (operationString.indexOf("digestposts") >= 0) {
operationString.replace(operationString.indexOf("digestposts"),operationString.indexOf("digestposts")+ "digestposts".length(), members.getDigestposts().toString());
if(!sign&&updateField.get("digestposts")!=null){
sign = true;
}
} else if (operationString.indexOf("posts") >= 0) {
operationString.replace(operationString.indexOf("posts"),operationString.indexOf("posts") + "posts".length(),members.getPosts().toString());
if(!sign&&updateField.get("posts")!=null){
sign = true;
}
} else if (operationString.indexOf("oltime") >= 0) {
operationString.replace(operationString.indexOf("oltime"),operationString.indexOf("oltime") + "oltime".length(),members.getOltime().toString());
if(!sign&&updateField.get("oltime")!=null){
sign = true;
}
}else if(operationString.indexOf("pageviews")>=0){
operationString.replace(operationString.indexOf("pageviews"), operationString.indexOf("pageviews")+"pageviews".length(), members.getPageviews().toString());
if(!sign&&updateField.get("pageviews")!=null){
sign = true;
}
}else if(operationString.indexOf("extcredits1")>=0){
operationString.replace(operationString.indexOf("extcredits1"), operationString.indexOf("extcredits1")+"extcredits1".length(), members.getExtcredits1().toString());
if(!sign&&updateField.get("extcredits1")!=null){
sign = true;
}
}else if(operationString.indexOf("extcredits2")>=0){
operationString.replace(operationString.indexOf("extcredits2"), operationString.indexOf("extcredits2")+"extcredits2".length(),members.getExtcredits2().toString());
if(!sign&&updateField.get("extcredits2")!=null){
sign = true;
}
}else if(operationString.indexOf("extcredits3")>=0){
operationString.replace(operationString.indexOf("extcredits3"), operationString.indexOf("extcredits3")+"extcredits3".length(), members.getExtcredits3().toString());
if(!sign&&updateField.get("extcredits3")!=null){
sign = true;
}
}else if(operationString.indexOf("extcredits4")>=0){
operationString.replace(operationString.indexOf("extcredits4"), operationString.indexOf("extcredits4")+"extcredits4".length(), members.getExtcredits4().toString());
if(!sign&&updateField.get("extcredits4")!=null){
sign = true;
}
}else if(operationString.indexOf("extcredits5")>=0){
operationString.replace(operationString.indexOf("extcredits5"), operationString.indexOf("extcredits5")+"extcredits5".length(),members.getExtcredits5().toString());
if(!sign&&updateField.get("extcredits5")!=null){
sign = true;
}
}else if(operationString.indexOf("extcredits6")>=0){
operationString.replace(operationString.indexOf("extcredits6"), operationString.indexOf("extcredits6")+"extcredits6".length(), members.getExtcredits6().toString());
if(!sign&&updateField.get("extcredits6")!=null){
sign = true;
}
}else if(operationString.indexOf("extcredits7")>=0){
operationString.replace(operationString.indexOf("extcredits7"), operationString.indexOf("extcredits7")+"extcredits7".length(), members.getExtcredits7().toString());
if(!sign&&updateField.get("extcredits7")!=null){
sign = true;
}
}else if(operationString.indexOf("extcredits8")>=0){
operationString.replace(operationString.indexOf("extcredits8"), operationString.indexOf("extcredits8")+"extcredits8".length(), members.getExtcredits8().toString());
if(!sign&&updateField.get("extcredits8")!=null){
sign = true;
}
}else{
break;
}
}
if(sign){
String result = excute(operationString);
Integer credits = Double.valueOf(result).intValue();
members.setCredits(credits);
}
}
private String excute(StringBuffer expiression){
if(expiression==null||expiression.equals("0")){
return "0";
}
int indexF = expiression.lastIndexOf("(");
if(indexF<0){
return count(expiression.toString());
}else{
int indexA = expiression.indexOf(")", indexF);
return excute(expiression.replace(indexF, indexA+1, count(expiression.substring(indexF+1, indexA))));
}
}
private String count(String expiression){
StringBuffer tempBuffer = null;
int indexM = expiression.indexOf("*");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -