user.open.id.set.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package user
  2. import (
  3. "duoduo/apis/pdd"
  4. "duoduo/conf"
  5. "duoduo/models/mysql"
  6. "duoduo/models/user"
  7. "duoduo/tools"
  8. "duoduo/tools/app"
  9. "fmt"
  10. "github.com/gin-gonic/gin"
  11. )
  12. func OpenIdSet(c *gin.Context) {
  13. var inData user.OpenIdSetRequest
  14. var outData user.OpenIdSetResponse
  15. var sqlData mysql.User
  16. var sql1 mysql.User
  17. //var wallet mysql.Wallet
  18. err := c.ShouldBindJSON(&inData)
  19. if err != nil {
  20. app.Error(c, 400, err, err.Error())
  21. return
  22. }
  23. confIni, err := conf.ConnIni()
  24. if err != nil {
  25. app.Error(c, 400, err, err.Error())
  26. return
  27. }
  28. url := fmt.Sprintf("https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code", confIni.MustValue("wx", "app_id"), confIni.MustValue("wx", "secret"), inData.Code)
  29. val, err := pdd.DuoDuoGet(url)
  30. if err != nil {
  31. app.Error(c, 500, err, err.Error())
  32. return
  33. }
  34. fmt.Print(val)
  35. err = tools.JsonUnmarshal(val, &outData)
  36. if err != nil {
  37. app.Error(c, 500, err, err.Error())
  38. return
  39. }
  40. if outData.Errcode != 0 {
  41. app.Error(c, outData.Errcode, err, outData.Errmsg)
  42. return
  43. }
  44. //查询数据
  45. sqlData.OpenID = outData.OpenId
  46. num := sqlData.GetNum()
  47. if num == 0 {
  48. if inData.OpenId != "" { //有上级
  49. sql1.OpenID = inData.OpenId
  50. val, err := sql1.Get()
  51. if err != nil {
  52. app.Error(c, 500, err, err.Error())
  53. return
  54. }
  55. //创建用户
  56. sqlData.CreateTime = tools.GetCurrntTimeStr()
  57. sqlData.UpdateTime = tools.GetCurrntTimeStr()
  58. sqlData.OpenIdOne = inData.OpenId
  59. sqlData.OpenIdTwo = val.OpenIdOne
  60. sqlData.Create()
  61. } else { //无上级用户
  62. //创建用户
  63. sqlData.CreateTime = tools.GetCurrntTimeStr()
  64. sqlData.UpdateTime = tools.GetCurrntTimeStr()
  65. sqlData.Create()
  66. }
  67. }
  68. app.OK(c, outData, app.Success)
  69. }