10 files modified
3 files added
| | |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.common.utils.OssUtils; |
| | | import cc.mrbird.febs.dapp.dto.AddMallGoodsDto; |
| | | import cc.mrbird.febs.dapp.dto.HlmBasicPerkDto; |
| | | import cc.mrbird.febs.dapp.dto.MallGoodsUpdateDto; |
| | | import cc.mrbird.febs.dapp.dto.MallOrderInfoDto; |
| | | import cc.mrbird.febs.dapp.entity.MallGoods; |
| | | import cc.mrbird.febs.dapp.entity.MallOrderInfo; |
| | | import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum; |
| | | import cc.mrbird.febs.dapp.service.IAdminMallGoodsService; |
| | | import cn.hutool.core.util.IdUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | |
| | | return new FebsResponse().success().data(dataTable); |
| | | } |
| | | |
| | | @GetMapping(value = "/findDicByType/{type}") |
| | | public FebsResponse findDicByType(@PathVariable("type") String type) { |
| | | return new FebsResponse().success().data(adminMallGoodsService.findDataDicByType(type)); |
| | | } |
| | | |
| | | @PostMapping(value = "/bonusSystemSetting") |
| | | public FebsResponse bonusSystemSetting(@RequestBody Map<String, Object> map) { |
| | | adminMallGoodsService.bonusSystemSetting(map); |
| | | return new FebsResponse().success().message("设置成功"); |
| | | } |
| | | |
| | | @PostMapping(value = "/hlmBasicPerk") |
| | | public FebsResponse hlmBasicPerk(HlmBasicPerkDto hlmBasicPerkDto) { |
| | | adminMallGoodsService.hlmBasicPerk(hlmBasicPerkDto); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | import cc.mrbird.febs.common.controller.BaseController; |
| | | import cc.mrbird.febs.common.entity.FebsConstant; |
| | | import cc.mrbird.febs.common.utils.FebsUtil; |
| | | import cc.mrbird.febs.dapp.dto.HlmBasicPerkDto; |
| | | import cc.mrbird.febs.dapp.entity.DataDictionaryCustom; |
| | | import cc.mrbird.febs.dapp.entity.MallGoods; |
| | | import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum; |
| | | import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper; |
| | | import cc.mrbird.febs.dapp.service.IAdminMallGoodsService; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | | import org.springframework.stereotype.Controller; |
| | |
| | | public class ViewAdminMallGoodsController extends BaseController { |
| | | |
| | | private final IAdminMallGoodsService mallGoodsService; |
| | | private final DataDictionaryCustomMapper dataDictionaryCustomMapper; |
| | | |
| | | /** |
| | | * 商品列表 |
| | |
| | | idOrderMoneyFlow = id; |
| | | return FebsUtil.view("goods/orderMoneyFlow"); |
| | | } |
| | | |
| | | @GetMapping("profitSetting") |
| | | @RequiresPermissions("profitSetting:view") |
| | | public String profitSetting() { |
| | | return FebsUtil.view("goods/profitSetting"); |
| | | } |
| | | |
| | | @GetMapping("basicPerk") |
| | | @RequiresPermissions("basicPerk:view") |
| | | public String basicPerkSetting(Model model) { |
| | | HlmBasicPerkDto hlmBasicPerkDto = new HlmBasicPerkDto(); |
| | | DataDictionaryCustom donateScorePercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.DONATE_SCORE_PERCENT.getType(), |
| | | DataDictionaryEnum.DONATE_SCORE_PERCENT.getCode()); |
| | | if (donateScorePercentDic != null) { |
| | | String donateScorePercent = ObjectUtil.isEmpty(donateScorePercentDic.getValue()) ? "0" : donateScorePercentDic.getValue(); |
| | | hlmBasicPerkDto.setDonateScorePercent(donateScorePercent); |
| | | } |
| | | DataDictionaryCustom staticReleaseDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.STATIC_RELEASE.getType(), |
| | | DataDictionaryEnum.STATIC_RELEASE.getCode()); |
| | | if (staticReleaseDic != null) { |
| | | String staticRelease = ObjectUtil.isEmpty(staticReleaseDic.getValue()) ? "0" : staticReleaseDic.getValue(); |
| | | hlmBasicPerkDto.setStaticRelease(staticRelease); |
| | | } |
| | | DataDictionaryCustom directReleaseDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.DIRECT_RELEASE.getType(), |
| | | DataDictionaryEnum.DIRECT_RELEASE.getCode()); |
| | | if (directReleaseDic != null) { |
| | | String directRelease = ObjectUtil.isEmpty(directReleaseDic.getValue()) ? "0" : directReleaseDic.getValue(); |
| | | hlmBasicPerkDto.setDirectRelease(directRelease); |
| | | } |
| | | DataDictionaryCustom maxReleaseDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.MAX_RELEASE.getType(), |
| | | DataDictionaryEnum.MAX_RELEASE.getCode()); |
| | | if (maxReleaseDic != null) { |
| | | String maxRelease = ObjectUtil.isEmpty(maxReleaseDic.getValue()) ? "0" : maxReleaseDic.getValue(); |
| | | hlmBasicPerkDto.setMaxRelease(maxRelease); |
| | | } |
| | | DataDictionaryCustom usdtOrderReleaseDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.USDT_ORDER_PERCENT.getType(), |
| | | DataDictionaryEnum.USDT_ORDER_PERCENT.getCode()); |
| | | if (usdtOrderReleaseDic != null) { |
| | | String usdtOrderRelease = ObjectUtil.isEmpty(usdtOrderReleaseDic.getValue()) ? "0" : usdtOrderReleaseDic.getValue(); |
| | | hlmBasicPerkDto.setUsdtOrderRelease(usdtOrderRelease); |
| | | } |
| | | DataDictionaryCustom teamPerkLevelEqualsDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.TEAM_PERK_LEVEL_EQUALS.getType(), |
| | | DataDictionaryEnum.TEAM_PERK_LEVEL_EQUALS.getCode()); |
| | | if (teamPerkLevelEqualsDic != null) { |
| | | String teamPerkLevelEquals = ObjectUtil.isEmpty(teamPerkLevelEqualsDic.getValue()) ? "0" : teamPerkLevelEqualsDic.getValue(); |
| | | hlmBasicPerkDto.setTeamPerkLevelEquals(teamPerkLevelEquals); |
| | | } |
| | | DataDictionaryCustom memberBuyMaxAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.MEMBER_BUY_MAX_AMOUNT.getType(), |
| | | DataDictionaryEnum.MEMBER_BUY_MAX_AMOUNT.getCode()); |
| | | if (memberBuyMaxAmountDic != null) { |
| | | String memberBuyMaxAmount = ObjectUtil.isEmpty(memberBuyMaxAmountDic.getValue()) ? "0" : memberBuyMaxAmountDic.getValue(); |
| | | hlmBasicPerkDto.setMemberBuyMaxAmount(memberBuyMaxAmount); |
| | | } |
| | | DataDictionaryCustom packagePoorDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.PACKAGE_POOR.getType(), |
| | | DataDictionaryEnum.PACKAGE_POOR.getCode()); |
| | | if (packagePoorDic != null) { |
| | | String packagePoor = ObjectUtil.isEmpty(packagePoorDic.getValue()) ? "0" : packagePoorDic.getValue(); |
| | | hlmBasicPerkDto.setPackagePoor(packagePoor); |
| | | } |
| | | DataDictionaryCustom packageTotalScoreDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getType(), |
| | | DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getCode()); |
| | | if (packageTotalScoreDic != null) { |
| | | String packageTotalScore = ObjectUtil.isEmpty(packageTotalScoreDic.getValue()) ? "0" : packageTotalScoreDic.getValue(); |
| | | hlmBasicPerkDto.setPackageTotalScore(packageTotalScore); |
| | | } |
| | | DataDictionaryCustom packageScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.PACKAGE_SCORE_PRICE.getType(), |
| | | DataDictionaryEnum.PACKAGE_SCORE_PRICE.getCode()); |
| | | if (packageScorePriceDic != null) { |
| | | String packageScorePrice = ObjectUtil.isEmpty(packageScorePriceDic.getValue()) ? "0" : packageScorePriceDic.getValue(); |
| | | hlmBasicPerkDto.setPackageScorePrice(packageScorePrice); |
| | | } |
| | | DataDictionaryCustom packageSaleToPoorPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getType(), |
| | | DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getCode()); |
| | | if (packageSaleToPoorPercentDic != null) { |
| | | String packageSaleToPoorPercent = ObjectUtil.isEmpty(packageSaleToPoorPercentDic.getValue()) ? "0" : packageSaleToPoorPercentDic.getValue(); |
| | | hlmBasicPerkDto.setPackageSaleToPoorPercent(packageSaleToPoorPercent); |
| | | } |
| | | DataDictionaryCustom withDrawFeeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.WITHDRAW_FEE.getType(), |
| | | DataDictionaryEnum.WITHDRAW_FEE.getCode()); |
| | | if (withDrawFeeDic != null) { |
| | | String withDrawFee = ObjectUtil.isEmpty(withDrawFeeDic.getValue()) ? "0" : withDrawFeeDic.getValue(); |
| | | hlmBasicPerkDto.setWithDrawFee(withDrawFee); |
| | | } |
| | | model.addAttribute("hlmBasicPerk", hlmBasicPerkDto); |
| | | return FebsUtil.view("goods/basicPerkSetting"); |
| | | } |
| | | } |
| New file |
| | |
| | | package cc.mrbird.febs.dapp.dto; |
| | | |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class HlmBasicPerkDto { |
| | | |
| | | //赠送消费金额1.5倍增值积分(释放额度,额度为零就要复购) |
| | | private String donateScorePercent; |
| | | |
| | | //每天按照消费金额的5‰个人静态释放 |
| | | private String staticRelease; |
| | | |
| | | //直推加速,享受直推人的100%个人静态释放 |
| | | private String directRelease; |
| | | |
| | | //最大封顶为此消费单的本金5% |
| | | private String maxRelease; |
| | | |
| | | //商城入单的10%入底池 |
| | | private String usdtOrderRelease; |
| | | |
| | | //平级10% |
| | | private String teamPerkLevelEquals; |
| | | |
| | | //普通会员购买上线 |
| | | private String memberBuyMaxAmount; |
| | | |
| | | //资产包USDT底池 |
| | | private String packagePoor; |
| | | |
| | | //资产包总积分 |
| | | private String packageTotalScore; |
| | | |
| | | //资产包积分价格 |
| | | private String packageScorePrice; |
| | | |
| | | //资产包卖出划入底池比例 |
| | | private String packageSaleToPoorPercent; |
| | | |
| | | //提现手续费 |
| | | private String withDrawFee; |
| | | } |
| | |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.dapp.dto.AddMallGoodsDto; |
| | | import cc.mrbird.febs.dapp.dto.HlmBasicPerkDto; |
| | | import cc.mrbird.febs.dapp.dto.MallGoodsUpdateDto; |
| | | import cc.mrbird.febs.dapp.dto.MallOrderInfoDto; |
| | | import cc.mrbird.febs.dapp.entity.DataDictionaryCustom; |
| | | import cc.mrbird.febs.dapp.entity.MallGoods; |
| | | import cc.mrbird.febs.dapp.entity.MallOrderInfo; |
| | | import cc.mrbird.febs.dapp.vo.AdminMallMoneyFlowVo; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface IAdminMallGoodsService extends IService<MallGoods> { |
| | | |
| | |
| | | IPage<MallOrderInfo> getOrderListInPage(MallOrderInfoDto mallOrderInfo, QueryRequest request); |
| | | |
| | | IPage<AdminMallMoneyFlowVo> orderMoneyFlow(QueryRequest request, MallOrderInfo mallOrderInfo); |
| | | |
| | | List<DataDictionaryCustom> findDataDicByType(String type); |
| | | |
| | | void bonusSystemSetting(Map<String, Object> map); |
| | | |
| | | void hlmBasicPerk(HlmBasicPerkDto hlmBasicPerkDto); |
| | | } |
| | |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.dapp.dto.AddMallGoodsDto; |
| | | import cc.mrbird.febs.dapp.dto.HlmBasicPerkDto; |
| | | import cc.mrbird.febs.dapp.dto.MallGoodsUpdateDto; |
| | | import cc.mrbird.febs.dapp.dto.MallOrderInfoDto; |
| | | import cc.mrbird.febs.dapp.entity.DataDictionaryCustom; |
| | | import cc.mrbird.febs.dapp.entity.MallGoods; |
| | | import cc.mrbird.febs.dapp.entity.MallOrderInfo; |
| | | import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum; |
| | | import cc.mrbird.febs.dapp.mapper.DappFundFlowDao; |
| | | import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper; |
| | | import cc.mrbird.febs.dapp.mapper.MallGoodsMapper; |
| | | import cc.mrbird.febs.dapp.mapper.MallOrderInfoMapper; |
| | | import cc.mrbird.febs.dapp.service.IAdminMallGoodsService; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.LinkedHashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Slf4j |
| | | @Service |
| | | @RequiredArgsConstructor |
| | |
| | | private final MallGoodsMapper mallGoodsMapper; |
| | | private final MallOrderInfoMapper mallOrderInfoMapper; |
| | | private final DappFundFlowDao dappFundFlowDao; |
| | | private final DataDictionaryCustomMapper dataDictionaryCustomMapper; |
| | | |
| | | @Override |
| | | public IPage<MallGoods> getCategoryListInPage(MallGoods mallGoods, QueryRequest request) { |
| | |
| | | IPage<AdminMallMoneyFlowVo> adminMallMoneyFlowVos = dappFundFlowDao.selectOrderMoneyFlowInPage(page, mallOrder); |
| | | return adminMallMoneyFlowVos; |
| | | } |
| | | |
| | | @Override |
| | | public List<DataDictionaryCustom> findDataDicByType(String type) { |
| | | return dataDictionaryCustomMapper.selectDicByType(type); |
| | | } |
| | | |
| | | @Override |
| | | public void bonusSystemSetting(Map<String, Object> map) { |
| | | for (Map.Entry<String, Object> entry : map.entrySet()) { |
| | | if (entry.getValue() instanceof String) { |
| | | dataDictionaryCustomMapper.updateDicValueByTypeAndCode(null, entry.getKey(), (String) entry.getValue()); |
| | | } else { |
| | | List<LinkedHashMap<String, Object>> value = (List<LinkedHashMap<String, Object>>) entry.getValue(); |
| | | |
| | | for (LinkedHashMap<String, Object> dic : value) { |
| | | String type = (String) dic.get("type"); |
| | | String code = (String) dic.get("code"); |
| | | String dataValue = (String) dic.get("value"); |
| | | dataDictionaryCustomMapper.updateDicValueByTypeAndCode(type, code, dataValue); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void hlmBasicPerk(HlmBasicPerkDto hlmBasicPerkDto) { |
| | | updateDataDic(DataDictionaryEnum.DONATE_SCORE_PERCENT.getType(), |
| | | DataDictionaryEnum.DONATE_SCORE_PERCENT.getCode(), |
| | | hlmBasicPerkDto.getDonateScorePercent()); |
| | | updateDataDic(DataDictionaryEnum.STATIC_RELEASE.getType(), |
| | | DataDictionaryEnum.STATIC_RELEASE.getCode(), |
| | | hlmBasicPerkDto.getStaticRelease()); |
| | | updateDataDic(DataDictionaryEnum.DIRECT_RELEASE.getType(), |
| | | DataDictionaryEnum.DIRECT_RELEASE.getCode(), |
| | | hlmBasicPerkDto.getDirectRelease()); |
| | | updateDataDic(DataDictionaryEnum.MAX_RELEASE.getType(), |
| | | DataDictionaryEnum.MAX_RELEASE.getCode(), |
| | | hlmBasicPerkDto.getMaxRelease()); |
| | | updateDataDic(DataDictionaryEnum.USDT_ORDER_PERCENT.getType(), |
| | | DataDictionaryEnum.USDT_ORDER_PERCENT.getCode(), |
| | | hlmBasicPerkDto.getUsdtOrderRelease()); |
| | | updateDataDic(DataDictionaryEnum.TEAM_PERK_LEVEL_EQUALS.getType(), |
| | | DataDictionaryEnum.TEAM_PERK_LEVEL_EQUALS.getCode(), |
| | | hlmBasicPerkDto.getTeamPerkLevelEquals()); |
| | | updateDataDic(DataDictionaryEnum.MEMBER_BUY_MAX_AMOUNT.getType(), |
| | | DataDictionaryEnum.MEMBER_BUY_MAX_AMOUNT.getCode(), |
| | | hlmBasicPerkDto.getMemberBuyMaxAmount()); |
| | | updateDataDic(DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getType(), |
| | | DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getCode(), |
| | | hlmBasicPerkDto.getPackageTotalScore()); |
| | | updateDataDic(DataDictionaryEnum.PACKAGE_SCORE_PRICE.getType(), |
| | | DataDictionaryEnum.PACKAGE_SCORE_PRICE.getCode(), |
| | | hlmBasicPerkDto.getPackageScorePrice()); |
| | | updateDataDic(DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getType(), |
| | | DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getCode(), |
| | | hlmBasicPerkDto.getPackageSaleToPoorPercent()); |
| | | updateDataDic(DataDictionaryEnum.PACKAGE_POOR.getType(), |
| | | DataDictionaryEnum.PACKAGE_POOR.getCode(), |
| | | hlmBasicPerkDto.getPackagePoor()); |
| | | updateDataDic(DataDictionaryEnum.WITHDRAW_FEE.getType(), |
| | | DataDictionaryEnum.WITHDRAW_FEE.getCode(), |
| | | hlmBasicPerkDto.getWithDrawFee()); |
| | | } |
| | | |
| | | public void updateDataDic(String type, String code, String value) { |
| | | DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(type, code); |
| | | if (dic != null) { |
| | | dic.setValue(value); |
| | | dataDictionaryCustomMapper.updateById(dic); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | <div class="layui-col-md10"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">地址邀请码:</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="address" autocomplete="off" placeholder="输入地址或邀请码" class="layui-input"> |
| | | </div> |
| | |
| | | <div class="layui-col-md10"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">地址:</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="address" autocomplete="off" placeholder="输入地址" class="layui-input"> |
| | | </div> |
| | |
| | | <div class="layui-col-md10"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">地址:</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="address" autocomplete="off" placeholder="输入地址" class="layui-input"> |
| | | </div> |
| | |
| | | url: ctx + 'wallet/walletMine', |
| | | cols: [[ |
| | | {field: 'address', title: '地址', minWidth: 130}, |
| | | {field: 'availableAmount', title: '剩余产量(LAB)', minWidth: 130}, |
| | | {field: 'totalAmount', title: '总产量(LAB)', minWidth: 180} |
| | | {field: 'availableAmount', title: '可用', minWidth: 130}, |
| | | {field: 'totalAmount', title: '总量', minWidth: 180} |
| | | ]] |
| | | }); |
| | | } |
| | |
| | | <div class="layui-col-md10"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">地址邀请码:</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="address" autocomplete="off" placeholder="输入地址或邀请码" class="layui-input"> |
| | | </div> |
| | |
| | | <div class="layui-input-inline"><input type="text" name="inviteId" autocomplete="off" placeholder="输入地址或邀请码" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label layui-form-label-sm">状态</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="accountType"> |
| | | <option value=""></option> |
| | | <option value="MEMBER">MEMBER</option> |
| | | <option value="NODE_1">NODE_1</option> |
| | | <option value="NODE_2">NODE_2</option> |
| | | <option value="NODE_3">NODE_3</option> |
| | | <option value="NODE_4">NODE_4</option> |
| | | <option value="NODE_5">NODE_5</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-inline">--> |
| | | <!-- <label class="layui-form-label layui-form-label-sm">状态</label>--> |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <select name="accountType">--> |
| | | <!-- <option value=""></option>--> |
| | | <!-- <option value="MEMBER">MEMBER</option>--> |
| | | <!-- <option value="NODE_1">NODE_1</option>--> |
| | | <!-- <option value="NODE_2">NODE_2</option>--> |
| | | <!-- <option value="NODE_3">NODE_3</option>--> |
| | | <!-- <option value="NODE_4">NODE_4</option>--> |
| | | <!-- <option value="NODE_5">NODE_5</option>--> |
| | | <!-- </select>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area"> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">转账HASH:</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="输入转账HASH" name="fromHash" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">类型:</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="type"> |
| | | <option value=""></option> |
| | | <option value="4">入金,买入A币</option> |
| | | <option value="5">进入a底池</option> |
| | | <option value="6">进入b底池</option> |
| | | <option value="7">50%客户秒到</option> |
| | | <option value="8">全网加权分红收益总量</option> |
| | | <option value="9">10%直推</option> |
| | | <option value="10">5%节点-(超级节点收益总量)</option> |
| | | <option value="11">5%节点平分</option> |
| | | <option value="12">5%基金会-(基金会收益总量)</option> |
| | | <option value="13">10%级差奖-(业绩奖收益总量)</option> |
| | | <option value="14">10%级差奖给会员</option> |
| | | <option value="15">dao3的全网分红</option> |
| | | <option value="16">dao4的全网分红</option> |
| | | <option value="17">dao5的全网分红</option> |
| | | <option value="18">dao5的平级全网分红</option> |
| | | <option value="19">DAO 3节点收益</option> |
| | | <option value="20">DAO 4节点收益</option> |
| | | <option value="21">DAO 5节点收益</option> |
| | | <option value="22">DAO 5平级收益</option> |
| | | <option value="23">资产钱包转账到闪对钱包</option> |
| | | <option value="24">资产钱包转账到闪对钱包手续费</option> |
| | | <option value="25">闪对钱包转USDT</option> |
| | | <option value="27">闪对钱包转USDT(USDT流水)</option> |
| | | <option value="28">入金,买入AUSD币</option> |
| | | <option value="29">每小时燃烧</option> |
| | | <option value="30">20%全网加权分红剩余</option> |
| | | <option value="31">AUSDT互转</option> |
| | | <option value="32">ANDAO互转</option> |
| | | <option value="33">权益额度增加</option> |
| | | <option value="34">进入提现池</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-inline">--> |
| | | <!-- <label class="layui-form-label">转账HASH:</label>--> |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <input type="text" placeholder="输入转账HASH" name="fromHash" autocomplete="off" class="layui-input">--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="layui-inline">--> |
| | | <!-- <label class="layui-form-label">类型:</label>--> |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <select name="type">--> |
| | | <!-- <option value=""></option>--> |
| | | <!-- <option value="4">入金,买入A币</option>--> |
| | | <!-- <option value="5">进入a底池</option>--> |
| | | <!-- <option value="6">进入b底池</option>--> |
| | | <!-- <option value="7">50%客户秒到</option>--> |
| | | <!-- <option value="8">全网加权分红收益总量</option>--> |
| | | <!-- <option value="9">10%直推</option>--> |
| | | <!-- <option value="10">5%节点-(超级节点收益总量)</option>--> |
| | | <!-- <option value="11">5%节点平分</option>--> |
| | | <!-- <option value="12">5%基金会-(基金会收益总量)</option>--> |
| | | <!-- <option value="13">10%级差奖-(业绩奖收益总量)</option>--> |
| | | <!-- <option value="14">10%级差奖给会员</option>--> |
| | | <!-- <option value="15">dao3的全网分红</option>--> |
| | | <!-- <option value="16">dao4的全网分红</option>--> |
| | | <!-- <option value="17">dao5的全网分红</option>--> |
| | | <!-- <option value="18">dao5的平级全网分红</option>--> |
| | | <!-- <option value="19">DAO 3节点收益</option>--> |
| | | <!-- <option value="20">DAO 4节点收益</option>--> |
| | | <!-- <option value="21">DAO 5节点收益</option>--> |
| | | <!-- <option value="22">DAO 5平级收益</option>--> |
| | | <!-- <option value="23">资产钱包转账到闪对钱包</option>--> |
| | | <!-- <option value="24">资产钱包转账到闪对钱包手续费</option>--> |
| | | <!-- <option value="25">闪对钱包转USDT</option>--> |
| | | <!-- <option value="27">闪对钱包转USDT(USDT流水)</option>--> |
| | | <!-- <option value="28">入金,买入AUSD币</option>--> |
| | | <!-- <option value="29">每小时燃烧</option>--> |
| | | <!-- <option value="30">20%全网加权分红剩余</option>--> |
| | | <!-- <option value="31">AUSDT互转</option>--> |
| | | <!-- <option value="32">ANDAO互转</option>--> |
| | | <!-- <option value="33">权益额度增加</option>--> |
| | | <!-- <option value="34">进入提现池</option>--> |
| | | <!-- </select>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area"> |
| New file |
| | |
| | | <div class="layui-fluid layui-anim febs-anim" id="hlm-basic-perk" lay-title="基础设置"> |
| | | <div class="layui-row layui-col-space8 febs-container"> |
| | | <form class="layui-form" action="" lay-filter="hlm-basic-perk-form"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body"> |
| | | <blockquote class="layui-elem-quote blue-border">基础设置:</blockquote> |
| | | <div class="layui-row layui-col-space10 layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">赠送倍数:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="donateScorePercent" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input" > |
| | | <div class="layui-word-aux">赠送消费金额1.5倍增值积分(释放额度,额度为零就要复购)</div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">个人静态(%):</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="staticRelease" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input" > |
| | | <div class="layui-word-aux">每天按照消费金额的5‰个人静态释放</div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">直推加速(%):</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="directRelease" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input" > |
| | | <div class="layui-word-aux">直推加速,享受直推人的100%个人静态释放</div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">封顶比例(%):</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="maxRelease" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input" > |
| | | <div class="layui-word-aux">最大封顶为此消费单的本金5%</div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">入单底池(%):</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="usdtOrderRelease" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input" > |
| | | <div class="layui-word-aux">商城入单的10%入底池</div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">平级补贴(%):</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="teamPerkLevelEquals" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input" > |
| | | <div class="layui-word-aux">平级10%</div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">普通上限:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="memberBuyMaxAmount" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input" > |
| | | <div class="layui-word-aux">普通会员购买上限</div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">USDT底池:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="packagePoor" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input" > |
| | | <div class="layui-word-aux">资产包USDT底池</div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">资产总分(%):</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="packageTotalScore" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input" > |
| | | <div class="layui-word-aux">资产包总积分</div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">积分价格:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="packageScorePrice" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input" > |
| | | <div class="layui-word-aux">资产包积分价格</div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">卖出划入(%):</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="packageSaleToPoorPercent" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input" > |
| | | <div class="layui-word-aux">资产包卖出划入底池比例</div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">提现手续(%):</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="withDrawFee" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input" > |
| | | <div class="layui-word-aux">提现手续费,划入底池比例</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-card-footer"> |
| | | <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="hlm-basic-perk-submit" id="submit">保存</button> |
| | | </div> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | </div> |
| | | <style> |
| | | .layui-form-label { |
| | | width: 120px; |
| | | } |
| | | |
| | | .layui-form-item .layui-input-block { |
| | | margin-left: 150px; |
| | | } |
| | | |
| | | .layui-table-form .layui-form-item { |
| | | margin-bottom: 20px !important; |
| | | } |
| | | </style> |
| | | <script data-th-inline="javascript" type="text/javascript"> |
| | | layui.use(['dropdown', 'jquery', 'febs', 'form', 'eleTree'], function () { |
| | | var $ = layui.jquery, |
| | | febs = layui.febs, |
| | | form = layui.form, |
| | | hlmBasicPerk = [[${hlmBasicPerk}]], |
| | | $view = $('#hlm-basic-perk'); |
| | | |
| | | form.verify({ |
| | | integer: [ |
| | | /^[1-9]\d*$/ |
| | | , '只能输入正整数' |
| | | ] |
| | | }); |
| | | |
| | | initHlmBasicPerkValue(); |
| | | |
| | | form.render(); |
| | | |
| | | function initHlmBasicPerkValue() { |
| | | form.val("hlm-basic-perk-form", { |
| | | "withDrawFee": hlmBasicPerk.withDrawFee, |
| | | "packageSaleToPoorPercent": hlmBasicPerk.packageSaleToPoorPercent, |
| | | "packageScorePrice": hlmBasicPerk.packageScorePrice, |
| | | "packageTotalScore": hlmBasicPerk.packageTotalScore, |
| | | "packagePoor": hlmBasicPerk.packagePoor, |
| | | "donateScorePercent": hlmBasicPerk.donateScorePercent, |
| | | "staticRelease": hlmBasicPerk.staticRelease, |
| | | "directRelease": hlmBasicPerk.directRelease, |
| | | "maxRelease": hlmBasicPerk.maxRelease, |
| | | "usdtOrderRelease": hlmBasicPerk.usdtOrderRelease, |
| | | "teamPerkLevelEquals": hlmBasicPerk.teamPerkLevelEquals, |
| | | "memberBuyMaxAmount": hlmBasicPerk.memberBuyMaxAmount |
| | | }); |
| | | } |
| | | |
| | | form.on('submit(hlm-basic-perk-submit)', function (data) { |
| | | febs.post(ctx + 'admin/goods/hlmBasicPerk', data.field, function (res) { |
| | | febs.alert.success('设置成功'); |
| | | return ; |
| | | }); |
| | | return false; |
| | | }); |
| | | }); |
| | | </script> |
| New file |
| | |
| | | <div class="layui-fluid layui-anim febs-anim" id="profit-setting" lay-title="会员等级设置"> |
| | | <div class="layui-row layui-col-space8 febs-container"> |
| | | <form class="layui-form" action="" lay-filter="profit-setting-form"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body"> |
| | | <blockquote class="layui-elem-quote blue-border">等级</blockquote> |
| | | <div class="layui-tab-item layui-show"> |
| | | <table id="agentBonus" lay-filter="agentBonus"></table> |
| | | </div> |
| | | </div> |
| | | <div class="layui-card-footer"> |
| | | <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="profit-setting-form-submit" id="submit">保存</button> |
| | | </div> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | </div> |
| | | <style> |
| | | .layui-form-label { |
| | | width: 120px; |
| | | } |
| | | |
| | | .layui-form-item .layui-input-block { |
| | | margin-left: 150px; |
| | | } |
| | | |
| | | .layui-table-form .layui-form-item { |
| | | margin-bottom: 20px !important; |
| | | } |
| | | </style> |
| | | <script data-th-inline="javascript" type="text/javascript"> |
| | | layui.use(['dropdown', 'jquery', 'validate', 'febs', 'form', 'eleTree', 'laytpl', 'table'], function () { |
| | | var $ = layui.jquery, |
| | | febs = layui.febs, |
| | | form = layui.form, |
| | | table = layui.table, |
| | | validate = layui.validate, |
| | | $view = $('#profit-setting') |
| | | , laytpl = layui.laytpl |
| | | , agentBonusArr; |
| | | |
| | | form.verify(validate); |
| | | form.render(); |
| | | |
| | | table.render({ |
| | | elem: '#agentBonus' |
| | | ,cols: [[ //表头 |
| | | {field: 'description', title: '名称'} |
| | | ,{field: 'shareMinPercent', title: '共享区加速百分比', edit:'text'} |
| | | ,{field: 'shareMaxPercent', title: '共享区加速最大值', edit:'text'} |
| | | ,{field: 'smallAchieve', title: '升级要求业绩', edit:'text'} |
| | | ,{field: 'teamPercent', title: '团队静态收益', edit:'text'} |
| | | ,{field: 'orderSalePercent', title: '全网销售额加权平分分红', edit:'text'} |
| | | ,{field: 'lastAgentCnt', title: '上一级代理数量', edit:'text'} |
| | | ,{field: 'buyMaxAmount', title: '购买上限', edit:'text'} |
| | | ,{field: 'type', title: '比例', edit:'text', hide:'true'} |
| | | ,{field: 'code', title: '比例', edit:'text', hide:'true'} |
| | | ]] |
| | | ,data: [] |
| | | }); |
| | | table.on('edit(agentBonus)', function(obj){ |
| | | var value = obj.value //得到修改后的值 |
| | | ,data = obj.data //得到所在行所有键值 |
| | | ,field = obj.field; //得到字段 |
| | | |
| | | for (let i = 0; i < agentBonusArr.length; i++) { |
| | | if (agentBonusArr[i].code === data.code) { |
| | | var valueData = {}; |
| | | valueData.shareMinPercent = data.shareMinPercent; |
| | | valueData.shareMaxPercent = data.shareMaxPercent; |
| | | valueData.smallAchieve = data.smallAchieve; |
| | | valueData.teamPercent = data.teamPercent; |
| | | valueData.orderSalePercent = data.orderSalePercent; |
| | | valueData.lastAgentCnt = data.lastAgentCnt; |
| | | valueData.buyMaxAmount = data.buyMaxAmount; |
| | | agentBonusArr[i].value = JSON.stringify(valueData); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | dicDataReq("TEAM_LEVEL"); |
| | | function dicDataReq(type) { |
| | | $.get(ctx + 'admin/goods/findDicByType/' + type, function (r) { |
| | | if (r.code === 200) { |
| | | var data = r.data; |
| | | if ("TEAM_LEVEL" == type) { |
| | | for (let i = 0; i < data.length; i++) { |
| | | data[i].shareMinPercent = JSON.parse(data[i].value).shareMinPercent; |
| | | data[i].shareMaxPercent = JSON.parse(data[i].value).shareMaxPercent; |
| | | data[i].smallAchieve = JSON.parse(data[i].value).smallAchieve; |
| | | data[i].teamPercent = JSON.parse(data[i].value).teamPercent; |
| | | data[i].orderSalePercent = JSON.parse(data[i].value).orderSalePercent; |
| | | data[i].lastAgentCnt = JSON.parse(data[i].value).lastAgentCnt; |
| | | data[i].buyMaxAmount = JSON.parse(data[i].value).buyMaxAmount; |
| | | } |
| | | agentBonusArr = data; |
| | | table.reload('agentBonus', { |
| | | data : data |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | form.on('submit(profit-setting-form-submit)', function (data) { |
| | | data.field.agentBonus = agentBonusArr; |
| | | $.ajax({ |
| | | 'url':ctx + 'admin/goods/bonusSystemSetting', |
| | | 'type':'post', |
| | | 'dataType':'json', |
| | | 'headers' : {'Content-Type' : 'application/json;charset=utf-8'}, |
| | | 'traditional': true, |
| | | 'data':JSON.stringify(data.field), |
| | | 'success':function (data) { |
| | | if (data.code == 200) { |
| | | febs.alert.success(data.message); |
| | | } |
| | | }, |
| | | 'error':function () { |
| | | febs.alert.warn('服务器繁忙'); |
| | | } |
| | | }) |
| | | return false; |
| | | }); |
| | | }); |
| | | </script> |