login_api.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. /*
  2. * @description: api 登陆接口相关
  3. * @Author: CP
  4. * @Date: 2020-09-17 16:23:02
  5. * @FilePath: \construction_management\web\api\login_api.go
  6. */
  7. package api
  8. import (
  9. "fmt"
  10. "github.com/kataras/iris/v12"
  11. "go.mod/services"
  12. "go.mod/web/utils"
  13. "go.mod/web/viewmodels"
  14. )
  15. type LoginApi struct {
  16. //框架-web应用上下文环境
  17. Ctx iris.Context
  18. // 需要用的service
  19. ServiceProjectAccount services.ProjectAccountService
  20. ServiceLogin services.LoginService
  21. ServiceProject services.ProjectService
  22. }
  23. // @Summary 登录
  24. // @Description 登录接口
  25. // @Tags 登录/登出
  26. // @Accept json
  27. // @Produce json
  28. // @Param code body string true "项目编号" default(234)
  29. // @Param account body string true "项目账号" default(caipin)
  30. // @Param password body string true "密码" default(123456)
  31. // @Success 200 {object} viewmodels.ProjectAccount "{code:0成功,data:viewmodels.ProjectAccount,msg:}"
  32. // @Failure 400 {string} string "{code:-1参数类错误,msg:错误信息}"
  33. // @Router /api/login [post]
  34. func (c *LoginApi) Post() {
  35. //验证规则
  36. LoginData, err := c.ServiceLogin.ValidRule(c.Ctx)
  37. if err != nil {
  38. ErrMsg := utils.FormValidError(err)
  39. c.Ctx.JSON(iris.Map{"code": -1, "msg": ErrMsg})
  40. return
  41. }
  42. //验证登陆用户
  43. Data, err := c.ServiceLogin.ValidProjectAccount(LoginData, c.Ctx.ResponseWriter())
  44. if err != nil {
  45. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  46. return
  47. }
  48. c.Ctx.JSON(iris.Map{
  49. "code": 0,
  50. "msg": "",
  51. "data": Data,
  52. })
  53. }
  54. // @Summary 登出
  55. // @Tags 登录/登出
  56. // @Accept json
  57. // @Produce json
  58. // @Success 200 {string} string "{code:0,msg:string}"
  59. // @Failure 400 {string} string "{code:-1,msg:string}"
  60. // @Router /api/login/out [post]
  61. func (c *LoginApi) GetOut() {
  62. c.ServiceLogin.Out(c.Ctx)
  63. c.Ctx.JSON(iris.Map{"code": 0, "msg": ""})
  64. }
  65. // @Summary 获得项目名称
  66. // @Tags 登录/登出
  67. // @Accept json
  68. // @Produce json
  69. // @Param code query string true "项目编号" default({code:2})
  70. // @Success 200 {object} viewmodels.Project "{code:0成功,data:viewmodels.Project,msg:}"
  71. // @Failure 400 {string} string "{code:-1,msg:string}"
  72. // @Router /api/login/project/name [get]
  73. func (c *LoginApi) GetProjectName() {
  74. // 验证内容
  75. ProjectData := viewmodels.Project{}
  76. err := c.Ctx.ReadForm(&ProjectData)
  77. if err != nil {
  78. c.Ctx.JSON(iris.Map{
  79. "code": -1,
  80. "msg": "ReadJSON转换异常,请检查code",
  81. })
  82. return
  83. } else {
  84. // 获得项目信息
  85. dataList := c.ServiceProject.GetName(ProjectData.Code)
  86. c.Ctx.JSON(iris.Map{
  87. "code": 0,
  88. "msg": "",
  89. "data": dataList,
  90. })
  91. }
  92. }