diff --git a/Application/Admin/Controller/PromoteCompanyController.class.php b/Application/Admin/Controller/PromoteCompanyController.class.php index 9f434f15b..91efcf099 100644 --- a/Application/Admin/Controller/PromoteCompanyController.class.php +++ b/Application/Admin/Controller/PromoteCompanyController.class.php @@ -273,6 +273,7 @@ class PromoteCompanyController extends ThinkController )); } } else { + $this->assign('serviceAgreements', M('service_agreement', 'tab_')->select()); $this->assign('commonset', M('Kuaijieicon')->where(['url' => 'PromoteCompany/add'])->find()); $this->meta_title = '新增推广公司'; $this->display(); @@ -378,7 +379,7 @@ class PromoteCompanyController extends ThinkController if($data['resources'] == ''){ $data['resources'] ="[]"; } - + $this->assign('serviceAgreements', M('service_agreement', 'tab_')->select()); $this->assign('data', $data); $this->display(); } @@ -558,4 +559,60 @@ WHERE old_change_promote_id in ({$promoteData})"; } + public function serviceAgreementList($row = 10, $p = 1) + { + $map = []; + $map['_string'] = " 1=1 "; + if (isset($_GET['time-start'])) { + $map['_string'] .= " and created_time >= " . strtotime($_GET['time-start']); + } + if (isset($_GET['time-end'])) { + $map['_string'] .= " and created_time < " . (strtotime($_GET['time-end']) + 86400); + } + if (isset($_GET['type'])) { + $map['type'] = $_GET['type']; + } + if (!empty($_GET['title'])) { + $map['title'] = ['like', "%{$_GET['title']}%"]; + } + $list = M('service_agreement', 'tab_')->where($map)->page($p, $row)->select(); + $count = M('service_agreement', 'tab_')->where($map)->count(); + $page = set_pagination($count, $row); + if ($page) { + $this->assign('_page', $page); + } + $this->assign('list_data', $list); + $this->display('service_agreement_list'); + } + + public function serviceAgreementSave($id=0, $delete=0) + { + if (IS_POST) { + if (empty($_POST['name']) || empty($_POST['content'])) { + return $this->error('请填写完整内容'); + } + if ($id) { + $result = M('service_agreement', 'tab_')->where(['id'=>$id])->save($_POST); + return $result ? $this->success('更新完成') : $this->error('更新失败'); + } else { + $data = $_POST; + $data['creator'] = is_login(); + $data['created_time'] = time(); + $result = M('service_agreement', 'tab_')->add($data); + return $result ? $this->success('生成协议完成') : $this->error('生成协议失败'); + } + } else { + if ($id) { + if ($delete) { + $result = M('service_agreement', 'tab_')->where(['id'=>$id])->delete(); + return $result ? $this->success('删除完成') : $this->error('删除失败'); + } + $info = M('service_agreement', 'tab_')->where(['id'=>$id])->find(); + if (empty($info)) return $this->error('未找到协议'); + $this->assign('info', $info); + } + $this->display('service_agreement_save'); + } + } + } diff --git a/Application/Admin/View/PromoteCompany/add.html b/Application/Admin/View/PromoteCompany/add.html index f30dd184b..2b822624f 100644 --- a/Application/Admin/View/PromoteCompany/add.html +++ b/Application/Admin/View/PromoteCompany/add.html @@ -105,6 +105,20 @@ + + 是否展示合同服务协议: + +
+ +
+ + 团体归属: diff --git a/Application/Admin/View/PromoteCompany/edit.html b/Application/Admin/View/PromoteCompany/edit.html index 967008ee5..14305589e 100644 --- a/Application/Admin/View/PromoteCompany/edit.html +++ b/Application/Admin/View/PromoteCompany/edit.html @@ -109,6 +109,20 @@ + + 是否展示合同服务协议: + +
+ +
+ + 团体归属: @@ -198,7 +212,22 @@ - + + 市场总监信息展示: + + + + + + + + @@ -368,7 +397,9 @@ "bank_name":[["nocheck",true],"银行名称不能为空"], "bank_address":[["nocheck",true],"银行开户网点不能为空"], "content":[["nocheck",true]], - "status":["nocheck","","radio"] + "status":["nocheck","","radio"], + "service_agreement_show":["nocheck","","select"], + "marketing_director_show":["nocheck","","radio"], } var cres = CIC.checkAddInput(obj); if(!cres){ diff --git a/Application/Admin/View/PromoteCompany/service_agreement_list.html b/Application/Admin/View/PromoteCompany/service_agreement_list.html new file mode 100644 index 000000000..3f5c27d89 --- /dev/null +++ b/Application/Admin/View/PromoteCompany/service_agreement_list.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + +
+ + +
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID标题操作人操作时间操作
aOh! 暂时还没有内容!
{$data.id}{$data.name}{:get_admin_nickname($data['creator'])}{$data.created_time|date='Y-m-d H:i:s',###} + 编辑 + 删除 +
+ + +
+ {$_page|default=''} +
+ +
+ +
+ + +
+ 已添加添加至常用设置 +
+ + + + + + if(C('COLOR_STYLE')=='blue_color') echo ' + + '; + + + + + + + + diff --git a/Application/Admin/View/PromoteCompany/service_agreement_save.html b/Application/Admin/View/PromoteCompany/service_agreement_save.html new file mode 100644 index 000000000..c8356295e --- /dev/null +++ b/Application/Admin/View/PromoteCompany/service_agreement_save.html @@ -0,0 +1,41 @@ + + + +
+
服务协议新增
+
    + +
  • + + +
  • +
  • + + + + {:hook('adminArticleEdit', array('name'=>'content','value'=>$info['content']))} + + +
  • +
  • + +
  • +
+
+ + + +
+ + + \ No newline at end of file diff --git a/Application/Home/Controller/BaseController.class.php b/Application/Home/Controller/BaseController.class.php index 70d61410b..d9cec83e2 100644 --- a/Application/Home/Controller/BaseController.class.php +++ b/Application/Home/Controller/BaseController.class.php @@ -46,6 +46,11 @@ class BaseController extends HomeController define('G_SETTLEMENT_GRADE', 'sub_status,third_status'); } + if ($loginer['company_id']) { + $company = M('promote_company', 'tab_')->where(['id'=>$loginer['company_id']])->find(); + $this->assign('company', $company); + } + $this->canViewUserRecharge = $this->promoteCan('view-user-recharge'); $this->checkUrlPermission(); diff --git a/Application/Home/Controller/SafeController.class.php b/Application/Home/Controller/SafeController.class.php index 5e9d5bede..d67b04885 100644 --- a/Application/Home/Controller/SafeController.class.php +++ b/Application/Home/Controller/SafeController.class.php @@ -338,7 +338,14 @@ class SafeController extends BaseController{ $this->assign('addr',json_decode($address)[1]); } $promoteInfo['address'] = json_decode($address); - + // 获取推广员的公司 + $promoteCompany = M('promote_company', 'tab_')->where(['id'=>$promoteInfo['company_id']])->find(); + if ($promoteCompany['service_agreement_show'] > 0) { + $serviceAgreement = M('service_agreement', 'tab_')->where(['id'=>$promoteCompany['service_agreement_show']])->find(); + $serviceAgreement['content'] = $this->renderServiceAgreement($serviceAgreement['content'], $promoteInfo); + $this->assign("serviceAgreement",$serviceAgreement); + } + $this->assign("promoteCompany",$promoteCompany); $this->assign("ver_status",$promoteInfo['ver_status']); $this->assign('promoteinfo', $promoteInfo); @@ -461,37 +468,63 @@ class SafeController extends BaseController{ $this->ajaxReturn($res); } - public function safeDocument() { - $realname = $_REQUEST['realname']; - $phone = $_REQUEST['phone']; - $email = $_REQUEST['email']; - $address = $_REQUEST['address']; - if (empty($realname)) { - $realname = '您未填写真实姓名'; - } - if (empty($email)) { - $email = '您未填写联系邮箱'; - } - if (empty($address)) { - $address = '您未填写注册地址'; - } - if (empty($phone)) { - $phone = '您未填写联系号码'; - } - $time = time(); - $loginPromote = $this->getLoginPromote(); - $sn = date('Ymd') . '-' . strtoupper(substr(md5($loginPromote['id']), 8, 16)); - $endTime = date('Y-m-d',strtotime('+1 year')); - $this->assign('time',date('Y-m-d',$time)); - $this->assign('endTime',$endTime); - $this->assign('sn',$sn); - $this->assign('realname',$realname); - $this->assign('email',$email); - $this->assign('address',$address); - $this->assign('phone',$phone); + public function safeDocument($templateId=0) { + $template = M('service_agreement', 'tab_')->where(['id'=>$templateId])->find(); + $promoteInfo = $this->getLoginPromote(); + + $sn = date('Ymd') . '-' . strtoupper(substr(md5($promoteInfo['id']), 8, 16)); + + $content = $template['content']; + $content = str_replace("{time}", date('Y-m-d'), $content); + $content = str_replace("{sn}", $sn, $content); + $content = str_replace("{endTime}", date('Y-m-d',strtotime('+1 year')), $content); + $content = str_replace("{account}", $promoteInfo['account'], $content); + $content = str_replace("{email}", $promoteInfo['email'], $content); + $content = str_replace("{realname}", $promoteInfo['real_name'], $content); + $content = str_replace("{phone}", $promoteInfo['mobile_phone'], $content); + $content = str_replace("{address}", $promoteInfo['address'], $content); + + // $realname = $_REQUEST['realname']; + // $phone = $_REQUEST['phone']; + // $email = $_REQUEST['email']; + // $address = $_REQUEST['address']; + // if (empty($realname)) { + // $realname = '您未填写真实姓名'; + // } + // if (empty($email)) { + // $email = '您未填写联系邮箱'; + // } + // if (empty($address)) { + // $address = '您未填写注册地址'; + // } + // if (empty($phone)) { + // $phone = '您未填写联系号码'; + // } + // $time = time(); + // $loginPromote = $this->getLoginPromote(); + + // $endTime = date('Y-m-d',strtotime('+1 year')); + // $this->assign('time',date('Y-m-d',$time)); + // $this->assign('endTime',$endTime); + // $this->assign('sn',$sn); + // $this->assign('realname',$realname); + // $this->assign('email',$email); + // $this->assign('address',$address); + // $this->assign('phone',$phone); + $this->assign('content', $content); $this->display(); } + private function renderServiceAgreement($content, $promoteInfo) + { + $content = str_replace("{account}", $promoteInfo['account'], $content); + $content = str_replace("{email}", $promoteInfo['email'], $content); + $content = str_replace("{real_name}", $promoteInfo['real_name'], $content); + $content = str_replace("{mobile_phone}", $promoteInfo['mobile_phone'], $content); + $content = str_replace("{addr}", $promoteInfo['addr'], $content); + return $content; + } + public function promoteLogs() { $page = intval(I('p', 1)); $row = intval(I('row', 10)); diff --git a/Application/Home/View/default/Public/promote_base.html b/Application/Home/View/default/Public/promote_base.html index fdc82b6fa..1e5f1685b 100644 --- a/Application/Home/View/default/Public/promote_base.html +++ b/Application/Home/View/default/Public/promote_base.html @@ -147,10 +147,10 @@
- - +
今天是: diff --git a/Application/Home/View/default/Safe/modifyBaseInfo.html b/Application/Home/View/default/Safe/modifyBaseInfo.html index 5edbdd5d2..504a75f51 100644 --- a/Application/Home/View/default/Safe/modifyBaseInfo.html +++ b/Application/Home/View/default/Safe/modifyBaseInfo.html @@ -302,12 +302,14 @@ + 0):?> - 我已仔细阅读,并同意《游戏推广服务框架协议》 + 我已仔细阅读,并同意《'{$serviceAgreement['name']}'》 + @@ -333,19 +335,18 @@ - -
-

游戏推广服务框架协议

-
-

本协议由以下双方于{$time}签订:

-

合同编号:{$sn}

-

甲方:海南万盟天下科技有限公司

-

注册地址:海南省海口市南海大道26号海口国家高新区创业孵化中心A楼5层A1-1268室

-

联系电话:13067391751

-

联系人:雷丽华

-

邮箱号:383166987@qq.com

-

乙方:{$realname}

-

注册地址:{$address}

-

联系电话:{$phone}

-

联系人:{$realname}

-

邮箱号:{$email}

-

      经甲乙双方协商一致,在平等互利的基础上,就乙方推广甲方拥有知识产权 -或合法授权的游戏(以下简称“产品”)达成如下协议:

-

1 合作内容及合作期限

-

      1.1合作内容:在双方合作期间,乙方以正规合法途径推广甲方拥有知识产 -权或合法授权的游戏产品,为甲方产品导入用户,甲方根据乙方导入用户产生的 -消费向乙方支付推广服务费。

-

      1.2本协议有效期自{$time}起至{$endTime}止。

-

      1.3本协议为甲乙双方之间推广服务的框架性协议,具体合作游戏的付费金 -额、渠道等未尽事宜详见双方签订的附件《游戏推广服务协议》,甲乙双方在合 -作期限内签订的所有附件《游戏推广服务协议》均为本框架协议的组成部分。乙方使用甲方的合作渠道应当严格遵守合作渠道已经发布的或将来可能发布或修 -订的各种规则制度、条款、帮助、提示文档等规定,若乙方有存在违反的行为乙 -方愿意接受该规定的处理措施,合作渠道中新发布或修订的内容经本协议8.3 -条通知送达后若乙方未按照8.3条提出异议并停止使用合作渠道的,视为乙方接 -受并同意遵守合作渠道发布的内容,关于异议部分双方无法协商一致的,甲方有 -权单方终止本协议。附件《游戏推广服务协议》或本框架协议组成部分与本框架 -协议约定不符的,以最新签订的《游戏推广服务协议》或协议为准。

