From 3d51d141bc43d68a738cd15183254f1b980bcb92 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 27 May 2022 16:21:59 +0800
Subject: [PATCH] fix
---
src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html | 90 ++++++++++++-----
src/test/java/cc/mrbird/febs/AgentTest.java | 2
src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 79 ++++++++-------
src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java | 70 ++++---------
src/main/java/cc/mrbird/febs/mall/vo/AdminMoneyFlowListVo.java | 2
5 files changed, 131 insertions(+), 112 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
index 87984f8..7b18035 100644
--- a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
@@ -9,6 +9,7 @@
import cc.mrbird.febs.mall.mapper.MallMoneyFlowMapper;
import cc.mrbird.febs.mall.service.IApiMallMemberService;
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
+import cc.mrbird.febs.mall.service.IMemberProfitService;
import cc.mrbird.febs.mall.service.impl.CommonService;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
@@ -34,54 +35,29 @@
public class ProfitJob {
@Autowired
- private MallMoneyFlowMapper moneyFlowMapper;
+ private IMemberProfitService memberProfitService;
- @Autowired
- private MallMemberMapper memberMapper;
-
- @Autowired
- private IApiMallMemberWalletService memberWalletService;
-
- @Autowired
- private IApiMallMemberService memberService;
-
- @Scheduled(cron = "0 1 0 * * ?")
- @Transactional(rollbackFor = Exception.class)
+ /**
+ * 代理分红
+ */
+ @Scheduled(cron = "0 0 1 * * ?")
public void profitJob() {
- log.info("推荐人返利执行");
-// DateTime yesterday = DateUtil.yesterday();
-// List<MallMoneyFlow> flows = moneyFlowMapper.selectMoneyFlowProfitByDate(yesterday);
-//
-// if (CollUtil.isEmpty(flows)) {
-// return;
-// }
-//
-// for (MallMoneyFlow flow : flows) {
-// MallMember member = memberMapper.selectById(flow.getMemberId());
-//
-// List<MallMember> child = memberMapper.selectByIdAndNoLevel(member.getInviteId(), AgentLevelEnum.ZERO_LEVEL.name());
-// if (CollUtil.isEmpty(child)) {
-// continue;
-// }
-// int size = child.size();
-// BigDecimal needReturn = flow.getAmount().multiply(BigDecimal.valueOf(0.1));
-//
-// String orderNo = MallUtils.getOrderNum("R");
-// String remarkFormat = "{}, 用户:{}, 利润分红: {}";
-//
-// BigDecimal returnMoney = needReturn.divide(BigDecimal.valueOf(size), 2, RoundingMode.DOWN);
-// for (MallMember mallMember : child) {
-// memberWalletService.addBalance(returnMoney, mallMember.getId());
-//
-// String remark = StrUtil.format(remarkFormat, DateUtil.format(yesterday, "yyyy-MM-dd"), member.getName(), returnMoney);
-// memberService.addMoneyFlow(mallMember.getId(), returnMoney, MoneyFlowTypeEnum.PARENT_BONUS.getValue(), orderNo, null, remark, member.getId(), null);
-// }
-//
-// String remark = StrUtil.format(remarkFormat, DateUtil.format(yesterday, "yyyy-MM-dd"), member.getName(), needReturn);
-// memberService.addMoneyFlow(member.getId(), needReturn.negate(), MoneyFlowTypeEnum.PARENT_BONUS.getValue(), orderNo, null, remark, null, null);
-// memberWalletService.reduceBalance(needReturn, member.getId());
-//
-// moneyFlowMapper.updateIsReturnByMemberId(MallMoneyFlow.IS_RETURN_Y, flow.getMemberId());
-// }
+ memberProfitService.agentProfit(null);
+ }
+
+ /**
+ * 感恩奖
+ */
+ @Scheduled(cron = "0 0 2 * * ?")
+ public void thankfulJob() {
+ memberProfitService.thankfulProfit();
+ }
+
+ /**
+ * 排名奖 每月1号
+ */
+ @Scheduled(cron = "0 0 3 1 * ?")
+ public void rankJob() {
+ memberProfitService.rankProfit();
}
}
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 2392be0..728fa15 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
@@ -111,7 +111,6 @@
DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.DYNAMIC_BONUS.getType(), DataDictionaryEnum.DYNAMIC_BONUS.getCode());
// 隔代字典
DataDictionaryCustom indrectDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.INDRECT_BONUS.getType(), DataDictionaryEnum.INDRECT_BONUS.getCode());
-
// 直接父级
MallMember parent = mallMemberMapper.selectInfoByInviteId(member.getReferrerId());
@@ -120,44 +119,9 @@
// 减去成本后算收益
BigDecimal amount = item.getPrice().subtract(item.getCostPrice()).multiply(BigDecimal.valueOf(item.getCnt()));
+ // =======直推返利== start =====
// 直接奖励收益
BigDecimal dynamicProfit = amount.divide(new BigDecimal(dic.getValue()), 2, RoundingMode.HALF_UP);
-
- if (StrUtil.isBlank(parent.getReferrerId())) {
- continue;
- }
-
- List<String> parents = StrUtil.split(parent.getReferrerIds(), ',');
- List<MallMember> members = mallMemberMapper.selectByInviteIds(parents);
- if (CollUtil.isEmpty(members)) {
- return;
- }
-
- // 隔代比例
- BigDecimal indrectDicProp = new BigDecimal(indrectDic.getValue());
-
- // 隔代推荐奖 收益
- BigDecimal direct = dynamicProfit.divide(indrectDicProp, 2, RoundingMode.HALF_UP);
- for (MallMember parentMember : members) {
- if (parent.getInviteId().equals(parentMember.getInviteId())) {
- continue;
- }
-
- if (direct.compareTo(BigDecimal.ONE) < 1) {
- break;
- }
-
- int reduce = walletService.reduce(direct, parentMember.getId(), "score");
- if (reduce == 2) {
- continue;
- }
-
- walletService.add(direct, parentMember.getId(), "commission");
- moneyFlowService.addMoneyFlow(parentMember.getId(), direct, MoneyFlowTypeEnum.RECOMMEND_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.COMMISSION.getValue());
- moneyFlowService.addMoneyFlow(parentMember.getId(), direct.negate(), MoneyFlowTypeEnum.RECOMMEND_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue());
-
- direct = direct.divide(indrectDicProp, 2, RoundingMode.HALF_UP);
- }
if (dynamicProfit.compareTo(BigDecimal.ZERO) < 1) {
continue;
@@ -172,10 +136,51 @@
moneyFlowService.addMoneyFlow(parent.getId(), dynamicProfit, MoneyFlowTypeEnum.DYNAMIC_ACHIEVE.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.COMMISSION.getValue());
moneyFlowService.addMoneyFlow(parent.getId(), dynamicProfit.negate(), MoneyFlowTypeEnum.DYNAMIC_ACHIEVE.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue());
+ // =======直推返利== end =====
+
+ // =======隔代奖== start =====
+ if (StrUtil.isBlank(parent.getReferrerId())) {
+ continue;
+ }
+
+ List<String> parents = StrUtil.split(parent.getReferrerIds(), ',');
+ List<MallMember> members = mallMemberMapper.selectByInviteIds(parents);
+ if (CollUtil.isEmpty(members)) {
+ return;
+ }
+ // 隔代比例
+ BigDecimal indrectDicProp = new BigDecimal(indrectDic.getValue());
+
+ // 隔代推荐奖 收益
+ BigDecimal direct = dynamicProfit.divide(indrectDicProp, 2, RoundingMode.HALF_UP);
+
+ // direct 收益小于1,则跳出
+ if (direct.compareTo(BigDecimal.ONE) < 1) {
+ continue;
+ }
+
+ for (MallMember parentMember : members) {
+ if (parent.getInviteId().equals(parentMember.getInviteId())) {
+ continue;
+ }
+
+ int reduceResult = walletService.reduce(direct, parentMember.getId(), "score");
+ if (reduceResult == 2) {
+ continue;
+ }
+
+ walletService.add(direct, parentMember.getId(), "commission");
+ moneyFlowService.addMoneyFlow(parentMember.getId(), direct, MoneyFlowTypeEnum.RECOMMEND_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.COMMISSION.getValue());
+ moneyFlowService.addMoneyFlow(parentMember.getId(), direct.negate(), MoneyFlowTypeEnum.RECOMMEND_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue());
+
+ direct = direct.divide(indrectDicProp, 2, RoundingMode.HALF_UP);
+ }
+ // =======隔代奖== end =====
}
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public void agentProfit(Date profitDate) {
log.info("#####==代理分红==start==#####");
if (profitDate == null) {
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminMoneyFlowListVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminMoneyFlowListVo.java
index d70b1a9..8d055bd 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/AdminMoneyFlowListVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminMoneyFlowListVo.java
@@ -36,4 +36,6 @@
private String bindPhone;
+ private Integer flowType;
+
}
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html b/src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html
index ce8cf2a..f18c7ab 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html
@@ -18,19 +18,38 @@
</div>
</div>
<div class="layui-inline">
- <label class="layui-form-label layui-form-label-sm">账户状态</label>
+ <label class="layui-form-label layui-form-label-sm">流水类型</label>
<div class="layui-input-inline">
<select name="type">
<option value="">请选择</option>
- <option value="1">直推奖励</option>
- <option value="2">团队奖励</option>
- <option value="3">订单支付</option>
- <option value="4">退款</option>
- <option value="5">转账</option>
- <option value="6">提现</option>
- <option value="7">排名奖励</option>
- <option value="8">利润分红</option>
- <option value="9">系统拨付</option>
+ <option value="1">静态收益</option>
+ <option value="2">动态收益</option>
+ <option value="3">代理收益</option>
+ <option value="4">排名收益</option>
+ <option value="5">董事收益</option>
+ <option value="6">社区店补</option>
+ <option value="7">推荐人收益</option>
+ <option value="8">提现</option>
+ <option value="9">转账</option>
+ <option value="10">支付</option>
+ <option value="11">退款</option>
+ <option value="12">佣金转竞猜积分</option>
+ <option value="13">佣金转余额</option>
+ <option value="14">竞猜积分签到</option>
+ <option value="15">感恩奖</option>
+ <option value="16">系统拨付</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label layui-form-label-sm">资金类型</label>
+ <div class="layui-input-inline">
+ <select name="flowType">
+ <option value="">请选择</option>
+ <option value="1">余额</option>
+ <option value="2">赠送积分</option>
+ <option value="3">竞猜积分</option>
+ <option value="4">佣金</option>
</select>
</div>
</div>
@@ -104,37 +123,53 @@
{field: 'type', title: '流水类型',
templet: function (d) {
if (d.type === 1) {
- return '<span>直推奖励</span>'
+ return '<span>静态收益</span>'
} else if (d.type === 2) {
- return '<span>团队奖励</span>'
+ return '<span>动态收益</span>'
} else if (d.type === 3) {
- return '<span>订单支付</span>'
+ return '<span>代理收益</span>'
} else if (d.type === 4) {
- return '<span>退款</span>'
+ return '<span>排名收益</span>'
}else if (d.type === 5) {
- return '<span>转账</span>'
+ return '<span>董事收益</span>'
}else if (d.type === 6) {
- return '<span>提现</span>'
+ return '<span>社区店补</span>'
}else if (d.type === 7) {
- return '<span>排名奖励</span>'
+ return '<span>推荐人收益</span>'
}else if (d.type === 8) {
- return '<span>利润分红</span>'
+ return '<span>提现</span>'
}else if (d.type === 9) {
+ return '<span>转账</span>'
+ }else if (d.type === 10) {
+ return '<span>支付</span>'
+ }else if (d.type === 11) {
+ return '<span>退款</span>'
+ }else if (d.type === 12) {
+ return '<span>佣金转竞猜积分</span>'
+ }else if (d.type === 13) {
+ return '<span>佣金转余额</span>'
+ }else if (d.type === 14) {
+ return '<span>竞猜积分签到</span>'
+ }else if (d.type === 15) {
+ return '<span>感恩奖</span>'
+ }else if (d.type === 16) {
return '<span>系统拨付</span>'
}else{
return ''
}
}, minWidth: 80,align:'center'},
- {field: 'type', title: '支付方式',
+ {field: 'flowType', title: '资金类型',
templet: function (d) {
- if (d.type === 3) {
- if(d.payMethod === null || d.payMethod ===''){
- return ''
- }else{
- return '<span>'+d.payMethod+'</span>'
- }
- } else{
- return ''
+ if (d.flowType === 1) {
+ return '余额';
+ } else if(d.flowType === 2) {
+ return '赠送积分'
+ } else if(d.flowType === 3) {
+ return '竞猜积分'
+ } else if(d.flowType === 4) {
+ return '佣金'
+ } else {
+ return '-';
}
}, minWidth: 80,align:'center'},
{field: 'orderNo', title: '订单编号', minWidth: 150,align:'left'},
@@ -149,6 +184,7 @@
name: $searchForm.find('input[name="name"]').val().trim(),
phone: $searchForm.find('input[name="phone"]').val().trim(),
type: $searchForm.find("select[name='type']").val(),
+ flowType: $searchForm.find("select[name='flowType']").val(),
};
}
diff --git a/src/test/java/cc/mrbird/febs/AgentTest.java b/src/test/java/cc/mrbird/febs/AgentTest.java
index c1bface..12b948b 100644
--- a/src/test/java/cc/mrbird/febs/AgentTest.java
+++ b/src/test/java/cc/mrbird/febs/AgentTest.java
@@ -623,6 +623,6 @@
@Test
public void orderReturnTest() {
- agentConsumer.orderReturnMoney("1");
+ agentConsumer.orderReturnMoney("7");
}
}
--
Gitblit v1.9.1