fix: 修复并发安全、Redis缓存空值、角色分配、用户列表重复等问题

- 修复: WebSocket OnlineUserMap 加锁, aliasCronMap 改用 sync.Map
- 修复: 替换 dgrijalva/jwt-go 为 golang-jwt/jwt (CVE)
- 修复: CronJob.Add 缺少 return, resp.ErrorResp 未处理 error 类型
- 修复: token_util 和 login_service 越界访问
- 修复: Logger 级别配置被代码覆盖
- 修复: SysConfig.ConfigValue 字段长度 varchar(1) -> varchar(500)
- 修复: Excel 导出列超过26列崩溃
- 修复: 数据库连接池配置过大, Ping goroutine 泄漏
- 修复: config_dao init 绕过缓存层
- 修复: Redis 空值导致 JSON 解析 panic
- 修复: 分配角色页面只返回用户已有角色, 未返回所有角色
- 修复: 用户列表因角色关联导致重复行
- 移除: 前端硬编码私钥和默认密码
- 修复: LoginBody 和 updateAuthRole 路径
This commit is contained in:
2026-07-29 14:26:57 +08:00
parent f6bc714171
commit d31be435db
51 changed files with 544 additions and 495 deletions
+4 -4
View File
@@ -63,11 +63,11 @@ func (a CronJobApi) Add(c *gin.Context) {
record := a.cronJobService.GetInfoByAlias(dto.FuncAlias)
if record.JobId > 0 {
resp.Error(c, "任务已存在!")
} else {
a.cronJobService.Save(dto)
cronjob.AppendCronFunc(dto.JobCron, dto.FuncAlias, dto.Status)
resp.OK(c)
return
}
a.cronJobService.Save(dto)
cronjob.AppendCronFunc(dto.JobCron, dto.FuncAlias, dto.Status)
resp.OK(c)
}
// Remove 删除定时任务
+55 -17
View File
@@ -7,7 +7,7 @@ import (
"cutego/modules/core/service"
"cutego/pkg/config"
"cutego/pkg/excels"
"cutego/pkg/logging"
"cutego/pkg/logger"
"cutego/pkg/page"
"cutego/pkg/resp"
"cutego/pkg/util"
@@ -16,6 +16,7 @@ import (
"io"
"net/http"
"strconv"
"strings"
)
// UserApi 用户操作api
@@ -93,28 +94,65 @@ func (a UserApi) AuthRole(c *gin.Context) {
userId := c.Param("userId")
parseInt, err := strconv.ParseInt(userId, 10, 64)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
c.JSON(http.StatusInternalServerError, resp.ErrorResp(err))
return
}
user := a.userService.GetUserById(parseInt)
// 查询角色
roles := a.roleService.GetRoleListByUserId(parseInt)
flag := dataobject.SysUser{}.IsAdmin(parseInt)
if flag {
m["roles"] = roles
} else {
roleList := make([]dataobject.SysRole, 0)
for _, role := range *roles {
if role.RoleId != 1 {
roleList = append(roleList, role)
}
// 查询所有角色
roleAll, _ := a.roleService.FindAll(nil)
// 查询用户已有角色id集合
roleIds := a.roleService.FindRoleListByUserId(parseInt)
// 将角色id集合转为map, 便于快速判断
roleIdMap := make(map[int64]bool)
if roleIds != nil {
for _, id := range *roleIds {
roleIdMap[id] = true
}
m["roles"] = roleList
}
roleList := make([]dataobject.SysRole, 0)
for _, role := range roleAll {
// 标记是否已分配
role.Flag = roleIdMap[role.RoleId]
roleList = append(roleList, *role)
}
m["roles"] = roleList
m["user"] = user
c.JSON(http.StatusOK, resp.Success(m))
}
// AuthRoleUpdate 更新用户授权角色
func (a UserApi) AuthRoleUpdate(c *gin.Context) {
userIdStr := c.Query("userId")
roleIdsStr := c.Query("roleIds")
if userIdStr == "" {
resp.ParamError(c, "缺少userId参数")
return
}
userId, err := strconv.ParseInt(userIdStr, 10, 64)
if err != nil {
resp.ParamError(c, "userId参数错误")
return
}
// 先删除用户所有角色关联
a.userService.RemoveUserRole(userId)
// 解析并添加新角色
if roleIdsStr != "" {
roleIdStrs := strings.Split(roleIdsStr, ",")
roleIds := make([]int64, 0, len(roleIdStrs))
for _, s := range roleIdStrs {
id, err := strconv.ParseInt(strings.TrimSpace(s), 10, 64)
if err == nil {
roleIds = append(roleIds, id)
}
}
if len(roleIds) > 0 {
a.userService.BindUserRoleIds(userId, roleIds)
}
}
resp.OK(c)
}
// Add 新增用户
func (a UserApi) Add(c *gin.Context) {
userBody := request.UserBody{}
@@ -174,7 +212,7 @@ func (a UserApi) Remove(c *gin.Context) {
param := c.Param("userId")
userId, err := strconv.ParseInt(param, 10, 64)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
c.JSON(http.StatusInternalServerError, resp.ErrorResp("参数错误"))
return
}
@@ -294,13 +332,13 @@ func (a UserApi) Avatar(c *gin.Context) {
fileAppend, err := gotool.FileUtils.OpenFileAppend(filePath)
defer fileAppend.Close()
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
resp.Error(c)
return
}
_, err = io.Copy(fileAppend, file)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
resp.Error(c)
return
}
+8 -1
View File
@@ -11,8 +11,15 @@ import (
// @Return *models2.SysConfig
func GetRedisConfig(key string) *models2.SysConfig {
val := cache.GetCache(constant.RedisConst{}.GetRedisConfigKey() + key)
if val == "" {
return nil
}
s := new(models2.SysConfig)
return cache.JsonToStruct(val, s).(*models2.SysConfig)
result := cache.JsonToStruct(val, s)
if result == nil {
return nil
}
return result.(*models2.SysConfig)
}
// SetRedisConfig 将配置存入缓存
+3
View File
@@ -11,6 +11,9 @@ import (
// @Return interface {}
func GetRedisDict(key string) interface{} {
val := cache.GetCache(key)
if val == "" {
return nil
}
s := make([]interface{}, 0)
return cache.JsonToStruct(val, s)
}
+14 -20
View File
@@ -5,9 +5,10 @@ import (
"cutego/modules/core/dataobject"
"cutego/pkg/cache"
"cutego/pkg/constant"
"cutego/pkg/logging"
"cutego/pkg/logger"
"cutego/pkg/page"
"cutego/refs"
"github.com/druidcaesa/gotool"
"github.com/go-xorm/xorm"
)
@@ -24,7 +25,7 @@ func (d ConfigDao) SelectByConfigKey(configKey string) *dataobject.SysConfig {
config := dataobject.SysConfig{}
_, err := d.sql(refs.SqlDB.NewSession()).Where("config_key = ?", configKey).Get(&config)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &config
@@ -52,7 +53,7 @@ func (d ConfigDao) SelectPage(query request.ConfigQuery) (*[]dataobject.SysConfi
total, _ := page.GetTotal(session.Clone())
err := session.Limit(query.PageSize, page.StartSize(query.PageNum, query.PageSize)).Find(&configs)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil, 0
}
return &configs, total
@@ -66,7 +67,7 @@ func (d ConfigDao) CheckConfigKeyUnique(config dataobject.SysConfig) int64 {
}
count, err := session.And("config_key = ?", config.ConfigKey).Cols("config_id").Count()
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return 0
}
return count
@@ -78,7 +79,7 @@ func (d ConfigDao) Insert(config dataobject.SysConfig) int64 {
session.Begin()
insert, err := session.Insert(&config)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return 0
}
@@ -92,7 +93,7 @@ func (d ConfigDao) SelectById(id int64) *dataobject.SysConfig {
session := d.sql(refs.SqlDB.NewSession())
_, err := session.Where("config_id = ?", id).Get(&config)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &config
@@ -104,7 +105,7 @@ func (d ConfigDao) Update(config dataobject.SysConfig) int64 {
session.Begin()
update, err := session.Where("config_id = ?", config.ConfigId).Update(&config)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return 0
}
@@ -117,7 +118,7 @@ func (d ConfigDao) CheckConfigByIds(list []int64) *[]dataobject.SysConfig {
configs := make([]dataobject.SysConfig, 0)
err := d.sql(refs.SqlDB.NewSession()).In("config_id", list).Find(&configs)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &configs
@@ -129,7 +130,7 @@ func (d ConfigDao) Delete(list []int64) bool {
session.Begin()
_, err := session.In("config_id", list).Delete(&dataobject.SysConfig{})
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return false
}
@@ -143,30 +144,23 @@ func (d ConfigDao) SelectAll() *[]dataobject.SysConfig {
session := refs.SqlDB.NewSession()
err := session.Find(&configs)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &configs
}
func init() {
func PreInitConfig() {
// 查询配置数据存入到缓存中
configDao := new(ConfigDao)
configSession := configDao.sql(refs.SqlDB.NewSession())
configs := make([]*dataobject.SysConfig, 0)
err := configSession.Find(&configs)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return
}
for _, sysConfig := range configs {
refs.RedisDB.SET(constant.RedisConst{}.GetRedisConfigKey()+sysConfig.ConfigKey, cache.StructToJson(map[string]interface{}{
"configId": sysConfig.ConfigId,
"configName": sysConfig.ConfigName,
"configKey": sysConfig.ConfigKey,
"configValue": sysConfig.ConfigValue,
"configType": sysConfig.ConfigType,
"remark": sysConfig.Remark,
}))
cache.SetCache(constant.RedisConst{}.GetRedisConfigKey()+sysConfig.ConfigKey, sysConfig)
}
}
+8 -8
View File
@@ -3,7 +3,7 @@ package dao
import (
"cutego/modules/core/api/v1/request"
"cutego/modules/core/dataobject"
"cutego/pkg/logging"
"cutego/pkg/logger"
"cutego/pkg/page"
"cutego/refs"
"github.com/druidcaesa/gotool"
@@ -30,7 +30,7 @@ func (d CronJobDao) SelectPage(query request.CronJobQuery) ([]dataobject.SysCron
total, _ := page.GetTotal(session.Clone())
err := session.Limit(query.PageSize, page.StartSize(query.PageNum, query.PageSize)).Find(&configs)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil, 0
}
return configs, total
@@ -42,7 +42,7 @@ func (d CronJobDao) Insert(config dataobject.SysCronJob) int64 {
session.Begin()
insert, err := session.Insert(&config)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return 0
}
@@ -56,7 +56,7 @@ func (d CronJobDao) SelectById(id int64) *dataobject.SysCronJob {
session := d.sql(refs.SqlDB.NewSession())
_, err := session.Where("job_id = ?", id).Get(&config)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &config
@@ -68,7 +68,7 @@ func (d CronJobDao) Update(config dataobject.SysCronJob) int64 {
session.Begin()
update, err := session.Where("job_id = ?", config.JobId).Update(&config)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return 0
}
@@ -82,7 +82,7 @@ func (d CronJobDao) Delete(list []int64) bool {
session.Begin()
_, err := session.In("job_id", list).Delete(&dataobject.SysCronJob{})
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return false
}
@@ -96,7 +96,7 @@ func (d CronJobDao) SelectByFuncAlias(funcAlias string) *dataobject.SysCronJob {
session := d.sql(refs.SqlDB.NewSession())
_, err := session.Where("func_alias = ?", funcAlias).Get(&config)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &config
@@ -108,7 +108,7 @@ func (d CronJobDao) SelectAll() ([]dataobject.SysCronJob, int) {
session := d.sql(refs.SqlDB.NewSession())
err := session.Where("status = ?", 1).Find(&configs)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil, 0
}
return configs, len(configs)
+9 -9
View File
@@ -3,7 +3,7 @@ package dao
import (
"cutego/modules/core/api/v1/request"
"cutego/modules/core/dataobject"
"cutego/pkg/logging"
"cutego/pkg/logger"
"cutego/refs"
"github.com/druidcaesa/gotool"
)
@@ -26,7 +26,7 @@ func (d DeptDao) SelectTree(query request.DeptQuery) *[]dataobject.SysDept {
}
err := session.OrderBy("parent_id").OrderBy("order_num").Find(&depts)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &depts
@@ -43,7 +43,7 @@ func (d DeptDao) SelectDeptListByRoleId(id int64, strictly bool) *[]int64 {
}
err := session.OrderBy("d.parent_id").OrderBy("d.order_num").Find(&list)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &list
@@ -65,7 +65,7 @@ func (d DeptDao) GetList(query request.DeptQuery) *[]dataobject.SysDept {
}
err := session.Find(&list)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &list
@@ -76,7 +76,7 @@ func (d DeptDao) SelectDeptById(id int) *dataobject.SysDept {
dept := dataobject.SysDept{}
_, err := refs.SqlDB.NewSession().Where("dept_id = ?", id).Get(&dept)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &dept
@@ -88,7 +88,7 @@ func (d DeptDao) Insert(dept dataobject.SysDept) int64 {
session.Begin()
insert, err := session.Insert(&dept)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return 0
}
@@ -101,7 +101,7 @@ func (d DeptDao) CheckDeptNameUnique(dept dataobject.SysDept) int64 {
session := refs.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 {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return 1
}
return count
@@ -132,7 +132,7 @@ func (d DeptDao) Delete(id int) int64 {
i, err := session.Where("dept_id = ?", id).Delete(&dept)
if err != nil {
session.Rollback()
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return 0
}
session.Commit()
@@ -146,7 +146,7 @@ func (d DeptDao) Update(dept dataobject.SysDept) int64 {
update, err := session.Where("dept_id = ?", dept.DeptId).Update(&dept)
if err != nil {
session.Rollback()
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return 0
}
session.Commit()
+10 -9
View File
@@ -5,9 +5,10 @@ import (
"cutego/modules/core/dataobject"
"cutego/pkg/cache"
"cutego/pkg/constant"
"cutego/pkg/logging"
"cutego/pkg/logger"
"cutego/pkg/page"
"cutego/refs"
"github.com/druidcaesa/gotool"
"github.com/go-xorm/xorm"
)
@@ -28,7 +29,7 @@ func (d *DictDataDao) SelectByDictType(dictType string) []dataobject.SysDictData
err := session.Where("status = '0' ").And("dict_type = ?", dictType).OrderBy("dict_sort").Asc("dict_sort").
Find(&data)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return data
@@ -42,7 +43,7 @@ func (d DictDataDao) GetDiceDataAll() *[]dataobject.SysDictData {
err := session.Where("status = '0' ").OrderBy("dict_sort").Asc("dict_sort").
Find(&data)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &data
@@ -67,7 +68,7 @@ func (d *DictDataDao) SelectPage(query request.DiceDataQuery) (*[]dataobject.Sys
total, _ := page.GetTotal(session.Clone())
err := session.Limit(query.PageSize, page.StartSize(query.PageNum, query.PageSize)).Find(&list)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil, 0
}
return &list, total
@@ -81,7 +82,7 @@ func (d *DictDataDao) SelectByDictCode(dictCode int64) *dataobject.SysDictData {
session := refs.SqlDB.NewSession()
_, err := session.Where("dict_code = ?", dictCode).Get(&data)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &data
@@ -96,7 +97,7 @@ func (d *DictDataDao) Insert(data dataobject.SysDictData) int64 {
insert, err := session.Insert(&data)
if err != nil {
session.Rollback()
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return 0
}
session.Commit()
@@ -109,7 +110,7 @@ func (d *DictDataDao) Delete(codes []int64) bool {
session.Begin()
_, err := session.In("dict_code", codes).Delete(&dataobject.SysDictData{})
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return false
}
@@ -124,14 +125,14 @@ func (d *DictDataDao) Update(data dataobject.SysDictData) bool {
_, err := session.Where("dict_code = ?", data.DictCode).Update(&data)
if err != nil {
session.Rollback()
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return false
}
session.Commit()
return true
}
func init() {
func PreInitDictData() {
// 查询字典类型数据
dictTypeDao := new(DictTypeDao)
typeAll := dictTypeDao.SelectAll()
+8 -8
View File
@@ -3,7 +3,7 @@ package dao
import (
"cutego/modules/core/api/v1/request"
"cutego/modules/core/dataobject"
"cutego/pkg/logging"
"cutego/pkg/logger"
"cutego/pkg/page"
"cutego/refs"
"github.com/druidcaesa/gotool"
@@ -22,7 +22,7 @@ func (d DictTypeDao) SelectAll() []*dataobject.SysDictType {
types := make([]*dataobject.SysDictType, 0)
err := d.sql(refs.SqlDB.NewSession()).Where("status = '0'").Find(&types)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return types
@@ -50,7 +50,7 @@ func (d DictTypeDao) SelectPage(query request.DictTypeQuery) (*[]dataobject.SysD
total, _ := page.GetTotal(session.Clone())
err := session.Limit(query.PageSize, page.StartSize(query.PageNum, query.PageSize)).Find(&list)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil, 0
}
return &list, total
@@ -61,7 +61,7 @@ func (d DictTypeDao) SelectById(id int64) *dataobject.SysDictType {
dictType := dataobject.SysDictType{}
_, err := refs.SqlDB.NewSession().Where("dict_id = ?", id).Get(&dictType)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &dictType
@@ -75,7 +75,7 @@ func (d DictTypeDao) CheckDictTypeUnique(dictType dataobject.SysDictType) int64
}
count, err := session.Where("dict_type = ?", dictType.DictType).Cols("dict_id").Count()
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return 0
}
return count
@@ -87,7 +87,7 @@ func (d DictTypeDao) Update(dictType dataobject.SysDictType) bool {
session.Begin()
_, err := session.Where("dict_id = ?", dictType.DictId).Update(&dictType)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return false
}
@@ -101,7 +101,7 @@ func (d DictTypeDao) Insert(dictType dataobject.SysDictType) int64 {
session.Begin()
insert, err := session.Insert(&dictType)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return 0
}
@@ -116,7 +116,7 @@ func (d DictTypeDao) Delete(ids []int64) bool {
_, err := session.In("dict_id", ids).Delete(dataobject.SysDictType{})
if err != nil {
session.Rollback()
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return false
}
session.Commit()
+3 -3
View File
@@ -3,7 +3,7 @@ package dao
import (
"cutego/modules/core/api/v1/request"
"cutego/modules/core/dataobject"
"cutego/pkg/logging"
"cutego/pkg/logger"
"cutego/pkg/page"
"cutego/refs"
"github.com/druidcaesa/gotool"
@@ -30,7 +30,7 @@ func (d LogDao) SelectPage(query request.LogQuery) ([]dataobject.SysLog, int64)
total, _ := page.GetTotal(session.Clone())
err := session.Limit(query.PageSize, page.StartSize(query.PageNum, query.PageSize)).Find(&configs)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil, 0
}
return configs, total
@@ -42,7 +42,7 @@ func (d LogDao) Insert(config dataobject.SysLog) int64 {
session.Begin()
insert, err := session.Insert(&config)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return 0
}
+3 -3
View File
@@ -3,7 +3,7 @@ package dao
import (
"cutego/modules/core/api/v1/request"
"cutego/modules/core/dataobject"
"cutego/pkg/logging"
"cutego/pkg/logger"
"cutego/pkg/page"
"cutego/refs"
"github.com/go-xorm/xorm"
@@ -25,7 +25,7 @@ func (d LoginInfoDao) SelectPage(query request.LoginInfoQuery) (*[]dataobject.Sy
total, _ := page.GetTotal(session.Clone())
err := session.Limit(query.PageSize, page.StartSize(query.PageNum, query.PageSize)).Find(&loginInfos)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil, 0
}
return &loginInfos, total
@@ -37,7 +37,7 @@ func (d LoginInfoDao) Insert(body dataobject.SysLoginInfo) *dataobject.SysLoginI
session.Begin()
_, err := session.Table("sys_login_info").Insert(&body)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
}
session.Commit()
+11 -11
View File
@@ -3,7 +3,7 @@ package dao
import (
"cutego/modules/core/api/v1/request"
"cutego/modules/core/dataobject"
"cutego/pkg/logging"
"cutego/pkg/logger"
"cutego/refs"
"github.com/druidcaesa/gotool"
)
@@ -21,7 +21,7 @@ func (d MenuDao) GetMenuPermission(id int64) *[]string {
Join("LEFT", []string{"sys_role", "r"}, "r.role_id = ur.role_id").
Where("m.status = '0'").And("r.status = '0'").And("ur.user_id = ?", id).Find(&perms)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &perms
@@ -34,7 +34,7 @@ func (d MenuDao) GetMenuAll() *[]dataobject.SysMenu {
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 {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &menus
@@ -51,7 +51,7 @@ func (d MenuDao) GetMenuByUserId(id int64) *[]dataobject.SysMenu {
Join("LEFT", []string{"sys_user", "u"}, "ur.user_id = u.user_id").Where("u.user_id = ?", id).
And("m.menu_type in ('M', 'C')").And("m.status = 0").OrderBy("m.parent_id").OrderBy("m.order_num").Find(&menus)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &menus
@@ -68,7 +68,7 @@ func (d MenuDao) SelectMenuByRoleId(id int64, strictly bool) *[]int64 {
}
err := session.OrderBy("m.parent_id").OrderBy("m.order_num").Cols("m.menu_id").Find(&list)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &list
@@ -89,7 +89,7 @@ func (d MenuDao) SelectMenuList(query request.MenuQuery) *[]dataobject.SysMenu {
}
err := session.Find(&list)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &list
@@ -115,7 +115,7 @@ func (d MenuDao) SelectMenuListByUserId(query request.MenuQuery) *[]dataobject.S
}
err := session.Find(&list)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &list
@@ -128,7 +128,7 @@ func (d MenuDao) SelectMenuByMenuId(id int) *dataobject.SysMenu {
}
_, err := refs.SqlDB.NewSession().Where("menu_id = ?", menu.MenuId).Get(&menu)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &menu
@@ -140,7 +140,7 @@ func (d MenuDao) Insert(menu dataobject.SysMenu) int64 {
session.Begin()
insert, err := session.Insert(&menu)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return 0
}
@@ -154,7 +154,7 @@ func (d MenuDao) Update(menu dataobject.SysMenu) int64 {
session.Begin()
update, err := session.Where("menu_id = ?", menu.MenuId).Update(&menu)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return 0
}
@@ -171,7 +171,7 @@ func (d MenuDao) Delete(id int) int64 {
session.Begin()
i, err := session.Delete(&menu)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return 0
}
+6 -6
View File
@@ -3,7 +3,7 @@ package dao
import (
"cutego/modules/core/api/v1/request"
"cutego/modules/core/dataobject"
"cutego/pkg/logging"
"cutego/pkg/logger"
"cutego/pkg/page"
"cutego/refs"
"github.com/druidcaesa/gotool"
@@ -28,7 +28,7 @@ func (d NoticeDao) SelectPage(query request.NoticeQuery) (*[]dataobject.SysNotic
total, _ := page.GetTotal(session.Clone())
err := session.Limit(query.PageSize, page.StartSize(query.PageNum, query.PageSize)).Find(&notices)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil, 0
}
return &notices, total
@@ -41,7 +41,7 @@ func (d NoticeDao) Insert(notice dataobject.SysNotice) int64 {
insert, err := session.Insert(&notice)
if err != nil {
session.Rollback()
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return 0
}
session.Commit()
@@ -55,7 +55,7 @@ func (d NoticeDao) Delete(list []int64) int64 {
i, err := session.In("notice_id", list).Delete(&dataobject.SysNotice{})
if err != nil {
session.Rollback()
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return 0
}
session.Commit()
@@ -67,7 +67,7 @@ func (d NoticeDao) SelectById(id int64) *dataobject.SysNotice {
notice := dataobject.SysNotice{}
_, err := refs.SqlDB.NewSession().Where("notice_id = ?", id).Get(&notice)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &notice
@@ -80,7 +80,7 @@ func (d NoticeDao) Update(notice dataobject.SysNotice) int64 {
update, err := session.Where("notice_id = ?", notice.NoticeId).Update(&notice)
if err != nil {
session.Rollback()
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return 0
}
session.Commit()
+9 -9
View File
@@ -3,7 +3,7 @@ package dao
import (
"cutego/modules/core/api/v1/request"
"cutego/modules/core/dataobject"
"cutego/pkg/logging"
"cutego/pkg/logger"
"cutego/pkg/page"
"cutego/refs"
"github.com/druidcaesa/gotool"
@@ -25,7 +25,7 @@ func (d PostDao) SelectAll() []*dataobject.SysPost {
posts := make([]*dataobject.SysPost, 0)
err := session.Find(&posts)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return posts
@@ -37,7 +37,7 @@ func (d PostDao) SelectPostListByUserId(userId int64) *[]int64 {
selectSql := d.sqlSelectJoin(refs.SqlDB.NewSession())
err := selectSql.Where("u.user_id = ?", userId).Cols("p.post_id").Find(&ids)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &ids
@@ -59,7 +59,7 @@ func (d PostDao) SelectPage(query request.PostQuery) (*[]dataobject.SysPost, int
total, _ := page.GetTotal(session.Clone())
err := session.Limit(query.PageSize, page.StartSize(query.PageNum, query.PageSize)).Find(&posts)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil, 0
}
return &posts, total
@@ -94,7 +94,7 @@ func (d PostDao) Insert(post dataobject.SysPost) int64 {
insert, err := session.Insert(&post)
if err != nil {
session.Rollback()
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return 0
}
session.Commit()
@@ -105,7 +105,7 @@ func (d PostDao) Insert(post dataobject.SysPost) int64 {
func (d PostDao) GetPostById(post dataobject.SysPost) *dataobject.SysPost {
_, err := refs.SqlDB.NewSession().Where("post_id = ?", post.PostId).Get(&post)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &post
@@ -119,7 +119,7 @@ func (d PostDao) Delete(posts []int64) int64 {
i, err := session.In("post_id", posts).Delete(&dataobject.SysPost{})
if err != nil {
session.Rollback()
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return 0
}
session.Commit()
@@ -133,7 +133,7 @@ func (d PostDao) Update(post dataobject.SysPost) bool {
_, err := session.Where("post_id = ?", post.PostId).Update(&post)
if err != nil {
session.Rollback()
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return false
}
session.Commit()
@@ -147,7 +147,7 @@ func (d PostDao) SelectPostByUserName(name string) *[]dataobject.SysPost {
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)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &posts
+14 -15
View File
@@ -3,7 +3,7 @@ package dao
import (
"cutego/modules/core/api/v1/request"
"cutego/modules/core/dataobject"
"cutego/pkg/logging"
"cutego/pkg/logger"
"cutego/pkg/page"
"cutego/refs"
"github.com/druidcaesa/gotool"
@@ -57,11 +57,10 @@ func (d RoleDao) SelectPage(q *request.RoleQuery) ([]*dataobject.SysRole, int64)
// SelectAll 查询所有角色
func (d RoleDao) SelectAll() []*dataobject.SysRole {
sql := d.sqlSelectJoin()
roles := make([]*dataobject.SysRole, 0)
err := sql.Find(&roles)
err := refs.SqlDB.Table(dataobject.SysRole{}.TableName()).Find(&roles)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return roles
@@ -73,7 +72,7 @@ func (d RoleDao) SelectRoleListByUserId(userId int64) *[]int64 {
var roleIds []int64
err := sqlSelectRoleAndUser.Cols("r.role_id").Where("u.user_id = ?", userId).Find(&roleIds)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &roleIds
@@ -84,7 +83,7 @@ func (d RoleDao) SelectRolePermissionByUserId(id int64) *[]string {
var roleKeys []string
err := d.sqlSelectJoin().Cols("r.role_key").Where("r.del_flag = '0'").And("ur.user_id = ?", id).Find(&roleKeys)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &roleKeys
@@ -95,7 +94,7 @@ 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 {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &roles
@@ -106,7 +105,7 @@ func (d RoleDao) SelectRoleByRoleId(id int64) *dataobject.SysRole {
role := dataobject.SysRole{}
_, err := d.sqlSelectJoin().Where("r.role_id = ?", id).Get(&role)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &role
@@ -120,7 +119,7 @@ func (d RoleDao) CheckRoleNameUnique(role dataobject.SysRole) int64 {
}
count, err := session.Count(&role)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
}
return count
}
@@ -133,7 +132,7 @@ func (d RoleDao) CheckRoleKeyUnique(role dataobject.SysRole) int64 {
}
count, err := session.Count(&role)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
}
return count
}
@@ -144,7 +143,7 @@ func (d RoleDao) Insert(role dataobject.SysRole) dataobject.SysRole {
session.Begin()
_, err := session.Insert(&role)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
}
session.Commit()
@@ -157,7 +156,7 @@ func (d RoleDao) Update(role dataobject.SysRole) int64 {
session.Begin()
update, err := session.Where("role_id = ?", role.RoleId).Update(&role)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return 0
}
@@ -171,7 +170,7 @@ func (d RoleDao) Delete(role dataobject.SysRole) int64 {
session.Begin()
i, err := session.Delete(&role)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return 0
}
@@ -185,7 +184,7 @@ func (d RoleDao) UpdateRoleStatus(role *dataobject.SysRole) int64 {
session.Begin()
update, err := session.Where("role_id = ?", role.RoleId).Cols("status", "update_by", "update_time").Update(role)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return 0
}
@@ -199,7 +198,7 @@ func (d RoleDao) SelectRolesByUserName(name string) *[]dataobject.SysRole {
session := d.sqlSelectJoin()
err := session.Where("r.del_flag = '0'").And("u.user_name = ?", name).Find(&roles)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
return &roles
+3 -3
View File
@@ -2,7 +2,7 @@ package dao
import (
"cutego/modules/core/dataobject"
"cutego/pkg/logging"
"cutego/pkg/logger"
"cutego/refs"
)
@@ -15,7 +15,7 @@ func (d RoleMenuDao) Insert(list []dataobject.SysRoleMenu) int64 {
session.Begin()
insert, err := session.Insert(&list)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
}
session.Commit()
@@ -31,7 +31,7 @@ func (d RoleMenuDao) Delete(role dataobject.SysRole) {
session.Begin()
_, err := session.Delete(&menu)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
}
session.Commit()
+20 -14
View File
@@ -4,7 +4,7 @@ import (
"cutego/modules/core/api/v1/request"
"cutego/modules/core/api/v1/response"
"cutego/modules/core/dataobject"
"cutego/pkg/logging"
"cutego/pkg/logger"
"cutego/pkg/page"
"cutego/refs"
"github.com/druidcaesa/gotool"
@@ -23,10 +23,16 @@ func (d UserDao) sqlSelectJoin() *xorm.Session {
Join("LEFT", []string{"sys_role", "r"}, "r.role_id = ur.role_id")
}
// 查询列表专用sql, 不关联角色表避免重复行
func (d UserDao) sqlSelectList() *xorm.Session {
return refs.SqlDB.NewSession().Table([]string{"sys_user", "u"}).
Join("LEFT", []string{"sys_dept", "d"}, "u.dept_id = d.dept_id")
}
// SelectPage 查询用户集合
func (d UserDao) SelectPage(query request.UserQuery) ([]*response.UserResponse, int64) {
resp := make([]*response.UserResponse, 0)
sql := d.sqlSelectJoin()
sql := d.sqlSelectList()
if !gotool.StrUtils.HasEmpty(query.UserName) {
sql.And("u.user_name like concat('%',?,'%')", query.UserName)
}
@@ -48,7 +54,7 @@ func (d UserDao) SelectPage(query request.UserQuery) ([]*response.UserResponse,
total, _ := page.GetTotal(sql.Clone())
err := sql.Limit(query.PageSize, page.StartSize(query.PageNum, query.PageSize)).Find(&resp)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil, 0
}
return resp, total
@@ -59,7 +65,7 @@ func (d UserDao) GetUserById(userId int64) *response.UserResponse {
var resp response.UserResponse
get, err := d.sqlSelectJoin().Where("u.user_id = ?", userId).Get(&resp)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
}
if !get {
return nil
@@ -71,7 +77,7 @@ func (d UserDao) GetUserById(userId int64) *response.UserResponse {
func (d UserDao) GetUserByUserName(user dataobject.SysUser) *dataobject.SysUser {
i, err := refs.SqlDB.Get(&user)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
if i {
@@ -118,7 +124,7 @@ func (d UserDao) Insert(body request.UserBody) *request.UserBody {
session.Begin()
_, err := session.Table("sys_user").Insert(&body)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
}
session.Commit()
@@ -132,7 +138,7 @@ func (d UserDao) Update(body request.UserBody) int64 {
_, err := session.Where("user_id = ?", body.UserId).Update(&body)
if err != nil {
session.Rollback()
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return 0
}
session.Commit()
@@ -148,7 +154,7 @@ func (d UserDao) Delete(id int64) int64 {
session.Begin()
i, err := session.Delete(&user)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
}
session.Commit()
@@ -165,7 +171,7 @@ func (d UserDao) ResetPwd(body request.UserBody) int64 {
session.Begin()
_, err := session.Where("user_id = ?", user.UserId).Cols("password").Update(&user)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return 0
}
@@ -190,7 +196,7 @@ func (d UserDao) GetAllocatedList(query request.UserQuery) ([]*response.UserResp
total, _ := page.GetTotal(session.Clone())
err := session.Limit(query.PageSize, page.StartSize(query.PageNum, query.PageSize)).Find(&resp)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil, 0
}
return resp, total
@@ -214,7 +220,7 @@ func (d UserDao) GetUnallocatedList(query request.UserQuery) ([]*response.UserRe
total, _ := page.GetTotal(session.Clone())
err := session.Limit(query.PageSize, page.StartSize(query.PageNum, query.PageSize)).Find(&resp)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil, 0
}
return resp, total
@@ -229,7 +235,7 @@ func (d UserDao) UpdatePwd(id int64, hash string) int64 {
session.Begin()
update, err := session.Cols("password").Where("user_id = ?", id).Update(&user)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return 0
}
@@ -250,7 +256,7 @@ func (d UserDao) UpdateAvatar(info *response.UserResponse) int64 {
update, err := session.Cols("avatar", "update_by", "update_time").Where("user_id = ?", user.UserId).Update(&user)
if err != nil {
session.Rollback()
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return 0
}
session.Commit()
@@ -269,7 +275,7 @@ func (d UserDao) UpdateStatus(info request.UserBody) int64 {
update, err := session.Cols("status", "update_by", "update_time").Where("user_id = ?", user.UserId).Update(&user)
if err != nil {
session.Rollback()
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return 0
}
session.Commit()
+4 -4
View File
@@ -2,7 +2,7 @@ package dao
import (
"cutego/modules/core/dataobject"
"cutego/pkg/logging"
"cutego/pkg/logger"
"cutego/refs"
)
@@ -15,7 +15,7 @@ func (d UserPostDao) BatchInsert(posts []dataobject.SysUserPost) {
session.Begin()
_, err := session.Table(dataobject.SysUserPost{}.TableName()).Insert(&posts)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return
}
@@ -31,7 +31,7 @@ func (d UserPostDao) Delete(id int64) {
session.Begin()
_, err := session.Delete(&post)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
}
session.Commit()
@@ -41,7 +41,7 @@ func (d UserPostDao) Delete(id int64) {
func (d UserPostDao) CountById(id int64) int64 {
count, err := refs.SqlDB.NewSession().Table("sys_user_post").Cols("post_id").Where("post_id = ?", id).Count()
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return 0
}
return count
+5 -5
View File
@@ -3,7 +3,7 @@ package dao
import (
"cutego/modules/core/api/v1/request"
"cutego/modules/core/dataobject"
"cutego/pkg/logging"
"cutego/pkg/logger"
"cutego/refs"
)
@@ -16,7 +16,7 @@ func (d UserRoleDao) BatchInsert(roles []dataobject.SysUserRole) {
session.Begin()
_, err := session.Table(dataobject.SysUserRole{}.TableName()).Insert(&roles)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return
}
@@ -32,7 +32,7 @@ func (d UserRoleDao) Delete(id int64) {
session.Begin()
_, err := session.Delete(&role)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return
}
@@ -45,7 +45,7 @@ func (d UserRoleDao) DeleteAuthUser(role dataobject.SysUserRole) int64 {
session.Begin()
i, err := session.Delete(&role)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return 0
}
@@ -68,7 +68,7 @@ func (d UserRoleDao) InsertAuthUsers(body request.UserRoleBody) int64 {
session.Begin()
insert, err := session.Insert(&roles)
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
session.Rollback()
return 0
}
+1 -1
View File
@@ -8,7 +8,7 @@ type SysConfig struct {
ConfigId int `excel:"name=参数主键" xorm:"pk autoincr" json:"configId"` // 主键id
ConfigName string `excel:"name=参数名称" xorm:"varchar(100)" json:"configName"` // 参数名称
ConfigKey string `excel:"name=参数键名" xorm:"varchar(100)" json:"configKey"` // 参数建名
ConfigValue string `excel:"name=参数键值" xorm:"varchar(1)" json:"configValue"` // 参数键值
ConfigValue string `excel:"name=参数键值" xorm:"varchar(500)" json:"configValue"` // 参数键值
ConfigType string `excel:"name=系统内置,format=Y=是,N=否" xorm:"char(1)" json:"configType"` // 系统内置(Y是 N否)
CreateBy string `xorm:"varchar(64)" json:"createBy"` // 创建人
CreateTime time.Time `xorm:"created" json:"createTime"` // 创建时间
@@ -12,6 +12,7 @@ type SysRole struct {
DeptCheckStrictly bool `excel:"-" json:"deptCheckStrictly"` // 部门树选择项是否关联显示
Status string `excel:"name=角色状态,format=0=正常,1=停用" xorm:"char(1)" json:"status"` // 角色状态 0正常1停用
DelFlag string `excel:"" xorm:"char(1)" json:"delFlag"` // 删除标记0正常1删除
Flag bool `xorm:"-" json:"flag"` // 是否已分配
CreateTime time.Time `excel:"" xorm:"created" json:"createTime"` // 创建时间
CreateBy string `excel:"" json:"createBy"` // 创建人
UpdateTime time.Time `excel:"" xorm:"updated" json:"updateTime"` // 更新时间
@@ -22,6 +22,8 @@ func initUserRouter(router *gin.RouterGroup) {
userRouter.DELETE("/remove/:userId", userApi.Remove)
// 重置密码
userRouter.PUT("/resetPwd", userApi.ResetPwd)
// 授权角色
userRouter.PUT("/authRole", userApi.AuthRoleUpdate)
userRouter.GET("/export", userApi.Export)
userRouter.GET("/profile", userApi.Profile)
// 修改个人数据
+11 -3
View File
@@ -3,7 +3,7 @@ package service
import (
"cutego/modules/core/api/v1/response"
"cutego/pkg/jwt"
"cutego/pkg/logging"
"cutego/pkg/logger"
"github.com/druidcaesa/gotool"
"github.com/gin-gonic/gin"
"strings"
@@ -25,7 +25,7 @@ func (s LoginService) Login(name string, password string) (bool, string) {
// 生成token
token, err := jwt.CreateUserToken(s.userService.GetUserById(user.UserId))
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return false, ""
}
// 数据存储到redis中
@@ -36,10 +36,18 @@ func (s LoginService) Login(name string, password string) (bool, string) {
func (s LoginService) GetCurrentUser(c *gin.Context) *response.UserResponse {
token := c.Request.Header.Get("Authorization")
str := strings.Split(token, " ")
if len(str) < 2 {
logger.SugaredLogger.Errorln("token格式错误: ", token)
return nil
}
// parseToken 解析token包含的信息
claims, err := jwt.ParseToken(str[1])
if err != nil {
logging.ErrorLog(err)
logger.SugaredLogger.Errorln(err)
return nil
}
if claims == nil {
return nil
}
info := claims.UserInfo
return &info
@@ -85,6 +85,25 @@ func (s UserService) BindUserRole(user *request.UserBody) {
}
}
// RemoveUserRole 删除用户所有角色关联
func (s UserService) RemoveUserRole(userId int64) {
s.userRoleDao.Delete(userId)
}
// BindUserRoleIds 直接绑定用户角色
func (s UserService) BindUserRoleIds(userId int64, roleIds []int64) {
if len(roleIds) > 0 {
roles := make([]dataobject.SysUserRole, 0, len(roleIds))
for _, roleId := range roleIds {
roles = append(roles, dataobject.SysUserRole{
UserId: userId,
RoleId: roleId,
})
}
s.userRoleDao.BatchInsert(roles)
}
}
// Edit 修改用户数据
func (s UserService) Edit(body request.UserBody) int64 {
// 删除原有用户和角色关系