init 初始化代码块
This commit is contained in:
parent
907976d71c
commit
45e43db400
212
app/admin/controller/CodeModule/CodeModule.php
Normal file
212
app/admin/controller/CodeModule/CodeModule.php
Normal file
@ -0,0 +1,212 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller\CodeModule;
|
||||
|
||||
use app\BaseController;
|
||||
use app\common\model\CodeModule\CodeModule as ModelCodeModule;
|
||||
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 app\common\exception\Tool;
|
||||
use think\facade\Db;
|
||||
use think\facade\Env;
|
||||
|
||||
|
||||
class CodeModule extends BaseController
|
||||
{
|
||||
/**
|
||||
* 获取代码块列表
|
||||
*/
|
||||
public function getCodeModuleList(Request $request, $isExport = false): array
|
||||
{
|
||||
$params = $request->param();
|
||||
$con = [];
|
||||
|
||||
$con = Tool::getOptionalQuery(['customer_guid', 'LIKE'], ['code_module_catetory_guid', '='], ['code_module_name', 'LIKE'], ['code_module_audit', '='],);
|
||||
|
||||
$query = ModelCodeModule::where($con)
|
||||
->alias('a')
|
||||
->leftjoin('customer b', 'a.customer_guid = b.customer_guid')
|
||||
->field([
|
||||
'a.code_module_id',
|
||||
'a.code_module_guid',
|
||||
'a.customer_guid',
|
||||
'b.customer_name',
|
||||
'a.code_module_catetory_guid',
|
||||
'a.code_module_name',
|
||||
'a.code_module_html',
|
||||
'a.code_module_style',
|
||||
'a.code_module_script',
|
||||
'a.code_module_sort',
|
||||
'a.code_module_audit'
|
||||
])
|
||||
->order('code_module_sort', 'asc');
|
||||
|
||||
return $isExport ? $query->select()->toArray() : msg("获取代码块列表成功!", $query);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加代码块
|
||||
*/
|
||||
public function addCodeModule(Request $request): array
|
||||
{
|
||||
Db::startTrans();
|
||||
Tool::adminLockTableWrite('code_module');
|
||||
try {
|
||||
$params = $request->param();
|
||||
$this->validate($params, [
|
||||
'code_module_catetory_guid|类目' => 'require',
|
||||
'code_module_name|代码块名称' => 'require',
|
||||
'code_module_html|html内容' => 'require',
|
||||
'code_module_sort|排序' => 'require',
|
||||
'code_module_audit|审核状态' => 'require'
|
||||
]);
|
||||
$model = ModelCodeModule::create($params, [
|
||||
'customer_guid',
|
||||
'code_module_catetory_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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑代码块
|
||||
*/
|
||||
public function editCodeModule(Request $request): array
|
||||
{
|
||||
Db::startTrans();
|
||||
Tool::adminLockTableWrite('code_module');
|
||||
try {
|
||||
$params = $request->param();
|
||||
$this->validate($params, [
|
||||
'code_module_catetory_guid|类目' => 'require',
|
||||
'code_module_name|代码块名称' => 'require',
|
||||
'code_module_html|html内容' => 'require',
|
||||
'code_module_sort|排序' => 'require',
|
||||
'code_module_audit|审核状态' => 'require'
|
||||
]);
|
||||
$model = ModelCodeModule::where('code_module_guid', $params['code_module_guid'])->find();
|
||||
if (!$model) throwErrorMsg("该代码块不存在", 1);
|
||||
$model->allowField([
|
||||
'customer_guid',
|
||||
'code_module_catetory_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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除代码块
|
||||
*/
|
||||
public function deleteCodeModule(Request $request): array
|
||||
{
|
||||
Db::startTrans();
|
||||
Tool::adminLockTableWrite('code_module');
|
||||
try {
|
||||
$params = $request->param();
|
||||
$this->validate($params, [
|
||||
'code_module_guid' => 'require',
|
||||
]);
|
||||
$code_module = ModelCodeModule::where([
|
||||
'code_module_guid' => explode(',', $params['code_module_guid'])
|
||||
])->select();
|
||||
$code_module->delete();
|
||||
Db::commit();
|
||||
Tool::unlockTable();
|
||||
return msg('删除成功!');
|
||||
} catch (\Throwable $th) {
|
||||
Db::rollback();
|
||||
Tool::unlockTable();
|
||||
throw $th;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 审核代码块
|
||||
*/
|
||||
public function auditCodeModule(Request $request)
|
||||
{
|
||||
$params = $request->param();
|
||||
$this->validate($params, [
|
||||
'code_module_guid|代码块guid' => 'require',
|
||||
'code_module_audit|审核状态' => 'require|in:2,3',
|
||||
]);
|
||||
|
||||
ModelCodeModule::auditCodeModule($params);
|
||||
|
||||
return [
|
||||
'code' => 0,
|
||||
'msg' => '审核成功'
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 导出Excel
|
||||
*/
|
||||
public function exportExcel(Request $request): void
|
||||
{
|
||||
ModelCodeModule::exportExcel(self::getCodeModuleList($request, true));
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载导入模板
|
||||
*/
|
||||
public function downloadTemplate(Request $request): void
|
||||
{
|
||||
$params = $request->param();
|
||||
$data = [
|
||||
array_values(ModelCodeModule::EXCELFIELD),
|
||||
['默认值1', '默认值2', '默认值3', '默认值4', '默认值5', '默认值6', '默认值7', '默认值8',]
|
||||
];
|
||||
$excel = (new Excel())->exporTsheet($data);
|
||||
$excel->save('代码块导入模板.xlsx');
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入excel
|
||||
*/
|
||||
public function importExcel(Request $request): array
|
||||
{
|
||||
$file = new UploadFile('uploads', 'fileExt:xlsx');
|
||||
$file->putFile('code_module');
|
||||
$msg = ModelCodeModule::importExcel($file);
|
||||
return [
|
||||
'code' => 0,
|
||||
'msg' => $msg
|
||||
];
|
||||
}
|
||||
}
|
252
app/common/model/CodeModule/CodeModule.php
Normal file
252
app/common/model/CodeModule/CodeModule.php
Normal file
@ -0,0 +1,252 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\model\CodeModule;
|
||||
|
||||
use app\common\arw\adjfut\src\Validate;
|
||||
use app\BaseModel;
|
||||
use think\model\concern\SoftDelete;
|
||||
use app\common\arw\adjfut\src\Excel;
|
||||
use app\Request;
|
||||
use app\common\exception\Tool;
|
||||
use think\facade\Db;
|
||||
|
||||
class CodeModule extends BaseModel
|
||||
{
|
||||
use SoftDelete;
|
||||
// 删除字段
|
||||
protected $deleteTime = 'code_module_delete_time';
|
||||
// 设置主键名
|
||||
protected $pk = 'code_module_guid';
|
||||
// 设置废弃字段
|
||||
protected $disuse = [];
|
||||
// 设置字段信息
|
||||
protected $schema = [
|
||||
'code_module_id' => 'int',
|
||||
'code_module_guid' => 'string',
|
||||
'customer_guid' => 'string',
|
||||
'code_module_catetory_guid' => 'string',
|
||||
'code_module_name' => 'string',
|
||||
'code_module_html' => '',
|
||||
'code_module_style' => '',
|
||||
'code_module_script' => '',
|
||||
'code_module_sort' => 'int',
|
||||
'code_module_audit' => 'int',
|
||||
'code_module_create_time' => 'datetime',
|
||||
'code_module_create_user_guid' => 'string',
|
||||
'code_module_update_time' => 'datetime',
|
||||
'code_module_update_user_guid' => 'string',
|
||||
'code_module_delete_time' => 'datetime',
|
||||
'code_module_delete_user_guid' => 'string',
|
||||
|
||||
];
|
||||
// 设置json类型字段
|
||||
protected $json = [''];
|
||||
// 开启自动写入时间戳字段
|
||||
protected $autoWriteTimestamp = 'datetime';
|
||||
// 创建时间
|
||||
protected $createTime = 'code_module_create_time';
|
||||
// 修改时间
|
||||
protected $updateTime = 'code_module_update_time';
|
||||
|
||||
//排序字段
|
||||
public $order_field = 'code_module_sort';
|
||||
|
||||
// excel导入/下载模板表头
|
||||
public const EXCELFIELD = [
|
||||
'customer_guid' => '所属客户',
|
||||
'code_module_catetory_guid' => '类目',
|
||||
'code_module_name' => '代码块名称',
|
||||
'code_module_html' => 'html内容',
|
||||
'code_module_style' => 'style内容',
|
||||
'code_module_script' => 'script内容',
|
||||
'code_module_sort' => '排序',
|
||||
'code_module_audit' => '审核状态',
|
||||
];
|
||||
|
||||
/**
|
||||
* 新增前
|
||||
*/
|
||||
public static function onBeforeInsert(self $model): void
|
||||
{
|
||||
Tool::dataAddSortProc($model);
|
||||
$model->completeCreateField();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新前
|
||||
*/
|
||||
public static function onBeforeUpdate(self $model): void
|
||||
{
|
||||
Tool::dataEditSortProc($model);
|
||||
$model->completeUpdateField();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除前
|
||||
*/
|
||||
public static function onBeforeDelete(self $model): void
|
||||
{
|
||||
Tool::dataDeleteSortProc($model);
|
||||
$model->completeDeleteField();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导出Excel
|
||||
*
|
||||
* @param array $select 导出的数据
|
||||
*/
|
||||
public static function exportExcel(array $select): void
|
||||
{
|
||||
$data = [[
|
||||
'所属客户',
|
||||
'类目',
|
||||
'代码块名称',
|
||||
'html内容',
|
||||
'style内容',
|
||||
'script内容',
|
||||
'排序',
|
||||
'审核状态'
|
||||
]];
|
||||
foreach ($select as $key => $val) {
|
||||
$data[] = [
|
||||
$val['customer_guid'],
|
||||
$val['code_module_catetory_guid'],
|
||||
$val['code_module_name'],
|
||||
$val['code_module_html'],
|
||||
$val['code_module_style'],
|
||||
$val['code_module_script'],
|
||||
$val['code_module_sort'],
|
||||
$val['code_module_audit'],
|
||||
];
|
||||
}
|
||||
$excel = (new Excel())->exporTsheet($data);
|
||||
$excel->save('代码块.xlsx');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导入excel
|
||||
*
|
||||
* @param \app\common\arw\adjfut\src\UploadFile $file excel
|
||||
*/
|
||||
public static function importExcel(\app\common\arw\adjfut\src\UploadFile $file): string
|
||||
{
|
||||
$msg = [];
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
$excel = new Excel($file);
|
||||
$data = $excel->parseExcel(
|
||||
Tool::getExcelRule(self::EXCELFIELD),
|
||||
['titleLine' => [1]]
|
||||
);
|
||||
if (!$data) throwErrorMsg('excel无数据', 1);
|
||||
$msg = [];
|
||||
foreach ($data as $line => $value) {
|
||||
try {
|
||||
$model = self::importExcelInit($value);
|
||||
$msg[] = "{$line} <span style='color:#27af49'>新增成功!</span><br>";
|
||||
} catch (\Throwable $th) {
|
||||
$msg[] = "{$line} <span style='color:red'>{$th->getMessage()}</span><br>";
|
||||
}
|
||||
}
|
||||
Db::commit();
|
||||
return implode(', ', $msg);
|
||||
} catch (\Throwable $th) {
|
||||
Db::rollback();
|
||||
throw $th;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导入excel初始化
|
||||
*
|
||||
* @param array $value excel每行数据
|
||||
*/
|
||||
public static function importExcelInit(array $value): void
|
||||
{
|
||||
$customer_guid = $value['customer_guid'];
|
||||
$code_module_catetory_guid = $value['code_module_catetory_guid'];
|
||||
$code_module_name = $value['code_module_name'];
|
||||
$code_module_html = $value['code_module_html'];
|
||||
$code_module_style = $value['code_module_style'];
|
||||
$code_module_script = $value['code_module_script'];
|
||||
$code_module_sort = $value['code_module_sort'];
|
||||
$code_module_audit = $value['code_module_audit'];
|
||||
|
||||
self::create(
|
||||
[
|
||||
'customer_guid' => $customer_guid,
|
||||
'code_module_catetory_guid' => $code_module_catetory_guid,
|
||||
'code_module_name' => $code_module_name,
|
||||
'code_module_html' => $code_module_html,
|
||||
'code_module_style' => $code_module_style,
|
||||
'code_module_script' => $code_module_script,
|
||||
'code_module_sort' => $code_module_sort,
|
||||
'code_module_audit' => $code_module_audit,
|
||||
],
|
||||
[
|
||||
'customer_guid',
|
||||
'code_module_catetory_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'
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 审核代码块
|
||||
*/
|
||||
public static function auditCodeModule($params)
|
||||
{
|
||||
$params_audit_status = $params['code_module_audit'];
|
||||
$code_module_guids_arr = explode(',', $params['code_module_guid']);
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
|
||||
if (count($code_module_guids_arr) > 1) {
|
||||
foreach ($code_module_guids_arr as $key => $value) {
|
||||
self::audit($value, $params);
|
||||
}
|
||||
} else {
|
||||
self::audit($params['code_module_guid'], $params);
|
||||
}
|
||||
|
||||
Db::commit();
|
||||
} catch (\Throwable $th) {
|
||||
Db::rollback();
|
||||
throw $th;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 审核
|
||||
*/
|
||||
public static function audit($value, $params)
|
||||
{
|
||||
$model = self::where('code_module_guid', $value)->find();
|
||||
if (!$model) throwErrorMsg("该代码块不存在", 1);
|
||||
|
||||
$audit_status = $model->code_module_audit;
|
||||
$code_module_name = $model->code_module_name;
|
||||
|
||||
if ($audit_status == 2) throwErrorMsg("{$code_module_name} 代码块已通过审核!");
|
||||
if ($audit_status == 3) throwErrorMsg("{$code_module_name} 代码块已驳回审核!");
|
||||
|
||||
$model->allowField([
|
||||
'code_module_audit',
|
||||
])->save($params);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user