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


数据运维技术 » MySQL实现三级分销经销商管理系统(mysql 三级分销)