zhangxiaobin 1 rok pred
rodič
commit
a0066c53fd

+ 45 - 2
application/admin/controller/user/User.php

@@ -2,6 +2,7 @@
 
 namespace app\admin\controller\user;
 
+use app\admin\model\Message;
 use app\common\controller\Backend;
 use app\common\library\Auth;
 
@@ -138,7 +139,7 @@ class User extends Backend
     /**
      * 编辑
      */
-    public function infoCheck($ids = null)
+    public function infocheck($ids = null)
     {
         $row = $this->model->get($ids);
         if (!$row) {
@@ -164,6 +165,28 @@ class User extends Backend
                     $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : $name) : $this->modelValidate;
                     $row->validateFailException(true)->validate($validate);
                 }
+                $nickStatusStr = $statusStr = '';
+                if (isset($params['check_nick_status'])) {
+                    if ($params['check_nick_status'] == 1) {//审核通过 更新昵称
+                        !empty($params['pre_nickname']) && $params['nickname'] = $params['pre_nickname'];
+                        $params['pre_nickname'] = '';
+                        $nickStatusStr = '昵称通过';
+                    } else {//审核拒绝 清空新昵称
+                        $params['pre_nickname'] = '';
+                        $nickStatusStr = '昵称拒绝';
+                    }
+                }
+                if (isset($params['check_status'])) {
+                    if ($params['check_status'] == 1) {//审核通过 更新头像
+                        !empty($params['pre_avatar']) && $params['avatar'] = $params['pre_avatar'];
+                        $params['pre_avatar'] = '';
+                        $statusStr = '头像通过';
+                    } else {//审核拒绝 清空新头像
+                        $params['pre_avatar'] = '';
+                        $statusStr = '头像拒绝';
+                    }
+                }
+
                 $result = $row->allowField(true)->save($params);
             } catch (ValidateException|PDOException|Exception $e) {
                 $this->error($e->getMessage());
@@ -171,9 +194,29 @@ class User extends Backend
             if ($result == false) {
                 $this->error(__('No rows were updated'));
             }
+            if (!empty($nickStatusStr) || !empty($statusStr)) {
+                //通过发消息
+                $title = '用户信息变更审核通知';
+                $content = '您申请的'.$nickStatusStr.$statusStr;
+                Message::addMessage($row['id'],$title,$content);
+            }
+
             $this->success();
         }
-        $this->view->assign("row", $row);
+        $checkStatusList = [1=>'通过', 0=>'拒绝'];
+        $showNickname = $showAvatar = 0;
+        if (!empty($row['pre_nickname']) && $row['pre_nickname'] != $row['nickname']) {
+            $showNickname = 1;
+        }
+        if (!empty($row['pre_avatar']) && $row['pre_avatar'] != $row['avatar']) {
+            $showAvatar = 1;
+        }
+        $this->view->assign([
+            'row' => $row,
+            'checkStatusList' => $checkStatusList,
+            'showNickname' => $showNickname,
+            'showAvatar' => $showAvatar,
+        ]);
         return $this->view->fetch();
     }
 }

+ 2 - 0
application/admin/lang/zh-cn/user/user.php

