6 files modified
2 files added
| | |
| | | // } |
| | | |
| | | /** |
| | | * 比较两个级别的大小,levelOne大于levelTwo返回1,否则返回0 |
| | | * 比较两个级别的大小,levelOne大于levelTwo返回1,levelOne等于levelTwo返回2,否则返回0 |
| | | */ |
| | | public int compareLevel(String levelOne ,String levelTwo) { |
| | | int codeOne = 0; |
| | |
| | | if(codeOne > codeTwo){ |
| | | return 1; |
| | | } |
| | | if(codeOne == codeTwo){ |
| | | return 2; |
| | | } |
| | | return 0; |
| | | } |
| | | } |
| | |
| | | /** |
| | | * 董事现金补贴 |
| | | */ |
| | | PARTNER_CASH_PERK(23); |
| | | PARTNER_CASH_PERK(23), |
| | | |
| | | /** |
| | | * 代理现金补贴 |
| | | */ |
| | | AGENT_CASH_PERK(24), |
| | | |
| | | /** |
| | | * 代理积分补贴 |
| | | */ |
| | | AGENT_SCORE_PERK(25); |
| | | |
| | | private final int value; |
| | | |
| | |
| | | @Getter |
| | | public enum PerkEnum { |
| | | /** |
| | | * 积分池积分价格 = 积分池现金 / 积分池积分 |
| | | */ |
| | | POOL_SCORE_PRICE("PERK_SET", "POOL_SCORE_PRICE"), |
| | | /** |
| | | * 积分池积分 |
| | | */ |
| | | POOL_SCORE("PERK_SET", "POOL_SCORE"), |
| | | /** |
| | | * 积分池现金 |
| | | */ |
| | | POOL_CASH("PERK_SET", "POOL_CASH"), |
| | | /** |
| | | * 合伙人享全公司入单分红5%加权(现金) |
| | | */ |
| | | PARTNER_CASH_PERK_PERCENT("PERK_SET", "PARTNER_CASH_PERK_PERCENT"), |
New file |
| | |
| | | package cc.mrbird.febs.mall.entity; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * 代理设置 |
| | | * {"teamIncome":"20000","directCnt":2,"cashPercent":"2","scorePercent":"1"} |
| | | * {"teamIncome":"50000","directCnt":2,"cashPercent":"4","scorePercent":"2"} |
| | | * {"teamIncome":"200000","directCnt":2,"cashPercent":"6","scorePercent":"3"} |
| | | * {"teamIncome":"500000","directCnt":2,"cashPercent":"8","scorePercent":"4"} |
| | | * {"teamIncome":"1000000","directCnt":2,"cashPercent":"10","scorePercent":"5"} |
| | | * {"teamIncome":"2000000","directCnt":2,"cashPercent":"12","scorePercent":"6"} |
| | | */ |
| | | @Data |
| | | public class AdminAgentInfo { |
| | | |
| | | /** |
| | | * 团队业绩 |
| | | */ |
| | | private BigDecimal teamIncome; |
| | | |
| | | /** |
| | | * 直推个数 |
| | | */ |
| | | private Integer directCnt; |
| | | |
| | | /** |
| | | * 现金补贴比例 |
| | | */ |
| | | private BigDecimal cashPercent; |
| | | |
| | | /** |
| | | * 积分补贴比例 |
| | | */ |
| | | private BigDecimal scorePercent; |
| | | } |
| | |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | * 3、团队下不同代理级别获取不用的比例的现金和积分 |
| | | */ |
| | | if(StrUtil.isNotEmpty(mallMember.getReferrerIds())){ |
| | | //团队补贴对象 |
| | | List<MallMember> mallMemberTeamPerk = new ArrayList<>(); |
| | | |
| | | String referrerIds = mallMember.getReferrerIds(); |
| | | List<String> referrerIdList = StrUtil.splitTrim(referrerIds, ","); |
| | | if(CollUtil.isNotEmpty(referrerIdList)){ |
| | | List<MallMember> mallMembers = mallMemberMapper.selectByInviteIds(referrerIdList); |
| | | if(CollUtil.isNotEmpty(mallMembers)){ |
| | | // mallMembers.stream(). |
| | | /** |
| | | * 根据等级分组,获取对应的<级别,会员数组>map |
| | | */ |
| | | Map<String, List<MallMember>> collect = mallMembers.stream().collect(Collectors.groupingBy(MallMember::getLevel)); |
| | | Set<String> set = collect.keySet(); // 得到所有key的集合 |
| | | for (String key : set) { |
| | | /** |
| | | * 团队补贴从v1到v6 |
| | | */ |
| | | int compareMin = MemberLevelEnum.V1.compareLevel(key, MemberLevelEnum.V1.getType()); |
| | | int compareMax = MemberLevelEnum.V1.compareLevel(MemberLevelEnum.V6.getType(), key); |
| | | if(compareMin >= 1 && compareMax >= 1){ |
| | | List<MallMember> value = collect.get(key); |
| | | mallMemberTeamPerk.add(value.get(0)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | if(CollUtil.isNotEmpty(mallMemberTeamPerk)){ |
| | | String levelNormal = MemberLevelEnum.NORMAL.getType(); |
| | | BigDecimal cashPercentNormal = BigDecimal.ZERO; |
| | | BigDecimal scorePercentNormal = BigDecimal.ZERO; |
| | | for(MallMember teamPerkMember : mallMemberTeamPerk){ |
| | | String level = teamPerkMember.getLevel(); |
| | | //比较两个级别的大小,level大于levelNormal返回1 |
| | | int compareLevel = MemberLevelEnum.V1.compareLevel(level, levelNormal); |
| | | if(compareLevel == 1){ |
| | | Long teamPerkMemberId = teamPerkMember.getId(); |
| | | DataDictionaryCustom teamPerkMemberDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | MemberLevelEnum.V1.getType(), level); |
| | | |
| | | AdminAgentInfo adminAgentInfo = JSONObject.parseObject(teamPerkMemberDic.getValue(), AdminAgentInfo.class); |
| | | BigDecimal cashPercent = adminAgentInfo.getCashPercent().multiply(AppContants.PERCENTAGE); |
| | | BigDecimal scorePercent = adminAgentInfo.getScorePercent().multiply(AppContants.PERCENTAGE); |
| | | //极差 |
| | | cashPercent = cashPercent.subtract(cashPercentNormal); |
| | | scorePercent = scorePercent.subtract(scorePercentNormal); |
| | | |
| | | BigDecimal cashAmount = amountTC.multiply(cashPercent).setScale(2, BigDecimal.ROUND_DOWN); |
| | | BigDecimal scoreCnt = amountTC.multiply(scorePercent).setScale(2, BigDecimal.ROUND_DOWN); |
| | | if(cashAmount.compareTo(BigDecimal.ZERO) > 0){ |
| | | addWalletInfoAndMoneyFlow(cashAmount, |
| | | teamPerkMemberId, |
| | | "balance", |
| | | MoneyFlowTypeEnum.AGENT_CASH_PERK.getValue(), |
| | | FlowTypeEnum.BALANCE.getValue(), |
| | | orderNo); |
| | | } |
| | | if(scoreCnt.compareTo(BigDecimal.ZERO) > 0){ |
| | | addWalletInfoAndMoneyFlow(scoreCnt, |
| | | teamPerkMemberId, |
| | | "score", |
| | | MoneyFlowTypeEnum.AGENT_SCORE_PERK.getValue(), |
| | | FlowTypeEnum.SCORE.getValue(), |
| | | orderNo); |
| | | } |
| | | levelNormal = level; |
| | | cashPercentNormal = cashPercent; |
| | | scorePercentNormal = scorePercent; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | //获得数量 |
| | | BigDecimal perkEnumDicPercentPerk = perkEnumDicPercent.multiply(AppContants.PERCENTAGE).multiply(amountTC).setScale(2, BigDecimal.ROUND_DOWN); |
| | | if(perkEnumDicPercentPerk.compareTo(BigDecimal.ZERO) > 0){ |
| | | addWalletInfoAndMoneyFlow(perkEnumDicPercentPerk,memberId,walletField,type,flowType,orderNo); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 操作用户钱包数据,增加流水 |
| | | * @param amount |
| | | * @param memberId |
| | | * @param walletField |
| | | * @param type |
| | | * @param flowType |
| | | * @param orderNo |
| | | */ |
| | | private void addWalletInfoAndMoneyFlow(BigDecimal amount,Long memberId,String walletField,int type,int flowType,String orderNo){ |
| | | //增加 |
| | | iApiMallMemberWalletService.add(perkEnumDicPercentPerk,memberId,walletField); |
| | | iApiMallMemberWalletService.add(amount,memberId,walletField); |
| | | //增加一个流水记录 |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | memberId, |
| | | perkEnumDicPercentPerk, |
| | | amount, |
| | | type, |
| | | orderNo, |
| | | flowType, |
| | | AppContants.IS_RETURN_YES); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | if(perkEnumDicPercentPerk.compareTo(BigDecimal.ZERO) > 0){ |
| | | for(MallMember mallMember : mallMembers){ |
| | | Long memberId = mallMember.getId(); |
| | | //增加余额 |
| | | iApiMallMemberWalletService.add(perkEnumDicPercentPerk,memberId,walletField); |
| | | //增加一个获得现金的流水记录 |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | memberId, |
| | | perkEnumDicPercentPerk, |
| | | type, |
| | | orderNo, |
| | | flowType, |
| | | AppContants.IS_RETURN_YES); |
| | | addWalletInfoAndMoneyFlow(perkEnumDicPercentPerk,memberId,walletField,type,flowType,orderNo); |
| | | } |
| | | } |
| | | } |
| | |
| | | validate: 'lay/modules/validate' |
| | | }).define(['febs', 'conf'], function (exports) { |
| | | layui.febs.initPage(); |
| | | console.log("\n %c FEBS-Shiro 2.0 %c https://github.com/wuyouzhuguli/FEBS-Shiro %c 如果该项目对您有帮助的话,还请点个star给予精神支持!🐤", "color: #fff; font-size: .84rem;background: #366ed8; padding:5px 0;", "font-size: .84rem;background: #fff; border: 2px solid #b0e0a8;border-left: none; padding:3px 0;"," font-size: .84rem;background: #fcf9ec; padding:5px 0;margin-left: 8px"); |
| | | // console.log("\n %c FEBS-Shiro 2.0 %c https://github.com/wuyouzhuguli/FEBS-Shiro %c 如果该项目对您有帮助的话,还请点个star给予精神支持!🐤", "color: #fff; font-size: .84rem;background: #366ed8; padding:5px 0;", "font-size: .84rem;background: #fff; border: 2px solid #b0e0a8;border-left: none; padding:3px 0;"," font-size: .84rem;background: #fcf9ec; padding:5px 0;margin-left: 8px"); |
| | | exports('index', {}); |
| | | }); |
New file |
| | |
| | | <div class="layui-fluid layui-anim febs-anim" id="pool-set" lay-title="积分池设置"> |
| | | <div class="layui-row layui-col-space8 febs-container"> |
| | | <form class="layui-form" action="" lay-filter="pool-set-form"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body"> |
| | | <blockquote class="layui-elem-quote blue-border">积分池比例设置</blockquote> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label febs-form-item-require">现金:</label> |
| | | <div class="layui-form-mid layui-word-aux">每单购买套餐金额:</div> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="buySetMealPerkPercent" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | <div class="layui-form-mid layui-word-aux">%,进入积分池。</div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label febs-form-item-require">积分:</label> |
| | | <div class="layui-form-mid layui-word-aux">每单产生:</div> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="buySetMealPerkPercent" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | <div class="layui-form-mid layui-word-aux">%,进入积分池。</div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label febs-form-item-require">当前积分价格:</label> |
| | | <div class="layui-form-mid layui-word-aux">价格:</div> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="buySetMealPerkPercent" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label febs-form-item-require">直推:</label> |
| | | <div class="layui-form-mid layui-word-aux">获得【现金】比例:</div> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="directCashPerkPercent" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | <div class="layui-form-mid layui-word-aux">%,获得【积分】比例:</div> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="directScorePerkPercent" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | <div class="layui-form-mid layui-word-aux">%。</div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label febs-form-item-require">合伙人:</label> |
| | | <div class="layui-form-mid layui-word-aux">获得【现金】比例:</div> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="partnerCashPerkPercent" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | <div class="layui-form-mid layui-word-aux">%。</div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label febs-form-item-require">董事:</label> |
| | | <div class="layui-form-mid layui-word-aux">获得【现金】比例:</div> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="directorCashPerkPercent" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | <div class="layui-form-mid layui-word-aux">%。</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-card-footer"> |
| | | <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="pool-set-form-submit" id="submit">保存</button> |
| | | </div> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | </div> |
| | | <style> |
| | | .layui-form-label { |
| | | width: 120px; |
| | | } |
| | | |
| | | .layui-form-item .layui-input-block { |
| | | margin-left: 150px; |
| | | } |
| | | |
| | | .layui-table-form .layui-form-item { |
| | | margin-bottom: 20px !important; |
| | | } |
| | | </style> |
| | | <script data-th-inline="javascript" type="text/javascript"> |
| | | layui.use(['dropdown', 'jquery', 'validate', 'febs', 'form', 'eleTree'], function () { |
| | | var $ = layui.jquery, |
| | | febs = layui.febs, |
| | | form = layui.form, |
| | | adminPerkSet = [[${adminPerkSet}]], |
| | | validate = layui.validate, |
| | | $view = $('#pool-set'); |
| | | |
| | | form.verify(validate); |
| | | |
| | | initPerkSetValue(); |
| | | |
| | | form.render(); |
| | | |
| | | function initPerkSetValue() { |
| | | form.val("pool-set-form", { |
| | | "buySetMealPerkPercent": adminPerkSet.buySetMealPerkPercent, |
| | | "directCashPerkPercent": adminPerkSet.directCashPerkPercent, |
| | | "directScorePerkPercent": adminPerkSet.directScorePerkPercent, |
| | | "partnerCashPerkPercent": adminPerkSet.partnerCashPerkPercent, |
| | | "directorCashPerkPercent": adminPerkSet.directorCashPerkPercent |
| | | }); |
| | | } |
| | | |
| | | form.on('submit(pool-set-form-submit)', function (data) { |
| | | console.log(data); |
| | | febs.post(ctx + 'admin/system/perkSet', data.field, function (res) { |
| | | febs.alert.success('设置成功'); |
| | | }); |
| | | window.location.reload(); |
| | | return false; |
| | | }); |
| | | }); |
| | | </script> |
| | |
| | | <div class="layui-fluid layui-anim febs-anim" id="profit-setting" lay-title="收益设置"> |
| | | <div class="layui-fluid layui-anim febs-anim" id="profit-setting" lay-title="代理设置"> |
| | | <div class="layui-row layui-col-space8 febs-container"> |
| | | <form class="layui-form" action="" lay-filter="profit-setting-form"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body"> |
| | | <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief"> |
| | | <ul class="layui-tab-title"> |
| | | <li class="layui-this">分红设置</li> |
| | | <li>代理分红</li> |
| | | <li>排名分红</li> |
| | | <li>间推分红</li> |
| | | </ul> |
| | | <blockquote class="layui-elem-quote blue-border">代理设置</blockquote> |
| | | <div class="layui-tab-content"> |
| | | <div class="layui-tab-item layui-show" id="bonus-global-setting"> |
| | | </div> |
| | | <div class="layui-tab-item"> |
| | | <div class="layui-tab-item layui-show"> |
| | | <table id="agentBonus" lay-filter="agentBonus"></table> |
| | | </div> |
| | | <div class="layui-tab-item"> |
| | | <table id="rankBonus" lay-filter="rankBonus"></table> |
| | | </div> |
| | | <div class="layui-tab-item"> |
| | | <table id="indirectDistrib" lay-filter="indirectDistrib"></table> |
| | | <div class="layui-word-aux">间推分红即为隔代收益,将直推奖励按照对应比例依次向上级返利,直至结算到一元为止</div> |
| | | <div class="layui-word-aux">1:分大小区,即【业绩】为小区所有业绩之和。</div> |
| | | <div class="layui-word-aux">2:直推5人,即有五个区,减去其中业绩最多的一个区域后,满足【业绩要求】,即可升级下一级。</div> |
| | | <div class="layui-word-aux">2:【现金补贴比例】和【积分补贴比例】,采取级差制。</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | </form> |
| | | |
| | | <!-- <div class="layui-form-item febs-hide">--> |
| | | <!-- <button class="layui-btn" lay-submit="" lay-filter="profit-setting-form-submit" id="submit-form"></button>--> |
| | | <!-- <button type="reset" class="layui-btn" id="reset"></button>--> |
| | | <!-- </div>--> |
| | | </div> |
| | | </div> |
| | | <style> |
| | |
| | | margin-bottom: 20px !important; |
| | | } |
| | | </style> |
| | | <script type="text/html" id="bonusSystem"> |
| | | {{# layui.each(d, function(index, item){ }} |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">{{item.description}}:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="{{item.code}}" lay-verify="number" value="{{item.value}}" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | {{# if(item.code == 'INDRECT_BONUS') { }} |
| | | <div class="layui-word-aux" style="margin-left: 150px;">间推分红即为隔代收益,将直推奖励按照对应比例依次向上级返利,直至结算到一元为止</div> |
| | | {{# }}} |
| | | |
| | | {{# if(item.code == 'THANKFUL_BONUS') { }} |
| | | <div class="layui-word-aux" style="margin-left: 150px;">将推荐人的收益(代理,直推,排名)的对应比例加权平分给下面直推</div> |
| | | {{# }}} |
| | | </div> |
| | | {{# }) }} |
| | | </script> |
| | | <script data-th-inline="javascript" type="text/javascript"> |
| | | layui.use(['dropdown', 'jquery', 'validate', 'febs', 'form', 'eleTree', 'laytpl', 'table'], function () { |
| | | var $ = layui.jquery, |
| | |
| | | table = layui.table, |
| | | validate = layui.validate, |
| | | $view = $('#profit-setting') |
| | | , templateHtml = bonusSystem.innerHTML |
| | | , $bonusSystem = $("#bonus-global-setting") |
| | | , laytpl = layui.laytpl |
| | | , agentBonusArr |
| | | , rankBonusArr |
| | | , indirectBonusArr; |
| | | , agentBonusArr; |
| | | |
| | | form.verify(validate); |
| | | form.render(); |
| | |
| | | table.render({ |
| | | elem: '#agentBonus' |
| | | ,cols: [[ //表头 |
| | | {field: 'description', title: '代理', edit:'text'} |
| | | ,{field: 'prop', title: '返利比例(%)', edit:'text'} |
| | | ,{field: 'achieve', title: '团队业绩(万元)', edit:'text'} |
| | | ,{field: 'direct', title: '直推(个)', edit:'text'} |
| | | ,{field: 'lastAgentCnt', title: '上一级代理(个)', edit:'text'} |
| | | {field: 'description', title: '名称'} |
| | | ,{field: 'teamIncome', title: '业绩要求(元)', edit:'text'} |
| | | ,{field: 'directCnt', title: '直推(个)', edit:'text'} |
| | | ,{field: 'cashPercent', title: '现金补贴比例(%)', edit:'text'} |
| | | ,{field: 'scorePercent', title: '积分补贴比例(%)', edit:'text'} |
| | | ,{field: 'type', title: '比例', edit:'text', hide:'true'} |
| | | ,{field: 'code', title: '比例', edit:'text', hide:'true'} |
| | | ]] |
| | |
| | | for (let i = 0; i < agentBonusArr.length; i++) { |
| | | if (agentBonusArr[i].code === data.code) { |
| | | var valueData = {}; |
| | | valueData.teamIncome = data.achieve; |
| | | valueData.profitProp = data.prop; |
| | | valueData.directCnt = data.direct; |
| | | valueData.lastAgentCnt = data.lastAgentCnt; |
| | | valueData.teamIncome = data.teamIncome; |
| | | valueData.directCnt = data.directCnt; |
| | | valueData.cashPercent = data.cashPercent; |
| | | valueData.scorePercent = data.scorePercent; |
| | | agentBonusArr[i].value = JSON.stringify(valueData); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | table.render({ |
| | | elem: '#rankBonus' |
| | | ,cols: [[ //表头 |
| | | {field: 'description', title: '排名'} |
| | | ,{field: 'value', title: '返利比例(%)', edit:'text'} |
| | | ,{field: 'type', title: '比例', edit:'text', hide:'true'} |
| | | ,{field: 'code', title: '比例', edit:'text', hide:'true'} |
| | | ]] |
| | | ,data: [] |
| | | }); |
| | | |
| | | table.on('edit(rankBonus)', function(obj){ |
| | | var value = obj.value //得到修改后的值 |
| | | ,data = obj.data //得到所在行所有键值 |
| | | ,field = obj.field; //得到字段 |
| | | |
| | | for (let i = 0; i < rankBonusArr.length; i++) { |
| | | if (rankBonusArr[i].code === data.code) { |
| | | rankBonusArr[i].value = value; |
| | | } |
| | | } |
| | | }); |
| | | |
| | | table.render({ |
| | | elem: '#indirectDistrib' |
| | | ,cols: [[ //表头 |
| | | {field: 'pushCnt', title: '直推人数', edit:'text'} |
| | | ,{field: 'prop', title: '返利比例(%)', edit:'text'} |
| | | ,{field: 'type', title: '比例', edit:'text', hide:'true'} |
| | | ,{field: 'code', title: '比例', edit:'text', hide:'true'} |
| | | ]] |
| | | ,data: [] |
| | | }); |
| | | |
| | | table.on('edit(indirectDistrib)', function(obj){ |
| | | var value = obj.value //得到修改后的值 |
| | | ,data = obj.data //得到所在行所有键值 |
| | | ,field = obj.field; //得到字段 |
| | | |
| | | for (let i = 0; i < indirectBonusArr.length; i++) { |
| | | if (indirectBonusArr[i].code === data.code) { |
| | | var valueData = {}; |
| | | valueData.pushCnt = data.pushCnt; |
| | | valueData.prop = data.prop; |
| | | indirectBonusArr[i].value = JSON.stringify(valueData); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | dicDataReq("BONUS_TYPE"); |
| | | dicDataReq("AGENT_LEVEL_REQUIRE"); |
| | | dicDataReq("RANK_AWARD"); |
| | | dicDataReq("INDIRECT_BONUS_SETTING"); |
| | | // dicDataReq("AGENT_LEVEL_REQUIRE"); |
| | | dicDataReq("AGENT_PERK_SET"); |
| | | function dicDataReq(type) { |
| | | $bonusSystem.empty(); |
| | | $.get(ctx + 'admin/common/findDicByType/' + type, function (r) { |
| | | if (r.code === 200) { |
| | | var data = r.data; |
| | | if ("BONUS_TYPE" == type) { |
| | | laytpl(templateHtml).render(data, function(html) { |
| | | $bonusSystem.append(html); |
| | | }) |
| | | } |
| | | |
| | | if ("AGENT_LEVEL_REQUIRE" == type) { |
| | | if ("AGENT_PERK_SET" == type) { |
| | | for (let i = 0; i < data.length; i++) { |
| | | data[i].prop = JSON.parse(data[i].value).profitProp; |
| | | data[i].achieve = JSON.parse(data[i].value).teamIncome; |
| | | data[i].direct = JSON.parse(data[i].value).directCnt; |
| | | data[i].lastAgentCnt = JSON.parse(data[i].value).lastAgentCnt; |
| | | data[i].teamIncome = JSON.parse(data[i].value).teamIncome; |
| | | data[i].directCnt = JSON.parse(data[i].value).directCnt; |
| | | data[i].cashPercent = JSON.parse(data[i].value).cashPercent; |
| | | data[i].scorePercent = JSON.parse(data[i].value).scorePercent; |
| | | } |
| | | agentBonusArr = data; |
| | | table.reload('agentBonus', { |
| | | data : data |
| | | }); |
| | | } |
| | | |
| | | if ("RANK_AWARD" == type) { |
| | | rankBonusArr = data; |
| | | table.reload('rankBonus', { |
| | | data : data |
| | | }); |
| | | } |
| | | |
| | | if ("INDIRECT_BONUS_SETTING" == type) { |
| | | for (let i = 0; i < data.length; i++) { |
| | | data[i].prop = JSON.parse(data[i].value).prop; |
| | | data[i].pushCnt = JSON.parse(data[i].value).pushCnt; |
| | | } |
| | | indirectBonusArr = data; |
| | | table.reload('indirectDistrib', { |
| | | data : data |
| | | }); |
| | | } |
| | |
| | | |
| | | form.on('submit(profit-setting-form-submit)', function (data) { |
| | | data.field.agentBonus = agentBonusArr; |
| | | data.field.rankBonus = rankBonusArr; |
| | | data.field.indrectDistrib = indirectBonusArr; |
| | | $.ajax({ |
| | | 'url':ctx + 'admin/system/bonusSystemSetting', |
| | | 'type':'post', |