package system import ( "kpt-tmr-group/http/middleware" "kpt-tmr-group/pkg/apierr" "kpt-tmr-group/pkg/ginutil" "kpt-tmr-group/pkg/valid" operationPb "kpt-tmr-group/proto/go/backend/operation" "net/http" "strconv" "github.com/gin-gonic/gin" ) // Auth 用户登录 func Auth(c *gin.Context) { var req operationPb.UserAuthData if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.UserName, valid.Required), valid.Field(&req.Password, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } res, err := middleware.Dependency(c).StoreEventHub.OpsService.Auth(c, &req) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, res) } func GetWxAppletOpenId(c *gin.Context) { jsCode := c.Param("js_code") if err := valid.Validate(jsCode, valid.Required, valid.Length(1, 100)); err != nil { apierr.ClassifiedAbort(c, err) return } res, err := middleware.BackendOperation(c).OpsService.GetOpenId(c, jsCode) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, res) } // AddSystemUser 创建系统用户 func AddSystemUser(c *gin.Context) { var req operationPb.AddSystemUser if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.Name, valid.Required), valid.Field(&req.Phone, valid.Required), valid.Field(&req.EmployeeName, valid.Required), valid.Field(&req.Roles, valid.NotNil), valid.Field(&req.IsShow, valid.Max(2), valid.Min(1)), valid.Field(&req.CreateUser, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := middleware.Dependency(c).StoreEventHub.OpsService.CreateSystemUser(c, &req); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) } // DetailsSystemUser 系统用户详情 func DetailsSystemUser(c *gin.Context) { userIdStr := c.Param("user_id") userId, _ := strconv.Atoi(userIdStr) if err := valid.Validate(userId, valid.Required, valid.Min(1)); err != nil { apierr.ClassifiedAbort(c, err) return } res, err := middleware.BackendOperation(c).OpsService.DetailsSystemUser(c, int64(userId)) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, res) } // GetUserInfo 获取用户信息 func GetUserInfo(c *gin.Context) { token := middleware.GetToken(c) if err := valid.Validate(token, valid.Required); err != nil { apierr.ClassifiedAbort(c, err) return } res, err := middleware.BackendOperation(c).OpsService.GetUserInfo(c, token) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, res) } // SearchSystemUserList 查询系统用户列表 func SearchSystemUserList(c *gin.Context) { var req operationPb.SearchUserRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.IsShow, valid.Max(2), valid.Min(1)), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } req.Pagination = &operationPb.PaginationModel{ Page: int32(c.GetInt(middleware.Page)), PageSize: int32(c.GetInt(middleware.PageSize)), PageOffset: int32(c.GetInt(middleware.PageOffset)), } res, err := middleware.Dependency(c).StoreEventHub.OpsService.SearchSystemUserList(c, &req) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, res) } // EditSystemUser 编辑系统用户 func EditSystemUser(c *gin.Context) { var req operationPb.AddSystemUser if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.Id, valid.Required, valid.Min(1)), valid.Field(&req.Name, valid.Required), valid.Field(&req.Phone, valid.Required), valid.Field(&req.EmployeeName, valid.Required), valid.Field(&req.Roles, valid.Required), valid.Field(&req.CreateUser, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := middleware.Dependency(c).StoreEventHub.OpsService.EditSystemUser(c, &req); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) } // DeleteUser 删除系统用户 func DeleteUser(c *gin.Context) { userIdStr := c.Param("user_id") userId, _ := strconv.Atoi(userIdStr) if err := valid.Validate(userId, valid.Required, valid.Min(1)); err != nil { apierr.ClassifiedAbort(c, err) return } if err := middleware.BackendOperation(c).OpsService.DeleteSystemUser(c, int64(userId)); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) } // IsShowSystemUser 系统用户启动开关 func IsShowSystemUser(c *gin.Context) { var req operationPb.IsShowSystemUserRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.UserId, valid.Required, valid.Min(1)), valid.Field(&req.IsShow, valid.Required, valid.Min(1), valid.Max(2)), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := middleware.Dependency(c).StoreEventHub.OpsService.IsShowSystemUser(c, &req); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) } // GetSystemUserPermissions 获取系统用户菜单权限 func GetSystemUserPermissions(c *gin.Context) { token := middleware.GetToken(c) if err := valid.Validate(token, valid.Required); err != nil { apierr.ClassifiedAbort(c, err) return } res, err := middleware.BackendOperation(c).OpsService.GetSystemUserPermissions(c, token) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, res) } // ResetPasswordSystemUser 用户密码重置 func ResetPasswordSystemUser(c *gin.Context) { userIdStr := c.Param("user_id") userId, _ := strconv.Atoi(userIdStr) if err := valid.Validate(userId, valid.Required, valid.Min(1)); err != nil { apierr.ClassifiedAbort(c, err) return } if err := middleware.BackendOperation(c).OpsService.ResetPasswordSystemUser(c, int64(userId)); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) }