init: import production code mss.nahaichuan.com (exclude Runtime/Uploads/backups/logs)
这个提交包含在:
@@ -0,0 +1,394 @@
|
||||
<?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);
|
||||
}
|
||||
}
|
||||
在新工单中引用
屏蔽一个用户