feat:新增数据字典获取、代码块及类目新增编辑、Token过期时间验证 fix:延长token方法报错修复

This commit is contained in:
xjh 2023-07-15 22:50:34 +08:00
parent ad9d261325
commit fca56bf280
9 changed files with 383 additions and 17 deletions

View File

@ -24,8 +24,8 @@ class CodeModule extends BaseController
{
$params = $request->param();
$con = [];
$con = Tool::getOptionalQuery(['a.code_module_category_guid', '='], ['code_module_name', 'LIKE'], ['code_module_audit', '='],);
$con = Tool::getOptionalQuery(['a.code_module_category_guid', '='], ['code_module_name', 'LIKE'], ['code_module_audit', '='], );
$query = ModelCodeModule::where($con)
->alias('a')
@ -44,7 +44,7 @@ class CodeModule extends BaseController
])
->order('code_module_sort', 'asc');
return $isExport ? $query->select()->toArray() : msg("获取代码块列表成功!", $query);
return $isExport ? $query->select()->toArray() : msg("获取代码块列表成功!", $query);
}
/**
@ -80,7 +80,7 @@ class CodeModule extends BaseController
} catch (\Throwable $th) {
Db::rollback();
Tool::unlockTable();
throw $th;
throw $th;
}
}
@ -98,10 +98,13 @@ class CodeModule extends BaseController
'code_module_name|代码块名称' => 'require',
'code_module_html|html内容' => 'require',
'code_module_sort|排序' => 'require',
'code_module_audit|审核状态' => 'require'
'code_module_audit|审核状态' => 'require',
'code_module_guid|代码块' => 'require'
]);
$model = ModelCodeModule::where('code_module_guid', $params['code_module_guid'])->find();
if (!$model) throwErrorMsg("该代码块不存在", 1);
if (!$model) {
throwErrorMsg("该代码块不存在", 1);
}
$model->allowField([
'code_module_category_guid',
'code_module_name',
@ -118,7 +121,7 @@ class CodeModule extends BaseController
} catch (\Throwable $th) {
Db::rollback();
Tool::unlockTable();
throw $th;
throw $th;
}
}
@ -144,7 +147,7 @@ class CodeModule extends BaseController
} catch (\Throwable $th) {
Db::rollback();
Tool::unlockTable();
throw $th;
throw $th;
}
}
@ -486,4 +489,4 @@ class CodeModule extends BaseController
'msg' => $msg
];
}
}
}

View File

@ -68,6 +68,7 @@ class CodeModuleCategory extends BaseController
'code_module_category_audit',
'code_module_category_guid',
'code_module_category_create_user_guid',
'code_module_category_ps',
'code_module_category_update_user_guid'
]);
return msg('添加成功!');
@ -105,6 +106,7 @@ class CodeModuleCategory extends BaseController
'code_module_category_library_type',
'customer_guid',
'code_module_category_audit',
'code_module_category_ps',
'code_module_category_update_user_guid'
])->save($params);
CommonLogicCodeModuleCategory::hanldCommonInfoFieldsDataSync($params['code_module_category_guid']);

View File

@ -0,0 +1,118 @@
<?php
namespace app\api\controller\CodeCustomer;
use app\BaseController;
use app\common\model\Code\CodeModule as ModelCodeModule;
use app\api\logic\Code\CodeModule as LogicCodeModule;
use app\common\logic\Code\CodeModuleCategory as CommonLogicCodeModuleCategory;
use app\Request;
use think\Validate;
use think\exception\ValidateException;
use think\facade\Filesystem;
use app\common\arw\adjfut\src\Excel;
use app\common\arw\adjfut\src\UploadFile;
use think\facade\Db;
use app\common\exception\Tool;
use think\facade\Env;
use app\BaseModel;
class CodeModule extends BaseController
{
/**
* 添加代码块接口
*
* @param Request $request
* @return array
* @date 2023-07-12
* @author xjh
* @since 1.0.0
*/
public function addCodeModule(Request $request): array
{
$params = $request->param();
$this->validate($params, [
'code_module_category_guid|类目' => 'require',
'code_module_name|代码块名称' => 'require',
'code_module_html|html内容' => 'require',
]);
LogicCodeModule::validateAddCodeModule($params);
Db::startTrans();
Tool::adminLockTableWrite(['code_module', 'code_module_category']);
try {
BaseModel::setUserGuid(false);
ModelCodeModule::create($params, [
'code_module_category_guid',
'code_module_name',
'code_module_html',
'code_module_style',
'code_module_script',
'code_module_sort',
'code_module_audit',
'code_module_guid',
'code_module_create_user_guid',
'code_module_update_user_guid'
]);
Db::commit();
Tool::unlockTable();
return msg('添加代码块成功!');
} catch (\Throwable $th) {
Db::rollback();
Tool::unlockTable();
throw $th;
}
}
/**
* 编辑代码块接口
*
* @param Request $request
* @return array
* @date 2023-07-15
* @author xjh
* @since 1.0.0
*/
public function editCodeModule(Request $request): array
{
$params = $request->param();
$this->validate($params, [
'code_module_category_guid|类目' => 'require',
'code_module_name|代码块名称' => 'require',
'code_module_html|html内容' => 'require',
'code_module_sort|排序' => 'require',
'code_module_audit|审核状态' => 'require',
'code_module_guid|代码块' => 'require'
]);
$model = ModelCodeModule::where('code_module_guid', $params['code_module_guid'])->find();
if (!$model) {
throwErrorMsg("该代码块不存在", 1);
}
LogicCodeModule::validateEditCodeModule($params['code_module_guid']);
Db::startTrans();
Tool::adminLockTableWrite(['code_module', 'dictionary', 'code_module_category']);
try {
BaseModel::setUserGuid(false);
$model->allowField([
'code_module_category_guid',
'code_module_name',
'code_module_html',
'code_module_style',
'code_module_script',
'code_module_sort',
'code_module_audit',
'code_module_update_user_guid'
])->save($params);
Db::commit();
Tool::unlockTable();
return msg('编辑代码块成功!');
} catch (\Throwable $th) {
Db::rollback();
Tool::unlockTable();
throw $th;
}
}
}

