goframe开发一个企业网站 统一返回响应码 18
响应码的logic
package returncodeimport ("context""gf_new_web/internal/service""github.com/gogf/gf/v2/errors/gcode""github.com/gogf/gf/v2/frame/g"
)type sReturncode struct {
}var (insReturncode = sReturncode{}codeSuccessDefault = gcode.CodeOK.Code()MessageSuccessDefault = "操作成功"
)func init() {service.RegisterReturncode(New())
}func New() *sReturncode {return &sReturncode{}
}func Returncode() *sReturncode {return &insReturncode
}// SuccessJson 返回成功json
func (s *sReturncode) SuccessJson(ctx context.Context, code int, message string, data interface{}) {g.RequestFromCtx(ctx).Response.WriteJson(g.Map{"code": code,"message": message,"data": data,})
}// SuccessJsonDefault 返回默认成功json
func (s *sReturncode) SuccessJsonDefault(ctx context.Context) {service.Returncode().SuccessJson(ctx, service.Returncode().SuccessCodeDefault(), service.Returncode().SuccessMessageDefault(), g.Map{})
}// SuccessJsonDefaultMessage 返回自定义提示语的成功json
func (s *sReturncode) SuccessJsonDefaultMessage(ctx context.Context, message string) {service.Returncode().SuccessJson(ctx, service.Returncode().SuccessCodeDefault(), message, g.Map{})
}// SuccessCodeDefault 获取默认成功code码
func (s *sReturncode) SuccessCodeDefault() int {return codeSuccessDefault
}// SuccessMessageDefault 获取默认成功提示语
func (s *sReturncode) SuccessMessageDefault() string {return MessageSuccessDefault
}// Status404 状态码404
func (s *sReturncode) Status404(ctx context.Context) {g.RequestFromCtx(ctx).Response.WriteStatusExit(404, " ")return
}// Status500 http状态码500
func (s *sReturncode) Status500(ctx context.Context) {g.RequestFromCtx(ctx).Response.WriteStatusExit(500, "")return
}
service.go
// ================================================================================
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
// You can delete these comments if you wish manually maintain this interface file.
// ================================================================================package serviceimport ("context"
)type (IReturncode interface {// SuccessJson 返回成功jsonSuccessJson(ctx context.Context, code int, message string, data interface{})// SuccessJsonDefault 返回默认成功jsonSuccessJsonDefault(ctx context.Context)// SuccessJsonDefaultMessage 返回自定义提示语的成功jsonSuccessJsonDefaultMessage(ctx context.Context, message string)// SuccessCodeDefault 获取默认成功code码SuccessCodeDefault() int// SuccessMessageDefault 获取默认成功提示语SuccessMessageDefault() string// Status404 状态码404Status404(ctx context.Context)// Status500 http状态码500Status500(ctx context.Context)}
)var (localReturncode IReturncode
)func Returncode() IReturncode {if localReturncode == nil {panic("implement not found for interface IReturncode, forgot register?")}return localReturncode
}func RegisterReturncode(i IReturncode) {localReturncode = i
}
view的处理
logic
package returnviewimport ("context""gf_new_web/internal/service""github.com/gogf/gf/v2/frame/g"
)type sReturnview struct {
}var (insReturnview = sReturnview{}
)func init() {service.RegisterReturnview(New())
}func New() *sReturnview {return &sReturnview{}
}func Returnview() *sReturnview {return &insReturnview
}// WebView 网站页面渲染
func (s *sReturnview) WebView(ctx context.Context, template string, data map[string]interface{}) (err error) {err = g.RequestFromCtx(ctx).Response.WriteTpl(template, data)if err != nil {return err}return
}// ErrorView 错误页面渲染
func (s *sReturnview) ErrorView(ctx context.Context, code int, message string) (err error) {template := "backend/error.html"data := g.Map{"code": code,"message": message,}err = g.RequestFromCtx(ctx).Response.WriteTpl(template, data)if err != nil {return err}return
}
这里的Webview还要再修改,将一前端一些重启的代码写入。
相关文章:
goframe开发一个企业网站 统一返回响应码 18
响应码的logic package returncodeimport ("context""gf_new_web/internal/service""github.com/gogf/gf/v2/errors/gcode""github.com/gogf/gf/v2/frame/g" )type sReturncode struct { }var (insReturncode sReturncode{}…...
基于STM32的智能门禁系统设计
引言 本项目基于STM32微控制器设计了一个智能门禁系统,通过集成多个传感器模块和控制设备,实现对门禁系统的自动化管理与控制。该系统能够通过RFID卡、密码输入、以及指纹传感器等多种方式对进出人员进行验证,并结合LCD显示屏提供实时信息反…...
Python学习从0到1 day28 Python 高阶技巧 ⑧ 递归
那就祝我们爬不同的山,还能回到同一条路上,不是时时见面,但是时时惦记之人 —— 24.11.13 递归 1.什么是递归 递归在编程中是一种非常重要的算法 递归:即方法(函数)自己调用自己的一种特殊编程写法 函数调用自己,即…...
知识见闻 - 苹果手机拨号键长按
苹果手机(iPhone)在拨号界面长按按键时有一些特定的功能。以下是iPhone拨号键盘上长按按键的主要功能: 数字键 0 - 长按可输入""号,用于国际电话拨号 - 这是最常用的长按功能之一,方便用户拨打国际电话 星号…...
在 KubeVirt 中使用 GPU Operator
在 KubeVirt 中使用 GPU Operator 基于最新的GPU Operator版本24.9.0。 原文链接:GPU Operator with KubeVirt — NVIDIA GPU Operator 24.9.0 documentation 1. 简介 KubeVirt 是 Kubernetes 的一个虚拟机管理插件,允许您在 Kubernetes 集群中运行和…...
安慰剂检验Stata代码(全套代码、示例数据及参考文献)
数据简介:随着因果推断方法在实证研究中的使用比例不断提升,越来越多的文章进行安慰剂检验。其检验基本原理与医学中的安慰剂类似,即使用假的政策发生时间或实验组进行分析,以检验能否得到政策效应。如果依然得到了政策效应&#…...
DAY6 线程
作业1: 多线程实现文件拷贝,线程1拷贝一半,线程2拷贝另一半,主线程回收子线程资源。 代码: #include <myhead.h> sem_t sem1; void *copy1()//子线程1函数 拷贝前一半内容 {int fd1open("./1.txt",O…...
基于STM32的智能门锁系统设计思路:蓝牙、RFID等技术
一、项目概述 在现代家居安全领域,传统门锁因其安全性不足、开锁方式单一等问题,已逐渐无法满足用户的需求。传统机械锁容易被撬开、复制钥匙,同时开锁方式仅限于物理钥匙,给用户带来不便。因此,本文旨在设计并开发一…...
AndroidStudio-广播
一、广播的本质 广播是一种数据传输方式 二、Android 中的广播 发送一条广播,可以被不同的广播接收者所接收,广播接收者收到广播之后,再进行逻辑处理。 三、收发标准广播 广播的收发过程分为三个步骤: 1.发送标准广播 2.定义…...
基于表格滚动截屏(表格全部展开,没有滚动条)
import html2canvasPro from html2canvas // 截图,平辅表格 async function resetAgSize() {const allColumns gridApi.value.getColumns()let totalColumnWidth 0let totalColumnHeight 0// 遍历每一个行节点gridApi.value.forEachNode((rowNode) > {totalCo…...
洛谷P1255
P1255 数楼梯 - 洛谷 | 计算机科学教育新生态 数楼梯 题目描述 楼梯有 N 阶,上楼可以一步上一阶,也可以一步上二阶。 编一个程序,计算共有多少种不同的走法。 输入格式 一个数字,楼梯数。 输出格式 输出走的方式总数。 样…...
vue3设置第三方组件 样式::v-deep
在Vue 3中,使用了Composition API的组件可以通过<style>标签内部的::v-deep选择器来深入作用于第三方组件的样式。::v-deep是一个 Scoped CSS 的“深度选择器”,可以穿透组件边界,影响子组件的样式。比如我想修改el-date-picker的颜色边…...
JAVA学习日记(十四)集合进阶
一、单列集合Collection List系列集合特点:添加的元素是有序(存和取的顺序一致)、可重复、有索引 Set系列集合特点:添加的元素是无序(存和取的顺序有可能不一致)、不重复、无索引 Collection是所有单列集合…...
mysql全量与增量备份
binlog日志: 从上一次全量备份到下一次全量备份直接产生的数据。 一、全备和增量备份介绍 1、全量备份: 备份所有数据库或只备份一个数据库,全量备份之后,全量备份之前的binlog日志就没用了,一般生产环境会保留3-7天…...
“非法”操控lambda(python)
能过python解释器关卡即是合法脚本代码,偶尔的“违规”操控也是一种唯美。 (笔记模板由python脚本于2024年11月13日 11:18:21创建,本篇笔记适合熟悉python的lambda操控的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.pyth…...
UDP协议和TCP协议之间有什么具体区别?
UDP(User Datagram Protocol)和TCP(Transmission Control Protocol)是两种常见的网络传输协议,它们在数据传输中有着显著的区别和适用场景。理解它们的区别对于网络工程师、软件开发人员以及网络安全专家都是至关重要的…...
论文5—《基于改进YOLOv5s的轻量化金银花识别方法》文献阅读分析报告
论文报告:基于改进YOLOv5s的轻量化金银花识别方法 论文报告文档 基于改进YOLOv5s的轻量化金银花识别方法 论文报告文档摘要国内外研究现状国内研究现状国外研究现状 研究目的研究问题使用的研究方法试验研究结果文献结论创新点和对现有研究的贡献1. 目标检测技术2. …...
快手直播间采集教程,快手引流,快手截流,截流工具,直播间截流,快手直播间采集,获客系统,获客软件
功能: 1.输入快手直播间链接可一键监控直播间 2.可采集新进直播间的人 3.可采集直播间所有动作,包含:发弹幕的人和内容、送礼物的人和送的礼物、点亮爱心的人 4.可一键导出新进直播间的快手ID 5.可一键导出直播间动作列表,也可以筛…...
探索MoviePy:Python视频编辑的瑞士军刀
文章目录 🎬 探索MoviePy:Python视频编辑的瑞士军刀第一部分:背景介绍第二部分:MoviePy是什么?第三部分:如何安装MoviePy?第四部分:MoviePy的基本函数使用方法1. 视频剪辑2. 视频拼接…...
mysql 实现分库分表之 --- 基于 MyCAT 的分片策略详解
引言 在我们日常工作的项目中,特别是面向 C 端用户的产品,随着业务量的逐步扩大,数据量也呈指数级增长。为了应对日益增长的数据库压力,数据库优化已成为项目中不可或缺的一环,而分库分表则是海量数据优化方案中的重要…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...
【堆垛策略】设计方法
堆垛策略的设计是积木堆叠系统的核心,直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法,涵盖基础规则、优化算法和容错机制: 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则: 大尺寸/重量积木在下…...
热烈祝贺埃文科技正式加入可信数据空间发展联盟
2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...
前端高频面试题2:浏览器/计算机网络
本专栏相关链接 前端高频面试题1:HTML/CSS 前端高频面试题2:浏览器/计算机网络 前端高频面试题3:JavaScript 1.什么是强缓存、协商缓存? 强缓存: 当浏览器请求资源时,首先检查本地缓存是否命中。如果命…...
Python常用模块:time、os、shutil与flask初探
一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...
