user.info.update.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package userLy
  2. import (
  3. "context"
  4. "duoduo/conf"
  5. "duoduo/models/mysqlLy"
  6. "duoduo/models/userLy"
  7. "duoduo/tools/app"
  8. "fmt"
  9. "github.com/gin-gonic/gin"
  10. "github.com/qiniu/go-sdk/v7/auth/qbox"
  11. "github.com/qiniu/go-sdk/v7/storage"
  12. "time"
  13. )
  14. func UserInfoUpdate(c *gin.Context) {
  15. var inData userLy.UserInfoUpdateRequest
  16. var sql mysqlLy.User
  17. err := c.ShouldBindJSON(&inData)
  18. if err != nil {
  19. app.Error(c, 400, err, err.Error())
  20. return
  21. }
  22. confIni, err := conf.ConnIni()
  23. if err != nil {
  24. app.Error(c, 400, err, err.Error())
  25. return
  26. }
  27. if inData.Pictures != "" { //图片上传
  28. timeUnixNano := time.Now().UnixNano() //单位纳秒
  29. fileName := fmt.Sprintf("%d.jpg", timeUnixNano)
  30. //七牛云上传图片
  31. bucket := "imgxx"
  32. key := "lingyang-head/" + inData.OpenId + "/" + fileName
  33. putPolicy := storage.PutPolicy{
  34. Scope: bucket,
  35. }
  36. mac := qbox.NewMac(confIni.MustValue("ly-qn", "access_key"), confIni.MustValue("ly-qn", "secret_key"))
  37. upToken := putPolicy.UploadToken(mac)
  38. cfg := storage.Config{}
  39. // 空间对应的机房
  40. cfg.Zone = &storage.ZoneHuanan
  41. // 是否使用https域名
  42. cfg.UseHTTPS = false
  43. // 上传是否使用CDN上传加速
  44. cfg.UseCdnDomains = false
  45. // 构建表单上传的对象
  46. baseUploader := storage.NewBase64Uploader(&cfg)
  47. ret := storage.PutRet{}
  48. err = baseUploader.Put(context.Background(), &ret, upToken, key, []byte(inData.Pictures), nil)
  49. if err != nil {
  50. app.Error(c, 500, err, "上传图片失败")
  51. return
  52. }
  53. inData.AvatarUrl = "http://lingyang.shisanmiao.com/" + key
  54. }
  55. sql.OpenID = inData.OpenId
  56. sql.WxCode = inData.WxCode
  57. sql.Phone = inData.Phone
  58. sql.NickName = inData.NickName
  59. sql.AvatarUrl = inData.AvatarUrl
  60. _, err = sql.Update()
  61. if err != nil {
  62. app.Error(c, 500, err, err.Error())
  63. return
  64. }
  65. app.OK(c, nil, app.Success)
  66. }