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