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

📄 mymagicboxaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
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 + -