MySQL实现三级分销经销商管理系统(mysql 三级分销)

MySQL实现三级分销经销商管理系统

随着市场经济的飞速发展,越来越多的企业开始采用三级分销模式进行销售,这种模式可以更好地拓展销售渠道,提高销售效益。为了更好地管理经销商和商品信息,这里提供一种MySQL实现的三级分销经销商管理系统。

我们需要设计数据库。这里以三个表为例:经销商表、商品表和订单表。经销商表记录了经销商的基本信息,如经销商ID、姓名、联系方式和所在地等。商品表记录了商品的基本信息,如商品ID、名称、描述和价格等。订单表记录了订单的基本信息,如订单ID、下单时间、订单状态和销售额等。下面是三个表的建表语句:

“`sql

CREATE TABLE IF NOT EXISTS `distributor` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(50) DEFAULT NULL COMMENT ‘姓名’,

`mobile` varchar(20) DEFAULT NULL COMMENT ‘联系电话’,

`location` varchar(100) DEFAULT NULL COMMENT ‘所在地’,

`pid` int(11) DEFAULT NULL COMMENT ‘父级ID’,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT=’经销商表’;

CREATE TABLE IF NOT EXISTS `product` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(50) DEFAULT NULL COMMENT ‘商品名称’,

`description` varchar(255) DEFAULT NULL COMMENT ‘商品描述’,

`price` decimal(10,2) DEFAULT NULL COMMENT ‘商品价格’,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT=’商品表’;

CREATE TABLE IF NOT EXISTS `order` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`distributor_id` int(11) DEFAULT NULL COMMENT ‘经销商ID’,

`product_id` int(11) DEFAULT NULL COMMENT ‘商品ID’,

`price` decimal(10,2) DEFAULT NULL COMMENT ‘销售价格’,

`status` tinyint(4) DEFAULT NULL COMMENT ‘订单状态’,

`create_time` datetime DEFAULT NULL COMMENT ‘下单时间’,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT=’订单表’;


在设计好数据库之后,我们开始编写PHP代码,实现经销商和商品的录入和查询功能。这里我们使用PDO来连接MySQL数据库并执行相关操作。下面是PHP代码片段:

```php

