chore: 初始开源发布

iotlcm-app:小程序端 + 用户端服务。

- app/:uni-app 小程序前端(基于 unibest,MIT)
  - 微信 AppID → YOUR_WX_APPID,uni-app AppID → __UNI__YOURAPPID
  - 内网后端地址 → admin.iotlcm.example.com
  - 应用标题与 unibest 模板 README 重写(保留上游致谢与 MIT 声明)
- server/:GoFrame 用户端服务(基于 XiuAdmin,Apache-2.0)
  - module xiuadmin → git.5iot.com/iotlcm-public/iotlcm-app(360 文件)
  - 支付回调地址 → app.iotlcm.example.com,商户名与应用名泛化
  - 真实手机号 → 合法 11 位编造号(保留号段前 3 位 + 后 4 位)
  - 依赖号码尾部的断言同步更新
  - 补 server/LICENSE(Apache-2.0)
- 移除内部资产:CI 触发器
- 补根 README,LF 行尾 + .gitattributes

已知:TestSysDept_RefreshDeptAncestors 在源仓同一提交上同样失败,属既有缺陷。
This commit is contained in:
MiFaZhan
2026-10-26 14:01:25 +08:00
commit 2ed5dfa6a1
1013 changed files with 138466 additions and 0 deletions
@@ -0,0 +1,75 @@
// Package gen
// @Link https://github.com/xiujiecn/xiu-admin
// @Copyright Copyright (c) 2025 LiXiujie
// @Author Lxj <li@xiujie.cn>
// @License https://github.com/xiujiecn/xiu-admin/blob/master/LICENSE
// @AutoGenerate Version
package system
import (
"context"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
// List 查看用户通知公告表列表
func (c *ControllerV1) SysNoticeUserList(ctx context.Context, req *v1.SysNoticeUserListReq) (res *v1.SysNoticeUserListRes, err error) {
list, totalCount, err := service.SysNoticeUser().List(ctx, &req.SysNoticeUserListParam)
if err != nil {
return
}
if list == nil {
list = []*model.SysNoticeUserListModel{}
}
res = new(v1.SysNoticeUserListRes)
res.Items = list
res.PageResult.Page = req.Page
res.PageResult.PageSize = req.PageSize
res.PageResult.Total = totalCount
return
}
// Export 导出用户通知公告表列表
func (c *ControllerV1) SysNoticeUserExport(ctx context.Context, req *v1.SysNoticeUserExportReq) (res *v1.SysNoticeUserExportRes, err error) {
err = service.SysNoticeUser().Export(ctx, &req.SysNoticeUserListParam)
return
}
// Edit 更新用户通知公告表
func (c *ControllerV1) SysNoticeUserEdit(ctx context.Context, req *v1.SysNoticeUserEditReq) (res *v1.SysNoticeUserEditRes, err error) {
err = service.SysNoticeUser().Edit(ctx, &req.SysNoticeUserEditParam)
return
}
// View 获取指定用户通知公告表信息
func (c *ControllerV1) SysNoticeUserView(ctx context.Context, req *v1.SysNoticeUserViewReq) (res *v1.SysNoticeUserViewRes, err error) {
data, err := service.SysNoticeUser().View(ctx, &req.SysNoticeUserViewParam)
if err != nil {
return
}
res = new(v1.SysNoticeUserViewRes)
res.SysNoticeUserViewModel = data
return
}
// Delete 删除用户通知公告表
func (c *ControllerV1) SysNoticeUserDelete(ctx context.Context, req *v1.SysNoticeUserDeleteReq) (res *v1.SysNoticeUserDeleteRes, err error) {
err = service.SysNoticeUser().Delete(ctx, &req.SysNoticeUserDeleteParam)
return
}
// Status 更新用户通知公告表状态
func (c *ControllerV1) SysNoticeUserStatus(ctx context.Context, req *v1.SysNoticeUserStatusReq) (res *v1.SysNoticeUserStatusRes, err error) {
err = service.SysNoticeUser().Status(ctx, &req.SysNoticeUserStatusParam)
return
}
// Read 已读
func (c *ControllerV1) SysNoticeUserRead(ctx context.Context, req *v1.SysNoticeUserReadReq) (res *v1.SysNoticeUserReadRes, err error) {
err = service.SysNoticeUser().Read(ctx, &req.SysNoticeUserReadParam)
return
}
@@ -0,0 +1,5 @@
// =================================================================================
// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish.
// =================================================================================
package system
@@ -0,0 +1,15 @@
// =================================================================================
// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish.
// =================================================================================
package system
import (
"git.5iot.com/iotlcm-public/iotlcm-app/api/system"
)
type ControllerV1 struct{}
func NewV1() system.ISystemV1 {
return &ControllerV1{}
}
@@ -0,0 +1,94 @@
package system
import (
"context"
"github.com/gogf/gf/v2/errors/gcode"
"github.com/gogf/gf/v2/errors/gerror"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/consts"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/library/contexts"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/library/event"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/library/mcache"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
func (c *ControllerV1) Login(ctx context.Context, req *v1.LoginReq) (res *v1.LoginRes, err error) {
userOut, token, err := service.SysAuth().Login(ctx, &model.LoginParams{
CaptchaID: req.CaptchaID,
CaptchaValue: req.CaptchaValue,
Username: req.Username,
Password: req.Password,
TenantId: req.TenantId,
})
if err != nil {
return nil, err
}
return &v1.LoginRes{
ID: userOut.ID,
Username: userOut.Username,
NickName: userOut.NickName,
Avatar: userOut.Avatar,
AccessToken: token,
}, nil
}
func (c *ControllerV1) RefreshToken(ctx context.Context, req *v1.RefreshTokenReq) (res *v1.RefreshTokenRes, err error) {
return nil, gerror.NewCode(gcode.CodeNotImplemented)
}
func (c *ControllerV1) Logout(ctx context.Context, req *v1.LogoutReq) (res *v1.LogoutRes, err error) {
token, _ := service.SysAuth().GetAccessToken(ctx)
service.SysUserOnline().DeleteByToken(ctx, token)
event.EventsInstance().Emit(ctx, consts.EventKeyUserLogout, contexts.GetUserId(ctx))
return &v1.LogoutRes{
Data: "退出成功",
Status: 200,
}, nil
}
func (c *ControllerV1) GetAccessCodes(ctx context.Context, req *v1.GetAccessCodesReq) (res *v1.GetAccessCodesRes, err error) {
if req.IsCache {
accessCodes, _, err := mcache.GetUserAccessCodeList(ctx, contexts.GetUserId(ctx))
if err != nil {
return nil, err
}
res = &v1.GetAccessCodesRes{
Data: accessCodes,
}
} else {
accessCodes, roleDataAccessCodes, err := service.SysAuth().GetUserAccessCodeList(ctx, contexts.GetUserId(ctx))
if err != nil {
return nil, err
}
mcache.SetUserAccessCodeList(ctx, contexts.GetUserId(ctx), accessCodes)
mcache.SetUserRoleDataAccessCodeList(ctx, contexts.GetUserId(ctx), roleDataAccessCodes)
res = &v1.GetAccessCodesRes{
Data: accessCodes,
}
}
return res, nil
}
func (c *ControllerV1) TenantList(ctx context.Context, req *v1.TenantListReq) (res *v1.TenantListRes, err error) {
tenantList, _, err := service.SysTenant().List(ctx, &model.SysTenantListParam{
Status: consts.SysDeptStatusNormal,
})
if err != nil {
return nil, err
}
tenantEnabled := false
if len(tenantList) > 1 {
tenantEnabled = true
}
voList := make([]v1.TenantListData, 0)
for _, tenant := range tenantList {
voList = append(voList, v1.TenantListData{
CompanyName: tenant.CompanyName,
Domain: tenant.Domain,
TenantId: tenant.TenantId,
})
}
return &v1.TenantListRes{
TenantEnabled: tenantEnabled,
VoList: voList,
}, nil
}
@@ -0,0 +1,17 @@
package system
import (
"context"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
func (c *ControllerV1) GetCaptcha(ctx context.Context, req *v1.GetCaptchaReq) (res *v1.GetCaptchaRes, err error) {
key, image, err := service.SysCaptcha().GenerateCaptcha(ctx)
res = &v1.GetCaptchaRes{
CaptchaID: key,
CaptchaImage: image,
}
return
}
@@ -0,0 +1,75 @@
package system
import (
"context"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/response"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
func (c *ControllerV1) SysClientList(ctx context.Context, req *v1.SysClientListReq) (res *v1.SysClientListRes, err error) {
items, total, err := service.SysClient().List(ctx, &req.SysClientListParam)
if err != nil {
return nil, err
}
res = &v1.SysClientListRes{
Items: items,
PageResult: response.PageResult{
Page: req.Page,
PageSize: req.PageSize,
Total: total,
},
}
return
}
func (c *ControllerV1) SysClientView(ctx context.Context, req *v1.SysClientViewReq) (res *v1.SysClientViewRes, err error) {
info, err := service.SysClient().View(ctx, req.SysClientViewParam)
if err != nil {
return nil, err
}
res = &v1.SysClientViewRes{
SysClientViewModel: info,
}
return
}
func (c *ControllerV1) SysClientAdd(ctx context.Context, req *v1.SysClientAddReq) (res *v1.SysClientAddRes, err error) {
output, err := service.SysClient().Add(ctx, req.SysClientAddParam)
if err != nil {
return nil, err
}
res = &v1.SysClientAddRes{
SysClientAddModel: output,
}
return
}
func (c *ControllerV1) SysClientEdit(ctx context.Context, req *v1.SysClientEditReq) (res *v1.SysClientEditRes, err error) {
output, err := service.SysClient().Edit(ctx, req.SysClientEditParam)
if err != nil {
return nil, err
}
res = &v1.SysClientEditRes{
SysClientEditModel: output,
}
return
}
func (c *ControllerV1) SysClientDelete(ctx context.Context, req *v1.SysClientDeleteReq) (res *v1.SysClientDeleteRes, err error) {
output, err := service.SysClient().Delete(ctx, req.SysClientDeleteParam)
if err != nil {
return nil, err
}
res = &v1.SysClientDeleteRes{
SysClientDeleteModel: output,
}
return
}
func (c *ControllerV1) SysClientStatus(ctx context.Context, req *v1.SysClientStatusReq) (res *v1.SysClientStatusRes, err error) {
output, err := service.SysClient().Status(ctx, req.SysClientStatusParam)
if err != nil {
return nil, err
}
res = &v1.SysClientStatusRes{
SysClientStatusModel: output,
}
return
}
@@ -0,0 +1,63 @@
package system
import (
"context"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/response"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
func (c *ControllerV1) GetConfigList(ctx context.Context, req *v1.GetConfigListReq) (res *v1.GetConfigListRes, err error) {
items, total, err := service.SysConfig().List(ctx, &req.SysConfigListParam)
res = &v1.GetConfigListRes{
Data: items,
PageResult: response.PageResult{
Total: total,
Page: req.Page,
PageSize: req.PageSize,
},
}
return
}
func (c *ControllerV1) AddConfig(ctx context.Context, req *v1.AddConfigReq) (res *v1.AddConfigRes, err error) {
output, err := service.SysConfig().Add(ctx, &req.SysConfigAddParam)
if err != nil {
return nil, err
}
res = &v1.AddConfigRes{
SysConfigAddModel: *output,
}
return
}
func (c *ControllerV1) EditConfig(ctx context.Context, req *v1.EditConfigReq) (res *v1.EditConfigRes, err error) {
output, err := service.SysConfig().Edit(ctx, &req.SysConfigEditParam)
if err != nil {
return nil, err
}
res = &v1.EditConfigRes{
SysConfigEditModel: *output,
}
return
}
func (c *ControllerV1) DeleteConfig(ctx context.Context, req *v1.DeleteConfigReq) (res *v1.DeleteConfigRes, err error) {
output, err := service.SysConfig().Delete(ctx, &req.SysConfigDeleteParam)
if err != nil {
return nil, err
}
res = &v1.DeleteConfigRes{
SysConfigDeleteModel: *output,
}
return
}
func (c *ControllerV1) GetConfigById(ctx context.Context, req *v1.GetConfigByIdReq) (res *v1.GetConfigByIdRes, err error) {
output, err := service.SysConfig().View(ctx, &req.SysConfigViewParam)
if err != nil {
return nil, err
}
res = &v1.GetConfigByIdRes{
SysConfigViewModel: *output,
}
return
}
@@ -0,0 +1,70 @@
package system
import (
"context"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/response"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
func (c *ControllerV1) DeptList(ctx context.Context, req *v1.DeptListReq) (res *v1.DeptListRes, err error) {
items, total, err := service.SysDept().GetDeptList(ctx, req.SysDeptListParam)
if err != nil {
return nil, err
}
return &v1.DeptListRes{
PageResult: response.PageResult{
Page: req.Page,
PageSize: req.PageSize,
Total: total,
},
Data: items,
}, nil
}
func (c *ControllerV1) DeptTree(ctx context.Context, req *v1.DeptTreeReq) (res *v1.DeptTreeRes, err error) {
items, err := service.SysDept().GetDeptTree(ctx, req.SysDeptTreeParam)
if err != nil {
return nil, err
}
return &v1.DeptTreeRes{
Data: items,
}, nil
}
func (c *ControllerV1) DeptAdd(ctx context.Context, req *v1.DeptAddReq) (res *v1.DeptAddRes, err error) {
deptId, err := service.SysDept().AddDept(ctx, &req.SysDeptAddModel)
if err != nil {
return nil, err
}
return &v1.DeptAddRes{
DeptId: deptId,
}, nil
}
func (c *ControllerV1) DeptEdit(ctx context.Context, req *v1.DeptEditReq) (res *v1.DeptEditRes, err error) {
deptId, err := service.SysDept().EditDept(ctx, &req.SysDeptEditModel)
if err != nil {
return nil, err
}
return &v1.DeptEditRes{
DeptId: deptId,
}, nil
}
func (c *ControllerV1) DeptDelete(ctx context.Context, req *v1.DeptDeleteReq) (res *v1.DeptDeleteRes, err error) {
deptId, err := service.SysDept().DeleteDept(ctx, &req.SysDeptDeleteModel)
if err != nil {
return nil, err
}
return &v1.DeptDeleteRes{
DeptId: deptId,
}, nil
}
func (c *ControllerV1) DeptView(ctx context.Context, req *v1.DeptViewReq) (res *v1.DeptViewRes, err error) {
dept, err := service.SysDept().GetDeptById(ctx, req.SysDeptViewModel.DeptId)
if err != nil {
return nil, err
}
return &v1.DeptViewRes{
SysDeptViewModel: *dept,
}, nil
}
@@ -0,0 +1,123 @@
package system
import (
"context"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/response"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
func (c *ControllerV1) SysDictTypeList(ctx context.Context, req *v1.SysDictTypeListReq) (res *v1.SysDictTypeListRes, err error) {
items, total, err := service.SysDictType().List(ctx, &req.SysDictTypeListParam)
if err != nil {
return nil, err
}
return &v1.SysDictTypeListRes{
Items: items,
PageResult: response.PageResult{
Page: req.Page,
PageSize: req.PageSize,
Total: total,
},
}, nil
}
func (c *ControllerV1) SysDictDataList(ctx context.Context, req *v1.SysDictDataListReq) (res *v1.SysDictDataListRes, err error) {
items, total, err := service.SysDictData().List(ctx, &req.SysDictDataListParam)
if err != nil {
return nil, err
}
typeData, err := service.SysDictType().View(ctx, &model.SysDictTypeViewParam{
DictId: req.SysDictDataListParam.DictId,
DictType: req.SysDictDataListParam.DictType,
})
if err != nil {
return nil, err
}
return &v1.SysDictDataListRes{
Items: items,
Type: typeData,
PageResult: response.PageResult{
Page: req.Page,
PageSize: req.PageSize,
Total: total,
},
}, nil
}
func (c *ControllerV1) SysDictTypeAdd(ctx context.Context, req *v1.SysDictTypeAddReq) (res *v1.SysDictTypeAddRes, err error) {
output, err := service.SysDictType().Add(ctx, &req.SysDictTypeAddParam)
if err != nil {
return nil, err
}
return &v1.SysDictTypeAddRes{
SysDictTypeAddModel: *output,
}, nil
}
func (c *ControllerV1) SysDictTypeEdit(ctx context.Context, req *v1.SysDictTypeEditReq) (res *v1.SysDictTypeEditRes, err error) {
output, err := service.SysDictType().Edit(ctx, &req.SysDictTypeEditParam)
if err != nil {
return nil, err
}
return &v1.SysDictTypeEditRes{
SysDictTypeEditModel: *output,
}, nil
}
func (c *ControllerV1) SysDictTypeDelete(ctx context.Context, req *v1.SysDictTypeDeleteReq) (res *v1.SysDictTypeDeleteRes, err error) {
output, err := service.SysDictType().Delete(ctx, &req.SysDictTypeDeleteParam)
if err != nil {
return nil, err
}
return &v1.SysDictTypeDeleteRes{
SysDictTypeDeleteModel: *output,
}, nil
}
func (c *ControllerV1) SysDictTypeView(ctx context.Context, req *v1.SysDictTypeViewReq) (res *v1.SysDictTypeViewRes, err error) {
output, err := service.SysDictType().View(ctx, &req.SysDictTypeViewParam)
if err != nil {
return nil, err
}
return &v1.SysDictTypeViewRes{
SysDictTypeViewModel: *output,
}, nil
}
func (c *ControllerV1) SysDictDataAdd(ctx context.Context, req *v1.SysDictDataAddReq) (res *v1.SysDictDataAddRes, err error) {
output, err := service.SysDictData().Add(ctx, &req.SysDictDataAddParam)
if err != nil {
return nil, err
}
return &v1.SysDictDataAddRes{
SysDictDataAddModel: *output,
}, nil
}
func (c *ControllerV1) SysDictDataEdit(ctx context.Context, req *v1.SysDictDataEditReq) (res *v1.SysDictDataEditRes, err error) {
output, err := service.SysDictData().Edit(ctx, &req.SysDictDataEditParam)
if err != nil {
return nil, err
}
return &v1.SysDictDataEditRes{
SysDictDataEditModel: *output,
}, nil
}
func (c *ControllerV1) SysDictDataDelete(ctx context.Context, req *v1.SysDictDataDeleteReq) (res *v1.SysDictDataDeleteRes, err error) {
_, err = service.SysDictData().Delete(ctx, &req.SysDictDataDeleteParam)
if err != nil {
return nil, err
}
return &v1.SysDictDataDeleteRes{
SysDictDataDeleteModel: model.SysDictDataDeleteModel{
DictCodes: req.SysDictDataDeleteParam.DictCodes,
},
}, nil
}
func (c *ControllerV1) SysDictDataView(ctx context.Context, req *v1.SysDictDataViewReq) (res *v1.SysDictDataViewRes, err error) {
output, err := service.SysDictData().View(ctx, &req.SysDictDataViewParam)
if err != nil {
return nil, err
}
return &v1.SysDictDataViewRes{
SysDictDataViewModel: *output,
}, nil
}
@@ -0,0 +1,118 @@
package system
import (
"context"
"github.com/gogf/gf/v2/errors/gcode"
"github.com/gogf/gf/v2/errors/gerror"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/response"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
func (c *ControllerV1) SysJobList(ctx context.Context, req *v1.SysJobListReq) (res *v1.SysJobListRes, err error) {
data, total, err := service.SysJob().List(ctx, &req.SysJobListParam, &req.PageInfo)
if err != nil {
return nil, err
}
return &v1.SysJobListRes{
Data: data,
PageResult: response.PageResult{
Page: req.Page,
PageSize: req.PageSize,
Total: total,
},
}, nil
}
func (c *ControllerV1) SysJobView(ctx context.Context, req *v1.SysJobViewReq) (res *v1.SysJobViewRes, err error) {
data, err := service.SysJob().View(ctx, req.JobId)
if err != nil {
return nil, err
}
return &v1.SysJobViewRes{
SysJobViewModel: *data,
}, nil
}
func (c *ControllerV1) SysJobAdd(ctx context.Context, req *v1.SysJobAddReq) (res *v1.SysJobAddRes, err error) {
lastInserId, err := service.SysJob().Add(ctx, &req.SysJobAddModel)
if err != nil {
return nil, err
}
data, err := service.SysJob().View(ctx, lastInserId)
if err != nil {
return nil, err
}
return &v1.SysJobAddRes{
SysJobViewModel: *data,
}, nil
}
func (c *ControllerV1) SysJobUpdate(ctx context.Context, req *v1.SysJobUpdateReq) (res *v1.SysJobUpdateRes, err error) {
effectedRow, err := service.SysJob().Update(ctx, &req.SysJobUpdateModel)
if err != nil {
return nil, err
}
if effectedRow == 0 {
return nil, gerror.NewCode(gcode.CodeInvalidParameter, "要更新的数据不存在")
}
data, err := service.SysJob().View(ctx, req.JobId)
if err != nil {
return nil, err
}
return &v1.SysJobUpdateRes{
SysJobViewModel: *data,
}, nil
}
func (c *ControllerV1) SysJobUpdateStatus(ctx context.Context, req *v1.SysJobUpdateStatusReq) (res *v1.SysJobUpdateStatusRes, err error) {
effectedRow, err := service.SysJob().UpdateStatus(ctx, &req.SysJobUpdateStatusModel)
if err != nil {
return nil, err
}
if effectedRow == 0 {
return nil, gerror.NewCode(gcode.CodeInvalidParameter, "要更新的数据不存在")
}
data, err := service.SysJob().View(ctx, req.JobId)
if err != nil {
return nil, err
}
return &v1.SysJobUpdateStatusRes{
SysJobViewModel: *data,
}, nil
}
func (c *ControllerV1) SysJobDelete(ctx context.Context, req *v1.SysJobDeleteReq) (res *v1.SysJobDeleteRes, err error) {
if len(req.JobIds) == 0 {
return nil, gerror.NewCode(gcode.CodeMissingParameter, "参数不能为空")
}
_, err = service.SysJob().Delete(ctx, &model.SysJobDeleteModel{JobIds: req.JobIds})
if err != nil {
return nil, err
}
return &v1.SysJobDeleteRes{
JobIds: req.JobIds,
}, nil
}
func (c *ControllerV1) SysJobExec(ctx context.Context, req *v1.SysJobExecReq) (res *v1.SysJobExecRes, err error) {
err = service.SysJob().Exec(ctx, req.JobId)
if err != nil {
return nil, err
}
return &v1.SysJobExecRes{
JobId: req.JobId,
}, nil
}
@@ -0,0 +1,33 @@
package system
import (
"context"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/response"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
func (c *ControllerV1) ListLogininfor(ctx context.Context, req *v1.ListLogininforReq) (res *v1.ListLogininforRes, err error) {
items, total, err := service.SysLogininfor().List(ctx, &req.SysLogininforListParam)
if err != nil {
return nil, err
}
return &v1.ListLogininforRes{
Items: items,
PageResult: response.PageResult{
Page: req.Page,
PageSize: req.PageSize,
Total: total,
},
}, nil
}
func (c *ControllerV1) DeleteLogininfor(ctx context.Context, req *v1.DeleteLogininforReq) (res *v1.DeleteLogininforRes, err error) {
out, err := service.SysLogininfor().Delete(ctx, &req.SysLogininforDeleteParam)
if err != nil {
return nil, err
}
return &v1.DeleteLogininforRes{
SysLogininforDeleteModel: *out,
}, nil
}
@@ -0,0 +1,62 @@
package system
import (
"context"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
"github.com/gogf/gf/v2/errors/gcode"
"github.com/gogf/gf/v2/errors/gerror"
)
func (c *ControllerV1) MenuAll(ctx context.Context, req *v1.MenuAllReq) (res *v1.MenuAllRes, err error) {
data, err := service.SysMenu().GetUserMenuTree(ctx)
return &data, err
}
func (c *ControllerV1) MenuList(ctx context.Context, req *v1.MenuListReq) (res *v1.MenuListRes, err error) {
data, total, err := service.SysMenu().GetTenantMenu(ctx, &req.SysMenuListParam)
return &v1.MenuListRes{
Data: data,
Total: total,
}, err
}
func (c *ControllerV1) MenuView(ctx context.Context, req *v1.MenuViewReq) (res *v1.MenuViewRes, err error) {
data, err := service.SysMenu().GetSysMenuView(ctx, req.MenuId)
if err != nil {
return nil, err
}
return &v1.MenuViewRes{
SysMenuViewModel: *data,
}, nil
}
func (c *ControllerV1) MenuAdd(ctx context.Context, req *v1.MenuAddReq) (res *v1.MenuAddRes, err error) {
data, err := service.SysMenu().AddSysMenu(ctx, &req.SysMenuAddModel)
if err != nil {
return nil, err
}
return &v1.MenuAddRes{
SysMenuViewModel: *data,
}, nil
}
func (c *ControllerV1) MenuUpdate(ctx context.Context, req *v1.MenuUpdateReq) (res *v1.MenuUpdateRes, err error) {
data, err := service.SysMenu().UpdateSysMenu(ctx, &req.SysMenuUpdateModel)
if err != nil {
return nil, err
}
return &v1.MenuUpdateRes{
SysMenuViewModel: *data,
}, nil
}
func (c *ControllerV1) MenuDelete(ctx context.Context, req *v1.MenuDeleteReq) (res *v1.MenuDeleteRes, err error) {
err = service.SysMenu().DeleteSysMenu(ctx, req.MenuId)
if err != nil {
return nil, err
}
return &v1.MenuDeleteRes{}, nil
}
func (c *ControllerV1) MenuTree(ctx context.Context, req *v1.MenuTreeReq) (res *v1.MenuTreeRes, err error) {
return nil, gerror.NewCode(gcode.CodeNotImplemented)
}
@@ -0,0 +1,59 @@
package system
import (
"context"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/response"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
"github.com/gogf/gf/v2/frame/g"
)
func (c *ControllerV1) SysNoticeList(ctx context.Context, req *v1.SysNoticeListReq) (res *v1.SysNoticeListRes, err error) {
g.Log().Infof(ctx, "SystemControl.SysNoticeList %+v", req)
items, total, err := service.SysNotice().List(ctx, req.SysNoticeListParam)
if err != nil {
return nil, err
}
res = &v1.SysNoticeListRes{
Items: items,
PageResult: response.PageResult{
Total: total,
Page: req.PageInfo.Page,
PageSize: req.PageInfo.PageSize,
},
}
return
}
func (c *ControllerV1) SysNoticeAdd(ctx context.Context, req *v1.SysNoticeAddReq) (res *v1.SysNoticeAddRes, err error) {
err = service.SysNotice().Add(ctx, req.SysNoticeAddParam)
if err != nil {
return nil, err
}
return
}
func (c *ControllerV1) SysNoticeEdit(ctx context.Context, req *v1.SysNoticeEditReq) (res *v1.SysNoticeEditRes, err error) {
err = service.SysNotice().Edit(ctx, req.SysNoticeEditParam)
if err != nil {
return nil, err
}
return
}
func (c *ControllerV1) SysNoticeDelete(ctx context.Context, req *v1.SysNoticeDeleteReq) (res *v1.SysNoticeDeleteRes, err error) {
err = service.SysNotice().Delete(ctx, req.SysNoticeDeleteParam)
if err != nil {
return nil, err
}
return
}
func (c *ControllerV1) SysNoticeView(ctx context.Context, req *v1.SysNoticeViewReq) (res *v1.SysNoticeViewRes, err error) {
data, err := service.SysNotice().View(ctx, req.SysNoticeViewParam)
if err != nil {
return nil, err
}
res = &v1.SysNoticeViewRes{
SysNoticeViewModel: data,
}
return
}
@@ -0,0 +1,36 @@
package system
import (
"context"
"errors"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/response"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
func (c *ControllerV1) SysUserOnlineList(ctx context.Context, req *v1.SysUserOnlineListReq) (res *v1.SysUserOnlineListRes, err error) {
items, total, err := service.SysUserOnline().List(ctx, &req.SysUserOnlineListParam, &req.PageInfo)
if err != nil {
return nil, err
}
return &v1.SysUserOnlineListRes{
Items: items,
PageResult: response.PageResult{
Page: req.Page,
PageSize: req.PageSize,
Total: total,
},
}, nil
}
func (c *ControllerV1) SysUserOnlineDelete(ctx context.Context, req *v1.SysUserOnlineDeleteReq) (res *v1.SysUserOnlineDeleteRes, err error) {
if len(req.Ids) == 0 {
return nil, errors.New("ids不能为空")
}
err = service.SysUserOnline().Delete(ctx, req.Ids)
if err != nil {
return nil, err
}
return &v1.SysUserOnlineDeleteRes{}, nil
}
@@ -0,0 +1,25 @@
package system
import (
"context"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/response"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
func (c *ControllerV1) GetOperLogList(ctx context.Context, req *v1.GetOperLogListReq) (res *v1.GetOperLogListRes, err error) {
items, total, err := service.SysOperLog().GetOperLogList(ctx, &req.SysOperLogListParam, &req.PageInfo)
if err != nil {
return nil, err
}
return &v1.GetOperLogListRes{
Items: items,
PageResult: response.PageResult{
Page: req.Page,
PageSize: req.PageSize,
Total: total,
},
}, nil
}
@@ -0,0 +1,43 @@
package system
import (
"context"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/response"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
func (c *ControllerV1) SysOssList(ctx context.Context, req *v1.SysOssListReq) (res *v1.SysOssListRes, err error) {
items, total, err := service.SysOss().List(ctx, &req.SysOssListParam, &req.PageInfo)
if err != nil {
return nil, err
}
res = &v1.SysOssListRes{
Items: items,
PageResult: response.PageResult{
Page: req.Page,
PageSize: req.PageSize,
Total: total,
},
}
return
}
func (c *ControllerV1) SysOssView(ctx context.Context, req *v1.SysOssViewReq) (res *v1.SysOssViewRes, err error) {
info, err := service.SysOss().View(ctx, req.SysOssViewParam)
if err != nil {
return nil, err
}
res = &v1.SysOssViewRes{
SysOssViewModel: info,
}
return
}
func (c *ControllerV1) SysOssDelete(ctx context.Context, req *v1.SysOssDeleteReq) (res *v1.SysOssDeleteRes, err error) {
_, err = service.SysOss().Delete(ctx, req.SysOssDeleteParam)
if err != nil {
return nil, err
}
res = &v1.SysOssDeleteRes{}
return
}
@@ -0,0 +1,61 @@
package system
import (
"context"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/response"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
func (c *ControllerV1) SysOssConfigList(ctx context.Context, req *v1.SysOssConfigListReq) (res *v1.SysOssConfigListRes, err error) {
items, total, err := service.SysOssConfig().List(ctx, req.SysOssConfigListParam)
if err != nil {
return nil, err
}
return &v1.SysOssConfigListRes{
Items: items,
PageResult: response.PageResult{
Total: total,
Page: req.Page,
PageSize: req.PageSize,
},
}, nil
}
func (c *ControllerV1) SysOssConfigView(ctx context.Context, req *v1.SysOssConfigViewReq) (res *v1.SysOssConfigViewRes, err error) {
item, err := service.SysOssConfig().View(ctx, req.SysOssConfigViewParam)
if err != nil {
return nil, err
}
return &v1.SysOssConfigViewRes{
SysOssConfigViewModel: item,
}, nil
}
func (c *ControllerV1) SysOssConfigAdd(ctx context.Context, req *v1.SysOssConfigAddReq) (res *v1.SysOssConfigAddRes, err error) {
item, err := service.SysOssConfig().Add(ctx, req.SysOssConfigAddParam)
if err != nil {
return nil, err
}
return &v1.SysOssConfigAddRes{
SysOssConfigAddModel: item,
}, nil
}
func (c *ControllerV1) SysOssConfigEdit(ctx context.Context, req *v1.SysOssConfigEditReq) (res *v1.SysOssConfigEditRes, err error) {
item, err := service.SysOssConfig().Edit(ctx, req.SysOssConfigEditParam)
if err != nil {
return nil, err
}
return &v1.SysOssConfigEditRes{
SysOssConfigEditModel: item,
}, nil
}
func (c *ControllerV1) SysOssConfigDelete(ctx context.Context, req *v1.SysOssConfigDeleteReq) (res *v1.SysOssConfigDeleteRes, err error) {
item, err := service.SysOssConfig().Delete(ctx, req.SysOssConfigDeleteParam)
if err != nil {
return nil, err
}
return &v1.SysOssConfigDeleteRes{
SysOssConfigDeleteModel: item,
}, nil
}
@@ -0,0 +1,67 @@
package system
import (
"context"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/response"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
func (c *ControllerV1) PostList(ctx context.Context, req *v1.PostListReq) (res *v1.PostListRes, err error) {
items, total, err := service.SysPost().List(ctx, req.SysPostListParam)
if err != nil {
return nil, err
}
return &v1.PostListRes{
PageResult: response.PageResult{
Page: req.Page,
PageSize: req.PageSize,
Total: total,
},
Data: items,
}, nil
}
func (c *ControllerV1) PostAdd(ctx context.Context, req *v1.PostAddReq) (res *v1.PostAddRes, err error) {
post, err := service.SysPost().Add(ctx, req.SysPostAddParam)
if err != nil {
return nil, err
}
return &v1.PostAddRes{
SysPostAddModel: post,
}, nil
}
func (c *ControllerV1) PostEdit(ctx context.Context, req *v1.PostEditReq) (res *v1.PostEditRes, err error) {
post, err := service.SysPost().Edit(ctx, req.SysPostEditParam)
if err != nil {
return nil, err
}
return &v1.PostEditRes{
SysPostEditModel: post,
}, nil
}
func (c *ControllerV1) PostDelete(ctx context.Context, req *v1.PostDeleteReq) (res *v1.PostDeleteRes, err error) {
post, err := service.SysPost().Delete(ctx, req.SysPostDeleteParam)
if err != nil {
return nil, err
}
return &v1.PostDeleteRes{
SysPostDeleteModel: post,
}, nil
}
func (c *ControllerV1) PostView(ctx context.Context, req *v1.PostViewReq) (res *v1.PostViewRes, err error) {
post, err := service.SysPost().View(ctx, req.SysPostViewParam)
if err != nil {
return nil, err
}
return &v1.PostViewRes{
SysPostViewModel: post,
}, nil
}
func (c *ControllerV1) PostExport(ctx context.Context, req *v1.PostExportReq) (res *v1.PostExportRes, err error) {
_, err = service.SysPost().Export(ctx, req.SysPostExportParam)
if err != nil {
return nil, err
}
return &v1.PostExportRes{}, nil
}
@@ -0,0 +1,94 @@
package system
import (
"context"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
// 获取登录二维码
func (c *ControllerV1) QrcodeLogin(ctx context.Context, req *v1.QrcodeLoginReq) (res *v1.QrcodeLoginRes, err error) {
qrcodeLoginModel, err := service.SysQrcode().GetQrcodeLogin(ctx)
if err != nil {
return nil, err
}
return &v1.QrcodeLoginRes{
QrcodeLoginModel: *qrcodeLoginModel,
}, nil
}
// 获取登录二维码扫码结果
func (c *ControllerV1) QrcodeLoginStatus(ctx context.Context, req *v1.QrcodeLoginStatusReq) (res *v1.QrcodeLoginStatusRes, err error) {
qrcodeLoginModel, err := service.SysQrcode().GetQrcodeLoginStatus(ctx, req.TempUserId)
if err != nil {
return nil, err
}
return &v1.QrcodeLoginStatusRes{
QrcodeLoginModel: *qrcodeLoginModel,
}, nil
}
// 获取绑定二维码
func (c *ControllerV1) QrcodeBind(ctx context.Context, req *v1.QrcodeBindReq) (res *v1.QrcodeBindRes, err error) {
qrcodeBindModel, err := service.SysQrcode().GetQrcodeBind(ctx)
if err != nil {
return nil, err
}
return &v1.QrcodeBindRes{
QrcodeCacheModel: *qrcodeBindModel,
}, nil
}
// 获取绑定二维码扫码结果
func (c *ControllerV1) QrcodeBindStatus(ctx context.Context, req *v1.QrcodeBindStatusReq) (res *v1.QrcodeBindStatusRes, err error) {
qrcodeBindStatusModel, err := service.SysQrcode().GetQrcodeBindStatus(ctx)
if err != nil {
return nil, err
}
return &v1.QrcodeBindStatusRes{
QrcodeBindStatusModel: *qrcodeBindStatusModel,
}, nil
}
// 扫码成功回调
func (c *ControllerV1) QrcodeScanCallback(ctx context.Context, req *v1.QrcodeScanCallbackReq) (res *v1.QrcodeScanCallbackRes, err error) {
err = service.SysQrcode().QrcodeScanCallback(ctx, &req.QrcodeScanCallbackParam)
if err != nil {
return nil, err
}
return &v1.QrcodeScanCallbackRes{}, nil
}
// 注册并关联OpenId
func (c *ControllerV1) QrcodeRegisterAndBindOpenId(ctx context.Context, req *v1.QrcodeRegisterAndBindOpenIdReq) (res *v1.QrcodeRegisterAndBindOpenIdRes, err error) {
qrcodeLoginAndBindOpenIdModel, err := service.SysQrcode().QrcodeRegisterAndBindOpenId(ctx, &req.QrcodeRegisterAndBindOpenIdParam)
if err != nil {
return nil, err
}
return &v1.QrcodeRegisterAndBindOpenIdRes{
QrcodeLoginAndBindOpenIdModel: *qrcodeLoginAndBindOpenIdModel,
}, nil
}
// 登录并关联OpenId
func (c *ControllerV1) QrcodeLoginAndBindOpenId(ctx context.Context, req *v1.QrcodeLoginAndBindOpenIdReq) (res *v1.QrcodeLoginAndBindOpenIdRes, err error) {
qrcodeLoginAndBindOpenIdModel, err := service.SysQrcode().QrcodeLoginAndBindOpenId(ctx, &req.QrcodeLoginAndBindOpenIdParam)
if err != nil {
return nil, err
}
return &v1.QrcodeLoginAndBindOpenIdRes{
QrcodeLoginAndBindOpenIdModel: *qrcodeLoginAndBindOpenIdModel,
}, nil
}
// 扫码后选择用户登录
func (c *ControllerV1) QrcodeLoginSelectUser(ctx context.Context, req *v1.QrcodeLoginSelectUserReq) (res *v1.QrcodeLoginSelectUserRes, err error) {
qrcodeLoginAndBindOpenIdModel, err := service.SysQrcode().QrcodeLoginSelectUserId(ctx, &req.QrcodeLoginSelectUserIdParam)
if err != nil {
return nil, err
}
return &v1.QrcodeLoginSelectUserRes{
QrcodeLoginAndBindOpenIdModel: *qrcodeLoginAndBindOpenIdModel,
}, nil
}
@@ -0,0 +1,69 @@
package system
import (
"context"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/response"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
func (c *ControllerV1) RoleList(ctx context.Context, req *v1.RoleListReq) (res *v1.RoleListRes, err error) {
data, total, err := service.SysRole().List(ctx, &req.SysRoleListParam)
if err != nil {
return nil, err
}
return &v1.RoleListRes{
PageResult: response.PageResult{
Page: req.Page,
PageSize: req.PageSize,
Total: total,
},
Data: data,
}, nil
}
func (c *ControllerV1) RoleAdd(ctx context.Context, req *v1.RoleAddReq) (res *v1.RoleAddRes, err error) {
role, err := service.SysRole().Add(ctx, &req.SysRoleAddParam)
if err != nil {
return nil, err
}
return &v1.RoleAddRes{
SysRoleAddModel: *role,
}, nil
}
func (c *ControllerV1) RoleEdit(ctx context.Context, req *v1.RoleEditReq) (res *v1.RoleEditRes, err error) {
role, err := service.SysRole().Edit(ctx, &req.SysRoleEditParam)
if err != nil {
return nil, err
}
return &v1.RoleEditRes{
SysRoleEditModel: *role,
}, nil
}
func (c *ControllerV1) RoleDelete(ctx context.Context, req *v1.RoleDeleteReq) (res *v1.RoleDeleteRes, err error) {
role, err := service.SysRole().Delete(ctx, &req.SysRoleDeleteParam)
if err != nil {
return nil, err
}
return &v1.RoleDeleteRes{
SysRoleDeleteModel: *role,
}, nil
}
func (c *ControllerV1) RoleView(ctx context.Context, req *v1.RoleViewReq) (res *v1.RoleViewRes, err error) {
record, err := service.SysRole().View(ctx, &req.SysRoleViewParam)
if err != nil {
return nil, err
}
return &v1.RoleViewRes{
SysRoleViewModel: *record,
}, nil
}
func (c *ControllerV1) RoleDataScopeEdit(ctx context.Context, req *v1.RoleDataScopeEditReq) (res *v1.RoleDataScopeEditRes, err error) {
err = service.SysRole().EditRoleDataScope(ctx, &req.SysRoleDataScopeEditParam)
if err != nil {
return nil, err
}
return &v1.RoleDataScopeEditRes{}, nil
}
@@ -0,0 +1,34 @@
package system
import (
"context"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/response"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
func (c *ControllerV1) SysSocialList(ctx context.Context, req *v1.SysSocialListReq) (res *v1.SysSocialListRes, err error) {
items, total, err := service.SysSocial().List(ctx, &req.SysSocialListParam, &req.PageInfo)
if err != nil {
return nil, err
}
res = &v1.SysSocialListRes{
Items: items,
PageResult: response.PageResult{
Page: req.Page,
PageSize: req.PageSize,
Total: total,
},
}
return res, nil
}
// 删除绑定关系
func (c *ControllerV1) SysSocialDelete(ctx context.Context, req *v1.SysSocialDeleteReq) (res *v1.SysSocialDeleteRes, err error) {
err = service.SysSocial().Delete(ctx, req.Id)
if err != nil {
return nil, err
}
return &v1.SysSocialDeleteRes{}, nil
}
@@ -0,0 +1,141 @@
package system
import (
"context"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/response"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
func (c *ControllerV1) SysTenantList(ctx context.Context, req *v1.SysTenantListReq) (res *v1.SysTenantListRes, err error) {
items, total, err := service.SysTenant().List(ctx, req.SysTenantListParam)
if err != nil {
return nil, err
}
res = &v1.SysTenantListRes{
PageResult: response.PageResult{
Page: req.Page,
PageSize: req.PageSize,
Total: total,
},
Items: items,
}
return
}
func (c *ControllerV1) SysTenantPackageList(ctx context.Context, req *v1.SysTenantPackageListReq) (res *v1.SysTenantPackageListRes, err error) {
items, total, err := service.SysTenantPackage().List(ctx, &req.SysTenantPackageListParam)
if err != nil {
return nil, err
}
res = &v1.SysTenantPackageListRes{
PageResult: response.PageResult{
Page: req.Page,
PageSize: req.PageSize,
Total: total,
},
Items: items,
}
return
}
func (c *ControllerV1) SysTenantAdd(ctx context.Context, req *v1.SysTenantAddReq) (res *v1.SysTenantAddRes, err error) {
data, err := service.SysTenant().Add(ctx, req.SysTenantAddParam)
if err != nil {
return nil, err
}
return &v1.SysTenantAddRes{
SysTenantAddModel: data,
}, nil
}
func (c *ControllerV1) SysTenantEdit(ctx context.Context, req *v1.SysTenantEditReq) (res *v1.SysTenantEditRes, err error) {
data, err := service.SysTenant().Edit(ctx, req.SysTenantEditParam)
if err != nil {
return nil, err
}
return &v1.SysTenantEditRes{
SysTenantEditModel: data,
}, nil
}
func (c *ControllerV1) SysTenantDelete(ctx context.Context, req *v1.SysTenantDeleteReq) (res *v1.SysTenantDeleteRes, err error) {
data, err := service.SysTenant().Delete(ctx, req.SysTenantDeleteParam)
if err != nil {
return nil, err
}
return &v1.SysTenantDeleteRes{
SysTenantDeleteModel: data,
}, nil
}
func (c *ControllerV1) SysTenantStatus(ctx context.Context, req *v1.SysTenantStatusReq) (res *v1.SysTenantStatusRes, err error) {
data, err := service.SysTenant().Status(ctx, req.SysTenantStatusParam)
if err != nil {
return nil, err
}
return &v1.SysTenantStatusRes{
SysTenantStatusModel: data,
}, nil
}
func (c *ControllerV1) SysTenantView(ctx context.Context, req *v1.SysTenantViewReq) (res *v1.SysTenantViewRes, err error) {
data, err := service.SysTenant().View(ctx, req.SysTenantViewParam)
if err != nil {
return nil, err
}
return &v1.SysTenantViewRes{
SysTenantViewModel: data,
}, nil
}
func (c *ControllerV1) SysTenantPackageView(ctx context.Context, req *v1.SysTenantPackageViewReq) (res *v1.SysTenantPackageViewRes, err error) {
data, err := service.SysTenantPackage().View(ctx, req.SysTenantPackageViewParam)
if err != nil {
return nil, err
}
return &v1.SysTenantPackageViewRes{
SysTenantPackageViewModel: data,
}, nil
}
func (c *ControllerV1) SysTenantPackageStatus(ctx context.Context, req *v1.SysTenantPackageStatusReq) (res *v1.SysTenantPackageStatusRes, err error) {
data, err := service.SysTenantPackage().Status(ctx, req.SysTenantPackageStatusParam)
if err != nil {
return nil, err
}
return &v1.SysTenantPackageStatusRes{
SysTenantPackageStatusModel: data,
}, nil
}
func (c *ControllerV1) SysTenantPackageAdd(ctx context.Context, req *v1.SysTenantPackageAddReq) (res *v1.SysTenantPackageAddRes, err error) {
data, err := service.SysTenantPackage().Add(ctx, req.SysTenantPackageAddParam)
if err != nil {
return nil, err
}
return &v1.SysTenantPackageAddRes{
SysTenantPackageAddModel: data,
}, nil
}
func (c *ControllerV1) SysTenantPackageEdit(ctx context.Context, req *v1.SysTenantPackageEditReq) (res *v1.SysTenantPackageEditRes, err error) {
data, err := service.SysTenantPackage().Edit(ctx, req.SysTenantPackageEditParam)
if err != nil {
return nil, err
}
return &v1.SysTenantPackageEditRes{
SysTenantPackageEditModel: data,
}, nil
}
func (c *ControllerV1) SysTenantPackageDelete(ctx context.Context, req *v1.SysTenantPackageDeleteReq) (res *v1.SysTenantPackageDeleteRes, err error) {
data, err := service.SysTenantPackage().Delete(ctx, req.SysTenantPackageDeleteParam)
if err != nil {
return nil, err
}
return &v1.SysTenantPackageDeleteRes{
SysTenantPackageDeleteModel: data,
}, nil
}
func (c *ControllerV1) SysTenantSyncMenu(ctx context.Context, req *v1.SysTenantSyncMenuReq) (res *v1.SysTenantSyncMenuRes, err error) {
err = service.SysTenant().SyncTenantMenu(ctx, req.TenantId)
if err != nil {
return nil, err
}
return &v1.SysTenantSyncMenuRes{
SysTenantSyncMenuModel: &model.SysTenantSyncMenuModel{},
}, nil
}
@@ -0,0 +1,236 @@
package system
import (
"context"
"github.com/gogf/gf/v2/errors/gcode"
"github.com/gogf/gf/v2/errors/gerror"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/util/gconv"
v1 "git.5iot.com/iotlcm-public/iotlcm-app/api/system/v1"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/library/contexts"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/request"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/response"
"git.5iot.com/iotlcm-public/iotlcm-app/internal/service"
)
func (c *ControllerV1) UserInfo(ctx context.Context, req *v1.UserInfoReq) (res *v1.UserInfoRes, err error) {
// 获取token
userId := contexts.GetUserId(ctx)
if userId == 0 {
return nil, gerror.NewCode(gcode.CodeSecurityReason)
}
// 获取用户信息
user, err := service.SysUser().GetUserById(ctx, userId)
if err != nil {
return nil, err
}
menus, err := service.SysMenu().GetUserMenuTree(ctx)
if err != nil {
return nil, err
}
homePath := ""
firstMenu := "404"
if len(menus) > 0 {
for _, menu := range menus {
firstMenu = menu.Path
if len(menu.Children) == 0 {
break
}
for _, menu2 := range menu.Children {
firstMenu = firstMenu + "/" + menu2.Path
if len(menu2.Children) == 0 {
break
}
for _, menu3 := range menu2.Children {
firstMenu = firstMenu + "/" + menu3.Path
if len(menu3.Children) == 0 {
break
}
for _, menu4 := range menu3.Children {
firstMenu = firstMenu + "/" + menu4.Path
if len(menu4.Children) == 0 {
break
}
for _, menu5 := range menu4.Children {
firstMenu = firstMenu + "/" + menu5.Path
if len(menu5.Children) == 0 {
break
}
for _, menu6 := range menu5.Children {
firstMenu = firstMenu + "/" + menu6.Path
if len(menu6.Children) == 0 {
break
}
}
}
}
}
}
}
}
g.Log().Debugf(ctx, "firstMenu: %s", firstMenu)
if homePath == "" {
homePath = "/" + firstMenu
}
return &v1.UserInfoRes{
UserInfo: v1.UserInfo{
Id: user.UserId,
Username: user.UserName,
Nickname: user.NickName,
Avatar: user.Avatar,
Email: user.Email,
HomePath: homePath,
},
}, nil
}
func (c *ControllerV1) UserList(ctx context.Context, req *v1.UserListReq) (res *v1.UserListRes, err error) {
// 获取用户列表
users, total, err := service.SysUser().List(ctx, &req.PageInfo, &req.UserListParam)
if err != nil {
return nil, err
}
return &v1.UserListRes{
Data: users,
PageResult: response.PageResult{
Page: req.Page,
PageSize: req.PageSize,
Total: total,
},
}, nil
}
func (c *ControllerV1) AddUser(ctx context.Context, req *v1.AddUserReq) (res *v1.AddUserRes, err error) {
data, err := service.SysUser().AddUser(ctx, &req.SysUserAddModel)
if err != nil {
return nil, err
}
return &v1.AddUserRes{
Data: data,
}, nil
}
func (c *ControllerV1) UserProfile(ctx context.Context, req *v1.UserProfileReq) (res *v1.UserProfileRes, err error) {
user, err := service.SysUser().Profile(ctx)
if err != nil {
return nil, err
}
return &v1.UserProfileRes{
User: user,
}, nil
}
func (c *ControllerV1) UpdateCurrentUser(ctx context.Context, req *v1.UpdateCurrentUserReq) (res *v1.UpdateCurrentUserRes, err error) {
user, err := service.SysUser().UpdateCurrentUser(ctx, &req.UpdateCurrentUserModel)
if err != nil {
return nil, err
}
return &v1.UpdateCurrentUserRes{
UserInfo: v1.UserInfo{
Id: user.UserId,
Username: user.UserName,
Nickname: user.NickName,
Avatar: user.Avatar,
Email: user.Email,
},
}, nil
}
func (c *ControllerV1) UpdateCurrentUserPassword(ctx context.Context, req *v1.UpdateCurrentUserPasswordReq) (res *v1.UpdateCurrentUserPasswordRes, err error) {
err = service.SysUser().UpdateCurrentUserPassword(ctx, &req.UpdateCurrentUserPasswordModel)
if err != nil {
return nil, err
}
return &v1.UpdateCurrentUserPasswordRes{}, nil
}
func (c *ControllerV1) UpdateUser(ctx context.Context, req *v1.UpdateUserReq) (res *v1.UpdateUserRes, err error) {
err = service.SysUser().UpdateUser(ctx, &req.SysUserUpdateModel)
if err != nil {
return nil, err
}
user, err := service.SysUser().GetUserById(ctx, req.UserId)
if err != nil {
return nil, err
}
return &v1.UpdateUserRes{
SysUserViewModel: *user,
}, nil
}
func (c *ControllerV1) DeleteUser(ctx context.Context, req *v1.DeleteUserReq) (res *v1.DeleteUserRes, err error) {
if req.UserId != 0 {
err = service.SysUser().DeleteUser(ctx, []int64{req.UserId})
} else {
err = service.SysUser().DeleteUser(ctx, req.UserIds)
}
if err != nil {
return nil, err
}
return &v1.DeleteUserRes{}, nil
}
func (c *ControllerV1) GetUser(ctx context.Context, req *v1.GetUserReq) (res *v1.GetUserRes, err error) {
// 如果调用方传入 userId == 0,则不返回错误,直接返回空的用户视图结构
if req.UserId == 0 {
return &v1.GetUserRes{
SysUserViewModel: model.SysUserViewModel{},
}, nil
}
user, err := service.SysUser().GetUserById(ctx, req.UserId)
if err != nil {
return nil, err
}
return &v1.GetUserRes{
SysUserViewModel: *user,
}, nil
}
func (c *ControllerV1) ResetPassword(ctx context.Context, req *v1.ResetPasswordReq) (res *v1.ResetPasswordRes, err error) {
err = service.SysUser().ResetPassword(ctx, req.UserId, req.Password)
if err != nil {
return nil, err
}
return &v1.ResetPasswordRes{}, nil
}
func (c *ControllerV1) GetUserListByDeptId(ctx context.Context, req *v1.GetUserListByDeptIdReq) (res *v1.GetUserListByDeptIdRes, err error) {
users, total, err := service.SysUser().List(ctx, &request.PageInfo{
Page: req.Page,
PageSize: req.PageSize,
}, &model.UserListParam{
DeptId: req.DeptId,
})
if err != nil {
return nil, err
}
miniUsers := make([]*model.SysUserMiniModel, 0)
gconv.Structs(users, &miniUsers)
return &v1.GetUserListByDeptIdRes{
Items: miniUsers,
PageResult: response.PageResult{
Page: req.Page,
PageSize: req.PageSize,
Total: total,
},
}, nil
}
// UserRegister 用户注册
func (c *ControllerV1) UserRegister(ctx context.Context, req *v1.UserRegisterReq) (res *v1.UserRegisterRes, err error) {
err = service.SysUser().Register(ctx, &req.SysUserRegisterModel)
if err != nil {
return nil, err
}
return &v1.UserRegisterRes{}, nil
}
// UserStatus 更新用户状态
func (c *ControllerV1) UserStatus(ctx context.Context, req *v1.UserStatusReq) (res *v1.UserStatusRes, err error) {
err = service.SysUser().Status(ctx, &req.SysUserStatusParam)
if err != nil {
return nil, err
}
return &v1.UserStatusRes{}, nil
}