xiaoyong931011
2021-09-29 279e2cbedd1741f769f08cf626e1b0188996ac5f
20210928
2 files added
14 files modified
238 ■■■■■ changed files
src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java 6 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/MallSystemPayDto.java 16 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/MallMemberWalletMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java 33 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallMemberMapper.xml 29 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallMemberWalletMapper.xml 7 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/mallMember/detail.html 3 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html 12 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/mallMember/mallSystemPay.html 89 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/mallMember/newsInfoList.html 2 ●●● patch | view | raw | blame | history
src/test/java/cc/mrbird/febs/AgentTest.java 7 ●●●●● patch | view | raw | blame | history
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;
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
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
src/main/java/cc/mrbird/febs/mall/dto/MallSystemPayDto.java
New file
@@ -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;
}
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);
}
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);
}
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);
}
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;
    }
}
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);
            // 按照代理关系,返到第二级,平级奖
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>
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>
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
            });
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{
src/main/resources/templates/febs/views/modules/mallMember/mallSystemPay.html
New file
@@ -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>
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();
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");