|
@@ -0,0 +1,536 @@
|
|
|
+package controller
|
|
|
+
|
|
|
+import (
|
|
|
+ "Medical_OAuth/app/admin/model"
|
|
|
+ "Medical_OAuth/app/admin/service"
|
|
|
+ "Medical_OAuth/app/admin/service/dto"
|
|
|
+ "Medical_OAuth/common/actions"
|
|
|
+ "Medical_OAuth/common/middleware/handler"
|
|
|
+ "Medical_OAuth/conf"
|
|
|
+ "errors"
|
|
|
+ "fmt"
|
|
|
+ "github.com/gin-gonic/gin"
|
|
|
+ "github.com/gin-gonic/gin/binding"
|
|
|
+ "go.uber.org/zap"
|
|
|
+ "gogs.baozhida.cn/zoie/OAuth-core/api"
|
|
|
+ "gogs.baozhida.cn/zoie/OAuth-core/pkg"
|
|
|
+ "gogs.baozhida.cn/zoie/OAuth-core/pkg/jwtauth/user"
|
|
|
+ _ "gogs.baozhida.cn/zoie/OAuth-core/pkg/response"
|
|
|
+ "gogs.baozhida.cn/zoie/OAuth-core/pkg/sms"
|
|
|
+ "golang.org/x/crypto/bcrypt"
|
|
|
+ "net/http"
|
|
|
+ "strconv"
|
|
|
+)
|
|
|
+
|
|
|
+// SysUser 定义用户控制器
|
|
|
+type SysUser struct {
|
|
|
+ api.Api
|
|
|
+}
|
|
|
+
|
|
|
+// GetPage 获取系统用户列表
|
|
|
+// @Summary 获取系统用户列表
|
|
|
+// @Description 获取系统用户列表
|
|
|
+// @Tags 用户
|
|
|
+// @Param username query string false "用户名"
|
|
|
+// @Param deptId query int false "部门id"
|
|
|
+// @Param roleId query string false "角色id"
|
|
|
+// @Param postId query string false "岗位id"
|
|
|
+// @Param status query string false "状态 1-停用 2-正常"
|
|
|
+// @Param pageSize query int false "页条数"
|
|
|
+// @Param pageIndex query int false "页码"
|
|
|
+// @Success 200 {object} response.Response{data=response.Page{list=[]model.SysUser}} "{"code": 200, "data": [...]}"
|
|
|
+// @Router /api/sys-user [get]
|
|
|
+// @Security Bearer
|
|
|
+func (e SysUser) GetPage(c *gin.Context) {
|
|
|
+ s := service.SysUser{}
|
|
|
+ req := dto.SysUserGetPageReq{}
|
|
|
+ err := e.MakeContext(c).
|
|
|
+ MakeOrm().
|
|
|
+ Bind(&req, binding.Query).
|
|
|
+ MakeService(&s.Service).
|
|
|
+ Errors
|
|
|
+
|
|
|
+ if err != nil {
|
|
|
+ e.Logger.Error(err)
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //数据权限检查
|
|
|
+ p := actions.GetPermissionFromContext(c)
|
|
|
+
|
|
|
+ list := make([]model.SysUser, 0)
|
|
|
+ var count int64
|
|
|
+
|
|
|
+ err = s.GetPage(&req, p, &list, &count)
|
|
|
+ if err != nil {
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
|
|
|
+}
|
|
|
+
|
|
|
+// Get 通过id获取用户
|
|
|
+// @Summary 通过id获取用户
|
|
|
+// @Description 通过id获取用户
|
|
|
+// @Tags 用户
|
|
|
+// @Param id path int true "用户id"
|
|
|
+// @Success 200 {object} response.Response{data=model.SysUser} "{"code": 200, "data": [...]}"
|
|
|
+// @Router /api/sys-user/{id} [get]
|
|
|
+// @Security Bearer
|
|
|
+func (e SysUser) Get(c *gin.Context) {
|
|
|
+ s := service.SysUser{}
|
|
|
+ req := dto.SysUserGetReq{}
|
|
|
+ err := e.MakeContext(c).
|
|
|
+ MakeOrm().
|
|
|
+ Bind(&req, nil).
|
|
|
+ MakeService(&s.Service).
|
|
|
+ Errors
|
|
|
+ if err != nil {
|
|
|
+ e.Logger.Error(err)
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //数据权限检查
|
|
|
+ p := actions.GetPermissionFromContext(c)
|
|
|
+
|
|
|
+ var object model.SysUser
|
|
|
+ err = s.Get(&req, p, &object)
|
|
|
+ if err != nil {
|
|
|
+ e.Error(http.StatusUnprocessableEntity, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ e.OK(object, "查询成功")
|
|
|
+}
|
|
|
+
|
|
|
+// Insert 创建用户
|
|
|
+// @Summary 创建用户
|
|
|
+// @Description 创建用户
|
|
|
+// @Tags 用户
|
|
|
+// @Accept application/json
|
|
|
+// @Product application/json
|
|
|
+// @Param data body dto.SysUserInsertReq true "用户数据"
|
|
|
+// @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
|
|
|
+// @Router /api/sys-user [post]
|
|
|
+// @Security Bearer
|
|
|
+func (e SysUser) Insert(c *gin.Context) {
|
|
|
+ s := service.SysUser{}
|
|
|
+ req := dto.SysUserInsertReq{}
|
|
|
+ err := e.MakeContext(c).
|
|
|
+ MakeOrm().
|
|
|
+ Bind(&req, binding.JSON).
|
|
|
+ MakeService(&s.Service).
|
|
|
+ Errors
|
|
|
+ if err != nil {
|
|
|
+ e.Logger.Error(err)
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ deptId := user.GetDeptId(c)
|
|
|
+
|
|
|
+ if deptIdStr, err := e.Cache.Get(model.GetEnterDeptCacheKey(user.GetUserId(c))); err == nil {
|
|
|
+ deptId, _ = strconv.Atoi(deptIdStr)
|
|
|
+ }
|
|
|
+ req.DeptId = deptId
|
|
|
+ req.RoleId = 1
|
|
|
+ req.Status = "2"
|
|
|
+
|
|
|
+ // 设置创建人
|
|
|
+ req.SetCreateBy(user.GetUserId(c))
|
|
|
+ err = s.Insert(&req)
|
|
|
+ if err != nil {
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ e.OK(req.GetId(), "创建成功")
|
|
|
+}
|
|
|
+
|
|
|
+// Update 修改用户数据
|
|
|
+// @Summary 修改用户数据
|
|
|
+// @Description 修改用户数据
|
|
|
+// @Tags 用户
|
|
|
+// @Accept application/json
|
|
|
+// @Product application/json
|
|
|
+// @Param id path int true "用户id"
|
|
|
+// @Param data body dto.SysUserUpdateReq true "body"
|
|
|
+// @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
|
|
|
+// @Router /api/sys-user [put]
|
|
|
+// @Security Bearer
|
|
|
+func (e SysUser) Update(c *gin.Context) {
|
|
|
+ s := service.SysUser{}
|
|
|
+ req := dto.SysUserUpdateReq{}
|
|
|
+ err := e.MakeContext(c).
|
|
|
+ MakeOrm().
|
|
|
+ Bind(&req).
|
|
|
+ MakeService(&s.Service).
|
|
|
+ Errors
|
|
|
+ if err != nil {
|
|
|
+ e.Logger.Error(err)
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ req.SetUpdateBy(user.GetUserId(c))
|
|
|
+
|
|
|
+ //数据权限检查
|
|
|
+ p := actions.GetPermissionFromContext(c)
|
|
|
+
|
|
|
+ err = s.Update(&req, p)
|
|
|
+ if err != nil {
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ e.OK(req.GetId(), "更新成功")
|
|
|
+}
|
|
|
+
|
|
|
+// Delete 通过id删除用户数据
|
|
|
+// @Summary 通过id删除用户数据
|
|
|
+// @Description 通过id删除用户数据
|
|
|
+// @Tags 用户
|
|
|
+// @Param data body dto.SysUserDeleteReq true "body"
|
|
|
+// @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
|
|
|
+// @Router /api/sys-user [delete]
|
|
|
+// @Security Bearer
|
|
|
+func (e SysUser) Delete(c *gin.Context) {
|
|
|
+ s := service.SysUser{}
|
|
|
+ req := dto.SysUserDeleteReq{}
|
|
|
+ err := e.MakeContext(c).
|
|
|
+ MakeOrm().
|
|
|
+ Bind(&req, binding.JSON).
|
|
|
+ MakeService(&s.Service).
|
|
|
+ Errors
|
|
|
+ if err != nil {
|
|
|
+ e.Logger.Error(err)
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ userId := user.GetUserId(c)
|
|
|
+ if userId == req.Id {
|
|
|
+ err := errors.New("禁止删除自己")
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 设置编辑人
|
|
|
+ req.SetUpdateBy(userId)
|
|
|
+ //数据权限检查
|
|
|
+ p := actions.GetPermissionFromContext(c)
|
|
|
+
|
|
|
+ err = s.Remove(&req, p)
|
|
|
+ if err != nil {
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ e.OK(req.GetId(), "删除成功")
|
|
|
+}
|
|
|
+
|
|
|
+// UpdateStatus 修改用户状态
|
|
|
+// @Summary 修改用户状态
|
|
|
+// @Description 修改用户状态
|
|
|
+// @Tags 用户
|
|
|
+// @Accept application/json
|
|
|
+// @Product application/json
|
|
|
+// @Param data body dto.UpdateSysUserStatusReq true "body"
|
|
|
+// @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
|
|
|
+// @Router /api/user/status [put]
|
|
|
+// @Security Bearer
|
|
|
+func (e SysUser) UpdateStatus(c *gin.Context) {
|
|
|
+ s := service.SysUser{}
|
|
|
+ req := dto.UpdateSysUserStatusReq{}
|
|
|
+ err := e.MakeContext(c).
|
|
|
+ MakeOrm().
|
|
|
+ Bind(&req, binding.JSON, nil).
|
|
|
+ MakeService(&s.Service).
|
|
|
+ Errors
|
|
|
+ if err != nil {
|
|
|
+ e.Logger.Error(err)
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ req.SetUpdateBy(user.GetUserId(c))
|
|
|
+
|
|
|
+ //数据权限检查
|
|
|
+ p := actions.GetPermissionFromContext(c)
|
|
|
+
|
|
|
+ err = s.UpdateStatus(&req, p)
|
|
|
+ if err != nil {
|
|
|
+ e.Logger.Error(err)
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ e.OK(req.GetId(), "更新成功")
|
|
|
+}
|
|
|
+
|
|
|
+// ResetPwd 重置用户密码
|
|
|
+// @Summary 重置用户密码
|
|
|
+// @Description 重置用户密码
|
|
|
+// @Tags 用户
|
|
|
+// @Accept application/json
|
|
|
+// @Product application/json
|
|
|
+// @Param data body dto.ResetSysUserPwdReq true "body"
|
|
|
+// @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
|
|
|
+// @Router /api/user/pwd/reset [put]
|
|
|
+// @Security Bearer
|
|
|
+func (e SysUser) ResetPwd(c *gin.Context) {
|
|
|
+ s := service.SysUser{}
|
|
|
+ req := dto.ResetSysUserPwdReq{}
|
|
|
+ err := e.MakeContext(c).
|
|
|
+ MakeOrm().
|
|
|
+ Bind(&req, binding.JSON).
|
|
|
+ MakeService(&s.Service).
|
|
|
+ Errors
|
|
|
+ if err != nil {
|
|
|
+ e.Logger.Error(err)
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ req.SetUpdateBy(user.GetUserId(c))
|
|
|
+
|
|
|
+ //数据权限检查
|
|
|
+ p := actions.GetPermissionFromContext(c)
|
|
|
+
|
|
|
+ err = s.ResetPwd(&req, p)
|
|
|
+ if err != nil {
|
|
|
+ e.Logger.Error(err)
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ e.OK(req.GetId(), "更新成功")
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+// UpdatePwd 修改密码
|
|
|
+// @Summary 修改密码
|
|
|
+// @Description 修改密码
|
|
|
+// @Tags 个人中心
|
|
|
+// @Accept application/json
|
|
|
+// @Product application/json
|
|
|
+// @Param data body dto.PassWord true "body"
|
|
|
+// @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
|
|
|
+// @Router /api/user/pwd/set [put]
|
|
|
+// @Security Bearer
|
|
|
+func (e SysUser) UpdatePwd(c *gin.Context) {
|
|
|
+ s := service.SysUser{}
|
|
|
+ req := dto.PassWord{}
|
|
|
+ err := e.MakeContext(c).
|
|
|
+ MakeOrm().
|
|
|
+ Bind(&req).
|
|
|
+ MakeService(&s.Service).
|
|
|
+ Errors
|
|
|
+ if err != nil {
|
|
|
+ e.Logger.Error(err)
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var hash []byte
|
|
|
+ if hash, err = bcrypt.GenerateFromPassword([]byte(req.NewPassword), bcrypt.DefaultCost); err != nil {
|
|
|
+ req.NewPassword = string(hash)
|
|
|
+ }
|
|
|
+
|
|
|
+ err = s.UpdatePwd(user.GetUserId(c), req.OldPassword, req.NewPassword)
|
|
|
+ if err != nil {
|
|
|
+ e.Error(http.StatusForbidden, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ e.OK(nil, "密码修改成功")
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+// GetProfile 获取个人中心用户
|
|
|
+// @Summary 获取个人中心用户
|
|
|
+// @Description 获取个人中心用户
|
|
|
+// @Tags 个人中心
|
|
|
+// @Success 200 {object} response.Response{user=model.SysUser,role=model.SysRole} "{"code": 200, "data": {"user":[...],"role":[...]}}"
|
|
|
+// @Router /api/user/profile [get]
|
|
|
+// @Security Bearer
|
|
|
+func (e SysUser) GetProfile(c *gin.Context) {
|
|
|
+ s := service.SysUser{}
|
|
|
+ req := dto.SysUserById{}
|
|
|
+ err := e.MakeContext(c).
|
|
|
+ MakeOrm().
|
|
|
+ MakeService(&s.Service).
|
|
|
+ Errors
|
|
|
+ if err != nil {
|
|
|
+ e.Logger.Error(err)
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ req.Id = user.GetUserId(c)
|
|
|
+
|
|
|
+ sysUser := model.SysUser{}
|
|
|
+ err = s.GetProfile(&req, &sysUser)
|
|
|
+ if err != nil {
|
|
|
+ e.Logger.Errorf("get user profile error, %s", err.Error())
|
|
|
+ e.Error(500, err, "获取用户信息失败")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ e.OK(gin.H{
|
|
|
+ "user": sysUser,
|
|
|
+ }, "查询成功")
|
|
|
+}
|
|
|
+
|
|
|
+// GetInfo 获取个人信息
|
|
|
+// @Summary 获取个人信息
|
|
|
+// @Description 获取个人信息
|
|
|
+// @Tags 个人中心
|
|
|
+// @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
|
|
|
+// @Router /api/user/info [get]
|
|
|
+// @Security Bearer
|
|
|
+func (e SysUser) GetInfo(c *gin.Context) {
|
|
|
+ req := dto.SysUserGetReq{}
|
|
|
+ s := service.SysUser{}
|
|
|
+ r := service.SysRole{}
|
|
|
+ err := e.MakeContext(c).
|
|
|
+ MakeOrm().
|
|
|
+ MakeService(&r.Service).
|
|
|
+ MakeService(&s.Service).
|
|
|
+ Errors
|
|
|
+ if err != nil {
|
|
|
+ e.Logger.Error(err)
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var roles = make([]string, 1)
|
|
|
+ roles[0] = user.GetRoleName(c)
|
|
|
+ var permissions = make([]string, 1)
|
|
|
+ permissions[0] = "*:*:*"
|
|
|
+ var buttons = make([]string, 1)
|
|
|
+ buttons[0] = "*:*:*"
|
|
|
+
|
|
|
+ var mp = make(map[string]interface{})
|
|
|
+ mp["roles"] = roles
|
|
|
+ list, _ := r.GetById(user.GetRoleId(c))
|
|
|
+ mp["permissions"] = list
|
|
|
+ mp["buttons"] = list
|
|
|
+
|
|
|
+ sysUser := model.SysUser{}
|
|
|
+ req.Id = user.GetUserId(c)
|
|
|
+
|
|
|
+ err = s.Get(&req, nil, &sysUser)
|
|
|
+ if err != nil {
|
|
|
+ e.Logger.Errorf("get user info error, %s", err.Error())
|
|
|
+ e.Error(http.StatusUnauthorized, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ mp["userName"] = sysUser.Username
|
|
|
+ mp["userId"] = sysUser.Id
|
|
|
+ mp["deptId"] = sysUser.DeptId
|
|
|
+ mp["name"] = sysUser.NickName
|
|
|
+ mp["code"] = 200
|
|
|
+ e.OK(mp, "查询成功")
|
|
|
+}
|
|
|
+
|
|
|
+// Register 公开用户注册
|
|
|
+// @Summary 公开用户注册
|
|
|
+// @Description 公开用户注册
|
|
|
+// @Tags 用户
|
|
|
+// @Accept application/json
|
|
|
+// @Product application/json
|
|
|
+// @Param id body dto.SysUserRegisterReq true "请求参数"
|
|
|
+// @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
|
|
|
+// @Router /api/user/register [post]
|
|
|
+// @Security Bearer
|
|
|
+func (e SysUser) Register(c *gin.Context) {
|
|
|
+ s := service.SysUser{}
|
|
|
+ req := dto.SysUserRegisterReq{}
|
|
|
+ err := e.MakeContext(c).
|
|
|
+ MakeOrm().
|
|
|
+ Bind(&req, binding.JSON).
|
|
|
+ MakeService(&s.Service).
|
|
|
+ Errors
|
|
|
+ if err != nil {
|
|
|
+ e.Logger.Error(err)
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ req.SetUpdateBy(user.GetUserId(c))
|
|
|
+ err = s.Register(&req)
|
|
|
+ if err != nil {
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ e.OK(req.GetId(), "注册成功")
|
|
|
+}
|
|
|
+
|
|
|
+// VerifyCode 获取短信验证码
|
|
|
+// @Summary 获取短信验证码
|
|
|
+// @Description 获取短信验证码
|
|
|
+// @Tags 登录
|
|
|
+// @Accept application/json
|
|
|
+// @Product application/json
|
|
|
+// @Success 200 {string} string "{"code": 200, "data": "18888888888"}"
|
|
|
+// @Router /verify-code [post]
|
|
|
+// @Security Bearer
|
|
|
+func (e SysUser) VerifyCode(c *gin.Context) {
|
|
|
+ s := service.SysUser{}
|
|
|
+ req := dto.SysUserGetSMSVerifyCodeReq{}
|
|
|
+ err := e.MakeContext(c).
|
|
|
+ MakeService(&s.Service).
|
|
|
+ Bind(&req, binding.Query).
|
|
|
+ Errors
|
|
|
+ if err != nil {
|
|
|
+ e.Logger.Error(err)
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ key := model.GetVerifyCodeCacheKey(req.Phone)
|
|
|
+ _, err = e.Cache.Get(key)
|
|
|
+ // 验证吗缓存已存在
|
|
|
+ if err == nil {
|
|
|
+ e.Error(500, err, "验证吗已发送,请注意查收")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ code := pkg.GenerateRandomFigureKey6()
|
|
|
+
|
|
|
+ ss := sms.NewSMS(conf.ExtConfig.SubMail.Appid, conf.ExtConfig.SubMail.Signature)
|
|
|
+ content := fmt.Sprintf("【宝智达统一身份认证】您的短信验证码:%s,请在10分钟内输入", code)
|
|
|
+ res, err := ss.Send(req.Phone, content)
|
|
|
+ if err != nil || res.Status != sms.SUCCESS {
|
|
|
+ e.Logger.Error("发送短信验证码出现异常", zap.Any("res", res), zap.Error(err))
|
|
|
+ e.Error(500, err, "验证吗发送失败,请重试")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ _ = e.Cache.Set(key, code, 600)
|
|
|
+ e.OK(req.Phone, "发送成功")
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+// GetNewestToken 获取最新token
|
|
|
+// @Summary 获取最新token
|
|
|
+// @Description 获取最新token,提供给接入服务访问,用于单一认证检查
|
|
|
+// @Tags 用户
|
|
|
+// @Param serviceId header int true "服务id"
|
|
|
+// @Param userId path int true "用户id"
|
|
|
+// @Success 200 {string} string "{"code": 200, "data": "...token..."}"
|
|
|
+// @Router /newest-token [get]
|
|
|
+func (e SysUser) GetNewestToken(c *gin.Context) {
|
|
|
+ s := service.SysUser{}
|
|
|
+ req := dto.GetNewestTokenReq{}
|
|
|
+ err := e.MakeContext(c).
|
|
|
+ MakeService(&s.Service).
|
|
|
+ Bind(&req, nil).
|
|
|
+ Errors
|
|
|
+ if err != nil {
|
|
|
+ e.Logger.Error(err)
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ key, err := handler.GetNewestToken(c, req.UserId)
|
|
|
+ if err != nil {
|
|
|
+ e.Error(500, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ e.OK(key, "查询成功")
|
|
|
+}
|