display(); } public function getMenuData() { if (IS_POST) { $user = session('jurisdiction_user'); $store_id = session('store_id'); $store_id = $store_id ? $store_id : 0; if (in_array($user['login_type'], ['3', '4'])) { $merchant_id = $user['merchant_id']; } if (!empty($user['avatar_id'])) { $ImageGalleryModel = new ImageGalleryModel(); $user['avatar'] = $ImageGalleryModel->getFieldPath(['id' => $user['avatar_id']]); } $notice = ''; if (!empty($store_id)) { $notice = M('retail_notice')->where(['merchantid' => $merchant_id, 'stype' => 1])->order('id desc')->getField('title'); } $MenuApi = new Menu(); $menu = $MenuApi->getMenu([ 'login_type' => $user['login_type'], 'agent_id' => $user['agent_id'], 'merchant_id' => $user['merchant_id'], 'store_id' => $store_id, 'jurisdiction_group_id' => $user['jurisdiction_group_id'], ]); //获取扫码登录的公众号配置信息 $wxConfig = M('partner_wxconfig')->count(); $logo = M('retail_logo')->order('id asc')->find(); $data = [ 'menu' => $menu, 'notice' => $notice, 'logo' => $logo ? $logo : ((object)[]), 'openScan' => $wxConfig ? 1 : 0, 'user' => [ 'name' => $user['name'], 'avatar' => $user['avatar'], 'isBinding' => $user['openid'] ? true : false, ], ]; $JurGroupModel = new JurisdictionGroupModel(); switch ($user['user_type']) { case '0': $data['manageName'] = $JurGroupModel->getFindField(['id' => $user['jurisdiction_group_id']], 'role_name'); break; case '1': $data['manageName'] = '合伙人'; break; case '2': $data['manageName'] = '代理商'; break; case '3': $data['manageName'] = '商户'; break; case '4': $data['manageName'] = '门店'; break; case '5': $data['manageName'] = '导购员'; break; } if (!empty($merchant_id)) { $data['merchant_id'] = $merchant_id; if ($store_id) { $StoreModel = new RetailStoreModel(); $store = $StoreModel->getFind(array('id' => $store_id), 'storetag,industry_id'); //处理门店权限 $StoreAuthModel = new RetailStoreAuthModel(); $auth = $StoreAuthModel->getFind(['storeid' => $store_id]); $authObj = []; foreach ($auth as $key => &$v) { if (is_numeric($v)) { $authObj[$key] = ($v == 1 || $user['login_type'] == 3) ? true : false; } } $data['store_id'] = $store_id; $data['industry_id'] = $store['industry_id']; $data['store_name'] = $store['storetag']; $data['store_auth'] = $authObj; if ($user['login_type'] == 3) { $data['user']['other_name'] = $data['store_name']; } } } $this->ajaxReturn([ 'status' => 1, 'message' => '获取成功', 'data' => $data, ]); } } /** * 修改密码 */ public function resetPassword() { if (IS_POST) { $user = session('jurisdiction_user'); $oldPass = I('post.oldPass'); $newPass = I('post.newPass'); $newRePass = I('post.newRePass'); if (empty($user) || empty($oldPass) || empty($newPass) || empty($newRePass)) { $res['status'] = 0; $res['msg'] = '缺少参数'; $this->ajaxReturn($res); } if (strlen($newPass) > 16) { $res['status'] = 0; $res['msg'] = '密码长度不能大于16位'; $this->ajaxReturn($res); exit; } if ($newPass != $newRePass) { $res['status'] = 0; $res['msg'] = '两次输入密码不一致'; $this->ajaxReturn($res); } $CryptoModel = new \Addons\Api\Crypto (); $oldPwd = $CryptoModel->encrypt($oldPass, date('YmdHis', $user['add_time'])); //判断旧密码 $res['old'] = $oldPwd; $res['new'] = $user['password']; if ($oldPwd == $user['password']) { $newPwd = $CryptoModel->encrypt($newPass, date('YmdHis', $user['add_time'])); $update = M('jurisdiction_user')->where(array('id' => $user['id']))->save(array('password' => $newPwd)); if ($update) { $user['password'] = $newPwd; session('jurisdiction_user', $user); $res['status'] = 1; $res['msg'] = '密码修改成功'; } else { $res['status'] = 0; $res['msg'] = '密码未修改'; } } else { $res['status'] = 0; $res['msg'] = '密码有误'; } } else { $res['status'] = 0; $res['msg'] = '网络错误'; } $this->ajaxReturn($res); } /** * 退出登录 2019-4-28 */ Public function loginOut() { session(null); header('Location:' . U('Retail/Login/index')); } /** * 获取微信授权二维码 2019-2-28 */ public function random() { if (IS_POST) { $user = session('jurisdiction_user'); if (empty($user)) { $res['status'] = 0; $res['msg'] = '缺少参数'; $this->ajaxReturn($res); } $wxConfig = M('partner_wxconfig')->find(); if (empty($wxConfig)) { $res['status'] = 0; $res['msg'] = '系统未配置授权登录公众号'; $this->ajaxReturn($res); } $str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $len = strlen($str) - 1; $randStr = ''; for ($i = 0; $i < 10; $i++) { $num = mt_rand(0, $len); $randStr .= $str[$num]; } $item['token'] = $randStr; //token $item['user_id'] = $user['id']; //角色用户id $item['user_type'] = $user['user_type']; $item['start_time'] = time(); $item['end_time'] = time() + 60; //token有效期 $item['status'] = 0; $add = M('auth_token')->add($item); if ($add) { $url = 'http://' . $_SERVER['HTTP_HOST'] . '/index.php/Retail/Binding/index?token=' . $randStr; $data['url'] = $url; $data['token'] = $randStr; $data['title'] = $wxConfig['official_name']; $res['data'] = $data; $res['status'] = 1; $res['msg'] = '获取授权码成功'; } else { $res['status'] = 0; $res['msg'] = '获取授权码失败,请重试'; } } else { $res['status'] = 0; $res['msg'] = '网络错误'; } $this->ajaxReturn($res); } /** * 判断用户是否扫描 2019-4-28 */ public function check() { if (IS_POST) { $token = I('post.token'); $user = session('jurisdiction_user'); if (!empty($token) && !empty($user)) { $map['token'] = $token; $map['user_id'] = $user['id']; $map['start_time'] = array('lt', time()); $find = M('auth_token')->where($map)->find(); if ($find) { switch ($find['status']) { case '0': if ($find['end_time'] < time()) { $res['status'] = 4; $res['msg'] = '等待超时'; } else { $res['status'] = 0; $res['msg'] = '用户未扫描'; } break; case '1': $res['status'] = 1; $res['msg'] = '用户已扫描'; break; case '2': $res['status'] = 2; $res['msg'] = '用户授权成功'; break; case '3': $res['status'] = 3; $res['msg'] = '用户取消授权'; break; default: if ($find['end_time'] < time()) { $res['status'] = 4; $res['msg'] = '等待超时'; } else { $res['status'] = 0; $res['msg'] = '用户未扫描'; } } } else { $res['status'] = 0; $res['msg'] = '请求参数有误'; } } else { $res['status'] = 0; $res['msg'] = '缺少参数'; } $this->ajaxReturn($res); } } /** * 查看用户授权情况 2019-4-28 */ public function auth() { if (IS_POST) { $user = session('jurisdiction_user'); $token = I('post.token'); if (empty($user) || empty($token)) { $res['status'] = 0; $res['msg'] = '缺少参数'; $this->ajaxReturn($res); } $map['token'] = $token; $map['user_id'] = $user['id']; $map['start_time'] = array('lt', time()); $result = M('auth_token')->where($map)->find(); if ($result['status'] == 2) { $res['status'] = 1; $res['msg'] = '授权成功'; } else if ($result['status'] == 3) { $res['status'] = 2; $res['msg'] = '取消授权'; } else if ($result['end_time'] < time()) { $res['status'] = 3; $res['msg'] = '等待超时'; } else { $res['status'] = 0; $res['msg'] = '用户未操作'; } } else { $res['status'] = 0; $res['msg'] = '网络有误'; } $this->ajaxReturn($res); } /** * 解绑微信 2019-4-28 */ public function relieveWx() { if (IS_POST) { $user = session('jurisdiction_user'); if (empty($user)) { $res['status'] = 0; $res['msg'] = '缺少参数'; $this->ajaxReturn($res); } $up['openid'] = ''; $update = M('jurisdiction_user')->where(array('id' => $user['id']))->save($up); if ($update) { $res['status'] = 1; $res['msg'] = '解除成功'; } else { $res['status'] = 0; $res['msg'] = '解除失败'; } } else { $res['status'] = 0; $res['msg'] = '网络有误'; } $this->ajaxReturn($res); } /** * 修改用户头像 2019-4-28 */ public function setUserImage() { if (IS_POST) { $user = session('jurisdiction_user'); $avatar_id = I('post.avatar_id'); $avatar = I('post.avatar'); if (!$avatar_id || !$avatar) { $res['status'] = 0; $res['msg'] = '请选择图片'; $this->ajaxReturn($res); } $save = M('jurisdiction_user')->where(array('id' => $user['id']))->save(array('avatar_id' => $avatar_id, 'avatar' => $avatar)); if ($save) { $user['avatar'] = $avatar; $user['avatar_id'] = $avatar_id; session('jurisdiction_user', $user); $res['status'] = 1; $res['msg'] = '设置成功'; } else { $res['status'] = 2; $res['msg'] = '设置失败'; } } else { $res['status'] = 0; $res['msg'] = '网络错误'; } $this->ajaxReturn($res); } public function reBack() { session('store_id', null); session('storeid', null); } }