白名单添加账号

master
zhangshanxue 2020-10-20 16:39:54 +08:00
parent 2eb26ca209
commit bd8bc20019
7 changed files with 335 additions and 8 deletions

View File

@ -1,27 +1,39 @@
package com.jmfy.controller;
import com.jmfy.dao.ServerInfoDao;
import com.jmfy.model.ServerInfo;
import com.jmfy.dao.UserInfoDao;
import com.jmfy.model.*;
import com.jmfy.model.vo.NoticeInfoVo;
import com.jmfy.redisProperties.RedisUserKey;
import com.jmfy.thrift.idl.Result;
import com.jmfy.utils.FileCacheUtils;
import com.jmfy.utils.JsonUtil;
import com.jmfy.utils.RPCClient;
import com.jmfy.utils.RedisUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestBody;
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 java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.*;
@Controller
public class GmController {
private static final Logger LOGGER = LoggerFactory.getLogger(UserInfoController.class);
@Resource
private ServerInfoDao serverInfoDao;
@Resource
private UserInfoDao userInfoDao;
@RequestMapping(value = "/sendGm", method = {RequestMethod.POST, RequestMethod.GET})
public @ResponseBody
int publishNotice(HttpServletRequest request) throws Exception {
@ -74,4 +86,73 @@ public class GmController {
return 0;
}
@RequestMapping(value = "/addhero", method = {RequestMethod.POST, RequestMethod.GET})
public @ResponseBody
int addHero(@RequestBody HeroTemp heroTemp , HttpServletResponse response) throws Exception {
String stringUid = heroTemp.getUserId();
for (String userId:stringUid.split("#")) {
CUserInfo userInfo =null;
try {
if(userId!=null&&!userId.isEmpty()){
userInfo = userInfoDao.findUserInfoByUserId(Integer.parseInt(userId));
}
}catch (Exception e){
throw new Exception("uid null");
}
if (userInfo == null){
throw new Exception("userInfo null");
}
WhiteList whiteList = userInfoDao.findWhiteListInfo(userInfo.getOpenId());
if (whiteList == null){
throw new Exception("not access");
}
//TODO 分服
String rpcString = RedisUtil.getInstence().getObject(RedisUserKey.LOGIC_SERVER_INFO, String.valueOf(userInfo.getServerid()), String.class, -1);
if(null==rpcString){
throw new Exception("serverAddress not exist");
}
String thriftIp = rpcString.split(":")[0];
String thriftPort = rpcString.split(":")[1];
if (thriftIp == null || thriftIp.isEmpty() || null == thriftPort || thriftPort.isEmpty()) {
return -1;
} else {
for (int i = 0; i < heroTemp.getHeroId().size(); i++) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("addhero ").append(userId)
.append(" ").append(heroTemp.getHeroId().get(i))
.append(" ").append(heroTemp.getHeroStar().get(i));
LOGGER.info("start addHero uid=>{},reward=>{}",userId,stringBuilder.toString());
Result result = RPCClient.gmSend(stringBuilder.toString(), thriftIp, thriftPort);
// 异常或者错误
if (result.getResultCode() != 0) {
continue;
}else {
LOGGER.info("addHero uid=>{},reward=>{}",userId,stringBuilder.toString());
}
}
}
}
return 0;
}
@RequestMapping(value = "/addHeroPage", method = {RequestMethod.POST, RequestMethod.GET})
public String noticeInfos (HttpSession session, ModelMap map , HttpServletRequest request) throws Exception {
return "addHero";
}
}

View File

