基于Java+SpringBoot+Vue企业OA管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】
🍊作者:计算机编程-吉哥
🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。
🍊心愿:点赞 👍 收藏 ⭐评论 📝
🍅 文末获取源码联系👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~
Java毕业设计项目~热门选题推荐《1000套》
技术选型
springboot、mybatisplus、vue、elementui、html、css、js、mysql、jdk1.8
数据库表结构
13张
开发工具
idea、navicat
⭐功能
【角色】
管理员、用户
【功能模块】
- 登录
- 个人中心
- 用户管理
- 公告信息管理
- 客户关系管理
- 通讯录管理
- 日程安排管理
- 车辆信息管理
- 文件信息管理
- 工作日志管理
- 上班考勤管理
- 工资信息管理
🏆项目演示截图
1、用户信息管理
2、公告信息管理
3、客户关系管理
4、通讯录管理
5、客户关系添加
6、通讯录添加
7、日程安排添加
数据库文件设计
CREATE TABLE `cheliangxinxi` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`cheliangmingcheng` varchar(200) NOT NULL COMMENT '车辆名称',`chepaihao` varchar(200) NOT NULL COMMENT '车牌号',`cheliangleixing` varchar(200) DEFAULT NULL COMMENT '车辆类型',`cheliangyanse` varchar(200) DEFAULT NULL COMMENT '车辆颜色',`tingfangweizhi` varchar(200) DEFAULT NULL COMMENT '停放位置',`cheliangxiangqing` longtext COMMENT '车辆详情',`shiyongzhuangkuang` varchar(200) DEFAULT NULL COMMENT '使用状况',`thumbsupnum` int(11) DEFAULT '0' COMMENT '赞',`crazilynum` int(11) DEFAULT '0' COMMENT '踩',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=67 DEFAULT CHARSET=utf8 COMMENT='车辆信息';CREATE TABLE `config` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(100) NOT NULL COMMENT '配置参数名称',`value` varchar(100) DEFAULT NULL COMMENT '配置参数值',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT='配置文件';CREATE TABLE `gonggaoxinxi` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`biaoti` varchar(200) NOT NULL COMMENT '标题',`leixing` varchar(200) NOT NULL COMMENT '类型',`fabushijian` datetime DEFAULT NULL COMMENT '发布时间',`gonggaoneirong` longtext COMMENT '公告内容',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8 COMMENT='公告信息';CREATE TABLE `gongzuorizhi` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`biaoti` varchar(200) NOT NULL COMMENT '标题',`dengjishijian` datetime DEFAULT NULL COMMENT '登记时间',`gongzuoneirong` longtext COMMENT '工作内容',`yonghuming` varchar(200) DEFAULT NULL COMMENT '用户名',`xingming` varchar(200) DEFAULT NULL COMMENT '姓名',`bumen` varchar(200) DEFAULT NULL COMMENT '部门',`zhiwei` varchar(200) DEFAULT NULL COMMENT '职位',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=87 DEFAULT CHARSET=utf8 COMMENT='工作日志';CREATE TABLE `kehuguanxi` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`kehuxingming` varchar(200) NOT NULL COMMENT '客户姓名',`xingbie` varchar(200) DEFAULT NULL COMMENT '性别',`nianling` varchar(200) DEFAULT NULL COMMENT '年龄',`shengri` date DEFAULT NULL COMMENT '生日',`gongsimingcheng` varchar(200) NOT NULL COMMENT '公司名称',`lianxidianhua` varchar(200) DEFAULT NULL COMMENT '联系电话',`youxiang` varchar(200) DEFAULT NULL COMMENT '邮箱',`hezuoneirong` longtext COMMENT '合作内容',`yonghuming` varchar(200) DEFAULT NULL COMMENT '用户名',`xingming` varchar(200) DEFAULT NULL COMMENT '姓名',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8 COMMENT='客户关系';CREATE TABLE `richenganpai` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`bianhao` varchar(200) DEFAULT NULL COMMENT '编号',`mingcheng` varchar(200) NOT NULL COMMENT '名称',`leixing` varchar(200) DEFAULT NULL COMMENT '类型',`riqi` date DEFAULT NULL COMMENT '日期',`shijian` varchar(200) DEFAULT NULL COMMENT '时间',`richengneirong` longtext COMMENT '日程内容',`yonghuming` varchar(200) DEFAULT NULL COMMENT '用户名',`xingming` varchar(200) DEFAULT NULL COMMENT '姓名',`bumen` varchar(200) DEFAULT NULL COMMENT '部门',`zhiwei` varchar(200) DEFAULT NULL COMMENT '职位',PRIMARY KEY (`id`),UNIQUE KEY `bianhao` (`bianhao`)
) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=utf8 COMMENT='日程安排';CREATE TABLE `shangbankaoqin` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`bianhao` varchar(200) DEFAULT NULL COMMENT '编号',`mingcheng` varchar(200) NOT NULL COMMENT '名称',`riqi` date DEFAULT NULL COMMENT '日期',`yonghuming` varchar(200) NOT NULL COMMENT '用户名',`xingming` varchar(200) DEFAULT NULL COMMENT '姓名',`bumen` varchar(200) DEFAULT NULL COMMENT '部门',`zhiwei` varchar(200) DEFAULT NULL COMMENT '职位',`zaotuicishu` varchar(200) NOT NULL COMMENT '早退次数',`chidaocishu` varchar(200) NOT NULL COMMENT '迟到次数',`qingjiacishu` varchar(200) NOT NULL COMMENT '请假次数',`kuanggongcishu` varchar(200) NOT NULL COMMENT '旷工次数',`userid` bigint(20) DEFAULT NULL COMMENT '用户id',PRIMARY KEY (`id`),UNIQUE KEY `bianhao` (`bianhao`)
) ENGINE=InnoDB AUTO_INCREMENT=97 DEFAULT CHARSET=utf8 COMMENT='上班考勤';CREATE TABLE `token` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`userid` bigint(20) NOT NULL COMMENT '用户id',`username` varchar(100) NOT NULL COMMENT '用户名',`tablename` varchar(100) DEFAULT NULL COMMENT '表名',`role` varchar(100) DEFAULT NULL COMMENT '角色',`token` varchar(200) NOT NULL COMMENT '密码',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',`expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='token表';CREATE TABLE `tongxunlu` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`xingming` varchar(200) NOT NULL COMMENT '姓名',`nianling` varchar(200) DEFAULT NULL COMMENT '年龄',`xingbie` varchar(200) DEFAULT NULL COMMENT '性别',`touxiang` varchar(200) DEFAULT NULL COMMENT '头像',`bumen` varchar(200) DEFAULT NULL COMMENT '部门',`shoujihao` varchar(200) DEFAULT NULL COMMENT '手机号',`dizhi` varchar(200) DEFAULT NULL COMMENT '地址',`youxiang` varchar(200) DEFAULT NULL COMMENT '邮箱',`beizhu` longtext COMMENT '备注',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8 COMMENT='通讯录';CREATE TABLE `users` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`username` varchar(100) NOT NULL COMMENT '用户名',`password` varchar(100) NOT NULL COMMENT '密码',`role` varchar(100) DEFAULT '管理员' COMMENT '角色',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='用户表';CREATE TABLE `wenjianxinxi` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`biaoti` varchar(200) NOT NULL COMMENT '标题',`fujian` varchar(200) DEFAULT NULL COMMENT '附件',`wenjianneirong` longtext COMMENT '文件内容',`fabushijian` datetime DEFAULT NULL COMMENT '发布时间',`yonghuming` varchar(200) DEFAULT NULL COMMENT '用户名',`xingming` varchar(200) DEFAULT NULL COMMENT '姓名',`bumen` varchar(200) DEFAULT NULL COMMENT '部门',`zhiwei` varchar(200) DEFAULT NULL COMMENT '职位',`sfsh` varchar(200) DEFAULT '否' COMMENT '是否审核',`shhf` longtext COMMENT '审核回复',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=77 DEFAULT CHARSET=utf8 COMMENT='文件信息';CREATE TABLE `yonghu` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`yonghuming` varchar(200) NOT NULL COMMENT '用户名',`mima` varchar(200) NOT NULL COMMENT '密码',`xingming` varchar(200) DEFAULT NULL COMMENT '姓名',`xingbie` varchar(200) DEFAULT NULL COMMENT '性别',`touxiang` varchar(200) DEFAULT NULL COMMENT '头像',`bumen` varchar(200) DEFAULT NULL COMMENT '部门',`zhiwei` varchar(200) DEFAULT NULL COMMENT '职位',`youxiang` varchar(200) DEFAULT NULL COMMENT '邮箱',`shouji` varchar(200) DEFAULT NULL COMMENT '手机',PRIMARY KEY (`id`),UNIQUE KEY `yonghuming` (`yonghuming`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='用户';
核心代码
package com.controller;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.GongzixinxiEntity;
import com.entity.view.GongzixinxiView;import com.service.GongzixinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;/*** 工资信息* 后端接口* @author 计算机编程-吉哥*/
@RestController
@RequestMapping("/gongzixinxi")
public class GongzixinxiController {@Autowiredprivate GongzixinxiService gongzixinxiService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,GongzixinxiEntity gongzixinxi,HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("yonghu")) {gongzixinxi.setYonghuming((String)request.getSession().getAttribute("username"));}EntityWrapper<GongzixinxiEntity> ew = new EntityWrapper<GongzixinxiEntity>();PageUtils page = gongzixinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, gongzixinxi), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,GongzixinxiEntity gongzixinxi, HttpServletRequest request){EntityWrapper<GongzixinxiEntity> ew = new EntityWrapper<GongzixinxiEntity>();PageUtils page = gongzixinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, gongzixinxi), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( GongzixinxiEntity gongzixinxi){EntityWrapper<GongzixinxiEntity> ew = new EntityWrapper<GongzixinxiEntity>();ew.allEq(MPUtil.allEQMapPre( gongzixinxi, "gongzixinxi")); return R.ok().put("data", gongzixinxiService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(GongzixinxiEntity gongzixinxi){EntityWrapper< GongzixinxiEntity> ew = new EntityWrapper< GongzixinxiEntity>();ew.allEq(MPUtil.allEQMapPre( gongzixinxi, "gongzixinxi")); GongzixinxiView gongzixinxiView = gongzixinxiService.selectView(ew);return R.ok("查询工资信息成功").put("data", gongzixinxiView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){GongzixinxiEntity gongzixinxi = gongzixinxiService.selectById(id);return R.ok().put("data", gongzixinxi);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){GongzixinxiEntity gongzixinxi = gongzixinxiService.selectById(id);return R.ok().put("data", gongzixinxi);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody GongzixinxiEntity gongzixinxi, HttpServletRequest request){gongzixinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(gongzixinxi);gongzixinxiService.insert(gongzixinxi);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody GongzixinxiEntity gongzixinxi, HttpServletRequest request){gongzixinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(gongzixinxi);gongzixinxiService.insert(gongzixinxi);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody GongzixinxiEntity gongzixinxi, HttpServletRequest request){//ValidatorUtils.validateEntity(gongzixinxi);gongzixinxiService.updateById(gongzixinxi);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){gongzixinxiService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<GongzixinxiEntity> wrapper = new EntityWrapper<GongzixinxiEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("yonghu")) {wrapper.eq("yonghuming", (String)request.getSession().getAttribute("username"));}int count = gongzixinxiService.selectCount(wrapper);return R.ok().put("count", count);}}
参考文档
更多项目推荐:计算机毕业设计项目
如果大家有任何疑虑,请在下方咨询或评论
相关文章:
基于Java+SpringBoot+Vue企业OA管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】
🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...
Java架构师系统架构设计性能评估
目录 1 导论2 架构评估基础系统性能衡量的基本指标2.1 系统性能的指标2.2 数据库指标2.3 并发用户数2.4 网络延迟2.4 系统吞吐量2.5 资源性能指标3 架构评估基础服务端性能测试3.1基准测试3.2 负载测试3.3 压力测试3.4 疲劳强度测试3.5 容量测试1 导论 本章的主要内容是掌握架构…...
Android可滑动的分时图以及常用动画
先看一下效果: 自定义View 其中顶部是模仿的股票数据分时图,以前也写过详细的文章传送门,只不过不支持左右滑动,这款是在那个基础上的修改 在说一下分时图的思路吧: 可以看作是一条条相连的直线首尾相接,…...
软考系统架构师常考知识点整理(含案例分析、论文历年题目总结)
系统架构师常考知识点总结 计算机组成原理 1、同步/异步区分 CPU访问内存通常是同步方式 CPU与I/O接口交换信息通常是同步方式 CPU与PCI总线交换信息通常是同步方式 I/O接口与打印机交换信息则通常采用基于缓存池的异步方式, 2、双工通信方式 对端到端通信总线的信号传…...
Netty通信在中间件组件中的广泛使用-Dubbo3举例
Netty是一个高性能异步IO通信框架,封装了NIO,对各种bug做了很好的优化解决。所以很多中间件底层的通信都会使用Netty,比如说:Dubbo3,rocketmq,ElasticSearch等。 比方说,我们使用dubbo作为rpc跨…...
基于Java的在线拍卖系统设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言具体实现截图论文参考详细视频演示代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技…...
Maven Pom
目录 Pom 父(Super)POM POM 标签大全详解 POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖…...
【运维日常】mongodb 集群生产实践
本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…...
【MATLAB源码-第45期】基于matlab的16APSK调制解调仿真,使用卷积编码软判决。
操作环境: MATLAB 2022a 1、算法描述 1. 16APSK调制解调 16APSK (16-ary Amplitude Phase Shift Keying) 是一种相位调制技术,其基本思想是在恒定幅度的条件下,改变信号的相位,从而传送信息。 - 调制:在16APSK中&am…...
HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 八)
其他状态管理概述 除了前面章节提到的组件状态管理和应用状态管理,ArkTS还提供了Watch和$$来为开发者提供更多功能: Watch用于监听状态变量的变化。$$运算符:给内置组件提供TS变量的引用,使得TS变量和内置组件的内部状态保持同步…...
SQL按照id集合顺序返回
SQL按照id集合顺序返回 一、需求二、SQL三、MyBatis编写四、FIELD函数五、环境 一、需求 sql这样的 SELECT id, name FROM is_parent_viewshop WHERE id IN (2350, 2396, 3768, 3718, 3692) 按照id顺序返回,sql如何写 二、SQL SELECT id, name FROM is_parent_vi…...
04训练——基于YOLO V8的自定义数据集训练——在windows环境下使用pycharm做训练-1总体步骤
在上文中,笔者介绍了使用google公司提供的免费GPU资源colab来对大量的自定义数据集进行模型训练。该方法虽然简单好用,但是存在以下几方面的短板问题: 一是需要通过虚拟服务器做为跳板机来访问,总体操作起来非常繁杂。 二是需要将大量的数据上传缓慢,管理和使用非常不友…...
iview表格 异步修改列数据卡顿 滚动条失效
使用表格row-key属性 将row-key属性设置为true <Table ref"table" border :row-key"true" :columns"tableColumns" :loading"loading":data"tableData"></Table>...
【Linux】常驻内核和虚拟内存的区别
常驻内存和虚拟内存是计算机内存管理的两个概念。 常驻内存指的是应用程序在运行时,所占用的内存空间不会随着应用程序的启动和关闭而有所变化,这种内存是常驻在计算机的物理内存中的。即使我们关闭了电脑,这些程序也会保持在内存中…...
Qt 串口接收包含汉字的数据,汉字乱码
通过串口显示打印的调试信息时,接受的中文无法识别,全部乱码,解决办法: QByteArray array m_serial->readAll(); QString array QString::fromLocal8Bit(arr)...
设计模式 - 结构型模式考点篇:适配器模式(类适配器、对象适配器、接口适配器)
目录 一、适配器模式 一句话概括结构式模式 1.1、适配器模式概述 1.2、案例 1.2.1、类适配器模式实现案例 1.2.2、对象适配器 1.2.3、接口适配器 1.3、优缺点(对象适配器模式) 1.4、应用场景 一、适配器模式 一句话概括结构式模式 教你将类和对…...
android Google官网 :支持不同的语言和文化 rtl / ltr : 本地化适配:RTL(right-to-left) 适配
参考 google官网: 支持不同的语言和文化 应用包含可能专门针对特定文化而设计的资源。例如,应用可以包含针对特定文化的字符串,这些字符串将转换为当前语言区域的语言。 将具有文化特异性的资源与应用的其他资源分开是一种很好的做法。And…...
Visual Studio Code配置C/C++开发环境
C/C开发中的IDE非常多,网上有推荐安装Visual Studio 2019/2020/2022。但是登录官方网址下载,此软件体积非常大(8G以上),且企业版、专业版会收费。 因此,我们推荐大家可以尝试通过Visual Studio Code来配置C/C开发环境 环境准备 Mi…...
室内渲染的艺术:创造理想空间的视觉魔法!
在繁忙的生活中,我们常常渴望拥有一个属于自己的安静空间。这个空间可以是一间温馨的卧室,也可以是一间舒适的客厅,甚至可以是一个小小的书房。而这个空间的营造,离不开室内渲染。 室内渲染是一种艺术,它用色彩、光线…...
php发送get、post请求的6种方法简明总结?
这篇文章主要介绍php发送get、post请求的6种方法简明总结,分别为使用file_get_contents 、fopen、fsockopen、curl来发送GET和POST请求,需要的朋友可以参考下 方法1: 用file_get_contents 以get方式获取内容: <?php $urlhttp://www.51growup.com/; $html f…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...
