package comm import ( "applet/app/db" "applet/app/e" "applet/app/md/comm" "applet/app/svc" "applet/app/utils/cache" "code.fnuoos.com/EggPlanet/egg_models.git/src/implement" "code.fnuoos.com/EggPlanet/egg_models.git/src/model" enum2 "code.fnuoos.com/EggPlanet/egg_system_rules.git/enum" "github.com/aliyun/aliyun-oss-go-sdk/oss" "github.com/gin-gonic/gin" "time" ) // GetOssUrl // @Summary 通用请求-对象存储-上传许可链接(获取) // @Tags 对象存储 // @Description 上传许可链接(获取) // @Accept json // @Produce json // @param Authorization header string true "验证参数Bearer和token空格拼接" // @Success 200 {string} "许可链接" // @Failure 400 {object} md.Response "具体错误" // @Router /api/v1/comm/getOssUrl [get] func GetOssUrl(c *gin.Context) { redisConn := cache.GetPool().Get() sysCfgDb := implement.NewSysCfgDb(db.Db, redisConn) sysCfgs, err := sysCfgDb.SysCfgGetAll() if err != nil { e.OutErr(c, e.ERR_DB_ORM, err.Error()) return } if sysCfgs == nil { e.OutErr(c, e.ERR_CFG_CACHE, nil) return } cfgMap := make(map[string]string, len(*sysCfgs)) for _, cfg := range *sysCfgs { cfgMap[cfg.Key] = cfg.Val } endpoint := cfgMap[enum2.AliyunOss(enum2.AliyunOssEndpoint).String()] bucketName := cfgMap[enum2.AliyunOss(enum2.AliyunOssBucketName).String()] objectName := cfgMap[enum2.AliyunOss(enum2.AliyunOssBucketScheme).String()] accessKeyID := cfgMap[enum2.AliyunOss(enum2.AliyunOssAccessKeyID).String()] accessKeySecret := cfgMap[enum2.AliyunOss(enum2.AliyunOssAccessKeySecret).String()] client, err := oss.New(endpoint, accessKeyID, accessKeySecret) if err != nil { e.OutErr(c, e.ERR_AES_ENCODE, err.Error()) return } bucket, err := client.Bucket(bucketName) if err != nil { e.OutErr(c, e.ERR_AES_ENCODE, err.Error()) return } signedURL, err := bucket.SignURL(objectName, oss.HTTPPut, 60*5) if err != nil { e.OutErr(c, e.ERR_AES_ENCODE, err.Error()) return } e.OutSuc(c, signedURL, nil) } // AccessRecords // @Summary 通用请求-访问记录-页面记录 // @Tags 访问记录 // @Description 页面记录 // @Accept json // @Produce json // @param Authorization header string true "验证参数Bearer和token空格拼接" // @Param req body comm.AccessRecordsReq true "页面标识" // @Success 200 {string} "success" // @Success 200 {string} "data exist" // @Failure 400 {object} md.Response "具体错误" // @Router /api/v1/comm/accessRecords [POST] func AccessRecords(c *gin.Context) { var req *comm.AccessRecordsReq if err1 := c.ShouldBindJSON(&req); err1 != nil { e.OutErr(c, e.ERR_INVALID_ARGS, err1.Error()) return } user := svc.GetUser(c) date := time.Now().Format("2006-01-02") recordsDb := implement.NewEggAccessRecordsDb(db.Db) exist, err := recordsDb.EggAccessRecordsExist(user.Id, date, req.Index) if err != nil { e.OutErr(c, e.ERR_DB_ORM, nil) } if exist { e.OutSuc(c, "data exist", nil) return } m := model.EggAccessRecords{ Uid: user.Id, PageIndex: req.Index, Date: date, } _, err = recordsDb.EggAccessRecordsInsert(&m) if err != nil { e.OutErr(c, e.ERR_DB_ORM, nil) return } e.OutSuc(c, "success", nil) }