邀请码注册ip限制
This commit is contained in:
@@ -430,7 +430,7 @@ public enum BusiStatus {
|
||||
**/
|
||||
INVITE_CODE_INVALID(211184, "邀請碼不存在"),
|
||||
INVITE_CODE_DEVICE_DUPLICATED(211185, "該設備已填寫過邀請碼"),
|
||||
INVITE_CODE_IP_DUPLICATED(211185, "該設備已填寫過邀請碼"),
|
||||
INVITE_CODE_IP_DUPLICATED(211185, "設備地址已填寫過邀請碼"),
|
||||
TIME_OUT_TO_REFILL_INVITE_CODE(211186, "超出不填時間,無法補填邀請碼"),
|
||||
|
||||
/**
|
||||
@@ -839,9 +839,9 @@ public enum BusiStatus {
|
||||
|
||||
INVITE_TIME_OUT(500, "邀请过期啦!"),
|
||||
|
||||
AT_LEAST_ONE_CARD(5210 , " Please select at least one tarot card "),
|
||||
CHARGE_PROD_NOT_ALLOWED(5211 , " The product has been taken down and cannot be recharged "),
|
||||
TAROT_CHARGE_LIMIT(5212 , " Today, Lucky Tarot recharge consumption has reached its limit "),
|
||||
AT_LEAST_ONE_CARD(5210, " Please select at least one tarot card "),
|
||||
CHARGE_PROD_NOT_ALLOWED(5211, " The product has been taken down and cannot be recharged "),
|
||||
TAROT_CHARGE_LIMIT(5212, " Today, Lucky Tarot recharge consumption has reached its limit "),
|
||||
|
||||
PARTITION_ERROR(500, "暂不可用"),
|
||||
PARTITION_ERROR_INTO_ROOM(500, "因區域不同,你無法進入該房間"),
|
||||
|
@@ -253,6 +253,7 @@ public enum I18nAlertEnum {
|
||||
GUILD_APPLY_REJECT("很抱歉,您的公会申请未能通过审核,请联系官方客服了解更多。"),
|
||||
GUILD_APPLY_PASS("恭喜!您的公会申请已成功通过审核。页面变为我的公会页面"),
|
||||
BE_INVITE_REWARD_MSG("恭喜!您收到了一份奖励!"),
|
||||
INVITE_COINS_REWARD_MSG("你已经成功领取邀请活动的充值奖励了。"),
|
||||
;
|
||||
|
||||
private final String defaultStr;
|
||||
|
@@ -41,6 +41,7 @@ public class InviteFissionActConfig {
|
||||
|
||||
private LevelRewardConfig getLevel(List<LevelRewardConfig> levelList, long diamond) {
|
||||
for (LevelRewardConfig level : levelList) {
|
||||
|
||||
long left = null != level.getLeftDiamond() ? level.getLeftDiamond() : 0L;
|
||||
long right = null != level.getRightDiamond() ? level.getRightDiamond() : Long.MAX_VALUE;
|
||||
if (diamond >= left && diamond < right) {
|
||||
|
@@ -1,22 +1,30 @@
|
||||
package com.accompany.business.service.invite;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.accompany.business.model.UserInviteCode;
|
||||
import com.accompany.business.model.UserInviteFissionRewardRecord;
|
||||
import com.accompany.business.mybatismapper.UserInviteFissionRewardRecordMapper;
|
||||
import com.accompany.business.service.BaseSendService;
|
||||
import com.accompany.business.service.purse.UserPurseService;
|
||||
import com.accompany.business.service.record.BillRecordService;
|
||||
import com.accompany.business.vo.invite.UserInviteProfitVo;
|
||||
import com.accompany.common.constant.Constant;
|
||||
import com.accompany.common.push.MarkdownMessage;
|
||||
import com.accompany.common.redis.RedisKey;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.common.utils.EnvComponent;
|
||||
import com.accompany.core.base.UidContextHolder;
|
||||
import com.accompany.core.enumeration.BillObjTypeEnum;
|
||||
import com.accompany.core.enumeration.I18nAlertEnum;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.accompany.core.exception.AdminServiceException;
|
||||
import com.accompany.core.exception.ServiceException;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.accompany.core.service.message.MessageRobotPushService;
|
||||
import com.accompany.core.service.user.UsersBaseService;
|
||||
import com.accompany.core.util.I18NMessageSourceUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator;
|
||||
@@ -55,6 +63,15 @@ public class UserInviteService {
|
||||
private UserPurseService userPurseService;
|
||||
@Autowired
|
||||
private BillRecordService billRecordService;
|
||||
@Autowired
|
||||
private BaseSendService baseSendService;
|
||||
@Autowired
|
||||
private EnvComponent envComponent;
|
||||
@Autowired
|
||||
private MessageRobotPushService messageRobotPushService;
|
||||
|
||||
public static final String COIN_ROBOT_ENV = "2ba42959-22b6-4031-a6f5-24c9e8c6b6d7";
|
||||
public static final String COIN_ROBOT_DEV = "f8bf7e8b-6af1-4bd0-8b5b-999a14c75d41";
|
||||
|
||||
public UserInviteProfitVo getUserProfit() {
|
||||
UserInviteProfitVo profit = new UserInviteProfitVo();
|
||||
@@ -144,6 +161,8 @@ public class UserInviteService {
|
||||
Double amount = Double.valueOf(totalProfit);
|
||||
userPurseService.addDiamond(uid, amount, BillObjTypeEnum.INVITE_FISSION_BEINVITE_REAWARD, (userPurse ->
|
||||
billRecordService.insertGeneralBillRecord(uid, uid, null, recordIdStr, BillObjTypeEnum.INVITE_RECHARGE_RECEIVE_REAWARD, amount, userPurse)));
|
||||
|
||||
baseSendService.sendSystemMsg(uid.toString(), I18NMessageSourceUtil.getMessage(I18nAlertEnum.INVITE_COINS_REWARD_MSG, new Object[]{}, uid));
|
||||
} catch (InterruptedException e) {
|
||||
log.error("UserInviteService.receive,uid={},e={}", uid, e.getMessage(),e);
|
||||
throw new ServiceException(BusiStatus.SERVERBUSY);
|
||||
@@ -154,5 +173,24 @@ public class UserInviteService {
|
||||
}
|
||||
return BusiResult.success();
|
||||
}
|
||||
|
||||
//
|
||||
// private void sendCoinRecRobot(Date startDate, Date endDate) {
|
||||
// String key;
|
||||
// if (envComponent.getDevOrNativeEnv()) {
|
||||
// key = COIN_ROBOT_DEV;
|
||||
// } else {
|
||||
// key = COIN_ROBOT_ENV;
|
||||
// }
|
||||
// PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
|
||||
// String title = " WEB-API代理充值(" + partitionEnum.getDesc() + "区)";
|
||||
// MarkdownMessage msg = new MarkdownMessage();
|
||||
// for (PartitionEnum value : PartitionEnum.values()) {
|
||||
// msg.add(MarkdownMessage.getHeaderText(3, title));
|
||||
// msg.add(MarkdownMessage.getReferenceText("充值用户ID: " + erbanNo));
|
||||
// msg.add(MarkdownMessage.getReferenceText("充值使用的代理ID: " + agentErbanNo));
|
||||
// msg.add(MarkdownMessage.getReferenceText("充值coins: " + coins));
|
||||
// msg.add(MarkdownMessage.getReferenceText("充值时间(GMT+8): " + DateUtil.formatDateTime(new Date())));
|
||||
// }
|
||||
// messageRobotPushService.pushMessageByKey(key, msg, false);
|
||||
// }
|
||||
}
|
||||
|
@@ -6,6 +6,7 @@ import com.accompany.business.model.RoomInviteCode;
|
||||
import com.accompany.business.model.UserInviteCode;
|
||||
import com.accompany.business.mybatismapper.UserInviteCodeMapper;
|
||||
import com.accompany.business.service.invite.UserInviteCodeService;
|
||||
import com.accompany.business.service.invite.UserInviteFissionRecordService;
|
||||
import com.accompany.business.service.room.RoomInviteCodeService;
|
||||
import com.accompany.business.service.room.RoomService;
|
||||
import com.accompany.business.vo.RoomVo;
|
||||
@@ -55,6 +56,8 @@ public class InviteCodeService extends BaseService {
|
||||
private RoomService roomService;
|
||||
@Autowired
|
||||
private AccountMapper accountMapper;
|
||||
@Autowired
|
||||
private UserInviteFissionRecordService recordService;
|
||||
|
||||
|
||||
public Object getInviteCodeList(Long uid, DeviceInfo deviceInfo) {
|
||||
@@ -123,9 +126,8 @@ public class InviteCodeService extends BaseService {
|
||||
} catch (Exception e) {
|
||||
return BusiStatus.INVITE_CODE_INVALID;
|
||||
}
|
||||
Integer registerIps = accountMapper.selectByRegisterIp(ipAddress);
|
||||
// 检查ip是否绑定过邀请码
|
||||
if (registerIps > 0) {
|
||||
if (recordService.hasRepeatIp(ipAddress)) {
|
||||
return BusiStatus.INVITE_CODE_IP_DUPLICATED;
|
||||
}
|
||||
return null;
|
||||
|
@@ -73,6 +73,7 @@ public class UsersV2Controller extends BaseController {
|
||||
userParam.setInviteCode(userParam.getInviteCode().toUpperCase());
|
||||
}
|
||||
if (isNewUser(usersInfo) && !StringUtils.isEmpty(userParam.getInviteCode())) {
|
||||
|
||||
if (!StringUtils.isEmpty(deviceInfo.getDeviceId())) {
|
||||
BusiStatus check = inviteCodeService.checkInviteCode(userParam.getInviteCode(), deviceInfo.getDeviceId());
|
||||
if (check != null) {
|
||||
@@ -81,7 +82,10 @@ public class UsersV2Controller extends BaseController {
|
||||
}
|
||||
String realIpAddress = IPUtils.getRealIpAddress(request);
|
||||
if (org.apache.commons.lang.StringUtils.isNotEmpty(realIpAddress)) {
|
||||
inviteCodeService.checkInviteCodeByIp(userParam.getInviteCode(), realIpAddress);
|
||||
BusiStatus check = inviteCodeService.checkInviteCodeByIp(userParam.getInviteCode(), realIpAddress);
|
||||
if (check != null) {
|
||||
return new BusiResult(check);
|
||||
}
|
||||
}
|
||||
Long inviteUid = inviteCodeService.getUidByInviteCode(userParam.getInviteCode());
|
||||
userParam.setInviteUid(inviteUid);
|
||||
|
Reference in New Issue
Block a user