Merge branch 'jieling' into dh_dev_gm0621

master
duhui 2021-06-24 16:22:39 +08:00
commit 7abc044d0c
16 changed files with 856 additions and 45 deletions

View File

@ -191,6 +191,7 @@ public class GameTitleController {
try {
HashMap<String, String> parameterMap = JsonUtil.getInstence().getParameterMap(request);
String jsonString = JSON.toJSONString(parameterMap);
LOGGER.info("天眼封禁json=>{}",jsonString);
JSONObject jsonObject = JSON.parseObject(jsonString);
BaseHandler handler = ManagerManager.getInstance().getBaseHandler("gm");
if(handler.skyEyeExecute(jsonObject,session,map)){
@ -224,11 +225,12 @@ public class GameTitleController {
BigInteger bigInt = new BigInteger(1, md5sum);
String newsign = String.format("%032X", bigInt).toLowerCase();
map.put("message","sign:"+sign+" newSign:"+newsign);
LOGGER.info("message,sign=>{},new sign=>{}",sign,newsign);
LOGGER.info("天眼message,sign=>{},new sign=>{}",sign,newsign);
return newsign.equalsIgnoreCase(sign); // MD5前面会补零
} catch (NoSuchAlgorithmException | UnsupportedEncodingException e)
{
e.printStackTrace();
return false;
}
}

View File

@ -46,7 +46,7 @@ public class GmController {
String cmd = request.getParameter("content");
if(cmd.equals("recharge")){
recharge();
// recharge();
return 0;
}
String serverId = request.getParameter("serverId");
@ -226,7 +226,29 @@ public class GmController {
}
public void recharge() throws IOException {
// public void recharge() throws IOException {
// String osName = System.getProperty("os.name");
// String filePath = "";
// Gson gson = new Gson();
// if (osName.matches("^(?i)Windows.*$")) {// Window 系统
// filePath = "conf/";
// } else {// Linux 系统
// filePath = "../config/";
// }
// BufferedReader in = new BufferedReader(new FileReader(filePath+"rechargeImport.txt"));
// BufferedWriter out = new BufferedWriter(new FileWriter(filePath+"recharge.json"));
// String str;
// while ((str = in.readLine()) != null) {
// String[] s = str.split("\t");
// RechargeInfo rechargeInfo = new RechargeInfo(s[0], Double.valueOf(s[1]), 0);
// String json = gson.toJson(rechargeInfo);
// System.out.println(s[0]+"||"+s[1]);
// out.write(json+"\n");
// }
// in.close();
// out.close();
// }
public static void main(String[] args) throws IOException {
String osName = System.getProperty("os.name");
String filePath = "";
Gson gson = new Gson();
@ -235,18 +257,18 @@ public class GmController {
} else {// Linux 系统
filePath = "../config/";
}
BufferedReader in = new BufferedReader(new FileReader(filePath+"rechargeImport.txt"));
BufferedWriter out = new BufferedWriter(new FileWriter(filePath+"recharge.json"));
BufferedReader in = new BufferedReader(new FileReader(filePath+"rank.txt"));
String str;
int i = 568;
while ((str = in.readLine()) != null) {
String[] s = str.split("\t");
RechargeInfo rechargeInfo = new RechargeInfo(s[0], Double.valueOf(s[1]), 0);
String json = gson.toJson(rechargeInfo);
System.out.println(s[0]+"||"+s[1]);
out.write(json+"\n");
int value = Integer.valueOf(str);
int i1 = value % 50;
if(i1==16||i1==2||i1==38){
System.out.println(value+" "+i);
}
i--;
}
in.close();
out.close();
}
static class CPayOrder {

View File

@ -391,6 +391,7 @@ public class OrderInfoController {
}
return "findOrder";
}
@RequestMapping(value = "toExporOrderPage",method = RequestMethod.GET)
public String toExporOrderPage(ModelMap map){
List<gameName> allGameName = null;
@ -403,15 +404,11 @@ public class OrderInfoController {
return "exporOrder";
}
private static boolean isNumeric(String str) {
try {
new BigDecimal(str).toString();
} catch (Exception e) {
return false;//异常
return false;
}
return true;
}

View File

@ -5,10 +5,9 @@ import com.jmfy.model.CServerOpenTime;
import com.jmfy.model.ServerInfo;
import com.jmfy.model.vo.ServerInfoVo;
import com.jmfy.redisProperties.RedisUserKey;
import com.jmfy.utils.Constants;
import com.jmfy.utils.JsonUtil;
import com.jmfy.utils.RedisUtil;
import com.jmfy.utils.SeqUtils;
import com.jmfy.utils.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestBody;
@ -19,7 +18,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
@ -28,6 +27,8 @@ import java.util.List;
@Controller
public class ServerInfoController {
private static final Logger LOGGER = LoggerFactory.getLogger(ServerInfoController.class);
@Resource
private ServerInfoDao serverInfoDao;
@ -68,9 +69,9 @@ public class ServerInfoController {
}else if(serverInfo.getOpen_type()!=null&&serverInfo.getOpen_type().equals(Constants.SERVEROPEN_NUM)) {
openT = "按量开服";
}
if(null!=openT)
if(null!=openT) {
serverInfoVo.setOpen_type(openT);
}
}
map.addAttribute("serverInfos", serverInfoVos);
return "findServerInfo";
@ -128,11 +129,10 @@ public class ServerInfoController {
String register_state = request.getParameter("register_state");
ServerInfo info = serverInfoDao.getServerinfo(server_id);
// 未运营状态的服务器需要进行清库处理
if (info != null && "-2".equals(info.getStatus())){
int delUser = delUser(info);
if (delUser != 0){
return "404";
}
ThreadPoolManager.getInstance().execute(() -> delUser(info));
}
serverInfoDao.updateServerInfo(server_id, status, 0, isnew, name,register_state);
@ -252,23 +252,35 @@ public class ServerInfoController {
* @param serverInfo
* @return
*/
private int delUser(ServerInfo serverInfo){
int wait = -1;
private void delUser(ServerInfo serverInfo){
String path = "/data/jieling/deluser.sh";
if (serverInfo.getIP() == null || "".equals(serverInfo.getIP())
|| serverInfo.getServer_id() == null || "".equals(serverInfo.getServer_id())
|| serverInfo.getCoreName() == null || "".equals(serverInfo.getCoreName())){
System.err.printf("删除操作参数不全,执行失败:参数:%s",serverInfo.toString());
return wait;
LOGGER.error("删除操作参数不全,执行失败:参数:{}",serverInfo.toString());
return;
}
String command = "sh " + path + " 210 " + serverInfo.getIP() + " " + serverInfo.getServer_id() + " " + serverInfo.getCoreName();
String command = "sh " + path + " 500 " + serverInfo.getIP() + " " + serverInfo.getServer_id() + " " + serverInfo.getCoreName();
LOGGER.info("=================清库命令:{}",command);
Process exec = null;
try {
wait = Runtime.getRuntime().exec(command).waitFor();
System.out.printf("删除操作完成:命令:{%s},结果{%d}\n",command,wait);
} catch (InterruptedException | IOException e) {
System.err.printf("删除操作失败:命令:{%s},报错:{%s}\n",command,e.getMessage());
exec = Runtime.getRuntime().exec(command);
LOGGER.info("========================== 停服脚本执行结果开始 ===========================");
new DealProcessSream(exec.getInputStream(),true).start();
new DealProcessSream(exec.getErrorStream(),false).start();
LOGGER.info("=========================== 停服脚本执行结果结束 ==========================");
exec.waitFor();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (exec != null) {
exec.destroy();
}
}
return wait;
}
}

View File

@ -0,0 +1,128 @@
package com.jmfy.controller;
import com.jmfy.dao.impl.HandInDaoImpl;
import com.jmfy.model.TishenServerInfo;
import com.jmfy.utils.JsonUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
/**
* @author lvxinran
* @date 2021/6/21
* @discribe
*/
@Controller
public class TishenController {
private static final Logger LOGGER = LoggerFactory.getLogger(TishenController.class);
@Resource
HandInDaoImpl handInDao;
/**
*
* @param map
* @return
*/
@RequestMapping(value = "/tishenInfoList", method = RequestMethod.GET)
public String toTishenInfoManagerPage(ModelMap map){
try {
List<TishenServerInfo> handInInfos = handInDao.getAllHandInInfo();
map.addAttribute("handInInfos", handInInfos);
} catch (Exception e) {
e.printStackTrace();
}
return "tishenInfoManager";
}
/**
*
* @param map
* @return
*/
@RequestMapping(value = "/toInsertTiShenInfo", method = RequestMethod.GET)
public String toInsertTishenInfoManagerPage(ModelMap map){
return "insertTiShenInfoPage";
}
/**
*
* @param info
* @return
*/
@RequestMapping(value = "/addTishenServer", method = RequestMethod.POST)
@ResponseBody
public int addTishenServer(@RequestBody TishenServerInfo info){
try {
handInDao.addHandIn(info);
} catch (Exception e) {
e.printStackTrace();
return 0;
}
return 1;
}
@RequestMapping(value = "/deleteTiShenServer", method = RequestMethod.POST)
@ResponseBody
public int deleteTiShenServer(HttpServletRequest request){
try {
HashMap<String, String> map = JsonUtil.getInstence().getParameterMap(request);
TishenServerInfo tishenServerInfo = new TishenServerInfo();
tishenServerInfo.set_id(map.get("tiShenId"));
handInDao.removeHandInInfo(tishenServerInfo);
} catch (Exception e) {
e.printStackTrace();
return 0;
}
return 1;
}
@RequestMapping(value = "/toUpdateTishenServer", method = RequestMethod.GET)
public String toUpdateTishenServer(ModelMap map,HttpServletRequest request){
try {
String id = request.getParameter("id");
TishenServerInfo handInInfoById = handInDao.getHandInInfoById(id);
map.addAttribute("tishenInfo",handInInfoById);
} catch (Exception e) {
e.printStackTrace();
return "";
}
return "updateTishenPage";
}
@RequestMapping(value = "/doUpdateTishenServerInfo", method = RequestMethod.POST)
public String doUpdateTishenServerInfo(ModelMap map,HttpServletRequest request){
try {
String id = request.getParameter("id");
String serverInfo = request.getParameter("serverInfo");
String remark = request.getParameter("remark");
TishenServerInfo info = new TishenServerInfo(id,remark,Integer.valueOf(serverInfo));
handInDao.updateHandInfo(info);
List<TishenServerInfo> allHandInInfo = handInDao.getAllHandInInfo();
map.addAttribute("handInInfos", allHandInInfo);
} catch (Exception e) {
e.printStackTrace();
return "";
}
return "tishenInfoManager";
}
}

View File

@ -0,0 +1,26 @@
package com.jmfy.dao;
import com.jmfy.model.TishenServerInfo;
import java.util.List;
/**
* @author lvxinran
* @date 2021/6/21
* @discribe
*/
public interface HandInDao {
//添加
void addHandIn(TishenServerInfo info) throws Exception;
//获取所有
List<TishenServerInfo> getAllHandInInfo() throws Exception;
//删除
int removeHandInInfo (TishenServerInfo info) throws Exception;
//修改
void updateHandInfo(TishenServerInfo info) throws Exception;
TishenServerInfo getHandInInfoById(String id) throws Exception;
}

View File

@ -0,0 +1,64 @@
package com.jmfy.dao.impl;
import com.jmfy.dao.HandInDao;
import com.jmfy.model.Constant;
import com.jmfy.model.TishenServerInfo;
import com.jmfy.utils.Connect;
import com.mongodb.WriteResult;
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;
import java.util.List;
/**
* @author lvxinran
* @date 2021/6/21
* @discribe
*/
@Component
public class HandInDaoImpl implements HandInDao {
@Resource
private Connect connect;
public static final String colon = ":";
@Override
public void addHandIn(TishenServerInfo info) throws Exception {
MongoTemplate mongoTemplate = connect.getMongoTemplete(Constant.dbName);
mongoTemplate.insert(info, "hand_in");
}
@Override
public List<TishenServerInfo> getAllHandInInfo() throws Exception {
MongoTemplate mongoTemplate = connect.getMongoTemplete(Constant.dbName);
Query query = new Query();
return mongoTemplate.find(query, TishenServerInfo.class);
}
@Override
public int removeHandInInfo(TishenServerInfo info) throws Exception {
MongoTemplate mongoTemplate = connect.getMongoTemplete(Constant.dbName);
mongoTemplate.remove(info);
return 1;
}
@Override
public void updateHandInfo(TishenServerInfo info) throws Exception {
Update update = new Update();
update.set("remark",info.getRemark());
update.set("serverInfo",info.getServerInfo());
MongoTemplate mongoTemplate = connect.getMongoTemplete(Constant.dbName);
Query query = new Query(Criteria.where("_id").is(info.get_id()));
mongoTemplate.updateMulti(query, update, TishenServerInfo.class);
}
@Override
public TishenServerInfo getHandInInfoById(String id) throws Exception {
MongoTemplate mongoTemplate = connect.getMongoTemplete(Constant.dbName);
TishenServerInfo info = mongoTemplate.findById(id, TishenServerInfo.class);
return info;
}
}

View File

@ -140,19 +140,23 @@ public class GMHandler extends BaseHandler {
jsonBan.put("dsid",zoneId);
jsonBan.put("treat_type","7");
jsonBan.put("banReason",content);
LOGGER.info("message","ty,userId:{},zoneId:{},content:{},time:{}",userId,zoneId,content,time);
CUserInfo coreUserInfo = userInfoDao.findUserInfoByUserId(Integer.valueOf(userId));
if (coreUserInfo == null) {
map.put("message","帐号不存在"+userId);
LOGGER.error("message","天眼帐号不存在userId:{}",userId);
throw new Exception("帐号不存在");
} else {
ServerInfo coreServerList = serverListDao.getServerinfo(String.valueOf(coreUserInfo.getServerid()));
if (null == coreServerList) {
map.put("message","服务器不存在");
LOGGER.error("天眼服务器不存在");
return false;
}
if (!coreServerList.getServer_id().equals(String.valueOf(zoneId))) {
map.put("message","服务器不存在"+zoneId);
LOGGER.error("天眼服务器不存在{}",zoneId);
return false;
}
@ -162,22 +166,23 @@ public class GMHandler extends BaseHandler {
String rpcString = RedisUtil.getInstence().getObject(RedisUserKey.LOGIC_SERVER_INFO, String.valueOf(coreServerList.getServer_id()), String.class, -1);
if (null == rpcString) {
map.put("message","Exception send err rpcString dsid="+coreUserInfo.getServerid()+",uid="+userId);
LOGGER.error("Exception send err rpcString dsid=>{},uid=>{},cmd=>{}", coreUserInfo.getServerid(), userId, cmd);
LOGGER.error("天眼Exception send err rpcString dsid=>{},uid=>{},cmd=>{}", coreUserInfo.getServerid(), userId, cmd);
return false;
}
String thriftIp = rpcString.split(":")[0];
String thriftPort = rpcString.split(":")[1];
if (thriftIp == null || thriftIp.isEmpty() || null == thriftPort || thriftPort.isEmpty()) {
map.put("message","thriftIp == null || thriftIp.isEmpty() || null == thriftPort || thriftPort.isEmpty()");
LOGGER.error("天眼thriftIp == null || thriftIp.isEmpty() || null == thriftPort || thriftPort.isEmpty()");
return false;
}
Result result = RPCClient.gmSend(cmd, thriftIp, thriftPort);
// 异常或者错误
if (result.getResultCode() != 0) {
LOGGER.error("Exception send err dsid=>{},uid=>{},cmd=>{}", coreUserInfo.getServerid(), userId, cmd);
LOGGER.error("天眼Exception send err dsid=>{},uid=>{},cmd=>{}", coreUserInfo.getServerid(), userId, cmd);
}else {
// 封禁入库
LOGGER.info("封禁入库,serverid=>{},uid=>{}", zoneId, userId);
LOGGER.info("天眼封禁入库,serverid=>{},uid=>{}", zoneId, userId);
updateUserBanner(coreUserInfo,session,jsonBan);
}
}
@ -244,6 +249,11 @@ public class GMHandler extends BaseHandler {
int type = jsonObject.getIntValue("treat_type");
switch (type) {
case GMHandler.SKYEYE_BAN:
UserBanned skyeyebanned = userBannedDao.getUserBannedByBannedType(cUser.getUserId(),type);
if(skyeyebanned != null){
return;
}
break;
case GMHandler.BANNED_TO_POST:
case GMHandler.BANNED_LOGIN:
// 封禁用户

View File

@ -0,0 +1,57 @@
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;
/**
* @author lvxinran
* @date 2021/6/21
* @discribe
*/
@Document(collection = "hand_in")
public class TishenServerInfo {
@Id
private String _id;
@Field("remark")
private String remark;
@Field("serverInfo")
private int serverInfo;
public TishenServerInfo(String _id, String remark, int serverInfo) {
this._id = _id;
this.remark = remark;
this.serverInfo = serverInfo;
}
public TishenServerInfo() {
}
public String get_id() {
return _id;
}
public void set_id(String _id) {
this._id = _id;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public int getServerInfo() {
return serverInfo;
}
public void setServerInfo(int serverInfo) {
this.serverInfo = serverInfo;
}
}

View File

@ -44,8 +44,9 @@ public enum PowersEnum {
CHANNEL_NAME_MANAGER(415,"渠道管理",400),
ADD_CHANNEL_PERMISSIONS(416,"权限: 添加渠道",400),
DELETE_CHANNEL_PERMISSIONS(417,"权限: 删除渠道",400),
GAME_AGREEMENT_MANAGER(418,"游戏协议管理",400),
ADD_GAME_AGREEMENT_PERMISSIONS(419,"权限: 操作游戏协议(增,删,改)",400),
HAND_IN_MANAGER(418,"提审服管理",400),
GAME_AGREEMENT_MANAGER(419,"游戏协议管理",400),
ADD_GAME_AGREEMENT_PERMISSIONS(420,"权限: 操作游戏协议(增,删,改)",400),
// 流水日志管理500-599
BILL_LOG(500,"流水日志管理",500),

View File

@ -0,0 +1,58 @@
package com.jmfy.utils;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
* @Author hj
* @Date 2021/6/24 11:55
* @Description:
* @Version 1.0
*/
public class DealProcessSream extends Thread {
private InputStream inputStream;
private boolean judge;
public DealProcessSream(InputStream inputStream, boolean judge) {
this.inputStream = inputStream;
this.judge = judge;
}
@Override
public void run() {
InputStreamReader inputStreamReader = null;
BufferedReader br = null;
try {
inputStreamReader = new InputStreamReader(
inputStream);
br = new BufferedReader(inputStreamReader);
// 打印信息
String line = null;
if (judge){
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
else {
while (br.readLine() != null);
}
} catch (IOException ioe) {
ioe.printStackTrace();
}finally {
try {
if (br != null){
br.close();
}
if (inputStreamReader != null){
inputStreamReader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

View File

@ -0,0 +1,36 @@
package com.jmfy.utils;
import java.util.concurrent.*;
/**
* @Author hj
* @Date 2021/6/24 14:23
* @Description:
* @Version 1.0
*/
public class ThreadPoolManager {
private static ThreadPoolExecutor executor;
public static ThreadPoolExecutor getInstance() {
if (executor == null) {
synchronized (ThreadPoolManager.class) {
if (executor == null) {
executor = executorService();
}
}
}
return executor;
}
private static ThreadPoolExecutor executorService(){
return new ThreadPoolExecutor(1,//池中保持线程数
5,//最大线程数
10,//当线程数大于核心时,终止前多余空闲线程等待时间
TimeUnit.SECONDS,//时间单位为秒
new LinkedBlockingDeque<>(10),//池内队列最高10个线程
Executors.defaultThreadFactory(),//执行程序创建新线程使用默认工厂
new ThreadPoolExecutor.DiscardPolicy());//出现阻塞时使用处理程序
}
}

View File

@ -28,7 +28,7 @@
<body>
<header class="navbar-wrapper">
<div class="navbar navbar-fixed-top">
<div class="container-fluid cl"><a class="logo navbar-logo f-l mr-10 hidden-xs">戒灵管理平台</a> <a
<div class="container-fluid cl"><a class="logo navbar-logo f-l mr-10 hidden-xs">太初行管理平台</a> <a
class="logo navbar-logo-m f-l mr-10 visible-xs">H-ui</a>
<span class="logo navbar-slogan f-l mr-10 hidden-xs">v3.1</span>
<a aria-hidden="false" class="nav-toggle Hui-iconfont visible-xs" href="javascript:;">&#xe667;</a>
@ -136,8 +136,10 @@
href="javascript:;">公会列表管理</a></li>
<li th:if="${#lists.contains(pos.powers,415)} "><a data-href="channelInfoList" data-title="渠道管理"
href="javascript:;">渠道管理</a></li>
<li th:if="${#lists.contains(pos.powers,418)} "><a data-href="gameAgreementList" data-title="游戏协议管理"
href="javascript:;">游戏协议管理</a></li>
<li th:if="${#lists.contains(pos.powers,418)} "><a data-href="tishenInfoList" data-title="提审服管理"
href="javascript:;">提审服管理</a></li>
<li th:if="${#lists.contains(pos.powers,419)} "><a data-href="gameAgreementList" data-title="游戏协议管理"
href="javascript:;">游戏协议管理</a></li>
</ul>
</dd>
</dl>

View File

@ -0,0 +1,157 @@
<!--_meta 作为公共模版分离出去-->
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8"/>
<meta name="renderer" content="webkit|ie-comp|ie-stand"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="viewport"
content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<meta http-equiv="Cache-Control" content="no-siteapp"/>
<link rel="Bookmark" href="favicon.ico"/>
<link rel="Shortcut Icon" href="favicon.ico"/>
<!--[if lt IE 9]>
<script type="text/javascript" src="../static/lib/html5shiv.js"></script>
<script type="text/javascript" src="../static/lib/respond.min.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="../static/h-ui/css/H-ui.min.css" />
<link rel="stylesheet" type="text/css" href="../static/h-ui.admin/css/H-ui.admin.css" />
<link rel="stylesheet" type="text/css" href="../static/lib/Hui-iconfont/1.0.8/iconfont.css" />
<link rel="stylesheet" type="text/css" href="../static/h-ui.admin/skin/default/skin.css" id="skin" />
<link rel="stylesheet" type="text/css" href="../static/h-ui.admin/css/style.css" />
<!--[if IE 6]>
<script type="text/javascript" src="../static/lib/DD_belatedPNG_0.0.8a-min.js"></script>
<script>DD_belatedPNG.fix('*');</script>
<![endif]-->
<!--/meta 作为公共模版分离出去-->
<title>基本设置</title>
</head>
<body>
<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
<span class="c-gray en">&gt;</span>
提审服管理
<span class="c-gray en">&gt;</span>
创建提审服信息
</nav>
<div class="page-container">
<form class="form form-horizontal" id="form-article-add" action="http://60.1.1.212:9076/idip/manager" method="post">
<div id="tab-system" class="HuiTab">
<div class="tabBar cl">
<span>创建提审服标识</span>
</div>
<div class="tabCon">
<span class="ERRINFO"></span>
<div class="row cl">
<label class="form-label col-xs-4 col-sm-2">
<span class="c-red">*</span>
提审服标识id</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="text" name="_id" style="width: 100px;" placeholder="" class="input-text"/>
</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="hidden" id="serverInfoInput"/>-->
<select name="serverInfo" class="input-text" id="serverInfo"><!--下拉列表-->
<option value="0" selected="selected">正式服</option>
<option value="1" >提审服</option>
</select>
</div>
</div>
<div class="row cl">
<label class="form-label col-xs-4 col-sm-2">
备注:</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="text" name="remark" placeholder="" class="input-text"/>
</div>
</div>
</div>
</div>
<div class="row cl">
<div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-2">
<button onClick="return addTishenInfo();" class="btn btn-primary radius" type="button"><i
class="Hui-iconfont">&#xe632;</i> 添加
</button>
</div>
</div>
</form>
</div>
<!--_footer 作为公共模版分离出去-->
<script type="text/javascript" src="../static/lib/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="../static/lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="../static/h-ui/js/H-ui.min.js"></script>
<script type="text/javascript" src="../static/h-ui.admin/js/H-ui.admin.js"></script> <!--/_footer 作为公共模版分离出去-->
<!--请在下方写此页面业务相关的脚本-->
<script type="text/javascript" src="../static/lib/My97DatePicker/4.8/WdatePicker.js"></script>
<script type="text/javascript" src="../static/lib/jquery.validation/1.14.0/jquery.validate.js"></script>
<script type="text/javascript" src="../static/lib/jquery.validation/1.14.0/validate-methods.js"></script>
<script type="text/javascript" src="../static/lib/jquery.validation/1.14.0/messages_zh.js"></script>
<script type="text/javascript">
$(function () {
$('.skin-minimal input').iCheck({
checkboxClass: 'icheckbox-blue',
radioClass: 'iradio-blue',
increaseArea: '20%'
});
$("#tab-system").Huitab({
index: 0
});
});
function addTishenInfo() {
var erroCode = $('.ERRINFO');
var _id = $("input[name='_id']").val();
// var serverInfo = $("#serverInfoInput").val();
var serverInfo = document.getElementById("serverInfo").value;
var remark = $("input[name='remark']").val();
if (_id === '' || _id == null) {
erroCode.html('<span style="color: red; ">提审服标识不能为空!</span>');
return false;
}
$.ajax({
type: "POST",
data:
JSON.stringify({
"_id": _id,
"remark":remark,
"serverInfo": serverInfo,
})
,
url: "/addTishenServer",
dataType: "json",
contentType: 'application/json',
success: function (data) {
if (data === 0) {
layer.msg('添加失败!', {icon: 6, time: 1000});
}
if (data === 1) {
layer.msg('添加成功!', {icon: 6, time: 1000});
}
}
}
)
}
</script>
<!--/请在上方写此页面业务相关的脚本-->
</body>
</html>

View File

@ -0,0 +1,124 @@
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8"/>
<meta name="renderer" content="webkit|ie-comp|ie-stand"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="viewport"
content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<meta http-equiv="Cache-Control" content="no-siteapp"/>
<script type="text/javascript" src="../static/lib/html5shiv.js"></script>
<script type="text/javascript" src="../static/lib/respond.min.js"></script>
<!--<![endif]&ndash;&gt;-->
<link rel="stylesheet" type="text/css" href="../static/h-ui/css/H-ui.min.css" />
<link rel="stylesheet" type="text/css" href="../static/h-ui.admin/css/H-ui.admin.css" />
<link rel="stylesheet" type="text/css" href="../static/lib/Hui-iconfont/1.0.8/iconfont.css" />
<link rel="stylesheet" type="text/css" href="../static/h-ui.admin/skin/default/skin.css" id="skin" />
<link rel="stylesheet" type="text/css" href="../static/h-ui.admin/css/style.css" />
<script type="text/javascript" src="../static/lib/DD_belatedPNG_0.0.8a-min.js"></script>
<script>DD_belatedPNG.fix('*');</script>
<title>提审服管理</title>
</head>
<body>
<nav class="breadcrumb">
<i class="Hui-iconfont">&#xe67f;</i> 首页
<span class="c-gray en">&gt;</span> gm功能
<span class="c-gray en">&gt;</span> 提审服管理
<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">&#xe68f;</i></a>
</nav>
<div class="page-container" style="text-align: center">
<h2><span style="color:red;">提审服管理</span></h2>
<div style="text-align: left">
<!--<input type="text" name="channel" id="channel" placeholder="" value="" class="input-text"-->
<!--style="width: 300px;"/>-->
<a href="toInsertTiShenInfo" class="btn btn-primary">添加提审服标识</a>
</div>
<div class="text-c">
<div class="mt-20">
<table class="table table-border table-bordered table-bg table-hover table-sort table-responsive">
<thead>
<tr class="text-c" style="width: 300px;">
<th width="200">提审ID</th>
<th width="200">提审服务器值</th>
<th width="200">备注</th>
<th width="200">操作</th>
</tr>
</thead>
<tbody>
<tr th:each="obj:${handInInfos}">
<!--<td><input type="checkbox" value="" name=""/></td>-->
<td th:text="${obj._id}" style="text-align: center;"></td>
<td th:switch="${obj.serverInfo}" style="text-align: center;">
<span th:case=0> 正式服</span>
<span th:case=1> 提审服</span>
</td>
<td th:text="${obj.remark}" style="text-align: center;"></td>
<td style="text-align: center; width: 300px">
<a href="javascript:;"
th:href="@{/toUpdateTishenServer(id =${obj._id})}"
class="btn btn-success"> <i class="Hui-iconfont"></i> 修改
</a>
<button type="button" th:id="${obj._id}" class="btn btn-primary"
onclick="return deleteChannel(this)"><i class="Hui-iconfont"></i> 删除
</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<!--_footer 作为公共模版分离出去-->
<script type="text/javascript" src="../static/lib/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="../static/lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="../static/h-ui/js/H-ui.min.js"></script>
<script type="text/javascript" src="../static/h-ui.admin/js/H-ui.admin.js"></script> <!--/_footer 作为公共模版分离出去-->
<!--请在下方写此页面业务相关的脚本-->
<script type="text/javascript" src="../static/lib/My97DatePicker/4.8/WdatePicker.js"></script>
<script type="text/javascript" src="../static/lib/jquery.validation/1.14.0/jquery.validate.js"></script>
<script type="text/javascript" src="../static/lib/jquery.validation/1.14.0/validate-methods.js"></script>
<script type="text/javascript" src="../static/lib/jquery.validation/1.14.0/messages_zh.js"></script>
<script type="text/javascript" src="../static/searchableSelect/js/jquery.searchableSelect.js"></script>
<script type="text/javascript">
// $('.table-sort').dataTable({
// "aaSorting": [[1, "desc"]],//默认第几个排序
// "bStateSave": true,//状态保存
// "pading": false,
// "aoColumnDefs": [
// //{"bVisible": false, "aTargets": [ 3 ]} //控制列的隐藏显示
// {"orderable": false, "aTargets": [2]}// 不参与排序的列
// ]
// });
function deleteChannel(obj) {
var id = $(obj).attr("id");
$.ajax({
type: "POST",
data: {
"tiShenId": id
},
url: "/deleteTiShenServer",
success: function (data) {
if (data === 1) {
layer.msg('操作成功!', {icon: 6, time: 1000});
// window.location.reload();
}
if (data === 0) {
layer.msg('操作失败,数据不存在!', {icon: 6, time: 1000});
}
if (data === 2) {
layer.msg('没有权限', {icon: 6, time: 1000});
}
}
}
)
}
</script>
</body>
</html>

View File

@ -0,0 +1,115 @@
<!--_meta 作为公共模版分离出去-->
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8"/>
<meta name="renderer" content="webkit|ie-comp|ie-stand"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="viewport"
content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<meta http-equiv="Cache-Control" content="no-siteapp"/>
<link rel="Bookmark" href="favicon.ico"/>
<link rel="Shortcut Icon" href="favicon.ico"/>
<!--[if lt IE 9]>
<script type="text/javascript" src="../static/lib/html5shiv.js"></script>
<script type="text/javascript" src="../static/lib/respond.min.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="../static/h-ui/css/H-ui.min.css" />
<link rel="stylesheet" type="text/css" href="../static/h-ui.admin/css/H-ui.admin.css" />
<link rel="stylesheet" type="text/css" href="../static/lib/Hui-iconfont/1.0.8/iconfont.css" />
<link rel="stylesheet" type="text/css" href="../static/h-ui.admin/skin/default/skin.css" id="skin" />
<link rel="stylesheet" type="text/css" href="../static/h-ui.admin/css/style.css" />
<!--[if IE 6]>
<script type="text/javascript" src="../static/lib/DD_belatedPNG_0.0.8a-min.js"></script>
<script>DD_belatedPNG.fix('*');</script>
<![endif]-->
<!--/meta 作为公共模版分离出去-->
<title>基本设置</title>
</head>
<body>
<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
<span class="c-gray en">&gt;</span>
提审服管理
<span class="c-gray en">&gt;</span>
修改提审服信息
</nav>
<div class="page-container">
<form class="form form-horizontal" th:object="${tishenInfo}" id="form-article-add" action="/doUpdateTishenServerInfo" method="post">
<div id="tab-system" class="HuiTab">
<div class="tabBar cl">
<span>修改提审服信息</span>
</div>
<div class="tabCon">
<span class="ERRINFO"></span>
<div class="row cl">
<label class="form-label col-xs-4 col-sm-2">
<span class="c-red">*</span>
提审服标识id(id不支持修改)</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="text" name="id" placeholder="" th:value="*{_id}" class="input-text" readonly/>
</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="hidden" id="serverInfoInput"/>-->
<select name="serverInfo" class="input-text" id="serverInfo" th:value="*{serverInfo}"><!--下拉列表-->
<option value="0" th:selected="*{serverInfo eq 0}">正式服</option>
<option value="1" th:selected="*{serverInfo eq 1}">提审服</option>
</select>
</div>
</div>
<div class="row cl">
<label class="form-label col-xs-4 col-sm-2">
备注:</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="text" name="remark" placeholder="" th:value="*{remark}" class="input-text"/>
</div>
</div>
</div>
</div>
<div class="row cl">
<div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-2">
<button class="btn btn-primary radius" type="submit"><i
class="Hui-iconfont">&#xe632;</i> 确认修改
</button>
</div>
</div>
</form>
</div>
<!--_footer 作为公共模版分离出去-->
<script type="text/javascript" src="../static/lib/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="../static/lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="../static/h-ui/js/H-ui.min.js"></script>
<script type="text/javascript" src="../static/h-ui.admin/js/H-ui.admin.js"></script> <!--/_footer 作为公共模版分离出去-->
<!--请在下方写此页面业务相关的脚本-->
<script type="text/javascript" src="../static/lib/My97DatePicker/4.8/WdatePicker.js"></script>
<script type="text/javascript" src="../static/lib/jquery.validation/1.14.0/jquery.validate.js"></script>
<script type="text/javascript" src="../static/lib/jquery.validation/1.14.0/validate-methods.js"></script>
<script type="text/javascript" src="../static/lib/jquery.validation/1.14.0/messages_zh.js"></script>
<script type="text/javascript">
$(function () {
$('.skin-minimal input').iCheck({
checkboxClass: 'icheckbox-blue',
radioClass: 'iradio-blue',
increaseArea: '20%'
});
$("#tab-system").Huitab({
index: 0
});
});
</script>
<!--/请在上方写此页面业务相关的脚本-->
</body>
</html>