262
+                        "user_id": "Q5ZYPEX",
263
+                        "nickname": "HQM",
264
+                        "photo_h": 1280,
265
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/Fo__6zGVyL97919sHg3delWf02nE",
266
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/FqPZkjQrkvO6Y3nlMDkLrb4o4yp-",
267
+                        "photo_id": "NKANPGPERBUbc6uTBqaeWB",
268
+                        "photo_share_url": "https://pai.ai/gp/NKANPGPERBUbc6uTBqaeWB",
269
+                        "created_at": "2018-08-07T11:50:32",
270
+                        "photo_thumbnail_h": 400,
271
+                        "session_id": null,
272
+                        "thumbup_num": 0,
273
+                        "photo_thumbnail_w": 540,
274
+                        "group_avatar": null,
275
+                        "photo_thumbnail2_h": 800,
276
+                        "nomark": 299,
277
+                        "photo_from": 0,
278
+                        "group_id": "T82d36P",
279
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83epAYd6R93z0eXOEheGjw9O2CttNiakABXDkCpnmn28iaQ8qicmDjtbuibX95D63q0icVicY4JqDBa7DqpPg/132"
280
+                    },
281
+                    {
282
+                        "origin": 999,
283
+                        "photo_w": 1280,
284
+                        "longitude": 0,
285
+                        "location": "0.0",
286
+                        "origin_expired_stamps": 1533586498000,
287
+                        "photo_thumbnail2_w": 1080,
288
+                        "thumbup": false,
289
+                        "comment_num": 0,
290
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/FuP6UDV-_tW7Y07zfdKP2o6k9_b5",
291
+                        "group_from": 1,
292
+                        "group_name": "1&2",
293
+                        "porder": {},
294
+                        "latitude": 0,
295
+                        "display_payment_btn": false,
296
+                        "group_default_avatar": 0,
297
+                        "user_id": "Q5ZYPEX",
298
+                        "nickname": "HQM",
299
+                        "photo_h": 1726,
300
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/FtZzThTe0de5k8zvtl-HQtrGfodo",
301
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/FjjakzlpiWEv4CxNNzBm2pDAs9jI",
302
+                        "photo_id": "iy2sv67BZy6S3ZsgZqceFG",
303
+                        "photo_share_url": "https://pai.ai/gp/iy2sv67BZy6S3ZsgZqceFG",
304
+                        "created_at": "2018-07-31T04:14:58",
305
+                        "photo_thumbnail_h": 728,
306
+                        "session_id": null,
307
+                        "thumbup_num": 0,
308
+                        "photo_thumbnail_w": 540,
309
+                        "group_avatar": "",
310
+                        "photo_thumbnail2_h": 1456,
311
+                        "nomark": 299,
312
+                        "photo_from": 0,
313
+                        "group_id": "KyJYjNq",
314
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83epAYd6R93z0eXOEheGjw9O2CttNiakABXDkCpnmn28iaQ8qicmDjtbuibX95D63q0icVicY4JqDBa7DqpPg/132"
315
+                    },
316
+                    {
317
+                        "origin": 999,
318
+                        "photo_w": 1280,
319
+                        "longitude": 0,
320
+                        "location": "0.0",
321
+                        "origin_expired_stamps": 1533586479000,
322
+                        "photo_thumbnail2_w": 1080,
323
+                        "thumbup": false,
324
+                        "comment_num": 0,
325
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/FmNXflMuFAH5TBBKo1Kdl-HfCjfm",
326
+                        "group_from": 1,
327
+                        "group_name": "1&2",
328
+                        "porder": {},
329
+                        "latitude": 0,
330
+                        "display_payment_btn": false,
331
+                        "group_default_avatar": 0,
332
+                        "user_id": "Q5ZYPEX",
333
+                        "nickname": "HQM",
334
+                        "photo_h": 1726,
335
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/FmTWlIg0TI816RTHyd36v24dVI07",
336
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/FliZRZxOjH9M5sRih0gtIprcRarm",
337
+                        "photo_id": "8U9YFNAtuGAcNRfhPDwNZn",
338
+                        "photo_share_url": "https://pai.ai/gp/8U9YFNAtuGAcNRfhPDwNZn",
339
+                        "created_at": "2018-07-31T04:14:39",
340
+                        "photo_thumbnail_h": 728,
341
+                        "session_id": null,
342
+                        "thumbup_num": 0,
343
+                        "photo_thumbnail_w": 540,
344
+                        "group_avatar": "",
345
+                        "photo_thumbnail2_h": 1456,
346
+                        "nomark": 299,
347
+                        "photo_from": 0,
348
+                        "group_id": "KyJYjNq",
349
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83epAYd6R93z0eXOEheGjw9O2CttNiakABXDkCpnmn28iaQ8qicmDjtbuibX95D63q0icVicY4JqDBa7DqpPg/132"
350
+                    }
351
+                ],
352
+                "session_id": null
353
+            },
354
+            {
355
+                "photos": [
356
+                    {
357
+                        "origin": 999,
358
+                        "photo_w": 1920,
359
+                        "longitude": 0,
360
+                        "location": null,
361
+                        "origin_expired_stamps": 1529543079000,
362
+                        "photo_thumbnail2_w": 1080,
363
+                        "thumbup": true,
364
+                        "comment_num": 0,
365
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/Fm9RHWF-8-EyP-nW_sRrtm8hKUBh",
366
+                        "group_from": 1,
367
+                        "group_name": "solom",
368
+                        "porder": {},
369
+                        "latitude": 0,
370
+                        "display_payment_btn": false,
371
+                        "group_default_avatar": 0,
372
+                        "user_id": "LzWPe7z",
373
+                        "nickname": "solom",
374
+                        "photo_h": 1280,
375
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/FrUHMvj2mUGGsqwcopoCEMXOscNC",
376
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/FjzQm9ei98-jAHk4Q4FdgnZDhxIc",
377
+                        "photo_id": "tFuUQkkKsXUyV3N3g5ffFL",
378
+                        "photo_share_url": "https://pai.ai/gp/tFuUQkkKsXUyV3N3g5ffFL",
379
+                        "created_at": "2018-06-14T09:04:39",
380
+                        "photo_thumbnail_h": 360,
381
+                        "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz",
382
+                        "thumbup_num": 2,
383
+                        "photo_thumbnail_w": 540,
384
+                        "group_avatar": null,
385
+                        "photo_thumbnail2_h": 720,
386
+                        "nomark": 100,
387
+                        "photo_from": 1,
388
+                        "group_id": "WrWbvT7",
389
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83erxcJiaabkvdFnmb7LTsjwBKlwLGIxCsxx7OwZQYGDkVexcshb0SSDQaF6pcQLqWrbPad9EFqbDM6Q/132"
390
+                    },
391
+                    {
392
+                        "origin": 999,
393
+                        "photo_w": 1920,
394
+                        "longitude": 0,
395
+                        "location": null,
396
+                        "origin_expired_stamps": 1529542791000,
397
+                        "photo_thumbnail2_w": 1080,
398
+                        "thumbup": false,
399
+                        "comment_num": 0,
400
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/FkA6op_9lT5fZx0F-rrYLGvPP2LK",
401
+                        "group_from": 1,
402
+                        "group_name": "solom",
403
+                        "porder": {},
404
+                        "latitude": 0,
405
+                        "display_payment_btn": false,
406
+                        "group_default_avatar": 0,
407
+                        "user_id": "LzWPe7z",
408
+                        "nickname": "solom",
409
+                        "photo_h": 1280,
410
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/FtwypCr0xAn_JOP2OAb4SiEcMJkS",
411
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/Fk8TEji0jVQ7NEvcWzZYlrzTKDcl",
412
+                        "photo_id": "nWLmBhSa4QiEz72zw8LQBo",
413
+                        "photo_share_url": "https://pai.ai/gp/nWLmBhSa4QiEz72zw8LQBo",
414
+                        "created_at": "2018-06-14T08:59:51",
415
+                        "photo_thumbnail_h": 360,
416
+                        "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz",
417
+                        "thumbup_num": 1,
418
+                        "photo_thumbnail_w": 540,
419
+                        "group_avatar": null,
420
+                        "photo_thumbnail2_h": 720,
421
+                        "nomark": 100,
422
+                        "photo_from": 1,
423
+                        "group_id": "WrWbvT7",
424
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83erxcJiaabkvdFnmb7LTsjwBKlwLGIxCsxx7OwZQYGDkVexcshb0SSDQaF6pcQLqWrbPad9EFqbDM6Q/132"
425
+                    },
426
+                    {
427
+                        "origin": 999,
428
+                        "photo_w": 1920,
429
+                        "longitude": 0,
430
+                        "location": null,
431
+                        "origin_expired_stamps": 1529542510000,
432
+                        "photo_thumbnail2_w": 1080,
433
+                        "thumbup": false,
434
+                        "comment_num": 0,
435
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/FgcUUsuqhfiYe-u4KOD0FNXQnsLC",
436
+                        "group_from": 1,
437
+                        "group_name": "solom",
438
+                        "porder": {},
439
+                        "latitude": 0,
440
+                        "display_payment_btn": false,
441
+                        "group_default_avatar": 0,
442
+                        "user_id": "LzWPe7z",
443
+                        "nickname": "solom",
444
+                        "photo_h": 1280,
445
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/FrioUYlk1Q7cc_rbAu5UMiyQ98bA",
446
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/Fied2QXGIiJwK2IA8SDr4eHbUmH8",
447
+                        "photo_id": "nLbeNSqZk4Gxg6GDn9BSZT",
448
+                        "photo_share_url": "https://pai.ai/gp/nLbeNSqZk4Gxg6GDn9BSZT",
449
+                        "created_at": "2018-06-14T08:55:10",
450
+                        "photo_thumbnail_h": 360,
451
+                        "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz",
452
+                        "thumbup_num": 0,
453
+                        "photo_thumbnail_w": 540,
454
+                        "group_avatar": null,
455
+                        "photo_thumbnail2_h": 720,
456
+                        "nomark": 100,
457
+                        "photo_from": 1,
458
+                        "group_id": "WrWbvT7",
459
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83erxcJiaabkvdFnmb7LTsjwBKlwLGIxCsxx7OwZQYGDkVexcshb0SSDQaF6pcQLqWrbPad9EFqbDM6Q/132"
460
+                    },
461
+                    {
462
+                        "origin": 999,
463
+                        "photo_w": 1920,
464
+                        "longitude": 0,
465
+                        "location": null,
466
+                        "origin_expired_stamps": 1529542386000,
467
+                        "photo_thumbnail2_w": 1080,
468
+                        "thumbup": false,
469
+                        "comment_num": 0,
470
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/FuPu9Vc9RqwrkSTUfw2PnDXr5QMy",
471
+                        "group_from": 1,
472
+                        "group_name": "solom",
473
+                        "porder": {},
474
+                        "latitude": 0,
475
+                        "display_payment_btn": false,
476
+                        "group_default_avatar": 0,
477
+                        "user_id": "LzWPe7z",
478
+                        "nickname": "solom",
479
+                        "photo_h": 1280,
480
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/FmuVCUMJo4coOEq4NHEBBeFmQb8O",
481
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/FrstI7EHRB8TQI4wqdZitOxrs2u4",
482
+                        "photo_id": "kEExAJr2WFtCfMYEZ4RQs9",
483
+                        "photo_share_url": "https://pai.ai/gp/kEExAJr2WFtCfMYEZ4RQs9",
484
+                        "created_at": "2018-06-14T08:53:06",
485
+                        "photo_thumbnail_h": 360,
486
+                        "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz",
487
+                        "thumbup_num": 0,
488
+                        "photo_thumbnail_w": 540,
489
+                        "group_avatar": null,
490
+                        "photo_thumbnail2_h": 720,
491
+                        "nomark": 100,
492
+                        "photo_from": 1,
493
+                        "group_id": "WrWbvT7",
494
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83erxcJiaabkvdFnmb7LTsjwBKlwLGIxCsxx7OwZQYGDkVexcshb0SSDQaF6pcQLqWrbPad9EFqbDM6Q/132"
495
+                    },
496
+                    {
497
+                        "origin": 999,
498
+                        "photo_w": 1920,
499
+                        "longitude": 0,
500
+                        "location": null,
501
+                        "origin_expired_stamps": 1529542315000,
502
+                        "photo_thumbnail2_w": 1080,
503
+                        "thumbup": false,
504
+                        "comment_num": 0,
505
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/FrKF2be6dWIYV1ywLUjrm38AlYlV",
506
+                        "group_from": 1,
507
+                        "group_name": "solom",
508
+                        "porder": {},
509
+                        "latitude": 0,
510
+                        "display_payment_btn": false,
511
+                        "group_default_avatar": 0,
512
+                        "user_id": "LzWPe7z",
513
+                        "nickname": "solom",
514
+                        "photo_h": 1280,
515
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/Fl6iCiax-ic2k3pKnTI2QU-gGnBl",
516
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/Fj_wavr-Lm46KH2XT5oWUxr3lyDW",
517
+                        "photo_id": "fM6RpikNzgwPmK2pT8nS4i",
518
+                        "photo_share_url": "https://pai.ai/gp/fM6RpikNzgwPmK2pT8nS4i",
519
+                        "created_at": "2018-06-14T08:51:55",
520
+                        "photo_thumbnail_h": 360,
521
+                        "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz",
522
+                        "thumbup_num": 0,
523
+                        "photo_thumbnail_w": 540,
524
+                        "group_avatar": null,
525
+                        "photo_thumbnail2_h": 720,
526
+                        "nomark": 100,
527
+                        "photo_from": 1,
528
+                        "group_id": "WrWbvT7",
529
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83erxcJiaabkvdFnmb7LTsjwBKlwLGIxCsxx7OwZQYGDkVexcshb0SSDQaF6pcQLqWrbPad9EFqbDM6Q/132"
530
+                    },
531
+                    {
532
+                        "origin": 999,
533
+                        "photo_w": 1920,
534
+                        "longitude": 0,
535
+                        "location": null,
536
+                        "origin_expired_stamps": 1529542304000,
537
+                        "photo_thumbnail2_w": 1080,
538
+                        "thumbup": false,
539
+                        "comment_num": 0,
540
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/FucZ2YnjXE_A07ZAjGcyUvJyKloL",
541
+                        "group_from": 1,
542
+                        "group_name": "solom",
543
+                        "porder": {},
544
+                        "latitude": 0,
545
+                        "display_payment_btn": false,
546
+                        "group_default_avatar": 0,
547
+                        "user_id": "LzWPe7z",
548
+                        "nickname": "solom",
549
+                        "photo_h": 1280,
550
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/FiNd32Wj2lpFrIYEDEHlVa7YKrJj",
551
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/Fs5NVvtVtAngySth_nlMTfFKX1Eg",
552
+                        "photo_id": "gn3TRYS8doVHFbvYgNPciE",
553
+                        "photo_share_url": "https://pai.ai/gp/gn3TRYS8doVHFbvYgNPciE",
554
+                        "created_at": "2018-06-14T08:51:44",
555
+                        "photo_thumbnail_h": 360,
556
+                        "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz",
557
+                        "thumbup_num": 0,
558
+                        "photo_thumbnail_w": 540,
559
+                        "group_avatar": null,
560
+                        "photo_thumbnail2_h": 720,
561
+                        "nomark": 100,
562
+                        "photo_from": 1,
563
+                        "group_id": "WrWbvT7",
564
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83erxcJiaabkvdFnmb7LTsjwBKlwLGIxCsxx7OwZQYGDkVexcshb0SSDQaF6pcQLqWrbPad9EFqbDM6Q/132"
565
+                    },
566
+                    {
567
+                        "origin": 999,
568
+                        "photo_w": 1920,
569
+                        "longitude": 0,
570
+                        "location": null,
571
+                        "origin_expired_stamps": 1529542169000,
572
+                        "photo_thumbnail2_w": 1080,
573
+                        "thumbup": false,
574
+                        "comment_num": 0,
575
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/FottABOlrXvvKz6l7TwS9HlVN8zw",
576
+                        "group_from": 1,
577
+                        "group_name": "solom",
578
+                        "porder": {},
579
+                        "latitude": 0,
580
+                        "display_payment_btn": false,
581
+                        "group_default_avatar": 0,
582
+                        "user_id": "LzWPe7z",
583
+                        "nickname": "solom",
584
+                        "photo_h": 1280,
585
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/Fsn-wgwwBXxBwSZlhynaO9uxQ-x8",
586
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/Fl16o1E6seH74IVYyhFC1Em1W4wi",
587
+                        "photo_id": "H9gRya2YjFsBSJPojCnceF",
588
+                        "photo_share_url": "https://pai.ai/gp/H9gRya2YjFsBSJPojCnceF",
589
+                        "created_at": "2018-06-14T08:49:29",
590
+                        "photo_thumbnail_h": 360,
591
+                        "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz",
592
+                        "thumbup_num": 0,
593
+                        "photo_thumbnail_w": 540,
594
+                        "group_avatar": null,
595
+                        "photo_thumbnail2_h": 720,
596
+                        "nomark": 100,
597
+                        "photo_from": 1,
598
+                        "group_id": "WrWbvT7",
599
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83erxcJiaabkvdFnmb7LTsjwBKlwLGIxCsxx7OwZQYGDkVexcshb0SSDQaF6pcQLqWrbPad9EFqbDM6Q/132"
600
+                    },
601
+                    {
602
+                        "origin": 999,
603
+                        "photo_w": 1920,
604
+                        "longitude": 0,
605
+                        "location": null,
606
+                        "origin_expired_stamps": 1529542126000,
607
+                        "photo_thumbnail2_w": 1080,
608
+                        "thumbup": false,
609
+                        "comment_num": 0,
610
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/FsSZChEDy6cne8nYOwrUEGkp77h1",
611
+                        "group_from": 1,
612
+                        "group_name": "solom",
613
+                        "porder": {},
614
+                        "latitude": 0,
615
+                        "display_payment_btn": false,
616
+                        "group_default_avatar": 0,
617
+                        "user_id": "LzWPe7z",
618
+                        "nickname": "solom",
619
+                        "photo_h": 1280,
620
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/FjgThdeAu0lLT574WTy3TWF_kjIX",
621
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/Fj4tDNdC4eoADKmjXsyCC0vSv9IP",
622
+                        "photo_id": "pvqickeguMC6YnLAQF7jAg",
623
+                        "photo_share_url": "https://pai.ai/gp/pvqickeguMC6YnLAQF7jAg",
624
+                        "created_at": "2018-06-14T08:48:46",
625
+                        "photo_thumbnail_h": 360,
626
+                        "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz",
627
+                        "thumbup_num": 0,
628
+                        "photo_thumbnail_w": 540,
629
+                        "group_avatar": null,
630
+                        "photo_thumbnail2_h": 720,
631
+                        "nomark": 100,
632
+                        "photo_from": 1,
633
+                        "group_id": "WrWbvT7",
634
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83erxcJiaabkvdFnmb7LTsjwBKlwLGIxCsxx7OwZQYGDkVexcshb0SSDQaF6pcQLqWrbPad9EFqbDM6Q/132"
635
+                    },
636
+                    {
637
+                        "origin": 999,
638
+                        "photo_w": 1920,
639
+                        "longitude": 0,
640
+                        "location": null,
641
+                        "origin_expired_stamps": 1529542117000,
642
+                        "photo_thumbnail2_w": 1080,
643
+                        "thumbup": false,
644
+                        "comment_num": 0,
645
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/FlfefOVDBpuYTj5itjnr9SsfpVG4",
646
+                        "group_from": 1,
647
+                        "group_name": "solom",
648
+                        "porder": {},
649
+                        "latitude": 0,
650
+                        "display_payment_btn": false,
651
+                        "group_default_avatar": 0,
652
+                        "user_id": "LzWPe7z",
653
+                        "nickname": "solom",
654
+                        "photo_h": 1280,
655
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/Ft_n52KgH3ehzOBT_ZMomxSusF_I",
656
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/FqIN2abgIGTlP_BShUdAyfHmTPM5",
657
+                        "photo_id": "WbdCu3wArK6eHEwjcGPgQa",
658
+                        "photo_share_url": "https://pai.ai/gp/WbdCu3wArK6eHEwjcGPgQa",
659
+                        "created_at": "2018-06-14T08:48:37",
660
+                        "photo_thumbnail_h": 360,
661
+                        "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz",
662
+                        "thumbup_num": 0,
663
+                        "photo_thumbnail_w": 540,
664
+                        "group_avatar": null,
665
+                        "photo_thumbnail2_h": 720,
666
+                        "nomark": 100,
667
+                        "photo_from": 1,
668
+                        "group_id": "WrWbvT7",
669
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83erxcJiaabkvdFnmb7LTsjwBKlwLGIxCsxx7OwZQYGDkVexcshb0SSDQaF6pcQLqWrbPad9EFqbDM6Q/132"
670
+                    },
671
+                    {
672
+                        "origin": 999,
673
+                        "photo_w": 1920,
674
+                        "longitude": 0,
675
+                        "location": null,
676
+                        "origin_expired_stamps": 1529542106000,
677
+                        "photo_thumbnail2_w": 1080,
678
+                        "thumbup": false,
679
+                        "comment_num": 0,
680
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/Fg8aTnEMko3f55hZMTLCeyFB1IBg",
681
+                        "group_from": 1,
682
+                        "group_name": "solom",
683
+                        "porder": {},
684
+                        "latitude": 0,
685
+                        "display_payment_btn": false,
686
+                        "group_default_avatar": 0,
687
+                        "user_id": "LzWPe7z",
688
+                        "nickname": "solom",
689
+                        "photo_h": 1280,
690
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/Fh5mHSYeYynspmMtXIQAprWy0ODn",
691
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/FmPAYkJ-HsQXRdAlkpzC9RY4VRm_",
692
+                        "photo_id": "nHi5bKKbRuLWRBxkQcC35M",
693
+                        "photo_share_url": "https://pai.ai/gp/nHi5bKKbRuLWRBxkQcC35M",
694
+                        "created_at": "2018-06-14T08:48:26",
695
+                        "photo_thumbnail_h": 360,
696
+                        "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz",
697
+                        "thumbup_num": 0,
698
+                        "photo_thumbnail_w": 540,
699
+                        "group_avatar": null,
700
+                        "photo_thumbnail2_h": 720,
701
+                        "nomark": 100,
702
+                        "photo_from": 1,
703
+                        "group_id": "WrWbvT7",
704
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83erxcJiaabkvdFnmb7LTsjwBKlwLGIxCsxx7OwZQYGDkVexcshb0SSDQaF6pcQLqWrbPad9EFqbDM6Q/132"
705
+                    },
706
+                    {
707
+                        "origin": 999,
708
+                        "photo_w": 1920,
709
+                        "longitude": 0,
710
+                        "location": null,
711
+                        "origin_expired_stamps": 1529541824000,
712
+                        "photo_thumbnail2_w": 1080,
713
+                        "thumbup": false,
714
+                        "comment_num": 0,
715
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/FiM2QV0kcQbwqKckpD9JkJ1Scddc",
716
+                        "group_from": 1,
717
+                        "group_name": "solom",
718
+                        "porder": {},
719
+                        "latitude": 0,
720
+                        "display_payment_btn": false,
721
+                        "group_default_avatar": 0,
722
+                        "user_id": "LzWPe7z",
723
+                        "nickname": "solom",
724
+                        "photo_h": 1280,
725
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/FgS1spVS61DZdfPzWxTQO4Vs1Z2N",
726
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/FvfJdhfljWkWfgq7TV2eHUTtVkp-",
727
+                        "photo_id": "cVUQwhndevCva4LXdMUVpd",
728
+                        "photo_share_url": "https://pai.ai/gp/cVUQwhndevCva4LXdMUVpd",
729
+                        "created_at": "2018-06-14T08:43:44",
730
+                        "photo_thumbnail_h": 360,
731
+                        "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz",
732
+                        "thumbup_num": 0,
733
+                        "photo_thumbnail_w": 540,
734
+                        "group_avatar": null,
735
+                        "photo_thumbnail2_h": 720,
736
+                        "nomark": 100,
737
+                        "photo_from": 1,
738
+                        "group_id": "WrWbvT7",
739
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83erxcJiaabkvdFnmb7LTsjwBKlwLGIxCsxx7OwZQYGDkVexcshb0SSDQaF6pcQLqWrbPad9EFqbDM6Q/132"
740
+                    },
741
+                    {
742
+                        "origin": 999,
743
+                        "photo_w": 1920,
744
+                        "longitude": 0,
745
+                        "location": null,
746
+                        "origin_expired_stamps": 1529541404000,
747
+                        "photo_thumbnail2_w": 1080,
748
+                        "thumbup": false,
749
+                        "comment_num": 0,
750
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/FgajMVwPstn6iO8hQjEdt79uTsS3",
751
+                        "group_from": 1,
752
+                        "group_name": "solom",
753
+                        "porder": {},
754
+                        "latitude": 0,
755
+                        "display_payment_btn": false,
756
+                        "group_default_avatar": 0,
757
+                        "user_id": "LzWPe7z",
758
+                        "nickname": "solom",
759
+                        "photo_h": 1280,
760
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/Fufz7LyavCFHdymqZb8SnJMWKZ67",
761
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/FsEV99H3ZVVPUsnYYMiqHpejfTcC",
762
+                        "photo_id": "Kx4DVTpuxqynZQypFKFBhW",
763
+                        "photo_share_url": "https://pai.ai/gp/Kx4DVTpuxqynZQypFKFBhW",
764
+                        "created_at": "2018-06-14T08:36:44",
765
+                        "photo_thumbnail_h": 360,
766
+                        "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz",
767
+                        "thumbup_num": 0,
768
+                        "photo_thumbnail_w": 540,
769
+                        "group_avatar": null,
770
+                        "photo_thumbnail2_h": 720,
771
+                        "nomark": 100,
772
+                        "photo_from": 1,
773
+                        "group_id": "WrWbvT7",
774
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83erxcJiaabkvdFnmb7LTsjwBKlwLGIxCsxx7OwZQYGDkVexcshb0SSDQaF6pcQLqWrbPad9EFqbDM6Q/132"
775
+                    },
776
+                    {
777
+                        "origin": 999,
778
+                        "photo_w": 1920,
779
+                        "longitude": 0,
780
+                        "location": null,
781
+                        "origin_expired_stamps": 1529541154000,
782
+                        "photo_thumbnail2_w": 1080,
783
+                        "thumbup": false,
784
+                        "comment_num": 0,
785
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/FnWJKneOOXCZ4QpTuzsL2f3aY-R5",
786
+                        "group_from": 1,
787
+                        "group_name": "solom",
788
+                        "porder": {},
789
+                        "latitude": 0,
790
+                        "display_payment_btn": false,
791
+                        "group_default_avatar": 0,
792
+                        "user_id": "LzWPe7z",
793
+                        "nickname": "solom",
794
+                        "photo_h": 1280,
795
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/FlSlMaB9WcGi_jq6qOyfokXpjdx7",
796
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/FuT97fRCofT0M48mXr1OM5xV8Sag",
797
+                        "photo_id": "itTfzb6hZWd8Up9xkdmCk2",
798
+                        "photo_share_url": "https://pai.ai/gp/itTfzb6hZWd8Up9xkdmCk2",
799
+                        "created_at": "2018-06-14T08:32:34",
800
+                        "photo_thumbnail_h": 360,
801
+                        "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz",
802
+                        "thumbup_num": 0,
803
+                        "photo_thumbnail_w": 540,
804
+                        "group_avatar": null,
805
+                        "photo_thumbnail2_h": 720,
806
+                        "nomark": 100,
807
+                        "photo_from": 1,
808
+                        "group_id": "WrWbvT7",
809
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83erxcJiaabkvdFnmb7LTsjwBKlwLGIxCsxx7OwZQYGDkVexcshb0SSDQaF6pcQLqWrbPad9EFqbDM6Q/132"
810
+                    },
811
+                    {
812
+                        "origin": 999,
813
+                        "photo_w": 1920,
814
+                        "longitude": 0,
815
+                        "location": null,
816
+                        "origin_expired_stamps": 1529541118000,
817
+                        "photo_thumbnail2_w": 1080,
818
+                        "thumbup": false,
819
+                        "comment_num": 0,
820
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/FhfQyF1TywtriSCNxF-_dAYhPz-W",
821
+                        "group_from": 1,
822
+                        "group_name": "solom",
823
+                        "porder": {},
824
+                        "latitude": 0,
825
+                        "display_payment_btn": false,
826
+                        "group_default_avatar": 0,
827
+                        "user_id": "LzWPe7z",
828
+                        "nickname": "solom",
829
+                        "photo_h": 1280,
830
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/FrIkVp2aa8-mIxJsKmGme5iU_J1v",
831
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/FpjEqxgAWtJcITMR9xPpxd0WCOpf",
832
+                        "photo_id": "2qeTqWuHrNHwLUYFvx8XEX",
833
+                        "photo_share_url": "https://pai.ai/gp/2qeTqWuHrNHwLUYFvx8XEX",
834
+                        "created_at": "2018-06-14T08:31:58",
835
+                        "photo_thumbnail_h": 360,
836
+                        "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz",
837
+                        "thumbup_num": 0,
838
+                        "photo_thumbnail_w": 540,
839
+                        "group_avatar": null,
840
+                        "photo_thumbnail2_h": 720,
841
+                        "nomark": 100,
842
+                        "photo_from": 1,
843
+                        "group_id": "WrWbvT7",
844
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83erxcJiaabkvdFnmb7LTsjwBKlwLGIxCsxx7OwZQYGDkVexcshb0SSDQaF6pcQLqWrbPad9EFqbDM6Q/132"
845
+                    },
846
+                    {
847
+                        "origin": 999,
848
+                        "photo_w": 1920,
849
+                        "longitude": 0,
850
+                        "location": null,
851
+                        "origin_expired_stamps": 1529541095000,
852
+                        "photo_thumbnail2_w": 1080,
853
+                        "thumbup": false,
854
+                        "comment_num": 0,
855
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/FqiGM9ZY9RR0wApMtVXqMNhpHYuW",
856
+                        "group_from": 1,
857
+                        "group_name": "solom",
858
+                        "porder": {},
859
+                        "latitude": 0,
860
+                        "display_payment_btn": false,
861
+                        "group_default_avatar": 0,
862
+                        "user_id": "LzWPe7z",
863
+                        "nickname": "solom",
864
+                        "photo_h": 1280,
865
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/FliQ3QCt_69YViub4mGCahmjDM-_",
866
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/FvXB-V4UAfVqoTds827EzoNKK-yl",
867
+                        "photo_id": "JtpKcN4LLE84CsVE2tFJQ2",
868
+                        "photo_share_url": "https://pai.ai/gp/JtpKcN4LLE84CsVE2tFJQ2",
869
+                        "created_at": "2018-06-14T08:31:35",
870
+                        "photo_thumbnail_h": 360,
871
+                        "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz",
872
+                        "thumbup_num": 0,
873
+                        "photo_thumbnail_w": 540,
874
+                        "group_avatar": null,
875
+                        "photo_thumbnail2_h": 720,
876
+                        "nomark": 100,
877
+                        "photo_from": 1,
878
+                        "group_id": "WrWbvT7",
879
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83erxcJiaabkvdFnmb7LTsjwBKlwLGIxCsxx7OwZQYGDkVexcshb0SSDQaF6pcQLqWrbPad9EFqbDM6Q/132"
880
+                    },
881
+                    {
882
+                        "origin": 999,
883
+                        "photo_w": 1920,
884
+                        "longitude": 0,
885
+                        "location": null,
886
+                        "origin_expired_stamps": 1529541063000,
887
+                        "photo_thumbnail2_w": 1080,
888
+                        "thumbup": false,
889
+                        "comment_num": 0,
890
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/FqV3ngD73YRBna0UbNerv9Y5HLHC",
891
+                        "group_from": 1,
892
+                        "group_name": "solom",
893
+                        "porder": {},
894
+                        "latitude": 0,
895
+                        "display_payment_btn": false,
896
+                        "group_default_avatar": 0,
897
+                        "user_id": "LzWPe7z",
898
+                        "nickname": "solom",
899
+                        "photo_h": 1280,
900
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/FkOtpDM2UoqYRX-_jZRIb2IclXwk",
901
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/FtWErvFBRn5ivcecXNTnT2UBtLRv",
902
+                        "photo_id": "9GFXKSy3YNc2rY5ZAF8Thc",
903
+                        "photo_share_url": "https://pai.ai/gp/9GFXKSy3YNc2rY5ZAF8Thc",
904
+                        "created_at": "2018-06-14T08:31:03",
905
+                        "photo_thumbnail_h": 360,
906
+                        "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz",
907
+                        "thumbup_num": 0,
908
+                        "photo_thumbnail_w": 540,
909
+                        "group_avatar": null,
910
+                        "photo_thumbnail2_h": 720,
911
+                        "nomark": 100,
912
+                        "photo_from": 1,
913
+                        "group_id": "WrWbvT7",
914
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83erxcJiaabkvdFnmb7LTsjwBKlwLGIxCsxx7OwZQYGDkVexcshb0SSDQaF6pcQLqWrbPad9EFqbDM6Q/132"
915
+                    },
916
+                    {
917
+                        "origin": 999,
918
+                        "photo_w": 1920,
919
+                        "longitude": 0,
920
+                        "location": null,
921
+                        "origin_expired_stamps": 1529540593000,
922
+                        "photo_thumbnail2_w": 1080,
923
+                        "thumbup": false,
924
+                        "comment_num": 0,
925
+                        "photo_thumbnail_url": "http://orf3ahvt6.bkt.clouddn.com/FrhawRT3wVCiKWl2OqhoUsaKeAYG",
926
+                        "group_from": 1,
927
+                        "group_name": "solom",
928
+                        "porder": {},
929
+                        "latitude": 0,
930
+                        "display_payment_btn": false,
931
+                        "group_default_avatar": 0,
932
+                        "user_id": "LzWPe7z",
933
+                        "nickname": "solom",
934
+                        "photo_h": 1280,
935
+                        "photo_url": "http://orf3lnlmb.bkt.clouddn.com/Fsox2chS8bu5VmoUSgb-n1Br-0no",
936
+                        "photo_thumbnail2_url": "http://orf3muf5n.bkt.clouddn.com/FlxLpjSCteQVtSBuRt_406Cn_0Tz",
937
+                        "photo_id": "MuZ3vUUskdnC9P454xuaGf",
938
+                        "photo_share_url": "https://pai.ai/gp/MuZ3vUUskdnC9P454xuaGf",
939
+                        "created_at": "2018-06-14T08:23:13",
940
+                        "photo_thumbnail_h": 360,
941
+                        "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz",
942
+                        "thumbup_num": 0,
943
+                        "photo_thumbnail_w": 540,
944
+                        "group_avatar": null,
945
+                        "photo_thumbnail2_h": 720,
946
+                        "nomark": 100,
947
+                        "photo_from": 1,
948
+                        "group_id": "WrWbvT7",
949
+                        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83erxcJiaabkvdFnmb7LTsjwBKlwLGIxCsxx7OwZQYGDkVexcshb0SSDQaF6pcQLqWrbPad9EFqbDM6Q/132"
950
+                    }
951
+                ],
952
+                "session_id": "LzWPe7z6v46522px527gb9fcaqb8abiz"
953
+            }
954
+        ]
955
+        var photoWidth = width * 49 / 100;
956
+        var photoHeight = 0;
957
+        var photoIdx = 0;
958
+        var leftHeight = 0;
959
+        var rightHeight = 0;
960
+        var leftImgs = '';
961
+        var rightImgs = '';
962
+        var swipeItems = [];
963
+
964
+        for (var i = 0; i < session_photos.length; i++) {
965
+            var photos = session_photos[i].photos;
966
+            for (var j = 0; j < photos.length; j++) {
967
+                photoHeight = photos[j].photo_thumbnail_h / photos[j].photo_thumbnail_w * photoWidth;
968
+                var header = (
969
+                    '<div class="photo-top">' +
970
+                        '<img class="group-avatar float-left" src="../../static/img/{0}.png" />' +
971
+                        '<text class="group-name float-left">{1}</text>' +
972
+                        '<text class="section-text float-right">{2}</text>' +
973
+                    '</div>'
974
+                ).format(GROUP_AVATAR_LIST[photos[j].group_default_avatar], photos[j].group_name, fromNow(photos[j].created_at));
975
+                var imgctx = '<img src="{0}" data-idx="{1}" style="width:{2}px;height:{3}px">'.format(photos[j].photo_thumbnail_url, photoIdx, photoWidth, photoHeight);
976
+                var footer = (
977
+                    '<div class="photo-bottom">' +
978
+                        '<img class="section-icon float-left" src="../../static/img/thumbup.png" />' +
979
+                        '<text class="thump-comment-num float-left">{0}</text>' +
980
+                        '<img class="section-icon float-left" src="../../static/img/comment.png" />' +
981
+                        '<text class="thump-comment-num float-left">{1}</text>' +
982
+                    '</div>'
983
+                ).format(photos[j].thumbup_num, photos[j].comment_num);
984
+                if (leftHeight > rightHeight) {
985
+                    rightHeight += photoHeight + 72;
986
+                    rightImgs += '<div class="imgctx">{0}{1}{2}</div>'.format(header, imgctx, footer);
987
+                } else {
988
+                    leftHeight += photoHeight + 72;
989
+                    leftImgs += '<div class="imgctx">{0}{1}{2}</div>'.format(header, imgctx, footer);
990
+                }
991
+                swipeItems.push({
992
+                    src: photos[j].photo_url,
993
+                    w: photos[j].photo_w,
994
+                    h: photos[j].photo_h,
995
+                })
996
+                photoIdx += 1;
997
+            }
998
+        }
999
+
1000
+        $('#left').append(leftImgs);
1001
+        $('#right').append(rightImgs);
1002
+
1003
+        var pswpElement = document.querySelectorAll('.pswp')[0];
1004
+        // define options (if needed)
1005
+        var options = {
1006
+            // optionName: 'option value'
1007
+            // for example:
1008
+            loop: true,
1009
+            index: 1, // start at first slide
1010
+            // Tap on sliding area should close gallery'
1011
+            tapToClose: true,
1012
+        };
1013
+        // Initializes and opens PhotoSwipe
1014
+        $('#photos img').click(function () {
1015
+            options['index'] = parseInt($(this).attr('data-idx'));
1016
+            var gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, swipeItems, options);
1017
+            gallery.init();
1018
+
1019
+            $('#mask-thump').show();
1020
+
1021
+            // After slides change
1022
+            // (after content changed)
1023
+            gallery.listen('afterChange', function() {
1024
+                console.log(gallery.getCurrentIndex())
1025
+            });
1026
+
1027
+            // Gallery starts closing
1028
+            gallery.listen('close', function() {
1029
+                $('#mask-thump').hide();
1030
+            });
1031
+        })
1032
+    })
1033
+</script>
1034
+<script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
1035
+<script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
1036
+<script>
1037
+    V.initWxData({
1038
+        imgUrl: "http://pai.ai/static/pai2/img/paiai_96_96.png",
1039
+        link: 'http://pai.ai/w/o?r=http%3A%2F%2Fpai.ai%2Fp%2Floginqr',
1040
+        desc: "授权登录",
1041
+        title: "授权登录",
1042
+        timeLine: ""
1043
+    }, true);
1044
+    V.hideOptionMenu();
1045
+</script>
1046
+</body>
1047
+</html>

