From a8a40896108ac780a55ecc504cecdfd041ab2838 Mon Sep 17 00:00:00 2001
From: Hentua <wangdoubleone@gmail.com>
Date: Wed, 19 Apr 2023 00:25:50 +0800
Subject: [PATCH] fix
---
src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java | 4
src/main/java/cc/mrbird/febs/mall/entity/MatrixTreeNode.java | 29 ++
src/main/resources/templates/febs/views/modules/system/bonusSetting.html | 140 ++++++++++++
src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java | 4
src/main/java/cc/mrbird/febs/common/enumerates/MemberLevelEnums.java | 29 ++
src/main/java/cc/mrbird/febs/mall/entity/MallMember.java | 5
src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html | 62 +++--
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 76 +++---
src/main/resources/mapper/modules/MatrixTreeNodeMapper.xml | 14 +
src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java | 2
src/main/java/cc/mrbird/febs/mall/init/MatrixTreeInit.java | 43 +++
src/main/java/cc/mrbird/febs/mall/mapper/MatrixTreeNodeMapper.java | 14 +
src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 8
src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java | 94 --------
src/main/java/cc/mrbird/febs/common/tree/MemberNode.java | 6
src/test/java/cc/mrbird/febs/TreeTest.java | 2
src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html | 66 +++--
src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java | 4
18 files changed, 413 insertions(+), 189 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/MemberLevelEnums.java b/src/main/java/cc/mrbird/febs/common/enumerates/MemberLevelEnums.java
new file mode 100644
index 0000000..1354b76
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/MemberLevelEnums.java
@@ -0,0 +1,29 @@
+package cc.mrbird.febs.common.enumerates;
+
+import lombok.Getter;
+
+@Getter
+public enum MemberLevelEnums {
+
+ ZERO_LEVEL_Y(1, "ZERO_LEVEL", "素人")
+ ,ZERO_LEVEL_N(2, "ZERO_LEVEL", "素人")
+ ,FIRST_LEVEL_Y(1, "FIRST_LEVEL", "玉郎")
+ ,FIRST_LEVEL_N(2, "FIRST_LEVEL", "丽人")
+ ,SECOND_LEVEL_Y(1, "SECOND_LEVEL", "才子")
+ ,SECOND_LEVEL_N(2, "SECOND_LEVEL", "佳人")
+ ,THIRD_LEVEL_Y(1, "THIRD_LEVEL", "蓝颜")
+ ,THIRD_LEVEL_N(2, "THIRD_LEVEL", "红颜")
+ ,FOUR_LEVEL_Y(1, "FOUR_LEVEL", "娇娘")
+ ,FOUR_LEVEL_N(2, "FOUR_LEVEL", "贤仕");
+
+ private int male;
+
+ private String code;
+
+ private String desc;
+ MemberLevelEnums(int male, String code, String desc) {
+ this.male = male;
+ this.code = code;
+ this.desc = desc;
+ }
+}
diff --git a/src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java b/src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java
index 7d7d263..3356f8f 100644
--- a/src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java
+++ b/src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java
@@ -103,7 +103,7 @@
}
for (MemberNode node : nodeList) {
- if (node.getMemberId().equals(param) || node.getAddress().equals(param) || node.getInviteId().equals(param)) {
+ if (node.getMemberId().equals(param) || node.getPhone().equals(param) || node.getInviteId().equals(param)) {
return node;
}
diff --git a/src/main/java/cc/mrbird/febs/common/tree/MemberNode.java b/src/main/java/cc/mrbird/febs/common/tree/MemberNode.java
index c60e421..ef9e6d2 100644
--- a/src/main/java/cc/mrbird/febs/common/tree/MemberNode.java
+++ b/src/main/java/cc/mrbird/febs/common/tree/MemberNode.java
@@ -14,7 +14,7 @@
private Long memberId;
- private String address;
+ private String phone;
private String inviteId;
@@ -22,9 +22,9 @@
public List<MemberNode> CHILD = new LinkedList<>();
- public MemberNode(Long memberId, String address, String inviteId, String refererId) {
+ public MemberNode(Long memberId, String phone, String inviteId, String refererId) {
this.memberId = memberId;
- this.address = address;
+ this.phone = phone;
this.inviteId = inviteId;
this.refererId = refererId;
}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
index fa0d6bb..a76379b 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
@@ -46,6 +46,10 @@
public String profitSetting() {
return FebsUtil.view("modules/system/profitSetting");
}
+ @GetMapping("bonusSetting")
+ public String bonusSetting() {
+ return FebsUtil.view("modules/system/bonusSetting");
+ }
/**
* 积分设置
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java b/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java
index 99ebfc9..927d820 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java
@@ -92,4 +92,8 @@
*/
private Integer scorePercent;
+ private Integer goodsLevel;
+
+ private Integer normalPer;
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java b/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java
index 2033730..da1870a 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java
@@ -95,4 +95,8 @@
* 积分兑换比例
*/
private Integer scorePercent;
+
+ private Integer goodsLevel;
+
+ private Integer normalPer;
}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java b/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java
index 969cb07..e6e2041 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java
@@ -167,4 +167,9 @@
* 账号级别 1-会员 2-代理 3-股东
*/
private Integer accountLevel;
+
+ /**
+ * 伞下数量
+ */
+ private Integer childNodeCnt;
}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MatrixTreeNode.java b/src/main/java/cc/mrbird/febs/mall/entity/MatrixTreeNode.java
new file mode 100644
index 0000000..77d040c
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MatrixTreeNode.java
@@ -0,0 +1,29 @@
+package cc.mrbird.febs.mall.entity;
+
+import cc.mrbird.febs.common.entity.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName(value = "matrix_tree_node")
+public class MatrixTreeNode extends BaseEntity {
+
+ private Long treeNode;
+
+ private Long parentNode;
+
+ private Integer deep;
+
+ @TableField(exist = false)
+ private String phone;
+
+ @TableField(exist = false)
+ private String name;
+
+ @TableField(exist = false)
+ private String inviteId;
+
+ @TableField(exist = false)
+ private String referrerId;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/init/MatrixTreeInit.java b/src/main/java/cc/mrbird/febs/mall/init/MatrixTreeInit.java
new file mode 100644
index 0000000..419b9c2
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/init/MatrixTreeInit.java
@@ -0,0 +1,43 @@
+package cc.mrbird.febs.mall.init;
+
+import cc.mrbird.febs.common.tree.MatrixTree;
+import cc.mrbird.febs.common.tree.MemberNode;
+import cc.mrbird.febs.mall.entity.MatrixTreeNode;
+import cc.mrbird.febs.mall.mapper.MatrixTreeNodeMapper;
+import cn.hutool.core.collection.CollUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.util.List;
+
+/**
+ * 初始化
+ */
+@Slf4j
+@Component
+public class MatrixTreeInit {
+
+ @Autowired
+ private MatrixTreeNodeMapper matrixTreeNodeMapper;
+
+ @PostConstruct
+ public void init() {
+ List<MatrixTreeNode> tree = matrixTreeNodeMapper.selectAllMatrixTreeNode();
+
+ if (CollUtil.isEmpty(tree)) {
+ return;
+ }
+
+ for (MatrixTreeNode node : tree) {
+ MemberNode memberNode = new MemberNode();
+ memberNode.setMemberId(node.getTreeNode());
+ memberNode.setPhone(node.getPhone());
+ memberNode.setInviteId(node.getInviteId());
+ MatrixTree.getInstance().addNode(memberNode);
+ }
+ }
+
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MatrixTreeNodeMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MatrixTreeNodeMapper.java
new file mode 100644
index 0000000..0fc298c
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MatrixTreeNodeMapper.java
@@ -0,0 +1,14 @@
+package cc.mrbird.febs.mall.mapper;
+
+import cc.mrbird.febs.mall.entity.MatrixTreeNode;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface MatrixTreeNodeMapper extends BaseMapper<MatrixTreeNode> {
+
+ List<MatrixTreeNode> selectAllMatrixTreeNode();
+
+ MatrixTreeNode selectByTreeNode(@Param("treeNode") Long treeNode);
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
index c000908..f77deb7 100644
--- a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
@@ -40,97 +40,9 @@
/**
* 代理分红
*/
-// @Scheduled(cron = "0 30 0 * * ?")
-// public void profitJob() {
-// memberProfitService.agentProfit(null);
-// }
-
-// @Scheduled(cron = "0 30 1 * * ?")
-// public void storeAndDirectorJob() {
-// memberProfitService.storeAndDirectorProfit(null);
-// }
-
-// /**
-// * 线下服务中心补贴
-// */
-// @Scheduled(cron = "0 0 1 * * ?")
-// public void thankfulJob() {
-// memberProfitService.thankfulProfit(null);
-// }
-
- /**
- * 代理商补贴 TODO 需要去掉注释
- */
- @Scheduled(cron = "0 0 1 * * ?")
- public void agentPerkJob() {
- memberProfitService.agentPerkJob(null);
+ @Scheduled(cron = "0 30 0 * * ?")
+ public void profitJob() {
+ memberProfitService.agentProfit(null);
}
- /**
- * 线下服务中心补贴
- */
- @Scheduled(cron = "0 0 1 * * ?")
- public void offLinePerkJob() {
- memberProfitService.offLinePerkJob(null);
- }
-
- /**
- * 平级奖励补贴
- */
- @Scheduled(cron = "0 0 1 * * ?")
- public void teamEqualsPerkJob() {
- memberProfitService.teamEqualsPerkJob(null);
- }
-
- /**
- * 补贴消息--重试
- * 一个小时运行一次
- */
- @Scheduled(cron = "0 0/5 * * * ?")
- public void mqPerkRetryJob() {
- memberProfitService.mqPerkRetryJob();
- }
- /**
- * 联创、合伙人的每日绿色凭证释放
- */
- @Scheduled(cron = "0 0 1 * * ?")
- public void scoreRecordReleaseJob() {
- memberProfitService.scoreRecordReleaseJob();
- }
-
- /**
- * 业绩产生凭证
- */
- @Scheduled(cron = "0 0 1 * * ?")
- public void achieveReleaseJob() {
- memberProfitService.achieveReleaseJob();
- }
-
-
-
-
- /**
- * 静态分红
- */
-// @Scheduled(cron = "0 0 0 * * ?")
-// public void staticProfitJob() {
-// memberProfitService.staticProfit(null);
-// }
-
- /**
- * 排名奖 每月1号
- */
-// @Scheduled(cron = "0 30 0 1 * ?")
-// public void rankJob() {
-// memberProfitService.rankProfit();
-// }
-
- /**
- * 积分池,所有消费拿出10%放到积分池,然后按1%每天释放加权平分
- */
-// @Scheduled(cron = "0 0 2 * * ?")
-// @Scheduled(cron = "0 0/5 * * * ? ")
-// public void scorePool() {
-// memberProfitService.scorePool();
-// }
}
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 b61b090..c4938c0 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
@@ -1,6 +1,9 @@
package cc.mrbird.febs.mall.service.impl;
import cc.mrbird.febs.common.enumerates.*;
+import cc.mrbird.febs.common.tree.MatrixTree;
+import cc.mrbird.febs.common.tree.MemberNode;
+import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.MallUtils;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
@@ -41,54 +44,59 @@
private final MallMemberMapper memberMapper;
private final MallOrderInfoMapper mallOrderInfoMapper;
- private final IApiMallMemberWalletService iApiMallMemberWalletService;
private final IMallMoneyFlowService mallMoneyFlowService;
private final MallMemberWalletMapper mallMemberWalletMapper;
private final SqlSessionTemplate sqlSessionTemplate;
- private final IApiMallMemberWalletService memberWalletService;
private final MallMoneyFlowMapper mallMoneyFlowMapper;
private final MallMqRecordMapper mallMqRecordMapper;
+
+ private final MatrixTreeNodeMapper matrixTreeNodeMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void autoUpAgentLevel(Long memberId) {
+ log.info("###代理自动升级###");
MallMember member = memberMapper.selectById(memberId);
- if(StrUtil.isBlank(member.getReferrerIds())) {
+
+ MatrixTree tree = MatrixTree.getInstance();
+ MemberNode node = tree.getNode(member.getInviteId());
+ if (node != null) {
return;
}
- List<String> ids = StrUtil.split(member.getReferrerIds(), ',');
- List<MallMember> parentMembers = memberMapper.selectByInviteIds(ids);
- for (MallMember parent : parentMembers) {
- // 没有购买套餐无法升级合伙人等级
- if (AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())) {
- continue;
- }
- //合伙人的下一个层级
- String parentLevel = parent.getLevel();
- String nextLevel = MemberLevelEnum.SECOND_LEVEL.getNextLevel(parentLevel);
- if (parentLevel.equals(nextLevel)) {
- log.info("当前层级无下一级:{}", parent.getLevel());
- continue;
- }
-
- DataDictionaryCustom nextLevelDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("AGENT_LEVEL_REQUIRE", nextLevel);
- AgentInfo agentInfo = JSONObject.parseObject(nextLevelDic.getValue(), AgentInfo.class);
- if (!directMemberCnt(parent, agentInfo)) {
- continue;
- }
-
- if (!agentCntFinish(parent, agentInfo)) {
- continue;
- }
-
- if (!teamIncome(parent, agentInfo)) {
- continue;
- }
-
- parent.setLevel(nextLevel);
- memberMapper.updateById(parent);
+ MatrixTreeNode matrixTreeNode = matrixTreeNodeMapper.selectByTreeNode(memberId);
+ if (matrixTreeNode != null) {
+ return;
}
+
+ node = new MemberNode();
+ node.setInviteId(member.getInviteId());
+ node.setPhone(member.getPhone());
+ node.setRefererId(member.getReferrerId());
+ node.setMemberId(member.getId());
+ MemberNode parentNode = tree.addNode(node);
+
+ matrixTreeNode = new MatrixTreeNode();
+ matrixTreeNode.setTreeNode(memberId);
+ matrixTreeNode.setParentNode(parentNode.getMemberId());
+ matrixTreeNodeMapper.insert(matrixTreeNode);
+
+ List<DataDictionaryCustom> dicList = dataDictionaryCustomMapper.selectDicByType(AppContants.AGENT_LEVEL);
+ DataDictionaryCustom dic = null;
+ for (DataDictionaryCustom dataDictionaryCustom : dicList) {
+ if (Integer.parseInt(dataDictionaryCustom.getValue()) == parentNode.CHILD.size()) {
+ dic = dataDictionaryCustom;
+ }
+ }
+
+ if (dic == null) {
+ return;
+ }
+
+ MallMember parentMember = memberMapper.selectById(parentNode.getMemberId());
+ parentMember.setChildNodeCnt(parentNode.CHILD.size());
+ parentMember.setLevel(dic.getCode());
+ memberMapper.updateById(parentMember);
}
/**
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
index 2bfdc85..df1062a 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
@@ -382,13 +382,7 @@
@Transactional(rollbackFor = Exception.class)
public void agentProfit(Date profitDate) {
log.info("#####==代理分红==start==#####");
- if (profitDate == null) {
- profitDate = DateUtil.offset(new Date(), DateField.DAY_OF_YEAR, -1);
- }
- // 套餐业绩
-// BigDecimal tcIncome = mallOrderInfoMapper.selectTotalAmountUnCostForDate(profitDate, null, "D", 2);
- // 普通商品业绩
-// BigDecimal normalIncome = mallOrderInfoMapper.selectTotalAmountUnCostForDate(profitDate, null, "D", 1);
+
BigDecimal totalIncome = mallAchieveRecordMapper.selectAchieveTotal("D", profitDate);
DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.AGENT_BONUS.getType(), DataDictionaryEnum.AGENT_BONUS.getCode());
diff --git a/src/main/resources/mapper/modules/MatrixTreeNodeMapper.xml b/src/main/resources/mapper/modules/MatrixTreeNodeMapper.xml
new file mode 100644
index 0000000..d2f5c33
--- /dev/null
+++ b/src/main/resources/mapper/modules/MatrixTreeNodeMapper.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cc.mrbird.febs.mall.mapper.MatrixTreeNodeMapper">
+
+ <select id="selectAllMatrixTreeNode" resultType="cc.mrbird.febs.mall.entity.MatrixTreeNode">
+ select a.*, b.phone, b.name, b.invite_id, b.referrer_id from matrix_tree_node a
+ inner join mall_member b on a.tree_node=b.id
+ order by a.id
+ </select>
+
+ <select id="selectByTreeNode" resultType="cc.mrbird.febs.mall.entity.MatrixTreeNode">
+ select * from matrix_tree_node where tree_node=#{treeNode}
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html
index cce45f6..9d45d25 100644
--- a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html
+++ b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html
@@ -75,13 +75,13 @@
<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="scorePercent" lay-verify="required|integer" placeholder="" autocomplete="off" class="layui-input">
- <div class="layui-word-aux">设置50,即商品价格1000,积分可抵扣的最大金额为1000*50%=500,填写整数,如【50】</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="scorePercent" lay-verify="required|integer" placeholder="" autocomplete="off" class="layui-input">-->
+<!-- <div class="layui-word-aux">设置50,即商品价格1000,积分可抵扣的最大金额为1000*50%=500,填写整数,如【50】</div>-->
+<!-- </div>-->
+<!-- </div>-->
</div>
<div class="layui-form-item">
@@ -104,29 +104,33 @@
</div>
</div>
- <div class="layui-form-item febs-hide tc-set">
- <label class="layui-form-label">贡献值:</label>
+ <div class="layui-form-item tc-set">
+ <label class="layui-form-label febs-form-item-require">商品类型</label>
<div class="layui-input-block">
- <input type="text" name="star" placeholder="请输入贡献值" autocomplete="off" class="layui-input">
- <div class="layui-form-mid layui-word-aux">支付后,用户获取对应的贡献值</div>
+ <select name="goodsLevel" class="goods-level" lay-filter="goods-level-select">
+ <option value="1">会员套餐</option>
+ <option value="2">代理套餐</option>
+ <option value="2">股东套餐</option>
+ </select>
</div>
</div>
-<!-- <div class="layui-form-item febs-hide tc-set">-->
-<!-- <label class="layui-form-label">静态倍数</label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input type="text" name="staticMulti" placeholder="请输入静态倍数" autocomplete="off" class="layui-input">-->
-<!-- <div class="layui-form-mid layui-word-aux">支付后,赠送(购买金额*静态倍数)的赠送积分</div>-->
-<!-- </div>-->
-<!-- </div>-->
+ <div class="layui-form-item febs-hide tc-set">
+ <label class="layui-form-label">静态倍数</label>
+ <div class="layui-input-block">
+ <input type="text" name="staticMulti" placeholder="请输入静态倍数" autocomplete="off" class="layui-input">
+ <div class="layui-form-mid layui-word-aux">支付后,赠送(购买金额*静态倍数)的赠送积分</div>
+ </div>
+ </div>
-<!-- <div class="layui-form-item febs-hide tc-set">-->
-<!-- <label class="layui-form-label">静态占比(%)</label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input type="text" name="staticProp" placeholder="请输入静态占比" autocomplete="off" class="layui-input">-->
-<!-- <div class="layui-form-mid layui-word-aux">所有套餐静态占比相加应等于100%</div>-->
-<!-- </div>-->
-<!-- </div>-->
+ <div class="layui-form-item normal-set">
+ <label class="layui-form-label febs-form-item-require">直推比例(%)</label>
+ <div class="layui-input-block">
+ <input type="text" name="normalPer" placeholder="请输入直推比例"
+ autoComplete="off" class="layui-input">
+ <div class="layui-form-mid layui-word-aux">普通商品直推奖励</div>
+ </div>
+ </div>
</div>
<div class="layui-tab-item">
@@ -661,6 +665,14 @@
$(this).hide();
}
})
+
+ $('.normal-set').each(function () {
+ if (data.value == 2) {
+ $(this).hide();
+ } else {
+ $(this).show();
+ }
+ })
});
});
</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html b/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html
index a19d98e..008ed59 100644
--- a/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html
+++ b/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html
@@ -83,13 +83,13 @@
<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="scorePercent" lay-verify="required|integer" placeholder="" autocomplete="off" class="layui-input">
- <div class="layui-word-aux">设置50,即商品价格1000,积分可抵扣的最大金额为1000*50%=500,填写整数,如【50】</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="scorePercent" lay-verify="required|integer" placeholder="" autocomplete="off" class="layui-input">-->
+<!-- <div class="layui-word-aux">设置50,即商品价格1000,积分可抵扣的最大金额为1000*50%=500,填写整数,如【50】</div>-->
+<!-- </div>-->
+<!-- </div>-->
</div>
<div class="layui-form-item">
@@ -115,30 +115,32 @@
</div>
<div class="layui-form-item febs-hide tc-set">
- <label class="layui-form-label">贡献值:</label>
+ <label class="layui-form-label febs-form-item-require">套餐类型</label>
<div class="layui-input-block">
- <input type="text" name="star" lay-verify="required" placeholder="请输入贡献值" autocomplete="off" class="layui-input">
- <div class="layui-form-mid layui-word-aux">支付后,用户获取对应的贡献值</div>
+ <select name="goodsLevel" class="goods-level">
+ <option value="1">会员套餐</option>
+ <option value="2">代理套餐</option>
+ <option value="2">股东套餐</option>
+ </select>
</div>
</div>
-<!-- <div class="layui-form-item febs-hide tc-set">-->
-<!-- <label class="layui-form-label">静态倍数</label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input type="text" name="staticMulti" placeholder="请输入静态倍数"-->
-<!-- autoComplete="off" class="layui-input">-->
-<!-- <div class="layui-form-mid layui-word-aux">支付后,赠送(购买金额*静态倍数)的赠送积分-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="layui-form-item febs-hide tc-set">-->
-<!-- <label class="layui-form-label">静态占比(%)</label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input type="text" name="staticProp" placeholder="请输入静态占比"-->
-<!-- autoComplete="off" class="layui-input">-->
-<!-- <div class="layui-form-mid layui-word-aux">所有套餐静态占比相加应等于100%</div>-->
-<!-- </div>-->
-<!-- </div>-->
+ <div class="layui-form-item febs-hide tc-set">
+ <label class="layui-form-label febs-form-item-require">静态倍数</label>
+ <div class="layui-input-block">
+ <input type="text" name="staticMulti" placeholder="请输入静态倍数" autocomplete="off" class="layui-input">
+ <div class="layui-form-mid layui-word-aux">支付后,赠送(购买金额*静态倍数)的赠送积分</div>
+ </div>
+ </div>
+
+ <div class="layui-form-item normal-set">
+ <label class="layui-form-label febs-form-item-require">直推比例(%)</label>
+ <div class="layui-input-block">
+ <input type="text" name="normalPer" placeholder="请输入直推比例"
+ autoComplete="off" class="layui-input">
+ <div class="layui-form-mid layui-word-aux">普通商品直推奖励</div>
+ </div>
+ </div>
</div>
<div class="layui-tab-item">
@@ -688,6 +690,7 @@
"star": goodsInfo.star,
"sortCnt": goodsInfo.sortCnt,
"scorePercent": goodsInfo.scorePercent,
+ "goodsLevel": goodsInfo.goodsLevel,
"thumbs": thumbs
});
@@ -697,6 +700,7 @@
if (goodsInfo.isNormal == 2) {
$(".tc-set").show();
+ $(".normal-set").hide();
}
if (goodsInfo.hasCarriage == 1) {
@@ -778,6 +782,14 @@
$(this).hide();
}
})
+
+ $('.normal-set').each(function () {
+ if (data.value == 2) {
+ $(this).hide();
+ } else {
+ $(this).show();
+ }
+ })
});
});
diff --git a/src/main/resources/templates/febs/views/modules/system/bonusSetting.html b/src/main/resources/templates/febs/views/modules/system/bonusSetting.html
new file mode 100644
index 0000000..9fe455b
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/system/bonusSetting.html
@@ -0,0 +1,140 @@
+<div class="layui-fluid layui-anim febs-anim" id="bonus-setting" lay-title="系统返利设置">
+ <div class="layui-row layui-col-space8 febs-container">
+ <form class="layui-form" action="" lay-filter="bonus-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-body">
+ <blockquote class="layui-elem-quote blue-border">全网分红设置</blockquote>
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">全网分红比例(%):</label>
+ <div class="layui-input-block">
+ <input type="text" name="AGENT_BONUS" lay-verify="required|integer" autocomplete="off" class="layui-input" >
+ </div>
+ <div class="layui-word-aux" style="margin-left: 150px;">设置为0则不分红</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="allCashOut" lay-verify="required|integer" autocomplete="off" class="layui-input" >
+ </div>
+ <div class="layui-word-aux" style="margin-left: 150px;">每天从分红池中释放分红的比例,设置为0则不释放</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="allCashOut" lay-verify="required|integer" autocomplete="off" class="layui-input" >
+ </div>
+ <div class="layui-word-aux" style="margin-left: 150px;"></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="allCashOut" lay-verify="required|integer" autocomplete="off" class="layui-input" >
+ </div>
+ <div class="layui-word-aux" style="margin-left: 150px;"></div>
+ </div>
+ </div>
+ <div class="layui-card-footer">
+ <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="bonus-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 = $('#bonus-setting')
+ , laytpl = layui.laytpl
+ , agentBonusArr;
+
+ form.verify(validate);
+ form.render();
+
+ table.render({
+ elem: '#agentBonus'
+ ,cols: [[ //表头
+ {field: 'pushCnt', title: '直推(个)', edit:'text'}
+ ,{field: 'prop', title: '比例', edit:'text'}
+ ]]
+ ,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.pushCnt = data.pushCnt;
+ valueData.prop = data.prop;
+ agentBonusArr[i].value = JSON.stringify(valueData);
+ }
+ }
+ });
+
+ dicDataReq("DIRECT_BONUS_SETTING");
+ function dicDataReq(type) {
+ $.get(ctx + 'admin/common/findDicByType/' + type, function (r) {
+ if (r.code === 200) {
+ var data = r.data;
+ if ("DIRECT_BONUS_SETTING" == type) {
+ for (let i = 0; i < data.length; i++) {
+ data[i].pushCnt = JSON.parse(data[i].value).pushCnt;
+ data[i].prop = JSON.parse(data[i].value).prop;
+ }
+ agentBonusArr = data;
+ table.reload('agentBonus', {
+ data : data
+ });
+ }
+ }
+ });
+ }
+
+ form.on('submit(bonus-setting-form-submit)', function (data) {
+ data.field.agentBonus = agentBonusArr;
+ $.ajax({
+ 'url':ctx + 'admin/system/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>
\ No newline at end of file
diff --git a/src/test/java/cc/mrbird/febs/TreeTest.java b/src/test/java/cc/mrbird/febs/TreeTest.java
index 28f5322..8312aeb 100644
--- a/src/test/java/cc/mrbird/febs/TreeTest.java
+++ b/src/test/java/cc/mrbird/febs/TreeTest.java
@@ -21,7 +21,7 @@
MemberNode node = new MemberNode();
node.setMemberId((long) i);
node.setInviteId(String.valueOf(i));
- node.setAddress(String.valueOf(i));
+ node.setPhone(String.valueOf(i));
instance.addNode(node);
}
--
Gitblit v1.9.1