| | |
| | | |
| | | @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"), |
| | |
| | | @Getter |
| | | public enum MoneyFlowTypeNewEnum { |
| | | |
| | | PERK_POINT(28,"节点收益"), |
| | | PERK_CYCLE(27,"收益"), |
| | | GSD_GFA(26,"GFD兑换GFA"), |
| | | GSD_NFT(25,"GFD兑换卡牌"), |
| | |
| | | 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,"账户冻结,遗憾错失奖励"), |
| | |
| | | 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代币转入"), |
| | |
| | | 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
|
| | | */
|
| | |
| | | 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(); |
| | | } |
| | | |
| | |
| | | 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"); |
| | | } |
| | |
| | | |
| | | private String minuteCnt; |
| | | |
| | | private String fcmDesToryCntPercent; |
| | | |
| | | private String fcmDesToryCntPointPercent; |
| | | |
| | | } |
| | |
| | | private Integer creater; |
| | | |
| | | /** |
| | | * 合伙人 1-是 2-否 |
| | | * 合伙人 1-是 2-否 节点 |
| | | */ |
| | | private Integer partner; |
| | | /** |
| | |
| | | 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()); |
| | | |
| | |
| | | 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()); |
| | | } |
| | |
| | | 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) |
| | |
| | | |
| | | @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(), |
| | |
| | | // {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}, |
| | |
| | | <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> |
| | |
| | | {{# } 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) { }} |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | 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, |