优雅的分销设计

文章描述了如何创建名为`s_distribution_user`和`s_distribution_tree_level`的数据库表,用于存储分销用户信息和层级关系,以及提供了针对这些表的CRUD操作方法,如新增用户、查询子孙和祖宗节点等。
摘要由CSDN通过智能技术生成

1、用户以及关系表

CREATE TABLE `s_distribution_user` (
  `id` bigint(20) NOT NULL COMMENT '用户ID',
  `user_name` varchar(30) NOT NULL COMMENT '用户账号',
  `user_type` tinyint(4) DEFAULT NULL COMMENT '用户类型(10个人 20商家)',
  `phone` varchar(11) DEFAULT '' COMMENT '手机号码',
  `avatar` varchar(255) DEFAULT '' COMMENT '头像地址',
  `password` varchar(100) DEFAULT '' COMMENT '密码',
  `distribution_ratio` int(20) DEFAULT NULL COMMENT '分销比例',
  `status` tinyint(1) DEFAULT '0' COMMENT '帐号状态(0正常 1停用)',
  `is_del` tinyint(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
  `login_date` datetime DEFAULT NULL COMMENT '最后登录时间',
  `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `level` int(11) DEFAULT NULL COMMENT '分销层级(绝对)',
  `pid` bigint(20) DEFAULT NULL COMMENT '父id',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `phone` (`phone`) USING BTREE COMMENT '手机号唯一'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='分销用户表';

# 分销关系
CREATE TABLE `s_distribution_tree_level` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `ancestor` bigint(20) NOT NULL COMMENT '祖宗id',
  `descendant` bigint(20) NOT NULL COMMENT '后裔id',
  `level` int(11) NOT NULL COMMENT '层级',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COMMENT='分销用户关系表';

2、crud的一些方法

/** 
* 新增用户
* inser_id,新增用户id
* resettlement_id,推荐用户id
**/
insert into `s_distribution_treepaths` (ancestor,descendant,path_length)
					  select ancestor,#{inser_id},level+1 from `s_distribution_treepaths` AS t where t.descendant=#{resettlement_id}
					  UNION ALL
					  SELECT #{inser_id},#{inser_id},1;
/**
* 查询所有子孙节点
* 用户id
* 层级level 可选
**/
SELECT * FROM `s_distribution_user` INNER JOIN `s_distribution_treepaths` on `s_distribution_user`.id = `s_distribution_treepaths`.descendant WHERE `s_distribution_treepaths`.ancestor = #{id} and level=#{level};

/**
 * 查询所有祖宗节点
 * 用户id
**/
SELECT * FROM `s_distribution_user` INNER JOIN `s_distribution_treepaths` on `s_distribution_user`.id = 
`s_distribution_treepaths`.ancestor WHERE `s_distribution_treepaths`.descendant = #{id};


  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
打开dns.37it.cn免费申请二级域名解析方可使用 否则会出现00002993错误 用替换工具ultrareplace,文本编辑工具:Notepad++ 下面是需要替换的地方 ceshi.vvei.cn 超级人脉管家 http://mp.weixin.qq.com/s?__biz=MzA4MTI1OTI1OA==&mid=212268202&idx=1&sn=581c81665c013e1ee5c01db440df2593#rd 这个到时候自己撰写一份新手指南替换 掉 http://123.com/index.php?g=Admin&m=Login&a=index 后台地址 admin admin888 微信管理>>自定义回复 修改 http://ceshi.vvei.cn/ 替换为 你的网站 1、数据库连接地址:Public\Conf\config.php 2、微信菜单修改:Public\Conf\button_config.php,然后“微信管理”-“菜单管理”-“重新生成菜单”。 另下面三行代码请修改: $link_config (还没有关注的,引导关注,点击“立即关注”进入微信文章) $config_good_pic (购买时,页面上面的产品图) $headimgurl (没有购买前的头部左上角LOGO) 3、公众号里面的支付授权目录:直接域名就可以 支付回调URL:直接域名就可以 告警通知URL:先空着 4、更“换推广二维码”图片,图片在根目录保持格式、名字不变。记得在服务器根目录/imgpublic里删除其它多余的图片,只留benbendou.jpg即可。 5、页面的CSS在这里改:Application\Tpl\App\default\Public\Static\css 6、如果头像出不来,可以把根目录的imgpublic文件夹权限设为777 7、微信支付前显示的图片: Application\Tpl\App\default\Public\Static\images\productsinfo.jpg 对应更改的文件:Application\Tpl\App\default\Index\pay.html 8、更改下单时的“备注”内容:Application\Tpl\App\default\Index\index.html 9、关于修改微信关注后回复的内容目录地址: Application\Lib\Action\Admin\WechatAction.class.php 可修改第249,263,267行,可修改中文汉字,不要修改参数代码。 =============================================================== 后台登录:http://您的域名/index.php?g=Admin 初始帐号:admin 密 码:admin888
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值