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