init
This commit is contained in:
@@ -7,12 +7,15 @@ import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.ruoyi.cai.domain.*;
|
||||
import com.ruoyi.cai.dto.commom.ignoredata.InviteIgnoreData;
|
||||
import com.ruoyi.cai.enums.CodeEnum;
|
||||
import com.ruoyi.cai.enums.GenderEnum;
|
||||
import com.ruoyi.cai.enums.IgnoreDataTypeEnum;
|
||||
import com.ruoyi.cai.enums.SystemConfigEnum;
|
||||
import com.ruoyi.cai.executor.ExecutorConstant;
|
||||
import com.ruoyi.cai.manager.*;
|
||||
import com.ruoyi.cai.service.*;
|
||||
import com.ruoyi.cai.util.RandomSjUtil;
|
||||
import com.ruoyi.common.constant.Constants;
|
||||
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||
import com.ruoyi.common.enums.UserType;
|
||||
@@ -79,6 +82,8 @@ public class CaiLoginManager {
|
||||
private AwardManager awardManager;
|
||||
@Autowired
|
||||
private SmsVerifyService smsVerifyService;
|
||||
@Autowired
|
||||
private IgnoreDataService ignoreDataService;
|
||||
|
||||
public String login(String username,String password){
|
||||
User user = userService.getByUsername(username);
|
||||
@@ -154,6 +159,15 @@ public class CaiLoginManager {
|
||||
}
|
||||
lock.lock(5,TimeUnit.SECONDS);
|
||||
try {
|
||||
Integer inviteBindRate = systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.INVITE_BIND_RATE);
|
||||
boolean sj = RandomSjUtil.rateSj(inviteBindRate);
|
||||
if(!sj){
|
||||
InviteIgnoreData data = new InviteIgnoreData();
|
||||
data.setUserId(user.getId());
|
||||
data.setInviteId(inviteId);
|
||||
ignoreDataService.saveIgnoreData(IgnoreDataTypeEnum.INVITE,inviteUser.getId(),data);
|
||||
return;
|
||||
}
|
||||
UserInvite check = userInviteService.getByUserId(user.getId());
|
||||
if(check == null){
|
||||
UserInvite userInvite = new UserInvite();
|
||||
|
||||
43
ruoyi-cai/src/main/java/com/ruoyi/cai/domain/IgnoreData.java
Normal file
43
ruoyi-cai/src/main/java/com/ruoyi/cai/domain/IgnoreData.java
Normal file
@@ -0,0 +1,43 @@
|
||||
package com.ruoyi.cai.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 忽略数据对象 cai_ignore_data
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-01-27
|
||||
*/
|
||||
@Data
|
||||
@TableName("cai_ignore_data")
|
||||
public class IgnoreData implements Serializable {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
private Long id;
|
||||
/**
|
||||
* 遗漏类型 1-邀请
|
||||
*/
|
||||
private Integer type;
|
||||
/**
|
||||
* 遗漏用户
|
||||
*/
|
||||
private Long userId;
|
||||
/**
|
||||
* 数据
|
||||
*/
|
||||
private String text;
|
||||
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.ruoyi.cai.dto.commom.ignoredata;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class InviteIgnoreData {
|
||||
private Long userId;
|
||||
private Long inviteId;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.cai.enums;
|
||||
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public enum IgnoreDataTypeEnum {
|
||||
INVITE(1,"邀请");
|
||||
private final Integer code;
|
||||
private final String text;
|
||||
|
||||
IgnoreDataTypeEnum(Integer code, String text) {
|
||||
this.code = code;
|
||||
this.text = text;
|
||||
}
|
||||
}
|
||||
@@ -16,11 +16,15 @@ public enum SystemConfigEnum {
|
||||
RANK_LOVE_WEEK_AWARD("888,588,388,288,188,138,138,138,138,138,138,138", "魅力榜周榜奖励",SystemConfigGroupEnum.BUSINESS, new RankSystemConfigCheck()),
|
||||
RANK_INVITE_DAY_AWARD("138,108,88,58,38,28,28,28,28,28,28", "邀请榜日榜奖励",SystemConfigGroupEnum.BUSINESS,new RankSystemConfigCheck()),
|
||||
RANK_INVITE_WEEK_AWARD("888,588,388,288,188,138,138,138,138,138,138,138", "邀请榜周榜奖励",SystemConfigGroupEnum.BUSINESS,new RankSystemConfigCheck()),
|
||||
INVITE_BIND_RATE("1000", "邀请绑定成功率[0-1000]数字越大成功率越高",SystemConfigGroupEnum.BUSINESS, new Rate1000IntegerSystemConfigCheck()),
|
||||
// INVITE_GIFT_RATE("100", "礼物分销成功率",SystemConfigGroupEnum.BUSINESS, new RateIntegerSystemConfigCheck()),
|
||||
// INVITE_GUARD_RATE("100", "守护分销成功率",SystemConfigGroupEnum.BUSINESS, new RateIntegerSystemConfigCheck()),
|
||||
// INVITE_VIDEO_RATE("100", "视频分销成功率",SystemConfigGroupEnum.BUSINESS, new RateIntegerSystemConfigCheck()),
|
||||
REGISTER_AWARD("88", "注册奖励",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
|
||||
FAST_PAY_AWARD("300", "首充奖励",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
|
||||
GUARD_PRICE("1314", "守护价格",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
|
||||
WINDOW_GIFT_THRESHOLD("10", "礼物飘窗阈值(彩贝)",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
|
||||
WINDOW_RECHARGE_THRESHOLD("10", "充值飘窗阈值(充值金额)",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
|
||||
WINDOW_GIFT_THRESHOLD("10", "礼物飘窗阈值",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
|
||||
WINDOW_RECHARGE_THRESHOLD("10", "充值飘窗阈值",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
|
||||
DEFAULT_ANCHOR_PRICE("200","主播默认价格",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
|
||||
DEFAULT_ANCHOR_GUARD_PRICE("0.5","主播默认守护提成",SystemConfigGroupEnum.BUSINESS,new RateSystemConfigCheck()),
|
||||
DEFAULT_ANCHOR_GIFT_PRICE("0.5","主播默认礼物提成",SystemConfigGroupEnum.BUSINESS,new RateSystemConfigCheck()),
|
||||
@@ -30,6 +34,7 @@ public enum SystemConfigEnum {
|
||||
DEFAULT_GIFT_INCOME_RATE("0.07", "默认分销好友礼物提成",SystemConfigGroupEnum.BUSINESS,new RateSystemConfigCheck()),
|
||||
DEFAULT_GUARD_INCOME_RATE("0.07", "默认分销好友守护提成",SystemConfigGroupEnum.BUSINESS,new RateSystemConfigCheck()),
|
||||
DEFAULT_PAY_INCOME_RATE("0.07", "默认分销好友充值提成",SystemConfigGroupEnum.BUSINESS,new RateSystemConfigCheck()),
|
||||
@Deprecated
|
||||
DEFAULT_UNION_GIFT_INCOME_RATE("0.01", "默认工会礼物提成",SystemConfigGroupEnum.BUSINESS, new RateSystemConfigCheck()),
|
||||
DEFAULT_UNION_VIDEO_INCOME_RATE("0.01", "默认工会视频提成",SystemConfigGroupEnum.BUSINESS, new RateSystemConfigCheck()),
|
||||
DEFAULT_UNION_ONE_INCOME_RATE("0.07", "默认工会一级提成",SystemConfigGroupEnum.BUSINESS, new RateSystemConfigCheck()),
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.ruoyi.cai.enums.systemconfig;
|
||||
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
|
||||
public class Rate1000IntegerSystemConfigCheck implements ISystemConfigCheck{
|
||||
|
||||
@Override
|
||||
public SystemCheckResp check(String value) {
|
||||
if(StringUtils.isEmpty(value)){
|
||||
return SystemCheckResp.fail("该配置必填");
|
||||
}
|
||||
boolean b = NumberUtil.isInteger(value);
|
||||
if(!b){
|
||||
return SystemCheckResp.fail("请填写[0-1000]之间的整数");
|
||||
}
|
||||
int val = Integer.parseInt(value);
|
||||
if(val < 0 || val > 1000){
|
||||
return SystemCheckResp.fail("请填写[0-1000]之间的整数");
|
||||
}
|
||||
return SystemCheckResp.ok();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.ruoyi.cai.enums.systemconfig;
|
||||
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
|
||||
public class Rate100IntegerSystemConfigCheck implements ISystemConfigCheck{
|
||||
@Override
|
||||
public SystemCheckResp check(String value) {
|
||||
if(StringUtils.isEmpty(value)){
|
||||
return SystemCheckResp.fail("该配置必填");
|
||||
}
|
||||
boolean b = NumberUtil.isInteger(value);
|
||||
if(!b){
|
||||
return SystemCheckResp.fail("请填写[0-100]之间的整数");
|
||||
}
|
||||
int val = Integer.parseInt(value);
|
||||
if(val < 0 || val > 100){
|
||||
return SystemCheckResp.fail("请填写[0-100]之间的整数");
|
||||
}
|
||||
return SystemCheckResp.ok();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.ruoyi.cai.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.cai.domain.IgnoreData;
|
||||
|
||||
/**
|
||||
* 忽略数据Mapper接口
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-01-27
|
||||
*/
|
||||
public interface IgnoreDataMapper extends BaseMapper<IgnoreData> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.cai.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.cai.domain.IgnoreData;
|
||||
import com.ruoyi.cai.enums.IgnoreDataTypeEnum;
|
||||
|
||||
/**
|
||||
* 忽略数据Service接口
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-01-27
|
||||
*/
|
||||
public interface IgnoreDataService extends IService<IgnoreData> {
|
||||
|
||||
void saveIgnoreData(IgnoreDataTypeEnum type, Long userId, Object text);
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.ruoyi.cai.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cai.domain.IgnoreData;
|
||||
import com.ruoyi.cai.enums.IgnoreDataTypeEnum;
|
||||
import com.ruoyi.cai.mapper.IgnoreDataMapper;
|
||||
import com.ruoyi.cai.service.IgnoreDataService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 忽略数据Service业务层处理
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-01-27
|
||||
*/
|
||||
@Service
|
||||
public class IgnoreDataServiceImpl extends ServiceImpl<IgnoreDataMapper,IgnoreData> implements IgnoreDataService {
|
||||
|
||||
@Override
|
||||
public void saveIgnoreData(IgnoreDataTypeEnum type,Long userId, Object text){
|
||||
try {
|
||||
IgnoreData ignoreData = new IgnoreData();
|
||||
ignoreData.setType(type.getCode());
|
||||
ignoreData.setUserId(userId);
|
||||
ignoreData.setText(JSON.toJSONString(text));
|
||||
this.save(ignoreData);
|
||||
}catch (Exception e){
|
||||
log.error("忽略数据存储异常");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.ruoyi.cai.service.impl;
|
||||
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -10,6 +11,7 @@ import com.ruoyi.cai.dto.admin.vo.UnionAdminVo;
|
||||
import com.ruoyi.cai.enums.SystemConfigEnum;
|
||||
import com.ruoyi.cai.manager.SystemConfigManager;
|
||||
import com.ruoyi.cai.mapper.UnionMapper;
|
||||
import com.ruoyi.cai.mapper.UserInfoMapper;
|
||||
import com.ruoyi.cai.service.*;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
@@ -17,6 +19,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
@@ -91,7 +95,7 @@ public class UnionServiceImpl extends ServiceImpl<UnionMapper, Union> implements
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean saveUnion(String usercode) {
|
||||
public synchronized boolean saveUnion(String usercode) {
|
||||
User user = userService.getByUserCode(usercode);
|
||||
if(user == null){
|
||||
throw new ServiceException("用户不存在");
|
||||
@@ -107,6 +111,19 @@ public class UnionServiceImpl extends ServiceImpl<UnionMapper, Union> implements
|
||||
union.setName("工会"+user.getUsercode());
|
||||
union.setEnableRate(true);
|
||||
this.save(union);
|
||||
BigDecimal guardIncomeRate = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.DEFAULT_GUARD_INCOME_RATE);
|
||||
BigDecimal giftIncomeRate = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.DEFAULT_GIFT_INCOME_RATE);
|
||||
BigDecimal videoIncomeRate = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.DEFAULT_VIDEO_INCOME_RATE);
|
||||
BigDecimal unionOneIncomeRate = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.DEFAULT_UNION_ONE_INCOME_RATE);
|
||||
// 将会长的比例充值成最新的
|
||||
userInfoService.update(Wrappers.lambdaUpdate(UserInfo.class)
|
||||
.eq(UserInfo::getUserId,user.getId())
|
||||
.set(UserInfo::getGiftIncomeRate, NumberUtil.add(giftIncomeRate,unionOneIncomeRate))
|
||||
.set(UserInfo::getGuardIncomeRate, NumberUtil.add(guardIncomeRate,unionOneIncomeRate))
|
||||
.set(UserInfo::getVideoIncomeRate, NumberUtil.add(videoIncomeRate,unionOneIncomeRate)));
|
||||
return true;
|
||||
}
|
||||
|
||||
@Resource
|
||||
private UserInfoMapper userInfoMapper;
|
||||
}
|
||||
|
||||
16
ruoyi-cai/src/main/java/com/ruoyi/cai/util/RandomSjUtil.java
Normal file
16
ruoyi-cai/src/main/java/com/ruoyi/cai/util/RandomSjUtil.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.cai.util;
|
||||
|
||||
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
|
||||
public class RandomSjUtil {
|
||||
|
||||
public static boolean rateSj(Integer rate){
|
||||
if(rate == null || rate < 0 | rate > 1000){
|
||||
return true;
|
||||
}
|
||||
int random = RandomUtil.randomInt(1001);
|
||||
return rate > random;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user