KKSU
2024-02-19 9b27517fe8051d1766bae57eb3c5adbbc40dbbd6
新增节点,需要添加数据库的信息
12 files modified
106 ■■■■■ changed files
src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/utils/AppContants.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/AdminNewsInfoController.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ViewNewsController.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/AdminGfaBasicSetDto.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/entity/MallMember.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java 3 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java 46 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html 2 ●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html 4 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/news/gfaBasicSet.html 20 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
@@ -5,6 +5,9 @@
@Getter
public enum DataDictionaryEnum {
    //销毁数量 按照比例销毁或者返利给节点
    FCM_DESTORY_TOTAL_PERCENT("FCM_DESTORY_TOTAL_PERCENT","FCM_DESTORY_TOTAL_PERCENT"),
    FCM_DESTORY_POINT_PERCENT("FCM_DESTORY_POINT_PERCENT","FCM_DESTORY_POINT_PERCENT"),
    //直推补贴
    BASIC_PERK_DIRECT_FROZEN("BASIC_PERK_DIRECT_FROZEN","BASIC_PERK_DIRECT_FROZEN"),
    BASIC_PERK_DIRECT("BASIC_PERK_DIRECT","BASIC_PERK_DIRECT"),
src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeNewEnum.java
@@ -11,6 +11,7 @@
@Getter
public enum MoneyFlowTypeNewEnum {
    PERK_POINT(28,"节点收益"),
    PERK_CYCLE(27,"收益"),
    GSD_GFA(26,"GFD兑换GFA"),
    GSD_NFT(25,"GFD兑换卡牌"),
@@ -20,7 +21,7 @@
    TEAM_PERK_DIRECT_DONE(21,"团队奖励"),
    TEAM_PERK_EQUALS(20,"即将获得平级奖励"),
    TEAM_PERK_DIRECT(19,"即将获得团队奖励"),
    TEAM_PERK_DIRECT(19,"团队贡献值"),
    BASIC_PERK_DIRECT_DONE(18,"直推奖励"),
    BASIC_PERK_DIRECT_WRONG(17,"账户冻结,遗憾错失奖励"),
@@ -34,7 +35,7 @@
    NFT_IN(9,"GFA动态兑换"),
    FCM_OUT_FEE(8,"动态兑换手续费"),
    FCM_OUT(7,"GFA动态兑换"),
    TOKEN_BUY_FROZEN(6,"预约冻结宝石"),
    TOKEN_BUY_FROZEN(6,"消耗宝石"),
    TOKEN_INSIDE_IN(5,"宝石转入"),
    TOKEN_INSIDE_OUT(4,"宝石转出"),
    FCM_INSIDE_IN(3,"GFA代币转入"),
src/main/java/cc/mrbird/febs/common/utils/AppContants.java
@@ -45,6 +45,9 @@
    public static final BigDecimal FCM_BASIC = new BigDecimal(10000);
    public static final BigDecimal FCM_BASIC_ADD_PRICE = new BigDecimal("0.1");
    public static final BigDecimal BASIC_PERCENT = new BigDecimal("0.01");
    /**
     * 系统推荐人id
     */
src/main/java/cc/mrbird/febs/mall/controller/AdminNewsInfoController.java
@@ -239,6 +239,14 @@
                DataDictionaryEnum.NFT_MIN.getType(),
                DataDictionaryEnum.NFT_MIN.getCode(),
                gfaBasicSetDto.getNftMin());
        commonService.updateDataDic(
                DataDictionaryEnum.FCM_DESTORY_POINT_PERCENT.getType(),
                DataDictionaryEnum.FCM_DESTORY_POINT_PERCENT.getCode(),
                gfaBasicSetDto.getFcmDesToryCntPointPercent());
        commonService.updateDataDic(
                DataDictionaryEnum.FCM_DESTORY_TOTAL_PERCENT.getType(),
                DataDictionaryEnum.FCM_DESTORY_TOTAL_PERCENT.getCode(),
                gfaBasicSetDto.getFcmDesToryCntPercent());
        return new FebsResponse().success();
    }
src/main/java/cc/mrbird/febs/mall/controller/ViewNewsController.java
@@ -190,6 +190,12 @@
        gfaBasicSetDto.setMinuteCnt(dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.INSURE_END_MINUTE.getType(),
                DataDictionaryEnum.INSURE_END_MINUTE.getCode()).getValue());
        gfaBasicSetDto.setFcmDesToryCntPercent(dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.FCM_DESTORY_TOTAL_PERCENT.getType(),
                DataDictionaryEnum.FCM_DESTORY_TOTAL_PERCENT.getCode()).getValue());
        gfaBasicSetDto.setFcmDesToryCntPointPercent(dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.FCM_DESTORY_POINT_PERCENT.getType(),
                DataDictionaryEnum.FCM_DESTORY_POINT_PERCENT.getCode()).getValue());
        model.addAttribute("gfaBasicSet", gfaBasicSetDto);
        return FebsUtil.view("modules/news/gfaBasicSet");
    }
