394 行
14 KiB
PHP
可执行文件
394 行
14 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace Retail\Controller;
|
|
|
|
/**
|
|
* 2019-4-28 新版菜单栏
|
|
*/
|
|
|
|
use Common\Model\ImageGalleryModel;
|
|
use Common\Model\JurisdictionGroupModel;
|
|
use Common\Model\RetailStoreAuthModel;
|
|
use Common\Model\RetailStoreModel;
|
|
use Retail\Business\Menu;
|
|
use Think\Controller;
|
|
|
|
//[1.8.50]
|
|
class MenuController extends NewBaseController
|
|
{
|
|
public function index()
|
|
{
|
|
$this->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);
|
|
}
|
|
} |