iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php怎么实现简单的雇员管理系统
  • 619
分享到

php怎么实现简单的雇员管理系统

2024-04-02 19:04:59 619人浏览 泡泡鱼
摘要

这篇文章主要讲解了“PHP怎么实现简单的雇员管理系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php怎么实现简单的雇员管理系统”吧!  这是一

这篇文章主要讲解了“PHP怎么实现简单的雇员管理系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php怎么实现简单的雇员管理系统”吧!

  这是一个简单的php练习小项目,因为比较简单所以就没有用Smarty模板去把这个项目彻底的输入,处理,输出分离,只是简单的用mvc设计模式去写的。这个项目主要是为了练习Cookie和Session的使用。

  数据库用的是Mysql,建了一个empmanage的数据库,里面有两张表。如图:

php怎么实现简单的雇员管理系统  

表的结构如图:

php怎么实现简单的雇员管理系统

php怎么实现简单的雇员管理系统

  php怎么实现简单的雇员管理系统

  这是登陆界面,因为主要想练习后台相关知识,所以前台页面写的比较简单。实际上是先写的index.php,里面就只是一个跳转。

 index.php

<?php 
	header("Location:login.php");
?>

  login.php

<html>
<head>
<meta Http-equiv="content-type" content="text/html;charset=utf-8">
<title>emp_system</title>
</head>
<?php require_once 'common.php';?>
<h2>emp login</h2>
<fORM action="loginProcess.php" method="post">
用户名<input type="text" name="username" value="<?php echo getCookie("username")?>"/><br/>
密码 <input type="passWord" name="password"/><br/>
sava cookie<input type="checkbox" name="cookie"/><br/>
<input type="submit" value="登陆"/>
</form>
<?php 
	if(!empty($_GET['errNo'])){
		$errNo=$_GET['errNo'];
		echo "<br/><font color='red'>输入的密码或用户名错误,错误信息</font>".$errNo;
	}
?>
</html>

  login.php中require_once的common.php

<?php
	function getLastTime(){
		date_default_timezone_set ( 'UTC' );
		if(!empty($_COOKIE)){
			echo "上次登录时间:".$_COOKIE['last_visit_time'];
			setcookie("last_visit_time",date("Y-m-d  H:i:s"),time()+24*3600);
		}else{
			echo "第一次登录";
			setcookie("last_visit_time",date("Y-m-d  H:i:s"),time()+24*3600);
		}
	}
	function getCookie($key){
		if(!empty($_COOKIE[$key])){
			return $_COOKIE[$key];
		}else{
			return "";
		}
	}
	function checkUserLegal(){
		session_start();
		if(empty($_SESSION['id'])){
			header("Location:login.php?errNo=1");
		}
	}
?>

  login.php中表单提交到loginProcess.php去。

<?php
	require_once 'adminService.class.php';
	if(!empty($_POST['cookie'])){			
		if(!empty($_POST['username'])){
		$username=$_POST['username'];
		setcookie("username","$username",time()+300);
		}	
		if(!empty($_POST['password'])){
		$password=$_POST['password'];
		setcookie("password","$password",time()+300);
		}
	}else{
		if(!empty($_POST['username'])){
			$username=$_POST['username'];
		}
		if(!empty($_POST['password'])){
			$password=$_POST['password'];
		}
	}
	$adminService=new adminService();
	
	
	if($id=$adminService->checkUser($username, $password)){
		//合法	
		session_start();
		$_SESSION['id']=$id;
		header("Location:Main.php?id=$id");
		exit();
		
	}else{
		//非法
		header("Location:login.php?errNo=2");
		exit();
	}
	

?>

  loginProcess中require_once的adminService.class.php。

<?php
	require_once 'sqlHelper.class.php';
	class adminService{
		//验证用户是否合法
		public function checkUser($username,$password){
			$sqlHelper=new SqlHelper();
			$sql="select password,id from admin where name='".$username."'";
			
			$res=$sqlHelper->execute_dql($sql);

			if($row=mysql_fetch_assoc($res)){
				if($row['password']==md5($password)){
					$id=$row['id'];
					return $id;
				}else{
					return null;
				}
			}else{
					return null;
			}
			//释放资源
			mysql_free_result($res);
			//关闭连接
			$sqlHelper->close_connent();
		}
			
	}
?>

  adminService.class.php中require_once的SqlHelper.class.php。

<?php
	class SqlHelper{
		public $conn;
		public $dbname="empmanage";
		public $host="localhost";
		public $username="root";
		public $password="root";
		public function __construct(){
			$conn=mysql_connect($this->host,$this->username,$this->password);
			if(!$conn){
				die("connect error".mysql_errno());
			}
			mysql_select_db($this->dbname) or die(mysql_errno());
			//mysql_query("set names utf8",$this->conn);
		}
		//dql
		public function execute_dql($sql){
			
			$res=mysql_query($sql) or die(mysql_error());
			
			return $res;
		}
		//dql2 返回一格数组 可以直接关闭结果集
		public function execute_dql2($sql){
			$arr=array();
			$i=0;
			$res=mysql_query($sql) or die(mysql_error());
			while($row=mysql_fetch_assoc($res)){
				$arr[$i++]=$row;
			}
			mysql_free_result($res);
			return $arr;
		}
		//分页查询
		public function execute_dql_fenye($sql1,$sql2,$fenyePage){
			$res=mysql_query($sql1) or die(mysql_error());
			$arr=array();
			while($row=mysql_fetch_assoc($res)){
				$arr[]=$row;
			}
			mysql_free_result($res);
			$fenyePage->res_array=$arr;
			
			$res2=mysql_query($sql2) or die(mysql_error());
			if($row=mysql_fetch_row($res2)){
				$fenyePage->rowCount=$row[0];
				$fenyePage->pageCount=ceil($row[0]/$fenyePage->pageSize);
			}
			mysql_free_result($res2);
			$daohangtiao="";
			if($fenyePage->pageNow>1){
				$prePage=$fenyePage->pageNow-1;
				$fenyePage->daohangtiao= "<a href='{$fenyePage->GotoUrl}?pageNow=$prePage'>上一页</a>";
			}
			if($fenyePage->pageNow<$fenyePage->pageCount){
				$nextPage=$fenyePage->pageNow+1;
				$fenyePage->daohangtiao.= "<a href='{$fenyePage->gotoUrl}?pageNow=$nextPage'>下一页</a>";
			}
			//用for打印10页超链接
			$start=floor(($fenyePage->pageNow-1)/10)*10+1;
			$index=$start;
			if($fenyePage->pageNow>10){			
				$fenyePage->daohangtiao.= " <a href='{$fenyePage->gotoUrl}?pageNow=".($start-1)."'><<</a>";
			}
			for(;$start<$index+10;$start++){
				$fenyePage->daohangtiao.= "<a href='{$fenyePage->gotoUrl}?pageNow=$start'>[$start]</a>";
			}
				$fenyePage->daohangtiao.= " <a href='{$fenyePage->gotoUrl}?pageNow=$start'>>></a>";
				$fenyePage->daohangtiao.= " 当前{$fenyePage->pageNow}页/共{$fenyePage->pageCount}页";
			
		}
		
		//dml
		public function execute_dml($sql){
			$res=mysql_query($sql) or die(mysql_error());
			if(!$res){
				return 0;//没有用户匹配
			}
			if(mysql_affected_rows($this->conn)>0){
				return 1;//ok
			}else{
				return 2;//没有行受到影响
			}
		}
		//关闭连接
		public function close_connent(){
			if(!empty($this->conn)){
				mysql_close($this->conn);
			}
		}
	}	
