|
|
@@ -6,6 +6,7 @@ import (
|
|
6
|
6
|
"Gwen/http/response"
|
|
7
|
7
|
"Gwen/model"
|
|
8
|
8
|
"Gwen/service"
|
|
|
9
|
+ "encoding/json"
|
|
9
|
10
|
_ "encoding/json"
|
|
10
|
11
|
"github.com/gin-gonic/gin"
|
|
11
|
12
|
"gorm.io/gorm"
|
|
|
@@ -327,3 +328,70 @@ func (ct *AddressBook) ShareByWebClient(c *gin.Context) {
|
|
327
|
328
|
"share_token": m.ShareToken,
|
|
328
|
329
|
})
|
|
329
|
330
|
}
|
|
|
331
|
+
|
|
|
332
|
+func (ct *AddressBook) BatchCreateFromPeers(c *gin.Context) {
|
|
|
333
|
+ f := &admin.BatchCreateFromPeersForm{}
|
|
|
334
|
+ if err := c.ShouldBindJSON(f); err != nil {
|
|
|
335
|
+ response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error())
|
|
|
336
|
+ return
|
|
|
337
|
+ }
|
|
|
338
|
+ u := service.AllService.UserService.CurUser(c)
|
|
|
339
|
+
|
|
|
340
|
+ if f.CollectionId != 0 {
|
|
|
341
|
+ collection := service.AllService.AddressBookService.CollectionInfoById(f.CollectionId)
|
|
|
342
|
+ if collection.Id == 0 {
|
|
|
343
|
+ response.Fail(c, 101, response.TranslateMsg(c, "ItemNotFound"))
|
|
|
344
|
+ return
|
|
|
345
|
+ }
|
|
|
346
|
+ if collection.UserId != u.Id {
|
|
|
347
|
+ response.Fail(c, 101, response.TranslateMsg(c, "NoAccess"))
|
|
|
348
|
+ return
|
|
|
349
|
+ }
|
|
|
350
|
+ }
|
|
|
351
|
+
|
|
|
352
|
+ peers := service.AllService.PeerService.List(1, 999, func(tx *gorm.DB) {
|
|
|
353
|
+ tx.Where("row_id in ?", f.PeerIds)
|
|
|
354
|
+ tx.Where("user_id = ?", u.Id)
|
|
|
355
|
+ })
|
|
|
356
|
+ if peers.Total == 0 {
|
|
|
357
|
+ response.Fail(c, 101, response.TranslateMsg(c, "ItemNotFound"))
|
|
|
358
|
+ return
|
|
|
359
|
+ }
|
|
|
360
|
+
|
|
|
361
|
+ tags, _ := json.Marshal(f.Tags)
|
|
|
362
|
+ for _, peer := range peers.Peers {
|
|
|
363
|
+ ab := service.AllService.AddressBookService.FromPeer(peer)
|
|
|
364
|
+ ab.Tags = tags
|
|
|
365
|
+ ab.CollectionId = f.CollectionId
|
|
|
366
|
+ ex := service.AllService.AddressBookService.InfoByUserIdAndIdAndCid(u.Id, ab.Id, ab.CollectionId)
|
|
|
367
|
+ if ex.RowId != 0 {
|
|
|
368
|
+ continue
|
|
|
369
|
+ }
|
|
|
370
|
+ service.AllService.AddressBookService.Create(ab)
|
|
|
371
|
+ }
|
|
|
372
|
+ response.Success(c, nil)
|
|
|
373
|
+}
|
|
|
374
|
+
|
|
|
375
|
+func (ct *AddressBook) BatchUpdateTags(c *gin.Context) {
|
|
|
376
|
+ f := &admin.BatchUpdateTagsForm{}
|
|
|
377
|
+ if err := c.ShouldBindJSON(f); err != nil {
|
|
|
378
|
+ response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error())
|
|
|
379
|
+ return
|
|
|
380
|
+ }
|
|
|
381
|
+ u := service.AllService.UserService.CurUser(c)
|
|
|
382
|
+
|
|
|
383
|
+ abs := service.AllService.AddressBookService.List(1, 999, func(tx *gorm.DB) {
|
|
|
384
|
+ tx.Where("row_id in ?", f.RowIds)
|
|
|
385
|
+ tx.Where("user_id = ?", u.Id)
|
|
|
386
|
+ })
|
|
|
387
|
+ if abs.Total == 0 {
|
|
|
388
|
+ response.Fail(c, 101, response.TranslateMsg(c, "ItemNotFound"))
|
|
|
389
|
+ return
|
|
|
390
|
+ }
|
|
|
391
|
+ err := service.AllService.AddressBookService.BatchUpdateTags(abs.AddressBooks, f.Tags)
|
|
|
392
|
+ if err != nil {
|
|
|
393
|
+ response.Fail(c, 101, response.TranslateMsg(c, "OperationFailed")+err.Error())
|
|
|
394
|
+ return
|
|
|
395
|
+ }
|
|
|
396
|
+ response.Success(c, nil)
|
|
|
397
|
+}
|