From c33c9c03bb90e49ad12fd237058c877e87e96ca4 Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Mon, 24 Apr 2023 00:17:41 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java | 5 src/main/java/cc/mrbird/febs/common/enumerates/GoodsToLevelEnums.java | 32 ++++ src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java | 40 ----- src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java | 3 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 47 ++++++ src/main/resources/mapper/modules/MallMemberMapper.xml | 11 + src/main/java/cc/mrbird/febs/common/enumerates/MemberLevelEnum.java | 8 src/main/java/cc/mrbird/febs/common/enumerates/MemberLevelTagDicEnums.java | 43 ++++++ src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java | 4 /dev/null | 39 ----- src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java | 5 src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java | 6 src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html | 8 + src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 101 -------------- src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 25 +-- src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html | 9 + 16 files changed, 179 insertions(+), 207 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/GoodsToLevelEnums.java b/src/main/java/cc/mrbird/febs/common/enumerates/GoodsToLevelEnums.java new file mode 100644 index 0000000..9510572 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/common/enumerates/GoodsToLevelEnums.java @@ -0,0 +1,32 @@ +package cc.mrbird.febs.common.enumerates; + +import lombok.Getter; + +@Getter +public enum GoodsToLevelEnums { + /** + * 套餐对应级别 + */ + VIP(1, "FIRST_LEVEL"), + VVIP(2, "FIFTH_LEVEL"), + VVVIP(3, "SIX_LEVEL"); + + private Integer accountLevel; + + private String level; + + GoodsToLevelEnums(Integer accountLevel, String level) { + this.accountLevel = accountLevel; + this.level = level; + } + + public static String getLevelByAccountLevel(Integer accountLevel) { + for (GoodsToLevelEnums value : values()) { + if (value.accountLevel.equals(accountLevel)) { + return value.level; + } + } + + return null; + } +} diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/MemberLevelEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/MemberLevelEnum.java index b6a3c3b..00cdf65 100644 --- a/src/main/java/cc/mrbird/febs/common/enumerates/MemberLevelEnum.java +++ b/src/main/java/cc/mrbird/febs/common/enumerates/MemberLevelEnum.java @@ -7,13 +7,13 @@ @Getter public enum MemberLevelEnum { - SEVEN_LEVEL("SEVEN_LEVEL",6), - SIX_LEVEL("SIX_LEVEL",5), - FIFTH_LEVEL("FIFTH_LEVEL",4), + SIX_LEVEL("SIX_LEVEL",999), + FIFTH_LEVEL("FIFTH_LEVEL",998), FOUR_LEVEL("FOUR_LEVEL",3), THIRD_LEVEL("THIRD_LEVEL",2), SECOND_LEVEL("SECOND_LEVEL",1), - ZERO_LEVEL("ZERO_LEVEL",0); + FIRST_LEVEL("FIRST_LEVEL",0), + ZERO_LEVEL("ZERO_LEVEL",-1); private String type; diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/MemberLevelEnums.java b/src/main/java/cc/mrbird/febs/common/enumerates/MemberLevelEnums.java deleted file mode 100644 index 7787495..0000000 --- a/src/main/java/cc/mrbird/febs/common/enumerates/MemberLevelEnums.java +++ /dev/null @@ -1,39 +0,0 @@ -package cc.mrbird.febs.common.enumerates; - -import lombok.Getter; - -@Getter -public enum MemberLevelEnums { - - ZERO_LEVEL_Y(1, "ZERO_LEVEL", "素人") - ,ZERO_LEVEL_N(2, "ZERO_LEVEL", "素人") - ,FIRST_LEVEL_Y(1, "FIRST_LEVEL", "玉郎") - ,FIRST_LEVEL_N(2, "FIRST_LEVEL", "丽人") - ,SECOND_LEVEL_Y(1, "SECOND_LEVEL", "才子") - ,SECOND_LEVEL_N(2, "SECOND_LEVEL", "佳人") - ,THIRD_LEVEL_Y(1, "THIRD_LEVEL", "蓝颜") - ,THIRD_LEVEL_N(2, "THIRD_LEVEL", "红颜") - ,FOUR_LEVEL_Y(1, "FOUR_LEVEL", "娇娘") - ,FOUR_LEVEL_N(2, "FOUR_LEVEL", "贤仕"); - - private int male; - - private String code; - - private String desc; - MemberLevelEnums(int male, String code, String desc) { - this.male = male; - this.code = code; - this.desc = desc; - } - - public static String getDesc(int male, String code) { - for (MemberLevelEnums value : values()) { - if (value.male == male && value.code.equals(code)) { - return value.desc; - } - } - - return null; - } -} diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/MemberLevelTagDicEnums.java b/src/main/java/cc/mrbird/febs/common/enumerates/MemberLevelTagDicEnums.java new file mode 100644 index 0000000..438ec68 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/common/enumerates/MemberLevelTagDicEnums.java @@ -0,0 +1,43 @@ +package cc.mrbird.febs.common.enumerates; + +import lombok.Getter; + +@Getter +public enum MemberLevelTagDicEnums { + + ZERO_LEVEL_Y(1, "ZERO_LEVEL", "迷梦素人") + ,ZERO_LEVEL_N(2, "ZERO_LEVEL", "迷梦素人") + ,FIRST_LEVEL_Y(1, "FIRST_LEVEL", "觉醒须眉") + ,FIRST_LEVEL_N(2, "FIRST_LEVEL", "觉醒丽人") + ,SECOND_LEVEL_Y(1, "SECOND_LEVEL", "先知蓝颜") + ,SECOND_LEVEL_N(2, "SECOND_LEVEL", "先知红颜") + ,THIRD_LEVEL_Y(1, "THIRD_LEVEL", "追影才子") + ,THIRD_LEVEL_N(2, "THIRD_LEVEL", "追影佳人") + ,FOUR_LEVEL_Y(1, "FOUR_LEVEL", "赋权玉郎") + ,FOUR_LEVEL_N(2, "FOUR_LEVEL", "赋权娇娘") + ,FIFTH_LEVEL_Y(1, "FIFTH_LEVEL", "位极尊上") + ,FIFTH_LEVEL_N(2, "FIFTH_LEVEL", "位极女卿") + ,SIX_LEVEL_Y(1, "SIX_LEVEL", "权倾圣主") + ,SIX_LEVEL_N(2, "SIX_LEVEL", "权倾女帝"); + + private int male; + + private String code; + + private String desc; + MemberLevelTagDicEnums(int male, String code, String desc) { + this.male = male; + this.code = code; + this.desc = desc; + } + + public static String getDesc(int male, String code) { + for (MemberLevelTagDicEnums value : values()) { + if (value.male == male && value.code.equals(code)) { + return value.desc; + } + } + + return null; + } +} diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java index e1f082d..086a957 100644 --- a/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java +++ b/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java @@ -37,6 +37,11 @@ PARTNER_BONUS(5), /** + * 获得静态积分 + */ + BUY_TC(6), + + /** * 提现 */ WITHDRAWAL(8), diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java b/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java index f27a864..bd436a2 100644 --- a/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java +++ b/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java @@ -139,4 +139,9 @@ * 普通商品分红百分比 */ private Integer normalPer; + + /** + * 普通商品分红百分比 + */ + private Integer normalBonus; } diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java index 520ab99..d8d9f71 100644 --- a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java +++ b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java @@ -43,10 +43,14 @@ */ private Integer hasSettle; + private BigDecimal staticMulti; + /** * 1-会员 2-代理 3-股东 */ private Integer goodsLevel; private Integer normalPer; + + private Integer normalBonus; } diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java index 71b3e40..02842dc 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java +++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java @@ -107,4 +107,7 @@ List<MallMember> selectMemberAfterLevelList(String level); List<MallMember> selectAgentOrPartnetMemberList(@Param("memberLevel") Integer memberLevel); + + + Integer selectOwnCntByInviteIdAndAccountLevel(@Param("inviteId") String inviteId, @Param("accountLevel") Integer accountLevel); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java index 4eb10b4..76d9a66 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java @@ -57,6 +57,9 @@ public void autoUpAgentLevel(Long memberId) { log.info("###代理自动升级###"); MallMember member = memberMapper.selectById(memberId); + if (MemberLevelEnum.ZERO_LEVEL.getType().equals(member.getLevel())) { + return; + } MatrixTree tree = MatrixTree.getInstance(); MemberNode node = tree.getNode(member.getInviteId()); @@ -187,104 +190,6 @@ @Override @Transactional(rollbackFor = Exception.class) public void perkMoneyConsumer(long orderId) { - long start = System.currentTimeMillis(); - MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId); - if(ObjectUtil.isEmpty(mallOrderInfo)){ - return; - } -// if(2 != mallOrderInfo.getStatus()){ -// return; -// } - /** - * 分享补贴 直推消费额10% - */ - BigDecimal amount = mallOrderInfo.getAmount().subtract(mallOrderInfo.getScoreAmount()); - - Long memberId = mallOrderInfo.getMemberId(); - MallMember mallMember = memberMapper.selectById(memberId); - //补贴对象 直属上级 - MallMember mallMemberUp = memberMapper.selectInfoByInviteId(mallMember.getReferrerId()); - if(ObjectUtil.isNotEmpty(mallMemberUp)){ - //分享补贴百分比 - DataDictionaryCustom sharePerkDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.SHARE_PERK.getType(), - DataDictionaryEnum.SHARE_PERK.getCode()); - String sharePerk = ObjectUtil.isEmpty(sharePerkDic.getValue()) ? "0" : sharePerkDic.getValue(); - BigDecimal sharePerkPercent = new BigDecimal(sharePerk).abs().divide(new BigDecimal(100)); - //分享补贴金额 - BigDecimal sharePerkAmount = amount.multiply(sharePerkPercent).setScale(2, BigDecimal.ROUND_DOWN);; - - //所有合伙人补贴至消费礼包的三倍额度需要复购一次。 - MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberUp.getId()); - BigDecimal totalScore = mallMemberWallet.getTotalScore(); - if(totalScore.compareTo(sharePerkAmount) < 0){ - sharePerkAmount = totalScore; - } - if(BigDecimal.ZERO.compareTo(sharePerkAmount) < 0){ - //减少补贴额度 - mallMemberWalletMapper.reduceTotalScoreById(sharePerkAmount, mallMemberWallet.getId()); - - reduceStar(mallMemberUp.getId(),sharePerkAmount); - - mallMemberWalletMapper.addBalanceById(sharePerkAmount, mallMemberWallet.getId()); - -// mallMoneyFlowService.addMoneyFlow( -// mallMemberUp.getId(), -// sharePerkAmount, -// MoneyFlowTypeEnum.DYNAMIC_ACHIEVE.getValue(), -// mallOrderInfo.getOrderNo(), -// "直推奖", -// "补贴额度:"+totalScore, -// memberId, -// 2, -// FlowTypeEnum.BALANCE.getValue(), -// 1); - } - } - /** - * 星级奖励 - * 从最顶级级别的合伙人开始补贴 - * 补贴完,把已经补贴的合伙人加入下一个级别 - */ - List<MallMember> sevenLevelRecord = getStarRecord(null, MemberLevelEnum.SEVEN_LEVEL.name(), amount, mallOrderInfo.getOrderNo(), memberId,MoneyFlowTypeEnum.STAR_PERK_SEVEN.getValue()); - List<MallMember> sixLevelRecord = getStarRecord(sevenLevelRecord, MemberLevelEnum.SIX_LEVEL.name(), amount, mallOrderInfo.getOrderNo(), memberId,MoneyFlowTypeEnum.STAR_PERK_SIX.getValue()); - List<MallMember> fifthLevelRecord = getStarRecord(sixLevelRecord, MemberLevelEnum.FIFTH_LEVEL.name(), amount, mallOrderInfo.getOrderNo(), memberId,MoneyFlowTypeEnum.STAR_PERK_FIVE.getValue()); - List<MallMember> fourLevelRecord = getStarRecord(fifthLevelRecord, MemberLevelEnum.FOUR_LEVEL.name(), amount, mallOrderInfo.getOrderNo(), memberId,MoneyFlowTypeEnum.STAR_PERK_FOUR.getValue()); - List<MallMember> thirdLevelRecord = getStarRecord(fourLevelRecord, MemberLevelEnum.THIRD_LEVEL.name(), amount, mallOrderInfo.getOrderNo(), memberId,MoneyFlowTypeEnum.STAR_PERK_THREE.getValue()); - List<MallMember> secondLevelRecord = getStarRecord(thirdLevelRecord, MemberLevelEnum.SECOND_LEVEL.name(), amount, mallOrderInfo.getOrderNo(), memberId,MoneyFlowTypeEnum.STAR_PERK_TWO.getValue()); - - /** - * 团队补贴 - */ - //团队补贴百分比 - DataDictionaryCustom teamPerkDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.TEAM_PERK.getType(), - DataDictionaryEnum.TEAM_PERK.getCode()); - String teamPerk = ObjectUtil.isEmpty(teamPerkDic.getValue()) ? "0" : teamPerkDic.getValue(); - BigDecimal teamPerkPercent = new BigDecimal(teamPerk).abs().divide(new BigDecimal(100)); - //分享补贴金额 - BigDecimal teamPerkAmount = amount.multiply(teamPerkPercent); - //团队补贴对象 - List<MallMember> mallMemberTeamPerkList = mallMemberTeamPerkListInfo(memberId); - if(CollUtil.isNotEmpty(mallMemberTeamPerkList)){ - List<Long> mallMemberTeamPerkIds = mallMemberTeamPerkList.stream().map(MallMember::getId).collect(Collectors.toList()); - List<MallMemberWallet> mallMemberWallets = mallMemberWalletMapper.selectMemberWalletsByIds(mallMemberTeamPerkIds); - flowTotalScoreBalance( - mallMemberWallets, - teamPerkAmount, - MoneyFlowTypeEnum.TEAM_PERK.getValue(), - mallOrderInfo.getOrderNo(), - memberId - ); - } - - long end = System.currentTimeMillis(); - log.info("============订单:{},时间:{}===========",mallOrderInfo.getOrderNo(),(end - start)/1000); - MallMqRecord mallMqRecord = mallMqRecordMapper.selectByOrderId(orderId); - if(ObjectUtil.isNotEmpty(mallMqRecord)){ - mallMqRecord.setState(1); - mallMqRecordMapper.updateById(mallMqRecord); - } } /** diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java index 4e8478d..ca6b5b4 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java @@ -192,6 +192,11 @@ orderItem.setSkuImage(sku.getSkuImage()); orderItem.setIsNormal(mallGoods.getIsNormal()); orderItem.setCostPrice(sku.getCostPrice()); + orderItem.setStaticMulti(mallGoods.getStaticMulti()); + orderItem.setGoodsLevel(mallGoods.getGoodsLevel()); + orderItem.setNormalBonus(mallGoods.getNormalBonus()); + orderItem.setNormalPer(mallGoods.getNormalPer()); + total = total.add(amount); carriage = carriage.add(mallGoods.getCarriage()); @@ -332,12 +337,43 @@ orderInfo.setPayResult("1"); this.baseMapper.updateById(orderInfo); - commonService.changeWallet(orderInfo.getId(), FlowTypeEnum.BALANCE.getValue()); + // 商品级别 会员/代理/股东 + int goodsLevel = 0; + BigDecimal score = BigDecimal.ZERO; + for (MallOrderItem item : orderInfo.getItems()) { + // 计算静态倍数 + if(item.getIsNormal() == 2) { + score = score.add(item.getPrice().multiply(item.getStaticMulti())); + } - //发送直推返利消息 - agentProducer.sendOrderReturn(orderInfo.getId()); + // 判断会员层级 + if (item.getIsNormal() == 2 && goodsLevel > item.getGoodsLevel()) { + goodsLevel = item.getGoodsLevel(); + } + } + + // 根据用户购买的商品设置其等级 + member.setLevel(GoodsToLevelEnums.getLevelByAccountLevel(goodsLevel)); + member.setAccountLevel(goodsLevel); + this.memberMapper.updateById(member); + + memberWalletService.add(score, member.getId(), "score"); + + if (orderInfo.getScoreCnt().compareTo(BigDecimal.ZERO) > 0) { + int reduce = memberWalletService.reduce(orderInfo.getScoreCnt(), member.getId(), "prizeScore"); + if (reduce == 2) { + throw new FebsException("积分不足"); + } + mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getScoreCnt().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue()); + } + + mallMoneyFlowService.addMoneyFlow(member.getId(), score, MoneyFlowTypeEnum.BUY_TC.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue()); + mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); + //发送代理自动升级消息 agentProducer.sendAutoLevelUpMsg(member.getId()); + //发送直推返利消息 + agentProducer.sendOrderReturn(orderInfo.getId()); break; case "4": if (orderInfo.getOrderType() != 2) { @@ -403,7 +439,6 @@ map.put("orderNo", orderInfo.getOrderNo()); map.put("orderId", orderInfo.getId()); map.put("rcResult", rcResult); - return map; } @@ -440,6 +475,8 @@ if (reduce == 2) { throw new FebsException("余额不足"); } + + return orderInfo.getOrderNo(); } @@ -705,7 +742,7 @@ 获取单个商品的折扣积分数量 = 现价 * 数量 * 折扣现金比例 */ - BigDecimal scorePercent = new BigDecimal(mallGoods.getScorePercent()).multiply(new BigDecimal(0.01)); + BigDecimal scorePercent = new BigDecimal(mallGoods.getScorePercent()).multiply(BigDecimal.valueOf(0.01)); BigDecimal amount = sku.getPresentPrice().multiply(BigDecimal.valueOf(item.getCnt())).multiply(scorePercent); total = total.add(amount); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java index 9290189..5dc6e1f 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java @@ -1,28 +1,14 @@ package cc.mrbird.febs.mall.service.impl; import cc.mrbird.febs.common.enumerates.*; -import cc.mrbird.febs.common.utils.AppContants; -import cc.mrbird.febs.common.utils.MallUtils; import cc.mrbird.febs.common.utils.RedisUtils; -import cc.mrbird.febs.mall.dto.ScorePoorDto; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.*; -import cc.mrbird.febs.mall.vo.AdminTeamEqualsPerkVo; import cc.mrbird.febs.rabbit.producter.AgentProducer; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.date.DateField; -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUnit; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import io.swagger.models.auth.In; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -31,7 +17,6 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; -import java.util.stream.Collectors; /** * @author wzy @@ -80,16 +65,20 @@ log.info("积分订单无返利"); return; } - BigDecimal indirectPer = BigDecimal.valueOf(0.2); + BigDecimal indirectPer = BigDecimal.valueOf(0.25); BigDecimal indirectPer2 = BigDecimal.valueOf(0.15); MallMember member = mallMemberMapper.selectById(orderInfo.getMemberId()); // 父级会员 MallMember parentMember = mallMemberMapper.selectInfoByInviteId(member.getReferrerId()); + if (parentMember.getAccountLevel() == 0 || MemberLevelEnum.ZERO_LEVEL.getType().equals(parentMember.getLevel())) { + log.info("上级:{}未购买会员套餐,无返利", parentMember.getInviteId()); + return; + } // 父级会员直推人数 - Integer directCnt = mallMemberMapper.selectOwnCntByInviteId(parentMember.getInviteId()); + Integer directCnt = mallMemberMapper.selectOwnCntByInviteIdAndAccountLevel(parentMember.getInviteId(), parentMember.getAccountLevel()); List<DataDictionaryCustom> dataDices = dataDictionaryCustomMapper.selectDicByType(DataDictionaryEnum.DIRECT_BONUS_SETTING.getType()); directCnt = directCnt == null ? 0 : directCnt; @@ -358,7 +347,7 @@ // 全网分红 BigDecimal waitToBonus = systemSetting.getAllBonus().multiply(new BigDecimal(dic.getValue()).divide(hundred, 2, RoundingMode.HALF_UP)); - List<MallMember> mallMembers = mallMemberMapper.selectMemberAfterLevelList(MemberLevelEnums.FIRST_LEVEL_Y.getCode()); + List<MallMember> mallMembers = mallMemberMapper.selectMemberAfterLevelList(MemberLevelEnum.FIRST_LEVEL.getType()); if (CollUtil.isEmpty(mallMembers) || waitToBonus.compareTo(BigDecimal.ZERO) < 1) { log.info("待分红金额不足或会员不足"); return; diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java index a0f4f34..926df29 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java @@ -1,8 +1,6 @@ package cc.mrbird.febs.mall.vo; -import cc.mrbird.febs.common.enumerates.AgentLevelEnum; -import cc.mrbird.febs.common.enumerates.MemberLevelEnums; -import cn.hutool.core.util.StrUtil; +import cc.mrbird.febs.common.enumerates.MemberLevelTagDicEnums; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -101,7 +99,7 @@ public String getLevelName() { if (sex != null) { - return MemberLevelEnums.getDesc(sex, level); + return MemberLevelTagDicEnums.getDesc(sex, level); } return null; diff --git a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java index 58968cb..dfd775b 100644 --- a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java +++ b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java @@ -19,7 +19,7 @@ * @date 2021-09-25 **/ @Slf4j -@Component +//@Component public class AgentConsumer { @Autowired @@ -28,11 +28,6 @@ private IAgentService agentService; @Autowired private IMemberProfitService memberProfitService; - - @RabbitListener(queues = QueueConstants.QUEUE_DEFAULT) - public void agentReturn(Message message, Channel channel) { - log.info("消费者:{}", new String(message.getBody())); - } @RabbitListener(queues = "meye_queue_order_delay") public void orderCancelDelay(String id) { @@ -53,16 +48,6 @@ } } - @RabbitListener(queues = QueueConstants.AGENT_RETURN_MONEY) - public void agentReturnMoney(String orderId) { - log.info("收到返利消息:{}", orderId); - try { - agentService.returnMoneyToAgent(Long.parseLong(orderId)); - } catch (Exception e) { - log.error("返利异常", e); - } - } - @RabbitListener(queues = QueueConstants.ORDER_RETURN_MONEY) public void orderReturnMoney(String orderId) { log.info("收到订单返利消息:{}", orderId); @@ -73,27 +58,4 @@ } } - @RabbitListener(queues = QueueConstants.PERK_MONEY) - public void perkMoneyConsumer(String id) { - log.info("收到补贴消息:{}", id); - try { - agentService.perkMoneyConsumer(Long.parseLong(id)); - } catch (Exception e) { - log.error("用户补贴异常", e); - // todo 更新表 - - } - } - - @RabbitListener(queues = QueueConstants.FORCE_VOUCHER_SALE) - public void forceVoucherSaleConsumer(String price) { - log.info("收到强制卖出消息,价格:{}",price); - try { -// memberProfitService.selaHalfVoucher(prisce); - } catch (Exception e) { - log.error("强制卖出异常", e); - // todo 更新表 - - } - } } diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml index e068693..2f24008 100644 --- a/src/main/resources/mapper/modules/MallMemberMapper.xml +++ b/src/main/resources/mapper/modules/MallMemberMapper.xml @@ -491,4 +491,15 @@ a.account_level = 3 </if> </select> + + <select id="selectOwnCntByInviteIdAndAccountLevel" resultType="cc.mrbird.febs.mall.entity.MallMember"> + select IFNULL(count(1),0) from mall_member x where x.referrer_id=#{inviteId} + and x.level != 'ZERO_LEVEL' + <if test="accountLevel == 2"> + and x.account_level = 2 + </if> + <if test="accountLevel == 3"> + and x.accountLevel in (2, 3) + </if> + </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html index 4af0ce8..f706102 100644 --- a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html +++ b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html @@ -131,6 +131,14 @@ <div class="layui-form-mid layui-word-aux">普通商品直推奖励</div> </div> </div> + <div class="layui-form-item normal-set"> + <label class="layui-form-label febs-form-item-require">分红比例(%)</label> + <div class="layui-input-block"> + <input type="text" name="normalPer" placeholder="请输入分红比例" + autoComplete="off" class="layui-input"> + <div class="layui-form-mid layui-word-aux">普通商品分红,输入0则不分红。</div> + </div> + </div> </div> <div class="layui-tab-item"> diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html b/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html index 4a7761c..56e93c3 100644 --- a/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html +++ b/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html @@ -141,6 +141,15 @@ <div class="layui-form-mid layui-word-aux">普通商品直推奖励</div> </div> </div> + + <div class="layui-form-item normal-set"> + <label class="layui-form-label febs-form-item-require">分红比例(%)</label> + <div class="layui-input-block"> + <input type="text" name="normalPer" placeholder="请输入分红比例" + autoComplete="off" class="layui-input"> + <div class="layui-form-mid layui-word-aux">普通商品分红,输入0则不分红。</div> + </div> + </div> </div> <div class="layui-tab-item"> -- Gitblit v1.9.1