提交 c3f5f6c0 编写于 作者: G gongfuxiang

新增系统类型

上级 72074df3
......@@ -68,6 +68,18 @@ class User
'where_type' => '=',
],
],
[
'label' => '系统类型',
'view_type' => 'field',
'view_key' => 'system_type',
'is_sort' => 1,
'search_config' => [
'form_type' => 'select',
'where_type' => 'in',
'data' => $this->UserSystemTypeList(),
'is_multiple' => 1,
],
],
[
'label' => '头像',
'view_type' => 'module',
......@@ -269,5 +281,18 @@ class User
}
return $value;
}
/**
* 用户系统类型列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2022-04-14
* @desc description
*/
public function UserSystemTypeList()
{
return Db::name('User')->group('system_type')->column('system_type', 'system_type');
}
}
?>
\ No newline at end of file
......@@ -9,6 +9,10 @@
<span class="am-text-default">用户{{if empty($data['id'])}}添加{{else /}}编辑{{/if}}</span>
<a href="{{:MyUrl('admin/user/index', $params)}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> 返回</a>
</legend>
<div class="am-form-group">
<label>系统类型</label>
<input type="text" name="system_type" class="am-radius" placeholder="系统类型" data-validation-message="系统类型 2~60 个字符" value="{{if empty($data['system_type'])}}default{{else /}}{{$data.system_type}}{{/if}}" />
</div>
<div class="am-form-group">
<label>用户名</label>
<input type="text" name="username" class="am-radius" placeholder="用户名" data-validation-message="用户名 2~30 个字符" {{if !empty($data)}} value="{{$data.username}}"{{/if}} />
......
......@@ -21,6 +21,33 @@ use app\service\UserService;
*/
class AppMiniUserService
{
/**
* 读取站点配置信息
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-09-13
* @desc description
* @param [string] $key [索引名称]
* @return [mixed] [配置信息值,没找到返回null]
*/
public static function AppMiniConfig($key)
{
// 获取配置
$value = MyC($key);
// 小程序配置信息读取钩子
$hook_name = 'plugins_service_appmini_config_value';
MyEventTrigger($hook_name, [
'hook_name' => $hook_name,
'is_backend' => true,
'key' => $key,
'value' => &$value,
]);
return $value;
}
/**
* 支付宝用户授权
* @author Devil
......@@ -36,7 +63,7 @@ class AppMiniUserService
if(!empty($params['authcode']))
{
// 授权
$result = (new \base\Alipay())->GetAuthSessionKey(MyC('common_app_mini_alipay_appid'), $params['authcode']);
$result = (new \base\Alipay())->GetAuthSessionKey(self::AppMiniConfig('common_app_mini_alipay_appid'), $params['authcode']);
if($result['status'] == 0)
{
// 先从数据库获取用户信息
......@@ -130,7 +157,7 @@ class AppMiniUserService
public static function WeixinUserAuth($params = [])
{
// 授权
$result = (new \base\Wechat(MyC('common_app_mini_weixin_appid'), MyC('common_app_mini_weixin_appsecret')))->GetAuthSessionKey($params);
$result = (new \base\Wechat(self::AppMiniConfig('common_app_mini_weixin_appid'), self::AppMiniConfig('common_app_mini_weixin_appsecret')))->GetAuthSessionKey($params);
if($result['status'] == 0)
{
// unionid
......@@ -243,9 +270,9 @@ class AppMiniUserService
public static function BaiduUserAuth($params = [])
{
$config = [
'appid' => MyC('common_app_mini_baidu_appid'),
'key' => MyC('common_app_mini_baidu_appkey'),
'secret' => MyC('common_app_mini_baidu_appsecret'),
'appid' => self::AppMiniConfig('common_app_mini_baidu_appid'),
'key' => self::AppMiniConfig('common_app_mini_baidu_appkey'),
'secret' => self::AppMiniConfig('common_app_mini_baidu_appsecret'),
];
$result = (new \base\Baidu($config))->GetAuthSessionKey($params);
if($result['status'] == 0)
......@@ -320,9 +347,9 @@ class AppMiniUserService
if($ret === true)
{
$config = [
'appid' => MyC('common_app_mini_baidu_appid'),
'key' => MyC('common_app_mini_baidu_appkey'),
'secret' => MyC('common_app_mini_baidu_appsecret'),
'appid' => self::AppMiniConfig('common_app_mini_baidu_appid'),
'key' => self::AppMiniConfig('common_app_mini_baidu_appkey'),
'secret' => self::AppMiniConfig('common_app_mini_baidu_appsecret'),
];
$result = (new \base\Baidu($config))->DecryptData($auth_data['encrypted_data'], $auth_data['iv'], $params['openid']);
......@@ -366,8 +393,8 @@ class AppMiniUserService
public static function ToutiaoUserAuth($params = [])
{
$config = [
'appid' => MyC('common_app_mini_toutiao_appid'),
'secret' => MyC('common_app_mini_toutiao_appsecret'),
'appid' => self::AppMiniConfig('common_app_mini_toutiao_appid'),
'secret' => self::AppMiniConfig('common_app_mini_toutiao_appsecret'),
];
$result = (new \base\Toutiao($config))->GetAuthSessionKey($params);
if($result['status'] == 0)
......@@ -460,7 +487,7 @@ class AppMiniUserService
if(!empty($params['authcode']))
{
// 授权
$result = (new \base\QQ(MyC('common_app_mini_qq_appid'), MyC('common_app_mini_qq_appsecret')))->GetAuthSessionKey($params['authcode']);
$result = (new \base\QQ(self::AppMiniConfig('common_app_mini_qq_appid'), self::AppMiniConfig('common_app_mini_qq_appsecret')))->GetAuthSessionKey($params['authcode']);
if($result['status'] == 0)
{
// 先从数据库获取用户信息
......@@ -535,7 +562,7 @@ class AppMiniUserService
$ret = ParamsChecked($auth_data, $p);
if($ret === true)
{
$result = (new \base\QQ(MyC('common_app_mini_qq_appid'), MyC('common_app_mini_qq_appsecret')))->DecryptData($auth_data['encrypted_data'], $auth_data['iv'], $params['openid']);
$result = (new \base\QQ(self::AppMiniConfig('common_app_mini_qq_appid'), self::AppMiniConfig('common_app_mini_qq_appsecret')))->DecryptData($auth_data['encrypted_data'], $auth_data['iv'], $params['openid']);
if(is_array($result))
{
$result['nickname'] = isset($result['nickName']) ? $result['nickName'] : '';
......
......@@ -54,7 +54,7 @@ class OrderSplitService
}
// 商品仓库集合
$warehouse_goods = self::GoodsWarehouseAggregate($params['goods']);
$warehouse_goods = self::GoodsWarehouseAggregate($params);
// 分组商品基础处理
$data = self::GroupGoodsBaseHandle($warehouse_goods, $params);
......@@ -233,16 +233,16 @@ class OrderSplitService
* @version 1.0.0
* @date 2020-07-18
* @desc description
* @param [array] $data [商品数据]
* @param [array] $params [输入参数]
*/
public static function GoodsWarehouseAggregate($data)
public static function GoodsWarehouseAggregate($params)
{
// 默认仓库
$warehouse_default = [];
// 数据分组
$result = [];
foreach($data as $v)
foreach($params['goods'] as $v)
{
// 不存在规格则使用默认
$spec = empty($v['spec']) ? [['type' => '默认规格','value' => 'default']] : $v['spec'];
......@@ -259,6 +259,17 @@ class OrderSplitService
$field = 'distinct w.id,w.name,w.alias,w.lng,w.lat,w.province,w.city,w.county,w.address,wgs.inventory,w.is_default,w.level';
$warehouse = Db::name('WarehouseGoodsSpec')->alias('wgs')->join('warehouse_goods wg', 'wgs.warehouse_id=wg.warehouse_id')->join('warehouse w', 'wg.warehouse_id=w.id')->where($where)->field($field)->order('w.level desc,w.is_default desc,wgs.inventory desc')->select()->toArray();
// 商品仓库分配仓库组合钩子
$hook_name = 'plugins_service_buy_group_goods_warehouse_handle';
MyEventTrigger($hook_name, [
'hook_name' => $hook_name,
'is_backend' => true,
'params' => $params,
'spec' => $spec,
'where' => $where,
'data' => &$warehouse,
]);
// 商品仓库分组
if(!empty($warehouse))
{
......@@ -304,6 +315,17 @@ class OrderSplitService
{
$warehouse_default = Db::name('Warehouse')->where(['is_default'=>1, 'is_enable'=>1, 'is_delete_time'=>0])->field('id,name,alias,lng,lat,province,city,county,address')->find();
}
// 商品仓库分配默认仓库组合钩子
$hook_name = 'plugins_service_buy_group_goods_default_warehouse_handle';
MyEventTrigger($hook_name, [
'hook_name' => $hook_name,
'is_backend' => true,
'params' => $params,
'data' => &$warehouse_default,
]);
// 存在默认仓库则继续分配
if(!empty($warehouse_default))
{
if(!array_key_exists($warehouse_default['id'], $result))
......
......@@ -426,13 +426,7 @@ class PluginsService
// 移除私有字段及数据
if(!empty($v['data']) && is_array($v['data']) && !empty($private_field) && is_array($private_field))
{
foreach($private_field as $pv)
{
if(array_key_exists($pv, $v['data']))
{
unset($v['data'][$pv]);
}
}
$v['data'] = self::ConfigPrivateFieldsHandle($v['data'], $private_field);
}
}
......@@ -447,6 +441,31 @@ class PluginsService
return $data;
}
/**
* 插件配置隐私字段处理
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2022-04-13
* @desc description
* @param [array] $config [配置数据]
* @param [array] $fields [字段列表]
*/
public static function ConfigPrivateFieldsHandle($config, $fields)
{
if(!empty($config) && is_array($config) && !empty($fields) && is_array($fields))
{
foreach($fields as $pv)
{
if(array_key_exists($pv, $config))
{
unset($config[$pv]);
}
}
}
return $config;
}
/**
* 插件更新信息
* @author Devil
......
......@@ -65,7 +65,7 @@ class SafetyService
}
// 获取用户账户信息
$user = Db::name('User')->field('id,pwd,salt,username,mobile,email')->find($params['user']['id']);
$user = UserService::UserInfo('id', intval($params['user']['id']), 'id,pwd,salt,username,mobile,email');
// 原密码校验
if(LoginPwdEncryption($params['my_pwd'], $user['salt']) != $user['pwd'])
......@@ -103,11 +103,11 @@ class SafetyService
public static function UserLoginPwdUpdate($accounts, $user_id, $pwd)
{
$salt = GetNumberCode(6);
$data = array(
'pwd' => LoginPwdEncryption(trim($pwd), $salt),
'salt' => $salt,
'upd_time' => time(),
);
$data = [
'pwd' => LoginPwdEncryption(trim($pwd), $salt),
'salt' => $salt,
'upd_time' => time(),
];
if(Db::name('User')->where(['id'=>$user_id])->update($data) !== false)
{
// 用户登录密码修改钩子
......@@ -117,7 +117,7 @@ class SafetyService
'is_backend' => true,
'params' => ['accounts'=>$accounts, 'pwd'=>$pwd],
'user_id' => $user_id,
'user' => Db::name('User')->field('id,username,nickname,mobile,email,gender,avatar,province,city,birthday')->where(['id'=>$user_id])->find(),
'user' => UserService::UserInfo('id', $user_id, 'id,username,nickname,mobile,email,gender,avatar,province,city,birthday'),
]));
if(isset($ret['code']) && $ret['code'] != 0)
{
......@@ -141,7 +141,7 @@ class SafetyService
private static function IsExistAccounts($accounts, $type)
{
$field = ($type == 'sms') ? 'mobile' : 'email';
$user = Db::name('User')->where([$field=>$accounts])->field('id')->find();
$user = UserService::UserInfo($field, $accounts, 'id');
if(!empty($user))
{
$msg = ($type == 'sms') ? '手机号码已存在' : '电子邮箱已存在';
......@@ -393,7 +393,7 @@ class SafetyService
{
return $ret;
} else {
$user = Db::name('User')->field('id,username,nickname,mobile,email,gender,avatar,province,city,birthday')->where(['id'=>$params['user']['id']])->find();
$user = UserService::UserInfo('id', intval($params['user']['id']), 'id,username,nickname,mobile,email,gender,avatar,province,city,birthday');
}
// 验证码校验
......@@ -426,7 +426,7 @@ class SafetyService
'upd_time' => time(),
);
// 更新数据库
if(Db::name('User')->where(['id'=>$params['user']['id']])->update($data) !== false)
if(Db::name('User')->where(['id'=>intval($params['user']['id'])])->update($data) !== false)
{
// 更新用户session数据
UserService::UserLoginRecord($params['user']['id']);
......@@ -444,7 +444,7 @@ class SafetyService
'is_backend' => true,
'params' => ['accounts'=>$user[$field], 'new_accounts'=>$params['accounts'], 'field'=>$field],
'user_id' => $user['id'],
'user' => Db::name('User')->field('id,username,nickname,mobile,email,gender,avatar,province,city,birthday')->where(['id'=>$user['id']])->find(),
'user' => UserService::UserInfo('id', $user['id'], 'id,username,nickname,mobile,email,gender,avatar,province,city,birthday'),
]));
if(isset($ret['code']) && $ret['code'] != 0)
{
......
......@@ -356,6 +356,7 @@ class UserService
// 更新数据
$data = [
'system_type' => empty($params['system_type']) ? 'default' : $params['system_type'],
'username' => isset($params['username']) ? $params['username'] : '',
'nickname' => isset($params['nickname']) ? $params['nickname'] : '',
'mobile' => isset($params['mobile']) ? $params['mobile'] : '',
......@@ -402,7 +403,7 @@ class UserService
if(!empty($params['id']))
{
// 获取用户信息
$user = Db::name('User')->field('id,integral')->find($params['id']);
$user = self::UserInfo('id', intval($params['id']), 'id,integral');
if(empty($user))
{
return DataReturn('用户信息不存在', -10);
......@@ -532,7 +533,7 @@ class UserService
{
if(!empty($user_id))
{
$user = Db::name('User')->find($user_id);
$user = self::UserInfo('id', $user_id);
if(!empty($user))
{
// 用户数据处理
......@@ -855,8 +856,7 @@ class UserService
}
// 获取用户账户信息
$where = [$ac['data'] => $params['accounts'], 'is_delete_time'=>0];
$user = Db::name('User')->where($where)->find();
$user = self::UserInfo($ac['data'], $params['accounts']);
if(empty($user))
{
return DataReturn('帐号不存在', -3);
......@@ -958,7 +958,7 @@ class UserService
$body_html = [];
// 用户登录后钩子
$user = Db::name('User')->field('id,username,nickname,mobile,email,gender,avatar,province,city,birthday')->where(['id'=>$user_id])->find();
$user = self::UserInfo('id', $user_id, 'id,system_type,username,nickname,mobile,email,gender,avatar,province,city,birthday');
$hook_name = 'plugins_service_user_login_end';
$ret = EventReturnHandle(MyEventTrigger($hook_name, [
'hook_name' => $hook_name,
......@@ -1218,8 +1218,8 @@ class UserService
*/
private static function IsExistAccounts($accounts, $field = 'mobile')
{
$id = Db::name('User')->where(array($field=>$accounts))->value('id');
return !empty($id);
$temp = self::UserInfo($field, $accounts, 'id');
return !empty($temp);
}
/**
......@@ -1707,7 +1707,7 @@ class UserService
}
// 获取用户信息
$user = Db::name('User')->where([$ret['data']=>$params['accounts']])->find();
$user = self::UserInfo($ret['data'], $params['accounts']);
if(empty($user))
{
return DataReturn('用户信息不存在', -12);
......@@ -1776,7 +1776,7 @@ class UserService
'gender' => intval($params['gender']),
'upd_time' => time(),
];
if(Db::name('User')->where(array('id'=>$params['user']['id']))->update($data))
if(Db::name('User')->where(['id'=>$params['user']['id']])->update($data))
{
// 更新用户session数据
self::UserLoginRecord($params['user']['id']);
......@@ -2149,7 +2149,12 @@ class UserService
return '';
}
return Db::name('User')->where([$where_field=>$where_value, 'is_delete_time'=>0])->field($field)->find();
$where = [
['system_type', '=', SYSTEM_TYPE],
[$where_field, '=', $where_value],
['is_delete_time', '=', 0],
];
return Db::name('User')->where($where)->field($field)->find();
}
/**
......@@ -2167,13 +2172,13 @@ class UserService
// 账号是否存在,以用户名 手机 邮箱 作为唯一
if(!empty($data['username']))
{
$temp = Db::name('User')->where(['username'=>$data['username'], 'is_delete_time'=>0])->find();
$temp = self::UserInfo('username', $data['username']);
} else if(!empty($data['mobile']))
{
$temp = Db::name('User')->where(['mobile'=>$data['mobile'], 'is_delete_time'=>0])->find();
$temp = self::UserInfo('mobile', $data['mobile']);
} else if(!empty($data['email']))
{
$temp = Db::name('User')->where(['email'=>$data['email'], 'is_delete_time'=>0])->find();
$temp = self::UserInfo('email', $data['email']);
}
if(!empty($temp))
{
......@@ -2217,7 +2222,7 @@ class UserService
$body_html = [];
// 注册成功后钩子
$user = Db::name('User')->field('id,username,nickname,mobile,email,gender,avatar,province,city,birthday')->where(['id'=>$user_id])->find();
$user = self::UserInfo('id', $user_id, 'id,username,nickname,mobile,email,gender,avatar,province,city,birthday');
$hook_name = 'plugins_service_user_register_end';
$ret = EventReturnHandle(MyEventTrigger($hook_name, [
'hook_name' => $hook_name,
......@@ -2255,6 +2260,10 @@ class UserService
*/
public static function UserBaseHandle($data, $params)
{
// 系统类型
$data['system_type'] = SYSTEM_TYPE;
// 基础参数处理
if(!empty($params) && is_array($params))
{
// 是否存在基信息
......@@ -2380,10 +2389,7 @@ class UserService
$is_appmini = array_key_exists(APPLICATION_CLIENT_TYPE, MyConst('common_appmini_type'));
// 手机号码获取用户信息
$mobile_user = Db::name('User')->where([
['mobile', '=', $data['mobile']],
['is_delete_time', '=', 0],
])->find();
$mobile_user = self::UserInfo('mobile', $data['mobile']);
// 额外信息
if(empty($mobile_user))
......@@ -2424,10 +2430,7 @@ class UserService
$data[$accounts_field] = $params[$accounts_field];
// 小程序请求获取用户信息
$current_user = Db::name('User')->where([
[$accounts_field, '=', $params[$accounts_field]],
['is_delete_time', '=', 0],
])->find();
$current_user = self::UserInfo($accounts_field, $params[$accounts_field]);
} else {
// 当前登录用户
$current_user = self::LoginUserInfo();
......
......@@ -82,6 +82,9 @@ define('ROOT', substr(ROOT_PATH, 0, -7));
// 定义应用目录
define('APP_PATH', ROOT.'app'.DS);
// 系统类型 [default] 默认default、可根据终端区分系统类型
define('SYSTEM_TYPE', empty($_REQUEST['system_type']) ? 'default' : trim($_REQUEST['system_type']));
// 请求应用 [web, app] 默认web(ios|android|小程序 均为app)
define('APPLICATION', empty($_REQUEST['application']) ? 'web' : trim($_REQUEST['application']));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册