generated from root/miduo_server
Merge branch 'dh_dev_gm0621' into jieling
commit
db81995f57
|
|
@ -40,7 +40,6 @@ public class WebSecurityConfig extends WebMvcConfigurerAdapter{
|
|||
addInterceptor.excludePathPatterns("/error");
|
||||
addInterceptor.excludePathPatterns("/login**");
|
||||
addInterceptor.excludePathPatterns("/req/**");
|
||||
addInterceptor.excludePathPatterns("/registerInit");
|
||||
|
||||
addInterceptor.addPathPatterns("/**");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,34 +96,91 @@ public class CdkInfoController {
|
|||
return cdkInfoDao.deleteCdk(goodsId);
|
||||
}
|
||||
|
||||
// public String findCdkInfosssss (ModelMap map , HttpServletRequest request) throws Exception {
|
||||
// HashMap<String, String> parameterMap = JsonUtil.getInstence().getParameterMap(request);
|
||||
// int serverId = Integer.parseInt(parameterMap.get("serverId"));
|
||||
// String cdkNum = parameterMap.get("cdkNum");
|
||||
// CdkInfo cdkInfo = cdkInfoDao.findCdkInfoBuyId(cdkNum);
|
||||
// if (cdkInfo == null){
|
||||
// return "useCDKinfo";
|
||||
// }
|
||||
// SCdkInfo scdkInfo = cdkInfoDao.getScdkInfo(cdkInfo.getGoodsId());
|
||||
// if (scdkInfo == null){
|
||||
// return "useCDKinfo";
|
||||
// }
|
||||
// List<CdkUseInfo> cdkUseInfoList = cdkInfoDao.findCdkUseInfoById(serverId,cdkNum);
|
||||
// List<UseCDKInfoVo> useCDKInfoVoList = new ArrayList<>();
|
||||
// for (CdkUseInfo cdkUseInfo : cdkUseInfoList) {
|
||||
// UseCDKInfoVo useCDKInfoVo = new UseCDKInfoVo();
|
||||
// useCDKInfoVo.setUserId(cdkUseInfo.getUid());
|
||||
// GSUser gsUser = gsUserDao.findUserInfo(cdkUseInfo.getServerId(), cdkUseInfo.getUid());
|
||||
// useCDKInfoVo.setUserName(gsUser.getPlayerManager().getNickName());
|
||||
// useCDKInfoVo.setOpenId(gsUser.getPlayerManager().getOpenId());
|
||||
// useCDKInfoVo.setGoodsName(scdkInfo.getGoodsName());
|
||||
// useCDKInfoVo.setUseTime(JsonUtil.timeStamp2Date(String.valueOf(cdkUseInfo.getCreateTime())));
|
||||
// useCDKInfoVoList.add(useCDKInfoVo);
|
||||
// }
|
||||
// map.put("useCDKinfo",useCDKInfoVoList);
|
||||
// return "useCDKinfo";
|
||||
// }
|
||||
|
||||
@RequestMapping(value = "/findCdkInfo", method = {RequestMethod.POST, RequestMethod.GET})
|
||||
public String findCdkInfo (ModelMap map , HttpServletRequest request) throws Exception {
|
||||
public String findCdkInfo (ModelMap map, HttpServletRequest request) throws Exception {
|
||||
String path;
|
||||
HashMap<String, String> parameterMap = JsonUtil.getInstence().getParameterMap(request);
|
||||
int serverId = Integer.parseInt(parameterMap.get("serverId"));
|
||||
String cdkNum = parameterMap.get("cdkNum");
|
||||
CdkInfo cdkInfo = cdkInfoDao.findCdkInfoBuyId(cdkNum);
|
||||
if (cdkInfo == null){
|
||||
return "useCDKinfo";
|
||||
int type = Integer.valueOf(parameterMap.get("type"));
|
||||
List<CdkUseInfo> cdkUseInfo;
|
||||
if (type == 1){
|
||||
path = "queryUserInfoByCdk";
|
||||
String cdkId = parameterMap.get("cdkId");
|
||||
cdkUseInfo = cdkInfoDao.findCdkUseInfo(cdkId);
|
||||
}
|
||||
SCdkInfo scdkInfo = cdkInfoDao.getScdkInfo(cdkInfo.getGoodsId());
|
||||
if (scdkInfo == null){
|
||||
return "useCDKinfo";
|
||||
else if (type == 2){
|
||||
path = "queryCdkInfoByUser";
|
||||
String userId = parameterMap.get("userId");
|
||||
cdkUseInfo = cdkInfoDao.findCdkUseInfoByUId(Integer.valueOf(userId));
|
||||
}
|
||||
List<CdkUseInfo> cdkUseInfoList = cdkInfoDao.findCdkUseInfoById(serverId,cdkNum);
|
||||
List<UseCDKInfoVo> useCDKInfoVoList = new ArrayList<>();
|
||||
for (CdkUseInfo cdkUseInfo : cdkUseInfoList) {
|
||||
UseCDKInfoVo useCDKInfoVo = new UseCDKInfoVo();
|
||||
useCDKInfoVo.setIsData(1);
|
||||
useCDKInfoVo.setUserId(cdkUseInfo.getUid());
|
||||
GSUser gsUser = gsUserDao.findUserInfo(cdkUseInfo.getServerId(), cdkUseInfo.getUid());
|
||||
useCDKInfoVo.setUserName(gsUser.getPlayerManager().getNickName());
|
||||
useCDKInfoVo.setOpenId(gsUser.getPlayerManager().getOpenId());
|
||||
useCDKInfoVo.setGoodsName(scdkInfo.getGoodsName());
|
||||
useCDKInfoVo.setUseTime(JsonUtil.timeStamp2Date(String.valueOf(cdkUseInfo.getCreateTime())));
|
||||
useCDKInfoVoList.add(useCDKInfoVo);
|
||||
else {
|
||||
throw new Exception("type is error !!!");
|
||||
}
|
||||
map.put("useCDKinfo",useCDKInfoVoList);
|
||||
return "useCDKinfo";
|
||||
List<UseCDKInfoVo> vos = new ArrayList<>(voToCdk(cdkUseInfo));
|
||||
map.put("useCdkInfo",vos);
|
||||
return path;
|
||||
}
|
||||
|
||||
/**
|
||||
* 转vo对象
|
||||
* @param useInfos
|
||||
* @return
|
||||
*/
|
||||
private List<UseCDKInfoVo> voToCdk(List<CdkUseInfo> useInfos){
|
||||
List<UseCDKInfoVo> list = new ArrayList<>();
|
||||
useInfos.forEach(v->{
|
||||
UseCDKInfoVo infoVo = new UseCDKInfoVo();
|
||||
try {
|
||||
// 礼包信息
|
||||
infoVo.setCdkId(v.getCdk());
|
||||
infoVo.setUseTime(DateUtil.stampToTime(v.getCreateTime()));
|
||||
// 玩家信息
|
||||
GSUser gsUser = gsUserDao.findUserInfo(v.getServerId(), v.getUid());
|
||||
infoVo.setUserId(v.getUid());
|
||||
infoVo.setUserName(gsUser.getPlayerManager().getNickName());
|
||||
infoVo.setOpenId(gsUser.getPlayerManager().getOpenId());
|
||||
// 服务器信息
|
||||
ServerInfo serverinfo = serverInfoDao.getServerinfo(String.valueOf(v.getServerId()));
|
||||
infoVo.setServerId(v.getServerId());
|
||||
infoVo.setServerName(v.getServerId()+"-"+serverinfo.getName());
|
||||
// 礼包码信息
|
||||
CdkInfo cdkInfo = cdkInfoDao.findCdkInfoBuyId(v.getCdk());
|
||||
SCdkInfo scdkInfo = cdkInfoDao.getScdkInfo(cdkInfo.getGoodsId());
|
||||
infoVo.setGoodsId(scdkInfo.getId());
|
||||
infoVo.setGoodsName(scdkInfo.getGoodsName());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
list.add(infoVo);
|
||||
});
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1,151 @@
|
|||
package com.jmfy.controller;
|
||||
|
||||
import com.jmfy.dao.CUserDao;
|
||||
import com.jmfy.dao.GameAgreementDao;
|
||||
import com.jmfy.model.CAdmin;
|
||||
import com.jmfy.model.GameAgreement;
|
||||
import com.jmfy.model.vo.PowersEnum;
|
||||
import com.jmfy.utils.JsonUtil;
|
||||
import com.jmfy.utils.SeqUtils;
|
||||
import com.sun.javaws.exceptions.ErrorCodeResponseException;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.swing.text.html.Option;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @Author hj
|
||||
* @Description 登陆界面 协议http管理
|
||||
**/
|
||||
@SuppressWarnings("ALL")
|
||||
@Controller
|
||||
public class GameAgreementController {
|
||||
|
||||
@Resource
|
||||
private GameAgreementDao agreementDao;
|
||||
@Resource
|
||||
private CUserDao cUserDao;
|
||||
@Resource
|
||||
private SeqUtils seqUtils;
|
||||
|
||||
/**
|
||||
* 获取全部列表
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value = "/gameAgreementList", method = {RequestMethod.POST, RequestMethod.GET})
|
||||
public String getGameAgreementList(ModelMap map){
|
||||
try {
|
||||
List<GameAgreement> infoList = agreementDao.getGameAgreementList();
|
||||
map.addAttribute("infoList",infoList);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return "gameAgreement";
|
||||
}
|
||||
|
||||
/**
|
||||
* 跳转到新增或修改界面
|
||||
* @param map
|
||||
* @param id
|
||||
* @param request
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(value = "/gameAgreementToUpdate", method = {RequestMethod.POST, RequestMethod.GET})
|
||||
public String gameAgreementToUpdate(ModelMap map, String id, HttpServletRequest request) throws Exception {
|
||||
// 验证权限
|
||||
boolean verifyPower = verifyPower(request, PowersEnum.ADD_GAME_AGREEMENT_PERMISSIONS);
|
||||
if (!verifyPower){
|
||||
throw new Exception("not permissions...");
|
||||
}
|
||||
|
||||
GameAgreement agreement = Optional.ofNullable(agreementDao.getGameAgreementById(id)).orElse(new GameAgreement());
|
||||
map.addAttribute("agreement",agreement);
|
||||
return "updateGameAgreement";
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
* @param request
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(value = "/updateGameAgreement", method = {RequestMethod.POST, RequestMethod.GET})
|
||||
public @ResponseBody
|
||||
int updateGameAgreement(@RequestBody GameAgreement agreement, HttpServletRequest request) throws Exception {
|
||||
HashMap<String, String> map = JsonUtil.getInstence().getParameterMap(request);
|
||||
// 验证权限
|
||||
boolean verifyPower = verifyPower(request, PowersEnum.ADD_PACKAGE_NAME);
|
||||
if (!verifyPower){
|
||||
return 2;
|
||||
}
|
||||
|
||||
GameAgreement gameAgreement = agreementDao.getGameAgreementById(agreement.getId());
|
||||
if (gameAgreement == null){
|
||||
agreementDao.insert(agreement);
|
||||
}else {
|
||||
agreementDao.update(agreement);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
* @param request
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(value = "/deleteGameAgreement", method = {RequestMethod.POST, RequestMethod.GET})
|
||||
public @ResponseBody
|
||||
int deleteGameAgreement(HttpServletRequest request) throws Exception {
|
||||
HashMap<String, String> map = JsonUtil.getInstence().getParameterMap(request);
|
||||
// 验证权限
|
||||
boolean verifyPower = verifyPower(request, PowersEnum.DELETE_PACKAGE_NAME);
|
||||
if (!verifyPower){
|
||||
return 2;
|
||||
}
|
||||
// 获取id
|
||||
String id = Optional.ofNullable(map.get("id")).orElse("");
|
||||
GameAgreement byId = agreementDao.getGameAgreementById(id);
|
||||
if (byId == null){
|
||||
return 0;
|
||||
}
|
||||
// 删除
|
||||
agreementDao.delete(byId);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证权限
|
||||
* @param request
|
||||
* @param powersEnum
|
||||
* @return
|
||||
*/
|
||||
private boolean verifyPower(HttpServletRequest request, PowersEnum... powersEnum) throws Exception {
|
||||
String username = (String) request.getSession().getAttribute("username");
|
||||
if (username == null){
|
||||
return false;
|
||||
}
|
||||
CAdmin admin = cUserDao.findAdmin(username);
|
||||
if (admin == null){
|
||||
return false;
|
||||
}
|
||||
for (PowersEnum anEnum : powersEnum) {
|
||||
if (!admin.getPowers().contains(anEnum.getId())){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -39,32 +39,10 @@ public class HttpRequestController {
|
|||
public String getFightRecord (HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
// 玩家id和战斗id(玩家id_服务器id_战斗类型_时间戳)
|
||||
String uid = request.getParameter("uid");
|
||||
String fightid = request.getParameter("fightid");
|
||||
String fightId = request.getParameter("fightid");
|
||||
// 拼接参数
|
||||
String cmd = "fightrecord " + fightid;
|
||||
// 读库找到玩家信息
|
||||
CUserInfo cUserInfo = userInfoDao.findUserInfoById(uid);
|
||||
// 获取玩家服务器ip和端口
|
||||
String rpcString = RedisUtil.getInstence().getObject(RedisUserKey.LOGIC_SERVER_INFO, String.valueOf(cUserInfo.getServerid()), String.class, -1);
|
||||
if (null == rpcString) {
|
||||
return "获取玩家服务器端口失败,服务器id错误";
|
||||
}
|
||||
// ip
|
||||
String thriftIp = rpcString.split(":")[0];
|
||||
// 端口
|
||||
String thriftPort = rpcString.split(":")[1];
|
||||
if (thriftIp == null || thriftIp.isEmpty() || null == thriftPort || thriftPort.isEmpty()) {
|
||||
return "获取玩家服务器端口为空";
|
||||
}
|
||||
// 通信游戏服
|
||||
Result result = RPCClient.gmSend(cmd, thriftIp, thriftPort);
|
||||
if (result.getResultCode() != 0) {
|
||||
LOGGER.error("->userid:{},fightId:{}",uid,fightid);
|
||||
LOGGER.error("->code:{},result:{}",result.resultCode,result.getResultMsg());
|
||||
return "游戏服返回战报记录数据结果失败";
|
||||
}
|
||||
// 返回
|
||||
return result.getResultMsg() == null ? "":result.getResultMsg();
|
||||
String cmd = "fightrecord one " + fightId;
|
||||
return sendGm(uid,cmd);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -76,29 +54,9 @@ public class HttpRequestController {
|
|||
*/
|
||||
@RequestMapping(value = "/clearFightRecord", method = {RequestMethod.POST, RequestMethod.GET})
|
||||
public String clearFightRecord (HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
|
||||
String uid = request.getParameter("uid");
|
||||
|
||||
String cmd = "fightrecord delete";
|
||||
|
||||
CUserInfo cUserInfo = userInfoDao.findUserInfoById(uid);
|
||||
|
||||
String rpcString = RedisUtil.getInstence().getObject(RedisUserKey.LOGIC_SERVER_INFO, String.valueOf(cUserInfo.getServerid()), String.class, -1);
|
||||
if (null == rpcString) {
|
||||
return "获取玩家服务器端口失败,服务器id错误";
|
||||
}
|
||||
String thriftIp = rpcString.split(":")[0];
|
||||
String thriftPort = rpcString.split(":")[1];
|
||||
if (thriftIp == null || thriftIp.isEmpty() || null == thriftPort || thriftPort.isEmpty()) {
|
||||
return "获取玩家服务器端口为空";
|
||||
}
|
||||
Result result = RPCClient.gmSend(cmd, thriftIp, thriftPort);
|
||||
if (result.getResultCode() != 0) {
|
||||
LOGGER.error("->userid:{}",uid);
|
||||
LOGGER.error("->code:{},result:{}",result.resultCode,result.getResultMsg());
|
||||
return "游戏服返回战报记录数据结果失败";
|
||||
}
|
||||
return "ok";
|
||||
return sendGm(uid,cmd);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -110,13 +68,20 @@ public class HttpRequestController {
|
|||
*/
|
||||
@RequestMapping(value = "/getAllFightRecord", method = {RequestMethod.POST, RequestMethod.GET})
|
||||
public String getAllFightRecord (HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
|
||||
String uid = request.getParameter("uid");
|
||||
|
||||
String cmd = "fightrecord all " + uid;
|
||||
return sendGm(uid,cmd);
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送gm到游戏服
|
||||
* @param uid
|
||||
* @param cmd
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private String sendGm(String uid, String cmd) throws Exception {
|
||||
CUserInfo cUserInfo = userInfoDao.findUserInfoById(uid);
|
||||
|
||||
String rpcString = RedisUtil.getInstence().getObject(RedisUserKey.LOGIC_SERVER_INFO, String.valueOf(cUserInfo.getServerid()), String.class, -1);
|
||||
if (null == rpcString) {
|
||||
return "获取玩家服务器端口失败,服务器id错误";
|
||||
|
|
@ -128,11 +93,11 @@ public class HttpRequestController {
|
|||
}
|
||||
Result result = RPCClient.gmSend(cmd, thriftIp, thriftPort);
|
||||
if (result.getResultCode() != 0) {
|
||||
LOGGER.error("->userid:{}",uid);
|
||||
LOGGER.error("->code:{},result:{}",result.resultCode,result.getResultMsg());
|
||||
LOGGER.error("获取战报返回错误,cmd:{},code:{},result:{}",cmd,result.resultCode,result.getResultMsg());
|
||||
return "游戏服返回战报记录数据结果失败";
|
||||
}
|
||||
return result.getResultMsg();
|
||||
|
||||
return result.getResultMsg() == null ? "":result.getResultMsg();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@ package com.jmfy.controller;
|
|||
|
||||
import com.jmfy.WebSecurityConfig;
|
||||
import com.jmfy.dao.CUserDao;
|
||||
import com.jmfy.dao.ChannelInfoDao;
|
||||
import com.jmfy.model.CAdmin;
|
||||
import com.jmfy.model.ChannelInfo;
|
||||
import com.jmfy.model.vo.IdentityEnum;
|
||||
import com.jmfy.model.vo.IdentityVo;
|
||||
import com.jmfy.model.vo.PowersEnum;
|
||||
|
|
@ -13,10 +15,12 @@ import org.springframework.stereotype.Controller;
|
|||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Created by huangds on 2017/10/24.
|
||||
|
|
@ -25,6 +29,8 @@ import java.util.*;
|
|||
public class LoginController {
|
||||
@Resource
|
||||
private CUserDao cUserDao;
|
||||
@Resource
|
||||
private ChannelInfoDao channelInfoDao;
|
||||
|
||||
static final String ROOT = "root";
|
||||
|
||||
|
|
@ -50,7 +56,6 @@ public class LoginController {
|
|||
/**
|
||||
* 登陆验证
|
||||
* @param userName
|
||||
* @param password
|
||||
* @param session
|
||||
* @param map
|
||||
* @return
|
||||
|
|
@ -73,6 +78,7 @@ public class LoginController {
|
|||
if (verify) {
|
||||
session.setAttribute(WebSecurityConfig.SESSION_KEY, userName);
|
||||
map.put("admin",admin);
|
||||
map.put("sidebar",PowersVo.create2(admin.getPowers()));
|
||||
return "index";
|
||||
} else {
|
||||
return "redirect:/login";
|
||||
|
|
@ -96,9 +102,16 @@ public class LoginController {
|
|||
*/
|
||||
private void rootAccount(CAdmin admin) throws Exception {
|
||||
if (ROOT.equals(admin.getUserName())){
|
||||
// 权限
|
||||
Set<Integer> allPowers = PowersEnum.getAllPowers();
|
||||
// 渠道包
|
||||
List<ChannelInfo> infoList = channelInfoDao.getChannelInfoList();
|
||||
Set<String> collect = infoList.stream().map(ChannelInfo::getId).collect(Collectors.toSet());
|
||||
|
||||
// 赋予root账号全部权限
|
||||
admin.setPowers(allPowers);
|
||||
admin.setChannelPack(collect);
|
||||
|
||||
// 赋予root账号总管理员权限
|
||||
admin.setIdentity(IdentityEnum.SYSTEM_ADMIN.getId());
|
||||
cUserDao.updateUser(admin);
|
||||
|
|
@ -164,26 +177,29 @@ public class LoginController {
|
|||
* 3: 没有创建账号的身份或者权限
|
||||
* @throws Exception
|
||||
*/
|
||||
@PostMapping("/registerInit")
|
||||
public @ResponseBody int registerInit() throws Exception {
|
||||
@PostConstruct
|
||||
public void registerInit(){
|
||||
try {
|
||||
// 验证账号名是否存在
|
||||
CAdmin admin = cUserDao.findAdmin(ROOT);
|
||||
if (admin != null){
|
||||
return;
|
||||
}
|
||||
|
||||
// 验证账号名是否存在
|
||||
CAdmin admin = cUserDao.findAdmin(ROOT);
|
||||
if (admin != null){
|
||||
return 0;
|
||||
// 初始化
|
||||
admin = new CAdmin();
|
||||
admin.setUserName(ROOT);
|
||||
admin.setPassword("123456");
|
||||
admin.setCreateTime(DateUtil.nowString());
|
||||
|
||||
// root账号处理
|
||||
rootAccount(admin);
|
||||
// 注册,入库
|
||||
cUserDao.registerAdmin(admin);
|
||||
System.out.println("============root账号初始化完成");
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
// 初始化
|
||||
admin = new CAdmin();
|
||||
admin.setUserName(ROOT);
|
||||
admin.setPassword("123456");
|
||||
admin.setCreateTime(DateUtil.nowString());
|
||||
|
||||
// root账号处理
|
||||
rootAccount(admin);
|
||||
// 注册,入库
|
||||
cUserDao.registerAdmin(admin);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -297,6 +313,40 @@ public class LoginController {
|
|||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户权限
|
||||
* @param request
|
||||
* @return
|
||||
* 0: 用户找不到
|
||||
* 1: 成功
|
||||
* 2: root账号不能修改
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(value = "/updateUserChannelPack", method = {RequestMethod.POST, RequestMethod.GET})
|
||||
public @ResponseBody int updateUserChannelPack(HttpServletRequest request) throws Exception {
|
||||
HashMap<String, String> parameterMap = JsonUtil.getInstence().getParameterMap(request);
|
||||
String id = parameterMap.get("id");
|
||||
String[] packs = request.getParameterValues("pack[]");
|
||||
// 查找用户
|
||||
CAdmin cAdmin = cUserDao.findAdminById(id);
|
||||
if (cAdmin == null){
|
||||
return 0;
|
||||
}
|
||||
// 系统管理员账号不允许修改权限,默认拥有全部权限
|
||||
if (cAdmin.getUserName().equals(ROOT)){
|
||||
return 2;
|
||||
}
|
||||
TreeSet<String> set = new TreeSet<>();
|
||||
if (packs != null){
|
||||
// string数组转treeSet
|
||||
set.addAll(Arrays.asList(packs));
|
||||
}
|
||||
cAdmin.setChannelPack(set);
|
||||
// 修改
|
||||
cUserDao.updateUser(cAdmin);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户权限
|
||||
* @param map
|
||||
|
|
@ -321,6 +371,34 @@ public class LoginController {
|
|||
return "permission-setting";
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户渠道包权限
|
||||
* @param map
|
||||
* @param request
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(value ="/getUserChannelPack",method = {RequestMethod.POST, RequestMethod.GET})
|
||||
public String getUserChannelPack(ModelMap map,HttpServletRequest request) throws Exception {
|
||||
HashMap<String, String> parameterMap = JsonUtil.getInstence().getParameterMap(request);
|
||||
|
||||
String id = parameterMap.get("id");
|
||||
map.addAttribute("id",id);
|
||||
|
||||
// 赋予者的权限列表
|
||||
String userName = (String) request.getSession().getAttribute("username");
|
||||
CAdmin admin = cUserDao.findAdmin(userName);
|
||||
List<ChannelInfo> ids = channelInfoDao.getChannelInfoListByIds(admin.getChannelPack());
|
||||
map.addAttribute("channelPack", ids);
|
||||
|
||||
// 被赋予者的权限列表
|
||||
CAdmin cAdmin = cUserDao.findAdminById(id);
|
||||
List<ChannelInfo> ids1 = channelInfoDao.getChannelInfoListByIds(cAdmin.getChannelPack());
|
||||
request.setAttribute("channelPack2", ids1);
|
||||
|
||||
return "channelPack-setting";
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改密码
|
||||
* @param request
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.jmfy.controller;
|
|||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jmfy.WebSecurityConfig;
|
||||
import com.jmfy.dao.*;
|
||||
import com.jmfy.model.*;
|
||||
import com.jmfy.redisProperties.RedisUserKey;
|
||||
|
|
@ -42,6 +43,8 @@ public class OrderInfoController {
|
|||
private GSUserDao gsUserDao;
|
||||
@Resource
|
||||
private ChannelInfoDao channelInfoDao;
|
||||
@Resource
|
||||
private CUserDao cUserDao;
|
||||
|
||||
@Resource
|
||||
private ServerInfoDao serverInfoDao;
|
||||
|
|
@ -54,6 +57,7 @@ public class OrderInfoController {
|
|||
long endTime = JsonUtil.getAppointTimeInXDay(Long.parseLong(JsonUtil.date3TimeStamp(request.getParameter("endTime"))), 0);
|
||||
int serverId1 = Integer.valueOf(parameterMap.get("serverId"));
|
||||
String userId = parameterMap.get("userId");
|
||||
String packId = parameterMap.get("packId");
|
||||
String startData = JsonUtil.timeStamp2Date(String.valueOf(startTime));
|
||||
|
||||
List<String> days = JsonUtil.getDays(startData,JsonUtil.timeStamp2Date(String.valueOf(endTime)));
|
||||
|
|
@ -71,11 +75,15 @@ public class OrderInfoController {
|
|||
Map<String, CGPayOrder> map1 = RedisUtil.getInstence().getMap(RedisUserKey.C_PAYORDER_MAP + ":" + date, CGPayOrder.class, -1);
|
||||
for (Map.Entry<String,CGPayOrder> entry: map1.entrySet()){
|
||||
CGPayOrder cgPayOrder = entry.getValue();
|
||||
String accountid = cgPayOrder.getUserId();
|
||||
int serverId = cgPayOrder.getServerId();
|
||||
if(serverId1 != 0 && serverId1 != serverId) {
|
||||
continue;
|
||||
}
|
||||
String ccId = cgPayOrder.getCc_id();
|
||||
if (ccId != null && !ccId.equals(packId)){
|
||||
continue;
|
||||
}
|
||||
String accountid = cgPayOrder.getUserId();
|
||||
if (userInfo!=null &&!accountid.equals(userInfo.getId())){
|
||||
continue;
|
||||
}
|
||||
|
|
@ -97,6 +105,8 @@ public class OrderInfoController {
|
|||
corder.setPayTime(payTime);
|
||||
corder.setProductid(cgPayOrder.getGoodsId());
|
||||
corder.setServerId(String.valueOf(serverId));
|
||||
corder.setPaySdk(cgPayOrder.getPaySdk());
|
||||
corder.setPlatform(cgPayOrder.getPlatform());
|
||||
|
||||
SRechargeCommodityConfig config;
|
||||
int goodsId;
|
||||
|
|
@ -135,8 +145,8 @@ public class OrderInfoController {
|
|||
corder.setOpenId(gsUser.getPlayerManager().getOpenId());
|
||||
}
|
||||
|
||||
ChannelInfo infoById = channelInfoDao.getChannelInfoById(cgPayOrder.getCc_id());
|
||||
corder.setCc_id(Optional.ofNullable(infoById).map(ChannelInfo::getName).orElse(cgPayOrder.getCc_id()));
|
||||
ChannelInfo infoById = channelInfoDao.getChannelInfoById(ccId);
|
||||
corder.setCc_id(Optional.ofNullable(infoById).map(ChannelInfo::getName).orElse(ccId));
|
||||
|
||||
cgPayOrders.add(corder);
|
||||
}
|
||||
|
|
@ -187,6 +197,8 @@ public class OrderInfoController {
|
|||
corder.setPayTime(payTime);
|
||||
corder.setProductid(cgPayOrder.getGoodsId());
|
||||
corder.setServerId(String.valueOf(serverId));
|
||||
corder.setPaySdk(cgPayOrder.getPaySdk());
|
||||
corder.setPlatform(cgPayOrder.getPlatform());
|
||||
|
||||
SRechargeCommodityConfig config;
|
||||
int goodsId;
|
||||
|
|
@ -379,13 +391,20 @@ public class OrderInfoController {
|
|||
}
|
||||
return JSON.parseObject(sb.toString());
|
||||
}
|
||||
|
||||
@RequestMapping(value = "toOrderPage",method = RequestMethod.GET)
|
||||
public String toOrderPage(ModelMap map){
|
||||
public String toOrderPage(ModelMap map,HttpSession session){
|
||||
String account = (String) session.getAttribute(WebSecurityConfig.SESSION_KEY);
|
||||
try {
|
||||
List<ServerInfo> allServerInfo = serverInfoDao.getAllServerInfo();
|
||||
List<gameName> allGameName =serverInfoDao.getAllGameInfo();
|
||||
map.addAttribute("serverInfo",allServerInfo);
|
||||
|
||||
List<gameName> allGameName =serverInfoDao.getAllGameInfo();
|
||||
map.addAttribute("allGameName",allGameName);
|
||||
|
||||
CAdmin admin = cUserDao.findAdmin(account);
|
||||
List<ChannelInfo> infos = channelInfoDao.getChannelInfoListByIds(admin.getChannelPack());
|
||||
map.addAttribute("channelPackInfo",infos);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -370,6 +370,12 @@ public class SupportController {
|
|||
if (gsUser == null){
|
||||
return 0;
|
||||
}
|
||||
// 相同扶持账号只存在一个
|
||||
SupportUser supportUser = supportUserDao.getSupportUser(user.getServerId(), user.getUserId(), user.getAccountId());
|
||||
if (supportUser != null){
|
||||
return 0;
|
||||
}
|
||||
|
||||
user.setId(seqUtils.getSequence("support_user_id"));
|
||||
user.setUserName(gsUser.getPlayerManager().getNickName());
|
||||
Double rechargeMoney = Optional.ofNullable(gsUser.getPlayerManager().getNewRechargeInfo())
|
||||
|
|
|
|||
|
|
@ -14,6 +14,10 @@ public interface CdkInfoDao {
|
|||
|
||||
List<CdkUseInfo> findCdkUseInfoById(int serverId, String cdkNum) throws Exception;
|
||||
|
||||
List<CdkUseInfo> findCdkUseInfo(String cdkNum) throws Exception;
|
||||
|
||||
List<CdkUseInfo> findCdkUseInfoByUId(int userId) throws Exception;
|
||||
|
||||
// long getCdkNumByGoodsId(int id) throws Exception;
|
||||
|
||||
long getUseCdkNumByGoodsId(int id) throws Exception;
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ package com.jmfy.dao;
|
|||
import com.jmfy.model.ChannelInfo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public interface ChannelInfoDao {
|
||||
|
||||
|
|
@ -17,6 +18,13 @@ public interface ChannelInfoDao {
|
|||
*/
|
||||
List<ChannelInfo> getChannelInfoList() throws Exception;
|
||||
|
||||
/**
|
||||
* 获取全部
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
List<ChannelInfo> getChannelInfoListByIds(Set<String> ids) throws Exception;
|
||||
|
||||
/**
|
||||
* 单个查询,id
|
||||
* @param id
|
||||
|
|
|
|||
|
|
@ -0,0 +1,48 @@
|
|||
package com.jmfy.dao;
|
||||
|
||||
/**
|
||||
* @Author hj
|
||||
* @Description //TODO $
|
||||
**/
|
||||
|
||||
import com.jmfy.model.GameAgreement;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface GameAgreementDao {
|
||||
|
||||
/**
|
||||
* 获取全部
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
List<GameAgreement> getGameAgreementList() throws Exception;
|
||||
|
||||
/**
|
||||
* 单个查询,id
|
||||
* @param id
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
GameAgreement getGameAgreementById(String id) throws Exception;
|
||||
|
||||
/**
|
||||
* 添加
|
||||
* @param gameAgreement
|
||||
*/
|
||||
void insert(GameAgreement gameAgreement) throws Exception;
|
||||
|
||||
/**
|
||||
* 修改
|
||||
* @param gameAgreement
|
||||
*/
|
||||
void update(GameAgreement gameAgreement) throws Exception;
|
||||
|
||||
/**
|
||||
* 删除
|
||||
* @param gameAgreement
|
||||
* @throws Exception
|
||||
*/
|
||||
void delete(GameAgreement gameAgreement) throws Exception;
|
||||
|
||||
}
|
||||
|
|
@ -58,6 +58,7 @@ public class CUserDaoImpl implements CUserDao {
|
|||
update.set("identity", cAdmin.getIdentity());
|
||||
update.set("subAccount", cAdmin.getSubAccount());
|
||||
update.set("power", cAdmin.getPowers());
|
||||
update.set("channelPack", cAdmin.getChannelPack());
|
||||
mongoTemplate.updateFirst(query,update,CAdmin.class);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -40,11 +40,24 @@ public class CdkInfoDaoImpl implements CdkInfoDao {
|
|||
Query query = new Query();
|
||||
Criteria cr = new Criteria();
|
||||
cr.andOperator(Criteria.where("cdk_num").is(cdkNum), Criteria.where("serverId").is(serverId));
|
||||
// cr.andOperator(Criteria.where("goodsId").is(cdkNum));
|
||||
query.addCriteria(cr);
|
||||
return mongoTemplate.find(query, CdkUseInfo.class);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CdkUseInfo> findCdkUseInfo(String cdkNum) throws Exception {
|
||||
MongoTemplate mongoTemplate = connect.getMongoTemplete(Constant.dbName);
|
||||
Query query = new Query(Criteria.where("cdk_num").is(cdkNum));
|
||||
return mongoTemplate.find(query, CdkUseInfo.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CdkUseInfo> findCdkUseInfoByUId(int userId) throws Exception {
|
||||
MongoTemplate mongoTemplate = connect.getMongoTemplete(Constant.dbName);
|
||||
Query query = new Query(Criteria.where("uid").is(userId));
|
||||
return mongoTemplate.find(query, CdkUseInfo.class);
|
||||
}
|
||||
|
||||
//
|
||||
// @Override
|
||||
// public long getCdkNumByGoodsId(int id) throws Exception {
|
||||
|
|
@ -73,7 +86,6 @@ public class CdkInfoDaoImpl implements CdkInfoDao {
|
|||
Query query = new Query();
|
||||
Criteria cr = new Criteria();
|
||||
cr.andOperator(Criteria.where("goodsId").is(goodsId));
|
||||
// cr.andOperator(Criteria.where("goodsId").is(goodsId),Criteria.where("status").is(0));
|
||||
query.addCriteria(cr);
|
||||
return mongoTemplate.find(query,CdkInfo.class);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,9 @@ import org.springframework.data.mongodb.core.query.Query;
|
|||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@Component
|
||||
public class ChannelInfoDaoImpl implements ChannelInfoDao {
|
||||
|
|
@ -28,6 +30,13 @@ public class ChannelInfoDaoImpl implements ChannelInfoDao {
|
|||
return mongoTemplate.find(query, ChannelInfo.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ChannelInfo> getChannelInfoListByIds(Set<String> ids) throws Exception {
|
||||
List<ChannelInfo> infoList = getChannelInfoList();
|
||||
infoList.removeIf(v->!ids.contains(v.getId()));
|
||||
return infoList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChannelInfo getChannelInfoById(String id) throws Exception {
|
||||
MongoTemplate mongoTemplate = connect.getMongoTemplete(Constant.dbName);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,61 @@
|
|||
package com.jmfy.dao.impl;
|
||||
|
||||
/**
|
||||
* @Author hj
|
||||
* @Description // 游戏登陆界面 协议管理
|
||||
**/
|
||||
import com.jmfy.dao.GameAgreementDao;
|
||||
import com.jmfy.model.Constant;
|
||||
import com.jmfy.model.GameAgreement;
|
||||
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;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
public class GameAgreementDaoImpl implements GameAgreementDao {
|
||||
|
||||
@Resource
|
||||
private Connect connect;
|
||||
|
||||
@Override
|
||||
public List<GameAgreement> getGameAgreementList() throws Exception {
|
||||
MongoTemplate mongoTemplate = connect.getMongoTemplete(Constant.dbName);
|
||||
Query query = new Query();
|
||||
return mongoTemplate.find(query, GameAgreement.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GameAgreement getGameAgreementById(String id) throws Exception {
|
||||
MongoTemplate mongoTemplate = connect.getMongoTemplete(Constant.dbName);
|
||||
Query query = new Query(Criteria.where("_id").is(id));
|
||||
return mongoTemplate.findOne(query, GameAgreement.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insert(GameAgreement gameAgreement) throws Exception {
|
||||
MongoTemplate mongoTemplate = connect.getMongoTemplete(Constant.dbName);
|
||||
mongoTemplate.insert(gameAgreement);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(GameAgreement gameAgreement) throws Exception {
|
||||
MongoTemplate mongoTemplate = connect.getMongoTemplete(Constant.dbName);
|
||||
Query query = new Query(Criteria.where("_id").is(gameAgreement.getId()));
|
||||
Update update = new Update();
|
||||
update.set("instructions",gameAgreement.getInstructions());
|
||||
update.set("privacy",gameAgreement.getPrivacy());
|
||||
mongoTemplate.upsert(query,update,GameAgreement.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(GameAgreement gameAgreement) throws Exception {
|
||||
MongoTemplate mongoTemplate = connect.getMongoTemplete(Constant.dbName);
|
||||
mongoTemplate.remove(gameAgreement);
|
||||
}
|
||||
}
|
||||
|
|
@ -45,6 +45,11 @@ public class CAdmin {
|
|||
*/
|
||||
@Field(value = "power")
|
||||
private Set<Integer> powers = new TreeSet<>();
|
||||
/**
|
||||
* 渠道包
|
||||
*/
|
||||
@Field(value = "channelPack")
|
||||
private Set<String> channelPack = new TreeSet<>();
|
||||
|
||||
/********************************************* setter and getter ***********************************************/
|
||||
|
||||
|
|
@ -115,4 +120,12 @@ public class CAdmin {
|
|||
public void setCreateTime(String createTime) {
|
||||
this.createTime = createTime;
|
||||
}
|
||||
|
||||
public Set<String> getChannelPack() {
|
||||
return channelPack;
|
||||
}
|
||||
|
||||
public void setChannelPack(Set<String> channelPack) {
|
||||
this.channelPack = channelPack;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,6 +46,17 @@ public class CGPayOrder {
|
|||
@Field(value = "cc_id")
|
||||
private String cc_id;
|
||||
|
||||
/**
|
||||
* 支付sdk
|
||||
*/
|
||||
@Field(value = "pay_sdk")
|
||||
private String paySdk;
|
||||
|
||||
/**
|
||||
* 平台 Android or ios
|
||||
*/
|
||||
@Field(value = "platform")
|
||||
private String platform;
|
||||
|
||||
public String getOrderId() {
|
||||
return orderId;
|
||||
|
|
@ -142,4 +153,20 @@ public class CGPayOrder {
|
|||
public void setCc_id(String cc_id) {
|
||||
this.cc_id = cc_id;
|
||||
}
|
||||
|
||||
public String getPaySdk() {
|
||||
return paySdk;
|
||||
}
|
||||
|
||||
public void setPaySdk(String paySdk) {
|
||||
this.paySdk = paySdk;
|
||||
}
|
||||
|
||||
public String getPlatform() {
|
||||
return platform;
|
||||
}
|
||||
|
||||
public void setPlatform(String platform) {
|
||||
this.platform = platform;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,11 @@ import org.springframework.data.mongodb.core.mapping.Document;
|
|||
import org.springframework.data.mongodb.core.mapping.Field;
|
||||
|
||||
@Document(collection = "cdk_use_info")
|
||||
@CompoundIndexes({@CompoundIndex(name = "cdk_num_serverId_index", def = "{'cdk_num': 1, 'serverId': 1}")})
|
||||
@CompoundIndexes({
|
||||
@CompoundIndex(name = "cdk_num_serverId_index", def = "{'cdk_num': 1, 'serverId': 1}"),
|
||||
@CompoundIndex(name = "cdk_num_index", def = "{'cdk_num': 1}"),
|
||||
@CompoundIndex(name = "uid_index", def = "{'uid': 1}")
|
||||
})
|
||||
public class CdkUseInfo {
|
||||
|
||||
@Id
|
||||
|
|
|
|||
|
|
@ -32,6 +32,10 @@ public class Corder {
|
|||
private String cc_id;
|
||||
@Fields("账号id")
|
||||
private String openId;
|
||||
@Fields(value = "支付sdk")
|
||||
private String paySdk;
|
||||
@Fields(value = "平台")
|
||||
private String platform;
|
||||
|
||||
public String getAccountid() {
|
||||
return accountid;
|
||||
|
|
@ -144,4 +148,20 @@ public class Corder {
|
|||
public void setOpenId(String openId) {
|
||||
this.openId = openId;
|
||||
}
|
||||
|
||||
public String getPaySdk() {
|
||||
return paySdk;
|
||||
}
|
||||
|
||||
public void setPaySdk(String paySdk) {
|
||||
this.paySdk = paySdk;
|
||||
}
|
||||
|
||||
public String getPlatform() {
|
||||
return platform;
|
||||
}
|
||||
|
||||
public void setPlatform(String platform) {
|
||||
this.platform = platform;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,61 @@
|
|||
package com.jmfy.model;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.index.Indexed;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
import org.springframework.data.mongodb.core.mapping.Field;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Administrator
|
||||
* @date 2015/8/13
|
||||
*/
|
||||
|
||||
@Document(collection = "game_agreement")
|
||||
public class GameAgreement {
|
||||
@Id
|
||||
private String id;
|
||||
|
||||
@Field("instructions")
|
||||
private String instructions;
|
||||
|
||||
@Field("privacy")
|
||||
private String privacy;
|
||||
|
||||
public GameAgreement(String id, String instructions, String privacy) {
|
||||
this.id = id;
|
||||
this.instructions = instructions;
|
||||
this.privacy = privacy;
|
||||
}
|
||||
|
||||
public GameAgreement(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public GameAgreement() {
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getInstructions() {
|
||||
return instructions;
|
||||
}
|
||||
|
||||
public void setInstructions(String instructions) {
|
||||
this.instructions = instructions;
|
||||
}
|
||||
|
||||
public String getPrivacy() {
|
||||
return privacy;
|
||||
}
|
||||
|
||||
public void setPrivacy(String privacy) {
|
||||
this.privacy = privacy;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
package config;
|
||||
|
||||
import com.jmfy.utils.FileCacheUtils;
|
||||
import com.jmfy.utils.JsonUtil;
|
||||
import com.jmfy.utils.Table;
|
||||
|
||||
import java.util.*;
|
||||
|
|
@ -70,11 +71,22 @@ public class SRechargeCommodityConfig {
|
|||
sdkRechargeCommodityConfigMap.put(sRechargeCommodityConfig.getRechargeId(),sRechargeCommodityConfig);
|
||||
sdkRechargeCommodityConfigMap.put(sRechargeCommodityConfig.getRechargeId2(),sRechargeCommodityConfig);
|
||||
sdkRechargeCommodityConfigMap.put(sRechargeCommodityConfig.getRechargeId3(),sRechargeCommodityConfig);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public String getSupportInfo() {
|
||||
String[] itemIds = new String[baseReward.length];
|
||||
String[] itemNums = new String[baseReward.length];
|
||||
for (int i = 0; i < baseReward.length; i++) {
|
||||
itemIds[i] = String.valueOf(baseReward[i][0]);
|
||||
itemNums[i] = String.valueOf(baseReward[i][1]);
|
||||
}
|
||||
String reward = JsonUtil.getInstence().getReward(itemIds, itemNums, true);
|
||||
return id + " , " + name + " : " + price + " ( " + reward + " ) ";
|
||||
}
|
||||
|
||||
public int getId() { return id; }
|
||||
|
||||
public String getRechargeId() { return rechargeId; }
|
||||
|
|
|
|||
|
|
@ -8,84 +8,93 @@ import java.util.*;
|
|||
*/
|
||||
public enum PowersEnum {
|
||||
// 用户管理100-199
|
||||
ACCOUNT_MANAGER(100,"用户管理",100),
|
||||
ACCOUNT_LIST(101,"用户列表",100),
|
||||
ADD_ACCOUNT(102,"权限: 添加用户",100),
|
||||
ACCOUNT_MANAGER(100,"用户管理",100,1,""),
|
||||
ACCOUNT_LIST(101,"用户列表",100,1,"findMemberList"),
|
||||
ADD_ACCOUNT(102,"权限: 添加用户",100,0,""),
|
||||
|
||||
// 服务器管理200-299
|
||||
SERVER_MANAGER(200,"服务器管理",200),
|
||||
SERVER_INFO(201,"服务器信息",200),
|
||||
SERVER_REGISTER(202,"服务器注册查询",200),
|
||||
ADD_SERVER(203,"添加服务器",200),
|
||||
ALL_SERVER_SETTING(204,"全服配置",200),
|
||||
SERVER_MANAGER(200,"服务器管理",200,1,""),
|
||||
SERVER_INFO(201,"服务器信息",200,1,"findServerInfo"),
|
||||
SERVER_REGISTER(202,"服务器注册查询",200,1,"serverNumberInfo"),
|
||||
ADD_SERVER(203,"添加服务器",200,1,"/html/addServer.html"),
|
||||
ALL_SERVER_SETTING(204,"全服配置",200,1,"serverCfgInfo"),
|
||||
|
||||
// 序列号管理300-399
|
||||
SERIAL_NUMBER_MANAGER(300,"序列号管理",300),
|
||||
SERIAL_NUMBER_GIFT_CREATE(301,"序列号礼包生成",300),
|
||||
SERIAL_NUMBER_CREATE(302,"序列号生成",300),
|
||||
SERIAL_NUMBER_QUERY(303,"序列号查询",300),
|
||||
SERIAL_NUMBER_MANAGER(300,"序列号管理",300,1,""),
|
||||
SERIAL_NUMBER_GIFT_CREATE(301,"序列号礼包生成",300,1,"toAddCDKGoodsPage"),
|
||||
SERIAL_NUMBER_CREATE(302,"序列号生成",300,1,"toCDKBuild"),
|
||||
SERIAL_NUMBER_QUERY(303,"序列号查询",300,1,"/html/findCDKInfo.html"),
|
||||
|
||||
// GM管理400-499
|
||||
GM_MANAGER(400,"GM管理",400),
|
||||
SINGLE_MAIL(401,"单人,多人邮件",400),
|
||||
ALL_SERVER_MAIL(402,"全服邮件",400),
|
||||
SEND_HORSE_RACE_LAMP(403,"发送跑马灯",400),
|
||||
SEND_NOTICE(404,"发送公告",400),
|
||||
SEND_GM(405,"发送GM",400),
|
||||
NOTICE_INFO(406,"公告信息",400),
|
||||
ADD_WHITELIST_ACCOUNT(407,"添加白名单账号",400),
|
||||
DELETE_WHITELIST(408,"删除白名单",400),
|
||||
ADD_WHITELIST_ACCOUNT_HERO(409,"添加白名单账号英雄",400),
|
||||
PACKAGE_NAME_MANAGER(410,"频道管理",400),
|
||||
ADD_PACKAGE_NAME(411,"权限: 添加频道",400),
|
||||
DELETE_PACKAGE_NAME(412,"权限: 删除频道",400),
|
||||
GUILD_LIST_MANAGER(413,"公会列表管理",400),
|
||||
GUILD_OPERATE_PERMISSIONS(414,"权限: 操作公会",400),
|
||||
CHANNEL_NAME_MANAGER(415,"渠道管理",400),
|
||||
ADD_CHANNEL_PERMISSIONS(416,"权限: 添加渠道",400),
|
||||
DELETE_CHANNEL_PERMISSIONS(417,"权限: 删除渠道",400),
|
||||
HAND_IN_MANAGER(418,"提审服管理",400),
|
||||
GM_MANAGER(400,"GM管理",400,1,""),
|
||||
SINGLE_MAIL(401,"单人,多人邮件",400,1,"toMailPage?type=1"),
|
||||
ALL_SERVER_MAIL(402,"全服邮件",400,1,"toMailPage?type=2"),
|
||||
SEND_HORSE_RACE_LAMP(403,"发送跑马灯",400,1,"toMailPage?type=3"),
|
||||
SEND_NOTICE(404,"发送公告",400,1,"sendSysNotice"),
|
||||
SEND_GM(405,"发送GM",400,1,"toMailPage?type=4"),
|
||||
NOTICE_INFO(406,"公告信息",400,1,"noticeInfos"),
|
||||
ADD_WHITELIST_ACCOUNT(407,"添加白名单账号",400,1,"/html/add_white_list.html"),
|
||||
DELETE_WHITELIST(408,"删除白名单",400,1,"getAllWhites"),
|
||||
ADD_WHITELIST_ACCOUNT_HERO(409,"添加白名单账号英雄",400,1,"addHeroPage"),
|
||||
|
||||
PACKAGE_NAME_MANAGER(410,"频道管理",400,1,"packageInfoList"),
|
||||
ADD_PACKAGE_NAME(411,"权限: 添加频道",400,0,""),
|
||||
DELETE_PACKAGE_NAME(412,"权限: 删除频道",400,0,""),
|
||||
|
||||
GUILD_LIST_MANAGER(413,"公会列表管理",400,1,"initGuildList"),
|
||||
GUILD_OPERATE_PERMISSIONS(414,"权限: 操作公会",400,1,""),
|
||||
|
||||
CHANNEL_NAME_MANAGER(415,"渠道管理",400,1,"channelInfoList"),
|
||||
ADD_CHANNEL_PERMISSIONS(416,"权限: 添加渠道",400,0,""),
|
||||
DELETE_CHANNEL_PERMISSIONS(417,"权限: 删除渠道",400,0,""),
|
||||
|
||||
HAND_IN_MANAGER(418,"提审服管理",400,1,"tishenInfoList"),
|
||||
|
||||
GAME_AGREEMENT_MANAGER(419,"游戏协议管理",400,1,"gameAgreementList"),
|
||||
ADD_GAME_AGREEMENT_PERMISSIONS(420,"权限: 操作游戏协议(增,删,改)",400,0,""),
|
||||
|
||||
// 流水日志管理500-599
|
||||
BILL_LOG(500,"流水日志管理",500),
|
||||
ITEM_LOG(501,"道具日志",500),
|
||||
ORDER_LIST(502,"订单列表",500),
|
||||
DOWNLOADS_ORDER_LIST(503,"下载订单列表",500),
|
||||
BILL_LOG(500,"流水日志管理",500,1,""),
|
||||
ITEM_LOG(501,"道具日志",500,1,"toFlowPage"),
|
||||
ORDER_LIST(502,"订单列表",500,1,"toOrderPage"),
|
||||
DOWNLOADS_ORDER_LIST(503,"下载订单列表",500,1,"toExporOrderPage"),
|
||||
|
||||
// 封禁管理,封禁管理600-699
|
||||
BANNED_MANAGER(600,"封禁管理",600),
|
||||
BANNED_LIST(601,"封禁列表",600),
|
||||
BANNED_OPERATION(602,"禁言/踢下线/禁登陆",600),
|
||||
UPDATE_USERNAME(603,"修改角色名",600),
|
||||
// BANNER_ACCOUNT_BY_OPENID(604,"封号(openId)",600),
|
||||
BANNED_MANAGER(600,"封禁管理",600,1,""),
|
||||
BANNED_LIST(601,"封禁列表",600,1,"bannedList"),
|
||||
BANNED_OPERATION(602,"禁言/踢下线/禁登陆",600,1,"toGameTitle?type=1"),
|
||||
UPDATE_USERNAME(603,"修改角色名",600,1,"toGameTitle?type=2"),
|
||||
// BANNER_ACCOUNT_BY_OPENID(604,"封号(openId)",600,1,""),
|
||||
|
||||
// 信息管理700-799
|
||||
INFO_MANAGER(700,"信息管理",700),
|
||||
USER_INFO_QUERY(701,"角色信息查询",700),
|
||||
INFO_MANAGER(700,"信息管理",700,1,""),
|
||||
USER_INFO_QUERY(701,"角色信息查询",700,1,"toGetuserInfoPage"),
|
||||
|
||||
// 问卷管理800-899
|
||||
QUESTIONNAIRE_MANAGER(800,"问卷管理",800),
|
||||
ADD_WRITE(801,"新增编辑",800),
|
||||
QUESTIONNAIRE_QUERY(802,"问卷查询",800),
|
||||
QUESTIONNAIRE_MANAGER(800,"问卷管理",800,1,""),
|
||||
ADD_WRITE(801,"新增编辑",800,1,"/html/question.html"),
|
||||
QUESTIONNAIRE_QUERY(802,"问卷查询",800,1,"/html/getquestInfo.html"),
|
||||
|
||||
// 邮件审核901-999
|
||||
MAIL_AUDIT(900,"邮件审核",900),
|
||||
SYSTEM_MAIL_AUDIT(901,"系统邮件审核",900),
|
||||
SINGLE_MAIL_AUDIT(902,"个人邮件审核",900),
|
||||
MAIL_AUDIT_JURISDICTION(903,"权限: 邮件审核权限",900),
|
||||
MAIL_AUDIT(900,"邮件审核",900,1,""),
|
||||
SYSTEM_MAIL_AUDIT(901,"系统邮件审核",900,1,"getMailListToCheck?type=1"),
|
||||
SINGLE_MAIL_AUDIT(902,"个人邮件审核",900,1,"getMailListToCheck?type=2"),
|
||||
MAIL_AUDIT_JURISDICTION(903,"权限: 邮件审核权限",900,0,""),
|
||||
|
||||
// 聊天信息管理1000-1099
|
||||
CHAT_INFO_MANAGER(1000,"聊天信息管理",1000),
|
||||
CHAT_INFO_QUERY(1001,"聊天信息查询",1000),
|
||||
CHAT_INFO_MANAGER(1000,"聊天信息管理",1000,1,""),
|
||||
CHAT_INFO_QUERY(1001,"聊天信息查询",1000,1,"chatInfoShow"),
|
||||
|
||||
// 扶持功能1100-1199
|
||||
SUPPORT_MANAGER(1100,"扶持功能",1100),
|
||||
APPLY_FOR(1101,"申请扶持",1100),
|
||||
AUDIT_SUPPORT(1102,"审核扶持",1100),
|
||||
GS_ACCOUNT_MANAGER(1103,"GS账号管理",1100),
|
||||
SUPPORT_PLAN_SELECT(1104,"扶持进度查看",1100),
|
||||
PASS_SUPPORT_PERMISSIONS(1105,"权限: 通过扶持权限",1100),
|
||||
DELETE_SUPPORT_ACCOUNT_PERMISSIONS(1106,"权限: 删除扶持账号",1100),
|
||||
SUPPORT_MANAGER(1100,"扶持功能",1100,1,""),
|
||||
APPLY_FOR(1101,"申请扶持",1100,1,"applyForSupport"),
|
||||
AUDIT_SUPPORT(1102,"审核扶持",1100,1,"auditSupport"),
|
||||
GS_ACCOUNT_MANAGER(1103,"GS账号管理",1100,1,"gsAccountManage"),
|
||||
SUPPORT_PLAN_SELECT(1104,"扶持进度查看",1100,1,"supportPlanList"),
|
||||
PASS_SUPPORT_PERMISSIONS(1105,"权限: 通过扶持权限",1100,0,""),
|
||||
DELETE_SUPPORT_ACCOUNT_PERMISSIONS(1106,"权限: 删除扶持账号",1100,0,""),
|
||||
|
||||
|
||||
;
|
||||
|
||||
private int id;
|
||||
|
|
@ -95,6 +104,10 @@ public enum PowersEnum {
|
|||
*/
|
||||
private int belong;
|
||||
|
||||
private int show;
|
||||
|
||||
private String url;
|
||||
|
||||
private static Map<Integer,PowersEnum> powerMap = new TreeMap<>();
|
||||
|
||||
static {
|
||||
|
|
@ -110,11 +123,12 @@ public enum PowersEnum {
|
|||
}
|
||||
|
||||
/******************************************* getter and setter *************************************************/
|
||||
|
||||
PowersEnum(int id, String name, int belong) {
|
||||
PowersEnum(int id, String name, int belong, int show, String url) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.belong = belong;
|
||||
this.show = show;
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
|
|
@ -148,4 +162,20 @@ public enum PowersEnum {
|
|||
public static void setPowerMap(Map<Integer, PowersEnum> powerMap) {
|
||||
PowersEnum.powerMap = powerMap;
|
||||
}
|
||||
|
||||
public int getShow() {
|
||||
return show;
|
||||
}
|
||||
|
||||
public void setShow(int show) {
|
||||
this.show = show;
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,4 +55,38 @@ public class PowersVo {
|
|||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
public static Map<PowersEnum,List<PowersEnum>> create2(Set<Integer> powers){
|
||||
Map<PowersEnum, List<PowersEnum>> map = new TreeMap<>();
|
||||
// 权限为空,直接返回
|
||||
if (powers == null || powers.size() <= 0){
|
||||
return map;
|
||||
}
|
||||
for (Integer power : powers) {
|
||||
// 获取权限枚举对象
|
||||
PowersEnum node = PowersEnum.getPowerMap().get(power);
|
||||
if (node.getBelong() == node.getId()){
|
||||
continue;
|
||||
}
|
||||
PowersEnum master = PowersEnum.getPowerMap().get(node.getBelong());
|
||||
List<PowersEnum> enums = map.getOrDefault(master, new ArrayList<>());
|
||||
enums.add(node);
|
||||
map.put(master,enums);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
public static List<PowersEnum> create3(Set<Integer> powers){
|
||||
List<PowersEnum> list = new ArrayList<>();
|
||||
// 权限为空,直接返回
|
||||
if (powers == null || powers.size() <= 0){
|
||||
return list;
|
||||
}
|
||||
for (Integer power : powers) {
|
||||
// 获取权限枚举对象
|
||||
PowersEnum node = PowersEnum.getPowerMap().get(power);
|
||||
list.add(node);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,38 +2,92 @@ package com.jmfy.model.vo;
|
|||
|
||||
public class UseCDKInfoVo implements java.io.Serializable {
|
||||
|
||||
public int isData; // 是否有数据 0:没有 1: 有
|
||||
private String cdkId;
|
||||
|
||||
public int userId;
|
||||
private int userId;
|
||||
|
||||
public String openId;
|
||||
private String userName;
|
||||
|
||||
public String userName;
|
||||
private int serverId;
|
||||
|
||||
public String goodsName; //礼包名字
|
||||
private String serverName;
|
||||
|
||||
public String useTime;
|
||||
private String openId;
|
||||
|
||||
public void setIsData(int isData) {
|
||||
this.isData = isData;
|
||||
private int goodsId;
|
||||
|
||||
private String goodsName;
|
||||
|
||||
private String useTime;
|
||||
|
||||
public String getCdkId() {
|
||||
return cdkId;
|
||||
}
|
||||
|
||||
public void setCdkId(String cdkId) {
|
||||
this.cdkId = cdkId;
|
||||
}
|
||||
|
||||
public int getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(int userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public int getServerId() {
|
||||
return serverId;
|
||||
}
|
||||
|
||||
public void setServerId(int serverId) {
|
||||
this.serverId = serverId;
|
||||
}
|
||||
|
||||
public String getServerName() {
|
||||
return serverName;
|
||||
}
|
||||
|
||||
public void setServerName(String serverName) {
|
||||
this.serverName = serverName;
|
||||
}
|
||||
|
||||
public String getOpenId() {
|
||||
return openId;
|
||||
}
|
||||
|
||||
public void setOpenId(String openId) {
|
||||
this.openId = openId;
|
||||
}
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public int getGoodsId() {
|
||||
return goodsId;
|
||||
}
|
||||
|
||||
public void setGoodsId(int goodsId) {
|
||||
this.goodsId = goodsId;
|
||||
}
|
||||
|
||||
public String getGoodsName() {
|
||||
return goodsName;
|
||||
}
|
||||
|
||||
public void setGoodsName(String goodsName) {
|
||||
this.goodsName = goodsName;
|
||||
}
|
||||
|
||||
public String getUseTime() {
|
||||
return useTime;
|
||||
}
|
||||
|
||||
public void setUseTime(String useTime) {
|
||||
this.useTime = useTime;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}
|
||||
|
|
@ -0,0 +1,121 @@
|
|||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
body {
|
||||
/*background-color: #E4E1EA;*/
|
||||
font: normal 17px/1.5 Calibri, Candara, Segoe, "Segoe UI", Optima, Arial, sans-serif;
|
||||
color: #5E5F63;
|
||||
}
|
||||
.wrapper {
|
||||
width: 200px;
|
||||
margin: 20px auto;
|
||||
}
|
||||
p {
|
||||
margin: 15px 0 5px 0;
|
||||
}
|
||||
li span {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.radio-btn input[type="radio"], .check-box input[type="checkbox"] {
|
||||
visibility: hidden;
|
||||
}
|
||||
/*Custom checkbox*/
|
||||
.check-box {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
margin: 2px 7px 0 0;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 0 1px #ccc;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
background: rgb(255, 255, 255);
|
||||
background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(255, 255, 255, 1)), color-stop(47%, rgba(246, 246, 246, 1)), color-stop(100%, rgba(237, 237, 237, 1)));
|
||||
background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);
|
||||
background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);
|
||||
background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);
|
||||
background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ededed', GradientType=0);
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
.check-box i {
|
||||
background: url('../images/check_mark.png') no-repeat center center;
|
||||
position: absolute;
|
||||
left: 3px;
|
||||
bottom: -15px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
opacity: .5;
|
||||
-webkit-transition: all 400ms ease-in-out;
|
||||
-moz-transition: all 400ms ease-in-out;
|
||||
-o-transition: all 400ms ease-in-out;
|
||||
transition: all 400ms ease-in-out;
|
||||
-webkit-transform:rotateZ(-180deg);
|
||||
-moz-transform:rotateZ(-180deg);
|
||||
-o-transform:rotateZ(-180deg);
|
||||
transform:rotateZ(-180deg);
|
||||
}
|
||||
.checkedBox {
|
||||
-moz-box-shadow: inset 0 0 5px 1px #ccc;
|
||||
-webkit-box-shadow: inset 0 0 5px 1px #ccc;
|
||||
box-shadow: inset 0 0 5px 1px #ccc;
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
.checkedBox i {
|
||||
bottom: 2px;
|
||||
-webkit-transform:rotateZ(0deg);
|
||||
-moz-transform:rotateZ(0deg);
|
||||
-o-transform:rotateZ(0deg);
|
||||
transform:rotateZ(0deg);
|
||||
}
|
||||
/*Custom radio button*/
|
||||
.radio-btn {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
margin: 3px 7px 0 0;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
-webkit-border-radius: 100%;
|
||||
-moz-border-radius: 100%;
|
||||
border-radius: 100%;
|
||||
border: 1px solid #ccc;
|
||||
box-shadow: 0 0 1px #ccc;
|
||||
background: rgb(255, 255, 255);
|
||||
background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(255, 255, 255, 1)), color-stop(47%, rgba(246, 246, 246, 1)), color-stop(100%, rgba(237, 237, 237, 1)));
|
||||
background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);
|
||||
background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);
|
||||
background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);
|
||||
background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ededed', GradientType=0);
|
||||
}
|
||||
.checkedRadio {
|
||||
-moz-box-shadow: inset 0 0 5px 1px #ccc;
|
||||
-webkit-box-shadow: inset 0 0 5px 1px #ccc;
|
||||
box-shadow: inset 0 0 5px 1px #ccc;
|
||||
}
|
||||
.radio-btn i {
|
||||
border: 1px solid #E1E2E4;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
position: absolute;
|
||||
left: 4px;
|
||||
top: 4px;
|
||||
-webkit-border-radius: 100%;
|
||||
-moz-border-radius: 100%;
|
||||
border-radius: 100%;
|
||||
}
|
||||
.checkedRadio i {
|
||||
background-color: #898A8C;
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 291 B |
|
|
@ -0,0 +1,32 @@
|
|||
/*
|
||||
Custom checkbox and radio button - Jun 18, 2013
|
||||
(c) 2013 @ElmahdiMahmoud
|
||||
license: http://www.opensource.org/licenses/mit-license.php
|
||||
*/
|
||||
// radio
|
||||
$('input[name="radio-btn"]').wrap('<div class="radio-btn"><i></i></div>');
|
||||
$(".radio-btn").on('click', function () {
|
||||
var _this = $(this),
|
||||
block = _this.parent().parent();
|
||||
block.find('input:radio').attr('checked', false);
|
||||
block.find(".radio-btn").removeClass('checkedRadio');
|
||||
_this.addClass('checkedRadio');
|
||||
_this.find('input:radio').attr('checked', true);
|
||||
});
|
||||
|
||||
// checkbox
|
||||
$('input[name="check-box"]').wrap('<div class="check-box"><i></i></div>');
|
||||
$.fn.toggleCheckbox = function () {
|
||||
this.attr('checked', !this.attr('checked'));
|
||||
};
|
||||
|
||||
$('.check-box').on('click', function () {
|
||||
$(this).find(':checkbox').toggleCheckbox();
|
||||
$(this).toggleClass('checkedBox');
|
||||
});
|
||||
|
||||
function checkClick(id) {
|
||||
var e = document.createEvent("MouseEvents");
|
||||
e.initEvent("click", true, true);
|
||||
document.getElementById(id).dispatchEvent(e); //只要id 就好
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -20,23 +20,27 @@
|
|||
<script>DD_belatedPNG.fix('*');</script>
|
||||
<script th:src="@{/js/jquery-1.8.3.js}"></script>
|
||||
<![endif]-->
|
||||
<title>序列號查询</title>
|
||||
<title>序列号查询</title>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="breadcrumb"><i class="Hui-iconfont"></i> 首页 <span class="c-gray en">></span> 序列號管理 <span class="c-gray en">></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"></i></a></nav>
|
||||
<nav class="breadcrumb">
|
||||
<i class="Hui-iconfont"></i> 首页
|
||||
<span class="c-gray en">></span> 序列号管理
|
||||
<span class="c-gray en">></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"></i>
|
||||
</a>
|
||||
</nav>
|
||||
<div class="page-container" style="text-align: center">
|
||||
<h1><span style="color:red;">序列號查询</span></h1>
|
||||
<div style="height: 50px"></div>
|
||||
<div class="text-c">
|
||||
<form class="addScd" target="_self" action="/findCdkInfo" onsubmit="return cdkAdd()">
|
||||
<input type="text" class="input-text" style="width:250px" placeholder="服务器id" id="serverId" name="serverId"><br>
|
||||
<span class="SERVERID"></span><br>
|
||||
<input type="text" class="input-text" style="width:250px" placeholder="序列号id" id="cdkNum" name="cdkNum"><br><br>
|
||||
<span class="CDKNUM"></span><br>
|
||||
<!--<input type="text" class="input-text" style="width:250px" placeholder="生成数量" name="num">-->
|
||||
<button type="submit" class="btn btn-success" ><i class="Hui-iconfont"></i> 序列号查询</button>
|
||||
</form>
|
||||
</div>
|
||||
<h1 style="color:red;margin-bottom: 50px;">序列号查询</h1>
|
||||
<div class="row cl" style="margin-bottom: 20px;">
|
||||
<input type="text" class="input-text" style="width:250px;float: left; margin: 45px 0 0 600px;" placeholder="序列号Id" id="cdkId" name="cdkId"><br><br>
|
||||
<button onClick="return findCdk(1);" class="btn btn-primary radius" type="button" style="float: left;margin: 0 0 0 20px" ><i class="Hui-iconfont"></i> 查询(序列号)</button>
|
||||
</div>
|
||||
<div class="row cl">
|
||||
<input type="text" class="input-text" style="width:250px; float: left; margin: 20px 0 0 600px;" placeholder="用户Id" id="userId" name="userId"><br>
|
||||
<button onClick="return findCdk(2);" class="btn btn-primary radius" type="button" style="float: left;margin: 0 0 0 20px" ><i class="Hui-iconfont"></i> 查询(用 户)</button>
|
||||
</div>
|
||||
</div>
|
||||
<!--_footer 作为公共模版分离出去-->
|
||||
<script type="text/javascript" src="../lib/jquery/1.9.1/jquery.min.js"></script>
|
||||
|
|
@ -47,21 +51,22 @@
|
|||
<!--请在下方写此页面业务相关的脚本-->
|
||||
<script type="text/javascript" src="../lib/datatables/1.10.0/jquery.dataTables.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
function cdkAdd() {
|
||||
var serverId = $("#serverId").val();
|
||||
var cdkNum = $("#cdkNum").val();
|
||||
var erroCode = $('.SERVERID');
|
||||
if (serverId === '' || serverId == null) {
|
||||
erroCode.html('<span style="color: red; ">serverID不能为空!</span>');
|
||||
return false;
|
||||
}
|
||||
if (cdkNum === '' || cdkNum == null) {
|
||||
var erroCode = $('.CDKNUM');
|
||||
erroCode.html('<span style="color: red; ">序列号不能为空!</span>');
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function findCdk(type) {
|
||||
var cdkId = $("input[name='cdkId']").val();
|
||||
if ((cdkId === '' || cdkId == null) && type === 1){
|
||||
alert("cdk查询,序列号不能为空");
|
||||
return;
|
||||
}
|
||||
var userId = $("input[name='userId']").val();
|
||||
if ((userId === '' || userId == null) && type === 2){
|
||||
alert("用户查询,用户id不能为空");
|
||||
return;
|
||||
}
|
||||
// 发送地址
|
||||
window.location.href = "/findCdkInfo?type=" + type + "&cdkId=" + cdkId + "&userId=" + userId;
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<!--_meta 作为公共模版分离出去-->
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.w3.org/1999/xhtml">
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta name="renderer" content="webkit|ie-comp|ie-stand"/>
|
||||
|
|
@ -151,7 +151,7 @@
|
|||
window.location.href = '/gsAccountManage'
|
||||
}
|
||||
if (data === 0) {
|
||||
layer.msg('注册失败!', {icon: 6, time: 1000});
|
||||
layer.msg('注册失败,信息填写错误或账号已存在!', {icon: 6, time: 1000});
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -82,10 +82,10 @@
|
|||
<div id="InputsWrapper">
|
||||
<div th:each="i:${#numbers.sequence(1,20)}">
|
||||
<div th:style="${i} ne 1?'display:none':''" th:id="item_+(${i})">
|
||||
<select name="itemId" style="width: 150px" th:id="itemId_+(${i})"><!--下拉列表-->
|
||||
<select name="itemId" th:id="itemId_+(${i})"><!--下拉列表-->
|
||||
<option value="0" selected="selected">0.无物品</option>
|
||||
<option th:each="item:${rechargeMap}" th:value="${item.key}"
|
||||
th:text="${item.key}+.+${item.value.name}+'.['+${item.value.price}+']'"></option>
|
||||
th:text="${item.value.getSupportInfo()}"></option>
|
||||
</select>
|
||||
<input type="text" readonly="readonly" name="itemNum" placeholder="1" th:value="1"
|
||||
th:id="itemNum_+(${i})" class="input_bg" style="width: 50px;background-color: #c6c6c6;"/>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,113 @@
|
|||
<!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="lib/html5shiv.js"></script>
|
||||
<script type="text/javascript" src="lib/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<!-- 多选框 -->
|
||||
<link rel="stylesheet" type="text/css" href="../static/checkbox/css/style.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="../static/checkbox/css/reset.css"/>
|
||||
|
||||
<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="h-ui.admin/css/style.css"/>-->
|
||||
<!--[if IE 6]>
|
||||
<script type="text/javascript" src="lib/DD_belatedPNG_0.0.8a-min.js"></script>
|
||||
<script>DD_belatedPNG.fix('*');</script>
|
||||
<![endif]-->
|
||||
<title>用户渠道包设置</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="page-container">
|
||||
<div style="text-align: center">
|
||||
<h2><span style="color:red;">用户渠道包设置</span></h2>
|
||||
</div>
|
||||
<form class="form form-horizontal" id="form-article-add" method="post">
|
||||
<div th:each="list:${channelPack}" style="margin:0 0 10px 100px;">
|
||||
<li style="list-style: none">
|
||||
<input type="checkbox" th:name="check-box" th:id="${list.getId()}"/>
|
||||
<span style="font-size: 16px;" th:text="${list.getName()}"></span>
|
||||
</li>
|
||||
</div>
|
||||
<div>
|
||||
<button type="button" class="btn btn-success" style="margin: 0 0 30px 100px;" onclick="return updateChannelPackPower()" >保存设置</button>
|
||||
<a class="btn btn-primary radius" href="/findMemberList" style="margin-bottom: 30px">取消设置</a>
|
||||
</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" src="../static/checkbox/js/checkbox.js"></script>
|
||||
<script type="text/javascript" src="../static/checkbox/js/prefixfree.min.js"></script>
|
||||
<script th:inline="javascript">
|
||||
//当页面加载完成的时候,自动调用该方法
|
||||
window.onload = function () {
|
||||
//获得所要回显的值,此处为:100,1001,200,1400
|
||||
var checkeds = [[${channelPack2}]];
|
||||
//拆分为字符串数组
|
||||
$('[name="check-box"]').each(function(){
|
||||
for (var i = 0; i < checkeds.length; i++) {
|
||||
var webId = $(this).attr("id");
|
||||
var backId = checkeds[i].id;
|
||||
if (webId == backId){
|
||||
// $(this).find(':checkbox').toggleCheckbox();
|
||||
checkClick(webId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// 修改权限
|
||||
function updateChannelPackPower() {
|
||||
var id = [[${id}]];
|
||||
var strSel = [];
|
||||
$("[name='check-box'][checked]").each(function () {
|
||||
strSel.push($(this).attr("id"));
|
||||
});
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
data: {
|
||||
"id": id,
|
||||
"pack[]": strSel
|
||||
},
|
||||
url: "/updateUserChannelPack",
|
||||
success: function (data) {
|
||||
if (data === 1) {
|
||||
window.location.href = '/findMemberList'
|
||||
}
|
||||
if (data === 0) {
|
||||
layer.msg('用户不存在,修改失败!', {icon: 6, time: 1000});
|
||||
}
|
||||
if (data === 2) {
|
||||
layer.msg('root账号默认拥有全部权限,不能修改!', {icon: 6, time: 1000});
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -69,6 +69,16 @@
|
|||
</select>
|
||||
</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">
|
||||
<select name="packId" class="input-text" id="packId"><!--下拉列表-->
|
||||
<option th:each="pack:${channelPackInfo}" th:value="${pack.id}" th:text="${pack.name}"></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row cl">
|
||||
<label class="form-label col-xs-4 col-sm-2">
|
||||
<span class="c-red"></span>
|
||||
|
|
@ -123,25 +133,29 @@
|
|||
});
|
||||
function findFlow() {
|
||||
var erroCode = $('.SERVERID');
|
||||
var serverId = $("#serverId").val();
|
||||
var startTime = $("input[name='startTime']").val();
|
||||
var endTime = $("input[name='endTime']").val();
|
||||
if (serverId === '' || serverId == null) {
|
||||
erroCode = $('.SERVERId');
|
||||
erroCode.html('<span style="color: red; ">区服id不能为空!</span>');
|
||||
|
||||
var serverId = $("#serverId").val();
|
||||
if (serverId === '' || serverId == null) {
|
||||
alert("区服id不能为空!!");
|
||||
return false;
|
||||
}
|
||||
|
||||
var startTime = $("input[name='startTime']").val();
|
||||
if (startTime === '' || startTime == null) {
|
||||
erroCode = $('.STARTTIME');
|
||||
erroCode.html('<span style="color: red; ">开始时间不能为空!</span>');
|
||||
return false;
|
||||
}
|
||||
var endTime = $("input[name='endTime']").val();
|
||||
if (endTime === '' || endTime == null) {
|
||||
erroCode = $('.ENDTIME');
|
||||
erroCode.html('<span style="color: red; ">结束时间不能为空!</span>');
|
||||
return false;
|
||||
}
|
||||
var packId = $("#packId").val();
|
||||
if (packId === '' || packId == null) {
|
||||
alert("游戏名称不能为空!");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,121 @@
|
|||
<!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="lib/html5shiv.js"></script>
|
||||
<script type="text/javascript" src="lib/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<link rel="stylesheet" type="text/css" href="h-ui/css/H-ui.min.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="h-ui.admin/css/H-ui.admin.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="lib/Hui-iconfont/1.0.8/iconfont.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="h-ui.admin/skin/default/skin.css" id="skin"/>
|
||||
<link rel="stylesheet" type="text/css" href="h-ui.admin/css/style.css"/>
|
||||
|
||||
<script type="text/javascript" src="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"></i> 首页
|
||||
<span class="c-gray en">></span> gm功能
|
||||
<span class="c-gray en">></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"></i></a>
|
||||
</nav>
|
||||
<div class="page-container" style="text-align: center">
|
||||
<h2><span style="color:red;">游戏包管理</span></h2>
|
||||
<div style="text-align: left">
|
||||
<button class="btn btn-primary" type="button" id="batch" onclick="updates()">
|
||||
<i class="Hui-iconfont"></i>新增
|
||||
</button>
|
||||
</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">包名</th>
|
||||
<th width="300">使用说明</th>
|
||||
<th width="300">隐私协议</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr th:each="obj:${infoList}">
|
||||
<!--<td><input type="checkbox" value="" name=""/></td>-->
|
||||
<td th:text="${obj.id}" style="text-align: center;"></td>
|
||||
<td th:text="${obj.instructions}" style="text-align: center;"></td>
|
||||
<td th:text="${obj.privacy}" style="text-align: center;"></td>
|
||||
<td style="text-align: center; width: 300px">
|
||||
<button type="button" th:id="${obj.id}" class="btn btn-primary"
|
||||
onclick="return updates(this)"><i class="Hui-iconfont"></i> 编辑
|
||||
</button>
|
||||
<button type="button" th:id="${obj.id}" class="btn btn-primary"
|
||||
onclick="return deletes(this)"><i class="Hui-iconfont"></i> 删除
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--_footer 作为公共模版分离出去-->
|
||||
<script type="text/javascript" src="lib/jquery/1.9.1/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="lib/layer/2.4/layer.js"></script>
|
||||
<script type="text/javascript" src="h-ui/js/H-ui.min.js"></script>
|
||||
<script type="text/javascript" src="h-ui.admin/js/H-ui.admin.js"></script> <!--/_footer 作为公共模版分离出去-->
|
||||
|
||||
<!--请在下方写此页面业务相关的脚本-->
|
||||
<script type="text/javascript" src="lib/My97DatePicker/4.8/WdatePicker.js"></script>
|
||||
<script type="text/javascript" src="lib/datatables/1.10.0/jquery.dataTables.min.js"></script>
|
||||
<script type="text/javascript" src="lib/laypage/1.2/laypage.js"></script>
|
||||
<script type="text/javascript">
|
||||
$('.table-sort').dataTable({
|
||||
"aaSorting": [[1, "desc"]],//默认第几个排序
|
||||
"bStateSave": true,//状态保存
|
||||
"pading": false,
|
||||
"aoColumnDefs": [
|
||||
//{"bVisible": false, "aTargets": [ 3 ]} //控制列的隐藏显示
|
||||
{"orderable": false, "aTargets": [1]}// 不参与排序的列
|
||||
]
|
||||
});
|
||||
|
||||
// 添加
|
||||
function updates(obj) {
|
||||
var id = $(obj).attr("id");
|
||||
window.location.href = "/gameAgreementToUpdate?id=" + id;
|
||||
}
|
||||
|
||||
// 单个审核
|
||||
function deletes(obj) {
|
||||
var id = $(obj).attr("id");
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
data: {
|
||||
"id": id
|
||||
},
|
||||
url: "/deleteGameAgreement",
|
||||
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>
|
||||
|
|
@ -54,208 +54,29 @@
|
|||
</header>
|
||||
<aside class="Hui-aside">
|
||||
<div class="menu_dropdown bk_2">
|
||||
<div th:each="pos:${admin}">
|
||||
<!-- 用户管理 -->
|
||||
<div th:if="${#lists.contains(pos.powers,100)}">
|
||||
<dl id="menu-member">
|
||||
<dt><i class="Hui-iconfont"></i> 用户管理<i
|
||||
class="Hui-iconfont menu_dropdown-arrow"></i></dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li th:if="${#lists.contains(pos.powers,101)}">
|
||||
<a data-href="findMemberList" data-title="会员列表" href="javascript:;">用户列表</a>
|
||||
</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<!-- 服务器管理 -->
|
||||
<div th:if="${#lists.contains(pos.powers,200)}">
|
||||
<dl id="menu-server">
|
||||
<dt><i class="Hui-iconfont"></i> 服务器管理<i
|
||||
class="Hui-iconfont menu_dropdown-arrow"></i></dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li th:if="${#lists.contains(pos.powers,201)}"><a data-href="findServerInfo" data-title="服务器列表"
|
||||
href="javascript:void(0)">服务器信息</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,202)}"><a data-href="serverNumberInfo" data-title="服务器注册"
|
||||
href="javascript:void(0)">服务器注册</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,203)}"><a data-href="/html/addServer.html" data-title="添加服务器"
|
||||
href="javascript:void(0)">添加服务器</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,204)}"><a data-href="serverCfgInfo" data-title="全服配置"
|
||||
href="javascript:void(0)">全服配置</a></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<!-- 序列号管理 -->
|
||||
<div th:if="${#lists.contains(pos.powers,300)} ">
|
||||
<dl id="menu-CDK">
|
||||
<dt><i class="Hui-iconfont"></i> 序列号管理<i
|
||||
class="Hui-iconfont menu_dropdown-arrow"></i></dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li th:if="${#lists.contains(pos.powers,301)} "><a data-href="toAddCDKGoodsPage" data-title="序列号礼包生成"
|
||||
href="javascript:void(0)">序列号礼包生成</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,302)} "><a data-href="toCDKBuild" data-title="序列号生成"
|
||||
href="javascript:void(0)">序列号生成</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,303)} "><a data-href="/html/findCDKInfo.html" data-title="序列号使用者查询"
|
||||
href="javascript:void(0)">序列号查询</a></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<!-- GM管理 -->
|
||||
<div th:if="${#lists.contains(pos.powers,400)}">
|
||||
<dl id="menu-GM">
|
||||
<dt><i class="Hui-iconfont"></i> GM管理<i class="Hui-iconfont menu_dropdown-arrow"></i>
|
||||
<div th:each="pos:${sidebar}">
|
||||
<div th:each="key:${pos.getKey()}">
|
||||
<dl>
|
||||
<dt>
|
||||
<div th:if="${key.getId() == key.getBelong()}">
|
||||
<i class="Hui-iconfont"></i>
|
||||
<span th:text="${key.getName()}"></span>
|
||||
<i class="Hui-iconfont menu_dropdown-arrow"></i>
|
||||
</div>
|
||||
</dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li th:if="${#lists.contains(pos.powers,401)} "><a data-href="toMailPage?type=1" data-title="单人,多人邮件"
|
||||
href="javascript:;">单人,多人邮件</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,402)} "><a data-href="toMailPage?type=2" data-title="全服邮件"
|
||||
href="javascript:;">全服邮件</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,403)} "><a data-href="toMailPage?type=3" data-title="发送跑马灯"
|
||||
href="javascript:;">发送跑马灯</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,404)} "><a data-href="sendSysNotice" data-title="发送公告"
|
||||
href="javascript:;">发送公告</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,405)} "><a data-href="toMailPage?type=4" data-title="发送gm"
|
||||
href="javascript:;">发送gm</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,406)} "><a data-href="noticeInfos" data-title="公告信息"
|
||||
href="javascript:void(0)">公告信息</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,407)} "><a data-href="/html/add_white_list.html" data-title="添加白名单账号"
|
||||
href="javascript:;">添加白名单账号</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,408)} "><a data-href="getAllWhites" data-title="白名单列表"
|
||||
href="javascript:void(0)">删除白名单</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,409)} "><a data-href="addHeroPage" data-title="添加白名单账号英雄"
|
||||
href="javascript:;">添加白名单账号英雄</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,410)} "><a data-href="packageInfoList" data-title="频道管理"
|
||||
href="javascript:;">频道管理</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,413)} "><a data-href="initGuildList" data-title="公会列表管理"
|
||||
href="javascript:;">公会列表管理</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,414)} "><a data-href="channelInfoList" data-title="渠道管理"
|
||||
href="javascript:;">渠道管理</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,418)} "><a data-href="tishenInfoList" data-title="提审服管理" href="javascript:;">提审服管理</a></li>
|
||||
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<!-- 流水日志管理 -->
|
||||
<div th:if="${#lists.contains(pos.powers,500)} ">
|
||||
<dl id="menu-log">
|
||||
<dt><i class="Hui-iconfont"></i> 流水日志管理<i
|
||||
class="Hui-iconfont menu_dropdown-arrow"></i></dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li th:if="${#lists.contains(pos.powers,501)} "><a data-href="toFlowPage" data-title="道具日志"
|
||||
href="javascript:;">道具日志</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,502)} "><a data-href="toOrderPage" data-title="订单列表"
|
||||
href="javascript:;">订单列表</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,503)} "><a data-href="toExporOrderPage" data-title="下载订单列表"
|
||||
href="javascript:;">下载订单列表</a>
|
||||
<li th:each="value:${pos.getValue()}">
|
||||
<a th:if="${value.getShow() == 1 && value.getUrl() != ''}"
|
||||
th:attr="data-href=${value.getUrl()}, data-title=${value.getName()}"
|
||||
href="javascript:;">
|
||||
<span th:text="${value.getName()}"></span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<!-- 禁言/踢人/禁登录/改名 -->
|
||||
<div th:if="${#lists.contains(pos.powers,600)} ">
|
||||
<dl id="menu-Title">
|
||||
<dt><i class="Hui-iconfont"></i> 封禁管理<i class="Hui-iconfont menu_dropdown-arrow"></i>
|
||||
</dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li th:if="${#lists.contains(pos.powers,601)} "><a data-href="bannedList" data-title="封禁列表" href="javascript:;">封禁列表</a>
|
||||
</li>
|
||||
<li th:if="${#lists.contains(pos.powers,602)} "><a data-href="toGameTitle?type=1" data-title="禁言/踢下线/禁登录"
|
||||
href="javascript:;">禁言/踢下线/禁登录</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,603)} "><a data-href="toGameTitle?type=2" data-title="修改角色名"
|
||||
href="javascript:;">修改角色名</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,604)} "><a data-href="toGameTitle?type=3" data-title="根据openId封号"
|
||||
href="javascript:;">根据openId封号</a></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<!-- 信息管理 -->
|
||||
<div th:if="${#lists.contains(pos.powers,700)} ">
|
||||
<dl id="menu-info">
|
||||
<dt><i class="Hui-iconfont"></i> 信息管理<i
|
||||
class="Hui-iconfont menu_dropdown-arrow"></i></dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li th:if="${#lists.contains(pos.powers,701)} "><a data-href="toGetuserInfoPage" data-title="个人信息查询"
|
||||
href="javascript:;">角色信息查询</a></li>
|
||||
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<!-- 问卷管理 -->
|
||||
<div th:if="${#lists.contains(pos.powers,800)} ">
|
||||
<dl id="menu-question">
|
||||
<dt><i class="Hui-iconfont"></i> 问卷管理<i
|
||||
class="Hui-iconfont menu_dropdown-arrow"></i></dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li th:if="${#lists.contains(pos.powers,801)} "><a data-href="/html/question.html" data-title="新增问卷"
|
||||
href="javascript:;">新增编辑</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,802)} "><a data-href="/html/getquestInfo.html" data-title="问卷查询"
|
||||
href="javascript:;">问卷查询</a></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<!-- 审核 -->
|
||||
<div th:if="${#lists.contains(pos.powers,900)} ">
|
||||
<dl id="menu-check">
|
||||
<dt><i class="Hui-iconfont"></i> 审核<i class="Hui-iconfont menu_dropdown-arrow"></i>
|
||||
</dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li th:if="${#lists.contains(pos.powers,901)} "><a data-href="getMailListToCheck?type=1" data-title="系统邮件审核"
|
||||
href="javascript:void(0)">系统邮件审核</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,902)} "><a data-href="getMailListToCheck?type=2" data-title="个人邮件审核"
|
||||
href="javascript:void(0)">个人邮件审核</a>
|
||||
</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<!-- 聊天信息管理 -->
|
||||
<div th:if="${#lists.contains(pos.powers,1000)} ">
|
||||
<dl id="menu-ChatInfo">
|
||||
<dt><i class="Hui-iconfont"></i> 聊天信息管理<i
|
||||
class="Hui-iconfont menu_dropdown-arrow"></i></dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li th:if="${#lists.contains(pos.powers,1001)} "><a data-href="chatInfoShow" data-title="聊天信息查询"
|
||||
href="javascript:void(0)">聊天信息查询</a></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<!-- 扶持功能 -->
|
||||
<div th:if="${#lists.contains(pos.powers,1100)} ">
|
||||
<dl id="menu-support">
|
||||
<dt><i class="Hui-iconfont"></i> 扶持功能<i class="Hui-iconfont menu_dropdown-arrow"></i>
|
||||
</dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li th:if="${#lists.contains(pos.powers,1101)} "><a data-href="applyForSupport" data-title="申请扶持" href="javascript:;">申请扶持</a>
|
||||
</li>
|
||||
<li th:if="${#lists.contains(pos.powers,1102)} "><a data-href="auditSupport" data-title="审核扶持" href="javascript:;">审核扶持</a>
|
||||
</li>
|
||||
<li th:if="${#lists.contains(pos.powers,1103)} "><a data-href="gsAccountManage" data-title="GS账号管理"
|
||||
href="javascript:;">GS账号管理</a></li>
|
||||
<li th:if="${#lists.contains(pos.powers,1104)} "><a data-href="supportPlanList" data-title="扶持进度查看"
|
||||
href="javascript:;">扶持进度查看</a></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
|
|
|
|||
|
|
@ -39,7 +39,6 @@
|
|||
<div class="formControls col-xs-8 col-xs-offset-3">
|
||||
<input name="" type="submit" class="btn btn-success radius size-L" value=" 登 录 ">
|
||||
<input name="" type="reset" class="btn btn-default radius size-L" value=" 取 消 ">
|
||||
<input name="" type="button" onclick="return registerInit()" class="btn btn-primary radius size-L" value=" 注 册 ">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -65,22 +64,6 @@
|
|||
return true;
|
||||
}
|
||||
|
||||
function registerInit() {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
dataType: "json",
|
||||
contentType: 'application/json',
|
||||
url: "/registerInit",
|
||||
success: function (data) {
|
||||
if (data === 1) {
|
||||
alert("root账号注册成功,密码:123456!");
|
||||
}
|
||||
if (data === 0) {
|
||||
alert("root账号已注册!");
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
onclick="return updateUserPower(this)"><i class="Hui-iconfont"></i>权限设置
|
||||
</button>
|
||||
<button type="button" th:id="${obj.id}" class="btn btn-primary"
|
||||
onclick="return districtServerPower()"><i class="Hui-iconfont"></i>区服权限
|
||||
onclick="return districtServerPower(this)"><i class="Hui-iconfont"></i>区服权限
|
||||
</button>
|
||||
<button type="button" th:id="${obj.id}" class="btn btn-primary"
|
||||
onclick="return deleteUser(this)"><i class="Hui-iconfont"></i>删除
|
||||
|
|
@ -154,8 +154,9 @@
|
|||
}
|
||||
|
||||
// 区服权限
|
||||
function districtServerPower(){
|
||||
alert("当前功能暂未完善,无法使用!")
|
||||
function districtServerPower(obj){
|
||||
var userId = $(obj).attr("id");
|
||||
location.href = "/getUserChannelPack?" + "id=" + encodeURI(userId);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -59,10 +59,9 @@
|
|||
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
<script th:inline="javascript">
|
||||
// Apparently click is better chan change? Cuz IE?
|
||||
$('input[type="checkbox"]').change(function (e) {
|
||||
$('input[type="checkbox"]').change(function () {
|
||||
var checked = $(this).prop("checked"),
|
||||
container = $(this).parent(),
|
||||
siblings = container.siblings();
|
||||
container = $(this).parent();
|
||||
container.find('input[type="checkbox"]').prop({
|
||||
indeterminate: false,
|
||||
checked: checked
|
||||
|
|
|
|||
|
|
@ -0,0 +1,74 @@
|
|||
<!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="lib/html5shiv.js"></script>
|
||||
<script type="text/javascript" src="lib/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<link rel="stylesheet" type="text/css" href="h-ui/css/H-ui.min.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="h-ui.admin/css/H-ui.admin.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="lib/Hui-iconfont/1.0.8/iconfont.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="h-ui.admin/skin/default/skin.css" id="skin"/>
|
||||
<link rel="stylesheet" type="text/css" href="h-ui.admin/css/style.css"/>
|
||||
<script type="text/javascript" src="lib/DD_belatedPNG_0.0.8a-min.js"></script>
|
||||
<script>DD_belatedPNG.fix('*');</script>
|
||||
<title>CDK使用信息</title>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="breadcrumb">
|
||||
<a href="javascript:;" onclick="history.go(-1)"><i class="Hui-iconfont"></i> 首页</a>
|
||||
<span class="c-gray en">></span> 序列号管理
|
||||
<span class="c-gray en">></span> 序列号查询
|
||||
</nav>
|
||||
<div class="page-container" style="text-align: center">
|
||||
<h2><span style="color:red;">序列号使用信息</span></h2>
|
||||
<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">
|
||||
<!--<th width="25"><input type="checkbox" name="" value=""/></th>-->
|
||||
<th width="200">角色ID</th>
|
||||
<th width="200">角色名</th>
|
||||
<th width="200">玩家区服</th>
|
||||
<th width="200">序列号ID</th>
|
||||
<th width="200">礼包码名称</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr th:each="obj:${useCdkInfo}">
|
||||
<td th:text="${obj.userId}" style="text-align: center;"></td>
|
||||
<td th:text="${obj.userName}" style="text-align: center;"></td>
|
||||
<td th:text="${obj.serverName}" style="text-align: center;"></td>
|
||||
<td th:text="${obj.cdkId}" style="text-align: center;"></td>
|
||||
<td th:text="${obj.goodsName}" style="text-align: center;"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<!--_footer 作为公共模版分离出去-->
|
||||
<script type="text/javascript" src="lib/jquery/1.9.1/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="lib/layer/2.4/layer.js"></script>
|
||||
<script type="text/javascript" src="h-ui/js/H-ui.min.js"></script>
|
||||
<script type="text/javascript" src="h-ui.admin/js/H-ui.admin.js"></script> <!--/_footer 作为公共模版分离出去-->
|
||||
|
||||
<!--请在下方写此页面业务相关的脚本-->
|
||||
<script type="text/javascript" src="lib/My97DatePicker/4.8/WdatePicker.js"></script>
|
||||
<script type="text/javascript" src="lib/datatables/1.10.0/jquery.dataTables.min.js"></script>
|
||||
<script type="text/javascript" src="lib/laypage/1.2/laypage.js"></script>
|
||||
<script type="text/javascript">
|
||||
$('.table-sort').dataTable({
|
||||
"aaSorting": [[ 1, "desc" ]],//默认第几个排序
|
||||
"bStateSave": true,//状态保存
|
||||
"pading":false,
|
||||
"aoColumnDefs": [
|
||||
//{"bVisible": false, "aTargets": [ 3 ]} //控制列的隐藏显示
|
||||
{"orderable":false,"aTargets":[0,4]}// 不参与排序的列
|
||||
]
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
<span class="c-gray en">></span> 序列号查询
|
||||
</nav>
|
||||
<div class="page-container" style="text-align: center">
|
||||
<h2><span style="color:red;">序列號使用信息</span></h2>
|
||||
<h2><span style="color:red;">序列号使用信息</span></h2>
|
||||
<div class="text-c">
|
||||
<div class="mt-20">
|
||||
<table class="table table-border table-bordered table-bg table-hover table-sort table-responsive">
|
||||
|
|
@ -33,14 +33,16 @@
|
|||
<tr class="text-c">
|
||||
<!--<th width="25"><input type="checkbox" name="" value=""/></th>-->
|
||||
<th width="200">角色ID</th>
|
||||
<th width="200">角色账号</th>
|
||||
<th width="200">角色名字</th>
|
||||
<th width="200">礼包名称</th>
|
||||
<th width="200">玩家区服</th>
|
||||
<th width="200">账号ID</th>
|
||||
<th width="200">角色名</th>
|
||||
<th width="200">礼包名</th>
|
||||
<th width="200">使用时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr th:each="obj:${useCDKinfo}">
|
||||
<tr th:each="obj:${useCdkInfo}">
|
||||
<td th:text="${obj.userId}" style="text-align: center;"></td>
|
||||
<td th:text="${obj.serverName}" style="text-align: center;"></td>
|
||||
<td th:text="${obj.openId}" style="text-align: center;"></td>
|
||||
<td th:text="${obj.userName}" style="text-align: center;"></td>
|
||||
<td th:text="${obj.goodsName}" style="text-align: center;"></td>
|
||||
|
|
@ -0,0 +1,146 @@
|
|||
<!--_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>
|
||||
|
||||
<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" />
|
||||
<link href="../static/searchableSelect/css/jquery.searchableSelect.css" rel="stylesheet" type="text/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">
|
||||
<a href="javascript:;" onclick="history.go(-1)">
|
||||
<i class="Hui-iconfont"></i> 首页
|
||||
</a>
|
||||
<span class="c-gray en">></span> 扶持功能
|
||||
<span class="c-gray en">></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"></i></a>
|
||||
</nav>
|
||||
<div class="page-container">
|
||||
<form class="form form-horizontal" id="form-article-add" action="/register" method="post"target="sendNotice">
|
||||
<div id="tab-system" class="HuiTab">
|
||||
<div class="tabBar cl">
|
||||
<span>添加游戏内协议</span>
|
||||
</div>
|
||||
<div class="tabCon">
|
||||
<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">
|
||||
<label>
|
||||
<input type="text" name="agreementId" placeholder="不能为空" th:value="${agreement.id}" class="input-text"/>
|
||||
</label>
|
||||
</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">
|
||||
<label>
|
||||
<input type="text" name="instructions" placeholder="可以为空" th:value="${agreement.instructions}" class="input-text"/>
|
||||
</label>
|
||||
</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">
|
||||
<label>
|
||||
<input type="text" name="privacy" placeholder="可以为空" th:value="${agreement.privacy}" class="input-text"/>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tabCon">
|
||||
</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="button" onclick="adds()" ><i class="Hui-iconfont"></i> 保存</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<iframe name='sendNotice' id="hidden_frame" style='display: none'></iframe>
|
||||
</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
|
||||
});
|
||||
// 模糊搜素
|
||||
$('#InputsWrapper select').searchableSelect();
|
||||
});
|
||||
|
||||
function adds() {
|
||||
var id = $("input[name='agreementId']").val();
|
||||
if (id === '' || id == null) {
|
||||
alert("包名不能为空!!!");
|
||||
return;
|
||||
}
|
||||
var instructions = $("input[name='instructions']").val();
|
||||
var privacy = $("input[name='privacy']").val();
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
data:
|
||||
JSON.stringify({
|
||||
"id": id,
|
||||
"instructions": instructions,
|
||||
"privacy": privacy
|
||||
}),
|
||||
dataType: "json",
|
||||
contentType:'application/json',
|
||||
url: "/updateGameAgreement",
|
||||
success: function (data) {
|
||||
if (data === 1) {
|
||||
layer.msg('成功!', {icon: 6, time: 1000});
|
||||
window.location.href = '/gameAgreementList'
|
||||
}
|
||||
if (data === 0) {
|
||||
layer.msg('失败!', {icon: 6, time: 1000});
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
<!--/请在上方写此页面业务相关的脚本-->
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -56,6 +56,8 @@
|
|||
<th width="200">CC值</th>
|
||||
<th width="200">注册时间</th>
|
||||
<th width="200">账号id</th>
|
||||
<th width="200">平台</th>
|
||||
<th width="200">支付方式</th>
|
||||
<!--<th width="240">操作</th>-->
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
@ -75,6 +77,8 @@
|
|||
<td th:text="${obj.cc_id}" style="text-align: center;"></td>
|
||||
<td th:text="${obj.registerTime}" style="text-align: center;"></td>
|
||||
<td th:text="${obj.openId}" style="text-align: center;"></td>
|
||||
<td th:text="${obj.platform}" style="text-align: center;"></td>
|
||||
<td th:text="${obj.paySdk}" style="text-align: center;"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -26,10 +26,12 @@
|
|||
<h1><p class="f-20 text-success">戒灵后台管理台</p></h1>
|
||||
</div>
|
||||
<div style="margin-left: 20px;font-size: 18px">
|
||||
<p style="color: red">更新日志[2021-6-9]</p>
|
||||
<p>1、区服展示改为: 区服id-区服名称</p>
|
||||
<p>2、gm管理添加渠道管理页签,可以添加删除渠道信息</p>
|
||||
<p>2、订单页面管理,添加字段,解决导出报错问题</p>
|
||||
<p style="color: red">更新日志[2021-6-28]</p>
|
||||
<p>1、序列号查询功能修改优化</p>
|
||||
<p>2、gm管理-->添加游戏隐私协议管理功能</p>
|
||||
<p>3、扶持账号申请添加账号重复验证</p>
|
||||
<p>4、用户管理-->添加渠道包管理功能</p>
|
||||
<p>5、订单列表-->添加渠道权限</p>
|
||||
</div>
|
||||
<footer class="footer mt-20">
|
||||
</footer>
|
||||
|
|
|
|||
Loading…
Reference in New Issue