V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhanyye
V2EX  ›  Java

钉钉 H5 微应用

  •  1
     
  •   zhanyye ·
    zhanyeye · 2021-11-23 10:19:22 +08:00 · 1820 次点击
    这是一个创建于 1083 天前的主题,其中的信息可能已经有所发展或是发生改变。

    logo

    Dingtalk App Back End

    目标与期望

    基于钉钉微应用开发的实验室绩效管理系统,将实验室的绩效、学分、论文评审管理与钉钉对接。
    主要功能有:绩效、学分申请与审核,论文评审投票及学分管理,实验室助研金计算等,导出绩效和助研金报表。

    开发环境

    <sub>SpringBoot</sub>

    <sub>JPA</sub>

    <sub>Mybatis</sub>

    <sub>MySQL 8</sub>

    <sub>Dingtalk SDK</sub>

    <sub>Docker</sub>

    <sub>Docker Compose</sub>

    <sub>Github Actions</sub>

    注意事项

    • 使用了 lombok 插件简化代码,idea 需要安装 lombok 插件,否则编译过不去
    • 由于目前钉钉小程序只支持 GET/POST, 考虑到兼容性这里的接口全部为 GET/POST 方式
    • 系统启动时,初始化操作会调用钉钉 SDK ,拉取钉钉组织的所有用户, 请先在开发平台设置出口 IP

    持续部署

    本项目使用 GitHub Actions 实现 CI ,受外网网速限制,没有采用在 GitHub 机器上构件镜像,再拉取到服务器上运行的方式。而是在每次 CI 触发后,GitHub 机器 ssh 登陆服务器,执行脚本来拉取最新代码,构建镜像,并运行容器,具体如下:

    1. 从 GitHub 仓库中拉去最新代码到服务器本地仓库
    2. 使用 mvn 构建项目
    3. docker-compose build 构建镜像
    4. docker-compose up -d 在后台启动容器
    5. docker image prune -f 清理无用的镜像

    GitHub Actions 的 CI 脚本如下

    • 生产环境 CI 脚本:.github/workflows/prod.yml
    • 测试环境 CI 脚本:.github/workflows/test.yml
    • 与 CI 脚本对应的项目结构如下
      .
      |__ dingtalk
          |__ dingtalk-springboot  // 后端代码
          |__ dingtalk-vue         // 前端代码
          |__ docker-compose.yml   // docker-compose 配置文件
      

    docker-compose 编排配置如下:

    系统运维

    前端预览

    01

    02

    03

    04

    05

    06

    07

    08

    09

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    project-detail-1.png

    project-detail-2.png

    1 条回复    2021-11-23 22:51:05 +08:00
    Attan
        1
    Attan  
       2021-11-23 22:51:05 +08:00
    你好 你是个人开发者嘛~ 我们可以交流下~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   904 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:05 · PVG 05:05 · LAX 13:05 · JFK 16:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.