View File

@ -0,0 +1,109 @@
<?php
namespace app\api\controller\CodeCustomer;
use app\BaseController;
use app\common\model\Code\CodeModuleCategory as ModelCodeModuleCategory;
use app\common\arw\adjfut\src\Traverse;
use app\Request;
use think\Validate;
use think\exception\ValidateException;
use think\facade\Filesystem;
use app\common\arw\adjfut\src\Excel;
use app\common\arw\adjfut\src\UploadFile;
use think\facade\Db;
use app\common\exception\Tool;
use app\common\model\Token as ModelToken;
use think\facade\Env;
use app\api\logic\Code\CodeModuleCategory as LogicCodeModuleCategory;
use app\common\logic\Code\CodeModuleCategory as CommonLogicCodeModuleCategory;
use app\BaseModel;
class CodeModuleCategory extends BaseController
{
/**
* 添加类目接口
*
* @param Request $request
* @return array
* @date 2023-07-12
* @author xjh
* @since 1.0.0
*/
public function addCodeModuleCategory(Request $request): array
{
$params = $request->param();
$this->validate($params, [
'code_module_category_parent_guid|上级类目guid' => 'require',
'code_module_category_name|类目名' => 'require',
'code_module_category_sort|排序' => 'require',
'code_module_category_global_mode|全局模式' => 'require',
'code_module_category_library_type|库类型' => 'require',
]);
BaseModel::setUserGuid(false);
$params['customer_guid'] = ModelToken::getCurrentCustomer()->customer_guid;
LogicCodeModuleCategory::validateAddCodeModuleCategory($params);
ModelCodeModuleCategory::create($params, [
'code_module_category_name',
'code_module_category_parent_guid',
'code_module_category_sort',
'code_module_category_global_mode',
'code_module_category_library_type',
'customer_guid',
'code_module_category_audit',
'code_module_category_ps',
'code_module_category_guid',
'code_module_category_create_user_guid',
'code_module_category_update_user_guid'
]);
return msg('添加类目成功!');
}
/**
* 编辑类目接口
*
* @param Request $request
* @return array
* @date 2023-07-12
* @author xjh
* @since 1.0.0
*/
public function editCodeModuleCategory(Request $request): array
{
$params = $request->param();
$this->validate($params, [
'code_module_category_name|类目名' => 'require',
'code_module_category_sort|排序' => 'require',
'code_module_category_global_mode|全局模式' => 'require',
'code_module_category_library_type|库类型' => 'require',
]);
$model = ModelCodeModuleCategory::where('code_module_category_guid', $params['code_module_category_guid'])->find();
if (!$model) {
throwErrorMsg("该代码块类目不存在", 1);
}
LogicCodeModuleCategory::validateEditCodeModuleCategory($params['code_module_category_guid']);
Db::startTrans();
try {
BaseModel::setUserGuid(false);
$model->allowField([
'code_module_category_name',
'code_module_category_parent_guid',
'code_module_category_sort',
'code_module_category_global_mode',
'code_module_category_library_type',
'customer_guid',
'code_module_category_audit',
'code_module_category_ps',
'code_module_category_update_user_guid'
])->save($params);
CommonLogicCodeModuleCategory::hanldCommonInfoFieldsDataSync($params['code_module_category_guid']);
Db::commit();
return msg('编辑类目成功!');
} catch (\Throwable $th) {
Db::rollback();
throw $th;
}
}
}

View File

