This commit is contained in:
2025-10-29 15:32:26 +08:00
parent d90614805b
commit b7462657cd
78921 changed files with 2753938 additions and 71 deletions

View File

@@ -0,0 +1,372 @@
<?php
namespace app\model\platform;
use app\model\BaseModel;
use app\model\system\Config as ConfigModel;
use think\facade\Db;
use think\facade\Session;
use app\model\system\Site;
use app\model\shop\Shop;
use app\model\system\Group;
use app\model\system\User;
use app\model\store\Store;
/**
* 系统站点信息管理
* @author Administrator
*
*/
class Platform extends BaseModel
{
/**
* 获取站点信息
* @param $condition
* @param string $field
* @param bool $cache_use
* @return array
*/
public function getWebSite($condition, $field = '*', $cache_use = true)
{
$res = model('platform')->getInfo($condition, $field);
return $this->success($res);
}
/**
* 用户登录
* @param $username
* @param $password
* @param string $app_module
* @param int $site_id
* @return array
*/
public function login($username, $password, $app_module = 'platform', $site_id = 0)
{
$user_condition = [
[ 'username', '=', $username ],
[ 'app_module', '=', $app_module ],
[ 'site_id', '=', $site_id ]
];
$user_info = model('user')->getInfo($user_condition);
if (empty($user_info)) {
return $this->error('', 'USER_NOT_EXIST');
}
// 检查是否有权限登录
if ($app_module == 'platform' && $user_info[ 'group_id' ] == 0) {
return $this->error('', 'PERMISSION_DENIED');
}
if ($user_info[ 'password' ] != data_md5($password)) {
return $this->error('', 'PASSWORD_ERROR');
}
if ($user_info[ 'status' ] !== 1) {
return $this->error([], 'USER_IS_LOCKED');
}
$this->initLogin($user_info);
return $this->success();
}
/**
* 获取当前登录管理员信息
* @param $app_module
* @param int $site_id
* @return mixed
*/
public function userInfo($app_module, $site_id = 0)
{
return Session::get($app_module . "_" . $site_id . ".user_info");
}
/**
* 初始化登录
* @param $user_info
*/
private function initLogin($user_info)
{
$time = time();
//初始化登录信息
$auth = array (
'platformid' => $user_info[ 'uid' ],
'uid' => $user_info[ 'uid' ],
'username' => $user_info[ 'username' ],
'create_time' => $user_info[ 'create_time' ],
'status' => $user_info[ 'status' ],
'group_id' => $user_info[ "group_id" ],
'site_id' => $user_info[ "site_id" ],
'app_group' => $user_info[ "app_group" ],
'is_admin' => $user_info[ 'is_admin' ],
'login_time' => $time,
'login_ip' => request()->ip(),
'sys_uid' => $user_info[ 'sys_uid' ],
'password' => $user_info[ 'password' ],
'app_module' => $user_info[ 'app_module' ]
);
//更新登录记录
$data = [
'login_time' => time(),
'login_ip' => request()->ip(),
];
model('user')->update($data, [ [ 'uid', "=", $user_info[ 'uid' ] ] ]);
Session::set($user_info[ 'app_module' ] . "_" . $user_info[ 'uid' ] . ".user_info", $auth);
Session::set($user_info[ 'app_module' ] . "_" . $user_info[ 'uid' ] . ".platformid", $user_info[ 'uid' ]);
Session::set('app_module' . "_" . $user_info[ 'uid' ] . ".login_module", $user_info[ 'app_module' ]);
$this->addUserLog($user_info[ 'uid' ], $user_info[ 'username' ], $user_info[ 'site_id' ], "用户登录", []);//添加日志
}
/**
* 获取当前登录uid
* @param $app_module
* @param int $site_id
* @return mixed
*/
public function uid($app_module, $site_id = 2)
{
return Session::get($app_module . "_" . $site_id . ".platformid");
}
/**
* 清除登录信息
*/
public function clearLogin($app_module, $site_id = 2)
{
Session::delete($app_module . "_" . $site_id);
}
/**
* 登录模块
* @param $site_id
* @return mixed|string
*/
public function loginModule($site_id)
{
$login_module = Session::get('app_module' . "_" . $site_id . ".login_module");
return $login_module;
}
/**
* 添加用户日志
* @param $uid
* @param $username
* @param $site_id
* @param $action_name
* @param array $data
* @return array
*/
public function addUserLog($uid, $username, $site_id, $action_name, $data = [])
{
$url = request()->parseUrl();
$ip = request()->ip();
$log = array (
"uid" => $uid,
"username" => $username,
"site_id" => $site_id,
"url" => $url,
"ip" => $ip,
"data" => json_encode($data),
"action_name" => $action_name,
"create_time" => time(),
);
$res = model("user_log")->add($log);
if ($res === false) {
return $this->error('', 'UNKNOW_ERROR');
}
return $this->success($res);
}
/**
* 添加用户
* @param $data
* @param int $store_id
* @param string $source_type register 注册 add 添加
* @return array
*/
public function addUser($data, $store_id = 0, $source_type = 'register')
{
model("user")->startTrans();
try {
//添加一个uniacid
$shop_data = [
'platform_name'=>$data['site_name'],
'status'=>1,
'create_time'=>time(),
'username' => $data[ "username" ]
];
if($data['uniacid']){//如果有uniacid就默认
$shop_data['uniacid'] = $data['uniacid'];
}
$uniacid = model('platform_shop')->add($shop_data);
if(!$uniacid){
return $this->error('', '默认店铺添加失败!');
}
//添加店铺
$site_data = [
'site_type' => 'shop',
'uniacid'=> $uniacid,
'create_time' => time(),
'site_name' => $data['site_name'],
'end_time'=>$data['end_time'],//过期时间
'site_realname'=>$data['site_realname'],//姓名
'site_tel'=>$data['site_tel'],//联系电话
'username' => $data[ "username" ]
];
if($data['uniacid']){//如果有uniacid就默认成site_id
$site_data['site_id'] = $data['uniacid'];
}else{
$site_data['site_id'] = $uniacid;
}
$site_model = new Site();
$site_result = $site_model->addSite($site_data);
if ($site_result[ 'code' ] < 0) {
return $this->error('', '默认站点添加失败!');
}
$site_id = $site_result[ 'data' ];
$shop_data = [
'site_id' => $site_id,
'shop_status' => 1
];
$shop_model = new Shop();
$shop_result = $shop_model->addShop($shop_data);
if ($shop_result[ 'code' ] < 0) {
return $this->error('', '默认店铺添加失败!');
}
// 添加默认数据
$default_result = $this->defaultData($site_id);
if ($default_result[ 'code' ] < 0) {
return $default_result;
}
//添加系统用户组
$group_model = new Group();
$group_data = array (
"site_id" => $site_id,
"app_module" => "shop",
"group_name" => "系统管理员",
"group_status" => 1,
"is_system" => 1,
"menu_array" => "",
"desc" => "",
);
$group_result = $group_model->addGroup($group_data);
if ($group_result[ "code" ] < 0) {
return $this->error('', '后台管理员权限组添加失败!');
}
$group_id = $group_result[ "data" ];
$app_module = 'shop';
$member_id = 0;
if ($site_id === '') return $this->error('', 'REQUEST_SITE_ID');
if ($app_module === '') return $this->error('', 'REQUEST_APP_MODULE');
if (empty($data[ "username" ])) return $this->error('', '用户名不能为空');
if (empty($data[ "password" ])) return $this->error('', '密码不能为空');
//判断 用户名 是否存在
$user_info = model('user')->getInfo(
[
[ 'username', "=", $data[ "username" ] ],
//[ 'site_id', '=', $site_id ],
[ 'app_module', '=', $app_module ]
]
);
if ($source_type == 'add') {
if (!empty($user_info)) {
return $this->error('', '账号已存在');
}
} else {
if (!empty($user_info)) {
if (data_md5($data[ "password" ]) == $user_info[ 'password' ]) {
return $this->success(2);
} else {
return $this->error('', '账号已存在');
}
}
}
if ($group_id > 0) {
$group_model = new Group();
$group_info = $group_model->getGroupInfo([ [ "group_id", "=", $group_id ], [ "site_id", "=", $site_id ], [ "app_module", "=", $app_module ] ], "group_name")[ 'data' ];
$data[ "group_name" ] = $group_info[ "group_name" ] ?? '';
}
$data[ "password" ] = $data[ "password" ];
$data[ "create_time" ] = time();
//添加默认门店
$store_model = new Store();
$store = $store_model->addDefaultStore(['site_id'=>$site_id,]);
//添加用户
$user_model = new User();
$user_data = array(
"app_module" => "shop",
"app_group" => 0,
"is_admin" => 1,
"site_id" => $site_id,
"group_id" => $group_id,
"username" => $data['username'],
"password" => $data['password'],
'uniacid'=>$uniacid,
'is_main'=>1
);
$user_result = $user_model->addUser($user_data);
if ($user_result[ "code" ] < 0) {
return $this->error('', '后台管理员添加失败!');
}
// 演示数据
$yanshi_data_result = $this->yanShiData($site_id);
if ($yanshi_data_result[ "code" ] < 0) {
return $this->error('', '演示数据添加失败!');
}
model("user")->commit();
return $this->success($user_result['data']);
} catch (\Exception $e) {
dump($e);
model("user")->rollback();
return $this->error('', '用户添加失败');
}
}
/**
* 演示数据
* @param $sys_uid
* @return array
*/
private function yanShiData($site_id)
{
$result_array = event("AddYanshiData", [ 'site_id' => $site_id ]);
if (!empty($result_array)) {
foreach ($result_array as $item) {
if (!empty($item) && $item[ 'code' ] < 0) {
return $this->error('', $item[ 'message' ]);
}
}
}
return ['code'=>0];
}
/**
* 添加店铺默认数据
*/
private function defaultData($site_id)
{
// 添加店铺相册默认分组
model("album")->add([ 'site_id' => $site_id, 'type' => 'video', 'album_name' => "默认分组", 'update_time' => time(), 'is_default' => 1, 'level' => 1 ]);
$result = model("album")->add([ 'site_id' => $site_id, 'type' => 'img', 'album_name' => "默认分组", 'update_time' => time(), 'is_default' => 1, 'level' => 1 ]);
if ($result === false) {
return $this->error('', '默认相册创建失败!');
}
//执行事件
$add_site_result = event("AddSite", [ 'site_id' => $site_id ]);
if (!empty($add_site_result)) {
foreach ($add_site_result as $site_item) {
if (!empty($site_item) && $site_item[ 'code' ] < 0) {
return $this->error('', $site_item[ 'message' ]);
}
}
}
return ['code'=>0];
}
}