+ 1 - 0
page/urls.py

@@ -33,4 +33,5 @@ urlpatterns += [
33 33
 # 小程序相关
34 34
 urlpatterns += [
35 35
     url(r'^mini$', mini_views.mini_preview, name='mini_preview'),  #
36
+    url(r'^mini2$', mini_views.mini_preview2, name='mini_preview2'),  #
36 37
 ]

+ 1 - 1
pai2/urls.py

@@ -86,7 +86,7 @@ urlpatterns += [
86 86
     url(r'^uniapi/', include('django_uniapi.urls', namespace='uniapi')),
87 87
     url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
88 88
 
89
-    url(r'^p/', include('page.urls', namespace='shortpage')),
89
+    # url(r'^p/', include('page.urls', namespace='shortpage')),
90 90
     url(r'^page/', include('page.urls', namespace='page')),
91 91
 
92 92
     url(r'^w/', include('django_we.urls', namespace='shortwechat')),

+ 2 - 1
requirements_dj.txt

@@ -11,11 +11,12 @@ django-mobi2==1.0.2
11 11
 django-models-ext==1.1.6
12 12
 django-multidomain==1.1.4
13 13
 django-paginator2==1.0.4
14
+django-query==1.0.3
14 15
 django-redis-connector==1.0.1
15 16
 django-response==1.1.1
16 17
 django-rlog==1.0.7
17 18
 django-shortuuidfield==0.1.3
18 19
 django-six==1.0.4
19
-django-uniapi==1.0.4
20
+django-uniapi==1.0.5
20 21
 django-we==1.4.2
21 22
 djangorestframework==3.7.7

+ 2 - 2
requirements_pywe.txt

@@ -1,8 +1,8 @@
1 1
 pywe-jssdk==1.1.0
2 2
 pywe-membercard==1.0.0
3
-pywe-miniapp==1.0.2
3
+pywe-miniapp==1.1.0
4 4
 pywe-oauth==1.0.6
5
-pywe-pay==1.0.11
5
+pywe-pay==1.0.12
6 6
 pywe-pay-notify==1.0.4
7 7
 pywe-response==1.0.1
8 8
 pywe-sign==1.0.8

+ 77 - 0
utils/home_photo_utils.py

@@ -0,0 +1,77 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from __future__ import division
4
+
5
+import itertools
6
+
7
+from django.conf import settings
8
+from django.db import connection
9
+from django_query import get_query_value
10
+from paginator import pagination
11
+
12
+from group.models import GroupPhotoInfo
13
+from utils.qiniucdn import qiniu_file_url
14
+from utils.redis.rgroup import get_group_photo_thumbup_flag
15
+from utils.redis.rorder import get_lensman_order_record
16
+from utils.sql.raw import PAI2_HOME_API, PAI2_HOME_WX_API
17
+from utils.time_utils import origin_expired_stamps
18
+from utils.url_utils import share_url
19
+
20
+
21
+def get_home_photos(request):
22
+    user_id = get_query_value(request, 'user_id')
23
+    page = get_query_value(request, 'page', default=1, val_cast_func=int)
24
+    num = get_query_value(request, 'num', default=settings.PAI2_HOME_PER_PAGE, val_cast_func=int)
25
+
26
+    # 执行原生 SQL 语句,获取首页照片列表
27
+    cursor = connection.cursor()
28
+    cursor.execute((PAI2_HOME_WX_API if request.weixin else PAI2_HOME_API).format(
29
+        user_id=user_id,
30
+        offset=0,
31
+        rows=settings.PAI2_HOME_MAX_ROWS,
32
+    ))
33
+    rows = cursor.fetchall()
34
+
35
+    # 首页照片分页
36
+    rows, left = pagination(rows, page, num)
37
+
38
+    # 首页照片信息
39
+    rows = [{
40
+        'group_id': row[0],
41
+        'group_name': row[1],
42
+        'group_default_avatar': row[2],
43
+        'group_avatar': row[3],
44
+        'group_from': row[4],
45
+        'photo_id': row[5],
46
+        'photo_url': qiniu_file_url(row[6], bucket='watermark' if row[7] else 'photo'),
47
+        'photo_w': row[8],
48
+        'photo_h': row[9],
49
+        'photo_thumbnail_url': qiniu_file_url(row[10], bucket='thumbnail'),
50
+        'photo_thumbnail_w': row[11],
51
+        'photo_thumbnail_h': row[12],
52
+        'photo_thumbnail2_url': qiniu_file_url(row[13], bucket='thumbnail2'),
53
+        'photo_thumbnail2_w': row[14],
54
+        'photo_thumbnail2_h': row[15],
55
+        'photo_share_url': share_url(row[5]),  # Warning: Index of This Line is 5
56
+        'user_id': row[16],
57
+        'nickname': row[17],
58
+        'avatar': row[18],
59
+        'comment_num': row[19],
60
+        'thumbup_num': row[20],
61
+        'photo_from': row[21],
62
+        'session_id': row[22],
63
+        'nomark': row[23],
64
+        'origin': row[24],
65
+        'created_at': row[25],
66
+        'origin_expired_stamps': origin_expired_stamps(row[25], row[16]),
67
+        'thumbup': get_group_photo_thumbup_flag(row[5], user_id),
68
+        'porder': get_lensman_order_record(row[5], user_id) if row[21] == GroupPhotoInfo.SESSION_GROUP else {},
69
+        'display_payment_btn': row[21] == GroupPhotoInfo.SESSION_GROUP and row[27] not in [GroupPhotoInfo.OUTTAKE],
70
+        'longitude': row[28],
71
+        'latitude': row[29],
72
+        'location': row[30],
73
+    } for row in rows]
74
+
75
+    session_photos = map(lambda x: {'session_id': x[0], 'photos': list(x[1])}, itertools.groupby(rows, lambda x: x.get('session_id', '')))
76
+
77
+    return rows, session_photos, left

paiai_ios - Gogs: Go Git Service

Brak opisu

GroupDetailModel.swift 2.8KB

    // // GroupDetailModel.swift // PaiAi // // Created by zhengjianfei on 16/4/5. // Copyright © 2016年 FFIB. All rights reserved. // import Foundation import ObjectMapper //public struct GroupDetailModel { // // public var users: GroupUserInfoModel? // public var group_id: String = "" // var group: GroupItem? // // init() {} //} // //extension GroupDetailModel: Mappable { // mutating public func mapping(map: Map) { // // } // // // public init(map: Map) { // group_id <- map["group_id"] // guard let group = map.JSON["group"] as? [String: AnyObject], let users = map.JSON["users"] as? [String: AnyObject] else { // return // } //// self.group = GroupModel(map: Map(mappingType: .fromJSON, JSON: group)) // self.users = GroupUserInfoModel(map: Map(mappingType: .fromJSON, JSON: users)) // } //} // //extension GroupDetailModel: SingleParsable { // // public static func parse(data: [String: AnyObject]) -> GroupDetailModel { // guard let status = data["status"] as? Int, // let res = data["data"] as? [String: AnyObject], // status == 200 else { // return GroupDetailModel() // } // return GroupDetailModel(map: Map(mappingType: .fromJSON, JSON: res)) // } //} // //public struct GroupUserInfoModel { // public var passed_count: Int = 0 // public var passed = [UserModel]() // public var applying_count: Int = 0 // public var applying = [UserModel]() // // init() {} //} // //extension GroupUserInfoModel: SingleParsable { // // public static func parse(data: [String: AnyObject]) -> GroupUserInfoModel { // return GroupUserInfoModel(map:Map(mappingType: MappingType.fromJSON, JSON: data)) // } //} // //extension GroupUserInfoModel: Mappable { // mutating public func mapping(map: Map) { // // } // // // public init(map: Map) { // passed_count <- map["passed_count"] // applying_count <- map["applying_count"] // guard let passes = map.JSON["passed"] as? [[String: AnyObject]] else { // return // } // passed = passes.compactMap { UserModel.init(map: Map.init(mappingType: .fromJSON, JSON: $0))} // } // //} // ////public struct UserModel { //// //// public var user_id: String = "" //// public var avatar: String = "" //// public var nickname: String = "" //// public var admin: Bool = false //// ////} //// ////extension UserModel: Mappable { //// ////} //// ////struct GroupDetailNetworkQequest: NetworkRequest { //// //// typealias NetworkResponse = GroupDetailModel //// //// var path: Interfaces { get { return .groupDetail } set { } } //// var parameter: [String: AnyObject]? //// //// init(param: [String: AnyObject]?, path: Interfaces = .groupDetail) { //// self.parameter = param //// self.path = path //// } //// ////}