From edad546c4b037984a542affc9ce0ca66f183d45c Mon Sep 17 00:00:00 2001 From: dute7liang <383200134@qq.com> Date: Sat, 27 Jan 2024 20:59:24 +0800 Subject: [PATCH] init --- .../com/ruoyi/cai/auth/CaiLoginManager.java | 14 ++++++ .../java/com/ruoyi/cai/domain/IgnoreData.java | 43 +++++++++++++++++++ .../commom/ignoredata/InviteIgnoreData.java | 9 ++++ .../ruoyi/cai/enums/IgnoreDataTypeEnum.java | 16 +++++++ .../com/ruoyi/cai/enums/SystemConfigEnum.java | 9 +++- .../Rate1000IntegerSystemConfigCheck.java | 23 ++++++++++ .../Rate100IntegerSystemConfigCheck.java | 22 ++++++++++ .../ruoyi/cai/mapper/IgnoreDataMapper.java | 14 ++++++ .../ruoyi/cai/service/IgnoreDataService.java | 16 +++++++ .../service/impl/IgnoreDataServiceImpl.java | 33 ++++++++++++++ .../cai/service/impl/UnionServiceImpl.java | 19 +++++++- .../java/com/ruoyi/cai/util/RandomSjUtil.java | 16 +++++++ .../resources/mapper/cai/IgnoreDataMapper.xml | 16 +++++++ 13 files changed, 247 insertions(+), 3 deletions(-) create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/domain/IgnoreData.java create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/dto/commom/ignoredata/InviteIgnoreData.java create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/enums/IgnoreDataTypeEnum.java create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systemconfig/Rate1000IntegerSystemConfigCheck.java create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systemconfig/Rate100IntegerSystemConfigCheck.java create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/IgnoreDataMapper.java create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/service/IgnoreDataService.java create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/IgnoreDataServiceImpl.java create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/util/RandomSjUtil.java create mode 100644 ruoyi-cai/src/main/resources/mapper/cai/IgnoreDataMapper.xml diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/auth/CaiLoginManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/auth/CaiLoginManager.java index 4aa3a180..4fc9978a 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/auth/CaiLoginManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/auth/CaiLoginManager.java @@ -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(); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/IgnoreData.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/IgnoreData.java new file mode 100644 index 00000000..75db83ee --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/IgnoreData.java @@ -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; + +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/commom/ignoredata/InviteIgnoreData.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/commom/ignoredata/InviteIgnoreData.java new file mode 100644 index 00000000..b6df8765 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/commom/ignoredata/InviteIgnoreData.java @@ -0,0 +1,9 @@ +package com.ruoyi.cai.dto.commom.ignoredata; + +import lombok.Data; + +@Data +public class InviteIgnoreData { + private Long userId; + private Long inviteId; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/IgnoreDataTypeEnum.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/IgnoreDataTypeEnum.java new file mode 100644 index 00000000..cf2fe14a --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/IgnoreDataTypeEnum.java @@ -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; + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/SystemConfigEnum.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/SystemConfigEnum.java index c1d2f06d..f31f9f68 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/SystemConfigEnum.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/SystemConfigEnum.java @@ -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()), diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systemconfig/Rate1000IntegerSystemConfigCheck.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systemconfig/Rate1000IntegerSystemConfigCheck.java new file mode 100644 index 00000000..c729b195 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systemconfig/Rate1000IntegerSystemConfigCheck.java @@ -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(); + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systemconfig/Rate100IntegerSystemConfigCheck.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systemconfig/Rate100IntegerSystemConfigCheck.java new file mode 100644 index 00000000..49f1a549 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systemconfig/Rate100IntegerSystemConfigCheck.java @@ -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(); + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/IgnoreDataMapper.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/IgnoreDataMapper.java new file mode 100644 index 00000000..af440c16 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/IgnoreDataMapper.java @@ -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 { + +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/IgnoreDataService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/IgnoreDataService.java new file mode 100644 index 00000000..1a1f5238 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/IgnoreDataService.java @@ -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 { + + void saveIgnoreData(IgnoreDataTypeEnum type, Long userId, Object text); +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/IgnoreDataServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/IgnoreDataServiceImpl.java new file mode 100644 index 00000000..ded8414b --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/IgnoreDataServiceImpl.java @@ -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 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("忽略数据存储异常"); + } + } + +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UnionServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UnionServiceImpl.java index 73196cfd..dbb94467 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UnionServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UnionServiceImpl.java @@ -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 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 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; } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/util/RandomSjUtil.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/util/RandomSjUtil.java new file mode 100644 index 00000000..164d2e23 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/util/RandomSjUtil.java @@ -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; + } + +} diff --git a/ruoyi-cai/src/main/resources/mapper/cai/IgnoreDataMapper.xml b/ruoyi-cai/src/main/resources/mapper/cai/IgnoreDataMapper.xml new file mode 100644 index 00000000..d7cba8fa --- /dev/null +++ b/ruoyi-cai/src/main/resources/mapper/cai/IgnoreDataMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + +