ZeusAutoCode代码生成工具(开源)(下)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: ZeusAutoCode代码生成工具(开源)(下)

1. 线下更新

1. 修改前端代码中的package.json中的version属性。
2. 前端代码打包 yarn run package:prod
3. 通过对前端代码进行打包,找到D:\workspace\workspace-zeus\zeus-view\dist_electron\win-ia32-unpacked\resources\app.asar文件。对此文件进行压缩,压缩成zip包,
4. 在【版本更新】处新建一个版本,版本号和version的版本号一致。上传刚才压缩的zip包
5. 重启客户端,自动拉去最新版本,完成更新

2. 线上更新

1. 修改前端代码中的package.json中的version属性。
2. 提交代码到git上
3. 执行【脚本管理】的 ‘生成器前端打包’脚本
4. 在【版本更新】处新建一个版本,版本号和version的版本号一致。选择线上。url固定填 http://39.101.173.227/zeus/app.zip
5. 重启客户端,自动拉去最新版本,完成更新

3. 前端更新脚本示例

脚本文件 viewcode.sh

、#!/bin/bash
#auth eric
#date 2021-07-14
#*********脚本入参#*********
appname=code
#Git源码位置
gitsrc=/home/egn/GitSpace/zeus-view
#Nginx位置
nginxsrc=/usr/local/nginx/html/zeus/
#*********脚本入参#*********
cd $gitsrc && git pull origin master && yarn run build:prod
mv -f $gitsrc/dist_electron/win-unpacked/resources/app.asar $nginxsrc
rm -rf $nginxsrc/*.zip
echo '删除历史包'
cd $nginxsrc
zip app.zip app.asar
echo '发布成功'

参考这个脚本,也可以做其他前端项目的自动打包

4. 后台更新脚本示例

脚本文件 code.sh

#!/bin/bash
#auth eric
#date 2021-07-14
#*********脚本入参#*********
appname=code
#Git源码位置
gitsrc=/home/egn/GitSpace/zeus-server
#Docker脚本位置
dockersrc=/home/egn/DockerBuilder/$appname
#*********脚本入参#*********
cd $gitsrc && git pull origin master && mvn install -DskipTests
if [ $? -eq 0 ]; 
then
    echo "maven build success "
else 
    echo -e '\033[31m[ error ] gradle build faild \033[0m' && exit 1
fi
\cp -f $gitsrc/target/*.jar $dockersrc
echo '第二步:查看是否有镜像'
cd $dockersrc
imageresult=$(docker images |grep  $appname | wc -l)
if [ $imageresult -eq 0 ]; 
then
  echo "不存在镜像,需要重新初始化鏡像";
  docker build -t $appname .
  docker run -d --name $appname -p 8003:8003 --restart always $appname
else
  conid=$(docker ps |grep  $appname |awk '{print $1}')
  docker cp *.jar $conid:/$appname.jar
  docker restart $conid
  if [ $? -eq 0 ]; 
  then
    echo "发布成功!"
  else 
    echo -e '\033[31m[ error ] 发布失败 \033[0m' && exit 1
  fi
fi

参考此脚本,同理可以做后台项目自动打包部署

5. 前后端脚本基础环境搭建

https://blog.csdn.net/qq_35921773/article/details/121694667

4. 脚本管理(管理员)

脚本管理核心是远程连接linux服务器,执行linux命令

用户可以通过该功能实现项目的远程打包、查看日志、服务重启……等操作

5. 网页库(管理员)

网页库是让用户快捷跳转项目常用网址的一个功能。管理员可以通过网页库新建该项目的所有网址,例如Gitlab、禅道、测试环境地址、原型地址……

6. 配置中心(普通用户)

普通用户在配置中心可以根据自己已有的项目,新建该项目的配置信息。

配置信息主要包含:选择项目、项目目录、配置名称、配置描述、数据库连接信息这些属性

用户可见的项目: 公开项目和私有项目用户在项目成员中

数据库连接信息: 客户端作为数据库连接工具,就像是Navicat一样获取当前数据的所有表。可以连接内网数据库

项目目录:生成的代码注入的目录。一般为项目根目录

7. 取码中心(普通用户)

注意:

使用zeus客户端生成代码会强制覆盖本地代码。所以在生成代码前,可以先通过配置详情功能选择要生成的文件

1. 操作步骤

  1. 选择用户在配置中心新建的配置数据
  2. 选择配置数据库加载而来的数据表
  3. 打开【配置详情】页面。可以动态勾选要生成的模板,以及动态填充自定义字典内容。
  4. 点击生成按钮,代码自动注入到 配置中心的用户自建的配置目录中

2. 高级配置

(前端待完善)

配置详情页面

数组类型字典,复选框勾选

属性列表型字典,表格复选框勾选

8. 网页库(普通用户)

用户通过管理员分配的网页库可见权限,点击网页直接打开浏览器跳转到对应的网址

六、使用手册

Tips: 客户端可以多开,可以同时打开两个客户端,一个登录管理员,一个登录普通用户。管理员实时编辑模板,普通用户实时生成代码。


1. 管理员新建项目

管理员可以通过新增按钮创建项目,也可以直接通过复制操作,完全拷贝一个项目


e6524d9d26124914ae509aca9c76f842.png

在项目中构建自己的空间树、和模板。详情参考功能说明中的空间树介绍

2. 普通用户新建配置

普通用户在【配置管理】菜单中,新建配置

  1. 选择项目
  2. 设置项目所在的本地目录
  3. 填写数据库连接信息
  4. 测试数据库连接
  5. 保存配置

10489130896149ee9a5180d8424c7f2a.png



3. 普通用户生成代码

  1. 用户打开【取码中心】功能
  2. 选择我们在配置中心新建的配置
  3. 选择根据配置信息加载的表
  4. 点击生成代码

d026614f80c84ad7a7ec9020051b93d9.png


4. 高级配置


d48e23598c2b43b1bc00fb6620f4d755.png


5. 模板语法

主要参考已有模板,Freemarker的所有语法都支持。

这里列举下常见语法

  1. 遍历数组
<#list FiledList as field>
  private ${field.javaType} ${field.filedName};
</#list>

2.字符串转数组

<#assign function_list=FunctionList?split(",") >
<#list function_list as function>
   <#if (function == 'findPage')>
   </#if>
</#list>   

3.遍历数组获取下标

<#list FiledList as column>
  <#if (column_index>0)>
  <#if (column.javaType== 'String')>
    if(StringUtils.isNotEmpty(body.getParameter().get${FiledList[0].FILEDNAME}())) queryWrapper.like("${column.filed_name}", body.getParameter().get${FiledList[0].FILEDNAME}());
  </#if>
  <#if (column.javaType== 'Integer' || column.javaType== 'Double' || column.javaType== 'Float' || column.javaType== 'Long')>
    if(body.getParameter().get${FiledList[0].FILEDNAME}() != null) queryWrapper.eq("${column.filed_name}", body.getParameter().get${FiledList[0].FILEDNAME}());
  </#if>
  </#if>
</#list>

七、常见问题

1. 取码中心生成代码失败

通过管理员登录系统,进入脚本管理,运行查看代码生成器日志脚本,查看模板报错信息。

2. 取码中心生成无反应

  1. zeus客户端软件权限
1. 桌面选择zeus客户端的logo
2. 右键》属性》打开文件所在位置》找到zeus.exe 以管理员权限运行
3. 桌面zeus快捷方式,右键》属性》高级》勾选 以管理员身份运行

2.切换【配置中心】代码。后台项目目录

尽量不要选C盘的,C盘权限不足会导致代码无法注入。

3.查看日志排查问题

接口问题排查

在客户端使用快捷键CTRL ALT I 可以打开控制台,查看生成代码接口,是否返回正常,如果是接口错误,大概率是模板错误

客户端问题排查

1. 桌面选择zeus客户端的logo
2. 右键》属性》打开文件所在位置
3. 复制当前路径
4. 使用管理员方式打开CMD,输入刚才输入的路径cd进去
5. 执行zeus.exe
6. 查看客户端日志


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
API 网络安全
SSLException Unrecognized SSL…问题排查
SSLException Unrecognized SSL…问题排查
2535 0
|
负载均衡 网络协议 Dubbo
微服务架构 | 3. 注册中心与服务发现
注册中心用来集中管理微服务,实现服务的注册,发现,检查等功能;
3665 2
微服务架构 | 3. 注册中心与服务发现
|
11月前
|
API Python
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
672 1
|
运维 监控 安全
WAN 革命:SD-WAN 与传统 WAN 对比
【7月更文挑战第13天】
1130 1
WAN 革命:SD-WAN 与传统 WAN 对比
|
SQL 数据处理 数据库
SQL正则表达式应用:文本数据处理的强大工具——深入探讨数据验证、模式搜索、字符替换等核心功能及性能优化和兼容性问题
【8月更文挑战第31天】SQL正则表达式是数据库管理和应用开发中处理文本数据的强大工具,支持数据验证、模式搜索和字符替换等功能。本文通过问答形式介绍了其基本概念、使用方法及注意事项,帮助读者掌握这一重要技能,提升文本数据处理效率。尽管功能强大,但在不同数据库系统中可能存在兼容性问题,需谨慎使用以优化性能。
323 0
|
JavaScript 前端开发 编译器
【TypeScript技术专栏】深入理解TypeScript编译过程
【4月更文挑战第30天】TypeScript编译过程包括解析、类型检查、语义分析和代码生成四个步骤。解析阶段将源代码转为AST;类型检查确保代码符合类型规则,捕获类型错误;语义分析检查代码逻辑一致性;最后生成JavaScript代码。这一过程保证了代码的语法、类型和语义正确性,提升开发效率和代码质量。了解此过程有助于开发者更好地理解和解决问题。
356 0
|
JavaScript 应用服务中间件 nginx
【项目部署系列教程】4. 将Vue项目部署到远程服务器
【项目部署系列教程】4. 将Vue项目部署到远程服务器
650 1
|
XML JSON 自然语言处理
gRPC系列 :RPC 框架原理是?gRPC 是什么?gRPC设计原则
gRPC系列 :RPC 框架原理是?gRPC 是什么?gRPC设计原则
gRPC系列 :RPC 框架原理是?gRPC 是什么?gRPC设计原则
|
测试技术 调度 Apache
使用 Apache JMeter 调度器的详细指南
Apache JMeter 是开源性能测试工具,用于模拟负载测试。调度器功能允许按预设时间执行测试计划。启动 JMeter,创建测试计划包含线程组,配置线程数、启动时间和持续时间。添加HTTP采样器和监听器来收集数据。保存测试计划并启动,最后分析响应时间、吞吐量等指标以评估系统性能。通过启用调度器,测试可在特定时间段自动化运行。