src/main/java/cc/mrbird/febs/mall/dto/AdminGfaBasicSetDto.java
@@ -26,4 +26,8 @@
    private String minuteCnt;
    private String fcmDesToryCntPercent;
    private String fcmDesToryCntPointPercent;
}
src/main/java/cc/mrbird/febs/mall/entity/MallMember.java
@@ -148,7 +148,7 @@
    private Integer creater;
    /**
     * 合伙人 1-是 2-否
     * 合伙人 1-是 2-否  节点
     */
    private Integer partner;
    /**
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -109,6 +109,7 @@
        mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
        mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.getCode());
        mallMember.setIsFrozen(ProductEnum.MEMBER_UNFROZEN.getValue());
        mallMember.setPartner(2);
//        mallMember.setSex("男");
//        mallMember.setBindPhone(registerDto.getAccount());
@@ -282,7 +283,7 @@
        Integer insureMinute = Integer.parseInt(ObjectUtil.isEmpty(insureMinuteDic) ? "60" : insureMinuteDic.getValue());
        mallMemberVo.setMinuteCnt(insureMinute);
        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.AGENT_LEVEL, mallMember.getLevel());
        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(mallMember.getLevel(), mallMember.getLevel());
        if (dic != null) {
            mallMemberVo.setLevelName(dic.getDescription());
        }
src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
@@ -64,6 +64,8 @@
    private final MallProductBuyMapper mallProductBuyMapper;
    private final MallProductSellMapper mallProductSellMapper;
    private final MallProductSellRecordMapper mallProductSellRecordMapper;
    private final MallMemberAmountMapper mallMemberAmountMapper;
    private final IMallMoneyFlowService iMallMoneyFlowService;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -1113,8 +1115,50 @@
    @Override
    public void fcmNFTExchangeMsg(String cnt) {
        /**
         * 销毁数量 按照比例销毁或者返利给节点
         */
        BigDecimal destoryCntTotal = new BigDecimal(cnt);
        DataDictionaryCustom totalPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.FCM_DESTORY_TOTAL_PERCENT.getType(),
                DataDictionaryEnum.FCM_DESTORY_TOTAL_PERCENT.getCode()
        );
        BigDecimal totalPercent = new BigDecimal(totalPercentDic.getValue()).multiply(AppContants.BASIC_PERCENT);
        //销毁数量
        BigDecimal destoryCnt = new BigDecimal(cnt);
        BigDecimal destoryCnt = destoryCntTotal.multiply(totalPercent).setScale(2,BigDecimal.ROUND_DOWN);
        DataDictionaryCustom pointPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.FCM_DESTORY_POINT_PERCENT.getType(),
                DataDictionaryEnum.FCM_DESTORY_POINT_PERCENT.getCode()
        );
        BigDecimal pointPercent = new BigDecimal(pointPercentDic.getValue()).multiply(AppContants.BASIC_PERCENT);
        //节点评分总数量
        BigDecimal pointCnt = destoryCntTotal.multiply(pointPercent).setScale(2,BigDecimal.ROUND_DOWN);
        //给每个节点平分pointCnt。
        QueryWrapper<MallMember> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("partner",1);
        List<MallMember> mallMembers = mallMemberMapper.selectList(queryWrapper);
        if(CollUtil.isNotEmpty(mallMembers)){
            BigDecimal dividePointCnt = pointCnt.divide(new BigDecimal(mallMembers.size()), 2, BigDecimal.ROUND_DOWN);
            for(MallMember mallMember : mallMembers){
                Long memberId = mallMember.getId();
                MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId);
                mallMemberAmount.setFcmCntAva(mallMemberAmount.getFcmCntAva().add(dividePointCnt));
                mallMemberAmountMapper.updateFcmCntAvaById(mallMemberAmount);
                String orderNo = MallUtils.getOrderNum("JD");
                iMallMoneyFlowService.addMoneyFlow(
                        memberId,
                        dividePointCnt,
                        MoneyFlowTypeNewEnum.PERK_POINT.getValue(),
                        orderNo,
                        mallMember.getId(),
                        FlowTypeNewEnum.FCM_COIN.getValue(),
                        MoneyFlowTypeNewEnum.PERK_POINT.getDescrition());
            }
        }
        //更新总销毁数量
        DataDictionaryCustom fcmDestoryTotalDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.FCM_DESTORY_TOTAL.getType(),
