mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-05-12 14:52:07 +08:00
Merge branch 'master' of https://gitee.com/XM-GO/PandaX
This commit is contained in:
@@ -85,7 +85,7 @@ sudo ./startup.sh
|
|||||||
- <span class="tag done-tag">✔</span> **`表单设计`** - _表单设计_
|
- <span class="tag done-tag">✔</span> **`表单设计`** - _表单设计_
|
||||||
- <span class="tag done-tag">✔</span> **`报表设计`** - _数据报表设计_
|
- <span class="tag done-tag">✔</span> **`报表设计`** - _数据报表设计_
|
||||||
- <span class="tag done-tag">✔</span> **`产品管理`** - _设备的产品管理_
|
- <span class="tag done-tag">✔</span> **`产品管理`** - _设备的产品管理_
|
||||||
- <span class="tag done-tag">✔</span> **`设备管理`** - _设备的管理,支持多协议接入,MQTT,TCP,UDP,COAP,Modbus,Opcua,S7等_
|
- <span class="tag done-tag">✔</span> **`设备管理`** - _设备的管理,支持多协议接入,MQTT,TCP,UDP,COAP,Modbus,Opcua,S7,HL7等_
|
||||||
|
|
||||||
## 🛠 以后可能会有什么NB功能?
|
## 🛠 以后可能会有什么NB功能?
|
||||||
- <span class="tag wip-tag">开发中</span> **`3D组态(2023-Q4)`** - _根据2d组态自动生成3D组态_
|
- <span class="tag wip-tag">开发中</span> **`3D组态(2023-Q4)`** - _根据2d组态自动生成3D组态_
|
||||||
|
|||||||
@@ -148,6 +148,8 @@ func (g *Generator) Generate() (entity.DevGenTable, error) {
|
|||||||
data.FunctionAuthor = "panda"
|
data.FunctionAuthor = "panda"
|
||||||
|
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
|
columnChan := make(chan entity.DevGenTableColumn, len(dbColumn)) // 创建带缓冲的通道
|
||||||
|
|
||||||
for x := 0; x < len(dbColumn); x++ {
|
for x := 0; x < len(dbColumn); x++ {
|
||||||
index := x
|
index := x
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
@@ -239,7 +241,7 @@ func (g *Generator) Generate() (entity.DevGenTable, error) {
|
|||||||
} else {
|
} else {
|
||||||
column.IsRequired = "0"
|
column.IsRequired = "0"
|
||||||
column.IsInsert = "1"
|
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"
|
column.IsRequired = "1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -278,10 +280,17 @@ func (g *Generator) Generate() (entity.DevGenTable, error) {
|
|||||||
column.HtmlType = "select"
|
column.HtmlType = "select"
|
||||||
}
|
}
|
||||||
|
|
||||||
data.Columns = append(data.Columns, column)
|
columnChan <- column // 将处理结果放入通道
|
||||||
}(&wg, index)
|
}(&wg, index)
|
||||||
}
|
}
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
|
|
||||||
|
close(columnChan) // 关闭通道
|
||||||
|
|
||||||
|
for column := range columnChan {
|
||||||
|
data.Columns = append(data.Columns, column) // 将通道中的结果放入data.Columns
|
||||||
|
}
|
||||||
|
|
||||||
return data, nil
|
return data, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,10 @@ func (u *UserApi) GenerateCaptcha(request *restful.Request, response *restful.Re
|
|||||||
// RefreshToken 刷新token
|
// RefreshToken 刷新token
|
||||||
func (u *UserApi) RefreshToken(rc *restfulx.ReqCtx) {
|
func (u *UserApi) RefreshToken(rc *restfulx.ReqCtx) {
|
||||||
tokenStr := rc.Request.Request.Header.Get("X-TOKEN")
|
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)
|
j := token.NewJWT("", []byte(global.Conf.Jwt.Key), jwt.SigningMethodHS256)
|
||||||
token, err := j.RefreshToken(tokenStr)
|
token, err := j.RefreshToken(tokenStr)
|
||||||
biz.ErrIsNil(err, "刷新token失败")
|
biz.ErrIsNil(err, "刷新token失败")
|
||||||
@@ -297,6 +301,14 @@ func (u *UserApi) UpdateSysUser(rc *restfulx.ReqCtx) {
|
|||||||
u.UserApp.Update(sysUser)
|
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 修改用户状态
|
// UpdateSysUserStu 修改用户状态
|
||||||
func (u *UserApi) UpdateSysUserStu(rc *restfulx.ReqCtx) {
|
func (u *UserApi) UpdateSysUserStu(rc *restfulx.ReqCtx) {
|
||||||
var sysUser entity.SysUser
|
var sysUser entity.SysUser
|
||||||
|
|||||||
@@ -68,6 +68,14 @@ func InitUserRouter(container *restful.Container) {
|
|||||||
Writes(model.ResultPage{}).
|
Writes(model.ResultPage{}).
|
||||||
Returns(200, "OK", 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) {
|
ws.Route(ws.GET("/getById/{userId}").To(func(request *restful.Request, response *restful.Response) {
|
||||||
restfulx.NewReqCtx(request, response).WithLog("获取用户信息").Handle(s.GetSysUser)
|
restfulx.NewReqCtx(request, response).WithLog("获取用户信息").Handle(s.GetSysUser)
|
||||||
}).
|
}).
|
||||||
@@ -109,6 +117,13 @@ func InitUserRouter(container *restful.Container) {
|
|||||||
Metadata(restfulspec.KeyOpenAPITags, tags).
|
Metadata(restfulspec.KeyOpenAPITags, tags).
|
||||||
Reads(entity.SysUser{}))
|
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) {
|
ws.Route(ws.PUT("/changeStatus").To(func(request *restful.Request, response *restful.Response) {
|
||||||
restfulx.NewReqCtx(request, response).WithLog("修改用户状态").Handle(s.UpdateSysUserStu)
|
restfulx.NewReqCtx(request, response).WithLog("修改用户状态").Handle(s.UpdateSysUserStu)
|
||||||
}).
|
}).
|
||||||
|
|||||||
@@ -839,7 +839,7 @@ CREATE TABLE `sys_apis` (
|
|||||||
`description` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'api中文描述',
|
`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组',
|
`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 '方法',
|
`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`)
|
UNIQUE KEY `sys_apis_udk` (`path`,`method`)
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 206 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
) ENGINE = InnoDB AUTO_INCREMENT = 206 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
|
|||||||
@@ -3,13 +3,13 @@ sudo snap install docker go
|
|||||||
sudo systemctl start docker
|
sudo systemctl start docker
|
||||||
sudo systemctl enable 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 --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 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 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 GO111MODULE=on
|
||||||
go env -w GOPROXY=https://goproxy.cn,direct
|
go env -w GOPROXY=https://goproxy.cn,direct
|
||||||
|
|||||||
Reference in New Issue
Block a user