📄 mymagicboxaction.java
字号:
package cn.jsprun.struts.foreg.actions;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.apache.struts.util.MessageResources;
import cn.jsprun.domain.Forums;
import cn.jsprun.domain.Magiclog;
import cn.jsprun.domain.MagiclogId;
import cn.jsprun.domain.Magicmarket;
import cn.jsprun.domain.Magics;
import cn.jsprun.domain.Membermagics;
import cn.jsprun.domain.MembermagicsId;
import cn.jsprun.domain.Members;
import cn.jsprun.domain.Posts;
import cn.jsprun.domain.Settings;
import cn.jsprun.domain.Threads;
import cn.jsprun.domain.Usergroups;
import cn.jsprun.foreg.service.MemberMagic_MagiclogService;
import cn.jsprun.foreg.service.MemberMagicsService;
import cn.jsprun.foreg.vo.magic.Magic_navbarVO;
import cn.jsprun.foreg.vo.magic.Magic_userVO;
import cn.jsprun.foreg.vo.magic.Magic_userVO_Operation;
import cn.jsprun.foreg.vo.magic.Magic_navbarVO.OtherScoring;
import cn.jsprun.foreg.vo.magic.Magic_userVO.MagicInfo;
import cn.jsprun.foreg.vo.magic.Magic_userVO_Operation.Module;
import cn.jsprun.service.basicsettings.CreditsSetService;
import cn.jsprun.service.forumsedit.ForumService;
import cn.jsprun.service.otherset.OtherSetService;
import cn.jsprun.service.posts.PostsService;
import cn.jsprun.service.posts.ThreadsService;
import cn.jsprun.service.system.DataBaseService;
import cn.jsprun.service.user.MemberService;
import cn.jsprun.service.user.UserGroupService;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Common;
import cn.jsprun.utils.DataParse;
import cn.jsprun.utils.FormDataCheck;
public class MyMagicBoxAction extends DispatchAction {
private OtherSetService otherSetService = (OtherSetService) BeanFactory
.getBean("otherSetService");
private MemberService memberService = (MemberService)BeanFactory.getBean("memberService");
private UserGroupService userGroupService = (UserGroupService)BeanFactory.getBean("userGroupService");
private MemberMagicsService memberMagicsService = (MemberMagicsService) BeanFactory
.getBean("memberMagicsService");
private CreditsSetService creSetSer = (CreditsSetService) BeanFactory.getBean("creditsSetService");
private PostsService postsService = (PostsService)BeanFactory.getBean("postsService");
private ThreadsService threadsService = (ThreadsService)BeanFactory.getBean("threadsService");
private DataBaseService dataBaseService = (DataBaseService)BeanFactory.getBean("dataBaseService");
private final String tablePrefix = "jrun_";
private final Byte buyOrUse = 1;
private final Byte sendOrSell = 2;
public ActionForward showMagicBox(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response){
String typeid = request.getParameter("typeid");
HttpSession session = request.getSession();
Integer memberId = (Integer)session.getAttribute("jsprun_uid");
Map<String,String> settingsMap = (Map<String,String>)request.getAttribute("settings");
Map<String,String> usergroupMap = (Map<String,String>)request.getAttribute("usergroups");
String accessInfo = getAccessInfo(memberId, settingsMap, usergroupMap, buyOrUse);
if(accessInfo!=null){
request.setAttribute("errorInfo", accessInfo);
return mapping.findForward("showMessage");
}
Map<String,Integer> rMap = multi(request, memberId, "SELECT count(magicid) AS count FROM jrun_membermagics WHERE uid='"+memberId+"'", "magic.jsp?action=user");
int beginsize = rMap.get("beginsize");
int pagesize = rMap.get("pagesize");
StringBuffer sqlBuffer = new StringBuffer("SELECT mm.magicid, mm.num, m.identifier, m.name, m.description, m.weight FROM " +tablePrefix+
"magics AS m LEFT JOIN "+tablePrefix+"membermagics AS mm ON m.magicid=mm.magicid WHERE mm.uid='"+memberId+"' LIMIT "+beginsize+", "+pagesize);
if(typeid!=null){
try{
Short.valueOf(typeid);
}catch(NumberFormatException exception){
request.setAttribute("errorInfo", " ERROR ., ");
return mapping.findForward("showMessage");
}
sqlBuffer.append(" AND m.type="+typeid);
}
List<Map<String,String>> resultList = dataBaseService.executeQuery(sqlBuffer.toString(), new String[]{"magicid","num","identifier","name","description","weight"});
Magic_userVO valueObject = new Magic_userVO();
if(resultList!=null){
List<Map<String,String>> memberInfoMapList = dataBaseService.executeQuery("SELECT credits,extcredits1,extcredits2,extcredits3,extcredits4,extcredits5,extcredits6,extcredits7,extcredits8 FROM "+tablePrefix+"members WHERE uid="+memberId);
String memberCredits = "";
Map<Integer,String> extcreditsMap = new HashMap<Integer, String>();
if(memberInfoMapList!=null&&memberInfoMapList.size()>0){
Map<String,String> memberInfoMap = memberInfoMapList.get(0);
memberCredits = memberInfoMap.get("credits");
for(int i = 1;i<9;i++){
extcreditsMap.put(i, memberInfoMap.get("extcredits"+i));
}
}
setMagic_userVO(valueObject, typeid, resultList, memberCredits, memberId, settingsMap, usergroupMap, extcreditsMap);
}
request.setAttribute("valueObject", valueObject);
return mapping.findForward("goMagic_user");
}
public ActionForward prepareOperation(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response){
try{
String operation = request.getParameter("operation");
HttpSession session = request.getSession();
Integer memberId = (Integer)session.getAttribute("jsprun_uid");
Map<String,String> settingsMap = (Map<String,String>)request.getAttribute("settings");
Map<String,String> usergroupMap = (Map<String,String>)request.getAttribute("usergroups");
Byte action = buyOrUse;
if(operation.equals("sell")||operation.equals("give")){
action = sendOrSell;
}
String accessInfo = getAccessInfo(memberId, settingsMap, usergroupMap, action);
if(accessInfo!=null){
request.setAttribute("errorInfo", accessInfo);
return mapping.findForward("showMessage");
}
String magicidFormRequest = request.getParameter("magicid");
short magicid = 0 ;
try{
magicid = Short.valueOf(magicidFormRequest);
}catch(NumberFormatException exception){
request.setAttribute("errorInfo", " ERROR .. ");
return mapping.findForward("showMessage");
}
Magics magics = otherSetService.queryMagicById(magicid);
if(!operation.equals("drop")&&!magicIsUserable(magics.getMagicperm(), usergroupMap.get("groupid"))){
request.setAttribute("errorInfo", "您所在的用户组不能使用该道具");
return mapping.findForward("showMessage");
}
Membermagics memberMagics = memberMagicsService.getMemberMagics(memberId, magics.getMagicid());
if(memberMagics==null){
return mapping.findForward("goMagic_user");
}
List<Forums> allForumsList = getAllForumsList(magics);
List<Map<String,String>> forumsList = getForums(magics);
List<Usergroups> usergroupsList = getUsergroups(magics);
Magic_userVO_Operation valueObject = new Magic_userVO_Operation();
List<Map<String,String>> memberInfoMapList = dataBaseService.executeQuery("SELECT credits,extcredits1,extcredits2,extcredits3,extcredits4,extcredits5,extcredits6,extcredits7,extcredits8 FROM "+tablePrefix+"members WHERE uid="+memberId);
String memberCredits = "";
Map<Integer,String> extcreditsMap = new HashMap<Integer, String>();
if(memberInfoMapList!=null&&memberInfoMapList.size()>0){
Map<String,String> memberInfoMap = memberInfoMapList.get(0);
memberCredits = memberInfoMap.get("credits");
for(int i = 1;i<9;i++){
extcreditsMap.put(i, memberInfoMap.get("extcredits"+i));
}
}
setMagic_userVO_Operation(operation, valueObject, magics, memberMagics, forumsList, usergroupsList, allForumsList, memberCredits, memberId, usergroupMap, settingsMap, extcreditsMap);
request.setAttribute("valueObject", valueObject);
request.setAttribute("magicaction", "user");
return mapping.findForward("goMagic_user");
}catch(Exception exception){
exception.printStackTrace();
return null;
}
}
private void setMagic_userVO_Operation(String operation,Magic_userVO_Operation valueObject,
Magics magics,Membermagics memberMagics,
List<Map<String,String>> forumsList,List<Usergroups> usergroupsList,
List<Forums> allForumsList,String memberCredits,Integer memberId,
Map<String,String> usergroupMap,Map<String,String> settingsMap,Map<Integer,String> extcreditsMap){
valueObject.setOperation(operation);
valueObject.setMagicId(magics.getMagicid());
valueObject.setImageName(magics.getIdentifier().toLowerCase());
valueObject.setMagicName(magics.getName());
valueObject.setMagicExplaining(magics.getDescription());
short magicCount = memberMagics.getNum();
valueObject.setMagicCount(magicCount);
valueObject.setAllMagicWeight(magics.getWeight()*magicCount);
String groupid = usergroupMap.get("groupid");
if(magicIsUserable(magics.getMagicperm(), groupid)){
valueObject.setUsable("可用");
}else{
valueObject.setUsable("不可用");
}
String magicType = magics.getType().toString();
valueObject.setMagicType(magicType);
if(magicType.equals("1")){
if(forumsList!=null){
List<Magic_userVO_Operation.Module> moduleList = valueObject.getModuleList();
for(Map<String,String> formId_Name : forumsList){
Module module = valueObject.getModule();
module.setId(Integer.parseInt(formId_Name.get("fid")));
module.setName(formId_Name.get("name"));
moduleList.add(module);
}
}
}
else if(magicType.equals("2")){
List<String> usergroupNameList = valueObject.getUsergroupNameList();
if(usergroupsList!=null){
for(int i = 0;i<usergroupsList.size();i++){
usergroupNameList.add(usergroupsList.get(i).getGrouptitle());
}
}
}
if(magics.getMagicid()==3
||magics.getMagicid()==6
||magics.getMagicid()==10
||magics.getMagicid()==11){
valueObject.setOperationInfo1("目标帖子pid");
valueObject.setTextName("targetPid");
}else if(magics.getMagicid()==1
||magics.getMagicid()==4
||magics.getMagicid()==5
||magics.getMagicid()==8
||magics.getMagicid()==9
||magics.getMagicid()==12){
valueObject.setOperationInfo1("目标主题tid");
valueObject.setTextName("targetTid");
}else if(magics.getMagicid()==2){
valueObject.setOperationInfo1("获得的钱币数目规则:大于1且小于购买价格150%的随机数");
}else if(magics.getMagicid()==7){
valueObject.setOperationInfo1("目标用户名");
valueObject.setTextName("targetUsername");
}
valueObject.setShowOperationInfo2(magics.getMagicid()==1||magics.getMagicid()==12);
if(magics.getMagicid()==1){
valueObject.setOperationInfo2("变换颜色");
}else if(magics.getMagicid()==12){
valueObject.setOperationInfo2("要移动到的版面");
}
valueObject.setIsChangeColor(magics.getMagicid()==1);
if (magics.getMagicid()==1) {
List<String> colorList = valueObject.getColorList();
String[] colorArray = { "red", "orange", "yellow", "green", "cyan",
"blue", "purple", "gray" };
for (int i = 0; i < colorArray.length; i++) {
colorList.add(colorArray[i]);
}
}
if (magics.getMagicid()==12) {
List<Map<String,String>> mapList = dataBaseService.executeQuery("SELECT extgroupids FROM "+tablePrefix+"members WHERE uid="+memberId);
String extgroupids = null;
if(mapList!=null&&mapList.size()>0){
extgroupids = mapList.get(0).get("extgroupids");
}
valueObject.setSelectContent(Common.forumselect(false, false,Short.valueOf(groupid),extgroupids!=null?extgroupids:"",null,false));
}
valueObject.setDisplayText(magics.getMagicid()!=2);
setMagic_navbarVO(valueObject, memberCredits, memberId, usergroupMap, settingsMap, extcreditsMap);
}
private List<Forums> getAllForumsList(Magics magics){
if(magics.getMagicid()==12){
ForumService forumService = (ForumService) BeanFactory
.getBean("forumService");
return forumService.findAll();
}else {
return null;
}
}
private List<Map<String,String>> getForums(Magics magics){
if(magics.getType()==1){
String magicPerm = magics.getMagicperm();
Map temp1 = ((DataParse) BeanFactory.getBean("dataParse")).characterParse(magicPerm, false);
String forumsIdString = (String)temp1.get("forum");
if(forumsIdString!=null&&!forumsIdString.trim().equals("")){
StringBuffer sqlBuffer = new StringBuffer("SELECT f.fid , f.name FROM "+tablePrefix+"forums AS f WHERE f.fid IN(");
String[] forumsIdArray = forumsIdString.split("\t");
for(String forumsId : forumsIdArray){
if(!forumsId.equals("")){
sqlBuffer.append(forumsId+",");
}
}
int sqlBufferLength = sqlBuffer.length();
sqlBuffer.replace(sqlBufferLength-1, sqlBufferLength, ")");
return dataBaseService.executeQuery(sqlBuffer.toString());
}else{
return null;
}
}else{
return null;
}
}
private List<Usergroups> getUsergroups(Magics magics){
if(magics.getType()==2){
String magicPerm = magics.getMagicperm();
Map temp1 = ((DataParse) BeanFactory.getBean("dataParse")).characterParse(magicPerm, false);
String usergroupIdString = (String)temp1.get("targetgroups");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -