提交 b7e8af6c authored 作者: caiwenxin's avatar caiwenxin

益农社导入订单,添加运营商bug,我的收入时间筛选

上级 12e03e4a
<?php
namespace app\admin\controller;
use app\common\controller\Backend;
/**
* 订单数据管理
*
* @icon fa fa-circle-o
*/
class Ex extends Backend
{
/**
* Ex模型对象
* @var \app\admin\model\Ex
*/
protected $model = null;
public function _initialize()
{
parent::_initialize();
$this->model = new \app\admin\model\Ex;
}
public function import()
{
parent::importOrder();
}
/**
* 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
* 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
* 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
*/
}
......@@ -98,6 +98,7 @@ class Operators extends Backend
if ($this->request->isAjax()) {
$data = $_POST["row"];
$data["salt"] = rand(100000,999999);
$data['create_time'] = time();
DB::startTrans();
$insert = $this->model->insertGetId($data);
$admin = [
......@@ -111,7 +112,7 @@ class Operators extends Backend
$admin_id = DB::name("admin")->insertGetId($admin);
$access = [
"uid" => $admin_id,
"group_id" => 3,
"group_id" => 2,
"operators_id" => $insert,
];
$access_id = DB::name("auth_group_access")->insert($access);
......
<?php
return [
'Name1' => '订单id',
'Name2' => '订单完结时间',
'Name3' => '订单创建时间',
'Name4' => '订单支付时间',
'Name5' => '退款申请时间',
'Name6' => '一级渠道id',
'Name7' => '一级渠道名称',
'Name8' => '推广者id',
'Name9' => '卖家实收金额',
'Name10' => '商品id',
'Name11' => '商品名称',
'Name12' => '商品价格',
'Name13' => '商品数量',
'Name14' => '下单日商品叶子类目名称',
'Name15' => '下单日商品一级类目名称',
'Name16' => '商品行业大组名称',
'Name17' => '名称'
];
<?php
namespace app\admin\model;
use think\Model;
class Ex extends Model
{
// 表名
protected $name = 'ex';
// 自动写入时间戳字段
protected $autoWriteTimestamp = false;
// 定义时间戳字段名
protected $createTime = false;
protected $updateTime = false;
protected $deleteTime = false;
// 追加属性
protected $append = [
];
}
<?php
namespace app\admin\validate;
use think\Validate;
class Ex extends Validate
{
/**
* 验证规则
*/
protected $rule = [
];
/**
* 提示消息
*/
protected $message = [
];
/**
* 验证场景
*/
protected $scene = [
'add' => [],
'edit' => [],
];
}
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name1')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name1" class="form-control" name="row[name1]" type="text" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name2')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name2" class="form-control" name="row[name2]" type="text" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name3')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name3" class="form-control" name="row[name3]" type="text" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name4')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name4" class="form-control" name="row[name4]" type="text" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name5')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name5" class="form-control" name="row[name5]" type="text" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name6')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name6" class="form-control" name="row[name6]" type="text" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name7')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name7" class="form-control" name="row[name7]" type="text" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name8')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name8" class="form-control" name="row[name8]" type="text" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name9')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name9" class="form-control" name="row[name9]" type="text" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name10')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name10" class="form-control" name="row[name10]" type="text" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name11')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name11" class="form-control" name="row[name11]" type="text" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name12')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name12" class="form-control" name="row[name12]" type="text" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name13')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name13" class="form-control" name="row[name13]" type="text" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name14')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name14" class="form-control" name="row[name14]" type="text" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name15')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name15" class="form-control" name="row[name15]" type="text" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name16')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name16" class="form-control" name="row[name16]" type="text" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name17')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name17" class="form-control" name="row[name17]" type="text" value="">
</div>
</div>
<div class="form-group layer-footer">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8">
<button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
</div>
</div>
</form>
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name1')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name1" class="form-control" name="row[name1]" type="text" value="{$row.name1|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name2')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name2" class="form-control" name="row[name2]" type="text" value="{$row.name2|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name3')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name3" class="form-control" name="row[name3]" type="text" value="{$row.name3|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name4')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name4" class="form-control" name="row[name4]" type="text" value="{$row.name4|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name5')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name5" class="form-control" name="row[name5]" type="text" value="{$row.name5|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name6')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name6" class="form-control" name="row[name6]" type="text" value="{$row.name6|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name7')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name7" class="form-control" name="row[name7]" type="text" value="{$row.name7|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name8')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name8" class="form-control" name="row[name8]" type="text" value="{$row.name8|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name9')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name9" class="form-control" name="row[name9]" type="text" value="{$row.name9|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name10')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name10" class="form-control" name="row[name10]" type="text" value="{$row.name10|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name11')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name11" class="form-control" name="row[name11]" type="text" value="{$row.name11|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name12')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name12" class="form-control" name="row[name12]" type="text" value="{$row.name12|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name13')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name13" class="form-control" name="row[name13]" type="text" value="{$row.name13|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name14')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name14" class="form-control" name="row[name14]" type="text" value="{$row.name14|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name15')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name15" class="form-control" name="row[name15]" type="text" value="{$row.name15|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name16')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name16" class="form-control" name="row[name16]" type="text" value="{$row.name16|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Name17')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name17" class="form-control" name="row[name17]" type="text" value="{$row.name17|htmlentities}">
</div>
</div>
<div class="form-group layer-footer">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8">
<button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
</div>
</div>
</form>
<div class="panel panel-default panel-intro">
{:build_heading()}
<div class="panel-body">
<div id="myTabContent" class="tab-content">
<div class="tab-pane fade active in" id="one">
<div class="widget-body no-padding">
<div id="toolbar" class="toolbar">
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
<!-- <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('ex/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>-->
<!-- <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('ex/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>-->
<!-- <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('ex/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
<a href="javascript:;" class="btn btn-danger btn-import {:$auth->check('ex/import')?'':'hide'}" title="{:__('Import')}" id="btn-import-file" data-url="ajax/upload" data-mimetype="csv,xls,xlsx" data-multiple="false"><i class="fa fa-upload"></i> {:__('Import')}</a>
<div class="dropdown btn-group {:$auth->check('ex/multi')?'':'hide'}">
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
<ul class="dropdown-menu text-left" role="menu">
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
</ul>
</div>
</div>
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
data-operate-edit="{:$auth->check('ex/edit')}"
data-operate-del="{:$auth->check('ex/del')}"
width="100%">
</table>
</div>
</div>
</div>
</div>
</div>
......@@ -8,6 +8,8 @@ use app\common\library\Ems;
use app\common\library\Sms;
use fast\Random;
use think\Validate;
use app\common\model\User as UserModel;
/**
* 会员接口
*/
......@@ -42,11 +44,11 @@ class User extends Api
if (!$account || !$password) {
$this->error(__('Invalid parameters'));
}
$ret = $this->auth->login($account, $password,\app\common\model\User::TYPE_TT);
$ret = $this->auth->login($account, $password,UserModel::TYPE_TT);
if ($ret) {
$data = ['userinfo' => $this->auth->getUserinfo()];
//检查并处理押金
$res = \app\common\model\User::depositChange($data['userinfo']['id']);
$res = UserModel::depositChange($data['userinfo']['id']);
switch ($res['code']){
case 1:
$this->success(__('Logged in successful'), $data);
......@@ -82,7 +84,7 @@ class User extends Api
if (!Sms::check($mobile, $captcha, 'mobilelogin')) {
$this->error(__('Captcha is incorrect'));
}
$user = \app\common\model\User::getByMobile($mobile);
$user = UserModel::getByMobile($mobile);
if ($user) {
if ($user->status != 'normal') {
$this->error(__('Account is locked'));
......@@ -135,8 +137,8 @@ class User extends Api
if(empty($ttCodeInfo)){
$this->error('无效的站长码');
}
$ret = $this->auth->register($username, $password, $email, $mobile, [],[],$ttCodeInfo['parent_id'],\app\common\model\User::TYPE_TT);
$resMoney = \app\common\model\User::money(10,$ttCodeInfo['parent_id'],'拉新注册');
$ret = $this->auth->register($username, $password, $email, $mobile, [],[],$ttCodeInfo['parent_id'],UserModel::TYPE_TT);
$resMoney = UserModel::money(10,$ttCodeInfo['parent_id'],'拉新注册');
if ($ret && $resMoney){
$data = ['userinfo' => $this->auth->getUserinfo()];
$this->success(__('Sign up successful'), $data);
......@@ -170,14 +172,14 @@ class User extends Api
$bio = $this->request->request('bio');
$avatar = $this->request->request('avatar', '', 'trim,strip_tags,htmlspecialchars');
if ($username) {
$exists = \app\common\model\User::where('username', $username)->where('id', '<>', $this->auth->id)->find();
$exists = UserModel::where('username', $username)->where('id', '<>', $this->auth->id)->find();
if ($exists) {
$this->error(__('Username already exists'));
}
$user->username = $username;
}
if ($nickname) {
$exists = \app\common\model\User::where('nickname', $nickname)->where('id', '<>', $this->auth->id)->find();
$exists = UserModel::where('nickname', $nickname)->where('id', '<>', $this->auth->id)->find();
if ($exists) {
$this->error(__('Nickname already exists'));
}
......@@ -206,7 +208,7 @@ class User extends Api
if (!Validate::is($email, "email")) {
$this->error(__('Email is incorrect'));
}
if (\app\common\model\User::where('email', $email)->where('id', '<>', $user->id)->find()) {
if (UserModel::where('email', $email)->where('id', '<>', $user->id)->find()) {
$this->error(__('Email already exists'));
}
$result = Ems::check($email, $captcha, 'changeemail');
......@@ -240,7 +242,7 @@ class User extends Api
if (!Validate::regex($mobile, "^1\d{10}$")) {
$this->error(__('Mobile is incorrect'));
}
if (\app\common\model\User::where('mobile', $mobile)->where('id', '<>', $user->id)->find()) {
if (UserModel::where('mobile', $mobile)->where('id', '<>', $user->id)->find()) {
$this->error(__('Mobile already exists'));
}
$result = Sms::check($mobile, $captcha, 'changemobile');
......@@ -309,7 +311,7 @@ class User extends Api
if (!Validate::regex($mobile, "^1\d{10}$")) {
$this->error(__('Mobile is incorrect'));
}
$user = \app\common\model\User::getByMobile($mobile);
$user = UserModel::getByMobile($mobile);
if (!$user) {
$this->error(__('User not found'));
}
......@@ -322,10 +324,10 @@ class User extends Api
if (!Validate::is($email, "email")) {
$this->error(__('Email is incorrect'));
}
$user = \app\common\model\User::getByEmail($email);
$user = UserModel::getByEmail($email);
if (!$user) {
$this->error(__('User not found'));
}
}
$ret = Ems::check($email, $captcha, 'resetpwd');
if (!$ret) {
$this->error(__('Captcha is incorrect'));
......
......@@ -18,9 +18,11 @@ class Ex extends Model
protected $append = [
];
//统计订单量和订单金额
public static function Orders($popularize_id)
public static function Orders($popularize_id,$startTime='',$endTime='')
{
$totalPrice = 0;
$whereStart = [];
$whereEnd = [];
$totalCount = 0;
if ($popularize_id <= 0){
$data = [
......@@ -29,8 +31,10 @@ class Ex extends Model
];
return $data;
}
if(!empty($startTime)) $whereStart['name4'] = ['>',$startTime];
if(!empty($endTime)) $whereEnd['name4'] = ['<',$endTime];
$orderlist = self::field("name12")->where('name8', $popularize_id)->select();
$orderlist = self::field("name12")->where('name8', $popularize_id)->where($whereStart)->where($whereEnd)->select();
foreach ($orderlist as $k => $v) {
$totalPrice += $v["name12"];
......@@ -43,4 +47,11 @@ class Ex extends Model
return $data;
}
// public static function getCustomerIncome($popularize_id)
// {
// $where = [];
//
// return self::where('name8',$popularize_id)->where($where);
// }
}
......@@ -38,6 +38,9 @@ class Index extends Frontend
return $this->view->fetch();
}
/*
* 物料列表
* */
public function materialList()
{
$info = User::get($this->auth->id);
......@@ -45,6 +48,30 @@ class Index extends Frontend
$this->view->assign('data', $data);
return $this->view->fetch();
}
/*
* 我的收入
*/
public function income()
{
$info = User::get($this->auth->id);
if($this->request->get()){
$month = $this->request->get('month');
$nowMonth = date('m',time());
$searchStart = $nowMonth - $month+1;
$searchEnd = $searchStart-1;
$startTime = date('Y-m-d 00:00:00',strtotime("-$searchStart month"));
$endTime = date('Y-m-d H:i:s',strtotime("-$searchEnd month"));
}else{
$startTime = date('Y-m-d 00:00:00',strtotime('-1 month'));
$endTime = date('Y-m-d H:i:s',time());
}
$data = Ex::Orders($info->popularize_id,$startTime,$endTime);//按自然月获取订单数量
$this->assign('info',$data);
return $this->view->fetch();
}
public function imageExid (){
$info = User::get($this->auth->id);
$url = $_GET["url"];
......@@ -122,6 +149,4 @@ class Index extends Frontend
imagepng($img,$echo_png);//,'tt.png'
return $echo_png;
}
}
}
\ No newline at end of file
......@@ -145,7 +145,7 @@
<div class="mui-card-content">
<ul class="card-contentul">
<li class="ddlileft">
<p class="ddlileftp"> </p>
<p class="ddlileftp">{$data.totalCount}</p>
<p>订单数量</p>
</li>
<li class="ddliright">
......
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
var Controller = {
index: function () {
// 初始化表格参数配置
Table.api.init({
extend: {
index_url: 'ex/index' + location.search,
add_url: 'ex/add',
edit_url: 'ex/edit',
del_url: 'ex/del',
multi_url: 'ex/multi',
import_url: 'ex/import',
table: 'ex',
}
});
var table = $("#table");
// 初始化表格
table.bootstrapTable({
url: $.fn.bootstrapTable.defaults.extend.index_url,
pk: 'id',
sortName: 'id',
// 搜索按钮框展开
searchFormVisible: true,
// 隐藏搜索按钮
showSearch: false,
//隐藏搜索框
search:false,
//隐藏切换按钮
showToggle: false,
//隐藏列按钮
showColumns: false,
//隐藏导出按钮
showExport: false,
columns: [
[
// {checkbox: true},
{field: 'id', title: __('Id')},
{field: 'name1', title: __('Name1'), operate: 'LIKE'},
{field: 'name2', title: __('Name2'), operate: 'LIKE'},
{field: 'name3', title: __('Name3'), operate: 'LIKE'},
{field: 'name4', title: __('Name4'), operate: 'LIKE'},
{field: 'name5', title: __('Name5'), operate: 'LIKE'},
{field: 'name6', title: __('Name6'), operate: 'LIKE'},
{field: 'name7', title: __('Name7'), operate: 'LIKE'},
{field: 'name8', title: __('Name8'), operate: 'LIKE'},
{field: 'name9', title: __('Name9'), operate: 'LIKE'},
{field: 'name10', title: __('Name10'), operate: 'LIKE'},
{field: 'name11', title: __('Name11'), operate: 'LIKE'},
{field: 'name12', title: __('Name12'), operate: 'LIKE'},
{field: 'name13', title: __('Name13'), operate: 'LIKE'},
{field: 'name14', title: __('Name14'), operate: 'LIKE'},
{field: 'name15', title: __('Name15'), operate: 'LIKE'},
{field: 'name16', title: __('Name16'), operate: 'LIKE'},
{field: 'name17', title: __('Name17'), operate: 'LIKE'},
// {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]
]
});
// 为表格绑定事件
Table.api.bindevent(table);
},
add: function () {
Controller.api.bindevent();
},
edit: function () {
Controller.api.bindevent();
},
api: {
bindevent: function () {
Form.api.bindevent($("form[role=form]"));
}
}
};
return Controller;
});
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论