|
|
@@ -383,12 +383,72 @@ func (e *TaskConfService) DeleteScript(file task.GameScriptResponse) (err error)
|
|
|
}
|
|
|
|
|
|
//删除七牛云的记录
|
|
|
+
|
|
|
+ //删除七牛云之前先做判断
|
|
|
+ if key == "" {
|
|
|
+ return errors.New("请传入正确的key!")
|
|
|
+ }
|
|
|
+ if key[:13] != "shuyou/script" {
|
|
|
+ return errors.New("请传入正确的key!")
|
|
|
+ }
|
|
|
+
|
|
|
err = bucketManager.Delete(BUCKET, key)
|
|
|
fmt.Println(err)
|
|
|
return err
|
|
|
|
|
|
}
|
|
|
|
|
|
+//批量删除脚本
|
|
|
+func (e *TaskConfService) BulkDeleteScript(ids []int) (err error) {
|
|
|
+ var total int64
|
|
|
+ var scriptList []task.GameScriptResponse
|
|
|
+
|
|
|
+ taskIdMap := make(map[int]int)
|
|
|
+ db := global.GVA_DB.Table("upload_file").Where("id in ?", ids)
|
|
|
+ err = db.Count(&total).Error
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ err = db.Find(&scriptList).Error
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ keys := make([]string, len(scriptList))
|
|
|
+
|
|
|
+ //获取key数组 及task_id的map
|
|
|
+ for k,_ := range scriptList {
|
|
|
+ fmt.Println(scriptList[k].Url[30:])
|
|
|
+ keys[k] = scriptList[k].Url[30:]
|
|
|
+ if taskIdMap[scriptList[k].TaskID] != 0 {
|
|
|
+ taskIdMap[scriptList[k].TaskID]++
|
|
|
+ } else {
|
|
|
+ taskIdMap[scriptList[k].TaskID] = 1
|
|
|
+ }
|
|
|
+ }
|
|
|
+ fmt.Println(keys)
|
|
|
+ //批量删除脚本数据库记录
|
|
|
+ err = global.GVA_DB.Model(&task.GameScriptResponse{}).Delete("id in ?", ids).Error
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ //遍历taskIdMap 更新缓存状态
|
|
|
+ for k,_ := range taskIdMap {
|
|
|
+ err := e.UpdateRedisCache(k)
|
|
|
+ if err != nil {
|
|
|
+ global.GVA_LOG.Info("更新脚本md5值缓存失败:" + err.Error() + time.Now().Format("2006-01-02 15:04:05"))
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+ //批量删除七牛云脚本记录
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
//更新缓存状态
|
|
|
func (e *TaskConfService) UpdateRedisCache (taskId int) (err error) {
|
|
|
var file response.UploadFileResponse
|
|
|
@@ -416,4 +476,57 @@ func (e *TaskConfService) UpdateRedisCache (taskId int) (err error) {
|
|
|
}
|
|
|
}
|
|
|
return err
|
|
|
+}
|
|
|
+
|
|
|
+func (e *TaskConfService) BulkDeleteQiNiuYunScript(keys []string) (err error) {
|
|
|
+ //七牛云删除所需要的条件
|
|
|
+ mac := qbox.NewMac(ACCESSKEY, SECRETKEY)
|
|
|
+ cfg := storage.Config{
|
|
|
+ // 是否使用https域名进行资源管理
|
|
|
+ UseHTTPS: true,
|
|
|
+ }
|
|
|
+ // 指定空间所在的区域,如果不指定将自动探测
|
|
|
+ // 如果没有特殊需求,默认不需要指定
|
|
|
+ //cfg.Region=&storage.ZoneHuabei
|
|
|
+ bucketManager := storage.NewBucketManager(mac, &cfg)
|
|
|
+
|
|
|
+ //每个batch的操作数量不可以超过1000个,如果总数量超过1000,需要分批发送
|
|
|
+ bucket := BUCKET
|
|
|
+
|
|
|
+ //验证keys安全性
|
|
|
+ for _,v := range keys {
|
|
|
+ //删除七牛云之前先做判断
|
|
|
+ if v == "" {
|
|
|
+ return errors.New("请传入正确的key!")
|
|
|
+ }
|
|
|
+ if v[:13] != "shuyou/script" {
|
|
|
+ return errors.New("请传入正确的key!")
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ deleteOps := make([]string, 0, len(keys))
|
|
|
+ for _, key := range keys {
|
|
|
+ deleteOps = append(deleteOps, storage.URIDelete(bucket, key))
|
|
|
+ }
|
|
|
+ rets, err := bucketManager.Batch(deleteOps)
|
|
|
+ if len(rets) == 0 {
|
|
|
+ // 处理错误
|
|
|
+ if e, ok := err.(*storage.ErrorInfo); ok {
|
|
|
+ fmt.Printf("batch error, code:%s", e.Code)
|
|
|
+ } else {
|
|
|
+ fmt.Printf("batch error, %s", err)
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 返回 rets,先判断 rets 是否
|
|
|
+ for _, ret := range rets {
|
|
|
+ // 200 为成功
|
|
|
+ if ret.Code == 200 {
|
|
|
+ fmt.Printf("%d\n", ret.Code)
|
|
|
+ } else {
|
|
|
+ err = errors.New(ret.Data.Error)
|
|
|
+ fmt.Printf("%s\n", ret.Data.Error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return err
|
|
|
}
|