@ -7,6 +7,7 @@ use app\Request;
use think\Validate;
use think\exception\ValidateException;
use think\facade\Filesystem;
use app\common\model\Dictionary\Dictionary as ModelDictionary;
use app\common\arw\adjfut\src\Excel;
use app\common\arw\adjfut\src\UploadFile;
use app\common\exception\Tool;
@ -18,15 +19,25 @@ use think\helper\Arr;
class CommonApi extends BaseController
{
/**
* 获取验证码接口
*
* @return \think\response\Html
* @date 2023-04-26
* 获取数据字典接口
*
* @param Request $request
* @return array
* @date 2023-07-14
* @author xjh
* @since 1.0.0
*/
public function getCaptcha(): \think\response\Html
public function getDictionaryList(Request $request): array
{
return Captcha::create('verify');
$params = $request->param();
$this->validate($params, [
'dictionary_value|数据字典值' => 'require|in:library_type',
]);
$select = ModelDictionary::getDictionaryData($params['dictionary_value']);
return [
'code' => 0,
'msg' => 'ok',
'data' => $select
];
}
}
}

View File

@ -99,4 +99,26 @@ class Login extends BaseController
{
return Captcha::create();
}
/**
* 验证token接口
*
* @param Request $request
* @return array
* @date 2023-07-15
* @author xjh
* @since 1.0.0
*/
public function validateToken(Request $request): array
{
$token = $request->getCurrentToken();
return [
'code' => 0,
'data' => [
'exp_time' => $token->token_exp_time,
],
'msg' => 'ok'
];
}
}

View File

@ -0,0 +1,55 @@
<?php
namespace app\api\logic\Code;
use app\common\model\Code\CodeModuleCategory as ModelCodeModuleCategory;
use app\common\model\Code\CodeModule as ModelCodeModule;
use app\common\model\Token as ModelToken;
use app\common\exception\Tool;
class CodeModule
{
/**
* 代码块新增验证
*
* @param array $params 新增代码的参数
* @return void
* @date 2023-07-12
* @author xjh
* @since 1.0.0
*/
public static function validateAddCodeModule(array $params): void
{
if ($params['code_module_category_guid'] != ModelCodeModuleCategory::MASTER_DEFAULT) {
$category = ModelCodeModuleCategory::find($params['code_module_category_guid']);
if ($category) {
if ($category->customer_guid != ModelToken::getCurrentCustomer()->customer_guid) {
throwErrorMsg("所选的上级类目不属于当前客户!");
}
} else {
throwErrorMsg("所选的上级类目不存在!");
}
}
}
/**
* 代码块编辑验证
*
* @param string $code_module_guid 代码块guid
* @return array
* @date 2023-07-14
* @author xjh
* @since 1.0.0
*/
public static function validateEditCodeModule(string $code_module_guid): void
{
$module = ModelCodeModule::find($code_module_guid);
if (!$module) {
throwErrorMsg("所编辑的代码块不存在!");
}
if ($module->customer_guid != ModelToken::getCurrentCustomer()->customer_guid) {
throwErrorMsg("所编辑的代码块不属于当前客户!");
}
}
}

View File

@ -3,9 +3,55 @@
namespace app\api\logic\Code;
use app\common\model\Code\CodeModuleCategory as ModelCodeModuleCategory;
use app\common\model\Token as ModelToken;
use app\common\exception\Tool;
class CodeModuleCategory
{
/**
* 代码类目新增验证
*
* @param array $params 新增代码类目的参数
* @return array
* @date 2023-07-14
* @author xjh
* @since 1.0.0
*/
public static function validateAddCodeModuleCategory(array $params): void
{
if ($params['code_module_category_parent_guid'] != ModelCodeModuleCategory::MASTER_DEFAULT) {
$category = ModelCodeModuleCategory::find($params['code_module_category_parent_guid']);
if ($category) {
if ($category->customer_guid != ModelToken::getCurrentCustomer()->customer_guid) {
throwErrorMsg("所选的上级类目不属于当前客户!");
}
} else {
throwErrorMsg("所选的上级类目不存在!");
}
}
if (!in_array($params['code_module_category_library_type'], [ModelCodeModuleCategory::LIBRARY_COMMON, ModelCodeModuleCategory::LIBRARY_PRIVATE])) {
throwErrorMsg("新增类目的所属库类型异常!");
}
}
/**
* 代码类目编辑验证
*
* @param string $code_module_category_guid 类目guid
* @return array
* @date 2023-07-14
* @author xjh
* @since 1.0.0
*/
public static function validateEditCodeModuleCategory(string $code_module_category_guid): void
{
$category = ModelCodeModuleCategory::find($code_module_category_guid);
if (!$category) {
throwErrorMsg("所编辑的类目不存在!");
}
if ($category->customer_guid != ModelToken::getCurrentCustomer()->customer_guid) {
throwErrorMsg("所编辑的类目不属于当前客户!");
}
}
}

View File

@ -367,7 +367,7 @@ class Token extends BaseModel
$model = self::getCurrent();
$token_exp_time = $model->token_exp_timestamp;
if (time() >= ($token_exp_time - $delay)) {
self::login($model->user_guid);
self::login($model->user_guid,$model->token_type);
}
} catch (LoginTimeOut $th) {
}