?>

  验证是合法用户跳转到Main.php,非法跳转到login.php并把errNo带回去并用红色输出。如图:

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
<?php
	require_once 'common.php';
	checkUserLegal();
	
	$id=$_REQUEST['id'];
	echo "欢迎".$id."登陆";
// 	setcookie("last_visit_time","",time()-100);
	
	getLastTime();
?>
<h2>Main View</h2>
<a href="empList.php">管理用户</a><br/>
<a href="addEmp.php">添加用户</a><br/>
<a href="selectEmp.php">查询用户</a><br/>
</html>

php怎么实现简单的雇员管理系统

php怎么实现简单的雇员管理系统

  在Main页面你可以选择管理用户,添加用户,查询用户(用户可以理解为雇员)。那么点击查询用户后会跳转到selectEmp.php去。

php怎么实现简单的雇员管理系统

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
<h2>查找用户</h2>
<form action="empProcess.php" method="post">
输入id号:<input type="text" name="id"/>
<input type="hidden" name="flag" value="selectEmp"/>
<input type="submit" value="go"/>
</form>
</html>

  在selectEmp.php中的表单会跳转到empProcess.php去。

<?php
	require_once 'empService.class.php';
	require_once 'emp.class.php';
	$empService=new empService();
	if(!empty($_REQUEST['flag'])){
		
		if($_REQUEST['flag']=="del"){
			$id=$_REQUEST['id'];			
			if($empService->deleteById($id)==1){
				header("Location: ok.php");
				exit();
			}else{
				header("Location: err.php");
				exit();
			}
		
		}else if($_REQUEST['flag']=="addEmp"){
			$name=$_REQUEST['name'];
			$grade=$_REQUEST['grade'];
			$email=$_REQUEST['email'];
			$salary=$_REQUEST['salary'];
			if($empService->addEmp($name, $grade, $email, $salary)==1){
				header("Location: ok.php");
				exit();
			}else{
				header("Location: err.php");
				exit();
			}
		}else if($_REQUEST['flag']=="selectEmp"){
			$id=$_REQUEST['id'];			
			if($res=$empService->selectEmp($id)){
				echo "id{$res[0]['id']} name{$res[0]['name']} grade{$res[0]['grade']} email{$res[0]['email']} salary{$res[0]['salary']}";
			}
		}else if($_REQUEST['flag']=="updataEmp"){
			$id=$_REQUEST['id'];
			$name=$_REQUEST['name'];
			$grade=$_REQUEST['grade'];
			$email=$_REQUEST['email'];
			$salary=$_REQUEST['salary'];
			if($empService->updataEmp($id, $name, $grade, $email, $salary)==1){
				header("Location: ok.php");
				exit();
			}else{
					header("Location: err.php");
					exit();
			}
		}
	}
?>

  这其中require_once的empService.class.php和emp.class.php。

