diff --git a/app/operator/hdl/hdl_login.go b/app/operator/hdl/hdl_login.go index 8ebe1a5..138b942 100644 --- a/app/operator/hdl/hdl_login.go +++ b/app/operator/hdl/hdl_login.go @@ -21,3 +21,6 @@ func FastLogin(c *gin.Context) { func Sms(c *gin.Context) { svc.Sms(c) } +func Base(c *gin.Context) { + +} diff --git a/app/router/router.go b/app/router/router.go index a5f7cca..c96b902 100644 --- a/app/router/router.go +++ b/app/router/router.go @@ -58,9 +58,11 @@ func Init() *gin.Engine { func routeStore(r *gin.RouterGroup) { r.Any("/alipay/pay/callback", storeHdl.AlipayCallBack) + r.POST("/img/callback", storeHdl.FileImgCallback) r.Use(mw.DB) // 以下接口需要用到数据库 r.Use(mw.Checker) // 以下接口需要检查Header: platform + r.PUT("/img/upload", storeHdl.ImgReqUpload) r.POST("/login", storeHdl.Login) //账号密码登陆 r.POST("/sms", storeHdl.Sms) //发验证码 @@ -121,6 +123,7 @@ func routeCustom(r *gin.RouterGroup) { func routeOperator(r *gin.RouterGroup) { r.Use(mw.DB) // 以下接口需要用到数据库 r.Use(mw.Checker) // 以下接口需要检查Header: platform + r.POST("/base", operatorHdl.Base) //账号密码登陆 r.POST("/login", operatorHdl.Login) //账号密码登陆 r.POST("/sms", operatorHdl.Sms) //发验证码 r.POST("/fastLogin", operatorHdl.FastLogin) //快捷登陆 diff --git a/app/store/hdl/hdl_login.go b/app/store/hdl/hdl_login.go index 6045cd4..fa70011 100644 --- a/app/store/hdl/hdl_login.go +++ b/app/store/hdl/hdl_login.go @@ -1,9 +1,15 @@ package hdl import ( + "applet/app/comm/db" "applet/app/comm/e" + md2 "applet/app/comm/md" + svc2 "applet/app/comm/svc" + "applet/app/comm/utils" + "applet/app/comm/utils/logx" "applet/app/store/md" "applet/app/store/svc" + "fmt" "github.com/gin-gonic/gin" ) @@ -33,3 +39,73 @@ func Sms(c *gin.Context) { func ChangePwd(c *gin.Context) { svc.ChangePwd(c) } +func ImgReqUpload(c *gin.Context) { + // 文件名名称 + var args struct { + Dir string `json:"dir"` + FileName string `json:"file_name"` + FileSize int64 `json:"file_size"` // 文件大小, 单位byte + } + if err := c.ShouldBindJSON(&args); err != nil || args.FileSize < 1 || args.FileName == "" { + logx.Warn(err) + e.OutErr(c, e.ERR_INVALID_ARGS) + return + } + // 限制用户上传目录 + if _, ok := md2.FileUserDir[args.Dir]; !ok { + e.OutErr(c, e.ERR_FORBIDEN) + return + } + scheme := "http" + if c.Request.TLS != nil { + scheme = "https" + } + // 拼装回调地址 + callbackUrl := scheme + "://" + c.Request.Host + "/api/v1/campTask/store/img/callback?master_id=" + c.GetString("mid") + utils.FilePutContents("qny", callbackUrl) + res, err := svc2.ImgReqUpload(c, "", args.Dir, args.FileName, callbackUrl, args.FileSize) + if err != nil { + e.OutErr(c, 400, err) + return + } + my := utils.SerializeStr(res) + var my1 map[string]interface{} + utils.Unserialize([]byte(my), &my1) + e.OutSuc(c, my1, nil) + return +} +func FileImgCallback(c *gin.Context) { + masterID := c.Query("master_id") + c.Set("mid", masterID) + var args md2.FileCallback + err := c.ShouldBindJSON(&args) + utils.FilePutContents("qiniuyun", masterID) + + if err != nil { + utils.FilePutContents("qiniuyun", utils.SerializeStr(err)) + fmt.Println("七牛云上传回调参数错误:>>>>>>>>>>", err) + e.OutErr(c, 200, e.ERR_INVALID_ARGS) + return + } + res := map[string]interface{}{ + "name": args.FileName, + "fname": getFileNameURL(c, args.FileName), + "fsize": args.FileSize, + "provider": args.Provider, + "uid": args.Uid, + "dir_id": args.DirId, + "w": args.Width, + "h": args.Height, + } + e.OutSuc(c, &res, nil) +} + +func getFileNameURL(c *gin.Context, filename string) string { + protocol := db.SysCfgGet(c, "file_bucket_scheme") + domain := db.SysCfgGet(c, "file_bucket_host") + imgformat := db.SysCfgGet(c, "file_avatar_thumbnail") + if protocol != "" && domain != "" && imgformat != "" { + return protocol + "://" + domain + "/" + filename + } + return filename +} diff --git a/app/store/svc/svc_director.go b/app/store/svc/svc_director.go index 3de8fe8..c67cf08 100644 --- a/app/store/svc/svc_director.go +++ b/app/store/svc/svc_director.go @@ -113,6 +113,7 @@ func DirectorTaskSave(c *gin.Context) { e.OutErr(c, 400, e.NewErr(400, "修改失败")) return } + sess.Commit() e.OutSuc(c, "success", nil) return }