master
李泽帆 2026-06-30 01:07:31 +08:00
parent e0626aa1d8
commit f7c733c0cb
4 changed files with 234 additions and 34 deletions

View File

@ -478,7 +478,8 @@ public class Room implements Runnable {
// 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 = 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"; String black_rate = "0";
if (StringUtil.isNotEmpty(black) && black.equals("0")) { if (StringUtil.isNotEmpty(black) && black.equals("0")) {
@ -524,11 +525,9 @@ public class Room implements Runnable {
} else { } else {
String StrWhiteValue = Redis.use("group1_db2").hget("genusersvalue", String StrWhiteValue = Redis.use("group1_db2").hget("genusersvalue",
Integer.toString(player.playerid)); Integer.toString(player.playerid));
String miling = Redis.use("group1_db2").hget("genusersmiling", String miling = Redis.use("group1_db2").hget("genusersmiling", Integer.toString(player.playerid));
Integer.toString(player.playerid));
String loginGods = Redis.use("group1_db2").hget("genuserslogin", String loginGods = Redis.use("group1_db2").hget("genuserslogin", Integer.toString(player.playerid));
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@"); String mdmiling = Utils.getMD5Hash(player.playerid + "changhongd2026@");
@ -596,13 +595,13 @@ public class Room implements Runnable {
*/ */
public void endGame() { public void endGame() {
boolean total = totalType(); boolean total = totalType();
// if (!total) if (!total)
// total = entrustTotal(); total = entrustTotal();
// Global.logger.info("total: " + total); Global.logger.info("total: " + total);
CountXiPai(); CountXiPai();
CheckModifyHp(); CheckModifyHp();
boolean settlement = redisUpdateHp();// 结算分数 boolean settlement = redisUpdateHp();// 结算分数
// total = total || settlement; total = total || settlement;
// Global.logger.info("total: " + total); // Global.logger.info("total: " + total);
this.saveRecRound(); this.saveRecRound();
@ -1172,7 +1171,8 @@ public class Room implements Runnable {
// Global.logger.info("输家:" + player.hp.total_hp); // Global.logger.info("输家:" + player.hp.total_hp);
player.practicalHpPumpReal = roomMoney; player.practicalHpPumpReal = roomMoney;
player.practicalHpPump = 1; 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 { } else {
@ -1188,8 +1188,7 @@ public class Room implements Runnable {
hpPump || player.practicalHpPump > 0, true, 0, false, null, 0); hpPump || player.practicalHpPump > 0, true, 0, false, null, 0);
} else { } else {
curHp = Global.eventCtr.redisFag(player, 0, false, false, 0, curHp = Global.eventCtr.redisFag(player, 0, false, false, 0, false, null, 0);
false, null,0);
} }
} else { } else {
// if (this.basePump != 0) { // if (this.basePump != 0) {
@ -1197,9 +1196,8 @@ public class Room implements Runnable {
// player.practicalHpPumpReal = 0; // player.practicalHpPumpReal = 0;
// } // }
if (hpPump) { if (hpPump) {
curHp = Global.eventCtr.redisFag(player, player.hp.total_hp, hpPump || player.practicalHpPump > 0, curHp = Global.eventCtr.redisFag(player, player.hp.total_hp,
false, 0, false, null,0); hpPump || player.practicalHpPump > 0, false, 0, false, null, 0);
} }
} }
@ -1634,7 +1632,6 @@ public class Room implements Runnable {
hp = (int) player.room.upper_limit_hp; hp = (int) player.room.upper_limit_hp;
} }
if (hp == 0) if (hp == 0)
return; return;
@ -1852,6 +1849,7 @@ public class Room implements Runnable {
if (this.isEntrust()) { if (this.isEntrust()) {
for (Entry<Integer, Player> entry : this.playerMapById.entrySet()) { for (Entry<Integer, Player> entry : this.playerMapById.entrySet()) {
Player player = entry.getValue(); Player player = entry.getValue();
Global.logger.info("当前托管局数:" + this.entrusResultType);
if (player.isEntrust() && player.manualAutoCard == false) { if (player.isEntrust() && player.manualAutoCard == false) {
if (this.entrusResultType == Constant.ENTRUST_CURREN_RESULT) { if (this.entrusResultType == Constant.ENTRUST_CURREN_RESULT) {
entrustTotal = true; entrustTotal = true;

View File

@ -1954,10 +1954,14 @@ public class GroupLogService {
ITObject rewardData = rewardArray.getTObject(0); ITObject rewardData = rewardArray.getTObject(0);
// log.info("reward:" + rewardData.getDouble("reward") ); // 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); resData.putInt("gains", hp_cost - hp_reward);
// 总数 // 总数
resData.putInt("count", count); resData.putInt("count", count);

View File

@ -1577,19 +1577,52 @@ public class GroupService {
// } finally { // } finally {
// jedis9.close(); // jedis9.close();
// } // }
Double todayReward = 0.0;
GroupBean gb = GroupCache.getGroup(groupId); 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) { if (gb.owner == tagId) {
String rewardsql = String.format( 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", " 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); 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); ITArray rewardArray = DataBase.use().executeQueryByTArray(rewardsql);
if (rewardArray.size() != 0) { if (rewardArray.size() != 0) {
ITObject rewardData = rewardArray.getTObject(0); ITObject rewardData = rewardArray.getTObject(0);
day_rewad = (rewardData.getDouble("reward").longValue()); day_rewad = (rewardData.getDouble("reward").longValue());
if (day_rewad < todayReward) {
day_rewad = todayReward.longValue();
}
} }
if (rewardArray.size() > 1) { if (rewardArray.size() > 1) {
ITObject rewardData = rewardArray.getTObject(1); ITObject rewardData = rewardArray.getTObject(1);

View File

@ -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;
}
}
}