-

2 甲方的权利及义务

-

      2.1甲方负责合作产品内容及运营的合法性。

-

      2.2甲方负责维护各推广渠道的产品的内容更新;甲方负责产品内容及其传 -播的合法性、适当性。甲方承诺其享有提供给乙方的全部产品内容及其组成部分 -的相关知识产权等权利或有合法授权。

-

3 乙方的权利及义务

-

      3.1乙方需利用自身资源将潜在用户导入到甲方提供的游戏系统内,推广甲 -方的产品,提升甲方产品的付费用户的导入,对于甲方产品以外的推广,甲方将 -不予支付推广服务费。

-

      3.2乙方应自行负责并保证其组织、推广活动的合法性,乙方组织、推广甲 -方产品活动不得有虚假或者引人误解的内容,不得进行不正当竞争行为,不得欺 -骗、误导玩家,不得损害甲方商誉或侵害任何第三方合法权益等行为。

-

      3.3乙方违反3.2条规定引发的一切争议、责任由乙方自行负责处理、承担, -与甲方无关;若因此损害甲方声誉的或造成甲方损失的,乙方应承担赔偿责任。 -若甲方发现乙方违反3.2条规定,甲方有权暂停结算,因此引起的一切纠纷和责 -任均由乙方承担,甲方有权直接从任何应支付给乙方的款项中直接扣除,并且甲 -方有权立即终止本协议。