<?php
	require_once 'SqlHelper.class.php';
	class empService{
		
		
		//计算出$PageCount
		public function getPageCount($pageSize){
			$sqlHelper=new SqlHelper();
			$sql="select count(id) from emp";
			$res=$sqlHelper->execute_dql($sql);
			if($row=mysql_fetch_row($res)){
				$rowCount=$row[0];
			}
			$pageCount=ceil($rowCount/$pageSize);
			mysql_free_result($res);
			$sqlHelper->close_connent();
			return $pageCount;
		}
		//取出结果集
		public function getRes($pageNow,$pageSize){
			$sqlHelper=new SqlHelper();
			$sql="select id,name,grade,email,salary from emp limit ".($pageNow-1)*$pageSize.",$pageSize";
			$res=$sqlHelper->execute_dql2($sql);
 			$sqlHelper->close_connent();
			return $res;
		}
		//分页
		public function getFenyePage($fenyePage){
			$sqlHelper=new SqlHelper();
			$sql1="select id,name,grade,email,salary from emp limit ".($fenyePage->pageNow-1)*$fenyePage->pageSize.",$fenyePage->pageSize";
			$sql2="select count(id) from emp";
			$sqlHelper->execute_dql_fenye($sql1, $sql2, $fenyePage);
			$sqlHelper->close_connent();
		}
		//删除用户
		public function deleteById($id){
			$sqlHelper=new SqlHelper();
			$sql="delete from emp where id=$id";
			return $sqlHelper->execute_dml($sql) or die(mysql_error());
			
			$sqlHelper->close_connent();	
		}
		//添加用户
		public function addEmp($name,$grade,$email,$salary){
			$sqlHelper=new SqlHelper();
			$sql="insert into emp(name,grade,email,salary) values ('$name','$grade','$email','$salary')";
			
			return $sqlHelper->execute_dml($sql) or die(mysql_error());	
			$sqlHelper->close_connent();
		}
		//查询用户
		public function selectEmp($id){
			$sqlHelper=new SqlHelper();
			$sql="select * from emp where id=$id";
			$res=$sqlHelper->execute_dql2($sql) or die(mysql_error());
			$sqlHelper->close_connent();
			return $res;
		}
		//修改用户
		public function updataEmp($id,$name,$grade,$email,$salary){
			$sqlHelper=new SqlHelper();
			$sql="update emp set name='$name',grade=$grade,email='$email',salary=$salary where id=$id";
			
			return $sqlHelper->execute_dml($sql) or die(mysql_error());
			$sqlHelper->close_connent();
		}
	}
?>
<?php
	class emp{
		public $res_arr_emp;
	}
?>

  验证后若该用户存在输出该用户的详细信息,如id name grade email salary。这是查询,因为做的比较简单,所以没有写个超链接让它返回上一层。

  若你在Main界面点击的是添加用户,则会跳转到addEmp.php。

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
<h2>添加用户</h2>
<form action="empProcess.php" method="post">
<table>
<tr><td>name<td><td><input type="text" name="name"/><td></tr>
<tr><td>grade(tinyint)<td><td><input type="text" name="grade"/><td></tr>
<tr><td>email<td><td><input type="text" name="email"/><td></tr>
<tr><td>salary(int)<td><td><input type="text" name="salary"/><td></tr>
<tr><td><input type="submit" value="go"><td><td><input type="reset" value="reset"/><td></tr>
<tr><input type="hidden" name="flag" value="addEmp"></tr>
</table>
</form>
</html>

php怎么实现简单的雇员管理系统

  为了简单没有用js正则表达式去对表单中所输入的内容进行验证是否符合格式。输入完表单后会跳转到empProcess.php去验证。如果添加成功会跳转到ok.php,否则会跳转到err.php。

<?php
	header("Content-Type:text/html;charset=utf-8");
	echo "操作成功";
	echo "<a href=empList.php>返回上一级<a>";

?>
<?php
	header("Content-Type:text/html;charset=utf-8");
	echo "操作失败<br/>";
	echo "<a href=empList.php>返回上一级<a>";
?>

  若在Main页面点击管理用户则会跳转到empList.php。

php怎么实现简单的雇员管理系统

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
<?php
	require_once 'empService.class.php';	
	require_once 'FenyePage.class.php';
	require_once 'common.php';
	checkUserLegal();
	
	$fenyePage=new FenyePage();
	
	//分页
	$fenyePage->pageNow=1;//显示第几页 用户输入 不停变化
	if(!empty($_GET['pageNow'])){
		$fenyePage->pageNow=$_GET['pageNow'];
	}
	$fenyePage->pageCount=0;//共几页 需要$rowCount计算
	$fenyePage->pageSize=5;//一页显示多少条记录
	$fenyePage->rowCount=0;//数据库中获取 共有几条记录
	$fenyePage->gotoUrl="empList.php";//要跳转的页面
	
	$empService=new empService();
	$empService->getFenyePage($fenyePage);
	echo "<table border='1px' >";
	echo "<tr><th>id</th><th>name</th><th>grade</th><th>email</th><th>salary</th><th><a href='#'>删除用户</a></th><th><a href='#'>修改用户</a></th></tr>";
	for($i=0;$i<count($fenyePage->res_array);$i++){
		$row=$fenyePage->res_array[$i];
		
		echo "<tr><td>{$row['id']}</td><td>{$row['name']}</td><td>{$row['grade']}</td><td>{$row['email']}</td><td>{$row['salary']}</td><td><a href='empProcess.php?flag=del&id={$row['id']}'>删除用户</a></td><td><a href='updataEmp.php?flag=updataEmp&id={$row['id']}&name={$row['name']}&grade={$row['grade']}&email={$row['email']}&salary={$row['salary']}'>修改用户</a></td></tr>";
	}
	echo "<table>";
	//打印导航条
	echo $fenyePage->daohangtiao;
	

