From a89c86023e14c5e999803897442592ba0efb4938 Mon Sep 17 00:00:00 2001 From: tianjun Date: Wed, 18 Jan 2023 16:00:50 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4xorm=E5=B1=82=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++- docs/images/sql转xorm1.png | Bin 0 -> 363496 bytes modules/core/api/v1/config_api.go | 6 +-- modules/core/api/v1/cron_job_api.go | 8 +-- modules/core/api/v1/dept_api.go | 8 +-- modules/core/api/v1/dict_data_api.go | 6 +-- modules/core/api/v1/dict_type_api.go | 6 +-- modules/core/api/v1/login_api.go | 4 +- modules/core/api/v1/menu_api.go | 6 +-- modules/core/api/v1/notice_api.go | 6 +-- modules/core/api/v1/post_api.go | 6 +-- modules/core/api/v1/response/user_response.go | 46 ++++++++-------- modules/core/api/v1/role_api.go | 10 ++-- modules/core/api/v1/user_api.go | 12 ++--- modules/core/cache/config_cache.go | 2 +- modules/core/cache/dict_cache.go | 2 +- modules/core/dao/config_dao.go | 49 ++++++++--------- modules/core/dao/cron_job_dao.go | 39 +++++++------- modules/core/dao/dept_dao.go | 43 +++++++-------- modules/core/dao/dict_data_dao.go | 49 ++++++++--------- modules/core/dao/dict_type_dao.go | 37 ++++++------- modules/core/dao/log_dao.go | 13 ++--- modules/core/dao/login_info_dao.go | 13 ++--- modules/core/dao/menu_dao.go | 49 ++++++++--------- modules/core/dao/notice_dao.go | 27 +++++----- modules/core/dao/post_dao.go | 47 ++++++++-------- modules/core/dao/role_dao.go | 51 +++++++++--------- modules/core/dao/role_menu_dao.go | 13 ++--- modules/core/dao/user_dao.go | 49 ++++++++--------- modules/core/dao/user_post_dao.go | 15 +++--- modules/core/dao/user_role_dao.go | 23 ++++---- .../core/{entity => dataobject}/sys_config.go | 2 +- .../{entity => dataobject}/sys_cron_job.go | 2 +- .../core/{entity => dataobject}/sys_dept.go | 2 +- .../{entity => dataobject}/sys_dict_data.go | 2 +- .../{entity => dataobject}/sys_dict_type.go | 2 +- .../core/{entity => dataobject}/sys_log.go | 2 +- .../{entity => dataobject}/sys_login_info.go | 2 +- .../core/{entity => dataobject}/sys_menu.go | 2 +- .../core/{entity => dataobject}/sys_notice.go | 2 +- .../core/{entity => dataobject}/sys_post.go | 2 +- .../core/{entity => dataobject}/sys_role.go | 2 +- .../{entity => dataobject}/sys_role_menu.go | 2 +- .../core/{entity => dataobject}/sys_user.go | 2 +- .../{entity => dataobject}/sys_user_post.go | 2 +- .../{entity => dataobject}/sys_user_role.go | 2 +- modules/core/service/config_service.go | 18 +++---- modules/core/service/cron_job_service.go | 14 ++--- modules/core/service/dept_service.go | 14 ++--- modules/core/service/dict_data_service.go | 22 ++++---- modules/core/service/dict_type_service.go | 18 +++---- modules/core/service/log_service.go | 8 +-- modules/core/service/login_info_service.go | 6 +-- modules/core/service/menu_service.go | 16 +++--- modules/core/service/notice_service.go | 10 ++-- modules/core/service/permission_service.go | 6 +-- modules/core/service/post_service.go | 18 +++---- modules/core/service/role_service.go | 30 +++++------ modules/core/service/user_service.go | 20 +++---- modules/demo/dataobject/demo_student.go | 19 +++++++ modules/{core/dao/index.go => xorm.go} | 12 ++--- pkg/cache/index.go | 12 ++--- pkg/common/index.go | 2 +- pkg/jwt/jwt_handler.go | 4 +- pkg/tree/tree_dept/tree_dept.go | 8 +-- pkg/tree/tree_menu/tree_menu.go | 12 ++--- pkg/util/token_util.go | 8 +-- 67 files changed, 500 insertions(+), 460 deletions(-) create mode 100644 docs/images/sql转xorm1.png rename modules/core/{entity => dataobject}/sys_config.go (98%) rename modules/core/{entity => dataobject}/sys_cron_job.go (98%) rename modules/core/{entity => dataobject}/sys_dept.go (98%) rename modules/core/{entity => dataobject}/sys_dict_data.go (98%) rename modules/core/{entity => dataobject}/sys_dict_type.go (98%) rename modules/core/{entity => dataobject}/sys_log.go (95%) rename modules/core/{entity => dataobject}/sys_login_info.go (98%) rename modules/core/{entity => dataobject}/sys_menu.go (99%) rename modules/core/{entity => dataobject}/sys_notice.go (98%) rename modules/core/{entity => dataobject}/sys_post.go (98%) rename modules/core/{entity => dataobject}/sys_role.go (99%) rename modules/core/{entity => dataobject}/sys_role_menu.go (92%) rename modules/core/{entity => dataobject}/sys_user.go (98%) rename modules/core/{entity => dataobject}/sys_user_post.go (90%) rename modules/core/{entity => dataobject}/sys_user_role.go (91%) create mode 100644 modules/demo/dataobject/demo_student.go rename modules/{core/dao/index.go => xorm.go} (92%) diff --git a/README.md b/README.md index 59862e9..8debea4 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ gitee地址: https://gitee.com/odboy/cutego-ui eg. cutego - school + student dataobject dao service @@ -88,6 +88,12 @@ cutego router [模块名称] entity -> dao -> service -> api -> router ``` +#### SQL转换器 +```text +http://www.gotool.top/handlesql/sql2xorm +``` +![img.png](docs/images/sql转xorm1.png) + #### 交叉编译, 产出可执行程序 diff --git a/docs/images/sql转xorm1.png b/docs/images/sql转xorm1.png new file mode 100644 index 0000000000000000000000000000000000000000..f2c0bd1bf95e56dc19971f7d531d286ddc6514a0 GIT binary patch literal 363496 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 literal 0 HcmV?d00001 diff --git a/modules/core/api/v1/config_api.go b/modules/core/api/v1/config_api.go index 15b58cd..8009f5a 100644 --- a/modules/core/api/v1/config_api.go +++ b/modules/core/api/v1/config_api.go @@ -3,7 +3,7 @@ package v1 import ( "cutego/modules/core/api/v1/request" cache2 "cutego/modules/core/cache" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" service2 "cutego/modules/core/service" "cutego/pkg/cache" "cutego/pkg/excels" @@ -55,7 +55,7 @@ func (a ConfigApi) List(c *gin.Context) { // Add 添加数据 func (a ConfigApi) Add(c *gin.Context) { - config := entity.SysConfig{} + config := dataobject.SysConfig{} if c.Bind(&config) != nil { resp.ParamError(c) return @@ -83,7 +83,7 @@ func (a ConfigApi) Get(c *gin.Context) { // Edit 修改数据 func (a ConfigApi) Edit(c *gin.Context) { - config := entity.SysConfig{} + config := dataobject.SysConfig{} if c.Bind(&config) != nil { resp.ParamError(c) return diff --git a/modules/core/api/v1/cron_job_api.go b/modules/core/api/v1/cron_job_api.go index 11823ec..713a434 100644 --- a/modules/core/api/v1/cron_job_api.go +++ b/modules/core/api/v1/cron_job_api.go @@ -3,7 +3,7 @@ package v1 import ( "cutego/modules/core/api/v1/request" "cutego/modules/core/api/v1/response" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/modules/core/service" "cutego/pkg/common" "cutego/pkg/cronjob" @@ -42,7 +42,7 @@ func (a CronJobApi) GetById(c *gin.Context) { // Edit 修改定时任务 func (a CronJobApi) Edit(c *gin.Context) { - record := entity.SysCronJob{} + record := dataobject.SysCronJob{} if c.Bind(&record) != nil { resp.ParamError(c) return @@ -56,7 +56,7 @@ func (a CronJobApi) Edit(c *gin.Context) { // Add 新增定时任务 func (a CronJobApi) Add(c *gin.Context) { - dto := entity.SysCronJob{} + dto := dataobject.SysCronJob{} if c.Bind(&dto) != nil { resp.ParamError(c) return @@ -88,7 +88,7 @@ func (a CronJobApi) Remove(c *gin.Context) { // ChangeStatus 改变任务状态 func (a CronJobApi) ChangeStatus(c *gin.Context) { - record := entity.SysCronJob{} + record := dataobject.SysCronJob{} if c.Bind(&record) != nil { resp.ParamError(c) return diff --git a/modules/core/api/v1/dept_api.go b/modules/core/api/v1/dept_api.go index 7e99c37..9bc9434 100644 --- a/modules/core/api/v1/dept_api.go +++ b/modules/core/api/v1/dept_api.go @@ -2,7 +2,7 @@ package v1 import ( "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/modules/core/service" "cutego/pkg/resp" "cutego/pkg/tree/tree_dept" @@ -64,7 +64,7 @@ func (a DeptApi) ExcludeChild(c *gin.Context) { } list := a.deptService.FindDeptList(request.DeptQuery{}) var depts = *list - deptList := make([]entity.SysDept, 0) + deptList := make([]dataobject.SysDept, 0) for _, dept := range depts { if dept.DeptId == deptId || strings.Contains(dept.Ancestors, strconv.Itoa(deptId)) { continue @@ -87,7 +87,7 @@ func (a DeptApi) GetInfo(c *gin.Context) { // Add 添加部门 func (a DeptApi) Add(c *gin.Context) { - dept := entity.SysDept{} + dept := dataobject.SysDept{} if c.Bind(&dept) != nil { resp.ParamError(c) return @@ -134,7 +134,7 @@ func (a DeptApi) Delete(c *gin.Context) { // Edit 修改部门数据接口 func (a DeptApi) Edit(c *gin.Context) { - dept := entity.SysDept{} + dept := dataobject.SysDept{} if c.Bind(&dept) != nil { resp.ParamError(c) return diff --git a/modules/core/api/v1/dict_data_api.go b/modules/core/api/v1/dict_data_api.go index fea8aea..29630cb 100644 --- a/modules/core/api/v1/dict_data_api.go +++ b/modules/core/api/v1/dict_data_api.go @@ -3,7 +3,7 @@ package v1 import ( "cutego/modules/core/api/v1/request" "cutego/modules/core/api/v1/response" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/modules/core/service" "cutego/pkg/excels" "cutego/pkg/file" @@ -66,7 +66,7 @@ func (a DictDataApi) Get(c *gin.Context) { // Add 添加字典数据 func (a DictDataApi) Add(c *gin.Context) { - data := entity.SysDictData{} + data := dataobject.SysDictData{} if c.Bind(&data) != nil { resp.ParamError(c) return @@ -81,7 +81,7 @@ func (a DictDataApi) Add(c *gin.Context) { // Edit 编辑字典数据 func (a DictDataApi) Edit(c *gin.Context) { - data := entity.SysDictData{} + data := dataobject.SysDictData{} if c.Bind(&data) != nil { resp.ParamError(c) return diff --git a/modules/core/api/v1/dict_type_api.go b/modules/core/api/v1/dict_type_api.go index ebdfe4b..063e9c2 100644 --- a/modules/core/api/v1/dict_type_api.go +++ b/modules/core/api/v1/dict_type_api.go @@ -2,7 +2,7 @@ package v1 import ( "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/modules/core/service" "cutego/pkg/cache" "cutego/pkg/excels" @@ -43,7 +43,7 @@ func (a DictTypeApi) Get(c *gin.Context) { // Edit 修改字典类型 func (a DictTypeApi) Edit(c *gin.Context) { - dictType := entity.SysDictType{} + dictType := dataobject.SysDictType{} if c.Bind(&dictType) != nil { resp.ParamError(c) return @@ -63,7 +63,7 @@ func (a DictTypeApi) Edit(c *gin.Context) { // Add 新增字典类型 func (a DictTypeApi) Add(c *gin.Context) { - dictType := entity.SysDictType{} + dictType := dataobject.SysDictType{} if c.Bind(&dictType) != nil { resp.ParamError(c) return diff --git a/modules/core/api/v1/login_api.go b/modules/core/api/v1/login_api.go index 88a6c6d..8cffaae 100644 --- a/modules/core/api/v1/login_api.go +++ b/modules/core/api/v1/login_api.go @@ -3,7 +3,7 @@ package v1 import ( request2 "cutego/modules/core/api/v1/request" cache2 "cutego/modules/core/cache" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/modules/core/service" "cutego/pkg/common" "cutego/pkg/page" @@ -56,7 +56,7 @@ func (a LoginApi) handleLoginInfo(c *gin.Context, body request2.LoginBody, login location = a.loginInfoService.GetLocationByIp(clientIp).Country } - a.loginInfoService.Save(entity.SysLoginInfo{ + a.loginInfoService.Save(dataobject.SysLoginInfo{ UserName: body.UserName, IpAddr: clientIp, LoginLocation: location, diff --git a/modules/core/api/v1/menu_api.go b/modules/core/api/v1/menu_api.go index b088d5e..42bae33 100644 --- a/modules/core/api/v1/menu_api.go +++ b/modules/core/api/v1/menu_api.go @@ -2,7 +2,7 @@ package v1 import ( "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/modules/core/service" "cutego/pkg/resp" "cutego/pkg/tree/tree_menu" @@ -68,7 +68,7 @@ func (a MenuApi) TreeSelect(c *gin.Context) { // Add 添加菜单数据 func (a MenuApi) Add(c *gin.Context) { - menu := entity.SysMenu{} + menu := dataobject.SysMenu{} if c.Bind(&menu) != nil { resp.ParamError(c, "参数绑定异常") return @@ -82,7 +82,7 @@ func (a MenuApi) Add(c *gin.Context) { // Edit 修改菜单数据 func (a MenuApi) Edit(c *gin.Context) { - menu := entity.SysMenu{} + menu := dataobject.SysMenu{} if c.Bind(&menu) != nil { resp.ParamError(c) return diff --git a/modules/core/api/v1/notice_api.go b/modules/core/api/v1/notice_api.go index 842fbd4..6104eb4 100644 --- a/modules/core/api/v1/notice_api.go +++ b/modules/core/api/v1/notice_api.go @@ -2,7 +2,7 @@ package v1 import ( "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/modules/core/service" "cutego/pkg/page" "cutego/pkg/resp" @@ -34,7 +34,7 @@ func (a NoticeApi) List(c *gin.Context) { // Add 添加公告 func (a NoticeApi) Add(c *gin.Context) { - notice := entity.SysNotice{} + notice := dataobject.SysNotice{} if c.Bind(¬ice) != nil { resp.ParamError(c) return @@ -71,7 +71,7 @@ func (a NoticeApi) Get(c *gin.Context) { // Edit 修改 func (a NoticeApi) Edit(c *gin.Context) { - notice := entity.SysNotice{} + notice := dataobject.SysNotice{} if c.Bind(¬ice) != nil { resp.ParamError(c) return diff --git a/modules/core/api/v1/post_api.go b/modules/core/api/v1/post_api.go index 15ec9ac..6ca2076 100644 --- a/modules/core/api/v1/post_api.go +++ b/modules/core/api/v1/post_api.go @@ -2,7 +2,7 @@ package v1 import ( "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/modules/core/service" "cutego/pkg/excels" "cutego/pkg/file" @@ -38,7 +38,7 @@ func (a PostApi) List(c *gin.Context) { // Add 新增岗位 func (a PostApi) Add(c *gin.Context) { - post := entity.SysPost{} + post := dataobject.SysPost{} if c.Bind(&post) != nil { resp.ParamError(c) return @@ -96,7 +96,7 @@ func (a PostApi) Delete(c *gin.Context) { // Edit 修改岗位数据接口 func (a PostApi) Edit(c *gin.Context) { - post := entity.SysPost{} + post := dataobject.SysPost{} if c.Bind(&post) != nil { resp.ParamError(c) return diff --git a/modules/core/api/v1/response/user_response.go b/modules/core/api/v1/response/user_response.go index d143387..1cd5749 100644 --- a/modules/core/api/v1/response/user_response.go +++ b/modules/core/api/v1/response/user_response.go @@ -1,38 +1,38 @@ package response import ( - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "time" ) // UserResponse 用户实体返回结构体 type UserResponse struct { - UserId int64 `json:"userId"` // 用户ID - DeptId int64 `excel:"name=部门" json:"deptId"` // 部门ID - UserName string `excel:"name=用户登录名" json:"userName"` // 登录用户名 - NickName string `excel:"name=用户昵称" json:"nickName"` // 用户昵称 - Email string `excel:"name=用户邮箱" json:"email"` // 邮箱 - PhoneNumber string `excel:"name=手机号" json:"phoneNumber"` // 手机号 - Sex string `excel:"name=性别,format=0=男,1=女,2=未知" json:"sex"` // 性别0男1女 - Avatar string `json:"avatar"` // 头像路径 - Status string `json:"status"` // 状态 0正常1停用 - DelFlag string `json:"delFlag"` // 0正常1删除 - LoginIp string `json:"loginIp"` // 登录ip - LoginDate time.Time `json:"loginDate"` // 登录时间 - CreateTime time.Time `xorm:"created" json:"createTime"` // 创建时间 - CreateBy string `json:"createBy"` // 创建人 - UpdateTime time.Time `json:"updateTime"` // 更新时间 - UpdateBy string `json:"updateBy"` // 更新人 - SysDept entity.SysDept `xorm:"extends" json:"dept"` // 部门实体 + UserId int64 `json:"userId"` // 用户ID + DeptId int64 `excel:"name=部门" json:"deptId"` // 部门ID + UserName string `excel:"name=用户登录名" json:"userName"` // 登录用户名 + NickName string `excel:"name=用户昵称" json:"nickName"` // 用户昵称 + Email string `excel:"name=用户邮箱" json:"email"` // 邮箱 + PhoneNumber string `excel:"name=手机号" json:"phoneNumber"` // 手机号 + Sex string `excel:"name=性别,format=0=男,1=女,2=未知" json:"sex"` // 性别0男1女 + Avatar string `json:"avatar"` // 头像路径 + Status string `json:"status"` // 状态 0正常1停用 + DelFlag string `json:"delFlag"` // 0正常1删除 + LoginIp string `json:"loginIp"` // 登录ip + LoginDate time.Time `json:"loginDate"` // 登录时间 + CreateTime time.Time `xorm:"created" json:"createTime"` // 创建时间 + CreateBy string `json:"createBy"` // 创建人 + UpdateTime time.Time `json:"updateTime"` // 更新时间 + UpdateBy string `json:"updateBy"` // 更新人 + SysDept dataobject.SysDept `xorm:"extends" json:"dept"` // 部门实体 } // UserInfo 用户整体数据 type UserInfo struct { - User *UserResponse `json:"user,omitempty"` // 用户数据 - Roles []*entity.SysRole `json:"roles,omitempty"` // 角色集合 - Posts []*entity.SysPost `json:"posts,omitempty"` // 部门集合 - PostIds *[]int64 `json:"postIds,omitempty"` // 岗位id集合 - RoleIds *[]int64 `json:"roleIds,omitempty"` // 觉得id集合 + User *UserResponse `json:"user,omitempty"` // 用户数据 + Roles []*dataobject.SysRole `json:"roles,omitempty"` // 角色集合 + Posts []*dataobject.SysPost `json:"posts,omitempty"` // 部门集合 + PostIds *[]int64 `json:"postIds,omitempty"` // 岗位id集合 + RoleIds *[]int64 `json:"roleIds,omitempty"` // 觉得id集合 } // IsAdmin 判断当前用户是否是管理员 diff --git a/modules/core/api/v1/role_api.go b/modules/core/api/v1/role_api.go index 4fdff5e..2d8cc1c 100644 --- a/modules/core/api/v1/role_api.go +++ b/modules/core/api/v1/role_api.go @@ -2,7 +2,7 @@ package v1 import ( "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/modules/core/service" "cutego/pkg/excels" "cutego/pkg/page" @@ -50,7 +50,7 @@ func (a RoleApi) GetRoleId(c *gin.Context) { // Add 添加角色业务操作 func (a RoleApi) Add(c *gin.Context) { - role := entity.SysRole{} + role := dataobject.SysRole{} if c.BindJSON(&role) == nil { if a.roleService.CheckRoleNameUnique(role) > 0 { c.JSON(500, resp.ErrorResp(500, "新增角色'"+role.RoleName+"'失败, 角色名称已存在")) @@ -70,7 +70,7 @@ func (a RoleApi) Add(c *gin.Context) { // Edit 修改角色 func (a RoleApi) Edit(c *gin.Context) { - role := entity.SysRole{} + role := dataobject.SysRole{} if c.BindJSON(&role) == nil { if a.roleService.CheckRoleNameUnique(role) > 0 { c.JSON(500, resp.ErrorResp(500, "修改角色'"+role.RoleName+"'失败, 角色名称已存在")) @@ -106,7 +106,7 @@ func (a RoleApi) Delete(c *gin.Context) { // ChangeStatus 状态修改 func (a RoleApi) ChangeStatus(c *gin.Context) { - body := entity.SysRole{} + body := dataobject.SysRole{} if c.BindJSON(&body) != nil { c.JSON(500, resp.ErrorResp("参数绑定异常")) return @@ -155,7 +155,7 @@ func (a RoleApi) UnallocatedList(c *gin.Context) { // CancelAuthUser 取消授权用户 func (a RoleApi) CancelAuthUser(c *gin.Context) { - roleUser := entity.SysUserRole{} + roleUser := dataobject.SysUserRole{} if c.BindJSON(&roleUser) != nil { resp.Error(c) return diff --git a/modules/core/api/v1/user_api.go b/modules/core/api/v1/user_api.go index 1344e70..8e2592a 100644 --- a/modules/core/api/v1/user_api.go +++ b/modules/core/api/v1/user_api.go @@ -3,7 +3,7 @@ package v1 import ( "cutego/modules/core/api/v1/request" "cutego/modules/core/api/v1/response" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/modules/core/service" "cutego/pkg/common" "cutego/pkg/excels" @@ -53,11 +53,11 @@ func (a UserApi) GetInfo(c *gin.Context) { parseInt, err := strconv.ParseInt(param, 10, 64) if err == nil { // 判断当前登录用户是否是admin - m := new(entity.SysUser) + m := new(dataobject.SysUser) if m.IsAdmin(parseInt) { r.Roles = roleAll } else { - roles := make([]*entity.SysRole, 0) + roles := make([]*dataobject.SysRole, 0) for _, role := range roleAll { if role.RoleId != 1 { roles = append(roles, role) @@ -74,7 +74,7 @@ func (a UserApi) GetInfo(c *gin.Context) { } } else { //id为空不取管理员角色 - roles := make([]*entity.SysRole, 0) + roles := make([]*dataobject.SysRole, 0) for _, role := range roleAll { if role.RoleId != 1 { roles = append(roles, role) @@ -98,11 +98,11 @@ func (a UserApi) AuthRole(c *gin.Context) { user := a.userService.GetUserById(parseInt) // 查询角色 roles := a.roleService.GetRoleListByUserId(parseInt) - flag := entity.SysUser{}.IsAdmin(parseInt) + flag := dataobject.SysUser{}.IsAdmin(parseInt) if flag { m["roles"] = roles } else { - roleList := make([]entity.SysRole, 0) + roleList := make([]dataobject.SysRole, 0) for _, role := range *roles { if role.RoleId != 1 { roleList = append(roleList, role) diff --git a/modules/core/cache/config_cache.go b/modules/core/cache/config_cache.go index ab85eeb..9dc234d 100644 --- a/modules/core/cache/config_cache.go +++ b/modules/core/cache/config_cache.go @@ -1,7 +1,7 @@ package cache import ( - models2 "cutego/modules/core/entity" + models2 "cutego/modules/core/dataobject" "cutego/pkg/cache" "cutego/pkg/common" "cutego/pkg/constant" diff --git a/modules/core/cache/dict_cache.go b/modules/core/cache/dict_cache.go index d30eaf9..b55c916 100644 --- a/modules/core/cache/dict_cache.go +++ b/modules/core/cache/dict_cache.go @@ -1,7 +1,7 @@ package cache import ( - models2 "cutego/modules/core/entity" + models2 "cutego/modules/core/dataobject" "cutego/pkg/cache" "cutego/pkg/common" "cutego/pkg/constant" diff --git a/modules/core/dao/config_dao.go b/modules/core/dao/config_dao.go index 4b4f7b8..fb1f4f7 100644 --- a/modules/core/dao/config_dao.go +++ b/modules/core/dao/config_dao.go @@ -1,8 +1,9 @@ package dao import ( + "cutego/modules" "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/pkg/common" "cutego/pkg/page" "github.com/druidcaesa/gotool" @@ -17,9 +18,9 @@ func (d ConfigDao) sql(session *xorm.Session) *xorm.Session { } // SelectByConfigKey 根据键名查询参数配置信息 -func (d ConfigDao) SelectByConfigKey(configKey string) *entity.SysConfig { - config := entity.SysConfig{} - _, err := d.sql(SqlDB.NewSession()).Where("config_key = ?", configKey).Get(&config) +func (d ConfigDao) SelectByConfigKey(configKey string) *dataobject.SysConfig { + config := dataobject.SysConfig{} + _, err := d.sql(modules.SqlDB.NewSession()).Where("config_key = ?", configKey).Get(&config) if err != nil { common.ErrorLog(err) return nil @@ -28,9 +29,9 @@ func (d ConfigDao) SelectByConfigKey(configKey string) *entity.SysConfig { } // SelectPage 分页查询数据 -func (d ConfigDao) SelectPage(query request.ConfigQuery) (*[]entity.SysConfig, int64) { - configs := make([]entity.SysConfig, 0) - session := d.sql(SqlDB.NewSession()) +func (d ConfigDao) SelectPage(query request.ConfigQuery) (*[]dataobject.SysConfig, int64) { + configs := make([]dataobject.SysConfig, 0) + session := d.sql(modules.SqlDB.NewSession()) if gotool.StrUtils.HasNotEmpty(query.ConfigName) { session.And("config_name like concat('%', ?, '%')", query.ConfigName) } @@ -56,8 +57,8 @@ func (d ConfigDao) SelectPage(query request.ConfigQuery) (*[]entity.SysConfig, i } // CheckConfigKeyUnique 校验是否存在 -func (d ConfigDao) CheckConfigKeyUnique(config entity.SysConfig) int64 { - session := d.sql(SqlDB.NewSession()) +func (d ConfigDao) CheckConfigKeyUnique(config dataobject.SysConfig) int64 { + session := d.sql(modules.SqlDB.NewSession()) if config.ConfigId > 0 { session.Where("config_id != ?", config.ConfigId) } @@ -70,8 +71,8 @@ func (d ConfigDao) CheckConfigKeyUnique(config entity.SysConfig) int64 { } // Insert 添加数据 -func (d ConfigDao) Insert(config entity.SysConfig) int64 { - session := SqlDB.NewSession() +func (d ConfigDao) Insert(config dataobject.SysConfig) int64 { + session := modules.SqlDB.NewSession() session.Begin() insert, err := session.Insert(&config) if err != nil { @@ -84,9 +85,9 @@ func (d ConfigDao) Insert(config entity.SysConfig) int64 { } // SelectById 查询数据 -func (d ConfigDao) SelectById(id int64) *entity.SysConfig { - config := entity.SysConfig{} - session := d.sql(SqlDB.NewSession()) +func (d ConfigDao) SelectById(id int64) *dataobject.SysConfig { + config := dataobject.SysConfig{} + session := d.sql(modules.SqlDB.NewSession()) _, err := session.Where("config_id = ?", id).Get(&config) if err != nil { common.ErrorLog(err) @@ -96,8 +97,8 @@ func (d ConfigDao) SelectById(id int64) *entity.SysConfig { } // Update 修改数据 -func (d ConfigDao) Update(config entity.SysConfig) int64 { - session := SqlDB.NewSession() +func (d ConfigDao) Update(config dataobject.SysConfig) int64 { + session := modules.SqlDB.NewSession() session.Begin() update, err := session.Where("config_id = ?", config.ConfigId).Update(&config) if err != nil { @@ -110,9 +111,9 @@ func (d ConfigDao) Update(config entity.SysConfig) int64 { } // CheckConfigByIds 根据id集合查询 -func (d ConfigDao) CheckConfigByIds(list []int64) *[]entity.SysConfig { - configs := make([]entity.SysConfig, 0) - err := d.sql(SqlDB.NewSession()).In("config_id", list).Find(&configs) +func (d ConfigDao) CheckConfigByIds(list []int64) *[]dataobject.SysConfig { + configs := make([]dataobject.SysConfig, 0) + err := d.sql(modules.SqlDB.NewSession()).In("config_id", list).Find(&configs) if err != nil { common.ErrorLog(err) return nil @@ -122,9 +123,9 @@ func (d ConfigDao) CheckConfigByIds(list []int64) *[]entity.SysConfig { // Remove 删除数据 func (d ConfigDao) Delete(list []int64) bool { - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Begin() - _, err := session.In("config_id", list).Delete(&entity.SysConfig{}) + _, err := session.In("config_id", list).Delete(&dataobject.SysConfig{}) if err != nil { common.ErrorLog(err) session.Rollback() @@ -135,9 +136,9 @@ func (d ConfigDao) Delete(list []int64) bool { } // SelectAll 查询所有数据 -func (d ConfigDao) SelectAll() *[]entity.SysConfig { - configs := make([]entity.SysConfig, 0) - session := SqlDB.NewSession() +func (d ConfigDao) SelectAll() *[]dataobject.SysConfig { + configs := make([]dataobject.SysConfig, 0) + session := modules.SqlDB.NewSession() err := session.Find(&configs) if err != nil { common.ErrorLog(err) diff --git a/modules/core/dao/cron_job_dao.go b/modules/core/dao/cron_job_dao.go index 3879363..e20ce6d 100644 --- a/modules/core/dao/cron_job_dao.go +++ b/modules/core/dao/cron_job_dao.go @@ -1,8 +1,9 @@ package dao import ( + "cutego/modules" "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/pkg/common" "cutego/pkg/page" "github.com/druidcaesa/gotool" @@ -17,9 +18,9 @@ func (d CronJobDao) sql(session *xorm.Session) *xorm.Session { } // SelectPage 分页查询数据 -func (d CronJobDao) SelectPage(query request.CronJobQuery) ([]entity.SysCronJob, int64) { - configs := make([]entity.SysCronJob, 0) - session := d.sql(SqlDB.NewSession()) +func (d CronJobDao) SelectPage(query request.CronJobQuery) ([]dataobject.SysCronJob, int64) { + configs := make([]dataobject.SysCronJob, 0) + session := d.sql(modules.SqlDB.NewSession()) if gotool.StrUtils.HasNotEmpty(query.JobName) { session.And("job_name like concat('%', ?, '%')", query.JobName) } @@ -36,8 +37,8 @@ func (d CronJobDao) SelectPage(query request.CronJobQuery) ([]entity.SysCronJob, } // Insert 添加数据 -func (d CronJobDao) Insert(config entity.SysCronJob) int64 { - session := SqlDB.NewSession() +func (d CronJobDao) Insert(config dataobject.SysCronJob) int64 { + session := modules.SqlDB.NewSession() session.Begin() insert, err := session.Insert(&config) if err != nil { @@ -50,9 +51,9 @@ func (d CronJobDao) Insert(config entity.SysCronJob) int64 { } // SelectById 查询数据 -func (d CronJobDao) SelectById(id int64) *entity.SysCronJob { - config := entity.SysCronJob{} - session := d.sql(SqlDB.NewSession()) +func (d CronJobDao) SelectById(id int64) *dataobject.SysCronJob { + config := dataobject.SysCronJob{} + session := d.sql(modules.SqlDB.NewSession()) _, err := session.Where("job_id = ?", id).Get(&config) if err != nil { common.ErrorLog(err) @@ -62,8 +63,8 @@ func (d CronJobDao) SelectById(id int64) *entity.SysCronJob { } // Update 修改数据 -func (d CronJobDao) Update(config entity.SysCronJob) int64 { - session := SqlDB.NewSession() +func (d CronJobDao) Update(config dataobject.SysCronJob) int64 { + session := modules.SqlDB.NewSession() session.Begin() update, err := session.Where("job_id = ?", config.JobId).Update(&config) if err != nil { @@ -77,9 +78,9 @@ func (d CronJobDao) Update(config entity.SysCronJob) int64 { // Delete 删除数据 func (d CronJobDao) Delete(list []int64) bool { - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Begin() - _, err := session.In("job_id", list).Delete(&entity.SysCronJob{}) + _, err := session.In("job_id", list).Delete(&dataobject.SysCronJob{}) if err != nil { common.ErrorLog(err) session.Rollback() @@ -90,9 +91,9 @@ func (d CronJobDao) Delete(list []int64) bool { } // SelectByFuncAlias 通过方法别名获取任务详情 -func (d CronJobDao) SelectByFuncAlias(funcAlias string) *entity.SysCronJob { - config := entity.SysCronJob{} - session := d.sql(SqlDB.NewSession()) +func (d CronJobDao) SelectByFuncAlias(funcAlias string) *dataobject.SysCronJob { + config := dataobject.SysCronJob{} + session := d.sql(modules.SqlDB.NewSession()) _, err := session.Where("func_alias = ?", funcAlias).Get(&config) if err != nil { common.ErrorLog(err) @@ -102,9 +103,9 @@ func (d CronJobDao) SelectByFuncAlias(funcAlias string) *entity.SysCronJob { } // SelectAll 查找所有启用状态的任务 -func (d CronJobDao) SelectAll() ([]entity.SysCronJob, int) { - configs := make([]entity.SysCronJob, 0) - session := d.sql(SqlDB.NewSession()) +func (d CronJobDao) SelectAll() ([]dataobject.SysCronJob, int) { + configs := make([]dataobject.SysCronJob, 0) + session := d.sql(modules.SqlDB.NewSession()) err := session.Where("status = ?", 1).Find(&configs) if err != nil { common.ErrorLog(err) diff --git a/modules/core/dao/dept_dao.go b/modules/core/dao/dept_dao.go index 2905214..bb4ff26 100644 --- a/modules/core/dao/dept_dao.go +++ b/modules/core/dao/dept_dao.go @@ -1,8 +1,9 @@ package dao import ( + "cutego/modules" "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/pkg/common" "github.com/druidcaesa/gotool" ) @@ -11,9 +12,9 @@ type DeptDao struct { } // SelectTree 根据条件查询部门集合 -func (d DeptDao) SelectTree(query request.DeptQuery) *[]entity.SysDept { - depts := make([]entity.SysDept, 0) - session := SqlDB.NewSession().Where("del_flag = '0'") +func (d DeptDao) SelectTree(query request.DeptQuery) *[]dataobject.SysDept { + depts := make([]dataobject.SysDept, 0) + session := modules.SqlDB.NewSession().Where("del_flag = '0'") if query.ParentId > 0 { session.And("parent_id = ?", query.ParentId) } @@ -34,7 +35,7 @@ func (d DeptDao) SelectTree(query request.DeptQuery) *[]entity.SysDept { // SelectDeptListByRoleId 根据角色ID查询部门树信息 func (d DeptDao) SelectDeptListByRoleId(id int64, strictly bool) *[]int64 { list := make([]int64, 0) - session := SqlDB.NewSession().Table([]string{"sys_dept", "d"}).Cols("d.dept_id") + session := modules.SqlDB.NewSession().Table([]string{"sys_dept", "d"}).Cols("d.dept_id") session.Join("LEFT", []string{"sys_role_dept", "rd"}, "d.dept_id = rd.dept_id"). Where("rd.role_id = ?", id) if strictly { @@ -49,9 +50,9 @@ func (d DeptDao) SelectDeptListByRoleId(id int64, strictly bool) *[]int64 { } // GetList 查询部门列表 -func (d DeptDao) GetList(query request.DeptQuery) *[]entity.SysDept { - list := make([]entity.SysDept, 0) - session := SqlDB.NewSession().OrderBy("parent_id").OrderBy("order_num") +func (d DeptDao) GetList(query request.DeptQuery) *[]dataobject.SysDept { + list := make([]dataobject.SysDept, 0) + session := modules.SqlDB.NewSession().OrderBy("parent_id").OrderBy("order_num") session.Where("del_flag = '0'") if query.ParentId > 0 { session.And("parent_id = ?", query.ParentId) @@ -71,9 +72,9 @@ func (d DeptDao) GetList(query request.DeptQuery) *[]entity.SysDept { } // SelectDeptById 根据部门编号获取详细信息 -func (d DeptDao) SelectDeptById(id int) *entity.SysDept { - dept := entity.SysDept{} - _, err := SqlDB.NewSession().Where("dept_id = ?", id).Get(&dept) +func (d DeptDao) SelectDeptById(id int) *dataobject.SysDept { + dept := dataobject.SysDept{} + _, err := modules.SqlDB.NewSession().Where("dept_id = ?", id).Get(&dept) if err != nil { common.ErrorLog(err) return nil @@ -82,8 +83,8 @@ func (d DeptDao) SelectDeptById(id int) *entity.SysDept { } // Insert 添加部门数据 -func (d DeptDao) Insert(dept entity.SysDept) int64 { - session := SqlDB.NewSession() +func (d DeptDao) Insert(dept dataobject.SysDept) int64 { + session := modules.SqlDB.NewSession() session.Begin() insert, err := session.Insert(&dept) if err != nil { @@ -96,8 +97,8 @@ func (d DeptDao) Insert(dept entity.SysDept) int64 { } // CheckDeptNameUnique 校验部门名称是否唯一 -func (d DeptDao) CheckDeptNameUnique(dept entity.SysDept) int64 { - session := SqlDB.NewSession() +func (d DeptDao) CheckDeptNameUnique(dept dataobject.SysDept) int64 { + session := modules.SqlDB.NewSession() count, err := session.Table("sys_dept").Cols("dept_id").Where("dept_name=?", dept.DeptName).And("parent_id = ?", dept.ParentId).Limit(1).Count() if err != nil { common.ErrorLog(err) @@ -109,24 +110,24 @@ func (d DeptDao) CheckDeptNameUnique(dept entity.SysDept) int64 { // HasChildByDeptId 是否存在部门子节点 func (d DeptDao) HasChildByDeptId(id int) int64 { - count, _ := SqlDB.NewSession().Table("sys_dept").Cols("dept_id").Where("parent_id = ?", id). + count, _ := modules.SqlDB.NewSession().Table("sys_dept").Cols("dept_id").Where("parent_id = ?", id). And("del_flag = '0'").Limit(1).Count() return count } // CheckDeptExistUser 查询部门是否存在用户 func (d DeptDao) CheckDeptExistUser(id int) int64 { - count, _ := SqlDB.NewSession().Table("sys_user").Cols("user_id").Where("dept_id = ?", id). + count, _ := modules.SqlDB.NewSession().Table("sys_user").Cols("user_id").Where("dept_id = ?", id). And("del_flag = '0'").Count() return count } // Delete 删除部门 func (d DeptDao) Delete(id int) int64 { - dept := entity.SysDept{ + dept := dataobject.SysDept{ DeptId: id, } - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Begin() i, err := session.Where("dept_id = ?", id).Delete(&dept) if err != nil { @@ -139,8 +140,8 @@ func (d DeptDao) Delete(id int) int64 { } // Update 更新部门 -func (d DeptDao) Update(dept entity.SysDept) int64 { - session := SqlDB.NewSession() +func (d DeptDao) Update(dept dataobject.SysDept) int64 { + session := modules.SqlDB.NewSession() session.Begin() update, err := session.Where("dept_id = ?", dept.DeptId).Update(&dept) if err != nil { diff --git a/modules/core/dao/dict_data_dao.go b/modules/core/dao/dict_data_dao.go index a7e0a60..f3f22ca 100644 --- a/modules/core/dao/dict_data_dao.go +++ b/modules/core/dao/dict_data_dao.go @@ -1,8 +1,9 @@ package dao import ( + "cutego/modules" "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/pkg/common" "cutego/pkg/page" "github.com/druidcaesa/gotool" @@ -18,10 +19,10 @@ func (d *DictDataDao) sql(session *xorm.Session) *xorm.Session { // SelectByDictType 根据字典类型查询字典数据 // @Param dictType string 字典类型 -// @Return []entity.SysDictData -func (d *DictDataDao) SelectByDictType(dictType string) []entity.SysDictData { - data := make([]entity.SysDictData, 0) - session := d.sql(SqlDB.NewSession()) +// @Return []dataobject.SysDictData +func (d *DictDataDao) SelectByDictType(dictType string) []dataobject.SysDictData { + data := make([]dataobject.SysDictData, 0) + session := d.sql(modules.SqlDB.NewSession()) err := session.Where("status = '0' ").And("dict_type = ?", dictType).OrderBy("dict_sort").Asc("dict_sort"). Find(&data) if err != nil { @@ -32,10 +33,10 @@ func (d *DictDataDao) SelectByDictType(dictType string) []entity.SysDictData { } // GetDiceDataAll 查询所有字典数据 -// @Return *[]entity.SysDictData -func (d DictDataDao) GetDiceDataAll() *[]entity.SysDictData { - session := d.sql(SqlDB.NewSession()) - data := make([]entity.SysDictData, 0) +// @Return *[]dataobject.SysDictData +func (d DictDataDao) GetDiceDataAll() *[]dataobject.SysDictData { + session := d.sql(modules.SqlDB.NewSession()) + data := make([]dataobject.SysDictData, 0) err := session.Where("status = '0' ").OrderBy("dict_sort").Asc("dict_sort"). Find(&data) if err != nil { @@ -47,11 +48,11 @@ func (d DictDataDao) GetDiceDataAll() *[]entity.SysDictData { // SelectPage 查询集合数据 // @Param query request.DiceDataQuery -// @Return *[]entity.SysDictData +// @Return *[]dataobject.SysDictData // @Return 总行数 -func (d *DictDataDao) SelectPage(query request.DiceDataQuery) (*[]entity.SysDictData, int64) { - list := make([]entity.SysDictData, 0) - session := SqlDB.NewSession().Table("sys_dict_data").OrderBy("dict_sort").Asc("dict_sort") +func (d *DictDataDao) SelectPage(query request.DiceDataQuery) (*[]dataobject.SysDictData, int64) { + list := make([]dataobject.SysDictData, 0) + session := modules.SqlDB.NewSession().Table("sys_dict_data").OrderBy("dict_sort").Asc("dict_sort") if gotool.StrUtils.HasNotEmpty(query.DictType) { session.And("dict_type = ?", query.DictType) } @@ -72,10 +73,10 @@ func (d *DictDataDao) SelectPage(query request.DiceDataQuery) (*[]entity.SysDict // SelectByDictCode 根据dictCode查询字典数据 // @Param dictCode int64 -// @Return *entity.SysDictData -func (d *DictDataDao) SelectByDictCode(dictCode int64) *entity.SysDictData { - data := entity.SysDictData{} - session := SqlDB.NewSession() +// @Return *dataobject.SysDictData +func (d *DictDataDao) SelectByDictCode(dictCode int64) *dataobject.SysDictData { + data := dataobject.SysDictData{} + session := modules.SqlDB.NewSession() _, err := session.Where("dict_code = ?", dictCode).Get(&data) if err != nil { common.ErrorLog(err) @@ -85,10 +86,10 @@ func (d *DictDataDao) SelectByDictCode(dictCode int64) *entity.SysDictData { } // Insert 添加字典数据 -// @Param data entity.SysDictData +// @Param data dataobject.SysDictData // @Return 新增的行数 -func (d *DictDataDao) Insert(data entity.SysDictData) int64 { - session := SqlDB.NewSession() +func (d *DictDataDao) Insert(data dataobject.SysDictData) int64 { + session := modules.SqlDB.NewSession() session.Begin() insert, err := session.Insert(&data) if err != nil { @@ -102,9 +103,9 @@ func (d *DictDataDao) Insert(data entity.SysDictData) int64 { // Delete 删除字典数据 func (d *DictDataDao) Delete(codes []int64) bool { - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Begin() - _, err := session.In("dict_code", codes).Delete(&entity.SysDictData{}) + _, err := session.In("dict_code", codes).Delete(&dataobject.SysDictData{}) if err != nil { common.ErrorLog(err) session.Rollback() @@ -115,8 +116,8 @@ func (d *DictDataDao) Delete(codes []int64) bool { } // 修改字典数据 -func (d *DictDataDao) Update(data entity.SysDictData) bool { - session := SqlDB.NewSession() +func (d *DictDataDao) Update(data dataobject.SysDictData) bool { + session := modules.SqlDB.NewSession() session.Begin() _, err := session.Where("dict_code = ?", data.DictCode).Update(&data) if err != nil { diff --git a/modules/core/dao/dict_type_dao.go b/modules/core/dao/dict_type_dao.go index 5299042..54cf82a 100644 --- a/modules/core/dao/dict_type_dao.go +++ b/modules/core/dao/dict_type_dao.go @@ -1,8 +1,9 @@ package dao import ( + "cutego/modules" "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/pkg/common" "cutego/pkg/page" "github.com/druidcaesa/gotool" @@ -17,9 +18,9 @@ func (d DictTypeDao) sql(session *xorm.Session) *xorm.Session { } // SelectAll 查询所有字典类型数据 -func (d DictTypeDao) SelectAll() []*entity.SysDictType { - types := make([]*entity.SysDictType, 0) - err := d.sql(SqlDB.NewSession()).Where("status = '0'").Find(&types) +func (d DictTypeDao) SelectAll() []*dataobject.SysDictType { + types := make([]*dataobject.SysDictType, 0) + err := d.sql(modules.SqlDB.NewSession()).Where("status = '0'").Find(&types) if err != nil { common.ErrorLog(err) return nil @@ -28,9 +29,9 @@ func (d DictTypeDao) SelectAll() []*entity.SysDictType { } // SelectPage 分页查询字典类型数据 -func (d DictTypeDao) SelectPage(query request.DictTypeQuery) (*[]entity.SysDictType, int64) { - list := make([]entity.SysDictType, 0) - session := SqlDB.NewSession().Table("sys_dict_type") +func (d DictTypeDao) SelectPage(query request.DictTypeQuery) (*[]dataobject.SysDictType, int64) { + list := make([]dataobject.SysDictType, 0) + session := modules.SqlDB.NewSession().Table("sys_dict_type") if gotool.StrUtils.HasNotEmpty(query.DictName) { session.And("dict_name like concat('%', ?, '%')", query.DictName) } @@ -56,9 +57,9 @@ func (d DictTypeDao) SelectPage(query request.DictTypeQuery) (*[]entity.SysDictT } // SelectById 根据id查询字典类型数据 -func (d DictTypeDao) SelectById(id int64) *entity.SysDictType { - dictType := entity.SysDictType{} - _, err := SqlDB.NewSession().Where("dict_id = ?", id).Get(&dictType) +func (d DictTypeDao) SelectById(id int64) *dataobject.SysDictType { + dictType := dataobject.SysDictType{} + _, err := modules.SqlDB.NewSession().Where("dict_id = ?", id).Get(&dictType) if err != nil { common.ErrorLog(err) return nil @@ -67,8 +68,8 @@ func (d DictTypeDao) SelectById(id int64) *entity.SysDictType { } // CheckDictTypeUnique 检验字典类型是否存在 -func (d DictTypeDao) CheckDictTypeUnique(dictType entity.SysDictType) int64 { - session := SqlDB.NewSession().Table("sys_dict_type") +func (d DictTypeDao) CheckDictTypeUnique(dictType dataobject.SysDictType) int64 { + session := modules.SqlDB.NewSession().Table("sys_dict_type") if dictType.DictId > 0 { session.And("dict_id != ?", dictType.DictId) } @@ -81,8 +82,8 @@ func (d DictTypeDao) CheckDictTypeUnique(dictType entity.SysDictType) int64 { } // Update 修改字典 -func (d DictTypeDao) Update(dictType entity.SysDictType) bool { - session := SqlDB.NewSession() +func (d DictTypeDao) Update(dictType dataobject.SysDictType) bool { + session := modules.SqlDB.NewSession() session.Begin() _, err := session.Where("dict_id = ?", dictType.DictId).Update(&dictType) if err != nil { @@ -95,8 +96,8 @@ func (d DictTypeDao) Update(dictType entity.SysDictType) bool { } // Insert 新增字典类型 -func (d DictTypeDao) Insert(dictType entity.SysDictType) int64 { - session := SqlDB.NewSession() +func (d DictTypeDao) Insert(dictType dataobject.SysDictType) int64 { + session := modules.SqlDB.NewSession() session.Begin() insert, err := session.Insert(&dictType) if err != nil { @@ -110,9 +111,9 @@ func (d DictTypeDao) Insert(dictType entity.SysDictType) int64 { // Delete 批量删除 func (d DictTypeDao) Delete(ids []int64) bool { - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Begin() - _, err := session.In("dict_id", ids).Delete(entity.SysDictType{}) + _, err := session.In("dict_id", ids).Delete(dataobject.SysDictType{}) if err != nil { session.Rollback() common.ErrorLog(err) diff --git a/modules/core/dao/log_dao.go b/modules/core/dao/log_dao.go index 7f44a76..f08729e 100644 --- a/modules/core/dao/log_dao.go +++ b/modules/core/dao/log_dao.go @@ -1,8 +1,9 @@ package dao import ( + "cutego/modules" "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/pkg/common" "cutego/pkg/page" "github.com/druidcaesa/gotool" @@ -17,9 +18,9 @@ func (d LogDao) sql(session *xorm.Session) *xorm.Session { } // SelectPage 分页查询数据 -func (d LogDao) SelectPage(query request.LogQuery) ([]entity.SysLog, int64) { - configs := make([]entity.SysLog, 0) - session := d.sql(SqlDB.NewSession()) +func (d LogDao) SelectPage(query request.LogQuery) ([]dataobject.SysLog, int64) { + configs := make([]dataobject.SysLog, 0) + session := d.sql(modules.SqlDB.NewSession()) if gotool.StrUtils.HasNotEmpty(query.Content) { session.And("content like concat('%', ?, '%')", query.Content) } @@ -36,8 +37,8 @@ func (d LogDao) SelectPage(query request.LogQuery) ([]entity.SysLog, int64) { } // Insert 添加数据 -func (d LogDao) Insert(config entity.SysLog) int64 { - session := SqlDB.NewSession() +func (d LogDao) Insert(config dataobject.SysLog) int64 { + session := modules.SqlDB.NewSession() session.Begin() insert, err := session.Insert(&config) if err != nil { diff --git a/modules/core/dao/login_info_dao.go b/modules/core/dao/login_info_dao.go index f29f923..6138a0c 100644 --- a/modules/core/dao/login_info_dao.go +++ b/modules/core/dao/login_info_dao.go @@ -1,8 +1,9 @@ package dao import ( + "cutego/modules" "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/pkg/common" "cutego/pkg/page" "github.com/go-xorm/xorm" @@ -17,9 +18,9 @@ func (d LoginInfoDao) sql(session *xorm.Session) *xorm.Session { } // SelectPage 分页查询数据 -func (d LoginInfoDao) SelectPage(query request.LoginInfoQuery) (*[]entity.SysLoginInfo, int64) { - loginInfos := make([]entity.SysLoginInfo, 0) - session := d.sql(SqlDB.NewSession()) +func (d LoginInfoDao) SelectPage(query request.LoginInfoQuery) (*[]dataobject.SysLoginInfo, int64) { + loginInfos := make([]dataobject.SysLoginInfo, 0) + session := d.sql(modules.SqlDB.NewSession()) session.And("user_name = ?", query.UserName) total, _ := page.GetTotal(session.Clone()) err := session.Limit(query.PageSize, page.StartSize(query.PageNum, query.PageSize)).Find(&loginInfos) @@ -31,8 +32,8 @@ func (d LoginInfoDao) SelectPage(query request.LoginInfoQuery) (*[]entity.SysLog } // Insert 添加登录记录 -func (d LoginInfoDao) Insert(body entity.SysLoginInfo) *entity.SysLoginInfo { - session := SqlDB.NewSession() +func (d LoginInfoDao) Insert(body dataobject.SysLoginInfo) *dataobject.SysLoginInfo { + session := modules.SqlDB.NewSession() session.Begin() _, err := session.Table("sys_login_info").Insert(&body) if err != nil { diff --git a/modules/core/dao/menu_dao.go b/modules/core/dao/menu_dao.go index 74dd040..285a292 100644 --- a/modules/core/dao/menu_dao.go +++ b/modules/core/dao/menu_dao.go @@ -1,8 +1,9 @@ package dao import ( + "cutego/modules" "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/pkg/common" "github.com/druidcaesa/gotool" ) @@ -13,7 +14,7 @@ type MenuDao struct { // GetMenuPermission 根据用户ID查询权限 func (d MenuDao) GetMenuPermission(id int64) *[]string { var perms []string - session := SqlDB.Table([]string{"sys_menu", "m"}) + session := modules.SqlDB.Table([]string{"sys_menu", "m"}) err := session.Distinct("m.perms"). Join("LEFT", []string{"sys_role_menu", "rm"}, "m.menu_id = rm.menu_id"). Join("LEFT", []string{"sys_user_role", "ur"}, "rm.role_id = ur.role_id"). @@ -27,9 +28,9 @@ func (d MenuDao) GetMenuPermission(id int64) *[]string { } // GetMenuAll 查询所有菜单数据 -func (d MenuDao) GetMenuAll() *[]entity.SysMenu { - menus := make([]entity.SysMenu, 0) - session := SqlDB.Table([]string{entity.SysMenu{}.TableName(), "m"}) +func (d MenuDao) GetMenuAll() *[]dataobject.SysMenu { + menus := make([]dataobject.SysMenu, 0) + session := modules.SqlDB.Table([]string{dataobject.SysMenu{}.TableName(), "m"}) err := session.Distinct("m.menu_id").Cols("m.parent_id", "m.menu_name", "m.path", "m.component", "m.visible", "m.status", "m.perms", "m.is_frame", "m.is_cache", "m.menu_type", "m.icon", "m.order_num", "m.create_time"). Where("m.menu_type in ('M', 'C')").And("m.status = 0").OrderBy("m.parent_id").OrderBy("m.order_num").Find(&menus) if err != nil { @@ -40,9 +41,9 @@ func (d MenuDao) GetMenuAll() *[]entity.SysMenu { } // GetMenuByUserId 根据用户ID查询菜单 -func (d MenuDao) GetMenuByUserId(id int64) *[]entity.SysMenu { - menus := make([]entity.SysMenu, 0) - session := SqlDB.Table([]string{entity.SysMenu{}.TableName(), "m"}) +func (d MenuDao) GetMenuByUserId(id int64) *[]dataobject.SysMenu { + menus := make([]dataobject.SysMenu, 0) + session := modules.SqlDB.Table([]string{dataobject.SysMenu{}.TableName(), "m"}) err := session.Distinct("m.menu_id").Cols("m.parent_id", "m.menu_name", "m.path", "m.component", "m.visible", "m.status", "m.perms", "m.is_frame", "m.is_cache", "m.menu_type", "m.icon", "m.order_num", "m.create_time"). Join("LEFT", []string{"sys_role_menu", "rm"}, "m.menu_id = rm.menu_id"). Join("LEFT", []string{"sys_user_role", "ur"}, "rm.role_id = ur.role_id"). @@ -59,7 +60,7 @@ func (d MenuDao) GetMenuByUserId(id int64) *[]entity.SysMenu { // SelectMenuByRoleId 根据角色ID查询菜单树信息 func (d MenuDao) SelectMenuByRoleId(id int64, strictly bool) *[]int64 { list := make([]int64, 0) - session := SqlDB.NewSession().Table([]string{"sys_menu", "m"}) + session := modules.SqlDB.NewSession().Table([]string{"sys_menu", "m"}) session.Join("LEFT", []string{"sys_role_menu", "rm"}, "m.menu_id = rm.menu_id") session.Where("rm.role_id = ?", id) if strictly { @@ -74,9 +75,9 @@ func (d MenuDao) SelectMenuByRoleId(id int64, strictly bool) *[]int64 { } // SelectMenuList 查询系统菜单列表 -func (d MenuDao) SelectMenuList(query request.MenuQuery) *[]entity.SysMenu { - list := make([]entity.SysMenu, 0) - session := SqlDB.NewSession().OrderBy("parent_id").OrderBy("order_num") +func (d MenuDao) SelectMenuList(query request.MenuQuery) *[]dataobject.SysMenu { + list := make([]dataobject.SysMenu, 0) + session := modules.SqlDB.NewSession().OrderBy("parent_id").OrderBy("order_num") if gotool.StrUtils.HasNotEmpty(query.MenuName) { session.And("menu_name like concat('%', ?, '%')", query.MenuName) } @@ -95,9 +96,9 @@ func (d MenuDao) SelectMenuList(query request.MenuQuery) *[]entity.SysMenu { } // SelectMenuListByUserId 根据用户查询系统菜单列表 -func (d MenuDao) SelectMenuListByUserId(query request.MenuQuery) *[]entity.SysMenu { - session := SqlDB.NewSession().OrderBy("parent_id").OrderBy("order_num") - list := make([]entity.SysMenu, 0) +func (d MenuDao) SelectMenuListByUserId(query request.MenuQuery) *[]dataobject.SysMenu { + session := modules.SqlDB.NewSession().OrderBy("parent_id").OrderBy("order_num") + list := make([]dataobject.SysMenu, 0) session.Distinct("m.menu_id", "m.parent_id", "m.menu_name", "m.path", "m.component", "m.visible", "m.status", "ifnull(m.perms,'') as perms", "m.is_frame", "m.is_cache", "m.menu_type", "m.icon", "m.order_num", "m.create_time") session.Join("LEFT", []string{"sys_role_menu", "rm"}, "m.menu_id = rm.menu_id"). Join("LEFT", []string{"sys_user_role", "ur"}, "rm.role_id = ur.role_id"). @@ -121,11 +122,11 @@ func (d MenuDao) SelectMenuListByUserId(query request.MenuQuery) *[]entity.SysMe } // SelectMenuByMenuId 根据菜单ID查询信息 -func (d MenuDao) SelectMenuByMenuId(id int) *entity.SysMenu { - menu := entity.SysMenu{ +func (d MenuDao) SelectMenuByMenuId(id int) *dataobject.SysMenu { + menu := dataobject.SysMenu{ MenuId: id, } - _, err := SqlDB.NewSession().Where("menu_id = ?", menu.MenuId).Get(&menu) + _, err := modules.SqlDB.NewSession().Where("menu_id = ?", menu.MenuId).Get(&menu) if err != nil { common.ErrorLog(err) return nil @@ -134,8 +135,8 @@ func (d MenuDao) SelectMenuByMenuId(id int) *entity.SysMenu { } // Insert 添加菜单数据 -func (d MenuDao) Insert(menu entity.SysMenu) int64 { - session := SqlDB.NewSession() +func (d MenuDao) Insert(menu dataobject.SysMenu) int64 { + session := modules.SqlDB.NewSession() session.Begin() insert, err := session.Insert(&menu) if err != nil { @@ -148,8 +149,8 @@ func (d MenuDao) Insert(menu entity.SysMenu) int64 { } // Update 修改菜单数据 -func (d MenuDao) Update(menu entity.SysMenu) int64 { - session := SqlDB.NewSession() +func (d MenuDao) Update(menu dataobject.SysMenu) int64 { + session := modules.SqlDB.NewSession() session.Begin() update, err := session.Where("menu_id = ?", menu.MenuId).Update(&menu) if err != nil { @@ -163,10 +164,10 @@ func (d MenuDao) Update(menu entity.SysMenu) int64 { // Delete 删除菜单操作 func (d MenuDao) Delete(id int) int64 { - menu := entity.SysMenu{ + menu := dataobject.SysMenu{ MenuId: id, } - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Begin() i, err := session.Delete(&menu) if err != nil { diff --git a/modules/core/dao/notice_dao.go b/modules/core/dao/notice_dao.go index b2b9916..93cd683 100644 --- a/modules/core/dao/notice_dao.go +++ b/modules/core/dao/notice_dao.go @@ -1,8 +1,9 @@ package dao import ( + "cutego/modules" "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/pkg/common" "cutego/pkg/page" "github.com/druidcaesa/gotool" @@ -12,9 +13,9 @@ type NoticeDao struct { } // SelectPage 查询集合 -func (d NoticeDao) SelectPage(query request.NoticeQuery) (*[]entity.SysNotice, int64) { - notices := make([]entity.SysNotice, 0) - session := SqlDB.NewSession().Table(entity.SysNotice{}.TableName()) +func (d NoticeDao) SelectPage(query request.NoticeQuery) (*[]dataobject.SysNotice, int64) { + notices := make([]dataobject.SysNotice, 0) + session := modules.SqlDB.NewSession().Table(dataobject.SysNotice{}.TableName()) if gotool.StrUtils.HasNotEmpty(query.NoticeTitle) { session.And("notice_title like concat('%', ?, '%')", query.NoticeTitle) } @@ -34,8 +35,8 @@ func (d NoticeDao) SelectPage(query request.NoticeQuery) (*[]entity.SysNotice, i } // Insert 添加数据 -func (d NoticeDao) Insert(notice entity.SysNotice) int64 { - session := SqlDB.NewSession() +func (d NoticeDao) Insert(notice dataobject.SysNotice) int64 { + session := modules.SqlDB.NewSession() session.Begin() insert, err := session.Insert(¬ice) if err != nil { @@ -49,9 +50,9 @@ func (d NoticeDao) Insert(notice entity.SysNotice) int64 { // Delete 批量删除 func (d NoticeDao) Delete(list []int64) int64 { - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Begin() - i, err := session.In("notice_id", list).Delete(&entity.SysNotice{}) + i, err := session.In("notice_id", list).Delete(&dataobject.SysNotice{}) if err != nil { session.Rollback() common.ErrorLog(err) @@ -62,9 +63,9 @@ func (d NoticeDao) Delete(list []int64) int64 { } // SelectById 查询 -func (d NoticeDao) SelectById(id int64) *entity.SysNotice { - notice := entity.SysNotice{} - _, err := SqlDB.NewSession().Where("notice_id = ?", id).Get(¬ice) +func (d NoticeDao) SelectById(id int64) *dataobject.SysNotice { + notice := dataobject.SysNotice{} + _, err := modules.SqlDB.NewSession().Where("notice_id = ?", id).Get(¬ice) if err != nil { common.ErrorLog(err) return nil @@ -73,8 +74,8 @@ func (d NoticeDao) SelectById(id int64) *entity.SysNotice { } // Update 修改数据 -func (d NoticeDao) Update(notice entity.SysNotice) int64 { - session := SqlDB.NewSession() +func (d NoticeDao) Update(notice dataobject.SysNotice) int64 { + session := modules.SqlDB.NewSession() session.Begin() update, err := session.Where("notice_id = ?", notice.NoticeId).Update(¬ice) if err != nil { diff --git a/modules/core/dao/post_dao.go b/modules/core/dao/post_dao.go index 7e94792..40eb860 100644 --- a/modules/core/dao/post_dao.go +++ b/modules/core/dao/post_dao.go @@ -1,8 +1,9 @@ package dao import ( + "cutego/modules" "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/pkg/common" "cutego/pkg/page" "github.com/druidcaesa/gotool" @@ -19,9 +20,9 @@ func (d PostDao) sqlSelectJoin(session *xorm.Session) *xorm.Session { } // SelectAll 查询所有岗位数据, 数据库操作 -func (d PostDao) SelectAll() []*entity.SysPost { - session := SqlDB.NewSession() - posts := make([]*entity.SysPost, 0) +func (d PostDao) SelectAll() []*dataobject.SysPost { + session := modules.SqlDB.NewSession() + posts := make([]*dataobject.SysPost, 0) err := session.Find(&posts) if err != nil { common.ErrorLog(err) @@ -33,7 +34,7 @@ func (d PostDao) SelectAll() []*entity.SysPost { // SelectPostListByUserId 根据用户id查询岗位id集合 func (d PostDao) SelectPostListByUserId(userId int64) *[]int64 { var ids []int64 - selectSql := d.sqlSelectJoin(SqlDB.NewSession()) + selectSql := d.sqlSelectJoin(modules.SqlDB.NewSession()) err := selectSql.Where("u.user_id = ?", userId).Cols("p.post_id").Find(&ids) if err != nil { common.ErrorLog(err) @@ -43,9 +44,9 @@ func (d PostDao) SelectPostListByUserId(userId int64) *[]int64 { } // SelectPage 查询岗位分页数据 -func (d PostDao) SelectPage(query request.PostQuery) (*[]entity.SysPost, int64) { - posts := make([]entity.SysPost, 0) - session := SqlDB.NewSession().Table(entity.SysPost{}.TableName()) +func (d PostDao) SelectPage(query request.PostQuery) (*[]dataobject.SysPost, int64) { + posts := make([]dataobject.SysPost, 0) + session := modules.SqlDB.NewSession().Table(dataobject.SysPost{}.TableName()) if gotool.StrUtils.HasNotEmpty(query.PostCode) { session.And("post_code like concat('%', ?, '%')", query.PostCode) } @@ -65,8 +66,8 @@ func (d PostDao) SelectPage(query request.PostQuery) (*[]entity.SysPost, int64) } // CheckPostNameUnique 校验岗位名称是否存在 -func (d PostDao) CheckPostNameUnique(post entity.SysPost) int64 { - session := SqlDB.NewSession().Table("sys_post").Cols("post_id"). +func (d PostDao) CheckPostNameUnique(post dataobject.SysPost) int64 { + session := modules.SqlDB.NewSession().Table("sys_post").Cols("post_id"). Where("post_name = ?", post.PostName) if post.PostId > 0 { session.And("post_id != ?", post.PostId) @@ -76,8 +77,8 @@ func (d PostDao) CheckPostNameUnique(post entity.SysPost) int64 { } // CheckPostCodeUnique 校验岗位编码是否存在 -func (d PostDao) CheckPostCodeUnique(post entity.SysPost) int64 { - session := SqlDB.NewSession().Table("sys_post").Cols("post_id"). +func (d PostDao) CheckPostCodeUnique(post dataobject.SysPost) int64 { + session := modules.SqlDB.NewSession().Table("sys_post").Cols("post_id"). Where("post_code = ?", post.PostCode) if post.PostId > 0 { session.And("post_id != ?", post.PostId) @@ -87,8 +88,8 @@ func (d PostDao) CheckPostCodeUnique(post entity.SysPost) int64 { } // Insert 添加岗位数据 -func (d PostDao) Insert(post entity.SysPost) int64 { - session := SqlDB.NewSession() +func (d PostDao) Insert(post dataobject.SysPost) int64 { + session := modules.SqlDB.NewSession() session.Begin() insert, err := session.Insert(&post) if err != nil { @@ -101,8 +102,8 @@ func (d PostDao) Insert(post entity.SysPost) int64 { } // GetPostById 根据id查询岗位数据 -func (d PostDao) GetPostById(post entity.SysPost) *entity.SysPost { - _, err := SqlDB.NewSession().Where("post_id = ?", post.PostId).Get(&post) +func (d PostDao) GetPostById(post dataobject.SysPost) *dataobject.SysPost { + _, err := modules.SqlDB.NewSession().Where("post_id = ?", post.PostId).Get(&post) if err != nil { common.ErrorLog(err) return nil @@ -113,9 +114,9 @@ func (d PostDao) GetPostById(post entity.SysPost) *entity.SysPost { // Delete 批量删除岗位 func (d PostDao) Delete(posts []int64) int64 { - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Begin() - i, err := session.In("post_id", posts).Delete(&entity.SysPost{}) + i, err := session.In("post_id", posts).Delete(&dataobject.SysPost{}) if err != nil { session.Rollback() common.ErrorLog(err) @@ -126,8 +127,8 @@ func (d PostDao) Delete(posts []int64) int64 { } // Update 修改岗位数据 -func (d PostDao) Update(post entity.SysPost) bool { - session := SqlDB.NewSession() +func (d PostDao) Update(post dataobject.SysPost) bool { + session := modules.SqlDB.NewSession() session.Begin() _, err := session.Where("post_id = ?", post.PostId).Update(&post) if err != nil { @@ -139,9 +140,9 @@ func (d PostDao) Update(post entity.SysPost) bool { return true } -func (d PostDao) SelectPostByUserName(name string) *[]entity.SysPost { - posts := make([]entity.SysPost, 0) - session := SqlDB.NewSession().Table([]string{entity.SysPost{}.TableName(), "p"}) +func (d PostDao) SelectPostByUserName(name string) *[]dataobject.SysPost { + posts := make([]dataobject.SysPost, 0) + session := modules.SqlDB.NewSession().Table([]string{dataobject.SysPost{}.TableName(), "p"}) err := session.Cols("p.post_id", "p.post_name", "p.post_code"). Join("LEFT", []string{"sys_user_post", "up"}, "up.post_id = p.post_id"). Join("LEFT", []string{"sys_user", "u"}, "u.user_id = up.user_id").Where("u.user_name = ?", name).Find(&posts) diff --git a/modules/core/dao/role_dao.go b/modules/core/dao/role_dao.go index 6a1d1b9..065d2fc 100644 --- a/modules/core/dao/role_dao.go +++ b/modules/core/dao/role_dao.go @@ -1,8 +1,9 @@ package dao import ( + "cutego/modules" "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/pkg/common" "cutego/pkg/page" "github.com/druidcaesa/gotool" @@ -14,7 +15,7 @@ type RoleDao struct { // 角色公用sql func (d RoleDao) sqlSelectJoin() *xorm.Session { - return SqlDB.Table([]string{entity.SysRole{}.TableName(), "r"}). + return modules.SqlDB.Table([]string{dataobject.SysRole{}.TableName(), "r"}). Join("LEFT", []string{"sys_user_role", "ur"}, "ur.role_id = r.role_id"). Join("LEFT", []string{"sys_user", "u"}, "u.user_id = ur.user_id"). Join("LEFT", []string{"sys_dept", "d"}, "u.dept_id = d.dept_id") @@ -22,14 +23,14 @@ func (d RoleDao) sqlSelectJoin() *xorm.Session { // 用户角色关系查询sql func (d RoleDao) sqlSelectRoleAndUser() *xorm.Session { - return SqlDB.Table([]string{entity.SysRole{}.TableName(), "r"}). + return modules.SqlDB.Table([]string{dataobject.SysRole{}.TableName(), "r"}). Join("LEFT", []string{"sys_user_role", "ur"}, "ur.role_id = r.role_id"). Join("LEFT", []string{"sys_user", "u"}, "u.user_id = ur.user_id") } // SelectPage 根据条件查询角色数据 -func (d RoleDao) SelectPage(q *request.RoleQuery) ([]*entity.SysRole, int64) { - roles := make([]*entity.SysRole, 0) +func (d RoleDao) SelectPage(q *request.RoleQuery) ([]*dataobject.SysRole, int64) { + roles := make([]*dataobject.SysRole, 0) session := d.sqlSelectJoin() if !gotool.StrUtils.HasEmpty(q.RoleName) { session.And("r.role_name like concat('%', ?, '%')", q.RoleName) @@ -55,9 +56,9 @@ func (d RoleDao) SelectPage(q *request.RoleQuery) ([]*entity.SysRole, int64) { } // SelectAll 查询所有角色 -func (d RoleDao) SelectAll() []*entity.SysRole { +func (d RoleDao) SelectAll() []*dataobject.SysRole { sql := d.sqlSelectJoin() - roles := make([]*entity.SysRole, 0) + roles := make([]*dataobject.SysRole, 0) err := sql.Find(&roles) if err != nil { common.ErrorLog(err) @@ -90,8 +91,8 @@ func (d RoleDao) SelectRolePermissionByUserId(id int64) *[]string { } // GetRoleListByUserId 根据用户ID查询角色 -func (d RoleDao) GetRoleListByUserId(id int64) *[]entity.SysRole { - roles := make([]entity.SysRole, 0) +func (d RoleDao) GetRoleListByUserId(id int64) *[]dataobject.SysRole { + roles := make([]dataobject.SysRole, 0) err := d.sqlSelectJoin().Where("r.del_flag = '0'").And("ur.user_id = ?", id).Find(&roles) if err != nil { common.ErrorLog(err) @@ -101,8 +102,8 @@ func (d RoleDao) GetRoleListByUserId(id int64) *[]entity.SysRole { } // SelectRoleByRoleId 根据角色id查询角色数据 -func (d RoleDao) SelectRoleByRoleId(id int64) *entity.SysRole { - role := entity.SysRole{} +func (d RoleDao) SelectRoleByRoleId(id int64) *dataobject.SysRole { + role := dataobject.SysRole{} _, err := d.sqlSelectJoin().Where("r.role_id = ?", id).Get(&role) if err != nil { common.ErrorLog(err) @@ -112,8 +113,8 @@ func (d RoleDao) SelectRoleByRoleId(id int64) *entity.SysRole { } // CheckRoleNameUnique 校验角色名称是否唯一 -func (d RoleDao) CheckRoleNameUnique(role entity.SysRole) int64 { - session := SqlDB.Table(role.TableName()).Where("role_name = ?", role.RoleName) +func (d RoleDao) CheckRoleNameUnique(role dataobject.SysRole) int64 { + session := modules.SqlDB.Table(role.TableName()).Where("role_name = ?", role.RoleName) if role.RoleId > 0 { session.And("role_id != ?", role.RoleId) } @@ -125,8 +126,8 @@ func (d RoleDao) CheckRoleNameUnique(role entity.SysRole) int64 { } // CheckRoleKeyUnique 校验角色权限是否唯一 -func (d RoleDao) CheckRoleKeyUnique(role entity.SysRole) int64 { - session := SqlDB.Table(role.TableName()).Where("role_key = ?", role.RoleKey) +func (d RoleDao) CheckRoleKeyUnique(role dataobject.SysRole) int64 { + session := modules.SqlDB.Table(role.TableName()).Where("role_key = ?", role.RoleKey) if role.RoleId > 0 { session.And("role_id != ?", role.RoleId) } @@ -138,8 +139,8 @@ func (d RoleDao) CheckRoleKeyUnique(role entity.SysRole) int64 { } // Add 添加角色进入数据库操作 -func (d RoleDao) Insert(role entity.SysRole) entity.SysRole { - session := SqlDB.NewSession() +func (d RoleDao) Insert(role dataobject.SysRole) dataobject.SysRole { + session := modules.SqlDB.NewSession() session.Begin() _, err := session.Insert(&role) if err != nil { @@ -151,8 +152,8 @@ func (d RoleDao) Insert(role entity.SysRole) entity.SysRole { } // Update 修改数据 -func (d RoleDao) Update(role entity.SysRole) int64 { - session := SqlDB.NewSession() +func (d RoleDao) Update(role dataobject.SysRole) int64 { + session := modules.SqlDB.NewSession() session.Begin() update, err := session.Where("role_id = ?", role.RoleId).Update(&role) if err != nil { @@ -165,8 +166,8 @@ func (d RoleDao) Update(role entity.SysRole) int64 { } // Delete 删除角色 -func (d RoleDao) Delete(role entity.SysRole) int64 { - session := SqlDB.NewSession() +func (d RoleDao) Delete(role dataobject.SysRole) int64 { + session := modules.SqlDB.NewSession() session.Begin() i, err := session.Delete(&role) if err != nil { @@ -179,8 +180,8 @@ func (d RoleDao) Delete(role entity.SysRole) int64 { } // UpdateRoleStatus 修改角色状态 -func (d RoleDao) UpdateRoleStatus(role *entity.SysRole) int64 { - session := SqlDB.NewSession() +func (d RoleDao) UpdateRoleStatus(role *dataobject.SysRole) int64 { + session := modules.SqlDB.NewSession() session.Begin() update, err := session.Where("role_id = ?", role.RoleId).Cols("status", "update_by", "update_time").Update(role) if err != nil { @@ -193,8 +194,8 @@ func (d RoleDao) UpdateRoleStatus(role *entity.SysRole) int64 { } // SelectRolesByUserName 查询角色组 -func (d RoleDao) SelectRolesByUserName(name string) *[]entity.SysRole { - roles := make([]entity.SysRole, 0) +func (d RoleDao) SelectRolesByUserName(name string) *[]dataobject.SysRole { + roles := make([]dataobject.SysRole, 0) session := d.sqlSelectJoin() err := session.Where("r.del_flag = '0'").And("u.user_name = ?", name).Find(&roles) if err != nil { diff --git a/modules/core/dao/role_menu_dao.go b/modules/core/dao/role_menu_dao.go index d9e75eb..c06d141 100644 --- a/modules/core/dao/role_menu_dao.go +++ b/modules/core/dao/role_menu_dao.go @@ -1,7 +1,8 @@ package dao import ( - "cutego/modules/core/entity" + "cutego/modules" + "cutego/modules/core/dataobject" "cutego/pkg/common" ) @@ -9,8 +10,8 @@ type RoleMenuDao struct { } // Insert 添加角色菜单关系 -func (d RoleMenuDao) Insert(list []entity.SysRoleMenu) int64 { - session := SqlDB.NewSession() +func (d RoleMenuDao) Insert(list []dataobject.SysRoleMenu) int64 { + session := modules.SqlDB.NewSession() session.Begin() insert, err := session.Insert(&list) if err != nil { @@ -22,11 +23,11 @@ func (d RoleMenuDao) Insert(list []entity.SysRoleMenu) int64 { } // Delete 删除角色和菜单关系 -func (d RoleMenuDao) Delete(role entity.SysRole) { - menu := entity.SysRoleMenu{ +func (d RoleMenuDao) Delete(role dataobject.SysRole) { + menu := dataobject.SysRoleMenu{ RoleId: role.RoleId, } - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Begin() _, err := session.Delete(&menu) if err != nil { diff --git a/modules/core/dao/user_dao.go b/modules/core/dao/user_dao.go index 67d1c69..38dd950 100644 --- a/modules/core/dao/user_dao.go +++ b/modules/core/dao/user_dao.go @@ -1,9 +1,10 @@ package dao import ( + "cutego/modules" "cutego/modules/core/api/v1/request" "cutego/modules/core/api/v1/response" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/pkg/common" "cutego/pkg/page" "github.com/druidcaesa/gotool" @@ -16,7 +17,7 @@ type UserDao struct { // 查询公共sql func (d UserDao) sqlSelectJoin() *xorm.Session { - return SqlDB.NewSession().Table([]string{"sys_user", "u"}). + return modules.SqlDB.NewSession().Table([]string{"sys_user", "u"}). Join("LEFT", []string{"sys_dept", "d"}, "u.dept_id = d.dept_id"). Join("LEFT", []string{"sys_user_role", "ur"}, "u.user_id = ur.user_id"). Join("LEFT", []string{"sys_role", "r"}, "r.role_id = ur.role_id") @@ -67,8 +68,8 @@ func (d UserDao) GetUserById(userId int64) *response.UserResponse { } // GetUserByUserName 根据用户名查询用户数据 -func (d UserDao) GetUserByUserName(user entity.SysUser) *entity.SysUser { - i, err := SqlDB.Get(&user) +func (d UserDao) GetUserByUserName(user dataobject.SysUser) *dataobject.SysUser { + i, err := modules.SqlDB.Get(&user) if err != nil { common.ErrorLog(err) return nil @@ -80,9 +81,9 @@ func (d UserDao) GetUserByUserName(user entity.SysUser) *entity.SysUser { } // CheckEmailUnique 校验邮箱是否存在 -func (d UserDao) CheckEmailUnique(user request.UserBody) *entity.SysUser { - sysUser := entity.SysUser{} - session := SqlDB.NewSession().Table("sys_user") +func (d UserDao) CheckEmailUnique(user request.UserBody) *dataobject.SysUser { + sysUser := dataobject.SysUser{} + session := modules.SqlDB.NewSession().Table("sys_user") session.Cols("user_id", "email") session.Where("email = ?", user.Email) if user.UserId > 0 { @@ -96,9 +97,9 @@ func (d UserDao) CheckEmailUnique(user request.UserBody) *entity.SysUser { } // CheckPhoneNumUnique 校验手机号是否存在 -func (d UserDao) CheckPhoneNumUnique(body request.UserBody) *entity.SysUser { - sysUser := entity.SysUser{} - session := SqlDB.NewSession().Table("sys_user") +func (d UserDao) CheckPhoneNumUnique(body request.UserBody) *dataobject.SysUser { + sysUser := dataobject.SysUser{} + session := modules.SqlDB.NewSession().Table("sys_user") session.Cols("user_id", "phone_num") session.Where("phone_num = ?", body.PhoneNumber) if body.UserId > 0 { @@ -113,7 +114,7 @@ func (d UserDao) CheckPhoneNumUnique(body request.UserBody) *entity.SysUser { // Insert 添加用户 func (d UserDao) Insert(body request.UserBody) *request.UserBody { - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Begin() _, err := session.Table("sys_user").Insert(&body) if err != nil { @@ -126,7 +127,7 @@ func (d UserDao) Insert(body request.UserBody) *request.UserBody { // Update 修改用户数据 func (d UserDao) Update(body request.UserBody) int64 { - session := SqlDB.NewSession().Table("sys_user") + session := modules.SqlDB.NewSession().Table("sys_user") session.Begin() _, err := session.Where("user_id = ?", body.UserId).Update(&body) if err != nil { @@ -140,10 +141,10 @@ func (d UserDao) Update(body request.UserBody) int64 { // Delete 根据id删除用户数据 func (d UserDao) Delete(id int64) int64 { - user := entity.SysUser{ + user := dataobject.SysUser{ UserId: id, } - session := SqlDB.NewSession().Table("sys_user") + session := modules.SqlDB.NewSession().Table("sys_user") session.Begin() i, err := session.Delete(&user) if err != nil { @@ -156,11 +157,11 @@ func (d UserDao) Delete(id int64) int64 { // ResetPwd 修改用户密码数据库操作 func (d UserDao) ResetPwd(body request.UserBody) int64 { - user := entity.SysUser{ + user := dataobject.SysUser{ UserId: body.UserId, Password: body.Password, } - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Begin() _, err := session.Where("user_id = ?", user.UserId).Cols("password").Update(&user) if err != nil { @@ -175,7 +176,7 @@ func (d UserDao) ResetPwd(body request.UserBody) int64 { // GetAllocatedList 查询未分配用户角色列表 func (d UserDao) GetAllocatedList(query request.UserQuery) ([]*response.UserResponse, int64) { resp := make([]*response.UserResponse, 0) - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Table([]string{"sys_user", "u"}).Distinct("u.user_id", "u.dept_id", "u.user_name", "u.nick_name", "u.email", "u.phone_number", "u.status", "u.create_time"). Join("LEFT", []string{"sys_dept", "d"}, "u.dept_id = d.dept_id"). Join("LEFT", []string{"sys_user_role", "ur"}, "u.user_id = ur.user_id"). @@ -198,7 +199,7 @@ func (d UserDao) GetAllocatedList(query request.UserQuery) ([]*response.UserResp // GetUnallocatedList 查询未分配用户角色列表 func (d UserDao) GetUnallocatedList(query request.UserQuery) ([]*response.UserResponse, int64) { resp := make([]*response.UserResponse, 0) - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Table([]string{"sys_user", "u"}).Distinct("u.user_id", "u.dept_id", "u.user_name", "u.nick_name", "u.email", "u.phone_number", "u.status", "u.create_time"). Join("LEFT", []string{"sys_dept", "d"}, "u.dept_id = d.dept_id"). Join("LEFT", []string{"sys_user_role", "ur"}, "u.user_id = ur.user_id"). @@ -221,10 +222,10 @@ func (d UserDao) GetUnallocatedList(query request.UserQuery) ([]*response.UserRe // UpdatePwd 修改密码 func (d UserDao) UpdatePwd(id int64, hash string) int64 { - user := entity.SysUser{} + user := dataobject.SysUser{} user.UserId = id user.Password = hash - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Begin() update, err := session.Cols("password").Where("user_id = ?", id).Update(&user) if err != nil { @@ -238,13 +239,13 @@ func (d UserDao) UpdatePwd(id int64, hash string) int64 { // UpdateAvatar 修改头像 func (d UserDao) UpdateAvatar(info *response.UserResponse) int64 { - user := entity.SysUser{ + user := dataobject.SysUser{ Avatar: info.Avatar, UserId: info.UserId, UpdateBy: info.UserName, UpdateTime: time.Now(), } - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Begin() update, err := session.Cols("avatar", "update_by", "update_time").Where("user_id = ?", user.UserId).Update(&user) if err != nil { @@ -257,13 +258,13 @@ func (d UserDao) UpdateAvatar(info *response.UserResponse) int64 { } func (d UserDao) UpdateStatus(info request.UserBody) int64 { - user := entity.SysUser{ + user := dataobject.SysUser{ UserId: info.UserId, Status: info.Status, UpdateBy: info.UserName, UpdateTime: time.Now(), } - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Begin() update, err := session.Cols("status", "update_by", "update_time").Where("user_id = ?", user.UserId).Update(&user) if err != nil { diff --git a/modules/core/dao/user_post_dao.go b/modules/core/dao/user_post_dao.go index afff016..27af8b2 100644 --- a/modules/core/dao/user_post_dao.go +++ b/modules/core/dao/user_post_dao.go @@ -1,7 +1,8 @@ package dao import ( - "cutego/modules/core/entity" + "cutego/modules" + "cutego/modules/core/dataobject" "cutego/pkg/common" ) @@ -9,10 +10,10 @@ type UserPostDao struct { } // BatchInsert 批量新增用户岗位信息 -func (d UserPostDao) BatchInsert(posts []entity.SysUserPost) { - session := SqlDB.NewSession() +func (d UserPostDao) BatchInsert(posts []dataobject.SysUserPost) { + session := modules.SqlDB.NewSession() session.Begin() - _, err := session.Table(entity.SysUserPost{}.TableName()).Insert(&posts) + _, err := session.Table(dataobject.SysUserPost{}.TableName()).Insert(&posts) if err != nil { common.ErrorLog(err) session.Rollback() @@ -23,10 +24,10 @@ func (d UserPostDao) BatchInsert(posts []entity.SysUserPost) { // Delete 删除用户和岗位关系 func (d UserPostDao) Delete(id int64) { - post := entity.SysUserPost{ + post := dataobject.SysUserPost{ UserId: id, } - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Begin() _, err := session.Delete(&post) if err != nil { @@ -38,7 +39,7 @@ func (d UserPostDao) Delete(id int64) { // CountById 通过岗位ID查询岗位使用数量 func (d UserPostDao) CountById(id int64) int64 { - count, err := SqlDB.NewSession().Table("sys_user_post").Cols("post_id").Where("post_id = ?", id).Count() + count, err := modules.SqlDB.NewSession().Table("sys_user_post").Cols("post_id").Where("post_id = ?", id).Count() if err != nil { common.ErrorLog(err) return 0 diff --git a/modules/core/dao/user_role_dao.go b/modules/core/dao/user_role_dao.go index cf5fc49..9e309cc 100644 --- a/modules/core/dao/user_role_dao.go +++ b/modules/core/dao/user_role_dao.go @@ -1,8 +1,9 @@ package dao import ( + "cutego/modules" "cutego/modules/core/api/v1/request" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/pkg/common" ) @@ -10,10 +11,10 @@ type UserRoleDao struct { } // BatchInsert 批量新增用户角色信息 -func (d UserRoleDao) BatchInsert(roles []entity.SysUserRole) { - session := SqlDB.NewSession() +func (d UserRoleDao) BatchInsert(roles []dataobject.SysUserRole) { + session := modules.SqlDB.NewSession() session.Begin() - _, err := session.Table(entity.SysUserRole{}.TableName()).Insert(&roles) + _, err := session.Table(dataobject.SysUserRole{}.TableName()).Insert(&roles) if err != nil { common.ErrorLog(err) session.Rollback() @@ -24,10 +25,10 @@ func (d UserRoleDao) BatchInsert(roles []entity.SysUserRole) { // Delete 删除用户和角色关系 func (d UserRoleDao) Delete(id int64) { - role := entity.SysUserRole{ + role := dataobject.SysUserRole{ UserId: id, } - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Begin() _, err := session.Delete(&role) if err != nil { @@ -39,8 +40,8 @@ func (d UserRoleDao) Delete(id int64) { } // DeleteAuthUser 取消用户授权 -func (d UserRoleDao) DeleteAuthUser(role entity.SysUserRole) int64 { - session := SqlDB.NewSession() +func (d UserRoleDao) DeleteAuthUser(role dataobject.SysUserRole) int64 { + session := modules.SqlDB.NewSession() session.Begin() i, err := session.Delete(&role) if err != nil { @@ -55,15 +56,15 @@ func (d UserRoleDao) DeleteAuthUser(role entity.SysUserRole) int64 { // InsertAuthUsers 批量选择用户授权 func (d UserRoleDao) InsertAuthUsers(body request.UserRoleBody) int64 { ids := body.UserIds - roles := make([]entity.SysUserRole, 0) + roles := make([]dataobject.SysUserRole, 0) for i := 0; i < len(ids); i++ { - role := entity.SysUserRole{ + role := dataobject.SysUserRole{ RoleId: body.RoleId, UserId: ids[i], } roles = append(roles, role) } - session := SqlDB.NewSession() + session := modules.SqlDB.NewSession() session.Begin() insert, err := session.Insert(&roles) if err != nil { diff --git a/modules/core/entity/sys_config.go b/modules/core/dataobject/sys_config.go similarity index 98% rename from modules/core/entity/sys_config.go rename to modules/core/dataobject/sys_config.go index 1c42be6..5d6cb76 100644 --- a/modules/core/entity/sys_config.go +++ b/modules/core/dataobject/sys_config.go @@ -1,4 +1,4 @@ -package entity +package dataobject import ( "time" diff --git a/modules/core/entity/sys_cron_job.go b/modules/core/dataobject/sys_cron_job.go similarity index 98% rename from modules/core/entity/sys_cron_job.go rename to modules/core/dataobject/sys_cron_job.go index 617447b..27c7cd0 100644 --- a/modules/core/entity/sys_cron_job.go +++ b/modules/core/dataobject/sys_cron_job.go @@ -1,4 +1,4 @@ -package entity +package dataobject import ( "time" diff --git a/modules/core/entity/sys_dept.go b/modules/core/dataobject/sys_dept.go similarity index 98% rename from modules/core/entity/sys_dept.go rename to modules/core/dataobject/sys_dept.go index 9c7a779..ab9f45c 100644 --- a/modules/core/entity/sys_dept.go +++ b/modules/core/dataobject/sys_dept.go @@ -1,4 +1,4 @@ -package entity +package dataobject import "time" diff --git a/modules/core/entity/sys_dict_data.go b/modules/core/dataobject/sys_dict_data.go similarity index 98% rename from modules/core/entity/sys_dict_data.go rename to modules/core/dataobject/sys_dict_data.go index c7e625e..18bae03 100644 --- a/modules/core/entity/sys_dict_data.go +++ b/modules/core/dataobject/sys_dict_data.go @@ -1,4 +1,4 @@ -package entity +package dataobject import ( "time" diff --git a/modules/core/entity/sys_dict_type.go b/modules/core/dataobject/sys_dict_type.go similarity index 98% rename from modules/core/entity/sys_dict_type.go rename to modules/core/dataobject/sys_dict_type.go index 6ec4380..5172ecf 100644 --- a/modules/core/entity/sys_dict_type.go +++ b/modules/core/dataobject/sys_dict_type.go @@ -1,4 +1,4 @@ -package entity +package dataobject import ( "time" diff --git a/modules/core/entity/sys_log.go b/modules/core/dataobject/sys_log.go similarity index 95% rename from modules/core/entity/sys_log.go rename to modules/core/dataobject/sys_log.go index b49cbad..fb05733 100644 --- a/modules/core/entity/sys_log.go +++ b/modules/core/dataobject/sys_log.go @@ -1,4 +1,4 @@ -package entity +package dataobject import ( "time" diff --git a/modules/core/entity/sys_login_info.go b/modules/core/dataobject/sys_login_info.go similarity index 98% rename from modules/core/entity/sys_login_info.go rename to modules/core/dataobject/sys_login_info.go index 890bab1..b6847cc 100644 --- a/modules/core/entity/sys_login_info.go +++ b/modules/core/dataobject/sys_login_info.go @@ -1,4 +1,4 @@ -package entity +package dataobject import ( "time" diff --git a/modules/core/entity/sys_menu.go b/modules/core/dataobject/sys_menu.go similarity index 99% rename from modules/core/entity/sys_menu.go rename to modules/core/dataobject/sys_menu.go index 04504cd..7006df9 100644 --- a/modules/core/entity/sys_menu.go +++ b/modules/core/dataobject/sys_menu.go @@ -1,4 +1,4 @@ -package entity +package dataobject import ( "strings" diff --git a/modules/core/entity/sys_notice.go b/modules/core/dataobject/sys_notice.go similarity index 98% rename from modules/core/entity/sys_notice.go rename to modules/core/dataobject/sys_notice.go index 4982bda..cc37251 100644 --- a/modules/core/entity/sys_notice.go +++ b/modules/core/dataobject/sys_notice.go @@ -1,4 +1,4 @@ -package entity +package dataobject import "time" diff --git a/modules/core/entity/sys_post.go b/modules/core/dataobject/sys_post.go similarity index 98% rename from modules/core/entity/sys_post.go rename to modules/core/dataobject/sys_post.go index 1f7f657..05fc0bc 100644 --- a/modules/core/entity/sys_post.go +++ b/modules/core/dataobject/sys_post.go @@ -1,4 +1,4 @@ -package entity +package dataobject import "time" diff --git a/modules/core/entity/sys_role.go b/modules/core/dataobject/sys_role.go similarity index 99% rename from modules/core/entity/sys_role.go rename to modules/core/dataobject/sys_role.go index d1f95db..a80d042 100644 --- a/modules/core/entity/sys_role.go +++ b/modules/core/dataobject/sys_role.go @@ -1,4 +1,4 @@ -package entity +package dataobject import "time" diff --git a/modules/core/entity/sys_role_menu.go b/modules/core/dataobject/sys_role_menu.go similarity index 92% rename from modules/core/entity/sys_role_menu.go rename to modules/core/dataobject/sys_role_menu.go index 814cf25..828d6ce 100644 --- a/modules/core/entity/sys_role_menu.go +++ b/modules/core/dataobject/sys_role_menu.go @@ -1,4 +1,4 @@ -package entity +package dataobject // SysRoleMenu 角色菜单数据结构 type SysRoleMenu struct { diff --git a/modules/core/entity/sys_user.go b/modules/core/dataobject/sys_user.go similarity index 98% rename from modules/core/entity/sys_user.go rename to modules/core/dataobject/sys_user.go index c4ef882..6ab34d7 100644 --- a/modules/core/entity/sys_user.go +++ b/modules/core/dataobject/sys_user.go @@ -1,4 +1,4 @@ -package entity +package dataobject import ( "reflect" diff --git a/modules/core/entity/sys_user_post.go b/modules/core/dataobject/sys_user_post.go similarity index 90% rename from modules/core/entity/sys_user_post.go rename to modules/core/dataobject/sys_user_post.go index 99e5dd8..029ef44 100644 --- a/modules/core/entity/sys_user_post.go +++ b/modules/core/dataobject/sys_user_post.go @@ -1,4 +1,4 @@ -package entity +package dataobject type SysUserPost struct { UserId int64 `json:"userId"` // 用户id diff --git a/modules/core/entity/sys_user_role.go b/modules/core/dataobject/sys_user_role.go similarity index 91% rename from modules/core/entity/sys_user_role.go rename to modules/core/dataobject/sys_user_role.go index 7fbdbdf..afe68a3 100644 --- a/modules/core/entity/sys_user_role.go +++ b/modules/core/dataobject/sys_user_role.go @@ -1,4 +1,4 @@ -package entity +package dataobject type SysUserRole struct { UserId int64 `xorm:"pk" json:"userId"` // 用户id diff --git a/modules/core/service/config_service.go b/modules/core/service/config_service.go index b713ec9..7ab2e66 100644 --- a/modules/core/service/config_service.go +++ b/modules/core/service/config_service.go @@ -4,7 +4,7 @@ import ( "cutego/modules/core/api/v1/request" cache2 "cutego/modules/core/cache" "cutego/modules/core/dao" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" ) type ConfigService struct { @@ -12,7 +12,7 @@ type ConfigService struct { } // GetConfigKey 根据键名查询参数配置信息 -func (s ConfigService) GetConfigKey(param string) *entity.SysConfig { +func (s ConfigService) GetConfigKey(param string) *dataobject.SysConfig { // 从缓存中取出数据判断是否存在, 存在直接使用, 不存在就从数据库查询 val := cache2.GetRedisConfig(param) if val != nil { @@ -24,27 +24,27 @@ func (s ConfigService) GetConfigKey(param string) *entity.SysConfig { } // FindPage 分页查询数据 -func (s ConfigService) FindPage(query request.ConfigQuery) (*[]entity.SysConfig, int64) { +func (s ConfigService) FindPage(query request.ConfigQuery) (*[]dataobject.SysConfig, int64) { return s.configDao.SelectPage(query) } // CheckConfigKeyUnique 校验是否存在 -func (s ConfigService) CheckConfigKeyUnique(config entity.SysConfig) bool { +func (s ConfigService) CheckConfigKeyUnique(config dataobject.SysConfig) bool { return s.configDao.CheckConfigKeyUnique(config) > 0 } // Save 添加数据 -func (s ConfigService) Save(config entity.SysConfig) int64 { +func (s ConfigService) Save(config dataobject.SysConfig) int64 { return s.configDao.Insert(config) } // GetInfo 查询数据 -func (s ConfigService) GetInfo(id int64) *entity.SysConfig { +func (s ConfigService) GetInfo(id int64) *dataobject.SysConfig { return s.configDao.SelectById(id) } // Edit 修改数据 -func (s ConfigService) Edit(config entity.SysConfig) int64 { +func (s ConfigService) Edit(config dataobject.SysConfig) int64 { return s.configDao.Update(config) } @@ -54,11 +54,11 @@ func (s ConfigService) Remove(list []int64) bool { } // CheckConfigByIds 根据id集合查询 -func (s ConfigService) CheckConfigByIds(list []int64) *[]entity.SysConfig { +func (s ConfigService) CheckConfigByIds(list []int64) *[]dataobject.SysConfig { return s.configDao.CheckConfigByIds(list) } // FindAll 查询所有数据 -func (s ConfigService) FindAll() *[]entity.SysConfig { +func (s ConfigService) FindAll() *[]dataobject.SysConfig { return s.configDao.SelectAll() } diff --git a/modules/core/service/cron_job_service.go b/modules/core/service/cron_job_service.go index aa75303..18f1424 100644 --- a/modules/core/service/cron_job_service.go +++ b/modules/core/service/cron_job_service.go @@ -3,7 +3,7 @@ package service import ( "cutego/modules/core/api/v1/request" "cutego/modules/core/dao" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" ) type CronJobService struct { @@ -11,27 +11,27 @@ type CronJobService struct { } // FindPage 分页查询数据 -func (s CronJobService) FindPage(query request.CronJobQuery) ([]entity.SysCronJob, int64) { +func (s CronJobService) FindPage(query request.CronJobQuery) ([]dataobject.SysCronJob, int64) { return s.cronJobDao.SelectPage(query) } // Save 添加数据 -func (s CronJobService) Save(config entity.SysCronJob) int64 { +func (s CronJobService) Save(config dataobject.SysCronJob) int64 { return s.cronJobDao.Insert(config) } // GetInfo 查询数据 -func (s CronJobService) GetInfo(id int64) *entity.SysCronJob { +func (s CronJobService) GetInfo(id int64) *dataobject.SysCronJob { return s.cronJobDao.SelectById(id) } // GetInfoByAlias 查询数据 -func (s CronJobService) GetInfoByAlias(funcAlias string) *entity.SysCronJob { +func (s CronJobService) GetInfoByAlias(funcAlias string) *dataobject.SysCronJob { return s.cronJobDao.SelectByFuncAlias(funcAlias) } // Edit 修改数据 -func (s CronJobService) Edit(config entity.SysCronJob) int64 { +func (s CronJobService) Edit(config dataobject.SysCronJob) int64 { return s.cronJobDao.Update(config) } @@ -41,6 +41,6 @@ func (s CronJobService) Remove(list []int64) bool { } // FindAll 查找所有 -func (s CronJobService) FindAll() ([]entity.SysCronJob, int) { +func (s CronJobService) FindAll() ([]dataobject.SysCronJob, int) { return s.cronJobDao.SelectAll() } diff --git a/modules/core/service/dept_service.go b/modules/core/service/dept_service.go index 7edc392..e9d644f 100644 --- a/modules/core/service/dept_service.go +++ b/modules/core/service/dept_service.go @@ -3,7 +3,7 @@ package service import ( "cutego/modules/core/api/v1/request" "cutego/modules/core/dao" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" ) type DeptService struct { @@ -12,7 +12,7 @@ type DeptService struct { } // TreeSelect 根据条件查询部门树 -func (s DeptService) FindTreeSelect(query request.DeptQuery) *[]entity.SysDept { +func (s DeptService) FindTreeSelect(query request.DeptQuery) *[]dataobject.SysDept { treeSelect := s.deptDao.SelectTree(query) return treeSelect } @@ -24,22 +24,22 @@ func (s DeptService) FindDeptListByRoleId(id int64) *[]int64 { } // FindDeptList 查询部门列表 -func (s DeptService) FindDeptList(query request.DeptQuery) *[]entity.SysDept { +func (s DeptService) FindDeptList(query request.DeptQuery) *[]dataobject.SysDept { return s.deptDao.GetList(query) } // GetDeptById 根据部门编号获取详细信息 -func (s DeptService) GetDeptById(id int) *entity.SysDept { +func (s DeptService) GetDeptById(id int) *dataobject.SysDept { return s.deptDao.SelectDeptById(id) } // Save 添加部门数据 -func (s DeptService) Save(dept entity.SysDept) int64 { +func (s DeptService) Save(dept dataobject.SysDept) int64 { return s.deptDao.Insert(dept) } // CheckDeptNameUnique 校验部门名称是否唯一 -func (s DeptService) CheckDeptNameUnique(dept entity.SysDept) bool { +func (s DeptService) CheckDeptNameUnique(dept dataobject.SysDept) bool { if s.deptDao.CheckDeptNameUnique(dept) > 0 { return true } @@ -62,6 +62,6 @@ func (s DeptService) CheckDeptExistUser(id int) int64 { } // 修改部门 -func (s DeptService) Edit(dept entity.SysDept) bool { +func (s DeptService) Edit(dept dataobject.SysDept) bool { return s.deptDao.Update(dept) > 0 } diff --git a/modules/core/service/dict_data_service.go b/modules/core/service/dict_data_service.go index eeeae00..2b4b375 100644 --- a/modules/core/service/dict_data_service.go +++ b/modules/core/service/dict_data_service.go @@ -4,7 +4,7 @@ import ( "cutego/modules/core/api/v1/request" cache2 "cutego/modules/core/cache" "cutego/modules/core/dao" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/pkg/constant" ) @@ -13,11 +13,11 @@ type DictDataService struct { } // FindByDictType 根据字典类型查询字典数据 -func (s DictDataService) FindByDictType(dictType string) []entity.SysDictData { +func (s DictDataService) FindByDictType(dictType string) []dataobject.SysDictData { // 先从缓存中拉数据 key := cache2.GetRedisDict(dictType) if key != nil { - return key.([]entity.SysDictData) + return key.([]dataobject.SysDictData) } else { // 缓存中为空, 从数据库中取数据 return s.dictDataDao.SelectByDictType(dictType) @@ -25,21 +25,21 @@ func (s DictDataService) FindByDictType(dictType string) []entity.SysDictData { } // FindPage 查询字段数据集合 -func (s DictDataService) FindPage(query request.DiceDataQuery) (*[]entity.SysDictData, int64) { +func (s DictDataService) FindPage(query request.DiceDataQuery) (*[]dataobject.SysDictData, int64) { return s.dictDataDao.SelectPage(query) } // GetByCode 根据code查询字典数据 // @Param code int64 -// @Return *entity.SysDictData -func (s DictDataService) GetByCode(code int64) *entity.SysDictData { +// @Return *dataobject.SysDictData +func (s DictDataService) GetByCode(code int64) *dataobject.SysDictData { return s.dictDataDao.SelectByDictCode(code) } // Save 新增字典数据 -// @Param data entity.SysDictData +// @Param data dataobject.SysDictData // @Return bool -func (s DictDataService) Save(data entity.SysDictData) bool { +func (s DictDataService) Save(data dataobject.SysDictData) bool { insert := s.dictDataDao.Insert(data) if insert > 0 { // 刷新缓存数据 @@ -65,12 +65,12 @@ func (s DictDataService) Remove(codes []int64) bool { // GetNoCacheByType 根据字典类型查询字典数据 // @Param dictType 字典类型 -// @Return []entity.SysDictData -func (s DictDataService) GetNoCacheByType(dictType string) []entity.SysDictData { +// @Return []dataobject.SysDictData +func (s DictDataService) GetNoCacheByType(dictType string) []dataobject.SysDictData { return s.dictDataDao.SelectByDictType(constant.RedisConst{}.GetRedisDictKey() + dictType) } // 修改字典数据 -func (s DictDataService) Edit(data entity.SysDictData) bool { +func (s DictDataService) Edit(data dataobject.SysDictData) bool { return s.dictDataDao.Update(data) } diff --git a/modules/core/service/dict_type_service.go b/modules/core/service/dict_type_service.go index f242da2..9de20fe 100644 --- a/modules/core/service/dict_type_service.go +++ b/modules/core/service/dict_type_service.go @@ -4,7 +4,7 @@ import ( "cutego/modules/core/api/v1/request" cache2 "cutego/modules/core/cache" "cutego/modules/core/dao" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" ) type DictTypeService struct { @@ -13,27 +13,27 @@ type DictTypeService struct { } // FindPage 分页查询字典类型数据 -func (s DictTypeService) FindPage(query request.DictTypeQuery) (*[]entity.SysDictType, int64) { +func (s DictTypeService) FindPage(query request.DictTypeQuery) (*[]dataobject.SysDictType, int64) { return s.dictTypeDao.SelectPage(query) } // GetById 根据id查询字典类型数据 -func (s DictTypeService) GetById(id int64) *entity.SysDictType { +func (s DictTypeService) GetById(id int64) *dataobject.SysDictType { return s.dictTypeDao.SelectById(id) } // CheckDictTypeUnique 检验字典类型是否存在 -func (s DictTypeService) CheckDictTypeUnique(dictType entity.SysDictType) bool { +func (s DictTypeService) CheckDictTypeUnique(dictType dataobject.SysDictType) bool { return s.dictTypeDao.CheckDictTypeUnique(dictType) > 0 } // Edit 修改字典数据 -func (s DictTypeService) Edit(dictType entity.SysDictType) bool { +func (s DictTypeService) Edit(dictType dataobject.SysDictType) bool { return s.dictTypeDao.Update(dictType) } // Save 新增字典类型 -func (s DictTypeService) Save(dictType entity.SysDictType) bool { +func (s DictTypeService) Save(dictType dataobject.SysDictType) bool { insert := s.dictTypeDao.Insert(dictType) if insert > 0 { cache2.SetRedisDict(dictType.DictType, nil) @@ -47,7 +47,7 @@ func (s DictTypeService) Remove(ids []int64) bool { } // FindAll 查询所有字典类型数据 -func (s DictTypeService) FindAll() []*entity.SysDictType { +func (s DictTypeService) FindAll() []*dataobject.SysDictType { return s.dictTypeDao.SelectAll() } @@ -72,7 +72,7 @@ func (s DictTypeService) LoadDictCache() { } allData := s.dictDataDao.GetDiceDataAll() for _, key := range typeList { - list := make([]entity.SysDictData, 0) + list := make([]dataobject.SysDictData, 0) for _, data := range *allData { if key == data.DictType { list = append(list, data) @@ -87,7 +87,7 @@ func (s DictTypeService) RefreshCache() { typeList := s.RemoveAllCache() allData := s.dictDataDao.GetDiceDataAll() for _, key := range typeList { - list := make([]entity.SysDictData, 0) + list := make([]dataobject.SysDictData, 0) for _, data := range *allData { if key == data.DictType { list = append(list, data) diff --git a/modules/core/service/log_service.go b/modules/core/service/log_service.go index 8a431d0..d65284a 100644 --- a/modules/core/service/log_service.go +++ b/modules/core/service/log_service.go @@ -3,7 +3,7 @@ package service import ( "cutego/modules/core/api/v1/request" "cutego/modules/core/dao" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "github.com/gin-gonic/gin" "github.com/go-basic/uuid" ) @@ -16,12 +16,12 @@ type LogService struct { } // FindPage 分页查询数据 -func (s LogService) FindPage(query request.LogQuery) ([]entity.SysLog, int64) { +func (s LogService) FindPage(query request.LogQuery) ([]dataobject.SysLog, int64) { return s.logDao.SelectPage(query) } // Save 添加数据 -func (s LogService) save(config entity.SysLog) int64 { +func (s LogService) save(config dataobject.SysLog) int64 { return s.logDao.Insert(config) } @@ -32,7 +32,7 @@ func (s LogService) LogToDB(c *gin.Context, content string) { uid = DEFAULT_UID_KEY } uidStr := uid.(string) - s.save(entity.SysLog{Uid: uidStr, Content: content}) + s.save(dataobject.SysLog{Uid: uidStr, Content: content}) } // 开始记录日志前调用(只调用一次) diff --git a/modules/core/service/login_info_service.go b/modules/core/service/login_info_service.go index 58bbf47..c243a92 100644 --- a/modules/core/service/login_info_service.go +++ b/modules/core/service/login_info_service.go @@ -3,7 +3,7 @@ package service import ( "cutego/modules/core/api/v1/request" "cutego/modules/core/dao" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/pkg/config" "github.com/gin-gonic/gin" "github.com/yinheli/qqwry" @@ -16,12 +16,12 @@ type LoginInfoService struct { } // FindPage 分页查询数据 -func (s LoginInfoService) FindPage(query request.LoginInfoQuery) (*[]entity.SysLoginInfo, int64) { +func (s LoginInfoService) FindPage(query request.LoginInfoQuery) (*[]dataobject.SysLoginInfo, int64) { return s.loginInfoDao.SelectPage(query) } // Save 添加登录记录业务逻辑 -func (s LoginInfoService) Save(body entity.SysLoginInfo) bool { +func (s LoginInfoService) Save(body dataobject.SysLoginInfo) bool { // 添加登录记录数据库操作 user := s.loginInfoDao.Insert(body) if user != nil { diff --git a/modules/core/service/menu_service.go b/modules/core/service/menu_service.go index 301dafa..b20cbba 100644 --- a/modules/core/service/menu_service.go +++ b/modules/core/service/menu_service.go @@ -4,7 +4,7 @@ import ( "cutego/modules/core/api/v1/request" "cutego/modules/core/api/v1/response" "cutego/modules/core/dao" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" ) type MenuService struct { @@ -13,10 +13,10 @@ type MenuService struct { } // GetMenuTreeByUserId 根据用户ID查询菜单 -func (s MenuService) GetMenuTreeByUserId(user *response.UserResponse) *[]entity.SysMenu { - var menuList *[]entity.SysMenu +func (s MenuService) GetMenuTreeByUserId(user *response.UserResponse) *[]dataobject.SysMenu { + var menuList *[]dataobject.SysMenu // 判断是否是管理员 - flag := entity.SysUser{}.IsAdmin(user.UserId) + flag := dataobject.SysUser{}.IsAdmin(user.UserId) if flag { menuList = s.menuDao.GetMenuAll() } else { @@ -32,7 +32,7 @@ func (s MenuService) FindMenuListByRoleId(id int64) *[]int64 { } // GetMenuList 获取菜单列表 -func (s MenuService) FindMenuList(query request.MenuQuery, info *response.UserResponse) *[]entity.SysMenu { +func (s MenuService) FindMenuList(query request.MenuQuery, info *response.UserResponse) *[]dataobject.SysMenu { if info.IsAdmin() { return s.menuDao.SelectMenuList(query) } else { @@ -42,17 +42,17 @@ func (s MenuService) FindMenuList(query request.MenuQuery, info *response.UserRe } // GetMenuByMenuId 根据菜单ID查询信息 -func (s MenuService) GetMenuByMenuId(id int) *entity.SysMenu { +func (s MenuService) GetMenuByMenuId(id int) *dataobject.SysMenu { return s.menuDao.SelectMenuByMenuId(id) } // Save 添加菜单数据 -func (s MenuService) Save(menu entity.SysMenu) int64 { +func (s MenuService) Save(menu dataobject.SysMenu) int64 { return s.menuDao.Insert(menu) } // Edit 修改菜单数据 -func (s MenuService) Edit(menu entity.SysMenu) int64 { +func (s MenuService) Edit(menu dataobject.SysMenu) int64 { return s.menuDao.Update(menu) } diff --git a/modules/core/service/notice_service.go b/modules/core/service/notice_service.go index becc900..df70d88 100644 --- a/modules/core/service/notice_service.go +++ b/modules/core/service/notice_service.go @@ -3,7 +3,7 @@ package service import ( "cutego/modules/core/api/v1/request" "cutego/modules/core/dao" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" ) type NoticeService struct { @@ -11,12 +11,12 @@ type NoticeService struct { } // FindPage 查询集合数据 -func (s NoticeService) FindPage(query request.NoticeQuery) (*[]entity.SysNotice, int64) { +func (s NoticeService) FindPage(query request.NoticeQuery) (*[]dataobject.SysNotice, int64) { return s.noticeDao.SelectPage(query) } // Save 添加公告 -func (s NoticeService) Save(notice entity.SysNotice) bool { +func (s NoticeService) Save(notice dataobject.SysNotice) bool { return s.noticeDao.Insert(notice) > 0 } @@ -26,11 +26,11 @@ func (s NoticeService) Remove(list []int64) bool { } // GetById 查询 -func (s NoticeService) GetById(id int64) *entity.SysNotice { +func (s NoticeService) GetById(id int64) *dataobject.SysNotice { return s.noticeDao.SelectById(id) } // Edit 修改 -func (s NoticeService) Edit(notice entity.SysNotice) bool { +func (s NoticeService) Edit(notice dataobject.SysNotice) bool { return s.noticeDao.Update(notice) > 0 } diff --git a/modules/core/service/permission_service.go b/modules/core/service/permission_service.go index 145c68e..862f3c8 100644 --- a/modules/core/service/permission_service.go +++ b/modules/core/service/permission_service.go @@ -3,7 +3,7 @@ package service import ( "cutego/modules/core/api/v1/response" "cutego/modules/core/dao" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "github.com/druidcaesa/gotool" ) @@ -14,7 +14,7 @@ type PermissionService struct { // GetRolePermissionByUserId 查询用户角色集合 func (s PermissionService) GetRolePermissionByUserId(user *response.UserResponse) *[]string { - admin := entity.SysUser{}.IsAdmin(user.UserId) + admin := dataobject.SysUser{}.IsAdmin(user.UserId) roleKeys := s.roleDao.SelectRolePermissionByUserId(user.UserId) if admin && roleKeys != nil { *roleKeys = append(*roleKeys, "admin") @@ -25,7 +25,7 @@ func (s PermissionService) GetRolePermissionByUserId(user *response.UserResponse // GetMenuPermission 获取菜单数据权限 func (s PermissionService) GetMenuPermission(user *response.UserResponse) *[]string { - flag := entity.SysUser{}.IsAdmin(user.UserId) + flag := dataobject.SysUser{}.IsAdmin(user.UserId) // 查询菜单数据权限 permission := s.menuDao.GetMenuPermission(user.UserId) if flag && permission != nil { diff --git a/modules/core/service/post_service.go b/modules/core/service/post_service.go index 4a1bcf9..63bb5eb 100644 --- a/modules/core/service/post_service.go +++ b/modules/core/service/post_service.go @@ -4,7 +4,7 @@ import ( "bytes" "cutego/modules/core/api/v1/request" "cutego/modules/core/dao" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "github.com/druidcaesa/gotool" ) @@ -13,7 +13,7 @@ type PostService struct { } // FindAll 查询所有岗位业务方法 -func (s PostService) FindAll() []*entity.SysPost { +func (s PostService) FindAll() []*dataobject.SysPost { return s.postDao.SelectAll() } @@ -23,28 +23,28 @@ func (s PostService) FindPostListByUserId(userId int64) *[]int64 { } // FindList 查询岗位分页列表 -func (s PostService) FindPage(query request.PostQuery) (*[]entity.SysPost, int64) { +func (s PostService) FindPage(query request.PostQuery) (*[]dataobject.SysPost, int64) { return s.postDao.SelectPage(query) } // CheckPostNameUnique 校验岗位名称是否存在 -func (s PostService) CheckPostNameUnique(post entity.SysPost) bool { +func (s PostService) CheckPostNameUnique(post dataobject.SysPost) bool { return s.postDao.CheckPostNameUnique(post) > 0 } // CheckPostCodeUnique 校验岗位编码是否存在 -func (s PostService) CheckPostCodeUnique(post entity.SysPost) bool { +func (s PostService) CheckPostCodeUnique(post dataobject.SysPost) bool { return s.postDao.CheckPostCodeUnique(post) > 0 } // Save 添加岗位数据 -func (s PostService) Save(post entity.SysPost) bool { +func (s PostService) Save(post dataobject.SysPost) bool { return s.postDao.Insert(post) > 0 } // GetPostById 根据id查询岗位数据 -func (s PostService) GetPostById(id int64) *entity.SysPost { - post := entity.SysPost{ +func (s PostService) GetPostById(id int64) *dataobject.SysPost { + post := dataobject.SysPost{ PostId: id, } return s.postDao.GetPostById(post) @@ -56,7 +56,7 @@ func (s PostService) Remove(ids []int64) bool { } // Edit 修改岗位数据 -func (s PostService) Edit(post entity.SysPost) bool { +func (s PostService) Edit(post dataobject.SysPost) bool { return s.postDao.Update(post) } diff --git a/modules/core/service/role_service.go b/modules/core/service/role_service.go index 8bb9c87..39fbd49 100644 --- a/modules/core/service/role_service.go +++ b/modules/core/service/role_service.go @@ -4,7 +4,7 @@ import ( "bytes" "cutego/modules/core/api/v1/request" "cutego/modules/core/dao" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "github.com/druidcaesa/gotool" ) @@ -15,7 +15,7 @@ type RoleService struct { } // FindAll 查询所有角色 -func (s RoleService) FindAll(query *request.RoleQuery) ([]*entity.SysRole, int64) { +func (s RoleService) FindAll(query *request.RoleQuery) ([]*dataobject.SysRole, int64) { if query == nil { all := s.roleDao.SelectAll() return all, 0 @@ -29,42 +29,42 @@ func (s RoleService) FindRoleListByUserId(parseInt int64) *[]int64 { } // GetRoleListByUserId 根据用户ID查询角色 -func (s RoleService) GetRoleListByUserId(id int64) *[]entity.SysRole { +func (s RoleService) GetRoleListByUserId(id int64) *[]dataobject.SysRole { return s.roleDao.GetRoleListByUserId(id) } // FindPage 分页查询角色数据 -func (s RoleService) FindPage(query request.RoleQuery) ([]*entity.SysRole, int64) { +func (s RoleService) FindPage(query request.RoleQuery) ([]*dataobject.SysRole, int64) { return s.roleDao.SelectPage(&query) } // GetRoleByRoleId 根据角色id查询角色数据 -func (s RoleService) GetRoleByRoleId(id int64) *entity.SysRole { +func (s RoleService) GetRoleByRoleId(id int64) *dataobject.SysRole { return s.roleDao.SelectRoleByRoleId(id) } // CheckRoleNameUnique 判断角色名城是否存在 -func (s RoleService) CheckRoleNameUnique(role entity.SysRole) int64 { +func (s RoleService) CheckRoleNameUnique(role dataobject.SysRole) int64 { return s.roleDao.CheckRoleNameUnique(role) } // CheckRoleKeyUnique 校验角色权限是否唯一 -func (s RoleService) CheckRoleKeyUnique(role entity.SysRole) int64 { +func (s RoleService) CheckRoleKeyUnique(role dataobject.SysRole) int64 { return s.roleDao.CheckRoleKeyUnique(role) } // Save 添加角色数据 -func (s RoleService) Save(role entity.SysRole) int64 { +func (s RoleService) Save(role dataobject.SysRole) int64 { role = s.roleDao.Insert(role) return s.BindRoleMenu(role) } // 添加角色菜单关系 -func (s RoleService) BindRoleMenu(role entity.SysRole) int64 { - list := make([]entity.SysRoleMenu, 0) +func (s RoleService) BindRoleMenu(role dataobject.SysRole) int64 { + list := make([]dataobject.SysRoleMenu, 0) for _, id := range role.MenuIds { - menu := entity.SysRoleMenu{ + menu := dataobject.SysRoleMenu{ RoleId: role.RoleId, MenuId: id, } @@ -74,7 +74,7 @@ func (s RoleService) BindRoleMenu(role entity.SysRole) int64 { } // Edit 修改角色数据 -func (s RoleService) Edit(role entity.SysRole) int64 { +func (s RoleService) Edit(role dataobject.SysRole) int64 { // 删除菜单关联关系 s.roleMenuDao.Delete(role) s.BindRoleMenu(role) @@ -84,7 +84,7 @@ func (s RoleService) Edit(role entity.SysRole) int64 { // Remove 删除角色 func (s RoleService) Remove(id int64) int64 { - role := entity.SysRole{ + role := dataobject.SysRole{ RoleId: id, } // 删除菜单角色关系 @@ -102,12 +102,12 @@ func (s RoleService) CheckRoleAllowed(id int64) (bool, string) { } // EditRoleStatus 角色状态修改 -func (s RoleService) EditRoleStatus(role *entity.SysRole) int64 { +func (s RoleService) EditRoleStatus(role *dataobject.SysRole) int64 { return s.roleDao.UpdateRoleStatus(role) } // DeleteAuthUser 取消授权用户 -func (s RoleService) DeleteAuthUser(userRole entity.SysUserRole) int64 { +func (s RoleService) DeleteAuthUser(userRole dataobject.SysUserRole) int64 { return s.userRoleDao.DeleteAuthUser(userRole) } diff --git a/modules/core/service/user_service.go b/modules/core/service/user_service.go index ecdbbaa..62628de 100644 --- a/modules/core/service/user_service.go +++ b/modules/core/service/user_service.go @@ -4,7 +4,7 @@ import ( "cutego/modules/core/api/v1/request" "cutego/modules/core/api/v1/response" "cutego/modules/core/dao" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" ) // UserService 用户操作业务逻辑 @@ -25,19 +25,19 @@ func (s UserService) GetUserById(parseInt int64) *response.UserResponse { } // GetUserByUserName 根据用户名查询用户 -func (s UserService) GetUserByUserName(name string) *entity.SysUser { - user := entity.SysUser{} +func (s UserService) GetUserByUserName(name string) *dataobject.SysUser { + user := dataobject.SysUser{} user.UserName = name return s.userDao.GetUserByUserName(user) } // CheckEmailUnique 校验邮箱是否存在 -func (s UserService) CheckEmailUnique(user request.UserBody) *entity.SysUser { +func (s UserService) CheckEmailUnique(user request.UserBody) *dataobject.SysUser { return s.userDao.CheckEmailUnique(user) } // CheckPhoneNumUnique 校验手机号是否存在 -func (s UserService) CheckPhoneNumUnique(body request.UserBody) *entity.SysUser { +func (s UserService) CheckPhoneNumUnique(body request.UserBody) *dataobject.SysUser { return s.userDao.CheckPhoneNumUnique(body) } @@ -57,9 +57,9 @@ func (s UserService) Save(body request.UserBody) bool { func (s UserService) BindUserPost(user *request.UserBody) { postIds := user.PostIds if len(postIds) > 0 { - sysUserPosts := make([]entity.SysUserPost, 0) + sysUserPosts := make([]dataobject.SysUserPost, 0) for i := 0; i < len(postIds); i++ { - m := entity.SysUserPost{ + m := dataobject.SysUserPost{ UserId: user.UserId, PostId: postIds[i], } @@ -73,9 +73,9 @@ func (s UserService) BindUserPost(user *request.UserBody) { func (s UserService) BindUserRole(user *request.UserBody) { roleIds := user.RoleIds if len(roleIds) > 0 { - roles := make([]entity.SysUserRole, 0) + roles := make([]dataobject.SysUserRole, 0) for i := 0; i < len(roleIds); i++ { - role := entity.SysUserRole{ + role := dataobject.SysUserRole{ RoleId: roleIds[i], UserId: user.UserId, } @@ -111,7 +111,7 @@ func (s UserService) Remove(id int64) int64 { // CheckUserAllowed 校验是否可以修改用户密码 func (s UserService) CheckUserAllowed(body request.UserBody) bool { - user := entity.SysUser{} + user := dataobject.SysUser{} return user.IsAdmin(body.UserId) } diff --git a/modules/demo/dataobject/demo_student.go b/modules/demo/dataobject/demo_student.go new file mode 100644 index 0000000..a326cbe --- /dev/null +++ b/modules/demo/dataobject/demo_student.go @@ -0,0 +1,19 @@ +package dataobject + +import ( + "time" +) + +type Student struct { + Id int64 `xorm:"pk autoincr not null bigint 'id'"` + CreateBy string `xorm:"default 'NULL' varchar(255) 'create_by'"` + CreateTime time.Time `xorm:"default 'NULL' datetime 'create_time'"` + UpdateBy string `xorm:"default 'NULL' varchar(255) 'update_by'"` + UpdateTime time.Time `xorm:"default 'NULL' datetime 'update_time'"` + Name string `xorm:"default 'NULL' varchar(255) 'name'"` + Sex string `xorm:"default 'NULL' varchar(255) 'sex'"` +} + +func (s *Student) TableName() string { + return "student" +} diff --git a/modules/core/dao/index.go b/modules/xorm.go similarity index 92% rename from modules/core/dao/index.go rename to modules/xorm.go index b07a744..89689f0 100644 --- a/modules/core/dao/index.go +++ b/modules/xorm.go @@ -1,7 +1,8 @@ -package dao +package modules import ( - models2 "cutego/modules/core/entity" + "cutego/modules/core/dao" + models2 "cutego/modules/core/dataobject" "cutego/pkg/common" "cutego/pkg/config" "cutego/pkg/constant" @@ -70,10 +71,10 @@ func cacheInitDataToRedis() { func initDict() { // 查询字典类型数据 - dictTypeDao := new(DictTypeDao) + dictTypeDao := new(dao.DictTypeDao) typeAll := dictTypeDao.SelectAll() // 所有字典数据 - d := new(DictDataDao) + d := new(dao.DictDataDao) listData := d.GetDiceDataAll() for _, dictType := range typeAll { dictData := make([]map[string]interface{}, 0) @@ -95,8 +96,7 @@ func initDict() { func initConfig() { // 查询配置数据存入到缓存中 - configDao := new(ConfigDao) - configSession := configDao.sql(SqlDB.NewSession()) + configSession := SqlDB.NewSession().Table("sys_config") configs := make([]*models2.SysConfig, 0) err := configSession.Find(&configs) if err != nil { diff --git a/pkg/cache/index.go b/pkg/cache/index.go index 9fab338..8b887d4 100644 --- a/pkg/cache/index.go +++ b/pkg/cache/index.go @@ -1,7 +1,7 @@ package cache import ( - "cutego/modules/core/dao" + "cutego/modules" "cutego/pkg/common" "cutego/pkg/constant" ) @@ -9,14 +9,14 @@ import ( // RemoveList 批量根据Key删除数据 // @Param list []string 键合集 func RemoveList(list []string) { - dao.RedisDB.DELALL(list) + modules.RedisDB.DELALL(list) } // RemoveKey 根据key删除 // @Param key 键 // @Return int 删除的数量 func RemoveCache(key string) int { - del, err := dao.RedisDB.DEL(key) + del, err := modules.RedisDB.DEL(key) if err != nil { common.ErrorLog(err) } @@ -27,7 +27,7 @@ func RemoveCache(key string) int { // @Param key 键 // @Return string 值 func GetCache(key string) string { - val, err := dao.RedisDB.GET(key) + val, err := modules.RedisDB.GET(key) if err != nil { common.ErrorLog(constant.RedisConst{}.GetRedisError(), err.Error()) return "" @@ -40,7 +40,7 @@ func GetCache(key string) string { // @Param value 值 // @Return 新增的行数 func SetCache(key string, value interface{}) int { - n, err := dao.RedisDB.SET(key, common.StructToJson(value)) + n, err := modules.RedisDB.SET(key, common.StructToJson(value)) if err != nil { common.ErrorLog(constant.RedisConst{}.GetRedisError(), err.Error()) return 0 @@ -54,5 +54,5 @@ func SetCache(key string, value interface{}) int { // @Param sec 过期时间(单位: 秒) // @Return 新增的行数 func SetCacheTTL(key string, value interface{}, sec int) { - dao.RedisDB.SETEX(key, sec, common.StructToJson(value)) + modules.RedisDB.SETEX(key, sec, common.StructToJson(value)) } diff --git a/pkg/common/index.go b/pkg/common/index.go index 35a9ee5..8648781 100644 --- a/pkg/common/index.go +++ b/pkg/common/index.go @@ -150,7 +150,7 @@ func StructToJson(v interface{}) string { // 切片(interface{}.(期望类型)) // s := make([]interface {}, 0) // target := common.JsonToStruct(get, s) -// target.([]entity.SysDictData) +// target.([]dataobject.SysDictData) // // @Param data Json字符串 // @Param s 容器(结构体、Map等) diff --git a/pkg/jwt/jwt_handler.go b/pkg/jwt/jwt_handler.go index 39d16a0..1248c14 100644 --- a/pkg/jwt/jwt_handler.go +++ b/pkg/jwt/jwt_handler.go @@ -1,8 +1,8 @@ package jwt import ( + "cutego/modules" "cutego/modules/core/api/v1/response" - "cutego/modules/core/dao" "cutego/pkg/cache" "cutego/pkg/config" "errors" @@ -52,7 +52,7 @@ func JWTAuth() gin.HandlerFunc { } singleTag := config.AppEnvConfig.Login.Single if singleTag { - token, err := dao.RedisDB.GET(claims.UserInfo.UserName) + token, err := modules.RedisDB.GET(claims.UserInfo.UserName) if err == nil { if !(token == currentTokenStr) { c.JSON(http.StatusOK, gin.H{ diff --git a/pkg/tree/tree_dept/tree_dept.go b/pkg/tree/tree_dept/tree_dept.go index 47d8289..2771224 100644 --- a/pkg/tree/tree_dept/tree_dept.go +++ b/pkg/tree/tree_dept/tree_dept.go @@ -1,7 +1,7 @@ package tree_dept import ( - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "sort" ) @@ -201,10 +201,10 @@ func nodePartialSelected(trees []Tree) bool { return true } -type DeptList []entity.SysDept +type DeptList []dataobject.SysDept // ConvertToINodeArray 将当前数组转换成父类 INode 接口 数组 -func (s DeptList) ConvertToINodeArray(*[]entity.SysDept) (nodes []INode) { +func (s DeptList) ConvertToINodeArray(*[]dataobject.SysDept) (nodes []INode) { for _, v := range s { nodes = append(nodes, v) } @@ -212,7 +212,7 @@ func (s DeptList) ConvertToINodeArray(*[]entity.SysDept) (nodes []INode) { } // GetTree 获取树结构 -func (s DeptList) GetTree(treeSelect *[]entity.SysDept) []Tree { +func (s DeptList) GetTree(treeSelect *[]dataobject.SysDept) []Tree { s = *treeSelect array := s.ConvertToINodeArray(treeSelect) return GenerateTree(array, nil) diff --git a/pkg/tree/tree_menu/tree_menu.go b/pkg/tree/tree_menu/tree_menu.go index 3176d24..054f61b 100644 --- a/pkg/tree/tree_menu/tree_menu.go +++ b/pkg/tree/tree_menu/tree_menu.go @@ -1,7 +1,7 @@ package tree_menu import ( - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "github.com/druidcaesa/gotool" "sort" ) @@ -74,7 +74,7 @@ func GenerateTree(nodes, selectedNodes []INode) (trees []Tree) { var component = "Layout" m := make(map[string]interface{}) if v.GetData() != nil { - menu := v.GetData().(entity.SysMenu) + menu := v.GetData().(dataobject.SysMenu) m["title"] = menu.MenuName m["icon"] = menu.Icon m["noCache"] = menu.IsCache == 1 @@ -133,7 +133,7 @@ func recursiveTree(tree *Tree, nodes, selectedNodes []INode) { var component = "Layout" m := make(map[string]interface{}) if v.GetData() != nil { - menu := v.GetData().(entity.SysMenu) + menu := v.GetData().(dataobject.SysMenu) flag = menu.Visible == "1" m["title"] = menu.MenuName m["icon"] = menu.Icon @@ -265,10 +265,10 @@ func nodePartialSelected(trees []Tree) bool { return true } -type SystemMenus []entity.SysMenu +type SystemMenus []dataobject.SysMenu // ConvertToINodeArray 将当前数组转换成父类 INode 接口 数组 -func (s SystemMenus) ConvertToINodeArray(*[]entity.SysMenu) (nodes []INode) { +func (s SystemMenus) ConvertToINodeArray(*[]dataobject.SysMenu) (nodes []INode) { for _, v := range s { nodes = append(nodes, v) } @@ -276,7 +276,7 @@ func (s SystemMenus) ConvertToINodeArray(*[]entity.SysMenu) (nodes []INode) { } // GetTree 获取树结构数据 -func (s SystemMenus) GetTree(m *[]entity.SysMenu) []Tree { +func (s SystemMenus) GetTree(m *[]dataobject.SysMenu) []Tree { s = *m array := s.ConvertToINodeArray(m) return GenerateTree(array, nil) diff --git a/pkg/util/token_util.go b/pkg/util/token_util.go index 9964b75..89c04b1 100644 --- a/pkg/util/token_util.go +++ b/pkg/util/token_util.go @@ -1,9 +1,9 @@ package util import ( + "cutego/modules" "cutego/modules/core/api/v1/response" - "cutego/modules/core/dao" - "cutego/modules/core/entity" + "cutego/modules/core/dataobject" "cutego/pkg/common" "cutego/pkg/config" "cutego/pkg/jwt" @@ -32,7 +32,7 @@ func CheckLockToken(c *gin.Context) bool { if config.AppEnvConfig.Login.Single { // 获取redis中的token数据 info := GetUserInfo(c) - get, err := dao.RedisDB.GET(info.UserName) + get, err := modules.RedisDB.GET(info.UserName) if err != nil { common.ErrorLog(err) return false @@ -49,7 +49,7 @@ func CheckLockToken(c *gin.Context) bool { } // CheckIsAdmin 判断是否是超级管理员 -func CheckIsAdmin(user *entity.SysUser) bool { +func CheckIsAdmin(user *dataobject.SysUser) bool { if user.UserId == 1 { return true } else {