-

      3.4乙方保证其推广成果的真实有效,否则甲方有权利拒绝支付相应部分的 -推广服务费。

-

      3.5未经甲方事先书面同意,乙方不得将本协议项下的任何权利或义务全部或部分转让、分包或委托给任何第三方,否则甲方有权随时提前终止本协议并追 -究乙方的违约责任。甲方有权将本协议项下的任何权利或义务全部或部分转让给 -其他公司,而无须另行征得乙方的同意。

- -

4 结算方式

-

      4.1甲方按照乙方完成的每款产品推广付费金额支付服务费。乙方的推广服 -务费=推广付费总金额×(乙方推广服务费比例+补点比例)×(1-税费费率), -每款产品推广服务费比例、税费费率、补点比例等由甲乙双方在《游戏推广服务 -协议》中另行约定。

-

      4.2结算周期:按自然月进行结算,本协议合作期内合作游戏有效用户产生 -的游戏运营收入后的次月前七个工作日内对账(如遇节假休息日则顺延),乙方 -在甲方指定的后台核对乙方导入的付费总金额后申请结算(数据以甲方指定的后 -台为准),甲方将上一月产生的属于乙方的合作分成费用款项向乙方分别出具结 -算单,乙方在收到并确认甲方结算单后的5个工作日内,乙方在结算单加盖公章 -(公章公司名称必须与协议公司名称完全一致)并向甲方开具等额发票,发票类 -型为增值税专用发票(内容为信息服务费),发票抬头为“海南万盟天下科技有 -限公司”,盖好章的结算单与发票一并交付给甲方。