src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
@@ -329,7 +329,7 @@
                    // {field: 'storeMaster', title: '线下服务中心', templet:'#switchStoreMaster', minWidth: 120,align:'left',hide:toolbarMallmember},
                    // {field: 'director', title: '代理商', templet:'#switchDirector', minWidth: 120,align:'left' ,hide:toolbarMallmember},
                    // {field: 'creater', title: '联创', templet:'#switchCreate', minWidth: 120,align:'left' ,hide:toolbarMallmember},
                    // {field: 'partner', title: '合伙人', templet:'#switchPartner', minWidth: 120,align:'left' ,hide:toolbarMallmember},
                    {field: 'partner', title: '节点', templet:'#switchPartner', minWidth: 120,align:'left' ,hide:toolbarMallmember},
                    // {field: 'insideWith', title: '是否内转', templet:'#switchInsideWith', minWidth: 120,align:'left' ,hide:toolbarMallmember},
                    // {field: 'outsideWith', title: '是否提现', templet:'#switchOutsideWith', minWidth: 120,align:'left' ,hide:toolbarMallmember},
                    {field: 'isFrozen', title: '是否冻结', templet:'#switchFrozenWith', minWidth: 120,align:'left' ,hide:toolbarMallmember},
src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html
@@ -23,7 +23,7 @@
                                                <option value="3">代币转入</option>
                                                <option value="4">宝石转出</option>
                                                <option value="5">宝石转入</option>
                                                <option value="6">预约冻结宝石</option>
                                                <option value="6">消耗宝石</option>
                                                <option value="7">GFA动态兑换</option>
                                                <option value="8">动态兑换手续费</option>
                                                <option value="9">GFA动态兑换</option>
@@ -89,7 +89,7 @@
    {{# } else if(d.type === 5) { }}
    <span class="layui-badge febs-bg-orange">宝石转入</span>
    {{# } else if(d.type === 6) { }}
    <span class="layui-badge febs-bg-orange">预约冻结宝石</span>
    <span class="layui-badge febs-bg-orange">消耗宝石</span>
    {{# } else if(d.type === 7) { }}
    <span class="layui-badge febs-bg-orange">GFA动态兑换</span>
    {{# } else if(d.type === 8) { }}
src/main/resources/templates/febs/views/modules/news/gfaBasicSet.html
@@ -41,7 +41,7 @@
                            <label class="layui-form-label febs-form-item-require">解除冻结:</label>
                            <div class="layui-input-block">
                                <input type="text" name="frozenFcmCnt" class="layui-input" readonly>
                                <div class="layui-form-mid layui-word-aux">账号解除冻结,需要扣除GFA代币数量</div>
                                <div class="layui-form-mid layui-word-aux">账号解除冻结,需要扣除宝石</div>
                            </div>
                        </div>
                    </div>
@@ -58,6 +58,22 @@
                            <div class="layui-input-block">
                                <input type="text" name="fcmDesToryTotal" class="layui-input" readonly>
                                <div class="layui-form-mid layui-word-aux">GFA销毁总数</div>
                            </div>
                        </div>
                    </div>
                    <div class="layui-form-item">
                        <div class="layui-col-lg6">
                            <label class="layui-form-label febs-form-item-require">销毁(%):</label>
                            <div class="layui-input-block">
                                <input type="text" name="fcmDesToryCntPercent" class="layui-input" readonly>
                                <div class="layui-form-mid layui-word-aux">销毁所占百分比</div>
                            </div>
                        </div>
                        <div class="layui-col-lg6">
                            <label class="layui-form-label febs-form-item-require">节点平分(%):</label>
                            <div class="layui-input-block">
                                <input type="text" name="fcmDesToryCntPointPercent" class="layui-input" readonly>
                                <div class="layui-form-mid layui-word-aux">节点平分所占百分比</div>
                            </div>
                        </div>
                    </div>
@@ -141,6 +157,8 @@
        form.render();
        function initGfaBasicSetValue() {
            form.val("gfa-Basic-set-form", {
                "fcmDesToryCntPercent": gfaBasicSet.fcmDesToryCntPercent,
                "fcmDesToryCntPointPercent": gfaBasicSet.fcmDesToryCntPointPercent,
                "startTime": gfaBasicSet.startTime,
                "outFcmFee": gfaBasicSet.outFcmFee,
                "fcmPrice": gfaBasicSet.fcmPrice,