?>
</html>

  其中require_once的FenyePage.class.php。

<?php
	class FenyePage{
		public $pageNow=1;//默认打开时第一页
		public $pageSize;
		public $pageCount;
		public $rowCount;
		public $res_array;
		public $daohangtiao;//导航条
		public $gotoUrl;//要跳转的页面	
	}
?>

 点击修改用户会跳转到updataEmp.php。

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
<h2>修改用户</h2>
<?php 
	
	if($_REQUEST['flag']=="updataEmp"){
		$id=$_REQUEST['id'];
		$name=$_REQUEST['name'];
		$grade=$_REQUEST['grade'];
		$email=$_REQUEST['email'];
		$salary=$_REQUEST['salary'];
	}
?>
<form action="empProcess.php" method="post">
<table>
<tr><td>id<td><td><input readonly="readonly" type="text" name="id" value="<?php echo $id;?>"/><td></tr>
<tr><td>name<td><td><input type="text" name="name" value="<?php echo $name;?>"/><td></tr>
<tr><td>grade(tinyint)<td><td><input type="text" name="grade" value="<?php echo $grade;?>"/><td></tr>
<tr><td>email<td><td><input type="text" name="email" value="<?php echo $email;?>"/><td></tr>
<tr><td>salary(int)<td><td><input type="text" name="salary" value="<?php echo $salary;?>"/><td></tr>
<tr><td><input type="submit" value="go"><td><td><input type="reset" value="reset"/><td></tr>
<tr><input type="hidden" name="flag" value="updataEmp"></tr>
</table>
</form>
</html>

php怎么实现简单的雇员管理系统

感谢各位的阅读,以上就是“php怎么实现简单的雇员管理系统”的内容了,经过本文的学习后,相信大家对php怎么实现简单的雇员管理系统这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: php怎么实现简单的雇员管理系统

