From 4dd79c7b29b570e932488cdca36961720f865cbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8B=A4=E5=BF=AB=E7=9A=84=E5=B0=8F=E6=99=B4=E5=90=8C?= =?UTF-8?q?=E5=AD=A6?= <941403820@qq.com> Date: Thu, 1 Feb 2024 06:57:58 +0000 Subject: [PATCH 1/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E9=94=AE?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E9=87=8C=E9=9D=A2=E7=9A=84=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 勤快的小晴同学 <941403820@qq.com> --- startup.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/startup.sh b/startup.sh index c038149..ef066a3 100644 --- a/startup.sh +++ b/startup.sh @@ -3,13 +3,13 @@ sudo snap install docker go sudo systemctl start docker sudo systemctl enable docker -docker run -itd --name mysql --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.23 +docker run -itd --name mysql --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=!MyEMS1 mysql:8.0.23 docker run -itd --name tdengine --restart=always -p 6030:6030 -p 6041:6041 -p 6043-6049:6043-6049 -p 6043-6049:6043-6049/udp tdengine/tdengine:3.0.4.2 -docker run -itd -p 6379:6379 --restart=always --name redis redis:7.0.4 --requirepass 123456 +docker run -itd -p 6379:6379 --restart=always --name redis redis:7.0.4 --requirepass root docker run -d --name emqx --restart=always -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.1.0 docker cp resource/pandax_iot.sql mysql:/root/pandax_iot.sql -docker exec mysql mysql -uroot -p123456 pandax_iot < /root/pandax_iot.sql +docker exec mysql mysql -uroot -p!MyEMS1 pandax_iot < /root/pandax_iot.sql go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct From fc16d6cf8107a925245d3bec6d4f374f5666a932 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8B=A4=E5=BF=AB=E7=9A=84=E5=B0=8F=E6=99=B4=E5=90=8C?= =?UTF-8?q?=E5=AD=A6?= <941403820@qq.com> Date: Sat, 17 Feb 2024 04:32:57 +0000 Subject: [PATCH 2/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E4=B8=A2=E5=A4=B1=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 勤快的小晴同学 <941403820@qq.com> --- apps/develop/gen/gen.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/develop/gen/gen.go b/apps/develop/gen/gen.go index 1f3f871..7d7346d 100644 --- a/apps/develop/gen/gen.go +++ b/apps/develop/gen/gen.go @@ -148,6 +148,8 @@ func (g *Generator) Generate() (entity.DevGenTable, error) { data.FunctionAuthor = "panda" var wg sync.WaitGroup + columnChan := make(chan entity.DevGenTableColumn, len(dbColumn)) // 创建带缓冲的通道 + for x := 0; x < len(dbColumn); x++ { index := x wg.Add(1) @@ -239,7 +241,7 @@ func (g *Generator) Generate() (entity.DevGenTable, error) { } else { column.IsRequired = "0" column.IsInsert = "1" - if strings.Index(column.ColumnName, "name") >= 0 || strings.Index(column.ColumnName, "status") >= 0 { + if strings.Contains(column.ColumnName, "name") || strings.Contains(column.ColumnName, "status") { column.IsRequired = "1" } } @@ -278,10 +280,17 @@ func (g *Generator) Generate() (entity.DevGenTable, error) { column.HtmlType = "select" } - data.Columns = append(data.Columns, column) + columnChan <- column // 将处理结果放入通道 }(&wg, index) } wg.Wait() + + close(columnChan) // 关闭通道 + + for column := range columnChan { + data.Columns = append(data.Columns, column) // 将通道中的结果放入data.Columns + } + return data, nil } From 2ed4afbac642f578a4fd7bfaf3f22478211cc715 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8B=A4=E5=BF=AB=E7=9A=84=E5=B0=8F=E6=99=B4=E5=90=8C?= =?UTF-8?q?=E5=AD=A6?= <941403820@qq.com> Date: Sat, 17 Feb 2024 06:38:43 +0000 Subject: [PATCH 3/6] =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 勤快的小晴同学 <941403820@qq.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3ce5ce7..a8c816f 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,7 @@ sudo ./startup.sh - **`表单设计`** - _表单设计_ - **`报表设计`** - _数据报表设计_ - **`产品管理`** - _设备的产品管理_ -- **`设备管理`** - _设备的管理,支持多协议接入,MQTT,TCP,UDP,COAP,Modbus,Opcua,S7等_ +- **`设备管理`** - _设备的管理,支持多协议接入,MQTT,TCP,UDP,COAP,Modbus,Opcua,S7,HL7等_ ## 🛠 以后可能会有什么NB功能? - 开发中 **`3D组态(2023-Q4)`** - _根据2d组态自动生成3D组态_ From 8e1cd4e903b4e241b12947c53e525f6b3a802144 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8B=A4=E5=BF=AB=E7=9A=84=E5=B0=8F=E6=99=B4=E5=90=8C?= =?UTF-8?q?=E5=AD=A6?= <941403820@qq.com> Date: Sun, 18 Feb 2024 07:50:22 +0000 Subject: [PATCH 4/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 勤快的小晴同学 <941403820@qq.com> --- resource/pandax_iot.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resource/pandax_iot.sql b/resource/pandax_iot.sql index e46fa32..bfe75fe 100644 --- a/resource/pandax_iot.sql +++ b/resource/pandax_iot.sql @@ -854,7 +854,7 @@ CREATE TABLE `sys_apis` ( `description` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'api中文描述', `api_group` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'api组', `method` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `sys_apis_udk` (`path`,`method`) ) ENGINE = InnoDB AUTO_INCREMENT = 206 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; From 3174152c46f9b47eb9c460cce85bc95df05f1e9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8B=A4=E5=BF=AB=E7=9A=84=E5=B0=8F=E6=99=B4=E5=90=8C?= =?UTF-8?q?=E5=AD=A6?= <941403820@qq.com> Date: Sun, 18 Feb 2024 09:00:56 +0000 Subject: [PATCH 5/6] =?UTF-8?q?=E5=A6=82=E6=9E=9Ctoken=E4=B8=BA=E7=A9=BA?= =?UTF-8?q?=EF=BC=8C=E4=BB=8E=E8=AF=B7=E6=B1=82=E5=8F=82=E6=95=B0=E4=B8=AD?= =?UTF-8?q?=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 勤快的小晴同学 <941403820@qq.com> --- apps/system/api/user.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/system/api/user.go b/apps/system/api/user.go index a7b62b0..1cced05 100644 --- a/apps/system/api/user.go +++ b/apps/system/api/user.go @@ -45,6 +45,10 @@ func (u *UserApi) GenerateCaptcha(request *restful.Request, response *restful.Re // RefreshToken 刷新token func (u *UserApi) RefreshToken(rc *restfulx.ReqCtx) { tokenStr := rc.Request.Request.Header.Get("X-TOKEN") + // 如果token为空,从请求参数中获取 + if tokenStr == "" { + tokenStr = rc.Request.Request.URL.Query().Get("token") + } j := token.NewJWT("", []byte(global.Conf.Jwt.Key), jwt.SigningMethodHS256) token, err := j.RefreshToken(tokenStr) biz.ErrIsNil(err, "刷新token失败") From e611366c3683c5b799e256d7d1410decfe734f29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8B=A4=E5=BF=AB=E7=9A=84=E5=B0=8F=E6=99=B4=E5=90=8C?= =?UTF-8?q?=E5=AD=A6?= <941403820@qq.com> Date: Tue, 20 Feb 2024 03:05:25 +0000 Subject: [PATCH 6/6] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BF=A1=E6=81=AF=E3=80=81=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=BD=93=E5=89=8D=E7=94=A8=E6=88=B7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 勤快的小晴同学 <941403820@qq.com> --- apps/system/api/user.go | 8 ++++++++ apps/system/router/user.go | 15 +++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/apps/system/api/user.go b/apps/system/api/user.go index 1cced05..6488893 100644 --- a/apps/system/api/user.go +++ b/apps/system/api/user.go @@ -301,6 +301,14 @@ func (u *UserApi) UpdateSysUser(rc *restfulx.ReqCtx) { u.UserApp.Update(sysUser) } +// UpdateSysUserSelf 用户修改数据 +func (u *UserApi) UpdateSysUserSelf(rc *restfulx.ReqCtx) { + var sysUser entity.SysUser + restfulx.BindJsonAndValid(rc, &sysUser) + sysUser.UserId = rc.LoginAccount.UserId + u.UserApp.Update(sysUser) +} + // UpdateSysUserStu 修改用户状态 func (u *UserApi) UpdateSysUserStu(rc *restfulx.ReqCtx) { var sysUser entity.SysUser diff --git a/apps/system/router/user.go b/apps/system/router/user.go index be22435..2e85194 100644 --- a/apps/system/router/user.go +++ b/apps/system/router/user.go @@ -68,6 +68,14 @@ func InitUserRouter(container *restful.Container) { Writes(model.ResultPage{}). Returns(200, "OK", model.ResultPage{})) + ws.Route(ws.GET("/me").To(func(request *restful.Request, response *restful.Response) { + restfulx.NewReqCtx(request, response).WithLog("获取个人信息").Handle(s.GetSysUserProfile) + }). + Doc("获取个人信息"). + Metadata(restfulspec.KeyOpenAPITags, tags). + Writes(vo.UserVo{}). + Returns(200, "OK", vo.UserVo{})) + ws.Route(ws.GET("/getById/{userId}").To(func(request *restful.Request, response *restful.Response) { restfulx.NewReqCtx(request, response).WithLog("获取用户信息").Handle(s.GetSysUser) }). @@ -109,6 +117,13 @@ func InitUserRouter(container *restful.Container) { Metadata(restfulspec.KeyOpenAPITags, tags). Reads(entity.SysUser{})) + ws.Route(ws.PUT("/profile").To(func(request *restful.Request, response *restful.Response) { + restfulx.NewReqCtx(request, response).WithLog("用户修改信息").Handle(s.UpdateSysUserSelf) + }). + Doc("修改用户信息"). + Metadata(restfulspec.KeyOpenAPITags, tags). + Reads(entity.SysUser{})) + ws.Route(ws.PUT("/changeStatus").To(func(request *restful.Request, response *restful.Response) { restfulx.NewReqCtx(request, response).WithLog("修改用户状态").Handle(s.UpdateSysUserStu) }).