nnnn
This commit is contained in:
@@ -159,10 +159,6 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
||||
if(!flag){
|
||||
throw new ServiceException("扣费失败,请重新购买");
|
||||
}
|
||||
// 开始处理 接收方的费用
|
||||
BigDecimal imRate = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.IM_ANCHOR_INCOME_RATE);
|
||||
Long anchorAmount = CaiNumUtil.coin(price,imRate);
|
||||
baseMapper.incsIncomeCoin(toUser.getId(),anchorAmount);
|
||||
Long tractId = IdManager.nextId();
|
||||
// 记录消费方的流水
|
||||
if(coin != 0){
|
||||
@@ -171,15 +167,22 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
||||
if(incomeCoin != 0){
|
||||
accountChangeLogService.saveLogNoAdmin(fromUser.getId(),fromUser.getUsercode(), AccountChangeCodeEnum.IM_INCOME_COIN_OUT,incomeCoin,tractId,toUser.getId());
|
||||
}
|
||||
// 记录接收方的流水
|
||||
if(anchorAmount != 0){
|
||||
try {
|
||||
// 记录主播的消费记录
|
||||
accountTotalManager.incsMessageIncomeCoin(toUser.getId(), anchorAmount,tractId);
|
||||
}catch (Exception e){
|
||||
log.error("主播消费记录失败",e);
|
||||
// 开始处理 接收方的费用
|
||||
boolean openImInvite = userService.getOpenImInvite(fromUser);
|
||||
if(openImInvite){
|
||||
BigDecimal imRate = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.IM_ANCHOR_INCOME_RATE);
|
||||
Long anchorAmount = CaiNumUtil.coin(price,imRate);
|
||||
baseMapper.incsIncomeCoin(toUser.getId(),anchorAmount);
|
||||
// 记录接收方的流水
|
||||
if(anchorAmount != 0){
|
||||
try {
|
||||
// 统计主播的收入
|
||||
accountTotalManager.incsMessageIncomeCoin(toUser.getId(), anchorAmount,tractId);
|
||||
}catch (Exception e){
|
||||
log.error("统计主播的收入失败",e);
|
||||
}
|
||||
accountChangeLogService.saveLogNoAdmin(toUser.getId(),toUser.getUsercode(), AccountChangeCodeEnum.IM_INCOME,anchorAmount,tractId,fromUser.getId());
|
||||
}
|
||||
accountChangeLogService.saveLogNoAdmin(toUser.getId(),toUser.getUsercode(), AccountChangeCodeEnum.IM_INCOME,anchorAmount,tractId,fromUser.getId());
|
||||
}
|
||||
return tractId;
|
||||
}
|
||||
|
||||
@@ -103,6 +103,7 @@ public class BatchAddUserServiceImpl extends ServiceImpl<BatchAddUserMapper,Batc
|
||||
.set(User::getBirthday, LocalDate.now().plusYears(-18))
|
||||
.set(User::getAge, 18)
|
||||
.set(User::getGender, batchAddUser.getGender())
|
||||
.set(User::getOpenImInvite, 1)
|
||||
.set(User::getCityId, "140882")
|
||||
.set(User::getCity, "河津"));
|
||||
if(GenderEnum.WOMEN.getCode().equals(batchAddUser.getGender())){
|
||||
|
||||
@@ -14,7 +14,9 @@ import com.ruoyi.cai.dto.app.query.index.UserQuery;
|
||||
import com.ruoyi.cai.dto.app.vo.user.*;
|
||||
import com.ruoyi.cai.dto.commom.user.MinUser;
|
||||
import com.ruoyi.cai.enums.GenderEnum;
|
||||
import com.ruoyi.cai.enums.SystemConfigEnum;
|
||||
import com.ruoyi.cai.im.ImManager;
|
||||
import com.ruoyi.cai.manager.SystemConfigManager;
|
||||
import com.ruoyi.cai.mapper.AccountDeleteMapper;
|
||||
import com.ruoyi.cai.mapper.UserMapper;
|
||||
import com.ruoyi.cai.notice.YunxinHttpService;
|
||||
@@ -27,6 +29,7 @@ import com.ruoyi.common.helper.LoginHelper;
|
||||
import com.ruoyi.common.utils.BeanConvertUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.redisson.api.RAtomicLong;
|
||||
import org.redisson.api.RBucket;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -92,6 +95,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
||||
private YunxinHttpService yunxinHttpService;
|
||||
@Autowired
|
||||
private RedissonClient redissonClient;
|
||||
@Autowired
|
||||
private SystemConfigManager systemConfigManager;
|
||||
|
||||
@Override
|
||||
public User getByUsername(String username) {
|
||||
@@ -501,4 +506,26 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
||||
imManager.updateImInfo(user.getId(),user.getAvatar(),user.getNickname(),user.getGender());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getOpenImInvite(User fromUser){
|
||||
boolean openImInviteSecurity = systemConfigManager.getSystemConfigOfBool(SystemConfigEnum.OPEN_IM_INVITE_SECURITY);
|
||||
if(!openImInviteSecurity){
|
||||
return true;
|
||||
}
|
||||
if(fromUser.getOpenImInvite() == null || fromUser.getOpenImInvite() == 1){
|
||||
return true;
|
||||
}
|
||||
String key = String.format("cai:openImInvite:%s", fromUser.getId());
|
||||
RAtomicLong imCount = redissonClient.getAtomicLong(key);
|
||||
long imC = imCount.addAndGet(1);
|
||||
if(imC > 8){
|
||||
this.update(Wrappers.lambdaUpdate(User.class)
|
||||
.eq(User::getId, fromUser.getId())
|
||||
.set(User::getOpenImInvite, 1));
|
||||
log.info("IM盗刷防护生效: 用户={},Im聊天已经达到8次,开启IM分销", fromUser.getUsercode());
|
||||
return true;
|
||||
}
|
||||
log.info("IM盗刷防护生效: 用户={},Im聊天已到{}次,不开启IM分销", fromUser.getUsercode(), imC);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user