# zxs **Repository Path**: davin.bao/zxs ## Basic Information - **Project Name**: zxs - **Description**: 路径 (请注意:仓库路径即仓库访问 URL 地址,更改仓库路径将导致原克隆地址不可用) - **Primary Language**: PHP - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-10 - **Last Updated**: 2025-02-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 配置文件说明 # 目录说明 ## 首页Banners * /storage/app/public/banners ## 教师资格考试 * 理论试题导入存储路径:/storage/app/public/tmp/paper_csv/ * 理论考试说明: /storage/app/public/teacher/theory/notice.txt * 理论考试题目图片位置:/storage/app/public/teacher/theory/paper/ * 技能测试说明: /storage/app/public/teacher/skill/notice.txt * 技能测试题目图片位置:/storage/app/public/teacher/skill/paper/ ## 证书模板 * 字体文件存放位置: /resources/fonts * 模板存放位置: /storage/app/public/credential_templates * 生成的证书: /storage/app/public/0/credentials_sys ## 用户上次的文件资料 * 用户上传的证书:/storage/app/public/0/credentials * 用户上传的照片:/storage/app/public/0/pictures * 上传的培训资料:/storage/app/public/0/tester_trains * 鉴定点/基地认定用户上传的证书: /storage/app/public/0/site_apply_credentials * 鉴定员认定用户上传的证书: /storage/app/public/0/supervisor_apply_credentials * 师资认证用户上传的证书: /storage/app/public/0/teacher_apply_credentials # 导入理论考试 * 先将理论考试的excel准备好, 第一个sheet为单选题, 第二个sheet为多选题,第三个sheet为判断题 * 整理好的excel文件放到【理论试题导入存储路径】中 * 执行命令 ```php artisan import:theory_data teacher 2021_03_12_exam.xlsx``` # 导入培训考试 * 考试类型 ```0-鉴定员、1-培训师、2-传承人``` * 执行命令 ```php artisan import:theory_data course 2021_03_12_exam.xlsx``` # 模板配置说明 数据表配置: * credential_template_bindings 通过给定的证书、级别获取模板ID, 如果是三个级别使用同一种证书,请配置三条记录 * credential_templates 证书模板主表, 图片存放位置见: 目录说明 - 证书模板 - 模板存放位置 * credential_template_fields 模板的字段配置表 1. 字段名称:指的是user_credentials表中的字段名称,数据从该表对应的字段中取值, 如免冠照片,该值为picture_id 2. 字段类型:0-文字;1-图片; 2-日期; 3-二维码; 4-长文本 3. 文字类型需要指定: position_x,position_y,font_name,font_size; 其中自定义字体存储位置见: 目录说明 - 证书模板 - 模板存放位置, font_name应该与存储的字体文件名称一致(带后缀) 4. 图片类型需要制定:position_x,position_y,picture_width,picture_height 5. 日期类型属于特殊的文字类型, 除了文字类型需要指定的字段内容外,还要指定 date_format, 如 Y年m月d日, 日期将生成为: 2021年04月10日 6. 二维码类型属于特殊图片类型,除了文字类型需要指定的字段内容外,还要制定二维码携带的内容content,qr_code_point_size,qr_code_margin两个字段定义了二维码的大小和边距 7. 当type为二维码或长文本时,需要指定: position_x,position_y,font_name,font_size, content_row_size(每行的字长度, 超过长度自动换行); 且将读取content内容,内容里的变量请使用{{}}括起来,如?code={{code}}, 支持的变量有: a. {{URL}}:当前服务器地址 b. user_credentials 表下所有字段的名称,获取 user_credentials 对应字段的内容 c. {{test_train_name}}: 培训的证书打印名称,获取tester_trains.name内容 # 操作日志 1. 培训课程的操作日志:tester_train_log 2. 鉴定员认定操作日志:test_supervisor_apply_log 3. 鉴定中心、鉴定点操作日志:test_site_apply_log 4. 师资认证申请操作日志:teacher_apply_log 5. 微信支付订单接口日志:order_log # 服务器配置 ### Supervisor 1. 配置目录: /etc/supervisord.conf, /etc/supervisor/conf.d/ 2. 启动命令: systemctl restart supervisord 3. 服务日志:/tmp/supervisord.log 4. supervisord.conf 配置: ``` [group:worker] programs=zxs,zxs_test ; each refers to 'x' in [program:x] definitions priority=999 ; the relative start priority (default 999) [include] files = /etc/supervisor/conf.d/*.ini ``` 5. conf.d/zxs.ini 配置: ``` [program:zxs] process_name=%(program_name)s_%(process_num)02d command=sudo -u apache php /home/www/zxs/artisan queue:work redis --sleep=3 --tries=3 --timeout=14400 autostart=true autorestart=true user=apache numprocs=8 redirect_stderr=true stdout_logfile=/home/www/zxs/storage/logs/worker.log stopwaitsecs=3600 ``` ### Redis 1. 配置目录:/etc/redis.conf 2. 程序目录:/usr/local/redis 3. 启动命令:systemctl restart redis # 常用 SQL 1. 用户报名培训选择错误, 如用户'13954369200','13878885671','13707878997'由原培训课程(id:8)调整为新的培训课程(id:9): ```shell script select * from tester_train_users WHERE phone IN ('13954369200','13878885671','13707878997'); SELECT * FROM orders WHERE product_id = 8 AND product_type = 'App\\Models\\TesterTrain' AND user_id IN (452, 555, 582); UPDATE tester_train_users SET tester_train_id = 9 WHERE tester_train_id = 8 AND user_id IN (452, 555, 582); UPDATE orders SET product_id = 9 WHERE product_id = 8 AND product_type = 'App\\Models\\TesterTrain' AND user_id IN (452, 555, 582); ```