From 3586418b13d20b4d2934bbb6777b5245eaec143a Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Tue, 25 Apr 2023 01:52:18 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/mall/entity/MallMember.java | 9 ++++ src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java | 2 src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java | 5 ++ src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 30 ++++++--------- src/main/resources/mapper/modules/MallMemberMapper.xml | 2 src/main/resources/templates/febs/views/modules/system/bonusSetting.html | 21 ++++++++++ src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 7 +++ src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html | 15 ++++++- 8 files changed, 66 insertions(+), 25 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java index 3e59707..79aa9b0 100644 --- a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java +++ b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java @@ -90,7 +90,10 @@ AGENT_ALL_BONUS("MEIYE_BONUS_TYPE", "AGENT_ALL_BONUS"), PARNER_ALL_BONUS("MEIYE_BONUS_TYPE", "PARNER_ALL_BONUS"), - AGENT_BONUS_RELEASE("MEIYE_BONUS_TYPE", "AGENT_BONUS_RELEASE"); + AGENT_BONUS_RELEASE("MEIYE_BONUS_TYPE", "AGENT_BONUS_RELEASE"), + RECOMMEND_BONUS("MEIYE_BONUS_TYPE", "RECOMMEND_BONUS"), + UNAGENT_TO_AGENT_PARENT("MEIYE_BONUS_TYPE", "UNAGENT_TO_AGENT_PARENT"), + UNAGENT_TO_AGENT("MEIYE_BONUS_TYPE", "UNAGENT_TO_AGENT"); private String type; private String code; diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java b/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java index 731c1a4..562f1fa 100644 --- a/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java +++ b/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java @@ -3,6 +3,7 @@ import cc.mrbird.febs.common.controller.BaseController; import cc.mrbird.febs.common.entity.BaseEntity; import cc.mrbird.febs.common.entity.BaseEntity; +import cc.mrbird.febs.common.enumerates.MemberLevelTagDicEnums; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -174,4 +175,12 @@ private Integer childNodeCnt; private String skin; + + public String getLevelName() { + if (sex != null) { + return MemberLevelTagDicEnums.getDesc(sex, level); + } + + return null; + } } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java index 517b3c8..3d62b09 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java @@ -642,7 +642,12 @@ @Override public List<SkinTypeVo> findSkinList() { MallMember loginUser = LoginUserUtil.getLoginUser(); - DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.SKIN_TYPE_LIST, loginUser.getLevel()); + String level = loginUser.getLevel(); + // 全网分红 -- 代理和股东当作是女王殿下级别 + if (MemberLevelEnum.getLevelCode(level) > MemberLevelEnum.FOUR_LEVEL.getCode()) { + level = MemberLevelEnum.FOUR_LEVEL.getType(); + } + DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.SKIN_TYPE_LIST, level); if (dic == null || StrUtil.isBlank(dic.getValue())) { throw new FebsException("请检查皮肤配置"); } 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 81dc8e9..55bb1e4 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 @@ -57,8 +57,6 @@ log.info("积分订单无返利"); return; } - BigDecimal indirectPer = BigDecimal.valueOf(0.25); - BigDecimal indirectPer2 = BigDecimal.valueOf(0.15); MallMember member = mallMemberMapper.selectById(orderInfo.getMemberId()); @@ -73,6 +71,12 @@ return; } + // 非代理推代理,非代理上级拿的收益比例 + DataDictionaryCustom indirectPerDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.UNAGENT_TO_AGENT_PARENT.getType(), DataDictionaryEnum.UNAGENT_TO_AGENT_PARENT.getCode()); + + // 非代理推代理,非代理的直推收益比例 + DataDictionaryCustom unAgentDirectDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.UNAGENT_TO_AGENT.getType(), DataDictionaryEnum.UNAGENT_TO_AGENT.getCode()); + // 父级会员直推人数 Integer directCnt = mallMemberMapper.selectOwnCntByInviteIdAndAccountLevel(parentMember.getInviteId(), parentMember.getAccountLevel()); List<DataDictionaryCustom> dataDices = dataDictionaryCustomMapper.selectDicByType(DataDictionaryEnum.DIRECT_BONUS_SETTING.getType()); @@ -83,6 +87,9 @@ if (CollUtil.isEmpty(items)) { return; } + + // 推荐奖比例 + DataDictionaryCustom indrectDicPropDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.RECOMMEND_BONUS.getType(), DataDictionaryEnum.RECOMMEND_BONUS.getCode()); for (MallOrderItem item : items) { // 减去成本后算收益 @@ -114,7 +121,7 @@ isSameLevel = 1; // 非代理推代理/非股东推股东 } else { - profitPer = BigDecimal.valueOf(10); + profitPer = new BigDecimal(unAgentDirectDic.getValue()); isSameLevel = 2; } } @@ -122,17 +129,6 @@ // 直推奖 BigDecimal profit = amount.multiply(profitPer.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP)); changeScoreAndCommission(parentMember.getId(), profit, MoneyFlowTypeEnum.DIRECT_BONUS.getValue(), orderInfo.getOrderNo()); - - // 代理推代理 -// if (isSameLevel == 1) { -// MallMember doubleParentMember = mallMemberMapper.selectInfoByInviteId(parentMember.getReferrerId()); -// if (doubleParentMember == null) { -// continue; -// } -// -// BigDecimal doubleParentProfit = profit.multiply(indirectPer); -// changeScoreAndCommission(doubleParentMember.getId(), doubleParentProfit, MoneyFlowTypeEnum.DIRECT_BONUS.getValue(), orderInfo.getOrderNo()); -// } // 非代理推代理 if (isSameLevel == 2) { @@ -150,7 +146,7 @@ break; } - BigDecimal doubleParentProfit = profit.multiply(indirectPer2); + BigDecimal doubleParentProfit = profit.multiply(new BigDecimal(indirectPerDic.getValue())); changeScoreAndCommission(mallMember.getId(), doubleParentProfit, MoneyFlowTypeEnum.DIRECT_BONUS.getValue(), orderInfo.getOrderNo()); } } @@ -173,8 +169,7 @@ continue; } - // 隔代比例 - BigDecimal indrectDicProp = new BigDecimal(20); + BigDecimal indrectDicProp = new BigDecimal(indrectDicPropDic.getValue()); // 隔代推荐奖 收益 direct = direct.multiply(indrectDicProp.divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP)); @@ -191,7 +186,6 @@ walletService.add(direct, parent.getId(), "commission"); moneyFlowService.addMoneyFlow(parent.getId(), direct, MoneyFlowTypeEnum.RECOMMEND_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.COMMISSION.getValue()); moneyFlowService.addMoneyFlow(parent.getId(), direct.negate(), MoneyFlowTypeEnum.RECOMMEND_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue()); - changeScoreAndCommission(parent.getId(), direct, MoneyFlowTypeEnum.RECOMMEND_BONUS.getValue(), orderInfo.getOrderNo()); } // =======隔代奖== end ===== } 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 8036bf5..3f74175 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 diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml index b12db56..77d810f 100644 --- a/src/main/resources/mapper/modules/MallMemberMapper.xml +++ b/src/main/resources/mapper/modules/MallMemberMapper.xml @@ -43,7 +43,7 @@ </if> </if> </where> - order by m.CREATED_TIME desc + order by m.id desc </select> <select id="getMallMemberInfoById" resultType="cc.mrbird.febs.mall.vo.MallMemberVo"> diff --git a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html index aa22e72..0698b6a 100644 --- a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html +++ b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html @@ -53,8 +53,8 @@ <button class="layui-btn layui-btn-normal layui-btn-xs" type="button" shiro:hasPermission="moneyFlow:update" lay-event="moneyFlow">资金流水</button> <!-- <button class="layui-btn layui-btn-normal layui-btn-xs" type="button" shiro:hasPermission="updateReferer:update" lay-event="updateReferer">修改推荐人</button>--> </script> -<script type="text/html" id="switchStatus"> - {{# if(d.accountStatus == 1) { }} +<script type="text/html" id="switchAccountLevel"> + {{# if(d.accountLevel == 1) { }} <span>会员</span> {{# } else if(d.accountLevel == 2) { }} <span>代理</span> @@ -62,6 +62,13 @@ <span>股东</span> {{# } else { }} <span>未购买</span> + {{# } }} +</script> +<script type="text/html" id="switchStatus"> + {{# if(d.accountStatus === 1) { }} + <input type="checkbox" value={{d.id}} lay-text="正常|禁用" checked lay-skin="switch" lay-filter="switchStatus"> + {{# } else { }} + <input type="checkbox" value={{d.id}} lay-text="正常|禁用" lay-skin="switch" lay-filter="switchStatus"> {{# } }} </script> <style> @@ -225,9 +232,11 @@ {field: 'inviteId', title: '邀请码', minWidth: 100,align:'left'}, {field: 'balance', title: '余额', minWidth: 100,align:'left',totalRow: '{{= parseInt(d.balance) }}'}, {field: 'prizeScore', title: '现金积分', minWidth: 100,align:'left',totalRow: '{{= parseInt(d.prizeScore) }}'}, + {field: 'commission', title: '佣金', minWidth: 100,align:'left',totalRow: '{{= parseInt(d.commission) }}'}, + {field: 'childNodeCnt', title: '粉丝数量', minWidth: 100,align:'left'}, {field: 'referrerName', title: '推荐人', minWidth: 100,align:'left'}, {field: 'levelName', title: '会员类型', minWidth: 100,align:'left'}, - {field: 'insideWith', title: '账号级别', templet:'#switchStatus', minWidth: 120,align:'left'}, + {field: 'insideWith', title: '账号级别', templet:'#switchAccountLevel', minWidth: 120,align:'left'}, {field: 'accountType', title: '账号类型', templet: function (d) { if (d.accountType === 2) { diff --git a/src/main/resources/templates/febs/views/modules/system/bonusSetting.html b/src/main/resources/templates/febs/views/modules/system/bonusSetting.html index 64da721..9fd60c6 100644 --- a/src/main/resources/templates/febs/views/modules/system/bonusSetting.html +++ b/src/main/resources/templates/febs/views/modules/system/bonusSetting.html @@ -7,6 +7,27 @@ <div class="layui-tab-item layui-show"> <table id="agentBonus" lay-filter="agentBonus"></table> </div> + <div class="layui-form-item"> + <label class="layui-form-label febs-form-item-require">推荐奖(%):</label> + <div class="layui-input-block"> + <input type="text" name="RECOMMEND_BONUS" lay-verify="required|integer" autocomplete="off" class="layui-input" > + </div> + <div class="layui-word-aux" style="margin-left: 150px;"></div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label febs-form-item-require">非代理推代理(%):</label> + <div class="layui-input-block"> + <input type="text" name="UNAGENT_TO_AGENT" lay-verify="required|integer" autocomplete="off" class="layui-input" > + </div> + <div class="layui-word-aux" style="margin-left: 150px;">非代理/股东推荐的人购买了代理/股东套餐的直推收益比例</div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label febs-form-item-require">非代理推代理父级(%):</label> + <div class="layui-input-block"> + <input type="text" name="UNAGENT_TO_AGENT_PARENT" lay-verify="required|integer" autocomplete="off" class="layui-input" > + </div> + <div class="layui-word-aux" style="margin-left: 150px;">非代理/股东推荐的人购买了代理/股东套餐的其父级收益比例</div> + </div> </div> <div class="layui-card-body"> -- Gitblit v1.9.1