分销策略及实现

当今社会,电商等行业用分销来拉拢用户群体的场景越演越烈。

举例:A分享给B后,A获得一定奖励。
B再次分享给C后,A获得80%奖励,B获得60%奖励。
C再次分享给D后,A获得80%奖励,B获得60%奖励,C获得40%奖励。等等类似

我们得实现方案有两种:
方式一:采用邀请码方式。对用户不友好
方式二:采用链接或二维码携带加密参数分享。 推荐

java 如何实现此需求呢?

  1. 建库建表,每行数据 id,parent_id parent_id用来关联用户上级。
  2. 分享地址携带用户id加密
  3. 奖励时,在库中查找传入用户id的所有上级。

这里就不再代码实现。如果有做过组织架构的项目,那这个功能就不在话下了。

附上我项目中的组织架构核心代码:

/**
* 1.将模型转换成含带children的模型 此步骤也可省略
* 2.获取没有父级的所有节点
* @param list  数据库中所有的行
* @return
*/
private List<SysDepartTreeModel> wrapTreeDataToTreeList(List<SysDepart> list){
	//数据库所有数据数组
	List<SysDepartTreeModel> treeAllList = new ArrayList<>();
	//顶层数据数据
	List<SysDepartTreeModel> treeParentList = new ArrayList<>();
	
	list.stream().forEach(dept->{
		//修改SysDepart 数据模型
		treeAllList.add(new SysDepartTreeModel(dept));
		//获得树一级的所有父节点
		if(oConvertUtils.isEmpty(dept.getParentId())){
			treeParentList.add(new SysDepartTreeModel(dept));
		}
	});
	getGrandChildren(treeAllList,treeParentList);
	return treeParentList;
}


/**
* 获取树结构的组织机构
* @param treeAllList  数据库总条数
* @param treeParentList 最顶端 没有parent的数组
*/
private void getGrandChildren(List<SysDepartTreeModel> treeAllList,List<SysDepartTreeModel> treeParentList){
	treeParentList.stream().forEach(tree->{
		List<SysDepartTreeModel> chlidens = treeAllList.stream().filter(item -> item.getParentId().equals(tree.getId())).collect(Collectors.toList());
		tree.getChildren().addAll(chlidens);
		if(!oConvertUtils.listIsEmpty(chlidens)){
			getGrandChildren(treeAllList,tree.getChildren());
		}
	});
}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值