From 9a904f0c0c5e3832e073e425dc15ac2aaf4c852e Mon Sep 17 00:00:00 2001 From: dute7liang <383200134@qq.com> Date: Sun, 21 Jan 2024 21:14:00 +0800 Subject: [PATCH] init --- .../java/com/ruoyi/cai/domain/ConsumeLog.java | 17 +++++++++++++ .../ruoyi/cai/mapper/UserInviteMapper.java | 2 ++ .../com/ruoyi/cai/mq/handle/RankIHandle.java | 2 ++ .../com/ruoyi/cai/mq/handle/dto/RankDTO.java | 1 + .../com/ruoyi/cai/service/AccountService.java | 2 +- .../ruoyi/cai/service/UserInviteService.java | 2 ++ .../cai/service/impl/AccountServiceImpl.java | 12 +++++++--- .../service/impl/ConsumeLogServiceImpl.java | 7 +++--- .../service/impl/UserInviteServiceImpl.java | 24 +++++++++++++++++++ .../resources/mapper/cai/UserInviteMapper.xml | 5 ++++ 10 files changed, 66 insertions(+), 8 deletions(-) diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/ConsumeLog.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/ConsumeLog.java index 8aee6094..0ee0818a 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/ConsumeLog.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/ConsumeLog.java @@ -3,6 +3,7 @@ package com.ruoyi.cai.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.ruoyi.cai.enums.ConsumeLogType; import lombok.Data; import java.io.Serializable; @@ -175,4 +176,20 @@ public class ConsumeLog implements Serializable { } } + /** + * 获取创建受益人的源头 + * @return + */ + public Long getCreateInviteUserId(){ + if(ConsumeLogType.GIFT.getCode().equals(this.getType())){ + return this.targetUserId; + }else if(ConsumeLogType.GUARD.getCode().equals(this.getType())){ + return this.targetUserId; + }else if(ConsumeLogType.VIDEO.getCode().equals(this.getType())){ + return this.targetUserId; + }else if(ConsumeLogType.RECHARGE.getCode().equals(this.getType())){ + return this.sourceUserId; + } + return null; + } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/UserInviteMapper.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/UserInviteMapper.java index 78dae41b..cef4b4df 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/UserInviteMapper.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/UserInviteMapper.java @@ -21,4 +21,6 @@ public interface UserInviteMapper extends BaseMapper { Page inviteUserPage(@Param("build") Page build, @Param("inviteId") Long inviteId); Page pageAdmin(@Param("build") Page build, @Param("bo") UserInviteAdminVo bo); + + void incsCoinTotal(@Param("id") Long id, @Param("amount") Long amount); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/mq/handle/RankIHandle.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/mq/handle/RankIHandle.java index cac46311..8045d4e1 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/mq/handle/RankIHandle.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/mq/handle/RankIHandle.java @@ -4,10 +4,12 @@ import com.alibaba.fastjson2.JSON; import com.ruoyi.cai.mq.dto.CommonConsumerEnum; import com.ruoyi.cai.mq.handle.dto.RankDTO; import com.ruoyi.cai.rank.RankManager; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component +@Slf4j public class RankIHandle implements IHandle { @Autowired diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/mq/handle/dto/RankDTO.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/mq/handle/dto/RankDTO.java index f08d843e..683b80ad 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/mq/handle/dto/RankDTO.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/mq/handle/dto/RankDTO.java @@ -14,6 +14,7 @@ public class RankDTO extends CommonDTO { * 2-邀请榜 */ private Integer rankType; + // 受益人ID private Long userId; private Long price; private LocalDateTime happenTime; diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/AccountService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/AccountService.java index 49f00b75..87816e8b 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/AccountService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/AccountService.java @@ -38,7 +38,7 @@ public interface AccountService extends IService { Page pageAdmin(PageQuery pageQuery, AccountAdminVo bo); - void distribution(ConsumeLog consumeLog,Long userId, Long amount, AccountChangeCodeEnum accountChangeEnum); + boolean distribution(ConsumeLog consumeLog, Long userId, Long amount, AccountChangeCodeEnum accountChangeEnum); WithholdingFeeUserResp withholdingFeeUser(Long userId, Long price); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UserInviteService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UserInviteService.java index 9795b0a2..de6203f8 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UserInviteService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UserInviteService.java @@ -23,4 +23,6 @@ public interface UserInviteService extends IService { Page inviteUserPage(PageQuery pageQuery, Long inviteId); Page pageAdmin(PageQuery pageQuery, UserInviteAdminVo bo); + + void incsCoinAsync(Long geUserId, Long seUserId, Long amount); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AccountServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AccountServiceImpl.java index f24f2591..57ad7de1 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AccountServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AccountServiceImpl.java @@ -234,32 +234,38 @@ public class AccountServiceImpl extends ServiceImpl impl /** * 分销 + * + * @return */ @Override - public void distribution(ConsumeLog consumeLog,Long userId, Long amount, AccountChangeCodeEnum accountChangeEnum) { + public boolean distribution(ConsumeLog consumeLog, Long userId, Long amount, AccountChangeCodeEnum accountChangeEnum) { User user = userService.getById(userId); Account account = this.getByUserId(userId); if(account == null || user == null){ log.error("分销失败,无效账号 userId={}",userId); - return; + return false; } if(amount == null || accountChangeEnum == null){ log.error("分销失败,参数错误 amount={},accountChangeEnum={}",amount,accountChangeEnum); - return; + return false; } baseMapper.incsCoin(userId, amount); if(ConsumeLogType.GIFT.getCode().equals(consumeLog.getType())){ // 礼物 Gift gift = giftService.getById(consumeLog.getBusinessParam()); accountChangeLogService.saveLogNoAdmin(userId,user.getUsercode(), accountChangeEnum,amount,consumeLog.getTraceId(), consumeLog.getTargetUserId(),gift); + return true; }else if(ConsumeLogType.VIDEO.getCode().equals(consumeLog.getType()) || ConsumeLogType.GUARD.getCode().equals(consumeLog.getType())){ // 视频和守护 accountChangeLogService.saveLogNoAdmin(userId,user.getUsercode(), accountChangeEnum,amount,consumeLog.getTraceId(), consumeLog.getTargetUserId()); + return true; }else if(ConsumeLogType.RECHARGE.getCode().equals(consumeLog.getType())){ // 充值 accountChangeLogService.saveLogNoAdmin(userId,user.getUsercode(), accountChangeEnum,amount,consumeLog.getTraceId(), consumeLog.getSourceUserId()); + return true; } + return false; } /** diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/ConsumeLogServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/ConsumeLogServiceImpl.java index 928345a2..5a34735b 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/ConsumeLogServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/ConsumeLogServiceImpl.java @@ -100,18 +100,17 @@ public class ConsumeLogServiceImpl extends ServiceImpl 0){ AccountChangeCodeEnum changeCodeEnum = ConsumeLogType.getOneInviteChange(code); - accountService.distribution(consumer,consumer.getOneUserId(),consumer.getOneAmount(),changeCodeEnum); - oneInviteSend = true; + oneInviteSend = accountService.distribution(consumer, consumer.getOneUserId(), consumer.getOneAmount(), changeCodeEnum); } // 计算工会 if(consumer.getUnionUserId() != null && BooleanUtils.isTrue(consumer.getUnionJoin()) && consumer.getUnionAmount() > 0){ AccountChangeCodeEnum changeCodeEnum = ConsumeLogType.getUnionChange(code); - accountService.distribution(consumer,consumer.getUnionUserId(),consumer.getUnionAmount(),changeCodeEnum); - oneUnionSend = true; + oneUnionSend = accountService.distribution(consumer, consumer.getUnionUserId(), consumer.getUnionAmount(), changeCodeEnum); } if(oneInviteSend){ rankManager.sendInviteRankMq(consumer.getOneUserId(),consumer.getOneAmount(),consumer.getTraceId()); + userInviteService.incsCoinAsync(consumer.getOneUserId(),consumer.getCreateInviteUserId(),consumer.getOneAmount()); } if(oneUnionSend){ rankManager.sendInviteRankMq(consumer.getUnionUserId(),consumer.getUnionAmount(),consumer.getTraceId()); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserInviteServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserInviteServiceImpl.java index 874b54e1..3ccd80a5 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserInviteServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserInviteServiceImpl.java @@ -9,6 +9,7 @@ import com.ruoyi.cai.dto.admin.vo.UserInviteAdminVo; import com.ruoyi.cai.dto.app.dto.InviteCountDTO; import com.ruoyi.cai.dto.app.vo.invite.InviteHomeVo; import com.ruoyi.cai.dto.app.vo.user.UserListVo; +import com.ruoyi.cai.executor.ExecutorConstant; import com.ruoyi.cai.mapper.UserInviteMapper; import com.ruoyi.cai.service.UserInviteService; import com.ruoyi.common.core.domain.PageQuery; @@ -64,4 +65,27 @@ public class UserInviteServiceImpl extends ServiceImpl { + if(geUserId == null || seUserId == null || amount == null || amount <= 0){ + log.error("执行收益的递增失败【参数异常】"); + return; + } + UserInvite one = this.getOne(Wrappers.lambdaQuery(UserInvite.class) + .eq(UserInvite::getInviteId, geUserId) + .eq(UserInvite::getUserId, seUserId)); + if(one == null){ + log.error("执行收益的递增失败"); + return; + } + baseMapper.incsCoinTotal(one.getId(),amount); + }); + } + } diff --git a/ruoyi-cai/src/main/resources/mapper/cai/UserInviteMapper.xml b/ruoyi-cai/src/main/resources/mapper/cai/UserInviteMapper.xml index bcc69990..e0ec5a2d 100644 --- a/ruoyi-cai/src/main/resources/mapper/cai/UserInviteMapper.xml +++ b/ruoyi-cai/src/main/resources/mapper/cai/UserInviteMapper.xml @@ -10,6 +10,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + update cai_user_invite + set reward_coin_total = reward_coin_total + #{amount} + where id = #{id} +