@@ -6,11 +6,13 @@ return [
     'Group_id'                                    => '组别ID',
     'Username'                                    => '用户名',
     'Nickname'                                    => '昵称',
+    'Pre_nickname'                                => '新昵称',
     'Password'                                    => '密码',
     'Salt'                                        => '密码盐',
     'Email'                                       => '电子邮箱',
     'Mobile'                                      => '手机号',
     'Avatar'                                      => '头像',
+    'pre_avatar'                                  => '新头像',
     'Level'                                       => '等级',
     'Gender'                                      => '性别',
     'Age'                                         => '年龄',

+ 24 - 6
application/admin/view/user/user/info_check.html → application/admin/view/user/user/infocheck.html

@@ -1,18 +1,31 @@
 <form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
     {:token()}
     <input type="hidden" name="row[id]" value="{$row.id}">
+    {if $showNickname == 1}
     <div class="form-group">
         <label for="c-nickname" class="control-label col-xs-12 col-sm-2">{:__('Nickname')}:</label>
         <div class="col-xs-12 col-sm-4">
-            <input id="c-nickname" data-rule="required" disabled class="form-control" name="row[nickname]" type="text" value="{$row.nickname|htmlentities}">
+            <input id="c-nickname" data-rule="required" class="form-control" name="row[nickname]" type="text" value="{$row.nickname|htmlentities}">
         </div>
     </div>
     <div class="form-group">
-        <label for="c-nickname" class="control-label col-xs-12 col-sm-2">{:__('Nickname')}:</label>
+        <label for="c-pre_nickname" class="control-label col-xs-12 col-sm-2">{:__('Pre_nickname')}:</label>
         <div class="col-xs-12 col-sm-4">
-            <input id="c-pre_nickname" class="form-control" name="row[pre_nickname]" type="text" value="{$row.pre_nickname|htmlentities}">
+            <input id="c-pre_nickname" data-rule="" class="form-control" name="row[pre_nickname]" type="text" value="{$row.pre_nickname|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('昵称审核')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <div class="radio">
+                {foreach name="checkStatusList" item="vo"}
+                <label for="row[check_nick_status]-{$key}"><input id="row[check_nick_status]-{$key}" name="row[check_nick_status]" type="radio" value="{$key}" {in name="key" value="1"}checked{/in} /> {$vo}</label>
+                {/foreach}
+            </div>
         </div>
     </div>
+    {/if}
+    {if $showAvatar == 1}
     <div class="form-group">
         <label for="c-avatar" class="control-label col-xs-12 col-sm-2">{:__('Avatar')}:</label>
         <div class="col-xs-12 col-sm-8">
@@ -28,7 +41,7 @@
         </div>
     </div>
     <div class="form-group">
-        <label for="c-avatar" class="control-label col-xs-12 col-sm-2">{:__('Avatar')}:</label>
+        <label for="c-pre_avatar" class="control-label col-xs-12 col-sm-2">{:__('Pre_avatar')}:</label>
         <div class="col-xs-12 col-sm-8">
             <div class="input-group">
                 <input id="c-pre_avatar" data-rule="" class="form-control" size="50" name="row[pre_avatar]" type="text" value="{$row.pre_avatar}">
@@ -42,11 +55,16 @@
         </div>
     </div>
     <div class="form-group">
-        <label for="content" class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
+        <label class="control-label col-xs-12 col-sm-2">{:__('头像审核')}:</label>
         <div class="col-xs-12 col-sm-8">
-            {:build_radios('row[status]', ['normal'=>__('Normal'), 'hidden'=>__('Hidden')], $row['status'])}
+            <div class="radio">
+                {foreach name="checkStatusList" item="vo"}
+                <label for="row[check_status]-{$key}"><input id="row[check_status]-{$key}" name="row[check_status]" type="radio" value="{$key}" {in name="key" value="1"}checked{/in} /> {$vo}</label>
+                {/foreach}
+            </div>
         </div>
     </div>
+    {/if}
     <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">

+ 37 - 2
application/api/controller/Usercenter.php

@@ -44,8 +44,15 @@ class UserCenter extends Common
         // 获取基本信息
         $where = [];
         $where["id"] = $user_id;
-        $userInfo = $this->userModel->field("id,nickname,image,mobile,avatar,gender,money,age,u_id,level,jewel,
+        $userInfo = $this->userModel->field("id,nickname,pre_nickname,image,mobile,avatar,pre_avatar,gender,money,age,u_id,level,jewel,
         age_id,constellation_id,province_id,city_id,desc,ipaddress,is_cool,is_manager")->where($where)->find();
+        $userInfo['nickname_status'] = $userInfo['avatar_status'] = 0;
+        if (!empty($userInfo['pre_nickname']) && $userInfo['pre_nickname'] != $userInfo['nickname']) {
+            $userInfo['nickname_status'] = 1;
+        }
+        if (!empty($userInfo['pre_avatar']) && $userInfo['pre_avatar'] != $userInfo['avatar']) {
+            $userInfo['avatar_status'] = 1;
+        }
         // 获取技能信息
         $skillList = Model("ViewUserSkill")->getSkillInfo($user_id);
         $userInfo["skill"] = implode("/",$skillList);
@@ -567,7 +574,7 @@ class UserCenter extends Common
     }
 
     /**
-     * 编辑个人信息
+     * 编辑个人信息(完善资料)
      */
     public function editUserInfo() {
         $avatar = $this->request->request('avatar'); // 头像
@@ -615,7 +622,35 @@ class UserCenter extends Common
             $this->error("网络错误,请稍后重试!");
         }
     }
+    /**
+     * 编辑个人信息(修改昵称和头像需要后台审核)
+     */
+    public function editUser() {
+        $avatar = $this->request->request('avatar'); // 头像
+        $nickname = $this->request->request('nickname'); // 昵称
+        if (!$avatar && !$nickname) {
+            $this->error(__('请输入要修改的信息'));
+        }
 
+        $data = [];
+        if ($avatar && $avatar != $this->auth->avatar) {
+            $data["pre_avatar"] = $avatar;
+        }
+        if($nickname && $nickname != $this->auth->nickname){
+            if (mb_strlen($nickname) > 8) {
+                $this->error('用户昵称最多支持8个汉字或组合');
+            }
+            $data["pre_nickname"] = $nickname;
+        }
+        if (!empty($data)) {
+            $where["id"] = $this->auth->id;
+            $res = $this->userModel->update($data,$where);
+            if(!$res) {
+                $this->error("网络错误,请稍后重试!");
+            }
+        }
+        $this->success("修改成功!");
+    }
     /**
      * 主播申请
      */

+ 10 - 1
application/common/library/Auth.php

@@ -464,7 +464,7 @@ class Auth
                 $v["type"] == 4 && $userandroidpop = $v["android_image"];
             }
         }