@ -42,8 +42,7 @@ import java.util.*;
public class OrderInfoController {
@Resource
private UserInfoDao userInfoDao;
@Resource
private GSUserDao gsUserDao;
@Resource
private ServerInfoDao serverInfoDao;

View File

@ -7,6 +7,9 @@ import com.jmfy.model.vo.CUserVo;
import com.jmfy.model.vo.RoleVo;
import com.jmfy.redisProperties.GlobalsDef;
import com.jmfy.utils.JsonUtil;
import com.jmfy.utils.RedisUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
@ -25,6 +28,7 @@ import java.util.List;
*/
@Controller
public class UserInfoController {
private static final Logger LOGGER = LoggerFactory.getLogger(UserInfoController.class);
@Resource
private UserInfoDao userInfoDao;
@Resource
@ -150,6 +154,8 @@ public class UserInfoController {
String userIds = parameterMap.get("userIds");
int type = Integer.parseInt(parameterMap.get("type"));
String[] split = userIds.split("#");
LOGGER.info("addWhite"+userIds);
for (String openid : split){
if (type == 0){

View File

@ -1,5 +1,6 @@
package com.jmfy.dao.impl;
import com.jmfy.controller.UserInfoController;
import com.jmfy.dao.MailDao;
import com.jmfy.model.*;
import com.jmfy.redisProperties.RedisUserKey;
@ -7,6 +8,8 @@ import com.jmfy.utils.Connect;
import com.jmfy.utils.MongoName;
import com.jmfy.utils.RedisUtil;
import com.mongodb.WriteResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
@ -20,6 +23,7 @@ import java.util.List;
@Component
public class MailDaoImpl implements MailDao {
private static final Logger LOGGER = LoggerFactory.getLogger(MailDaoImpl.class);
@Resource
private Connect connect;
public static final String colon = ":";
@ -47,7 +51,7 @@ public class MailDaoImpl implements MailDao {
}
}
sysMail.setReward(sb.toString());
LOGGER.info("sendSysMail serverId=>{},id=>{},reward=>{}",mail.getServerId(),mail.getVersion(),sb.toString());
query.addCriteria(Criteria.where("_id").is(mail.getServerId())); //_id区分引号 "1"和1
Update update = Update.update(mongoKey, sysMail);
WriteResult upsert = mongoTemplate.upsert(query, update, "mailingSystem"); //有则更新,没有则新增
@ -66,6 +70,7 @@ public class MailDaoImpl implements MailDao {
}
}
for(int i = 0 ;i<uid.length;i++){
LOGGER.info("sendMail uid=>{},reward=>{}",uid,sb.toString());
MailPersonalCache mailPersonalCache = new MailPersonalCache();
mailPersonalCache.setTitle(mail.getMailTitle());
mailPersonalCache.setContent(mail.getMailContent());

View File

@ -0,0 +1,41 @@
package com.jmfy.model;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import java.util.List;
public class HeroTemp {
private List<Integer> heroId;
private List<Integer> heroStar;
private String userId;
public List<Integer> getHeroId() {
return heroId;
}
public void setHeroId(List<Integer> heroId) {
this.heroId = heroId;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public List<Integer> getHeroStar() {
return heroStar;
}
public void setHeroStar(List<Integer> heroStar) {
this.heroStar = heroStar;
}
}

View File

@ -0,0 +1,195 @@
<!--_meta 作为公共模版分离出去-->
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8"/>
<meta name="renderer" content="webkit|ie-comp|ie-stand"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="viewport"
content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<meta http-equiv="Cache-Control" content="no-siteapp"/>
<link rel="Bookmark" href="../favicon.ico"/>
<link rel="Shortcut Icon" href="../favicon.ico"/>
<!--[if lt IE 9]>
<script type="text/javascript" src="../static/lib/html5shiv.js"></script>
<script type="text/javascript" src="../static/lib/respond.min.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="../static/h-ui/css/H-ui.min.css"/>
<link rel="stylesheet" type="text/css" href="../static/h-ui.admin/css/H-ui.admin.css"/>
<link rel="stylesheet" type="text/css" href="../static/lib/Hui-iconfont/1.0.8/iconfont.css"/>
<link rel="stylesheet" type="text/css" href="../static/h-ui.admin/skin/default/skin.css" id="skin"/>
<link rel="stylesheet" type="text/css" href="../static/h-ui.admin/css/style.css"/>
<!--[if IE 6]>
<script type="text/javascript" src="../static/lib/DD_belatedPNG_0.0.8a-min.js"></script>
<script>DD_belatedPNG.fix('*');</script>
<![endif]-->
<!--/meta 作为公共模版分离出去-->
<title>玩家订单查询</title>
</head>
<body>
<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
<a class="btn btn-success radius r" style="line-height:1.6em;margin-top:3px"
href="javascript:location.replace(location.href);" title="刷新"><i class="Hui-iconfont">&#xe68f;</i></a>
</nav>
<div class="page-container">
<form class="form form-horizontal" id="form-article-add" action="http://60.1.1.212:9076/idip/manager" method="post"
onsubmit="return exportExcel()">
<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>
用户ID</label>
<div class="formControls col-xs-8 col-sm-9">
<input autocomplete="off" type="text" name="userId" placeholder="游戏中的玩家id限白名单" value=""
class="input-text"/>
<span class="USERID"></span>
</div>
</div>
</div>
</div>
<div class="row cl">
<label class="form-label col-xs-4 col-sm-2">
<span class="c-red">*</span>
自定义英雄:</label>
<div class="formControls col-xs-8 col-sm-9">
<div id="InputsWrapper">
<div th:each="i:${#numbers.sequence(1,20)}">
<div th:style="${i} ne 1?'display:none':''" th:id="hero_+(${i})">
heroId:<input type="text" name="heroId" th:id="heroId_+(${i})" style="width: 150px"/>
<!--<input type="text" name="itemIds[]" id="itemId_1" style="width: 150px" />-->
heroStar:<input type="text" name="heroStar" th:id="heroStar_+(${i})" style="width: 150px"/>
<a href="#" th:if="${i} ne 1" class="removeclass">×</a>
<a href="#" th:if="${i} eq 1" id="AddMoreFileBox" class="btn btn-info">+</a>
<span class="REWARD"></span>
</div>
</div>
</div>
</div>
</div>
<div class="row cl">
<div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-2">
<button onClick="return addHeroAction();" class="btn btn-primary radius" type="button" ><i class="Hui-iconfont">&#xe632;</i> 添加</button>
</div>
</div>
</form>
</div>
<!--_footer 作为公共模版分离出去-->
<script type="text/javascript" src="../static/lib/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="../static/lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="../static/h-ui/js/H-ui.min.js"></script>
<script type="text/javascript" src="../static/h-ui.admin/js/H-ui.admin.js"></script> <!--/_footer 作为公共模版分离出去-->
<!--请在下方写此页面业务相关的脚本-->
<script type="text/javascript" src="../static/lib/My97DatePicker/4.8/WdatePicker.js"></script>
<script type="text/javascript" src="../static/lib/jquery.validation/1.14.0/jquery.validate.js"></script>
<script type="text/javascript" src="../static/lib/jquery.validation/1.14.0/validate-methods.js"></script>
<script type="text/javascript" src="../static/lib/jquery.validation/1.14.0/messages_zh.js"></script>
<script type="text/javascript">
$(function () {
$('.skin-minimal input').iCheck({
checkboxClass: 'icheckbox-blue',
radioClass: 'iradio-blue',
increaseArea: '20%'
});
$("#tab-system").Huitab({
index: 0
});
});
$(document).ready(function () {
var MaxInputs = 5; //maximum input boxes allowed
var AddButton = $("#AddMoreFileBox"); //Add button ID
var item = "#hero_";
var x = 1; //initlal text box count
$(AddButton).click(function (e) //on add input button click
{
console.log(x);
if (x <= MaxInputs) //max input box allowed
{
//add input box
$(item+x).css("display", "block");
x++;
return true;
}
console.log("false");
return false;
});
$("body").on("click", ".removeclass", function (e) { //user click on remove text
if (x > 2) {
x--; //decrement textbox
$(item+x).css("display", "none"); //remove text box
}
console.log("false");
return false;
})
});
function addHeroAction() {
var erroCode = $('.SERVERID');
var startExport = $('.startExport');
var serverId = $("#serverId").val();
var userId = $("input[name='userId']").val();
var heroId = [];
$("input[name='heroId']").each(function () {
if ($(this).val() !== '') {
heroId.push($(this).val());
}
});
var heroStar = [];
$("input[name='heroStar']").each(function () {
if ($(this).val() !== '') {
heroStar.push($(this).val());
}
});
if (heroId.length < 1) {
erroCode = $('.REWARDHERO');
erroCode.html('<span style="color: red; ">英雄不能为空!</span>');
return false;
}
$.ajax({
type: "POST",
data:
JSON.stringify({
"userId": userId,
"heroStar": heroStar,
"heroId": heroId,
})
,
url: "/addhero",
dataType: "json",
contentType:'application/json',
success: function (data) {
if (data == 0) {
layer.msg('成功!', {icon: 6, time: 1000});
}
if (data == 1) {
layer.msg('失败!', {icon: 6, time: 1000});
}
}
}
)
}
</script>
<!--/请在上方写此页面业务相关的脚本-->
</body>
</html>

View File

@ -108,7 +108,7 @@
<li><a data-href="/html/sendSysCmd.html" data-title="发送gm" href="javascript:;">发送gm</a></li>
<li><a data-href="noticeInfos" data-title="公告信息" href="javascript:void(0)">公告信息</a></li>
<li><a data-href="/html/add_white_list.html" data-title="添加白名单账号" href="javascript:;">添加白名单账号</a></li>
<li><a data-href="addHeroPage" data-title="添加白名单账号英雄" href="javascript:;">添加白名单账号英雄</a></li>
<!--<li><a data-href="/html/recoverItem.html" data-title="回收道具" href="javascript:;">回收道具</a></li>-->
</ul>