generated from root/miduo_server
gm允许修改全局标题
parent
6ab9057fe8
commit
a4e6d62a6e
|
|
@ -3,10 +3,12 @@ package com.jmfy.controller;
|
||||||
import com.jmfy.WebSecurityConfig;
|
import com.jmfy.WebSecurityConfig;
|
||||||
import com.jmfy.dao.CUserDao;
|
import com.jmfy.dao.CUserDao;
|
||||||
import com.jmfy.dao.ChannelInfoDao;
|
import com.jmfy.dao.ChannelInfoDao;
|
||||||
|
import com.jmfy.dao.GlobalSettingDao;
|
||||||
import com.jmfy.dao.ServerInfoDao;
|
import com.jmfy.dao.ServerInfoDao;
|
||||||
import com.jmfy.dao.impl.ServerInfoDaoImpl;
|
import com.jmfy.dao.impl.ServerInfoDaoImpl;
|
||||||
import com.jmfy.handler.RedisLogic;
|
import com.jmfy.handler.RedisLogic;
|
||||||
import com.jmfy.model.CAdmin;
|
import com.jmfy.model.CAdmin;
|
||||||
|
import com.jmfy.model.CGlobalSetting;
|
||||||
import com.jmfy.model.ChannelInfo;
|
import com.jmfy.model.ChannelInfo;
|
||||||
import com.jmfy.model.ServerInfo;
|
import com.jmfy.model.ServerInfo;
|
||||||
import com.jmfy.model.vo.IdentityEnum;
|
import com.jmfy.model.vo.IdentityEnum;
|
||||||
|
|
@ -46,6 +48,8 @@ public class LoginController {
|
||||||
private ChannelInfoDao channelInfoDao;
|
private ChannelInfoDao channelInfoDao;
|
||||||
@Resource
|
@Resource
|
||||||
private ServerInfoDao serverInfoDao;
|
private ServerInfoDao serverInfoDao;
|
||||||
|
@Resource
|
||||||
|
private GlobalSettingDao settingDao;
|
||||||
|
|
||||||
static final String ROOT = "root";
|
static final String ROOT = "root";
|
||||||
|
|
||||||
|
|
@ -115,7 +119,8 @@ public class LoginController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/")
|
@GetMapping("/")
|
||||||
public String index(){
|
public String index(ModelMap map) throws Exception {
|
||||||
|
map.put("title", getTitle());
|
||||||
return "index";
|
return "index";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -161,6 +166,7 @@ public class LoginController {
|
||||||
session.setAttribute(WebSecurityConfig.SESSION_KEY, userName);
|
session.setAttribute(WebSecurityConfig.SESSION_KEY, userName);
|
||||||
map.put("admin",admin);
|
map.put("admin",admin);
|
||||||
map.put("sidebar",PowersVo.create2(admin.getPowers()));
|
map.put("sidebar",PowersVo.create2(admin.getPowers()));
|
||||||
|
map.put("title", getTitle());
|
||||||
return "index";
|
return "index";
|
||||||
} else {
|
} else {
|
||||||
return "redirect:/login";
|
return "redirect:/login";
|
||||||
|
|
@ -178,6 +184,26 @@ public class LoginController {
|
||||||
return "redirect:/login";
|
return "redirect:/login";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/setTitle", method = {RequestMethod.POST, RequestMethod.GET})
|
||||||
|
public @ResponseBody int setTitle(HttpServletRequest request) throws Exception {
|
||||||
|
String title = request.getParameter("title1");
|
||||||
|
CGlobalSetting setting = settingDao.getGlobalSetting();
|
||||||
|
if (setting == null){
|
||||||
|
setting = new CGlobalSetting();
|
||||||
|
}
|
||||||
|
setting.setTitle(title);
|
||||||
|
settingDao.uporsetGlobalSetting(setting);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitle() throws Exception {
|
||||||
|
CGlobalSetting setting = settingDao.getGlobalSetting();
|
||||||
|
if (setting == null){
|
||||||
|
return "admin";
|
||||||
|
}
|
||||||
|
return setting.getTitle();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* root账号特殊处理,登陆或注册获取全部权限
|
* root账号特殊处理,登陆或注册获取全部权限
|
||||||
* @param admin
|
* @param admin
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
package com.jmfy.dao;
|
||||||
|
|
||||||
|
import com.jmfy.model.CGlobalSetting;
|
||||||
|
|
||||||
|
public interface GlobalSettingDao {
|
||||||
|
CGlobalSetting getGlobalSetting() throws Exception;
|
||||||
|
void uporsetGlobalSetting(CGlobalSetting setting) throws Exception;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
package com.jmfy.dao.impl;
|
||||||
|
|
||||||
|
import com.jmfy.dao.GlobalSettingDao;
|
||||||
|
import com.jmfy.model.CGlobalSetting;
|
||||||
|
import com.jmfy.model.Constant;
|
||||||
|
import com.jmfy.utils.Connect;
|
||||||
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||||
|
import org.springframework.data.mongodb.core.query.Criteria;
|
||||||
|
import org.springframework.data.mongodb.core.query.Query;
|
||||||
|
import org.springframework.data.mongodb.core.query.Update;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author hj
|
||||||
|
* @Date 2021/5/20 10:48
|
||||||
|
* @Description:
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class GlobalSettingDaoImpl implements GlobalSettingDao {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private Connect connect;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CGlobalSetting getGlobalSetting() throws Exception {
|
||||||
|
MongoTemplate mongoTemplate = connect.getMongoTemplete(Constant.dbName);
|
||||||
|
Query query = new Query(Criteria.where("_id").is(1));
|
||||||
|
return mongoTemplate.findOne(query, CGlobalSetting.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void uporsetGlobalSetting(CGlobalSetting setting) throws Exception {
|
||||||
|
MongoTemplate mongoTemplate = connect.getMongoTemplete(Constant.dbName);
|
||||||
|
Query query = new Query(Criteria.where("_id").is(1));
|
||||||
|
Update update = new Update();
|
||||||
|
update.set("title",setting.getTitle());
|
||||||
|
mongoTemplate.upsert(query,update,CGlobalSetting.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -276,6 +276,7 @@ public class HeFuManager {
|
||||||
public static final String FOUR_CHALLENGE_TIER_RANK = "FOUR_CHALLENGE_TIER_RANK";//四灵试炼排行榜
|
public static final String FOUR_CHALLENGE_TIER_RANK = "FOUR_CHALLENGE_TIER_RANK";//四灵试炼排行榜
|
||||||
public static final String GUILD_CHALLENGE_RANK = "GUILD_CHALLENGE_RANK";//公会副本排行榜
|
public static final String GUILD_CHALLENGE_RANK = "GUILD_CHALLENGE_RANK";//公会副本排行榜
|
||||||
public static final String ARENA_RANK = "ARENA_RANK";//竞技场排行榜
|
public static final String ARENA_RANK = "ARENA_RANK";//竞技场排行榜
|
||||||
|
public static final String NEW_ARENA_RANK = "NEW_ARENA_RANK";//新竞技场排行榜
|
||||||
|
|
||||||
public static void dealRedis(int masterSID, Set<Integer> slaveId){
|
public static void dealRedis(int masterSID, Set<Integer> slaveId){
|
||||||
for (Integer slowSID : slaveId) {
|
for (Integer slowSID : slaveId) {
|
||||||
|
|
@ -298,17 +299,18 @@ public class HeFuManager {
|
||||||
deleteRankOfRedis(GUILD_CHALLENGE_RANK,masterSID);
|
deleteRankOfRedis(GUILD_CHALLENGE_RANK,masterSID);
|
||||||
// 竞技场排行榜处理
|
// 竞技场排行榜处理
|
||||||
deleteRankOfRedis(ARENA_RANK,masterSID);
|
deleteRankOfRedis(ARENA_RANK,masterSID);
|
||||||
|
deleteArenaOfRedis(NEW_ARENA_RANK, masterSID, slowSID);
|
||||||
LOGGER.info("{} 处理redis排行榜完成======================", slowSID);
|
LOGGER.info("{} 处理redis排行榜完成======================", slowSID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void defaultRankOfRedis(String key, int masterSID, int slowSID){
|
public static void defaultRankOfRedis(String key, int masterSID, int slowSID){
|
||||||
try {
|
try {
|
||||||
RedisUtil instence = RedisUtil.getInstence();
|
RedisUtil instance = RedisUtil.getInstence();
|
||||||
String masterChapterKey = masterSID + colon + key + colon;
|
String masterChapterKey = masterSID + colon + key + colon;
|
||||||
String slowChapterKey = slowSID + colon + key + colon;
|
String slowChapterKey = slowSID + colon + key + colon;
|
||||||
Set<ZSetOperations.TypedTuple<String>> chapterSet = instence.rangeWithScores(slowChapterKey, 0, -1);
|
Set<ZSetOperations.TypedTuple<String>> chapterSet = instance.rangeWithScores(slowChapterKey, 0, -1);
|
||||||
instence.zsetAddAall(masterChapterKey,chapterSet);
|
instance.zsetAddAall(masterChapterKey,chapterSet);
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
LOGGER.error("排行榜合并报错,key:{},master:{},slave:{}",key,masterSID,slowSID);
|
LOGGER.error("排行榜合并报错,key:{},master:{},slave:{}",key,masterSID,slowSID);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
@ -332,11 +334,11 @@ public class HeFuManager {
|
||||||
|
|
||||||
public static void deleteRankOfRedis(String key, int masterSID){
|
public static void deleteRankOfRedis(String key, int masterSID){
|
||||||
try {
|
try {
|
||||||
RedisUtil instence = RedisUtil.getInstence();
|
RedisUtil instance = RedisUtil.getInstence();
|
||||||
String masterChapterKey = masterSID + colon + key + colon;
|
String masterChapterKey = masterSID + colon + key + colon;
|
||||||
Set<String> dimKey = instence.getDimKey(masterChapterKey, -1);
|
Set<String> dimKey = instance.getDimKey(masterChapterKey, -1);
|
||||||
for (String s : dimKey) {
|
for (String s : dimKey) {
|
||||||
instence.del(s);
|
instance.del(s);
|
||||||
}
|
}
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
LOGGER.error("排行榜删除报错,key:{},master:{}",key,masterSID);
|
LOGGER.error("排行榜删除报错,key:{},master:{}",key,masterSID);
|
||||||
|
|
@ -344,4 +346,18 @@ public class HeFuManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void deleteArenaOfRedis(String key, int masterSID, int slowSId){
|
||||||
|
try {
|
||||||
|
RedisUtil instance = RedisUtil.getInstence();
|
||||||
|
String masterKey = key + ":" + masterSID + ":1";
|
||||||
|
String slowKey = key + ":" + slowSId + ":1";
|
||||||
|
Set<ZSetOperations.TypedTuple<String>> chapterSet = instance.rangeWithScores(slowKey, 0, -1);
|
||||||
|
instance.zsetAddAall(masterKey,chapterSet);
|
||||||
|
instance.del(slowKey);
|
||||||
|
}catch (Exception e){
|
||||||
|
LOGGER.error("竞技场删除报错,key:{},master:{}",key,masterSID);
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
package com.jmfy.model;
|
||||||
|
|
||||||
|
import org.springframework.data.annotation.Id;
|
||||||
|
import org.springframework.data.mongodb.core.mapping.Document;
|
||||||
|
import org.springframework.data.mongodb.core.mapping.Field;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.TreeSet;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author hj
|
||||||
|
* gm用户类
|
||||||
|
*/
|
||||||
|
@Document(collection = "c_global_setting")
|
||||||
|
public class CGlobalSetting {
|
||||||
|
@Id
|
||||||
|
private int id = 1;
|
||||||
|
/**
|
||||||
|
* 账号,account
|
||||||
|
*/
|
||||||
|
@Field(value = "title")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
/********************************************* setter and getter ***********************************************/
|
||||||
|
|
||||||
|
public CGlobalSetting() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTitle(String title) {
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -13,6 +13,7 @@ public enum PowersEnum {
|
||||||
ACCOUNT_MANAGER(100,"用户管理",100,1,""),
|
ACCOUNT_MANAGER(100,"用户管理",100,1,""),
|
||||||
ACCOUNT_LIST(101,"用户列表",100,1,"findMemberList"),
|
ACCOUNT_LIST(101,"用户列表",100,1,"findMemberList"),
|
||||||
ADD_ACCOUNT(102,"权限: 添加用户",100,0,""),
|
ADD_ACCOUNT(102,"权限: 添加用户",100,0,""),
|
||||||
|
SET_GLOBAL_TITLE(103, "全局标题", 100, 1,"/html/setTitle.html"),
|
||||||
/**
|
/**
|
||||||
* 服务器管理200-299
|
* 服务器管理200-299
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -24,51 +24,29 @@
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
<!--/meta 作为公共模版分离出去-->
|
<!--/meta 作为公共模版分离出去-->
|
||||||
|
|
||||||
<title>基本设置</title>
|
<title>设置全局标题</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<nav class="breadcrumb"><i class="Hui-iconfont"></i> 首页
|
<nav class="breadcrumb"><i class="Hui-iconfont"></i> 首页
|
||||||
<span class="c-gray en">></span>
|
<span class="c-gray en">></span>
|
||||||
GM管理
|
用户管理
|
||||||
<span class="c-gray en">></span>
|
<span class="c-gray en">></span>
|
||||||
发送GM
|
全局标题
|
||||||
<a class="btn btn-success radius r" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont"></i></a>
|
<a class="btn btn-success radius r" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont"></i></a>
|
||||||
</nav>
|
</nav>
|
||||||
<div class="page-container">
|
<div class="page-container">
|
||||||
|
<div class="tabBar cl">
|
||||||
<form class="form form-horizontal" id="form-article-add" action="/sendGm" method="post" target="sendGM"
|
<span>全局标题</span>
|
||||||
onsubmit="return sendCheck()">
|
</div>
|
||||||
<div class="row cl">
|
<div class="row cl">
|
||||||
<label class="form-label col-xs-4 col-sm-2">
|
<div style="margin: 20px 0 0 80px;padding-top: 50px;">
|
||||||
<span class="c-red">*</span>
|
<span style="font-size: 15px;">全局标题:</span>
|
||||||
服务器id:</label>
|
<input type="text" name="title1" style="height: 36px;line-height: 36px;width: 500px; margin: 0 0 0 21px;" placeholder="标题(不能为空)" class="input-text"/>
|
||||||
<div class="formControls col-xs-8 col-sm-9">
|
</div>
|
||||||
<input type="text" name="serverId"
|
<div style="margin: 30px 0 0 80px;">
|
||||||
placeholder="服务器id." value=""
|
<button class="btn btn-secondary radius" style="font-size: 15px; float: left" onclick="setTitle()">确认</button>
|
||||||
class="input-text"/>
|
</div>
|
||||||
<span class="SERVERID"></span>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row cl">
|
|
||||||
<label class="form-label col-xs-4 col-sm-2">
|
|
||||||
<span class="c-red">*</span>
|
|
||||||
内容:</label>
|
|
||||||
<div class="formControls col-xs-8 col-sm-9">
|
|
||||||
<input type="text" name="content1" placeholder="" value="" class="input-text"/>
|
|
||||||
<span class="ROLEID"></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row cl" style="text-align: center">
|
|
||||||
<div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-2">
|
|
||||||
<button class="btn btn-primary radius" type="submit" style="font-size: 15px"><i class="Hui-iconfont"></i>
|
|
||||||
提交
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
<iframe name='sendGM' id="sendGM" style='display: none'></iframe>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -95,29 +73,32 @@ $(function(){
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#sendGM').load(function () {
|
function setTitle() {
|
||||||
// 根据后台返回值处理结果
|
let title1 = $("input[name='title1']").val();
|
||||||
var text=$(this).contents().find("body").text();
|
if (title1 === '' || title1 == null) {
|
||||||
if (text != 0) {
|
alert("内容不能为空!");
|
||||||
alert('失败');
|
return false;
|
||||||
} else {
|
}
|
||||||
alert('成功');
|
$.ajax({
|
||||||
location.reload();
|
type: "POST",
|
||||||
}
|
data: {
|
||||||
})
|
"title1": title1
|
||||||
|
},
|
||||||
|
url: "/setTitle",
|
||||||
function sendCheck() {
|
success: function (data) {
|
||||||
var erroCode = $('.SERVERID');
|
if (data === 1) {
|
||||||
var content1 = $("input[name='content1']").val();
|
alert("修改成功,请刷新页面查看。");
|
||||||
|
}
|
||||||
if (content1 === '' || content1 == null) {
|
if (data === 0) {
|
||||||
erroCode.html('<span style="color: red; ">内容不能为空!</span>');
|
alert("修改失败");
|
||||||
return false;
|
}
|
||||||
}
|
if (data === 2) {
|
||||||
|
alert("权限不足!");
|
||||||
return true;
|
}
|
||||||
|
}}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<!--/请在上方写此页面业务相关的脚本-->
|
<!--/请在上方写此页面业务相关的脚本-->
|
||||||
</body>
|
</body>
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
<a class="btn btn-success radius r" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont"></i></a>
|
<a class="btn btn-success radius r" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont"></i></a>
|
||||||
</nav>
|
</nav>
|
||||||
<div class="page-container">
|
<div class="page-container">
|
||||||
<form class="form form-horizontal" id="form-article-add" action="/register" method="post"target="sendNotice">
|
<form class="form form-horizontal" id="form-article-add" action="/register" method="post" target="sendNotice">
|
||||||
<div id="tab-system" class="HuiTab">
|
<div id="tab-system" class="HuiTab">
|
||||||
<div class="tabBar cl">
|
<div class="tabBar cl">
|
||||||
<span>添加GS账号</span>
|
<span>添加GS账号</span>
|
||||||
|
|
|
||||||
|
|
@ -26,12 +26,6 @@
|
||||||
<div class="page-container" style="text-align: center">
|
<div class="page-container" style="text-align: center">
|
||||||
<h1><span style="color: red">查询个人信息</span></h1>
|
<h1><span style="color: red">查询个人信息</span></h1>
|
||||||
<form class="form form-horizontal" id="form-article-add" action="/getUserRoleInfo" method="post" onsubmit="return getUserInfo()">
|
<form class="form form-horizontal" id="form-article-add" action="/getUserRoleInfo" method="post" onsubmit="return getUserInfo()">
|
||||||
<div class="row cl">
|
|
||||||
<label class="form-label col-xs-0 col-sm-0">
|
|
||||||
<span class="c-red">*</span>
|
|
||||||
区服id:</label>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row cl">
|
<div class="row cl">
|
||||||
<label class="form-label col-xs-4 col-sm-2">
|
<label class="form-label col-xs-4 col-sm-2">
|
||||||
<span class="c-red">*</span>
|
<span class="c-red">*</span>
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
<script type="text/javascript" src="lib/DD_belatedPNG_0.0.8a-min.js"></script>
|
<script type="text/javascript" src="lib/DD_belatedPNG_0.0.8a-min.js"></script>
|
||||||
<script>DD_belatedPNG.fix('*');</script>
|
<script>DD_belatedPNG.fix('*');</script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
<title>ljsd.admin</title>
|
<title th:text="${title}"></title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header class="navbar-wrapper">
|
<header class="navbar-wrapper">
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
## 更新日志
|
## 更新日志
|
||||||
|
|
||||||
|
+ ### 2024-2-28
|
||||||
|
1. 用户管理新增功能可以修改全局标题
|
||||||
|
|
||||||
+ ### 2023-1-5
|
+ ### 2023-1-5
|
||||||
1. 添加用户修改自定义密码功能
|
1. 添加用户修改自定义密码功能
|
||||||
2. 修改部分页签标题
|
2. 修改部分页签标题
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue