go-zero单体服务(权限管理-完成,源码已上传)

go-zero单体接口服务总结

文档地址

使用的go包

  • go-zero

  • go-redis(暂时这个没有使用只是添加到项目中)

  • gorm-gen (挺好用的推荐)

遇到的一些问题

解决方法请查看之前的文档

  1. makefile的使用,前期都还好突然有一次使用 make api 报错了。

  2. go-zero有一些方法在handler中无法访问,在中间件中无法使用srvCtx导致无法使用mysql,redis连接。

源码

项目源码地址

sql


/*

Navicat Premium Data Transfer

Source Server : 13

Source Server Type : MySQL

Source Server Version : 50741

Source Host : 192.168.1.13

Source Database : bk

Target Server Type : MySQL

Target Server Version : 50741

File Encoding : utf-8

Date: 02/14/2023 17:56:48 PM

*/

SET NAMES utf8mb4;

SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------

-- Table structure for `permission_resource`

-- ----------------------------

DROP  TABLE  IF  EXISTS  `permission_resource`;

CREATE  TABLE `permission_resource` (

`id`  bigint(20) unsigned zerofill NOT NULL AUTO_INCREMENT COMMENT '权限资源表主键',

`name`  varchar(64) NOT NULL  DEFAULT  '' COMMENT '资源名称',

`url`  varchar(256) NOT NULL  DEFAULT  '' COMMENT '资源url',

`status`  int(11) NOT NULL  DEFAULT  '1' COMMENT '1.有效,2.无效',

`ctime`  int(11) NOT NULL  DEFAULT  '0' COMMENT '创建时间',

`utime`  int(11) NOT NULL  DEFAULT  '0' COMMENT '更新时间',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=3  DEFAULT CHARSET=utf8mb4 COMMENT='权限资源表';

-- ----------------------------

-- Table structure for `role`

-- ----------------------------

DROP  TABLE  IF  EXISTS  `role`;

CREATE  TABLE `role` (

`id`  bigint(20) unsigned zerofill NOT NULL AUTO_INCREMENT COMMENT '角色表',

`name`  varchar(64) NOT NULL  DEFAULT  '' COMMENT '角色名',

`type`  int(11) NOT NULL  DEFAULT  '1' COMMENT '1.普通用户,2.管理员',

`status`  int(11) NOT NULL  DEFAULT  '1' COMMENT '1.有效,2.无效',

`ctime`  int(11) NOT NULL  DEFAULT  '0' COMMENT '创建时间',

`utime`  int(11) NOT NULL  DEFAULT  '0' COMMENT '更新时间',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=3  DEFAULT CHARSET=utf8mb4 COMMENT='角色表';

-- ----------------------------

-- Table structure for `role_permission_resource`

-- ----------------------------

DROP  TABLE  IF  EXISTS  `role_permission_resource`;

CREATE  TABLE `role_permission_resource` (

`id`  bigint(20) unsigned zerofill NOT NULL AUTO_INCREMENT COMMENT '角色和权限资源关联表主键',

`role_id`  bigint(20) NOT NULL  DEFAULT  '0' COMMENT '角色id',

`prid`  bigint(20) NOT NULL  DEFAULT  '0' COMMENT '权限资源id',

`status`  int(11) NOT NULL  DEFAULT  '1' COMMENT '1.有效,2.无效',

`ctime`  int(11) NOT NULL  DEFAULT  '0' COMMENT '创建时间',

`utime`  int(11) NOT NULL  DEFAULT  '0' COMMENT '更新时间',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=2  DEFAULT CHARSET=utf8mb4 COMMENT='角色和权限资源关联表';

-- ----------------------------

-- Table structure for `user`

-- ----------------------------

DROP  TABLE  IF  EXISTS  `user`;

CREATE  TABLE `user` (

`id`  bigint(20) unsigned zerofill NOT NULL AUTO_INCREMENT COMMENT '用户表主键',

`name`  varchar(128) NOT NULL COMMENT '用户名',

`role_id`  bigint(20) NOT NULL  DEFAULT  '0' COMMENT '角色id',

`password`  varchar(64) NOT NULL COMMENT '密码',

`status`  int(11) NOT NULL  DEFAULT  '1' COMMENT '是否有效1.有效 2.无效',

`ctime`  int(11) NOT NULL  DEFAULT  '0' COMMENT '创建时间',

`utime`  int(11) NOT NULL COMMENT '更新时间',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=5  DEFAULT CHARSET=utf8mb4 COMMENT='用户表';

SET FOREIGN_KEY_CHECKS = 1;

postman 请求文档太长了,放到源码的doc文件夹下了

最后

这个版本只完成了基于go-zero,mysql的一个权限管理的接口,有很多问题没有解决,比如密码的加盐加密处理,redis用户缓存等。后续写前端的时候一步一步解决对应的问题。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!