| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325 |
- package handlers
- import (
- "net/http"
- "easydo-echo_win7/models"
- "easydo-echo_win7/services"
- "easydo-echo_win7/utils"
- "easydo-echo_win7/middleware"
- "github.com/labstack/echo-contrib/session"
- "github.com/labstack/echo/v4"
- )
- func Add_user_to_routes(e *echo.Echo) {
- group := e.Group("/sysUser")
- group.Use(middleware.AuthMiddleware)
- group.POST("/getPage", userGetPage)
- group.POST("/getList", userGetList)
- group.POST("/save", userSave)
- group.POST("/update", userUpdate)
- group.POST("/remove", userRemove)
- group.POST("/updatePass", userUpdatePass)
- group.POST("/resetPass", userResetPass)
- }
- func userGetPage(c echo.Context) error {
- var paramMap map[string]interface{}
- if err := c.Bind(¶mMap); err != nil {
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("参数解析失败", err.Error()))
- }
- result, err := services.JdbcClient.GetJdbcPage(paramMap, models.SysUser{})
- if err != nil {
- utils.PrintSqlErr(err)
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- list := utils.ConvertInterface[[]models.SysUser](result.Records)
- if len(list) == 0 {
- list = []models.SysUser{}
- }
- for i := range list {
- user := list[i]
- dept := new(models.SysDept)
- dept.ID = user.DeptId
- err := services.JdbcClient.GetJdbcModelById(dept)
- if err != nil {
- continue
- }
- user.Dept = dept
- for k := range paramMap {
- delete(paramMap, k)
- }
- paramMap["userId"] = user.ID
- p_result, err := services.JdbcClient.GetJdbcList(paramMap, models.SysUsersRoles{})
- if err != nil {
- utils.PrintSqlErr(err)
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- p_list := utils.ConvertInterface[[]models.SysUsersRoles](p_result)
- role_id_list := utils.Map(p_list, func(user_role models.SysUsersRoles) int64 {
- return *user_role.RoleID
- })
- for k := range paramMap {
- delete(paramMap, k)
- }
- paramMap["idIn"] = role_id_list
- r_result, err := services.JdbcClient.GetJdbcList(paramMap, models.SysRole{})
- if err != nil {
- utils.PrintSqlErr(err)
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- role_list := utils.ConvertInterface[[]models.SysRole](r_result)
- user.RoleList = &role_list
- tenant := new(models.Tenant)
- tenant.ID = user.TenantId
- err = services.JdbcClient.GetJdbcModelById(tenant)
- if err != nil {
- utils.PrintSqlErr(err)
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- user.Tenant = tenant
- list[i] = user
- }
- result.Records = list
- return c.JSON(http.StatusOK, result)
- }
- func userGetList(c echo.Context) error {
- var paramMap map[string]interface{}
- if err := c.Bind(¶mMap); err != nil {
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("参数解析失败", err.Error()))
- }
- result, err := services.JdbcClient.GetJdbcList(paramMap, models.SysUser{})
- if err != nil {
- utils.PrintSqlErr(err)
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- list := utils.ConvertInterface[[]models.SysUser](result)
- for i := range list {
- user := list[i]
- dept := new(models.SysDept)
- dept.ID = user.DeptId
- err := services.JdbcClient.GetJdbcModel(dept)
- if err != nil {
- utils.PrintSqlErr(err)
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- user.Dept = dept
- for k := range paramMap {
- delete(paramMap, k)
- }
- paramMap["userId"] = user.ID
- p_result, err := services.JdbcClient.GetJdbcList(paramMap, models.SysUsersRoles{})
- if err != nil {
- utils.PrintSqlErr(err)
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- p_list := utils.ConvertInterface[[]models.SysUsersRoles](p_result)
- role_id_list := utils.Map(p_list, func(user_role models.SysUsersRoles) int64 {
- return *user_role.RoleID
- })
- for k := range paramMap {
- delete(paramMap, k)
- }
- paramMap["idIn"] = role_id_list
- r_result, err := services.JdbcClient.GetJdbcList(paramMap, models.SysRole{})
- if err != nil {
- utils.PrintSqlErr(err)
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- role_list := utils.ConvertInterface[[]models.SysRole](r_result)
- user.RoleList = &role_list
- tenant := new(models.Tenant)
- tenant.ID = user.TenantId
- err = services.JdbcClient.GetJdbcModelById(tenant)
- if err != nil {
- utils.PrintSqlErr(err)
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- user.Tenant = tenant
- list[i] = user
- }
- return c.JSON(http.StatusOK, list)
- }
- func userSave(c echo.Context) error {
- tx, _ := services.MYSQL_DB.Beginx()
- user := new(models.SysUser)
- if err := c.Bind(user); err != nil {
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("参数解析失败", err.Error()))
- }
- userParam := new(models.SysUser)
- userParam.Username = user.Username
- count, err := services.JdbcClient.GetJdbcCount(userParam, tx)
- if err != nil {
- utils.PrintSqlErr(err)
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- if count > 0 {
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("用户名已存在", ""))
- }
- password, _ := utils.EncodePassword("123456")
- user.Password = &password
- err = services.JdbcClient.JdbcInsert(user, tx)
- if err != nil {
- utils.PrintSqlErr(err)
- tx.Rollback()
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- role_list := *user.RoleList
- for _, role := range role_list {
- user_role := new(models.SysUsersRoles)
- user_role.RoleID = role.ID
- user_role.UserID = user.ID
- err = services.JdbcClient.JdbcInsert(user_role, tx)
- if err != nil {
- utils.PrintSqlErr(err)
- tx.Rollback()
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- }
- tx.Commit()
- return c.JSON(http.StatusOK, user)
- }
- func userUpdate(c echo.Context) error {
- tx, _ := services.MYSQL_DB.Beginx()
- user := new(models.SysUser)
- if err := c.Bind(user); err != nil {
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("参数解析失败", err.Error()))
- }
- err := services.JdbcClient.JdbcUpdateById(user, tx)
- if err != nil {
- utils.PrintSqlErr(err)
- tx.Rollback()
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- user_role := new(models.SysUsersRoles)
- user_role.UserID = user.ID
- err = services.JdbcClient.JdbcRemove(user_role, tx)
- if err != nil {
- utils.PrintSqlErr(err)
- tx.Rollback()
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- role_list := *user.RoleList
- for _, role := range role_list {
- user_role := new(models.SysUsersRoles)
- user_role.RoleID = role.ID
- user_role.UserID = user.ID
- err = services.JdbcClient.JdbcInsert(user_role, tx)
- if err != nil {
- utils.PrintSqlErr(err)
- tx.Rollback()
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- }
- tx.Commit()
- return c.JSON(http.StatusOK, user)
- }
- func userRemove(c echo.Context) error {
- tx, _ := services.MYSQL_DB.Beginx()
- user := new(models.SysUser)
- if err := c.Bind(user); err != nil {
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("参数解析失败", err.Error()))
- }
- err := services.JdbcClient.JdbcRemoveById(user, tx)
- if err != nil {
- utils.PrintSqlErr(err)
- tx.Rollback()
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- user_role := new(models.SysUsersRoles)
- user_role.UserID = user.ID
- err = services.JdbcClient.JdbcRemove(user_role, tx)
- if err != nil {
- utils.PrintSqlErr(err)
- tx.Rollback()
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- tx.Commit()
- return c.JSON(http.StatusOK, user)
- }
- func userUpdatePass(c echo.Context) error {
- sess, _ := session.Get("auth_session", c)
- if user_id, ok := sess.Values["user_id"].(int64); ok {
- var paramMap map[string]interface{}
- if err := c.Bind(¶mMap); err != nil {
- return c.JSON(http.StatusOK, [0]string{})
- }
- oldPass := paramMap["oldPass"]
- newPass := paramMap["newPass"]
- user := new(models.SysUser)
- user.ID = &user_id
- services.JdbcClient.GetJdbcModelById(user)
- oldPassStr := utils.FormatToString(oldPass)
- newPassStr := utils.FormatToString(newPass)
- oldPassStr, _ = utils.DecryptByPrivateKey(oldPassStr)
- newPassStr, _ = utils.DecryptByPrivateKey(newPassStr)
- result := utils.VerifyPassword(oldPassStr, *user.Password)
- if !result {
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("修改失败,旧密码错误", ""))
- }
- result = utils.VerifyPassword(newPassStr, *user.Password)
- if result {
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("新密码不能与旧密码相同", ""))
- }
- password, _ := utils.EncodePassword(newPassStr)
- user.Password = &password
- err := services.JdbcClient.JdbcUpdateById(user)
- if err != nil {
- utils.PrintSqlErr(err)
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- return c.JSON(http.StatusOK, user)
- }
- return c.JSON(http.StatusOK, nil)
- }
- func userResetPass(c echo.Context) error {
- user := new(models.SysUser)
- if err := c.Bind(user); err != nil {
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("参数解析失败", err.Error()))
- }
- password, _ := utils.EncodePassword("123456")
- user.Password = &password
- err := services.JdbcClient.JdbcUpdateById(user)
- if err != nil {
- utils.PrintSqlErr(err)
- return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
- }
- return c.JSON(http.StatusOK, user)
- }
|