-

      4.3推广服务费支付时间:甲方在收到乙方开具的正式发票及加盖公章的结 -算单后5日内将双方确认的应结款项支付到协议约定的乙方账户号。(如遇节假 -日或休息日则相应顺延,或者其他特殊情况应提前通知后可以延后打款,且甲方 -无需支付滞纳金)

-

甲乙双方账户信息如下:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
甲方信息乙方信息
纳税人识别号海南万盟天下科技有限公司
开户行中国工商银行股份有限公司 -海口海德路支行
地址海南省海口市南海大道26号 -海口国家高新区创业孵化中 -心A楼5层A1-1268室
电话13067391751
银行账号2201021709200030067
- -

      4.4乙方不得擅自变更上述收款账户,如确需变更账户,乙方应当在变更前 -书面通知甲方,经甲方同意后就变更账户事项双方另行签订补充或变更协议,协 -议生效后变更账户方得以生效,否则甲方就乙方变更前的账户进行的所有支付均 -视为乙方已收到甲方的支付款项,由乙方自行承担相应法律后果,乙方不得向甲 -方再主张支付。

-

5 保密条款

-

      5.1未经对方书面许可或本协议另有约定,任何一方禁止向与履行本协议无 -关的任何第三方或雇员泄露本协议的条款的任何内容以及本协议的签订及履行 -情况,以及通过签订和履行本协议过程中获知的对方及对方关联公司或对方提供 -的任何信息和数据资料。但确为本协议履行之必需任何一方(以下简称披露方) -可向其法律、会计、商业及其它顾问、授权雇员(统称“接收方代表”)披露前 -述信息,披露前提是披露方须提前明确告知接收方代表关于本协议的保密义务, -接收方代表明确同意承担与本协议中所规定的保密义务相同或更严格的保密义 -务,如果接收方代表违反保密义务的与披露方连带承担赔偿责任或违约责任。

-

      5.2本协议有效期内及终止后5年内,保密条款仍具有法律效力。如有违反, -违约方应承担由此给守约方造成的一切损失【包含一方因违约方的违约行为而遭 -致的全部直接经济损失及任何可预期的间接损失及额外的费用(包括但不限于律 -师费用、诉讼及仲裁费用、申请执行费用、财务费用及差旅费等详见本协议7.3 -条)】或向守约方支付本协议项下双方结算的所有推广服务费合计金额五倍的违 -约金。

-

      5.3未经对方事先书面许可,任何一方均不得就本协议发表任何公开声明。

- -

6 不可抗力条款

-

      6.1不可抗力:如果出现不可抗力,双方在本协议中的义务在不可抗力影响 -范围及其持续期间内将中止履行。合作期限可根据中止的期限而作相应延长,但 -须双方协商一致。任何一方均不会因此而承担责任。声称遭受不可抗力的一方应 -在不可抗力发生后不迟于十五(15)日内通知另一方,并随附经有关部门确认的不 -可抗力书面证明,且应尽可能减少不可抗力所产生之损害。

-

      6.2本协议中的不可抗力是指无法预见、无法避免、无法克服、非任何一 -方所能控制且使任何一方无法部分或完全履行本协议的地震、台风、火灾、水灾、 -战争、罢工、暴动、黑客攻击、电信部门技术调整和政府管制、病毒侵袭、系统 -故障或任何其它自然或人为造成的灾难和意外事件。

- -

7 违约责任

-

      7.1除本协议另有约定外,任何一方直接或间接违反本协议的任何条款,或 -不承担或不及时、充分地承担本协议项下其应承担的义务即构成违约行为,守约 -方有权以书面通知要求违约方纠正其违约行为并采取充分、有效、及时的措施消 -除违约后果,并赔偿守约方因违约方之违约行为而遭致的损失。若违约方在收到 -守约方关于其违约行为的上述通知后10日内未纠正其违约行为,守约方有权以 -书面通知的方式单方提前解除本协议,并追究违约方之违约责任。

-

      7.2经数据核对甲方认为乙方未按合作产品规则内容进行推广或未达到规 -则要求的,甲方有权利单方面解除本协议,乙方应按照合作产品规定或约定标准 -支付违约金,违约金不足以弥补给甲方造成损失的,乙方还应赔偿损失。

-

      7.3本协议所指守约方的损失包括但不限于守约方因主张违约方的违约赔 -偿责任而支出的律师费、诉讼费用、差旅费、交通费、调查费、评估费、鉴定费、 -公告费、公证费、审计费用等等。

-

8 通知

-

      8.1双方确认本协议首部双方的通讯地址、邮箱、电话为真实有效的,并且 -同意作为双方或人民法院或仲裁机构向各方送达(包含电子方式送达)相关文书 -的送达地址,依据通讯地址、邮箱、电话向一方发出与本协议相关的任何通知、 -协议或其他有关文件或法律文书的,无论该方是否签收(包括但不限于拒收、查 -无此人、下落不明等)均视为有效送达。

-

      8.2如果一方需要变更通讯地址及方式(含联系人)的,应在变更前五日内及时将变更的情况书面通知另一方,变更后的通讯地址及方式(含联系人)自被 -通知方实际收到时生效,在变更后的通讯地址及方式(含联系人)生效前,另一 -方就以变更前的通讯地址及方式送达文件的即视为有效送达。

-

      8.3除上述通知形式外,甲方有权单方在甲方渠道以网页公告、网页提示、 -电子邮箱、手机短信、QQ、发送站内信等方式中的一种或多种,向乙方送达发布 -或修订的规则制度、用户协议、隐私政策、公告通知等内容,一经甲方采取前述 -任何一种方式公布或发送,即视为送达。若乙方收到通知后对内容存在异议的, -应在收到通知后24小时内提出异议并且停止使用合作渠道,否则均视为乙方已 -充分阅读、理解并接受遵守甲方发布或修订的内容,并与甲方达成协议,甲方有 -权按照渠道发布内容对乙方进行管理。

- -

9 其他条款

-

      9.1本协议之未尽事宜应按照中国法律规定执行,不足之处双方应当本着诚 -实信用的原则协商并另行签订补充协议,补充协议与本协议条款不一致时,以最 -新签订的补充协议为准。如果协商不能解决,任何一方均可以向原告方所在地人 -民法院提起诉讼解决。

-

      9.2本协议的注解、附件、补充协议以及经甲方发布的渠道使用规则制度、 -用户协议、隐私政策、公告通知等为本协议组成部分,与本协议具有同等法律效 -力。

-

      9.3本协议自双方签字或盖章之日起生效。本协议壹式肆份,双方各留存贰 -份,每份具有同等法律效力。本协议的任何条款部分或全部无效的,不影响其它 -条款的效力。

-



- -
- -



-



-
+ {$content} - diff --git a/Data/update.sql b/Data/update.sql index 57205c85b..9b03ebe84 100644 --- a/Data/update.sql +++ b/Data/update.sql @@ -1753,3 +1753,21 @@ ADD COLUMN `old_change_promote_account` varchar(30) NULL COMMENT '修改配置 --聚合渠道结算单 zyx 20200515 INSERT INTO `tab_tool`( `name`, `title`, `config`, `template`, `type`, `status`, `create_time`) VALUES ('juhedata', '聚合数据', '{\"tpl_id\":\"215303\",\"key\":\"1aa07a33b6d6408e835e416fafcd6f22\",\"limit\":\"\",\"status\":\"1\"}', NULL, 1, 1, 1589361782); INSERT INTO `tab_tool`( `name`, `title`, `config`, `template`, `type`, `status`, `create_time`) VALUES ('juhe_age', '聚合身份认证', '{\"appkey\":\"80427f4769c6938f12a870f51014ddbe\",\"status\":\"1\"}', NULL, 1, 1, 1464164373); + + +--合作公司新增展示状态 +ALTER TABLE `tab_promote_company` +ADD COLUMN `service_agreement_show` int(11) UNSIGNED NOT NULL DEFAULT 1 COMMENT '展示状态 1展示 2不展示' AFTER `content`, +ADD COLUMN `marketing_director_show` tinyint(1) UNSIGNED NOT NULL DEFAULT 2 COMMENT '市场总结展示 1展示 2不展示' AFTER `show_status`; + +--插入默认的模板 + +CREATE TABLE `tab_service_agreement` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '协议标题', + `content` text COLLATE utf8mb4_bin, + `status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '状态 1正常 2删除', + `creator` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建者', + `created_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; \ No newline at end of file