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

钉钉微应用开发 SpringBoot + VUE

  •  1
     
  •   zhanyye ·
    zhanyeye · 287 天前 · 1512 次点击
    这是一个创建于 287 天前的主题,其中的信息可能已经有所发展或是发生改变。

    logo

    Prod Status

    Dingtalk Springboot

    目标与期望

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

    涉及的技术

    SpringBoot

    JPA

    Mybatis

    MySQL 8

    Dingtalk SDK

    Docker

    Docker Compose

    Github Actions

    注意事项

    • 使用了 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

    9 条回复    2021-08-06 10:25:50 +08:00
    zarvin
        1
    zarvin  
       287 天前
    感谢开源,打破零回复
    hflyf123
        2
    hflyf123  
       287 天前
    学习一下
    neighbads
        3
    neighbads  
       286 天前 via Android
    支持下!
    idlewater
        4
    idlewater  
       286 天前
    厉害
    steptodream
        5
    steptodream  
       286 天前
    拿来学习一波
    zhanyye
        6
    zhanyye  
    OP
       286 天前
    谢谢 star 呀~,感谢~🧡
    webmasterisadog
        7
    webmasterisadog  
       285 天前
    好东西
    webmasterisadog
        8
    webmasterisadog  
       285 天前
    看了一圈,没看到配置钉钉 key 和 id 的入口在哪里
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2955 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:57 · PVG 20:57 · LAX 05:57 · JFK 08:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.