123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299 |
- package controllers
- import (
- "encoding/json"
- "hongze/hongze_api/models"
- "hongze/hongze_api/services"
- "hongze/hongze_api/utils"
- "strconv"
- "time"
- )
- //用户
- type UserController struct {
- BaseAuthController
- }
- //用户
- type UserCommonController struct {
- BaseCommonController
- }
- // @Title 获取用户详情
- // @Description 获取用户详情接口
- // @Success 200 {object} models.UserDetail
- // @router /detail [get]
- func (this *UserController) Detail() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- user := this.User
- if user == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,用户信息为空"
- br.Ret = 408
- return
- }
- item, err := models.GetUserDetailByUserId(user.UserId)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- return
- }
- userPermission, err := services.CheckUserPermission(user.UserId)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "判断用户权限信息失败,Err:" + err.Error()
- return
- }
- item.UserPermission = userPermission
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = item
- }
- // @Title 获取短信验证码
- // @Description 获取短信验证码接口
- // @Param Mobile query string true "手机号码"
- // @Param AreaNum query string true "地区编码"
- // @Success 200 {object} models.UserDetail
- // @router /getSmsCode [get]
- func (this *UserCommonController) GetSmsCode() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- mobile := this.GetString("Mobile")
- if mobile == "" {
- br.Msg="请输入手机号"
- return
- }
- areaNum := this.GetString("AreaNum")
- msgCode := utils.GetRandString(4)
- var result bool
- if areaNum == "86" || areaNum == "" || areaNum == "0" {
- result = services.SendSmsCode(mobile, msgCode)
- } else {
- result = services.SendSmsCodeGj(mobile, msgCode, areaNum)
- }
- //发送成功
- if result {
- item := new(models.MsgCode)
- item.OpenId = ""
- item.Code = msgCode
- item.Mobile = mobile
- item.ExpiredIn = time.Now().Unix() + 15*60
- item.Enabled = 1
- err := models.AddMsgCode(item)
- if err != nil {
- br.Msg = "发送失败"
- br.ErrMsg = "发送失败,Err:" + err.Error()
- return
- }
- br.Msg = "发送成功"
- } else {
- br.Msg = "发送失败"
- }
- br.Ret = 200
- br.Success = true
- }
- // @Title 校验短信验证码
- // @Description 校验短信验证码接口
- // @Param request body models.CheckSmsCodeReq true "type json string"
- // @Success 200 {object} models.LoginResp
- // @router /checkSmsCode [post]
- func (this *UserCommonController) CheckSmsCode() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- var req models.CheckSmsCodeReq
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- if req.Mobile == "" {
- br.Msg = "请输入手机号"
- br.ErrMsg = "请输入手机号"
- return
- }
- if req.SmsCode == "" {
- br.Msg = "请输入验证码"
- br.ErrMsg = "请输入验证码"
- return
- }
- item, err := models.GetMsgCode(req.Mobile, req.SmsCode)
- if err != nil {
- if err.Error() == utils.ErrNoRow() {
- br.Msg = "验证码错误,请重新输入"
- br.ErrMsg = "校验验证码失败,Err:" + err.Error()
- return
- } else {
- br.Msg = "验证码错误,请重新输入"
- br.ErrMsg = "校验验证码失败,Err:" + err.Error()
- return
- }
- }
- if item == nil {
- br.Msg = "验证码错误,请重新输入"
- return
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "验证码正确"
- }
- // @Title 获取邮件验证码
- // @Description 获取邮件验证码接口
- // @Param Email query string true "手机号码"
- // @Success 200 {object} models.UserDetail
- // @router /getEmailCode [get]
- func (this *UserCommonController) GetEmailCode() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- email := this.GetString("Email")
- if email == "" {
- br.Msg = "请输入邮箱地址"
- return
- }
- if !utils.ValidateEmailFormatat(email) {
- br.Msg = "邮箱格式错误,请重新输入"
- return
- }
- msgCode := utils.GetRandString(4)
- content := "尊敬的用户:</br>您好,感谢您使用弘则研究,您正在进行邮箱验证,本次请求的验证码为:" + msgCode + "(为了保障您账号的安全性,请在15分钟内完成验证。)</br>弘则研究团队 </br>2019年05月11日"
- title := "弘则研究登陆验证"
- //发送邮件
- result, err := utils.SendEmailByHz(title, content, email)
- if err != nil {
- br.Msg = "发送失败"
- br.ErrMsg = "发送失败,Err:" + err.Error()
- return
- }
- if result {
- br.Msg = "发送成功"
- } else {
- br.Msg = "发送失败"
- }
- br.Ret = 200
- br.Success = true
- }
- // @Title 校验邮箱验证码
- // @Description 校验邮箱验证码接口
- // @Param request body models.CheckEmailCodeReq true "type json string"
- // @Success 200 {object} models.LoginResp
- // @router /checkEmailCode [post]
- func (this *UserCommonController) CheckEmailCode() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- var req models.CheckEmailCodeReq
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- if req.Email == "" {
- br.Msg = "请输入手机号"
- br.ErrMsg = "请输入手机号"
- return
- }
- if req.SmsCode == "" {
- br.Msg = "请输入验证码"
- br.ErrMsg = "请输入验证码"
- return
- }
- item, err := models.GetMsgCode(req.Email, req.SmsCode)
- if err != nil {
- if err.Error() == utils.ErrNoRow() {
- br.Msg = "验证码错误,请重新输入"
- br.ErrMsg = "校验验证码失败,Err:" + err.Error()
- return
- } else {
- br.Msg = "验证码错误,请重新输入"
- br.ErrMsg = "校验验证码失败,Err:" + err.Error()
- return
- }
- }
- if item == nil {
- br.Msg = "验证码错误,请重新输入"
- return
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "验证码正确"
- }
- /*
- $app->post('api/user/login',"UserController@login");//登录
- $app->post('api/user/apply',"UserController@apply");//申请试用
- */
- // @Title 是否小套餐客户
- // @Description 是否小套餐客户接口
- // @Success 200 {object} models.SmallLimitResp
- // @router /smallLimit [get]
- func (this *UserController) SmallLimit() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- user := this.User
- if user == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录"
- br.Ret = 408
- return
- }
- userItem, err := models.GetWxUserItemByUserId(user.UserId)
- if err != nil {
- br.Msg = "获取用户信息失败"
- br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
- return
- }
- if userItem == nil {
- br.Msg = "获取用户信息失败"
- br.ErrMsg = "用户信息不存在,UserId:" + strconv.Itoa(user.UserId)
- return
- }
- maxCount, err := models.GetUserIsMaxPermission(userItem.CompanyId)
- if err != nil {
- br.Msg = "获取用户信息失败"
- br.ErrMsg = "判断是否最大客户权限失败,Err:" + err.Error()
- return
- }
- resp := new(models.SmallLimitResp)
- if maxCount >= 15 {
- resp.IsMaxPermission = 1
- } else {
- resp.IsMaxPermission = 0
- }
- br.Ret = 200
- br.Success = true
- br.Data = resp
- }
- //func init() {
- // fmt.Println("start")
- // userPermission, err := services.CheckUserPermission(11602)
- // fmt.Println(err)
- // fmt.Println(userPermission)
- // fmt.Println("end")
- //}
|