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

📄 magicmarketaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		List<Magics> magicsList = otherSetService.queryAllMagic();
		Map<Short,Magics> magicMap = MagicsListToMagicsMap(magicsList);
		encapsulationVO(magic_marketVO, unit, true, magicmarketList, magicMap, magicsList, ascdesc, orderby, magicid, extcreditsMap, memberCredits, memberId, creditstrans, usergroupMap, settingsMap, extcredits);
	}
	private Map<String, Integer> multi(HttpServletRequest request,int uid, String sql, String url) {
		HttpSession session=request.getSession();
		Map<String, String> settings = (Map<String, String>) request.getAttribute("settings");
		Members member = uid > 0 ? (Members)session.getAttribute("user") : null;
		List<Map<String, String>> count = dataBaseService.executeQuery(sql);
		int num = Integer.valueOf(count.get(0).get("count"));
		int tpp = member != null && member.getTpp() > 0 ? member.getTpp(): Integer.valueOf(settings.get("topicperpage"));
		int page = Common.toDigit(request.getParameter("page"),2147483647l, 1L).intValue();
		Map<String,Integer> multiInfo=Common.getMultiInfo(num, tpp, page);
		page=multiInfo.get("curpage");
		Map<String,Object> multi=Common.multi(num, tpp, page, url, 0, 10, true, false, null, false);
		request.setAttribute("multipage", (String)multi.get("multipage"));
		Map<String, Integer> map = new HashMap<String, Integer>();
		map.put("beginsize", multiInfo.get("start_limit"));
		map.put("pagesize", tpp);
		return map;
	}
	public ActionForward marketPrepareOperation(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response){
		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, (byte)1);
		if(accessInfo!=null){
			request.setAttribute("errorInfo", accessInfo);
			return mapping.findForward("showMessage");
		}
		Short magicId = Short.valueOf(request.getParameter("magicid")); 
		Short magicMarketId = Short.valueOf(request.getParameter("magicMarketId"));
		String debusOrBuy = request.getParameter("debusOrBuy"); 
		Magics magics = otherSetService.queryMagicById(magicId);
		Magicmarket magicmarket = magicMarketService.getMagicmarketById(magicMarketId);
		String extcreditsFromMap = null;
		String creditstrans = null;
		if(settingsMap!=null){
			extcreditsFromMap = settingsMap.get("extcredits");
			creditstrans = settingsMap.get("creditstrans");
		}else{
			extcreditsFromMap = ((Settings)creSetSer.getSetting("extcredits")).getValue();
			creditstrans = ((Settings)creSetSer.getSetting("creditstrans")).getValue();
		}
		Map tempMap1 = ((DataParse) BeanFactory.getBean("dataParse")).characterParse(extcreditsFromMap, false);
		Map tempMap2 = (Map)tempMap1.get(Integer.valueOf(creditstrans));
		String unit = (String)tempMap2.get("title");
		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));
			}
		}
		Magic_market_prepareoperationVO valueObject = new Magic_market_prepareoperationVO();
		valueObject.setMagicMarketId(magicMarketId.toString());
		valueObject.setMagicInfo(magics.getDescription());
		valueObject.setImageName(magics.getIdentifier().toLowerCase());
		valueObject.setMagicName(magics.getName());
		valueObject.setMagicPrice(magicmarket.getPrice().toString());
		valueObject.setMagicStock(magicmarket.getNum().toString());
		valueObject.setMagicUtil(unit);
		valueObject.setMagicWeight(magics.getWeight().toString());
		valueObject.setOperation(debusOrBuy);
		encapsulationMagic_navbarVO(valueObject, memberCredits, memberId, tempMap1, creditstrans, usergroupMap, settingsMap, extcreditsMap);
		request.setAttribute("valueObject", valueObject);
		return mapping.findForward("magic_market_prepareoperation");
	}
	public ActionForward marketOperating(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		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, (byte)1);
		if(accessInfo!=null){
			request.setAttribute("errorInfo", accessInfo);
			return mapping.findForward("showMessage");
		}
		String magicnumFromRequest = request.getParameter("magicnum"); 
		String magicMarketId = request.getParameter("magicMarketId"); 
		String operation = request.getParameter("operation"); 
		Long magicNumLong = Long.valueOf(FormDataCheck.getNumberFromForm(magicnumFromRequest));
		int magicNum = 0;
		if(magicNumLong>Integer.MAX_VALUE){
			magicNum = Integer.MAX_VALUE;
		}else{
			magicNum = magicNumLong.intValue();
		}
		if(magicNum==0){
			request.setAttribute("errorInfo", "操作数量不合法,请返回修改。");
			return mapping.findForward("showMessage");
		}
		Short magicmarketId = Short.valueOf(magicMarketId);
		Magicmarket magicmarket = magicMarketService.getMagicmarketById(magicmarketId);
		if(magicmarket.getNum()<magicNum){
			request.setAttribute("errorInfo", "没有足够的道具可以操作,请返回修改。");
			return mapping.findForward("showMessage");
		}
		boolean bool = false;
		try{
			bool = memberMagicsService.validateWeight(memberId,Short.valueOf(usergroupMap.get("maxmagicsweight")),magicmarket.getMagicid(),magicNumLong);
		}catch(Exception exception){
			exception.printStackTrace();
		}
		if(!bool){
			request.setAttribute("errorInfo", "您没有足够的重量来承受得到的道具,请返回修改。");
			return mapping.findForward("showMessage");
		}
		int timestamp = (Integer)(request.getAttribute("timestamp"));
		if(operation.equals("buy")){ 
			operation_buy(settingsMap, memberId, magicNumLong.shortValue(), magicmarket,timestamp);
		}else{ 
			operation_debus(memberId, magicNumLong.shortValue(), magicmarket,timestamp);
		}
		request.setAttribute("successInfo", "道具操作成功");
		request.setAttribute("requestPath", "magic.jsp?action=market");
		return mapping.findForward("showMessage");
	}
	private void operation_buy(Map<String,String> settingsMap,Integer uid,Short num,Magicmarket magicmarket,int timestamp){
		String creditstaxFromMap = null;
		String creditstransFromMap = null;
		if(settingsMap!=null){
			creditstaxFromMap = settingsMap.get("creditstax");
			creditstransFromMap = settingsMap.get("creditstrans");
		}else{
			creditstaxFromMap = ((Settings)creSetSer.getSetting("creditstax")).getValue();
			creditstransFromMap = ((Settings)creSetSer.getSetting("creditstrans")).getValue();
		}
		Double revenue = Double.valueOf(creditstaxFromMap); 
		Short extcreditsNum = Short.valueOf(creditstransFromMap); 
		
		short magicid = magicmarket.getMagicid();
		
		updateMagicLog(uid, magicmarket.getMagicid(), (byte)5, num, magicmarket.getPrice(), 0, uid, 0,timestamp);
		
		List<Map<String,String>> queryMapList = dataBaseService.executeQuery("SELECT magicid FROM "+tablePrefix+"membermagics WHERE magicid='"+magicid+"' AND uid='"+uid+"'");
		if(queryMapList != null){
			if(queryMapList.size()>0){
				dataBaseService.execute("UPDATE "+tablePrefix+"membermagics SET num=num+'"+num+"' WHERE magicid='"+magicid+"' AND uid='"+uid+"'");
			}else{
				dataBaseService.execute("INSERT INTO "+tablePrefix+"membermagics (uid, magicid, num) VALUES ('"+uid+"', '"+magicid+"', '"+num+"')");
			}
		}
		
		short mid = magicmarket.getMid();
		if(magicmarket.getNum().shortValue() == num){
			dataBaseService.execute("DELETE FROM "+tablePrefix+"magicmarket WHERE mid='"+mid+"'");
		}else{
			dataBaseService.execute("UPDATE "+tablePrefix+"magicmarket SET num=num+(-'"+num+"') WHERE mid='"+mid+"'");
		}
		int price = magicmarket.getPrice();
		int	totalcredit = (int)Math.floor(num*price*(1-revenue));
		dataBaseService.execute("UPDATE "+tablePrefix+"members SET extcredits"+extcreditsNum+"=extcredits"+extcreditsNum+"+'"+totalcredit+"' WHERE uid='"+magicmarket.getUid()+"'");
		totalcredit = num*price;
		dataBaseService.execute("UPDATE "+tablePrefix+"members SET extcredits"+extcreditsNum+"=extcredits"+extcreditsNum+"+(-'"+totalcredit+"') WHERE uid='"+uid+"'");
	}
	private void operation_debus(Integer uid,Short num,Magicmarket magicmarket,int timestamp){
		short magicid = magicmarket.getMagicid();
		updateMagicLog(uid, magicmarket.getMagicid(), (byte)6, num, magicmarket.getPrice(), 0, 0, uid,timestamp);
		List<Map<String,String>> queryMapList = dataBaseService.executeQuery("SELECT magicid FROM "+tablePrefix+"membermagics WHERE magicid='"+magicid+"' AND uid='"+uid+"'");
		if(queryMapList != null){
			if(queryMapList.size()>0){
				dataBaseService.execute("UPDATE "+tablePrefix+"membermagics SET num=num+'"+num+"' WHERE magicid='"+magicid+"' AND uid='"+uid+"'");
			}else{
				dataBaseService.execute("INSERT INTO "+tablePrefix+"membermagics (uid, magicid, num) VALUES ('"+uid+"', '"+magicid+"', '"+num+"')");
			}
		}
		
		short mid = magicmarket.getMid();
		if(magicmarket.getNum().shortValue() == num){
			dataBaseService.execute("DELETE FROM "+tablePrefix+"magicmarket WHERE mid='"+mid+"'");
		}else{
			dataBaseService.execute("UPDATE "+tablePrefix+"magicmarket SET num=num+(-'"+num+"') WHERE mid='"+mid+"'");
		}
	}
	private void updateMagicLog(Integer uid, Short magicid, Byte action, Short amount, Integer price, Integer targettid, Integer targetpid, Integer targetuid,int timestamp){
		dataBaseService.execute("INSERT INTO "+tablePrefix+"magiclog (uid, magicid, action, dateline, amount, price, targettid, targetpid, targetuid) " +
				"VALUES ('"+uid+"', '"+magicid+"', '"+6+"', '"+timestamp+"', '"+amount+"', '"+price+"','"+0+"', '"+0+"', '"+uid+"')");
	}
	private String getAccessInfo(Integer memberId,Map<String,String> settingsMap,Map<String,String> usergroupMap,Byte action){
		String accessInfo = null;
		if(memberId==null){
			return accessInfo = "您还没有登陆";
		}
		if(settingsMap==null){
			return accessInfo = "获取信息失败,请与管理员联系。";
		}
		String magicstatus = settingsMap.get("magicstatus");
		if(magicstatus==null||!magicstatus.equals("1")){
			return accessInfo = "对不起,道具功能没有开启.请返回。";
		}
		String magicmarket = settingsMap.get("magicmarket");
		if(magicmarket==null||!magicmarket.equals("1")){
			return accessInfo = "对不起,道具市场功能没有开启.请返回。";
		}
		String creditstrans = settingsMap.get("creditstrans");
		if (creditstrans==null||creditstrans.equals("0")) {
			return accessInfo = "对不起,交易积分没有被启用,无法使用此功能,请返回或与管理员联系。";
		}
		if(usergroupMap==null){
			return accessInfo = "获取用户组信息失败,请与管理员联系。";
		}
		String allowMagics = usergroupMap.get("allowmagics");
		if(allowMagics==null){
			return accessInfo = "没有获得您是否能够使用道具的信息.请联系管理员";
		}
		if(Byte.parseByte(allowMagics)<action){
			if(action==1){
				return accessInfo = "您所在的用户组不允许使用道具系统,请返回。";
			}else{
				return accessInfo = "您所在的用户组不允转让道具,请返回。";
			}
		}
		return accessInfo;
	}
}

⌨️ 快捷键说明

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