劲创营---任务项目
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

112 lines
2.8 KiB

  1. package hdl
  2. import (
  3. "applet/app/comm/db"
  4. "applet/app/comm/e"
  5. md2 "applet/app/comm/md"
  6. svc2 "applet/app/comm/svc"
  7. "applet/app/comm/utils"
  8. "applet/app/comm/utils/logx"
  9. "applet/app/store/md"
  10. "applet/app/store/svc"
  11. "fmt"
  12. "github.com/gin-gonic/gin"
  13. )
  14. func Login(c *gin.Context) {
  15. svc.Login(c)
  16. }
  17. func Register(c *gin.Context) {
  18. var args md.RegisterReq
  19. if err := c.ShouldBindJSON(&args); err != nil {
  20. e.OutErr(c, e.ERR_INVALID_ARGS)
  21. return
  22. }
  23. args.Type = "register"
  24. svc.Register(c, args)
  25. }
  26. func FastLogin(c *gin.Context) {
  27. var args md.RegisterReq
  28. if err := c.ShouldBindJSON(&args); err != nil {
  29. e.OutErr(c, e.ERR_INVALID_ARGS)
  30. return
  31. }
  32. svc.Register(c, args)
  33. }
  34. func Sms(c *gin.Context) {
  35. svc.Sms(c)
  36. }
  37. func ChangePwd(c *gin.Context) {
  38. svc.ChangePwd(c)
  39. }
  40. func ImgReqUpload(c *gin.Context) {
  41. // 文件名名称
  42. var args struct {
  43. Dir string `json:"dir"`
  44. FileName string `json:"file_name"`
  45. FileSize int64 `json:"file_size"` // 文件大小, 单位byte
  46. }
  47. if err := c.ShouldBindJSON(&args); err != nil || args.FileSize < 1 || args.FileName == "" {
  48. logx.Warn(err)
  49. e.OutErr(c, e.ERR_INVALID_ARGS)
  50. return
  51. }
  52. // 限制用户上传目录
  53. if _, ok := md2.FileUserDir[args.Dir]; !ok {
  54. e.OutErr(c, e.ERR_FORBIDEN)
  55. return
  56. }
  57. scheme := "http"
  58. if c.Request.TLS != nil {
  59. scheme = "https"
  60. }
  61. // 拼装回调地址
  62. callbackUrl := scheme + "://" + c.Request.Host + "/api/v1/campTask/store/img/callback?master_id=" + c.GetString("mid")
  63. utils.FilePutContents("qny", callbackUrl)
  64. res, err := svc2.ImgReqUpload(c, "", args.Dir, args.FileName, callbackUrl, args.FileSize)
  65. if err != nil {
  66. e.OutErr(c, 400, err)
  67. return
  68. }
  69. my := utils.SerializeStr(res)
  70. var my1 map[string]interface{}
  71. utils.Unserialize([]byte(my), &my1)
  72. e.OutSuc(c, my1, nil)
  73. return
  74. }
  75. func FileImgCallback(c *gin.Context) {
  76. masterID := c.Query("master_id")
  77. c.Set("mid", masterID)
  78. var args md2.FileCallback
  79. err := c.ShouldBindJSON(&args)
  80. utils.FilePutContents("qiniuyun", masterID)
  81. if err != nil {
  82. utils.FilePutContents("qiniuyun", utils.SerializeStr(err))
  83. fmt.Println("七牛云上传回调参数错误:>>>>>>>>>>", err)
  84. e.OutErr(c, 200, e.ERR_INVALID_ARGS)
  85. return
  86. }
  87. res := map[string]interface{}{
  88. "name": args.FileName,
  89. "fname": getFileNameURL(c, args.FileName),
  90. "fsize": args.FileSize,
  91. "provider": args.Provider,
  92. "uid": args.Uid,
  93. "dir_id": args.DirId,
  94. "w": args.Width,
  95. "h": args.Height,
  96. }
  97. e.OutSuc(c, &res, nil)
  98. }
  99. func getFileNameURL(c *gin.Context, filename string) string {
  100. protocol := db.SysCfgGet(c, "file_bucket_scheme")
  101. domain := db.SysCfgGet(c, "file_bucket_host")
  102. imgformat := db.SysCfgGet(c, "file_avatar_thumbnail")
  103. if protocol != "" && domain != "" && imgformat != "" {
  104. return protocol + "://" + domain + "/" + filename
  105. }
  106. return filename
  107. }