📄 magicaction.java
字号:
value = (Integer)method_get.invoke(member);
} catch (Exception e) {
e.printStackTrace();
}
int discount = getDiscount(usergroupMap);
if(magicPrice*discount/10*magicnumLong>value){
message = "您的 "+extcredits+" 不足,请返回修改购买道具数量。";
}else{
int timestamp=(Integer)request.getAttribute("timestamp");
if(sendToOtherUser==null){
if(!validateWeight(member.getUid(),usergroupMap,magics.getMagicid(),magicnumLong)){
message = "超过最大道具负载量,请返回修改。";
}else{
updateMagics_NumAndSalevoume(magics, magicnumLong.intValue());
Magiclog magiclog = getMagiclog(member.getUid(), magics.getMagicid(), magicnumLong.shortValue(), magicPrice*discount/10, member.getUid(),(byte)1,timestamp);
setMemberBalance(value, magicPrice*discount/10*magicnumLong.intValue(), member, settingsValue);
Membermagics memberMagics = creatOrUpdateMemberMagics(member.getUid(), magics.getMagicid(), magicnumLong.shortValue());
if(!MMMMService.userBuyMagic(magics, magiclog, member, memberMagics)){
message = "道具购买失败!请稍后再试。如果无法解决请联系管理员";
}
}
}else{
String tousername = request.getParameter("tousername");
if(tousername!=null&&tousername.trim().equals("")){
message = "请输入要赠送的用户名。";
} else if(member.getUsername().equals(tousername)){
message = "对不起,不能赠送给自己,请返回修改。";
} else {
Members targetMembers = memberService.findByName(tousername);
if (targetMembers == null) {
message = "对不起,您所指定的目标不存在,请返回。";
} else {
if (!validateWeight(targetMembers,magics.getMagicid(),magicnumLong)) {
message = "超过最大道具负载量,请返回修改。";
} else {
updateMagics_NumAndSalevoume(magics,magicnumLong.intValue());
Magiclog magiclog = getMagiclog(member.getUid(), magics.getMagicid(),magicnumLong.shortValue(), magicPrice* discount / 10, targetMembers.getUid(),(byte)3,timestamp);
setMemberBalance(value, magicPrice*discount/10*magicnumLong.intValue(), member, settingsValue);
Membermagics memberMagics = creatOrUpdateMemberMagics(targetMembers.getUid(), magics.getMagicid(), magicnumLong.shortValue());
if (!MMMMService.userBuyMagic(magics, magiclog,member, memberMagics)) {
message = "道具购买失败!请稍后再试。如果无法解决请联系管理员";
}
}
}
}
}
}
}
if(message.equals(messageFinal)){
String requestPath = request.getContextPath()+"/magic.jsp?action=shop";
request.setAttribute("requestPath", requestPath);
request.setAttribute("successInfo", message);
}else{
request.setAttribute("errorInfo", message);
}
return mapping.findForward("showMessage");
}
private boolean validateWeight(int userid,Map<String,String> usergroupMap,Short magicsidOfGet,Long magicsNum){
Short maxmagicsweight = Short.valueOf(usergroupMap.get("maxmagicsweight"));
boolean bool = false;
try{
bool = memberMagicsService.validateWeight(userid, maxmagicsweight, magicsidOfGet, magicsNum);
}catch (Exception e) {
e.printStackTrace();
}
return bool;
}
private boolean validateWeight(Members members,Short magicsidOfGet,Long magicsNum){
Integer userid = members.getUid();
short userGroupId = members.getGroupid();
Usergroups usergroups = userGroupService.findUserGroupById(userGroupId);
short maxmagicsweight = usergroups.getMaxmagicsweight();
boolean bool = false;
try{
bool = memberMagicsService.validateWeight(userid, maxmagicsweight, magicsidOfGet, magicsNum);
}catch (Exception e) {
e.printStackTrace();
}
return bool;
}
private int getDiscount(Map<String,String> usergroupMap){
int discount = 0;
try{
discount = Integer.parseInt(usergroupMap.get("magicsdiscount"));
}catch(NumberFormatException exception){
exception.printStackTrace();
}
if(discount==0){
discount=10;
}
return discount;
}
private void updateMagics_NumAndSalevoume(Magics magics,int num){
magics.setNum(magics.getNum()-num);
magics.setSalevolume(Integer.valueOf(magics.getSalevolume()+num).shortValue());
}
private Magiclog getMagiclog(int uid,short magicid,short magicNum,Integer price,Integer targetUid,Byte action,int timestamp){
Magiclog magiclog = new Magiclog();
MagiclogId magiclogId = new MagiclogId();
magiclogId.setUid(uid);
magiclogId.setMagicid(magicid);
magiclogId.setAction(action);
magiclogId.setDateline(timestamp);
magiclogId.setAmount(magicNum);
magiclogId.setPrice(price);
magiclogId.setTargettid(0);
magiclogId.setTargetpid(action==3?0:targetUid);
magiclogId.setTargetuid(action==1?0:targetUid);
magiclog.setId(magiclogId);
return magiclog;
}
private void setMemberBalance(int moneyOfBefore,int moneyOfSpend,Members members,String extcreditsNumber){
try {
Integer balance = moneyOfBefore-moneyOfSpend;
Method method_set = Members.class.getMethod("setExtcredits"+extcreditsNumber,Integer.class);
method_set.invoke(members,balance);
} catch (Exception e) {
e.printStackTrace();
}
}
private Membermagics creatOrUpdateMemberMagics(int uid,short magicid,short magicNum){
Membermagics memberMagics = memberMagicsService.getMemberMagics(uid, magicid);
if(memberMagics==null){
memberMagics = new Membermagics();
MembermagicsId membermagicsId = new MembermagicsId();
membermagicsId.setUid(uid);
membermagicsId.setMagicid(magicid);
memberMagics.setId(membermagicsId);
memberMagics.setNum(magicNum);
}else{
memberMagics.setNum((short)(magicNum+memberMagics.getNum()));
}
return memberMagics;
}
private Magic_navbarVO getMagic_navbarVO(int memberId,String memberCredits,
Map<String,String> usergroups,Map<String,String> settingsMap,
Map<Integer,String> extcreditsMap){
Integer magicWeightNow = 0;
String sql = "SELECT SUM(mm.num*m.weight) AS s FROM "+tablePrefix+"membermagics AS mm LEFT JOIN "+tablePrefix+"magics AS m ON mm.magicid=m.magicid WHERE mm.uid="+memberId;
List<Map<String,String>> resultTemp = dataBaseService.executeQuery(sql, new String[]{"s"});
if(resultTemp!=null&&resultTemp.size()>0){
Map<String,String> resultMap = resultTemp.get(0);
if(resultMap!=null){
String reuslt = resultMap.get("s");
if(reuslt!=null){
magicWeightNow = Integer.valueOf(reuslt);
}
}
}
String magicmarket = settingsMap.get("magicmarket");
Magic_navbarVO magic_navbarVO = new Magic_navbarVO();
magic_navbarVO.setOpenmarket(magicmarket!=null&&magicmarket.equals("1"));
magic_navbarVO.setAllowMagicWeigth(usergroups.get("maxmagicsweight"));
magic_navbarVO.setMagicWeigthNow(magicWeightNow.toString());
magic_navbarVO.setScoring(memberCredits);
magic_navbarVO.setAgio(usergroups.get("magicsdiscount"));
List<OtherScoring> otherScoringList = magic_navbarVO.getOtherScoringList();
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, true);
for(int i = 0;i<tempMap1.size();i++){
Map tempMap2 = (Map)tempMap1.get(Integer.valueOf(i+1));
String extcreditValue = extcreditsMap.get(i+1);
otherScoringList.add(magic_navbarVO.getOtherScoring((String)tempMap2.get("title"), extcreditValue,(String)tempMap2.get("unit"),(Integer.valueOf(creditstrans)==i+1)));
}
return magic_navbarVO;
}
private void setPage(HttpServletRequest request,Integer size,Integer pagesize,Integer pages,String url){
LogPage logpage = new LogPage(size, pagesize, pages);
request.setAttribute("lpp", pagesize);
request.setAttribute("url", url);
request.setAttribute("logpage", logpage);
}
@SuppressWarnings("unused")
private static int convertInt(String s) {
int count = 0;
try {
count = Integer.valueOf(s);
} catch (Exception e) {
}
return count;
}
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 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;
}
private boolean magicIsUserable(String magicperm,String currentUsergroupId){
Map tempMap = ((DataParse)BeanFactory.getBean("dataParse")).characterParse(magicperm, false);
String usergroups = (String)tempMap.get("usergroups");
if(usergroups!=null&&!usergroups.trim().equals("")){
String[] usergroupIdArray = usergroups.split("\t");
for(String usergroupId : usergroupIdArray){
if(usergroupId.equals(currentUsergroupId)){
return true;
}
}
return false;
}else{
return false;
}
}
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;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -