From 279e2cbedd1741f769f08cf626e1b0188996ac5f Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 29 Sep 2021 16:45:06 +0800
Subject: [PATCH] 20210928
---
src/main/resources/templates/febs/views/modules/mallMember/mallSystemPay.html | 89 ++++++++++++++++++++++
src/main/java/cc/mrbird/febs/mall/dto/MallSystemPayDto.java | 16 ++++
src/test/java/cc/mrbird/febs/AgentTest.java | 7 +
src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java | 2
src/main/java/cc/mrbird/febs/mall/mapper/MallMemberWalletMapper.java | 2
src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java | 9 ++
src/main/resources/mapper/modules/MallMemberMapper.xml | 29 +++++++
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 33 ++++++++
src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html | 12 +++
src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java | 6 +
src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java | 14 +++
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 5 +
src/main/resources/mapper/modules/MallMemberWalletMapper.xml | 7 +
src/main/resources/templates/febs/views/modules/mallMember/detail.html | 3
src/main/resources/templates/febs/views/modules/mallMember/newsInfoList.html | 2
src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java | 2
16 files changed, 234 insertions(+), 4 deletions(-)
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 b4a28d6..594e957 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java
@@ -40,7 +40,11 @@
/**
* 利润分红
*/
- PARENT_BONUS(8);
+ PARENT_BONUS(8),
+ /**
+ * 系统拨付
+ */
+ SYSTEM_PAY(9);
private final int value;
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
index c37f815..34919c2 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
@@ -77,6 +77,15 @@
}
/**
+ * 会员列表-系统拨付
+ */
+ @PostMapping("updateSystemPay")
+ @ControllerEndpoint(operation = "会员列表-系统拨付", exceptionMessage = "操作失败")
+ public FebsResponse updateSystemPay(@Valid MallSystemPayDto mallSystemPayDto) {
+ return mallMemberService.updateSystemPay(mallSystemPayDto);
+ }
+
+ /**
* 资金流水-列表
* @param moneyFlowListDto
* @param request
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java
index bd04bd0..39cddb8 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java
@@ -52,6 +52,20 @@
}
/**
+ * 会员列表-系统拨付
+ * @param id
+ * @param model
+ * @return
+ */
+ @GetMapping("mallSystemPay/{id}")
+ @RequiresPermissions("mallSystemPay:update")
+ public String systemPay(@PathVariable long id, Model model) {
+ MallMemberVo data = mallMemberService.getMallMemberInfoById(id);
+ model.addAttribute("systemPay", data);
+ return FebsUtil.view("modules/mallMember/mallSystemPay");
+ }
+
+ /**
* 会员列表-资金流水
* @param id
* @param model
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/MallSystemPayDto.java b/src/main/java/cc/mrbird/febs/mall/dto/MallSystemPayDto.java
new file mode 100644
index 0000000..c39c806
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/MallSystemPayDto.java
@@ -0,0 +1,16 @@
+package cc.mrbird.febs.mall.dto;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "MallOrderRefundDto", description = "参数接收类")
+public class MallSystemPayDto {
+ private Long id;
+
+ private BigDecimal balance;
+
+ private BigDecimal addBalance;
+}
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 90d483c..06f211f 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
@@ -63,4 +63,6 @@
IPage<AppVersion> getAppVersionListInPage(Page<AppVersion> page, AppVersion appVersion);
List<MallMember> selectByIdAndNoLevel(@Param("refererId") String refererId, @Param("level") String level);
+
+ List<MallMember> selectMallMemberByInviteIdAndLevel(@Param("inviteId")String inviteId, @Param("level")String level);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberWalletMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberWalletMapper.java
index 8fdc1a0..ab6deeb 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberWalletMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberWalletMapper.java
@@ -9,4 +9,6 @@
MallMemberWallet selectWalletByMemberId(@Param("memberId") Long memberId);
int updateBalanceWithVersion(@Param("record") MallMemberWallet wallet);
+
+ void updateBalanceWithId(@Param("record")MallMemberWallet mallMemberWallet);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
index 3bc7182..0b604df 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
@@ -74,4 +74,6 @@
FebsResponse delNewsInfo(Long id);
FebsResponse updateNewsInfo(MallNewsInfoDto mallNewsInfoDto);
+
+ FebsResponse updateSystemPay(MallSystemPayDto mallSystemPayDto);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
index 9270c40..d2efbaf 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -3,6 +3,7 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
+import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.entity.MallNewsInfo;
@@ -37,6 +38,8 @@
public class AdminMallMemberServiceImpl extends ServiceImpl<MallMemberMapper, MallMember> implements IAdminMallMemberService {
private final MallMemberMapper mallMemberMapper;
+
+ private final MallMemberWalletMapper mallMemberWalletMapper;
private final MallMoneyFlowMapper mallMoneyFlowMapper;
@@ -378,4 +381,34 @@
return new FebsResponse().success();
}
+ @Override
+ public FebsResponse updateSystemPay(MallSystemPayDto mallSystemPayDto) {
+ Long memberId = mallSystemPayDto.getId();
+ MallMember mallMember = mallMemberMapper.selectById(memberId);
+ if(ObjectUtil.isEmpty(mallMember)){
+ return new FebsResponse().fail().message("系统繁忙,请刷新页面重试");
+ }
+
+ BigDecimal bigDecimal = mallSystemPayDto.getAddBalance();
+ if(bigDecimal.compareTo(BigDecimal.ZERO) <= 0){
+ return new FebsResponse().fail().message("拨付数目需要大于0");
+ }
+
+ MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId);
+ mallMemberWallet.setBalance(mallMemberWallet.getBalance().add(bigDecimal));
+ mallMemberWalletMapper.updateBalanceWithId(mallMemberWallet);
+
+// MallMoneyFlow flow = new MallMoneyFlow();
+// flow.setMemberId(memberId);
+// flow.setAmount(bigDecimal);
+// flow.setType(MoneyFlowTypeEnum.SYSTEM_PAY.getValue());
+// flow.setOrderNo(orderNo);
+// flow.setDescription(description);
+// flow.setRemark(remark);
+// flow.setRtMemberId(rtMemberId);
+// flow.setStatus(status);
+// mallMoneyFlowMapper.insert(flow);
+ return null;
+ }
+
}
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 5de459d..61bcc1e 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
@@ -191,6 +191,11 @@
for (MallMember mallMember : agentList) {
String level = mallMember.getLevel();
+ List<MallMember> bigLevel = memberMapper.selectMallMemberByInviteIdAndLevel(mallMember.getInviteId(),level);
+ if(CollUtil.isNotEmpty(bigLevel)){
+ continue;
+ }
+
Map<Long, BigDecimal> amount = needReturn.get(level);
// 按照代理关系,返到第二级,平级奖
diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml
index c53f2b6..63ca177 100644
--- a/src/main/resources/mapper/modules/MallMemberMapper.xml
+++ b/src/main/resources/mapper/modules/MallMemberMapper.xml
@@ -37,12 +37,15 @@
a.level,
a.account_status,
a.CREATED_TIME,
- c.balance,
+ IFNULL(c.balance,0) balance,
+ d.description levelName,
b.name
FROM mall_member a
LEFT JOIN mall_member b on a.referrer_id = b.invite_id
LEFT JOIN mall_member_wallet c on c.member_id = a.id
+ LEFT JOIN data_dictionary_custom d on d.code = a.level
where a.id = #{id}
+ GROUP BY a.id
</select>
<select id="selectInfoByAccount" resultType="cc.mrbird.febs.mall.entity.MallMember">
@@ -212,4 +215,28 @@
<select id="selectByIdAndNoLevel" resultType="cc.mrbird.febs.mall.entity.MallMember">
select * from mall_member where referrer_id=#{refererId} and level != #{level}
</select>
+
+ <select id="selectMallMemberByInviteIdAndLevel" resultType="cc.mrbird.febs.mall.entity.MallMember">
+ SELECT
+ m.*, b.
+ VALUE
+
+ FROM
+ mall_member m
+ LEFT JOIN data_dictionary_custom b ON m. LEVEL = b. CODE
+ WHERE
+ find_in_set(#{inviteId}, m.referrer_ids)
+ AND b.type = 'AGENT_LEVEL'
+ AND b.VALUE > (
+ SELECT
+ VALUE
+ FROM
+ data_dictionary_custom a
+ WHERE
+ a. CODE = #{level}
+ AND a.type = 'AGENT_LEVEL'
+ )
+ GROUP BY
+ m.id
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallMemberWalletMapper.xml b/src/main/resources/mapper/modules/MallMemberWalletMapper.xml
index fb94670..cc3b0b8 100644
--- a/src/main/resources/mapper/modules/MallMemberWalletMapper.xml
+++ b/src/main/resources/mapper/modules/MallMemberWalletMapper.xml
@@ -12,4 +12,11 @@
balance = #{record.balance}
where id=#{record.id} and revision=#{record.revision}
</update>
+
+ <update id="updateBalanceWithId">
+ update mall_member_wallet
+ set revision = revision + 1,
+ balance = #{record.balance}
+ where id=#{record.id}
+ </update>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/detail.html b/src/main/resources/templates/febs/views/modules/mallMember/detail.html
index 7f8229e..59e88c3 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/detail.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/detail.html
@@ -42,7 +42,7 @@
<div class="layui-form-item">
<label class="layui-form-label febs-form-item-require">代理层级:</label>
<div class="layui-input-block">
- <input type="text" name="level" data-th-id="${member.level}"
+ <input type="text" name="levelName" data-th-id="${member.levelName}"
autocomplete="off" class="layui-input" readonly>
</div>
</div>
@@ -127,6 +127,7 @@
"inviteId": member.inviteId,
"referrerName": member.referrerName,
"level": member.level,
+ "levelName": member.levelName,
"createdTime": member.createdTime,
"accountStatus": member.accountStatus
});
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 b74872a..9a5fa05 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
@@ -97,6 +97,17 @@
maxmin: true,
});
}
+ if (layEvent === 'systemPay') {
+ febs.modal.open('系统拨付', 'modules/mallMember/mallSystemPay/' + data.id, {
+ btn: ['提交', '取消'],
+ yes: function (index, layero) {
+ $('#systemPay-update').find('#submit').trigger('click');
+ },
+ btn2: function () {
+ layer.closeAll();
+ }
+ });
+ }
});
function closeAccount(id) {
febs.get(ctx + 'admin/mallMember/closeAccount/' + id, null, function () {
@@ -163,6 +174,7 @@
if (d.accountStatus === 1) {
return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="see" shiro:hasPermission="user:update">详情</button>'
+'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="close" shiro:hasPermission="user:update">禁用</button>'
+ +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="systemPay" shiro:hasPermission="user:update">积分拨付</button>'
+'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="moneyFlow" shiro:hasPermission="user:update">资金流水</button>'
}else{
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/mallSystemPay.html b/src/main/resources/templates/febs/views/modules/mallMember/mallSystemPay.html
new file mode 100644
index 0000000..6a279a7
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/mallMember/mallSystemPay.html
@@ -0,0 +1,89 @@
+<style>
+ #systemPay-update {
+ padding: 20px 25px 25px 0;
+ }
+
+ #systemPay-update .layui-treeSelect .ztree li a, .ztree li span {
+ margin: 0 0 2px 3px !important;
+ }
+ #systemPay-update #data-permission-tree-block {
+ border: 1px solid #eee;
+ border-radius: 2px;
+ padding: 3px 0;
+ }
+ #systemPay-update .layui-treeSelect .ztree li span.button.switch {
+ top: 1px;
+ left: 3px;
+ }
+ #systemPay-update img{
+ max-width:100px
+ }
+
+</style>
+<div class="layui-fluid" id="systemPay-update">
+ <form class="layui-form" action="" lay-filter="systemPay-update-form">
+ <div class="layui-form-item febs-hide">
+ <label class="layui-form-label febs-form-item-require">id:</label>
+ <div class="layui-input-block">
+ <input type="text" name="id" data-th-value="${systemPay.id}">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">当前余额:</label>
+ <div class="layui-input-block">
+ <input type="number" name="balance" lay-verify="required" autocomplete="off" class="layui-input" readonly>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">拨付数目:</label>
+ <div class="layui-input-block">
+ <input type="number" name="addBalance" lay-verify="required" autocomplete="off" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-form-item febs-hide">
+ <button class="layui-btn" lay-submit="" lay-filter="systemPay-update-form-submit" id="submit"></button>
+ </div>
+ </form>
+</div>
+
+<script data-th-inline="javascript">
+ layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree', 'laydate'], function () {
+ var $ = layui.$,
+ febs = layui.febs,
+ layer = layui.layer,
+ formSelects = layui.formSelects,
+ treeSelect = layui.treeSelect,
+ form = layui.form,
+ laydate = layui.laydate,
+ eleTree = layui.eleTree,
+ systemPay = [[${systemPay}]],
+ $view = $('#systemPay-update'),
+ validate = layui.validate;
+
+ form.render();
+ laydate.render({
+ elem: '#febs-form-group-date'
+ });
+
+ formSelects.render();
+
+
+ initUserValue();
+
+ function initUserValue() {
+ form.val("systemPay-update-form", {
+ "id": systemPay.id,
+ "balance": systemPay.balance,
+ });
+ }
+
+ form.on('submit(systemPay-update-form-submit)', function (data) {
+ febs.post(ctx + 'admin/mallMember/updateSystemPay', data.field, function () {
+ layer.closeAll();
+ febs.alert.success('操作成功');
+ $('#febs-newInfo').find('#reset').click();
+ });
+ return false;
+ });
+ });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/newsInfoList.html b/src/main/resources/templates/febs/views/modules/mallMember/newsInfoList.html
index 37ca6b7..1bc98a9 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/newsInfoList.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/newsInfoList.html
@@ -61,7 +61,7 @@
febs.modal.open('编辑', 'modules/mallMember/newsInfoUpdate/' + data.id, {
btn: ['提交', '取消'],
yes: function (index, layero) {
- $('#newsInfo-update').find('#submit').trigger('click');
+ $('#systemPay-update').find('#submit').trigger('click');
},
btn2: function () {
layer.closeAll();
diff --git a/src/test/java/cc/mrbird/febs/AgentTest.java b/src/test/java/cc/mrbird/febs/AgentTest.java
index 3431bfb..6f4bc41 100644
--- a/src/test/java/cc/mrbird/febs/AgentTest.java
+++ b/src/test/java/cc/mrbird/febs/AgentTest.java
@@ -106,6 +106,13 @@
}
@Test
+ public void returnMoney() {
+ // agentService.autoUpAgentLevel(3L);
+// agentProducer.sendAutoLevelUpMsg(5L);
+ agentService.returnMoneyToAgent(32L);
+ }
+
+ @Test
public void bigdecimalTest() {
BigDecimal aa = new BigDecimal("1.345");
--
Gitblit v1.9.1