You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
259 lines
9.4 KiB
259 lines
9.4 KiB
10 months ago
|
<?php
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | 天诚科技 [ 刘海东 17600099397赋能开发者,助力企业发展 ]
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Copyright (c) 2016~2020 https://www.tczxkj.com All rights reserved.
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Licensed 该系统并不是自由软件,未经许可不能去掉相关版权
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Author:甘肃天诚志信电子商务有限公司 刘海东 联系电话维系17600099397
|
||
|
// +----------------------------------------------------------------------
|
||
|
|
||
|
namespace app\admin\controller\institution;
|
||
|
|
||
|
use app\admin\controller\AuthController;
|
||
|
use app\admin\model\special\LecturerInstitution as Lecturer;
|
||
|
use app\admin\model\institution\UserInstitution as UserInstitutionModel;
|
||
|
use app\admin\model\institution\Institution as InstitutionModel;
|
||
|
use app\admin\model\institution\InstitutionAdmin as InstitutionAdminModel;
|
||
|
use app\institution\model\institution\InstitutionMenus;
|
||
|
use app\admin\model\user\User;
|
||
|
use service\JsonService;
|
||
|
use service\JsonService as Json;
|
||
|
use service\FormBuilder as Form;
|
||
|
use think\Db;
|
||
|
use think\Url;
|
||
|
|
||
|
/**
|
||
|
* 机构申请控制器
|
||
|
*/
|
||
|
class UserInstitutionPrise extends AuthController
|
||
|
{
|
||
|
/**
|
||
|
* 机构申请列表展示
|
||
|
* @return
|
||
|
* */
|
||
|
public function index()
|
||
|
{
|
||
|
return $this->fetch();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 机构申请列表获取
|
||
|
* @return
|
||
|
* */
|
||
|
public function lecturer_enter_list()
|
||
|
{
|
||
|
$where = parent::getMore([
|
||
|
['page', 1],
|
||
|
['limit', 20],
|
||
|
['title', ''],
|
||
|
['entry_type',2 ]
|
||
|
]);
|
||
|
return JsonService::successlayui(UserInstitutionModel::getLecturerList($where));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 删除机构申请
|
||
|
* @param int $id 修改的主键
|
||
|
* @return json
|
||
|
* */
|
||
|
public function delete($id = 0)
|
||
|
{
|
||
|
if (!$id) return JsonService::fail('缺少参数');
|
||
|
if (UserInstitutionModel::delLecturer($id))
|
||
|
return JsonService::successful('删除成功');
|
||
|
else
|
||
|
return JsonService::fail(UserInstitutionModel::getErrorInfo('删除失败'));
|
||
|
}
|
||
|
|
||
|
/**查看申请
|
||
|
* @param int $id
|
||
|
* @return mixed
|
||
|
*/
|
||
|
public function see($id = 0)
|
||
|
{
|
||
|
$this->assign(['id' => $id]);
|
||
|
return $this->fetch();
|
||
|
}
|
||
|
|
||
|
/**申请数据
|
||
|
* @param $id
|
||
|
* @throws \think\exception\DbException
|
||
|
*/
|
||
|
public function getUserEnter($id)
|
||
|
{
|
||
|
$data = UserInstitutionModel::get($id);
|
||
|
$data['label'] = json_decode($data['label']);
|
||
|
if ($data['charter']) {
|
||
|
$data['charter'] = json_decode($data['charter']);
|
||
|
} else {
|
||
|
$data['charter'] = [];
|
||
|
}
|
||
|
$data['certificate'] = json_decode($data['certificate'],true);
|
||
|
return JsonService::successful($data);
|
||
|
}
|
||
|
|
||
|
/**不通过
|
||
|
* @param $id
|
||
|
* @throws \think\exception\DbException
|
||
|
*/
|
||
|
public function fail($id)
|
||
|
{
|
||
|
$fail_msg = parent::postMore([
|
||
|
['message', ''],
|
||
|
]);
|
||
|
if (!UserInstitutionModel::be(['id' => $id, 'status' => 0])) return JsonService::fail('操作记录不存在或状态错误!');
|
||
|
$enter = UserInstitutionModel::get($id);
|
||
|
if (!$enter) return JsonService::fail('操作记录不存!');
|
||
|
if ($enter->status != 0) return Json::fail('您已审核,请勿重复操作');
|
||
|
UserInstitutionModel::beginTrans();
|
||
|
$res = UserInstitutionModel::changeFail($id, $enter['uid'], $fail_msg['message'], $enter);
|
||
|
if ($res) {
|
||
|
UserInstitutionModel::commitTrans();
|
||
|
return JsonService::successful('操作成功!');
|
||
|
} else {
|
||
|
UserInstitutionModel::rollbackTrans();
|
||
|
return JsonService::fail('操作失败!');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**通过
|
||
|
* @param $id
|
||
|
* @throws \think\exception\DbException
|
||
|
*/
|
||
|
public function succ($id)
|
||
|
{
|
||
|
if (!UserInstitutionModel::be(['id' => $id, 'status' => 0])) return JsonService::fail('操作记录不存在或状态错误!');
|
||
|
$enter = UserInstitutionModel::get($id);
|
||
|
if (!$enter) return JsonService::fail('操作记录不存!');
|
||
|
if ($enter->status != 0) return Json::fail('您已审核,请勿重复操作');
|
||
|
UserInstitutionModel::beginTrans();
|
||
|
$res = UserInstitutionModel::changeSuccess($id, $enter['uid'], $enter);
|
||
|
if ($res) {
|
||
|
UserInstitutionModel::commitTrans();
|
||
|
return JsonService::successful('操作成功!');
|
||
|
} else {
|
||
|
UserInstitutionModel::rollbackTrans();
|
||
|
return JsonService::fail('操作失败!');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**生成机构后台
|
||
|
* @return mixed
|
||
|
*/
|
||
|
public function create($id)
|
||
|
{
|
||
|
$enter = UserInstitutionModel::get($id);
|
||
|
$this->assign([
|
||
|
'title' => '添加机构后台',
|
||
|
'enter' => json_encode($enter),
|
||
|
'action' => Url::build('save'),
|
||
|
'menus' => json(InstitutionMenus::ruleList())->getContent()
|
||
|
]);
|
||
|
return $this->fetch();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 添加机构商户
|
||
|
*/
|
||
|
public function save()
|
||
|
{
|
||
|
$data = parent::postMore([
|
||
|
'account',
|
||
|
['id', 0],
|
||
|
['uid', 0],
|
||
|
'conf_pwd',
|
||
|
'pwd',
|
||
|
'mer_name',
|
||
|
'real_name',
|
||
|
'mer_phone',
|
||
|
'mer_special_divide',
|
||
|
'mer_store_divide',
|
||
|
'mer_event_divide',
|
||
|
'mer_data_divide',
|
||
|
'mer_test_divide',
|
||
|
'gold_divide',
|
||
|
'mark',
|
||
|
'mer_address',
|
||
|
['checked_menus', [], '', 'rules'],
|
||
|
['is_source', 0],
|
||
|
['is_audit', 0],
|
||
|
['status', 0]
|
||
|
]);
|
||
|
if (!is_array($data['rules']) || !count($data['rules'])) return JsonService::fail('请选择最少一个权限');
|
||
|
foreach ($data['rules'] as &$v) {
|
||
|
$pid = InstitutionMenus::where('id', $v)->value('pid');
|
||
|
if (!in_array($pid, $data['rules'])) $data['rules'][] = $pid;
|
||
|
}
|
||
|
$data['rules'] = implode(',', $data['rules']);
|
||
|
if (!$data['account']) return JsonService::fail('请输入机构后台账号');
|
||
|
if (InstitutionAdminModel::where('account', trim($data['account']))->where('is_del', 0)->count()) return JsonService::fail('商户账号已存在,请使用别的商户账号注册');
|
||
|
if (!$data['pwd']) return JsonService::fail('请输入机构后台登陆密码');
|
||
|
if ($data['pwd'] != $data['conf_pwd']) return JsonService::fail('两次输入密码不想同');
|
||
|
if (!$data['mer_name']) return JsonService::fail('请输入机构后台名称');
|
||
|
if (!$data['uid']) return JsonService::fail('请输入绑定的用户ID');
|
||
|
$user = User::where('uid', $data['uid'])->find();
|
||
|
if (!$user) {
|
||
|
return JsonService::fail('绑定的用户不存在');
|
||
|
} else {
|
||
|
if ($user['business'] == 1) {
|
||
|
return JsonService::fail('该用户已是机构');
|
||
|
}
|
||
|
}
|
||
|
$data['pwd'] = trim(md5($data['pwd']));
|
||
|
$data['reg_time'] = time();
|
||
|
$data['add_time'] = time();
|
||
|
$data['reg_admin_id'] = $this->adminId;
|
||
|
$admin = array();
|
||
|
$admin['account'] = trim($data['account']);
|
||
|
$admin['pwd'] = $data['pwd'];
|
||
|
$enter = UserInstitutionModel::get($data['id']);
|
||
|
$data['mer_avatar'] = $enter['merchant_head'];
|
||
|
$data['estate'] = 1;
|
||
|
UserInstitutionModel::where('id', $data['id'])->update(['status' => 2]);
|
||
|
unset($data['id']);
|
||
|
unset($data['conf_pwd']);
|
||
|
unset($data['account']);
|
||
|
unset($data['pwd']);
|
||
|
InstitutionModel::beginTrans();
|
||
|
$res = InstitutionModel::set($data);
|
||
|
$res1 = false;
|
||
|
if ($res) {
|
||
|
$admin['uid'] = $data['uid'];
|
||
|
$admin['mer_id'] = $res->id;
|
||
|
$admin['real_name'] = $data['mer_name'];
|
||
|
$admin['rules'] = $data['rules'];
|
||
|
$admin['phone'] = $data['mer_phone'];
|
||
|
$admin['add_time'] = time();
|
||
|
$admin['status'] = 1;
|
||
|
$admin['level'] = 0;
|
||
|
$res1 = InstitutionAdminModel::set($admin);
|
||
|
}
|
||
|
$res2 = false;
|
||
|
if ($res1 && $res) {
|
||
|
$res2 = Lecturer::addLecturer($enter, $res->id);
|
||
|
}
|
||
|
$bool = false;
|
||
|
if ($res1 && $res && $res2) $bool = true;
|
||
|
InstitutionModel::checkTrans($bool);
|
||
|
if ($bool) {
|
||
|
InstitutionModel::where('id', $res->id)->update(['lecturer_id' => $res2->id]);
|
||
|
User::where('uid', $data['uid'])->update(['business' => 1]);
|
||
|
Db::name('cache_merchant')->insert(
|
||
|
[
|
||
|
'mer_id' => $res->id,
|
||
|
'add_time' => time(),
|
||
|
'key'=> 'wechat_menus',
|
||
|
'result' => '[{"type":"view","name":"\u8bb2\u5e08\u9996\u9875","sub_button":[],"url":"https:\/\/www.ideaketang.com\/\/h5"},{"type":"click","name":"\u5e73\u53f0\u9996\u9875","sub_button":[],"key":"https:\/\/www.ideaketang.com\/h5"},{"type":"view","name":"\u670d\u52a1\u4e2d\u5fc3","sub_button":[],"key":"https:\/\/www.ideaketang.com\/h5","url":"https:\/\/www.ideaketang.com\/h5"}]'
|
||
|
]
|
||
|
|
||
|
);
|
||
|
return JsonService::successful('添加机构后台成功!');
|
||
|
} else {
|
||
|
return JsonService::successful('添加机构后台失败!');
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|