- 博客(187)
- 收藏
- 关注

原创 Telegram机器人管理系统TG机器人管理系统TG机器人TG索引TG群管Telegram索引Telegram群管
自定义按钮文本和排序支持命令触发和链接跳转两种类型分类管理,构建层级菜单一键启用/禁用特定按钮通过后台可视化配置,无需代码知识。
2025-04-22 23:57:39
764
原创 TG机器人群组群管群发系统
YMPT Bot是一套专业级Telegram机器人管理系统,采用前后端分离架构,基于SpringBoot 3.4.2和Vue 3.5.13开发。系统为Telegram社群管理者提供全方位的管理解决方案,核心功能包括多机器人配置管理、定时与手动消息推送、违规内容智能审核、用户行为管理、自定义交互键盘以及欢迎消息模板等。
2025-04-27 12:01:58
737
原创 TG机器人群组群管系统
该系统支持轮询和Webhook两种运行模式,可灵活配置机器人参数并实现热加载。通过Redis缓存和Druid连接池优化性能,使用JWT和BCrypt保障系统安全。系统内置多种违规处理策略,支持自动警告、删除消息、禁言和踢出用户等操作,并详细记录违规日志。
2025-04-27 12:01:11
268
原创 Telegram机器人管理系统
├── common/ # 通用工具和helpers。├── webhook/ # Webhook模式支持。│ └── service/ # 业务服务接口和实现。│ ├── common/ # 通用枚举和常量。├── api/ # API接口定义。
2025-04-25 14:20:45
897
原创 Telegram机器人管理系统TG机器人TG索引TG群管Telegram索引Telegram群管
├── common/ # 通用工具和helpers。├── webhook/ # Webhook模式支持。│ └── service/ # 业务服务接口和实现。│ ├── common/ # 通用枚举和常量。├── api/ # API接口定义。
2025-04-25 14:19:57
1008
转载 Mybatis之collection标签嵌套查询(select)的写法
业务:查询一种商品,展示该商品多种规格。GroupDetailsVo :package com.community.api.vo;import java.io.Serializable;import java.math.BigDecimal;import java.util.Date;import java.util.List;import lombok.Data;/** * 团购详情vo * * @author admin * @date 2019 -11-20 15
2021-07-12 18:21:05
4525
1
原创 Hook
# 01. Hook Hook可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性。 # useState使用方式 模式: const [<取值>, <设值>] = useState(<初始值>) 上面的三个值均可自定义名称,分别是: state取值变量名 state设值方法名 初始值 例子: import React, { u...
2021-03-27 23:44:31
214
原创 案例演示
# 案例演示 本节内容根据官方文档的 教程 (opens new window) 编写。 在线demo (opens new window) # 案例代码 import React from 'react'import ReactDOM from 'react-dom'import './index.css'// 正方形格子 (没有state时可以使用函数组件)function Sq...
2021-03-27 01:32:00
238
原创 状态提升 (共享状态)
# 09. 状态提升 (共享状态) 通常,多个组件需要反映相同的变化数据,这时我们建议将共享状态提升到最近的共同父组件中去。 在 React 中,将多个组件中需要共享的 state 向上移动到它们的最近共同父组件中,便可实现共享 state。这就是所谓的“状态提升” 两个输入框共享数据的例子: const scaleNames = { c: '摄氏度', f: '华氏度'};// 转...
2021-03-26 16:46:50
402
原创 React哲学
# 11.React哲学(编写一个复杂组件的原则) React 最棒的部分之一是引导我们思考如何构建一个应用。在这篇文档中,我们将会通过 React 构建一个可搜索的产品数据表格来更深刻地领会 React 哲学。 # 从设计稿开始 # 第一步:将设计好的 UI 划分为组件层级 首先,你需要在设计稿上用方框圈出每一个组件(包括它们的子组件) 你会看到我们的应用中包含五个组件。我们已经将每个组件展...
2021-03-26 05:59:03
128
原创 组合vs继承
# 10.组合vs继承 React 有十分强大的组合模式。我们推荐使用组合而非继承来实现组件间的代码重用。 # 包含关系 (组件组合) 有些组件无法提前知晓它们子组件的具体内容。在 Sidebar(侧边栏)和 Dialog(对话框)等展现通用容器(box)的组件中特别容易遇到这种情况。 # props的children属性(类似vue的插槽) 我们建议这些组件使用一个特殊的 children pr...
2021-03-26 00:18:44
119
原创 表单
# 08. 表单 # 受控组件(双向数据绑定) 在 HTML 中,表单元素(如<input>、 <textarea> 和 <select>)通常自己维护 state,并根据用户输入进行更新。而在 React 中,可变状态(mutable state)通常保存在组件的 state 属性中,并且只能通过使用 setState() (opens new window...
2021-03-24 20:54:35
96
原创 元素渲染
# 02. 元素渲染 元素是构成 React 应用的最小砖块,描述了你在屏幕上想看到的内容。 const element = <h1>Hello, world</h1>; 与浏览器的 DOM 元素不同,React 元素是创建开销极小的普通对象。React DOM 会负责更新 DOM 来与 React 元素保持一致。 # 将一个元素渲染为 DOM 假设你的 HTML 文件某...
2021-03-24 19:11:37
99
原创 State&生命周期
State 与 props 类似,但是 state 是私有的,并且完全受控于当前组件. State类似于vue中的data选项 在没有useState钩子函数之前,是通过class组件管理State ? class Clock extends React.Component { render() { return ( <div> <h1&g...
2021-03-24 18:22:09
272
原创 列表&Key
# 07. 列表 & Key 如下代码,我们使用 map() (opens new window) 函数让数组中的每一项变双倍,然后我们得到了一个新的列表 doubled 并打印出来: const numbers = [1, 2, 3, 4, 5];const doubled = numbers.map((number) => number * 2);console.log(d...
2021-03-24 12:47:33
232
原创 条件渲染
# 06. 条件渲染 React 中的条件渲染和 JavaScript 中的一样,使用 JavaScript 运算符 if (opens new window) 或者条件运算符 (opens new window)去创建元素来表现当前的状态,然后让 React 根据它们来更新 UI。 观察这两个组件: function UserGreeting(props) { return <h1...
2021-03-24 09:14:04
146
原创 JSX简介
# 01. JSX简介 # 什么是JSX? const element = <h1>Hello, world!</h1>; 以类似模板语法的方式描述UI的一种语法。它是JS的语法糖,本质上也是JS。可以在其中使用变量或表达式、函数等。 # 为什么使用JSX? 将标记与逻辑 共同存放在称之为“组件”的松散耦合单元之中,来实现关注点分离 (opens new window)...
2021-03-24 06:55:01
87
原创 组件&Props
# 03. 组件 & Props # 函数组件与 class 组件 # 1.函数组件 function Welcome(props){ return <h1>Hello, {props.name}</h1>} 该函数是一个有效的React组件。接收唯一带有数据的props参数,并返回一个React元素。 # 2.class组件 使用ES6的class来定义:...
2021-03-24 01:34:55
103
原创 事件处理
# 05. 事件处理 # 与传统HTML绑定事件的区别 传统的 HTML: <button onclick="activateLasers()"> Activate Lasers</button> 在 React 中略微不同: // 1.事件名为小驼峰; 2.传入函数以大括号包裹函数名形式<button onClick={activateLasers}>...
2021-03-24 00:43:40
98
原创 JS设计模式总结笔记
# JS设计模式总结笔记 # 开篇:前端工程师的成长论 能够决定一个前端工程师的本质的,不是那些瞬息万变的技术点,而是那些不变的东西。 所谓“不变的东西”,就是驾驭技术的能力。 具体来说,它分为以下三个层次: 能用健壮的代码去解决具体的问题; 能用抽象的思维去应对复杂的系统; 能用工程化的思想去规划更大规模的业务。 基础理论知识是一个人的基线,理论越强基线越高。再为自己定一个目标和向上攀附的阶梯,...
2021-02-27 19:12:52
109
原创 四级文件(测试)
# 测试文件 Test Test yarn create vuepress-site [optionalDirectoryName]# OR npx create-vuepress-site [optionalDirectoryName] npx create-vuepress-site[optionalDirectoryName] 1 // Make sure to add code b...
2020-12-11 22:13:19
114
原创 数据操作指令
PG数据库操作命令大全字符串操作系列截取时间时分秒截取字符串最后一位字符串转整数并统计数量时间查询系列查询后七天数据查询当天数据查询指定时间表字符串操作系列截取时间时分秒SUBSTRING ( to_char( 字段, 'YYYY-MM-DD hh24:mi:ss' ), 12, 5 ) AS 字段截取字符串最后一位LEFT( 字段, LENGTH ( 字段) - 1 ) AS 字段字符串转整数并统计数量SUM( to_number( 字段, '最大整数值.最大小数值' ) ) AS 字段
2020-12-09 10:10:48
398
原创 Git分支管理-查看分支
# Git分支管理-查看分支 # 查看分支 $git branch iss53* master # 带星号*表示当前所在分支 testing git branch 命令不只是可以创建与删除分支。 如果不加任何参数运行它,会得到当前所有分支的一个列表。 # 查看每个分支的最后提交 $git branch -v iss53 93b412c fix javascript issue...
2020-11-18 22:49:24
1199
原创 Git工具-查看修订版本
# Git工具-查看修订版本 Git 能够以多种方式来指定单个提交、一组提交、或者一定范围内的提交。 了解它们并不是必需的,但是了解一下总没坏处。 修订版本指的是:提交 # 单个修订版本 你可以通过任意一个提交的 40 个字符的完整 SHA-1 散列值来指定它, 不过还有很多更人性化的方式来做同样的事情。本节将会介绍获取单个提交的多种方法。 # 简短的 SHA-1 Git 十分智能,你只需要提供 ...
2020-11-18 21:56:47
303
原创 Git工具-重置揭密
# Git 工具 - 重置揭密 在继续了解更专业的工具前,我们先探讨一下 Git 的 reset 和 checkout 命令。 在初遇的 Git 命令中,这两个是最让人困惑的。 它们能做很多事情,所以看起来我们很难真正地理解并恰当地运用它们。 针对这一点,我们先来做一个简单的比喻。 # 三棵树 理解 reset 和 checkout 的最简方法,就是以 Git 的思维框架(将其作为内容管理器)来管...
2020-11-18 21:22:43
88
原创 Git工具-重写历史
# Git 工具 - 重写历史 许多时候,在使用 Git 时,你可能想要修订提交历史。 Git 很棒的一点是它允许你在最后时刻做决定。 你可以在将暂存区内容提交前决定哪些文件进入提交,可以通过 git stash 来决定不与某些内容工作, 也可以重写已经发生的提交就像它们以另一种方式发生的一样。 这可能涉及改变提交的顺序,改变提交中的信息或修改文件,将提交压缩或是拆分, 或完全地移除提交——在将你...
2020-11-18 20:00:06
179
原创 Git分支-分支原理
# Git分支-分支原理 Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。 与许多其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。 # 首次提交 在进行提交操作时,Git 会保存一个提交对象(commit object)。 假设现在有一个工作目录,里面包含了三个将要被暂存和提交的文...
2020-11-18 19:57:31
245
原创 Git分支的新建与合并-分支操作
# Git分支的新建与合并-分支操作 文档:Git 分支 - 分支的新建与合并 (opens new window) # 创建分支并切换 此时有一个需求需要在新的分支iss53上工作: $git checkout -b iss53 # b表示branch 它是下面两条命令的简写: $git branch iss53$ git checkout iss53 12# 切换分支 突然有一个紧急...
2020-11-18 15:16:49
91
原创 Git分支开发工作流
# Git分支开发工作流 文档:Git分支开发工作流 (opens new window) # 长期分支 因为 Git 使用简单的三方合并,所以就算在一段较长的时间内,反复把一个分支合并入另一个分支,也不是什么难事。 也就是说,在整个项目开发周期的不同阶段,你可以同时拥有多个开放的分支;你可以定期地把某些主题分支合并入其他分支中。 许多使用 Git 的开发者都喜欢使用这种方式来工作,比如只在 m...
2020-11-18 13:00:32
74
原创 Git分支-远程分支
# Git分支-远程分支 远程引用是对远程仓库的引用(指针),包括分支、标签等等。 远程分支本质上也是一个指针,指向远程地址 # 查看远程引用列表与信息 git ls-remote <remote> # 远程引用的完整列表git remote show <remote> # 远程分支的更多信息 上面两行命令比较少用,更常见的做法是利用远程跟踪分支。 # 远程跟踪分支 远...
2020-11-18 12:35:11
170
原创 Git基础与命令
# Git基础与命令 官方文档(中文):https://git-scm.com/book/zh/v2 本文档是根据官方文档来编写的,以官方文档为准。 # Git基础 # 全局配置 git config --global user.name 'your name'git config --global user.email 'xxx@xx.com' 自报家门 # 检查配置信息 git confi...
2020-11-18 12:31:58
109
原创 Git工具-交互式暂存
本节中的几个交互式 Git 命令可以帮助你将文件的特定部分组合成提交。 当你在修改了大量文件后,希望这些改动能拆分为若干提交而不是混杂在一起成为一个提交时,这几个工具会非常有用。 通过这种方式,可以确保提交是逻辑上独立的变更集,同时也会使其他开发者在与你工作时很容易地审核。 如果运行 git add 时使用 -i 或者 --interactive 选项,Git 将会进入一个交互式终端模式,显示类...
2020-11-18 07:59:37
166
原创 Git分支-变基
# Git分支-变基 在 Git 中整合来自不同分支的修改主要有两种方法:merge 以及 rebase。 在本节中我们将学习什么是“变基”,怎样使用“变基”,并将展示该操作的惊艳之处,以及指出在何种情况下你应避免使用它。 # 变基的基本操作 请回顾之前在 分支的合并 (opens new window) 中的一个例子,你会看到开发任务分叉到两个不同分支,又各自提交了更新。 图0. 分叉的...
2020-11-18 03:07:14
1005
原创 常用Git命令清单
# 常用Git命令清单 一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。 下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。 Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 # 一、新建代码库 # 在当前目录新建一个Git代码库$ git init#...
2020-11-18 00:51:25
163
原创 Git变基合并
# rebase分支合并 # 说明 以下 v2 是某个需求的开发分支, dev是总的开发分支,v2 是基于dev分支签出的。 当完成v2的开发后,需要把代码合并到dev,我们可以使用rebase进行合并: # 首先将 v2 push到远程仓库git add .git commit -m 'xxx'git push origin v2# 切换到 dev 拉取最新代码git checkou...
2020-11-18 00:37:12
799
原创 2分钟规则
每当你发现很难开始执行某项任务时,可以试试将其缩减成2分钟的版本。 看一本书 → 看一页书 写一篇文章 → 写一句话 跑10公里 → 穿上跑鞋 做100次俯卧撑 → 做1次俯卧撑 多吃蔬菜水果 → 吃一个水果 编写一个程序 → 编写一个函数 → 编写一行代码 这样做的目的是使上手变得超级容易,让你先上手再说。一旦开始做了(这可能是最艰难的一步),你就会开始有动力,可能会继续做下去。 阅读一页 → ...
2020-11-09 21:58:19
83
原创 TypeScript笔记
TypeScript 的类型校验是给程序员看的,在编译后不会存在TS代码。 function fn(person: string):void{ // 参数类型是字符串,没有返回值 ///...}fn('str') // 如传递参数非字符串,vscode编辑器中或在编译时将给出错误提示const test:number = 1 // 基础类型:string:number...
2020-10-08 15:15:27
146
原创 CSS教程和技巧收藏
# Flex 布局教程:语法篇 http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html (opens new window) # CSS Grid 网格布局教程 http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html (opens new window) # 只要...
2020-08-11 23:02:56
82
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人