本文链接: https://www.lsjlt.com/news/79199.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php怎么实现简单的雇员管理系统
    这篇文章主要讲解了“php怎么实现简单的雇员管理系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php怎么实现简单的雇员管理系统”吧!  这是一...
    99+
    2024-04-02
  • Java实现简单员工管理系统
    本文实例为大家分享了Java实现简单员工管理系统的具体代码,供大家参考,具体内容如下 代码如下: import java.util.*; public class Demo {   ...
    99+
    2024-04-02
  • 怎么用Java实现简单员工管理系统
    这篇文章主要讲解了“怎么用Java实现简单员工管理系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Java实现简单员工管理系统”吧!代码如下:import java.uti...
    99+
    2023-06-29
  • C语言实现简单员工工资管理系统
    本文实例为大家分享了C语言实现简单员工工资管理系统的具体代码,供大家参考,具体内容如下 (一)公司现状分析 1、公司主要有经理、技术员、销售员、销售经理4类岗位人员,他们都有基本信息...
    99+
    2024-04-02
  • python怎么实现简单的学生管理系统
    这篇文章主要为大家展示了python怎么实现简单的学生管理系统,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“python怎么实现简单的学生管理系统”这篇文章吧。python是什么意思Python是...
    99+
    2023-06-06
  • python怎么实现简单通讯录管理系统
    要实现简单的通讯录管理系统,可以使用Python的字典来存储联系人的信息。以下是一个简单的实现示例:```pythoncontact...
    99+
    2023-08-18
    python
  • C++怎么实现简单通讯录管理系统
    本篇内容介绍了“C++怎么实现简单通讯录管理系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、代码#include <i...
    99+
    2023-06-29
  • Python实现简单的图书管理系统
    本文实例为大家分享了Python实现图书管理系统的具体代码,供大家参考,具体内容如下 题目要求: 利用Python写一个简易的图书管理系统 需求: 图书管理系统 1.查询图书2.增加...
    99+
    2024-04-02
  • java实现简单的图书管理系统
    本文实例为大家分享了java实现简单的图书管理系统的具体代码,供大家参考,具体内容如下 一、项目分布 Book类: 定义了书的一些属性(书名,作者,价格,分类,状态)并且写了属性的...
    99+
    2024-04-02
  • java实现简单的学生管理系统
    用Java如何实现一个用数组作为存储结构的简易的学生管理系统? 首先,我们定义一个student类,在其中添加私有化的成员变量,通过getter和setter方法进行调用 publi...
    99+
    2024-04-02
  • Java实现简单酒店管理系统
    用Java编写一个简单的酒店管理系统,供大家参考,具体内容如下 为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。 1、该系统的用户是:酒店前台。2、酒店使用...
    99+
    2024-04-02
  • C++实现简单学生管理系统
    本文实例为大家分享了C++实现简单学生管理系统的具体代码,供大家参考,具体内容如下 实现学生管理,其中关键字可以自行替换。经过Visual C++6.0验证可执行成功。 #inclu...
    99+
    2024-04-02
  • Java实现简单班级管理系统
     本文设计一个简单的班级管理系统,满足如下要求: 1、设计学生类Student,包含学号(String型)、姓名(String型)、性别(‘M’/&...
    99+
    2024-04-02
  • java实现简单图书管理系统
    本文实例为大家分享了java实现简单图书管理系统的具体代码,供大家参考,具体内容如下 JAVA练习的作业,题目如下: 设计一个图书管理系统类和用户类,要求具有以下功能: (1). 查...
    99+
    2024-04-02
  • C++实现简单信息管理系统
    本文实例为大家分享了C++实现简单信息管理系统的具体代码,供大家参考,具体内容如下 信息管理系统 因为学校布置了写一个信息管理系统的作业,所以写下了这个信息管理系统,这是用cpp写的...
    99+
    2024-04-02
  • Java实现简单学生管理系统
    本文实例为大家分享了Java实现简单学生管理系统的具体代码,供大家参考,具体内容如下 名为StudentManageTest的Java测试类 import java.util.Sca...
    99+
    2024-04-02
  • C++实现简单酒店管理系统
    本文实例为大家分享了C++实现简单酒店管理系统的具体代码,供大家参考,具体内容如下 酒店管理系统设计报告 一、 需求分析 题目要求如下: 某酒店有客房若干间,其中客房分为不同等级,如...
    99+
    2024-04-02
  • C语言怎么实现简单的图书管理系统
    实现一个简单的图书管理系统可以使用C语言来实现,以下是一个简单的示例代码: #include <stdio.h> #in...
    99+
    2024-03-08
    c语言
  • C++实现简单的通讯录管理系统
    本文实例为大家分享了C++实现简单的通讯录管理系统的具体代码,供大家参考,具体内容如下 案例描述: 通讯录是一个可以记录亲人、好友信息的工具。本教程主要利用C++来实现一个通讯录管理...
    99+
    2024-04-02
  • C++实现简单版图书管理系统
    本文实例为大家分享了C++实现简单版图书管理系统的具体代码,供大家参考,具体内容如下 1、系统需求 图书管理系统是一个可以记录图书借记和存储的工具。 本教程主要利用C++来实现一个图...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作