|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- package svc
-
- import (
- "applet/app/comm/db"
- "applet/app/comm/e"
- "applet/app/comm/svc"
- "applet/app/comm/utils"
- "applet/app/comm/utils/cache"
- "applet/app/lib/mob"
- sms2 "applet/app/lib/sms"
- "applet/app/operator/md"
- "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/sms"
- "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/implement"
- "encoding/json"
- "fmt"
- "github.com/gin-gonic/gin"
- "github.com/syyongx/php2go"
- )
-
- func Login(c *gin.Context) {
- var args md.LoginReq
- if err := c.ShouldBindJSON(&args); err != nil {
- e.OutErr(c, e.ERR_INVALID_ARGS)
- return
- }
- user, _ := db.UserFindByMobile(svc.MasterDb(c), args.Phone)
- if user == nil {
- e.OutErr(c, 400, e.NewErr(400, "用户未注册"))
- return
- }
- if user.Password != utils.Md5(args.Password) {
- e.OutErr(c, 400, e.NewErr(400, "密码错误"))
- return
- }
- if user.Level != 2 && user.Level != 3 {
- e.OutErr(c, 400, e.NewErr(400, "您没有访问权限,请联系平台"))
- return
- }
- // 生成jwt
- appName := svc.SysCfgGet(c, "app_name")
- token, err := utils.GenToken(user.Uid, user.Username, user.Phone, appName, "", "")
- if err != nil {
- e.OutErr(c, 400, e.NewErr(400, "用户不存在"))
- return
- }
- key := fmt.Sprintf("%s:token:%s", c.GetString("mid"), user.Username)
- cache.SetEx(key, token, 39528000) // 半年
- role := []string{"comm"}
- if user.Level == 3 {
- role = append(role, "operator")
- }
- res := map[string]interface{}{
- "token": token,
- "role": role,
- }
- e.OutSuc(c, res, nil)
- return
- }
- func Register(c *gin.Context, args md.RegisterReq) {
- user, _ := db.UserFindByMobile(svc.MasterDb(c), args.Phone)
- if user == nil {
- e.OutErr(c, 400, e.NewErr(400, "用户未注册"))
- return
- }
- if user.Level != 2 && user.Level != 3 {
-
- e.OutErr(c, 400, e.NewErr(400, "您没有访问权限,请联系平台"))
- return
- }
- mob1, errr := mob.GetMobSDK(c.GetString("mid"))
- if errr != nil {
- e.OutErr(c, e.ERR_MOB_CONFIG, errr)
- return
- }
- send := map[string]interface{}{
- "phone": args.Phone,
- "zone": "86",
- "code": args.Captcha,
- }
- var ok bool
- // h5(wap) 登录
- var err error
- if svc.SysCfgGet(c, "sms_send_type") == "2" {
- code := svc.SysCfgGet(c, "sms_send_code")
- if code != args.Captcha {
- e.OutErr(c, 400, e.NewErr(400, "验证码错误,请重试"))
- return
- }
- ok = true
- cache.Del("sms:" + c.GetString("mid") + ":" + args.Phone)
- } else if c.GetString("sms_type") == "2" || svc.SysCfgGet(c, "sms_send_type") == "1" {
- code, _ := cache.GetString("sms:" + c.GetString("mid") + ":" + args.Phone)
- if code != args.Captcha {
- e.OutErr(c, 400, e.NewErr(400, "验证码错误,请重试"))
- return
- }
- cache.Del("sms:" + c.GetString("mid") + ":" + args.Phone)
- ok = true
- } else {
- ok, err = mob1.MobSMS(c, send)
- if err != nil {
- e.OutErr(c, 400, err.Error())
- return
- }
- }
- if ok == false {
- // 验证码无效或者过期,验证码错误
- e.OutErr(c, e.ERR_SMS_AUTH, nil)
- return
- }
-
- appName := svc.SysCfgGet(c, "app_name")
- token, err := utils.GenToken(user.Uid, user.Username, user.Phone, appName, "", "")
- if err != nil {
- e.OutErr(c, 400, e.NewErr(400, "用户不存在"))
- return
- }
- up, err := db.UserProfileFindByID(db.DBs[c.GetString("mid")], user.Uid)
- if err != nil || up == nil {
- e.OutErr(c, e.ERR_DB_ORM, err)
- return
- }
- up.ArkidToken = token
- _, err = svc.MasterDb(c).Where("uid=?", up.Uid).Cols("arkid_token").Update(up)
- if err != nil {
- e.OutErr(c, 400, e.NewErr(400, "登陆失败"))
- return
- }
- key1 := fmt.Sprintf("%s:token:%s", c.GetString("mid"), user.Username)
- cache.SetEx(key1, token, 39528000) // 半年
- res := map[string]string{
- "token": token,
- }
- e.OutSuc(c, res, nil)
- return
- }
- func Sms(c *gin.Context) {
- var args md.SmsReq
- if err := c.ShouldBindJSON(&args); err != nil {
- e.OutErr(c, e.ERR_INVALID_ARGS)
- return
- }
- mobile, _ := db.UserFindByMobile(svc.MasterDb(c), args.Phone)
- if mobile == nil {
- e.OutErr(c, 400, e.NewErr(400, "用户未注册"))
- return
- }
- if mobile.Level != 2 && mobile.Level != 3 {
- e.OutErr(c, 400, e.NewErr(400, "您没有访问权限,请联系平台"))
- return
- }
- if c.GetString("sms_type") != "2" {
- count := sms.SmsNumGetSmsNum(db.Db, "putong", c.GetString("mid"))
- if count-3 < 0 {
- e.OutErr(c, e.ERR_MOB_SMS_NO_AVA, nil)
- return
- }
- }
- appName := svc.SysCfgGet(c, "sms_push_sign")
- captcha := utils.CreateCaptcha()
- content := fmt.Sprintf("【%s】验证码:%s", appName, captcha)
- marshal, _ := json.Marshal(c.Request.Header)
- waykeys := "app_" + c.ClientIP() + "_" + utils.IntToStr(utils.GetApiVersion(c)) + "_" + c.Request.RequestURI + "_" + string(marshal)
- postData := map[string]interface{}{
- "content": content,
- "mobile": args.Phone,
- "templateCode": "normal",
- "way": php2go.Base64Encode(waykeys),
- }
- err := sms2.GetSmsConfig(c, "86", postData, "")
- if err != nil {
- e.OutErr(c, 400, e.NewErr(400000, err.Error()))
- return
- }
- tip := "验证码已发送,5分钟内有效"
- e.OutSuc(c, tip, nil)
- return
- }
- func ChangePwd(c *gin.Context) {
- var args md.RegisterReq
- if err := c.ShouldBindJSON(&args); err != nil {
- e.OutErr(c, e.ERR_INVALID_ARGS)
- return
- }
- mob1, errr := mob.GetMobSDK(c.GetString("mid"))
- if errr != nil {
- e.OutErr(c, e.ERR_MOB_CONFIG, errr)
- return
- }
- send := map[string]interface{}{
- "phone": args.Phone,
- "zone": "86",
- "code": args.Captcha,
- }
- var ok bool
- // h5(wap) 登录
- var err error
- if svc.SysCfgGet(c, "sms_send_type") == "2" {
- code := svc.SysCfgGet(c, "sms_send_code")
- if code != args.Captcha {
- e.OutErr(c, 400, e.NewErr(400, "验证码错误,请重试"))
- return
- }
- ok = true
- cache.Del("sms:" + c.GetString("mid") + ":" + args.Phone)
- } else if c.GetString("sms_type") == "2" || svc.SysCfgGet(c, "sms_send_type") == "1" {
- code, _ := cache.GetString("sms:" + c.GetString("mid") + ":" + args.Phone)
- if code != args.Captcha {
- e.OutErr(c, 400, e.NewErr(400, "验证码错误,请重试"))
- return
- }
- cache.Del("sms:" + c.GetString("mid") + ":" + args.Phone)
- ok = true
- } else {
- ok, err = mob1.MobSMS(c, send)
- if err != nil {
- e.OutErr(c, 400, err.Error())
- return
- }
- }
- if ok == false {
- // 验证码无效或者过期,验证码错误
- e.OutErr(c, e.ERR_SMS_AUTH, nil)
- return
- }
- NewCampTaskStoreUserDb := implement.NewCampTaskStoreUserDb(svc.MasterDb(c))
- user, _ := NewCampTaskStoreUserDb.GetCampTaskStoreUserByPhone(args.Phone)
- if user == nil {
- e.OutErr(c, 400, e.NewErr(400, "用户不存在"))
- return
- }
- user.Password = utils.Md5(args.Password)
- update, _ := svc.MasterDb(c).Where("id=?", user.Id).Cols("password").Update(user)
- if update == 0 {
- e.OutErr(c, 400, e.NewErr(400, "修改失败"))
- return
- }
- e.OutSuc(c, "success", nil)
- return
- }
|