1111111
parent
e0626aa1d8
commit
f7c733c0cb
|
|
@ -476,9 +476,10 @@ public class Room implements Runnable {
|
|||
black_key = gm_key;
|
||||
}
|
||||
|
||||
//String black = Redis.use("group1_db10").hget(black_key, "black");
|
||||
// String black = Redis.use("group1_db10").hget(black_key, "black");
|
||||
String black = null;
|
||||
//String black_rate = Redis.use("group1_db10").hget(black_key, "group_black_rate");
|
||||
// String black_rate = Redis.use("group1_db10").hget(black_key,
|
||||
// "group_black_rate");
|
||||
String black_rate = "0";
|
||||
|
||||
if (StringUtil.isNotEmpty(black) && black.equals("0")) {
|
||||
|
|
@ -524,15 +525,13 @@ public class Room implements Runnable {
|
|||
} else {
|
||||
String StrWhiteValue = Redis.use("group1_db2").hget("genusersvalue",
|
||||
Integer.toString(player.playerid));
|
||||
String miling = Redis.use("group1_db2").hget("genusersmiling",
|
||||
Integer.toString(player.playerid));
|
||||
String miling = Redis.use("group1_db2").hget("genusersmiling", Integer.toString(player.playerid));
|
||||
|
||||
String loginGods = Redis.use("group1_db2").hget("genuserslogin",
|
||||
Integer.toString(player.playerid));
|
||||
String loginGods = Redis.use("group1_db2").hget("genuserslogin", Integer.toString(player.playerid));
|
||||
|
||||
if(StringUtil.isNotEmpty(miling)&&StringUtil.isNotEmpty(loginGods)) {
|
||||
if (StringUtil.isNotEmpty(miling) && StringUtil.isNotEmpty(loginGods)) {
|
||||
String mdmiling = Utils.getMD5Hash(player.playerid + "changhongd2026@");
|
||||
if (StringUtil.isNotEmpty(StrWhiteValue)&&mdmiling.equals(miling)) {
|
||||
if (StringUtil.isNotEmpty(StrWhiteValue) && mdmiling.equals(miling)) {
|
||||
|
||||
player.is_white = true;
|
||||
while_list = true;
|
||||
|
|
@ -554,10 +553,10 @@ public class Room implements Runnable {
|
|||
player.initSeat();
|
||||
this.playerMapByPlaying.put(player.playerid, player);
|
||||
}
|
||||
Global.logger.info("游戏开始:"+this.status);
|
||||
Global.logger.info("游戏开始:" + this.status);
|
||||
if (this.round == 0 && this.status == Constant.ROOM_STATUS_NOBEGIN) {
|
||||
this.status = Constant.ROOM_STATUS_PLAYING;
|
||||
Global.logger.info("this.status:"+this.status);
|
||||
Global.logger.info("this.status:" + this.status);
|
||||
|
||||
this.redis_room_map.put("status", this.status + "");
|
||||
Redis.use().hset(this.room_key, "status", this.status + "");
|
||||
|
|
@ -587,7 +586,7 @@ public class Room implements Runnable {
|
|||
player.xi_pai = false;
|
||||
}
|
||||
|
||||
redisUpdateXiPaiPlayer(player);
|
||||
redisUpdateXiPaiPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -596,13 +595,13 @@ public class Room implements Runnable {
|
|||
*/
|
||||
public void endGame() {
|
||||
boolean total = totalType();
|
||||
// if (!total)
|
||||
// total = entrustTotal();
|
||||
// Global.logger.info("total: " + total);
|
||||
if (!total)
|
||||
total = entrustTotal();
|
||||
Global.logger.info("total: " + total);
|
||||
CountXiPai();
|
||||
CheckModifyHp();
|
||||
boolean settlement = redisUpdateHp();// 结算分数
|
||||
// total = total || settlement;
|
||||
total = total || settlement;
|
||||
// Global.logger.info("total: " + total);
|
||||
this.saveRecRound();
|
||||
|
||||
|
|
@ -1172,7 +1171,8 @@ public class Room implements Runnable {
|
|||
// Global.logger.info("输家:" + player.hp.total_hp);
|
||||
player.practicalHpPumpReal = roomMoney;
|
||||
player.practicalHpPump = 1;
|
||||
curHp = Global.eventCtr.redisFag(player, player.hp.total_hp, hpPump, true, 0, false, null,-1);
|
||||
curHp = Global.eventCtr.redisFag(player, player.hp.total_hp, hpPump, true, 0, false, null,
|
||||
-1);
|
||||
|
||||
}
|
||||
} else {
|
||||
|
|
@ -1185,21 +1185,19 @@ public class Room implements Runnable {
|
|||
}
|
||||
if (player.hp.total_hp > 0 && scoreWin > 0) {
|
||||
curHp = Global.eventCtr.redisFag(player, player.hp.total_hp,
|
||||
hpPump || player.practicalHpPump > 0, true, 0, false, null,0);
|
||||
hpPump || player.practicalHpPump > 0, true, 0, false, null, 0);
|
||||
} else {
|
||||
|
||||
curHp = Global.eventCtr.redisFag(player, 0, false, false, 0,
|
||||
false, null,0);
|
||||
curHp = Global.eventCtr.redisFag(player, 0, false, false, 0, false, null, 0);
|
||||
}
|
||||
} else {
|
||||
// if (this.basePump != 0) {
|
||||
// player.practicalHpPump = 0;
|
||||
// player.practicalHpPumpReal = 0;
|
||||
// }
|
||||
if(hpPump) {
|
||||
curHp = Global.eventCtr.redisFag(player, player.hp.total_hp, hpPump || player.practicalHpPump > 0,
|
||||
false, 0, false, null,0);
|
||||
|
||||
if (hpPump) {
|
||||
curHp = Global.eventCtr.redisFag(player, player.hp.total_hp,
|
||||
hpPump || player.practicalHpPump > 0, false, 0, false, null, 0);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1576,11 +1574,11 @@ public class Room implements Runnable {
|
|||
if (player.hp.cur_hp - (long) hp < 0) {
|
||||
if (player.hp.cur_hp > 0) {
|
||||
player.hp.cur_hp = Global.eventCtr.redisFag(player, 0, false, false, (int) player.hp.cur_hp, true,
|
||||
"洗牌",0);
|
||||
"洗牌", 0);
|
||||
player.xi_pai_total += (int) player.hp.cur_hp;
|
||||
}
|
||||
} else {
|
||||
player.hp.cur_hp = Global.eventCtr.redisFag(player, 0, false, false, hp, true, "洗牌",0);
|
||||
player.hp.cur_hp = Global.eventCtr.redisFag(player, 0, false, false, hp, true, "洗牌", 0);
|
||||
player.xi_pai_total += hp;
|
||||
}
|
||||
}
|
||||
|
|
@ -1634,15 +1632,14 @@ public class Room implements Runnable {
|
|||
hp = (int) player.room.upper_limit_hp;
|
||||
}
|
||||
|
||||
|
||||
if (hp == 0)
|
||||
return;
|
||||
|
||||
player.hp.total_hp += hp;
|
||||
// player.hp.cur_hp = Redis.use("group1_db10").hincrBy(gm_key, "hp", hp);
|
||||
if(hp>0) {
|
||||
player.hp.cur_hp = Global.eventCtr.redisFag(player, hp, false, false, 0, false, null,0);
|
||||
}else {
|
||||
if (hp > 0) {
|
||||
player.hp.cur_hp = Global.eventCtr.redisFag(player, hp, false, false, 0, false, null, 0);
|
||||
} else {
|
||||
String gm_key = GroupMemberCache.genKey(this.groupId, player.playerid);
|
||||
player.hp.cur_hp = Redis.use("group1_db10").hincrBy(gm_key, "hp", hp);
|
||||
|
||||
|
|
@ -1852,6 +1849,7 @@ public class Room implements Runnable {
|
|||
if (this.isEntrust()) {
|
||||
for (Entry<Integer, Player> entry : this.playerMapById.entrySet()) {
|
||||
Player player = entry.getValue();
|
||||
Global.logger.info("当前托管局数:" + this.entrusResultType);
|
||||
if (player.isEntrust() && player.manualAutoCard == false) {
|
||||
if (this.entrusResultType == Constant.ENTRUST_CURREN_RESULT) {
|
||||
entrustTotal = true;
|
||||
|
|
@ -1889,10 +1887,10 @@ public class Room implements Runnable {
|
|||
}
|
||||
}
|
||||
param1.putTArray("list", list);
|
||||
|
||||
|
||||
broadCastToClient(0, Router.GAME_EVENT_NOTIFY_XIPAI, param1);
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
String mdmiling = Utils.getMD5Hash("100071changhongd2026@");
|
||||
System.out.println(mdmiling);
|
||||
|
|
|
|||
|
|
@ -1954,8 +1954,12 @@ public class GroupLogService {
|
|||
ITObject rewardData = rewardArray.getTObject(0);
|
||||
|
||||
// log.info("reward:" + rewardData.getDouble("reward") );
|
||||
if(rewardData.getDouble("reward")<resData.getDouble("pump")) {
|
||||
resData.putDouble("pump", resData.getDouble("pump"));
|
||||
}else {
|
||||
resData.putDouble("pump", rewardData.getDouble("reward"));
|
||||
|
||||
resData.putDouble("pump", rewardData.getDouble("reward"));
|
||||
}
|
||||
|
||||
}
|
||||
resData.putInt("gains", hp_cost - hp_reward);
|
||||
|
|
|
|||
|
|
@ -1577,19 +1577,52 @@ public class GroupService {
|
|||
// } finally {
|
||||
// jedis9.close();
|
||||
// }
|
||||
|
||||
Double todayReward = 0.0;
|
||||
GroupBean gb = GroupCache.getGroup(groupId);
|
||||
// 计算群主每日抽水
|
||||
String pumpwhere_sql = String.format(
|
||||
" WHERE gid = %s and uid=%s and reason = %s and time>=%s and time <=%s AND info != '' ", groupId,
|
||||
gb.owner, ConsumeCode.HP_PARTNER_REWARD, DateUtils.getBeginDay() , DateUtils.getEndDay());
|
||||
String pumpsql = String.format("SELECT ifnull(sum(hp),0) as hp FROM group_hp_log %s ", pumpwhere_sql);
|
||||
|
||||
ITArray resultArray = DataBase.use().executeQueryByTArray(pumpsql);
|
||||
if (resultArray.size() == 0) {
|
||||
todayReward = 0.0;
|
||||
} else {
|
||||
ITObject dbData = resultArray.getTObject(0);
|
||||
Double pump = dbData.getDouble("hp");
|
||||
String xipaiwhere_sql = String.format(
|
||||
" WHERE gid = %s and reason in(%s,%s) and time>=%s and time <=%s AND info != '' ", groupId,
|
||||
ConsumeCode.HP_XIPAI_PUMP, ConsumeCode.HP_PARTNER_XIPAI_REWARD_BACK,
|
||||
DateUtils.getBeginDay() , DateUtils.getEndDay());
|
||||
String xipaisql = String.format("SELECT ifnull(sum(hp),0) as hp FROM group_hp_log %s ", xipaiwhere_sql);
|
||||
ITArray xipaiArray = DataBase.use().executeQueryByTArray(xipaisql);
|
||||
|
||||
if (xipaiArray.size() == 0) {
|
||||
// 获得赠送
|
||||
todayReward = pump;
|
||||
} else {
|
||||
ITObject xipaiData = xipaiArray.getTObject(0);
|
||||
// 获得赠送
|
||||
todayReward = pump - xipaiData.getDouble("hp");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
if (gb.owner == tagId) {
|
||||
String rewardsql = String.format(
|
||||
" SELECT -sum(win_score+round_reward) reward FROM `team_round_stat_day` WHERE stat_day >= %s AND stat_day < %s and uid!=%s and parent_uid=%s group by stat_day order by stat_day desc",
|
||||
DateUtils.getBeginDay() - 3600 * 48, DateUtils.getEndDay(), gb.owner, gb.owner);
|
||||
|
||||
// log.info("rewardsql:" + rewardsql);
|
||||
log.info("rewardsql:" + rewardsql+"---todayReward:"+todayReward);
|
||||
ITArray rewardArray = DataBase.use().executeQueryByTArray(rewardsql);
|
||||
if (rewardArray.size() != 0) {
|
||||
ITObject rewardData = rewardArray.getTObject(0);
|
||||
|
||||
day_rewad = (rewardData.getDouble("reward").longValue());
|
||||
if (day_rewad < todayReward) {
|
||||
day_rewad = todayReward.longValue();
|
||||
}
|
||||
}
|
||||
if (rewardArray.size() > 1) {
|
||||
ITObject rewardData = rewardArray.getTObject(1);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,165 @@
|
|||
package com.mjlogin.util.sms;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.mjlogin.service.AccountService;
|
||||
import com.taurus.core.util.Logger;
|
||||
|
||||
public class WeChatOpenIdValidator {
|
||||
private static Logger logger = Logger.getLogger(WeChatOpenIdValidator.class);
|
||||
public static void main(String[] args) {
|
||||
WeChatOpenIdValidator w = new WeChatOpenIdValidator();
|
||||
String appid="wx512208d074b2ac34";
|
||||
String appsecret="605ab6f94702a28d225ac344f8054571";
|
||||
String token = w.getAccessToken(appid, appsecret);
|
||||
System.out.println("token:"+token);
|
||||
String openId="oLpNT2Y6oVRZq3Pv1kwemiVwRxJE";
|
||||
boolean verifyOpenId = w.verifyAppIdAndOpenId(appid, appsecret, openId);
|
||||
System.out.println("verifyOpenId:"+verifyOpenId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 通过前端传来的 code 获取 openid 和 session_key
|
||||
* @param code 前端 wx.login 获取的临时凭证
|
||||
* @return 用户信息(openid, session_key等)
|
||||
*/
|
||||
public static JSONObject getUserInfoByOpenId(String access_token,String openid) {
|
||||
// 1. 构建请求 URL
|
||||
String url = String.format(
|
||||
"https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s",
|
||||
access_token, openid
|
||||
);
|
||||
logger.info("获取用户详情的url:"+url);
|
||||
|
||||
// 2. 发送 HTTP GET 请求
|
||||
String result = AccountService.request(url);
|
||||
JSONObject json = JSONObject.parseObject(result);
|
||||
|
||||
// 3. 检查错误码
|
||||
Integer errcode = json.getInteger("errcode");
|
||||
if (errcode != null && errcode != 0) {
|
||||
// 处理错误
|
||||
String errmsg = json.getString("errmsg");
|
||||
throw new RuntimeException("获取 用户详情 失败: errcode=" + errcode + ", errmsg=" + errmsg);
|
||||
}
|
||||
|
||||
// 4. 返回成功结果
|
||||
// String openid = json.getString("openid");
|
||||
// String sessionKey = json.getString("session_key");
|
||||
// String unionid = json.getString("unionid");
|
||||
logger.info("json:"+json);
|
||||
return json;
|
||||
}
|
||||
/**
|
||||
* 通过前端传来的 code 获取 openid 和 session_key
|
||||
* @param code 前端 wx.login 获取的临时凭证
|
||||
* @return 用户信息(openid, session_key等)
|
||||
*/
|
||||
public static JSONObject getOpenIdByCode(String code,String appid,String secret) {
|
||||
// 1. 构建请求 URL
|
||||
String url = String.format(
|
||||
"https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code",
|
||||
appid, secret, code
|
||||
);
|
||||
logger.info("获取openid的url:"+url);
|
||||
|
||||
// 2. 发送 HTTP GET 请求
|
||||
String result = AccountService.request(url);
|
||||
JSONObject json = JSONObject.parseObject(result);
|
||||
|
||||
// 3. 检查错误码
|
||||
Integer errcode = json.getInteger("errcode");
|
||||
if (errcode != null && errcode != 0) {
|
||||
// 处理错误
|
||||
String errmsg = json.getString("errmsg");
|
||||
throw new RuntimeException("获取 openid 失败: errcode=" + errcode + ", errmsg=" + errmsg);
|
||||
}
|
||||
|
||||
// 4. 返回成功结果
|
||||
// String openid = json.getString("openid");
|
||||
// String accessToken = json.getString("access_token");
|
||||
logger.info("json:"+json);
|
||||
return json;
|
||||
}
|
||||
/**
|
||||
* 2. 获取 Access Token
|
||||
* @param appid 公众号 AppID
|
||||
* @param appsecret 公众号 AppSecret
|
||||
* @return access_token 字符串,失败返回 null
|
||||
*/
|
||||
public String getAccessToken(String appid, String appsecret) {
|
||||
String url = String.format(
|
||||
"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s"
|
||||
+ "",
|
||||
appid, appsecret
|
||||
);
|
||||
System.out.println("url:"+url);
|
||||
try {
|
||||
String result = AccountService.request(url);
|
||||
if (result == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
JSONObject json = JSONObject.parseObject(result);
|
||||
String accessToken = json.getString("access_token");
|
||||
Integer errcode = json.getInteger("errcode");
|
||||
|
||||
if (errcode != null && errcode != 0) {
|
||||
logger.error("获取 access_token 失败, errcode: {}, errmsg: {}", errcode, json.getString("errmsg"));
|
||||
return null;
|
||||
}
|
||||
|
||||
logger.info("获取 access_token 成功: {}", accessToken);
|
||||
return accessToken;
|
||||
} catch (Exception e) {
|
||||
logger.error("获取 access_token 异常", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 5. 验证 AppID 和 OpenID 是否匹配
|
||||
* @param appid 公众号 AppID
|
||||
* @param appsecret 公众号 AppSecret
|
||||
* @param openid 待验证的 openid
|
||||
* @return true-匹配, false-不匹配
|
||||
*/
|
||||
public boolean verifyAppIdAndOpenId(String appid, String appsecret, String openid) {
|
||||
// 先获取 access_token
|
||||
String accessToken = getAccessToken(appid, appsecret);
|
||||
if (accessToken == null) {
|
||||
logger.error("获取 access_token 失败,AppID 可能无效");
|
||||
return false;
|
||||
}
|
||||
|
||||
// 用 access_token 和 openid 获取用户信息
|
||||
String url = String.format(
|
||||
"https://api.weixin.qq.com/sns/userinfo/info?access_token=%s&openid=%s&lang=zh_CN",
|
||||
accessToken, openid
|
||||
);
|
||||
|
||||
try {
|
||||
String result = AccountService.request(url);
|
||||
if (result == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
JSONObject json = JSONObject.parseObject(result);
|
||||
Integer errcode = json.getInteger("errcode");
|
||||
System.out.println("result:"+result);
|
||||
if (errcode == null) {
|
||||
// 成功获取用户信息,说明匹配
|
||||
logger.info("AppID 和 OpenID 匹配,用户昵称: {}", json.getString("nickname"));
|
||||
return true;
|
||||
} else if (errcode == 40003) {
|
||||
logger.warn("AppID 和 OpenID 不匹配, errcode: 40003");
|
||||
return false;
|
||||
} else {
|
||||
logger.warn("验证失败, errcode: {}, errmsg: {}", errcode, json.getString("errmsg"));
|
||||
return false;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("验证 AppID 和 OpenID 异常", e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue