Browse Source

公会成员

lizhen_gitee 1 year ago
parent
commit
6899cda20a

+ 51 - 2
application/admin/controller/guild/Joinin.php

@@ -3,7 +3,7 @@
 namespace app\admin\controller\guild;
 
 use app\common\controller\Backend;
-
+use think\Db;
 /**
  * 公会加入申请管理
  *
@@ -54,7 +54,7 @@ class Joinin extends Backend
             list($where, $sort, $order, $offset, $limit) = $this->buildparams();
 
             $list = $this->model
-                    ->with(['guild'])
+                    ->with(['guild','user'])
                     ->where($where)
                     ->order($sort, $order)
                     ->paginate($limit);
@@ -62,6 +62,7 @@ class Joinin extends Backend
             foreach ($list as $row) {
                 
                 $row->getRelation('guild')->visible(['name']);
+				$row->getRelation('user')->visible(['username']);
             }
 
             $result = array("total" => $list->total(), "rows" => $list->items());
@@ -71,4 +72,52 @@ class Joinin extends Backend
         return $this->view->fetch();
     }
 
+    /**
+     * 审核
+     */
+    public function audit(){
+        $id = input('id');
+        $info = Db::name('guild_joinin')
+            ->where('id',$id)
+            ->find();
+
+        if ($this->request->isPost()) {
+            $status = input('status',0);
+            $data = [
+                'status' => $status,
+                /*'auditremark' => input('auditremark',''),
+                'audittime' => strtotime(input('audittime','')),
+                'updatetime' => time(),*/
+            ];
+            Db::startTrans();
+            $rs = Db::name('guild_joinin')->where('id',$id)->update($data);
+
+            if($status == 1){
+
+                $data = [];
+                $data["guild_id"] = $info['guild_id'];
+                $data["user_id"] = $info['user_id'];
+                $data["role"] = 0;
+                $data["createtime"] = time();
+                $res3 = \app\common\model\GuildMember::insert($data);
+
+                $res4 = \app\common\model\Guild::where(["id"=>$info['guild_id']])->setInc("member");
+
+                //系统消息
+                $msg_id = \app\common\model\Message::addMessage($info['user_id'],'公会审核','入会审核已经通过');
+
+            }elseif($status == -1){
+                //系统消息
+                $msg_id = \app\common\model\Message::addMessage($info['user_id'],'公会审核','入会审核已经被拒绝');
+            }
+
+            Db::commit();
+
+            $this->success('审核完成');
+        }
+
+        $this->assign('row',$info);
+        return $this->view->fetch();
+    }
+
 }

+ 2 - 9
application/admin/lang/zh-cn/guild/joinin.php

@@ -3,19 +3,12 @@
 return [
     'User_id'       => '申请用户ID',
     'Guild_id'      => '申请加入的公会',
-    'Join_time'     => '申请签约时长',
-    'Join_time 1'   => '3个月',
-    'Join_time 2'   => '6个月',
-    'Join_time 3'   => '12个月',
-    'User_avatar'   => '用户头像',
-    'User_idcard'   => '用户身份证号',
-    'User_nickname' => '用户昵称',
-    'Guild_name'    => '家族名称',
     'Status'        => '审核状态',
     'Status -1'     => '审核拒绝',
     'Status 0'      => '未审核',
     'Status 1'      => '审核通过',
     'Createtime'    => '申请时间',
     'Updatetime'    => '审核时间',
-    'Guild.name'    => '家族名称'
+    'Guild.name'    => '公会名称',
+    'User.username' => '用户名'
 ];

+ 7 - 12
application/admin/model/guild/Joinin.php

@@ -25,7 +25,6 @@ class Joinin extends Model
 
     // 追加属性
     protected $append = [
-        'join_time_text',
         'status_text'
     ];
     
@@ -37,13 +36,6 @@ class Joinin extends Model
     }
 
 
-    public function getJoinTimeTextAttr($value, $data)
-    {
-        $value = $value ? $value : (isset($data['join_time']) ? $data['join_time'] : '');
-        return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
-    }
-
-
     public function getStatusTextAttr($value, $data)
     {
         $value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
@@ -51,14 +43,17 @@ class Joinin extends Model
         return isset($list[$value]) ? $list[$value] : '';
     }
 
-    protected function setJoinTimeAttr($value)
-    {
-        return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
-    }
+
 
 
     public function guild()
     {
         return $this->belongsTo('app\admin\model\guild\Guild', 'guild_id', 'id', [], 'LEFT')->setEagerlyType(0);
     }
+
+
+    public function user()
+    {
+        return $this->belongsTo('app\admin\model\User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
+    }
 }

+ 1 - 39
application/admin/view/guild/joinin/add.html

@@ -9,45 +9,7 @@
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Guild_id')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-guild_id" data-rule="required" data-source="guild/guild/index" class="form-control selectpage" name="row[guild_id]" type="text" value="">
-        </div>
-    </div>
-<!--    <div class="form-group">-->
-<!--        <label class="control-label col-xs-12 col-sm-2">{:__('Join_time')}:</label>-->
-<!--        <div class="col-xs-12 col-sm-8">-->
-<!--            <input id="c-join_time" data-rule="required" class="form-control" data-use-current="true" name="row[join_time]" type="text" value="">-->
-<!--        </div>-->
-<!--    </div>-->
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('User_avatar')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <div class="input-group">
-                <input id="c-user_avatar" class="form-control" size="50" name="row[user_avatar]" type="text">
-                <div class="input-group-addon no-border no-padding">
-                    <span><button type="button" id="faupload-user_avatar" class="btn btn-danger faupload" data-input-id="c-user_avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-user_avatar"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
-                    <span><button type="button" id="fachoose-user_avatar" class="btn btn-primary fachoose" data-input-id="c-user_avatar" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
-                </div>
-                <span class="msg-box n-right" for="c-user_avatar"></span>
-            </div>
-            <ul class="row list-inline faupload-preview" id="p-user_avatar"></ul>
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('User_idcard')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-user_idcard" class="form-control" name="row[user_idcard]" type="text">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('User_nickname')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-user_nickname" class="form-control" name="row[user_nickname]" type="text">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Guild_name')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-guild_name" class="form-control" name="row[guild_name]" type="text">
+            <input id="c-guild_id" data-rule="required" data-source="guild/index" class="form-control selectpage" name="row[guild_id]" type="text" value="">
         </div>
     </div>
     <div class="form-group">

+ 34 - 0
application/admin/view/guild/joinin/audit.html

@@ -0,0 +1,34 @@
+<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">{:__('User_id')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-user_id" data-rule="required" data-source="user/user/index" disabled data-field="username" class="form-control selectpage"  type="text" value="{$row.user_id|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Guild_id')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-guild_id" data-rule="required" data-source="guild/guild/index" disabled data-field="name" class="form-control selectpage"  type="text" value="{$row.guild_id|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            
+            <div class="radio">
+            {foreach name="statusList" item="vo"}
+            <label for="row[status]-{$key}"><input id="row[status]-{$key}" name="status" type="radio" value="{$key}" {in name="key" value="$row.status"}checked{/in} /> {$vo}</label>
+            {/foreach}
+            </div>
+
+        </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>

+ 1 - 39
application/admin/view/guild/joinin/edit.html

@@ -9,45 +9,7 @@
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Guild_id')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-guild_id" data-rule="required" data-source="guild/guild/index" class="form-control selectpage" name="row[guild_id]" type="text" value="{$row.guild_id|htmlentities}">
-        </div>
-    </div>
-<!--    <div class="form-group">-->
-<!--        <label class="control-label col-xs-12 col-sm-2">{:__('Join_time')}:</label>-->
-<!--        <div class="col-xs-12 col-sm-8">-->
-<!--            <input id="c-join_time" disabled data-rule="required" class="form-control" data-use-current="true" name="row[join_time]" type="text" value="{$row.join_time|htmlentities}">-->
-<!--        </div>-->
-<!--    </div>-->
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('User_avatar')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <div class="input-group">
-                <input id="c-user_avatar" class="form-control" size="50" name="row[user_avatar]" type="text" value="{$row.user_avatar|htmlentities}">
-                <div class="input-group-addon no-border no-padding">
-                    <span><button type="button" id="faupload-user_avatar" class="btn btn-danger faupload" data-input-id="c-user_avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-user_avatar"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
-                    <span><button type="button" id="fachoose-user_avatar" class="btn btn-primary fachoose" data-input-id="c-user_avatar" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
-                </div>
-                <span class="msg-box n-right" for="c-user_avatar"></span>
-            </div>
-            <ul class="row list-inline faupload-preview" id="p-user_avatar"></ul>
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('User_idcard')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-user_idcard" class="form-control" name="row[user_idcard]" type="text" value="{$row.user_idcard|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('User_nickname')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-user_nickname" class="form-control" name="row[user_nickname]" type="text" value="{$row.user_nickname|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Guild_name')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-guild_name" class="form-control" name="row[guild_name]" type="text" value="{$row.guild_name|htmlentities}">
+            <input id="c-guild_id" data-rule="required" data-source="guild/index" class="form-control selectpage" name="row[guild_id]" type="text" value="{$row.guild_id|htmlentities}">
         </div>
     </div>
     <div class="form-group">

+ 14 - 1
application/admin/view/guild/joinin/index.html

@@ -17,12 +17,25 @@
                 <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('guild/joinin/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('guild/joinin/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('guild/joinin/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
+                        <a href="javascript:;" class="btn btn-danger btn-import {:$auth->check('guild/joinin/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('guild/joinin/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('guild/joinin/edit')}" 
+                           data-operate-del="{:$auth->check('guild/joinin/del')}" 
+                           data-operate-audit="{:$auth->check('guild/joinin/audit')}"
                            width="100%">
                     </table>
                 </div>

+ 5 - 29
application/api/controller/Guild.php

@@ -338,10 +338,7 @@ class Guild extends Api
         $data["user_id"] = $user_id;
         $data["guild_id"] = $guild_id;
         //$data["join_time"] = $join_time;
-        $data["user_avatar"] = $userInfo->avatar;
-        $data["user_idcard"] = $authUserIdcard;
-        $data["user_nickname"] = $userInfo->nickname;
-        $data["guild_name"] = $guildName;
+
         $data["createtime"] = time();
         $res = \app\common\model\GuildJoinin::insert($data);
         if($res) {
@@ -387,29 +384,10 @@ class Guild extends Api
         }
 
 
-        // 获取用户信息
-        $userInfo = \app\common\model\User::field("id,u_id,mobile,nickname")->where(["id"=>$joininInfo->user_id])->find();
-
         // 计算签约时间段
-        $join_time = $joininInfo->join_time;
-        $timeArr = [1=>3,2=>6,3=>12];
-        $endtime = strtotime('+'.$timeArr[$join_time].' month');
-        $sign_time_slot = date("Y.m.d")."-".date('Y.m.d',$endtime);
         Db::startTrans();
         try{
-            //记个无用的日志
-            $data = [];
-            $data["user_id"] = $joininInfo->user_id;
-            $data["operator"] = $user_id;
-            $data["user_nickname"] = $userInfo->nickname;
-            $data["user_u_id"] = $userInfo->u_id;
-            $data["guild_id"] = $guildInfo->id;
-            $data["guild_name"] = $guildInfo->name;
-            $data["guild_g_id"] = $guildInfo->g_id;
-            $data["sign_time_slot"] = $sign_time_slot;
-            $data["status"] = $is_pass;
-            $data["createtime"] = time();
-            $res1 = \app\common\model\GuildJoininLog::insert($data);
+
 
             // 更新申请状态
             $joininInfo->status = $is_pass;
@@ -422,20 +400,18 @@ class Guild extends Api
                 $data["guild_id"] = $guildInfo->id;
                 $data["user_id"] = $joininInfo->user_id;
                 $data["role"] = 0;
-//                $data["sign_type"] = $join_time; // 签约类型:1=三个月,2=半年,3=一年
-//                $data["sign_time"] = $endtime;
                 $data["status"] = 1;
                 $data["createtime"] = time();
                 $res3 = \app\common\model\GuildMember::insert($data);
                 $res4 = \app\common\model\Guild::where(["id"=>$guildInfo->id])->setInc("member");
-                if($res1 && $res2 && $res3 && $res4) {
+                if($res2 && $res3 && $res4) {
                     // +message
-                    \app\common\model\Message::addMessage($joininInfo->user_id,"公会审核通知","恭喜,您的加入公会审核通过啦!公会ID:".$guildInfo->g_id);
+                    \app\common\model\Message::addMessage($joininInfo->user_id,"公会审核通知","恭喜,您的加入公会审核通过啦!");
                     Db::commit();
                     $this->success("已审核通过!");
                 }
             } else {
-                if($res1 && $res2) {
+                if($res2) {
                     // +message
                     \app\common\model\Message::addMessage($joininInfo->user_id,"公会审核通知","您的公会加入申请,会长审核拒绝,没关系,调整姿势再来一遍!");
                     Db::commit();

+ 28 - 11
public/assets/js/backend/guild/joinin.js

@@ -6,11 +6,11 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
             Table.api.init({
                 extend: {
                     index_url: 'guild/joinin/index' + location.search,
-                    // add_url: 'guild/joinin/add',
-                    // edit_url: 'guild/joinin/edit',
-                    // del_url: 'guild/joinin/del',
-                    // multi_url: 'guild/joinin/multi',
-                    // import_url: 'guild/joinin/import',
+                    add_url: 'guild/joinin/add',
+//                    edit_url: 'guild/joinin/edit',
+//                    del_url: 'guild/joinin/del',
+                    multi_url: 'guild/joinin/multi',
+                    import_url: 'guild/joinin/import',
                     table: 'guild_joinin',
                 }
             });
@@ -27,16 +27,30 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         {checkbox: true},
                         {field: 'id', title: __('Id')},
                         {field: 'user_id', title: __('User_id')},
+                        {field: 'user.username', title: __('User.username'), operate: 'LIKE'},
+
                         {field: 'guild_id', title: __('Guild_id')},
-                        {field: 'guild.name', title: __('公会名称'), operate: 'LIKE'},
-                        {field: 'user_avatar', title: __('User_avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
-                        {field: 'user_idcard', title: __('User_idcard'), operate: 'LIKE'},
-                        {field: 'user_nickname', title: __('User_nickname'), operate: 'LIKE'},
-                        {field: 'guild_name', title: __('Guild_name'), operate: 'LIKE'},
+                        {field: 'guild.name', title: __('Guild.name'), operate: 'LIKE'},
+
                         {field: 'status', title: __('Status'), searchList: {"-1":__('Status -1'),"0":__('Status 0'),"1":__('Status 1')}, formatter: Table.api.formatter.status},
                         {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                         {field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
-                        // {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
+                        {field: 'operate', title: __('Operate'), table: table,
+                            buttons:[
+                                {
+                                    name:'audit',
+                                    text:'审核',
+                                    title:'审核',
+                                    icon:'fa fa-exclamation-circle',
+                                    classname:'btn btn-xs btn-info btn-dialog',
+                                    url:'guild/joinin/audit/id/{ids}?dialog=1',
+                                    target:'_self',
+                                    hidden:function(row){
+                                        return row.status==0 ? false : true;
+                                    }
+                                }
+                            ],
+                            events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                     ]
                 ]
             });
@@ -50,6 +64,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
         edit: function () {
             Controller.api.bindevent();
         },
+        audit: function () {
+            Controller.api.bindevent();
+        },
         api: {
             bindevent: function () {
                 Form.api.bindevent($("form[role=form]"));