-        $userField = 'id,pay_password,openid,is_cool,is_manager';
+        $userField = 'id,pay_password,openid,is_cool,is_manager,nickname,pre_nickname,avatar,pre_avatar';
         $user = model('User')->field($userField)->where(["id" => $this->_user->id])->with(['useralipay','userbank'])->find();
         // 获取我的推荐人的邀请码
         $preUserField = 'id,invite_no';
@@ -524,6 +524,15 @@ class Auth
             $userinfo['own_guild_id'] = $own_guild_id;
         }
         $userinfo['user_power'] = $this->power;
+        $userinfo['pre_nickname'] = isset($user['pre_nickname']) ? $user['pre_nickname'] : '';
+        $userinfo['pre_avatar'] = isset($user['pre_avatar']) ? $user['pre_avatar'] : '';
+        $userinfo['nickname_status'] = $userinfo['avatar_status'] = 0;
+        if (!empty($user['pre_nickname']) && $user['pre_nickname'] != $user['nickname']) {
+            $userinfo['nickname_status'] = 1;
+        }
+        if (!empty($user['pre_avatar']) && $user['pre_avatar'] != $user['avatar']) {
+            $userinfo['avatar_status'] = 1;
+        }
         //
         return $userinfo;
     }

+ 8 - 4
public/assets/js/backend/user/user.js

@@ -8,6 +8,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                     index_url: 'user/user/index',
                     edit_url: 'user/user/edit',
                     multi_url: 'user/user/multi',
+                    infocheck_url: 'user/user/infocheck',
                     table: 'user',
                 }
             });
@@ -72,11 +73,11 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                     classname: 'btn btn-xs btn-primary btn-dialog',
                                     icon: 'fa fa-list',
                                     url: 'user/user/detail',
-                                }, /*{
-                                    name: 'info_check',
+                                }, {
+                                    name: 'infocheck',
                                     title: __('信息审核'),
                                     classname: 'btn btn-xs btn-warning btn-dialog',
-                                    icon: 'fa fa-bars',
+                                    icon: 'fa fa-leaf',
                                     url: 'user/user/infoCheck',
                                     visible: function (row) {
                                         if ((row.pre_nickname != '' && row.pre_nickname != row.nickname) || (row.pre_avatar != '' && row.pre_avatar != row.avatar)) {
@@ -85,7 +86,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                             return false;
                                         }
                                     }
-                                },*/
+                                },
                             ], table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate
                         }
                     ]
@@ -105,6 +106,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
         detail: function () {
             Controller.api.bindevent();
         },
+        infocheck: function () {
+            Controller.api.bindevent();
+        },
         api: {
             bindevent: function () {
                 Form.api.bindevent($("form[role=form]"));