// 建立数据库连接
$dsn = \'mysql:host=localhost;dbname=test\';
$username = \'root\';
$password = \'123456\';
try {
$dbh = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
die(\"Error: \" . $e->getMessage());
}

// 查询经销商
function query_distributors($pid = null) {
global $dbh;
$sql = \'SELECT * FROM distributor\';
if ($pid !== null) {
$sql .= \" WHERE pid = $pid\";
}
$stmt = $dbh->prepare($sql);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

// 查询商品
function query_products() {
global $dbh;
$stmt = $dbh->prepare(\'SELECT * FROM product\');
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

// 新增经销商
function add_distributor($name, $mobile, $location, $pid = null) {
global $dbh;
$stmt = $dbh->prepare(\'INSERT INTO distributor (name, mobile, location, pid) VALUES (?, ?, ?, ?)\');
$stmt->bindValue(1, $name);
$stmt->bindValue(2, $mobile);
$stmt->bindValue(3, $location);
$stmt->bindValue(4, $pid, PDO::PARAM_INT);
return $stmt->execute();
}
// 新增商品
function add_product($name, $description, $price) {
global $dbh;
$stmt = $dbh->prepare(\'INSERT INTO product (name, description, price) VALUES (?, ?, ?)\');
$stmt->bindValue(1, $name);
$stmt->bindValue(2, $description);
$stmt->bindValue(3, $price);
return $stmt->execute();
}

在实现经销商和商品的录入和查询功能之后,我们需要实现订单的生成和查询功能。由于三级分销模式中,经销商的销售额需要向上级经销商进行累计,所以在生成订单时需要递归查询所有上级经销商,并对它们的销售额进行累计。下面是PHP代码片段:

“`php

// 统计经销商和上级经销商的销售额

function count_sales($distributor_id, $product_id, $price, &$sales = []) {

global $dbh;

$stmt = $dbh->prepare(‘SELECT * FROM distributor WHERE id = ?’);

$stmt->bindValue(1, $distributor_id, PDO::PARAM_INT);

$stmt->execute();

$distributor = $stmt->fetch(PDO::FETCH_ASSOC);

if (!$distributor) {

return false;

}

$distributor_sales = $price * 0.3;

if ($distributor[‘pid’] !== null) {

if (!isset($sales[$distributor[‘pid’]])) {

$sales[$distributor[‘pid’]] = 0;

}

$sales[$distributor[‘pid’]] += $distributor_sales;

count_sales($distributor[‘pid’], $product_id, $price, $sales);

}

return true;

}

// 生成订单

function add_order($distributor_id, $product_id, $price) {

global $dbh;

$sales = [$distributor_id => $price * 0.7];

count_sales($distributor_id, $product_id, $price, $sales);

foreach ($sales as $sid => $sale) {

$stmt = $dbh->prepare(‘INSERT INTO `order` (distributor_id, product_id, price, status, create_time) VALUES (?, ?, ?, ?, ?)’);

$stmt->bindValue(1, $sid, PDO::PARAM_INT);

$stmt->bindValue(2, $product_id, PDO::PARAM_INT);

$stmt->bindValue(3, $sale);

$stmt->bindValue(4, 1);

$stmt->bindValue(5, date(‘Y-m-d H:i:s’));

$stmt->execute();

}

return true;

}

// 查询订单

function query_orders($distributor_id = null) {

global $dbh;

$sql = ‘SELECT `order`.id, distributor.name AS distributor_name, product.name AS product_name, `order`.price, `order`.status, `order`.create_time FROM `order` JOIN distributor ON distributor.id = `order`.distributor_id JOIN product ON product.id = `order`.product_id’;

if ($distributor_id !== null) {

$sql .= ” WHERE distributor.id = $distributor_id”;

}

$stmt = $dbh->prepare($sql);

$stmt->execute();

return $stmt->fetchAll(PDO::FETCH_ASSOC);

}


我们可以编写页面来展示三级分销经销商管理系统。这里使用了Bootstrap框架来实现页面的基本布局和样式。下面是PHP代码片段:

```php




三级分销经销商管理系统





三级分销经销商管理系统




@if ($tab == \'distributor\')










@foreach ($distributors as $distributor)








@endforeach

ID 姓名 联系电话 所在地 上级经销商 操作
{{ $distributor[\'id\'] }} {{ $distributor[\'name\'] }} {{ $distributor[\'mobile\'] }} {{ $distributor[\'location\'] }} {{ isset($distributor[\'parent\'][\'name\']) ? $distributor[\'parent\'][\'name\'] : \'-\' }}

@elseif ($tab == \'product\')









@foreach ($products as $product)







@endforeach

ID 商品名称 商品描述 商品价格 操作
{{ $product[\'id\'] }} {{ $product[\'name\'] }} {{ $product[\'description\'] }} {{ $product[\'price\'] }}

@elseif ($tab == \'order\')










@foreach ($orders as $order)








@endforeach

ID 经销商名称 商品名称 销售价格 订单状态 下单时间
{{ $order[\'id\'] }} {{ $order[\'distributor_name\'] }} {{ $order[\'product_name\'] }} {{ $order[\'price\'] }} {{ $order[\'status\'] }} {{ $order[\'create_time\'] }}

@endif






这样我们就完成了MySQL实现的三级分销经销商管理系统。通过这个系统,我们可以更好地管理经销商和商品信息,生成订单并累计销售额。具体实现可以根据需求进行修改和完善。


【AD】美国洛杉矶/香港/日本VPS推荐,回程电信CN2 GIA线路,延迟低、稳定性高、免费备份_搬瓦工

【AD】炭云:36元/年/1GB内存/20GB SSD空间/500GB流量/5Gbps端口/KVM/香港/国际线路LUMEN