Compare commits
1713 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7f4027fd61 | |||
| 44ba39352d | |||
| ea7917245e | |||
| 64aa50fd09 | |||
| 1a1169fe11 | |||
| 9d3b44175c | |||
| cf68c97f8f | |||
| 0d6a2e9ead | |||
| e01ac5a20f | |||
| e3f8aca9e2 | |||
| e6a2722321 | |||
| 07cf724038 | |||
| 19e3a6994b | |||
| 5e1e0cd4d2 | |||
| 19682cfcef | |||
| d554a0233d | |||
| 3c5fc44632 | |||
| 7dd6612c26 | |||
| ad16229b21 | |||
| b8e256fdcb | |||
| 52536af755 | |||
| 46cc957b91 | |||
| f3acb1b354 | |||
| 2a3b42c434 | |||
| 66c96b85fd | |||
| fe7c2f57f9 | |||
| 1583c81360 | |||
| f972ab2b2b | |||
| 67d57b9bcb | |||
| 05b273c4a3 | |||
| 4efcce905c | |||
| 4e0ab69a5d | |||
| 704f8fd6f5 | |||
| 836e02fd46 | |||
| c64f7db0c1 | |||
| abc1e47cfa | |||
| 7948744e69 | |||
| 9ed04e5cbd | |||
| a7937d9b73 | |||
| d6d06df38c | |||
| 2bb53b90f0 | |||
| e3bb2d6dde | |||
| d5e19798d2 | |||
| 4091650b06 | |||
| eff7244cdd | |||
| 30b3321bcc | |||
| b75e0f2232 | |||
| af70a7e94d | |||
| f160297b22 | |||
| 99b743c34d | |||
| a11c841985 | |||
| 8de775f9e8 | |||
| afb40c9d5b | |||
| 1c2f97666b | |||
| 313d8fd7bf | |||
| 5cf674d585 | |||
| a8b13eb170 | |||
| ec8f0d7088 | |||
| 4862bb72d4 | |||
| 0f004e5c6f | |||
| 2f7298daa2 | |||
| b4ef47ae49 | |||
| 5929fb9694 | |||
| 2d93a54596 | |||
| 9a4d620c5a | |||
| 677d22900a | |||
| 154972341a | |||
| 5ac2b693bc | |||
| 6b54922c88 | |||
| 4d1e6d3a0f | |||
| 1445572abc | |||
| f70065109b | |||
| 01caa45b39 | |||
| 772923ffce | |||
| ce0acff18b | |||
| d0847adfe5 | |||
| f680e2da0e | |||
| 01041445e5 | |||
| 0a46d41d57 | |||
| 2227925c92 | |||
| a9e4159038 | |||
| ca106994f4 | |||
| e36e5b2560 | |||
| 77224176f9 | |||
| 6fc3e8e87b | |||
| 8add10dfa9 | |||
| 320c030396 | |||
| 93ec3288eb | |||
| 3b9e0467d1 | |||
| c071b912aa | |||
| e11c06271b | |||
| 026bfc9274 | |||
| 903ff760b6 | |||
| 34131c0526 | |||
| 068e016701 | |||
| 6934c38ec5 | |||
| 45a7133ac7 | |||
| ea000490b8 | |||
| 4f41117a9e | |||
| 45cd64669a | |||
| 292c2f01ce | |||
| 32d41d6e78 | |||
| 4fe61d370e | |||
| a49bb4cbad | |||
| 18623d1c8d | |||
| 42fff71177 | |||
| f760da0097 | |||
| 437e00974d | |||
| ba8e138381 | |||
| 9bc6bd6f81 | |||
| 19bbce0e3c | |||
| ecbbcd43b7 | |||
| 12f13b564c | |||
| 514eabb3c2 | |||
| a6a81c376d | |||
| d8d9119598 | |||
| 5bb77c22ee | |||
| d8cfe1b8f4 | |||
| c200848180 | |||
| 7e18c320f7 | |||
| 84b572c285 | |||
| 561f987cf5 | |||
| a264dc1ecb | |||
| 0ac3b7180a | |||
| 50c44599c2 | |||
| 9cfd8c6f3d | |||
| 81d56f9650 | |||
| 7d4cb3452c | |||
| 46c98d5af1 | |||
| 12dd080bf0 | |||
| 22cefd9289 | |||
| a929adf738 | |||
| 610828fe78 | |||
| d7755d0ea8 | |||
| 97908cee90 | |||
| 8bc57b8300 | |||
| d2b6b73e7c | |||
| 3656a641ce | |||
| a2934fb01b | |||
| 709fe5a5f3 | |||
| d8a5d1eb36 | |||
| e7aa9142b5 | |||
| 495ef25dce | |||
| 7ae54dd2fa | |||
| f500447683 | |||
| 9e4e8cae04 | |||
| 097a00e980 | |||
| 86f52bfe38 | |||
| 06b4891a4b | |||
| 443a331e32 | |||
| 7dbbe30807 | |||
| 300a4910d0 | |||
| 4a7821ed09 | |||
| 276fd5e592 | |||
| e6a2d773bf | |||
| 374e8239ed | |||
| 12d26acd8b | |||
| f07bee02cc | |||
| 56656a66b2 | |||
| f97a3bef37 | |||
| be77d9c53e | |||
| 3f8997bc7e | |||
| 817cf2a999 | |||
| 1512ffdf99 | |||
| 968393c350 | |||
| adf795774e | |||
| 7c2fb94c0a | |||
| 7fd8f794bd | |||
| 7b5296e905 | |||
| d223cfbca2 | |||
| 2e907c53fe | |||
| 10a5346eb1 | |||
| 22c1ef83a4 | |||
| d1a91d34c2 | |||
| 9a18e31978 | |||
| 11dafef6ea | |||
| 123c89d495 | |||
| e34e9115a7 | |||
| a87d22afc1 | |||
| da5ab5cf1c | |||
| d6c722b7d7 | |||
| d18e6bf2af | |||
| ab568222e0 | |||
| fd76e114fc | |||
| 670489a89b | |||
| 521659c64a | |||
| f425ae68ef | |||
| cd4dae7f7f | |||
| 7a524e1e32 | |||
| 40b921ca16 | |||
| cbf8c6cd9b | |||
| f7af5c59ad | |||
| b0cf350bbd | |||
| 19c64016fb | |||
| be19ba28c9 | |||
| fd90bd5bf0 | |||
| 0cea129541 | |||
| dc9f0c21cd | |||
| 8e8f0342d7 | |||
| 5be647ea08 | |||
| e33314c92e | |||
| 62b6efb3d2 | |||
| f5e7fb21a7 | |||
| 0545eadf8b | |||
| 428bfe54f2 | |||
| 1f4e37f6f8 | |||
| be5d18a123 | |||
| 1073b24692 | |||
| ebeb748cc4 | |||
| c76ad35344 | |||
| 34286f37d9 | |||
| e14c8d984c | |||
| f534b7be65 | |||
| e55ea26767 | |||
| 7d43757135 | |||
| 870a19fb1b | |||
| 85de7fce07 | |||
| 8426025969 | |||
| 5377248d3c | |||
| 582bcdb27f | |||
| e16e0efff9 | |||
| eb5cb58925 | |||
| c47e150681 | |||
| 08d053c7d0 | |||
| 8aac432673 | |||
| d048525c79 | |||
| 8bba2e75f6 | |||
| b7267260a2 | |||
| 2e91f779b4 | |||
| 61450335f4 | |||
| f28211194c | |||
| 59e5b996c6 | |||
| c88dbf0a70 | |||
| 5e947de24b | |||
| 994a7a6e8f | |||
| e8d4b80811 | |||
| 8df928e5bb | |||
| f4a8ec7380 | |||
| de7d497f5b | |||
| 02d4a671b1 | |||
| 23e8ec97bb | |||
| 7971a8d861 | |||
| d3f03c7c65 | |||
| 4ca0013968 | |||
| ce150e2e78 | |||
| 2f697e40aa | |||
| 58b0c56462 | |||
| b14a66cd84 | |||
| 2ebb7eb262 | |||
| 8f17416510 | |||
| 33627a9c53 | |||
| 761848b9d9 | |||
| 4eda14c853 | |||
| 678b7cf37c | |||
| 9c45beba85 | |||
| 1831089200 | |||
| dc3ae76d0c | |||
| b7310c0916 | |||
| ccc63aa530 | |||
| c8371c524a | |||
| 09493138f9 | |||
| a7f3af47a7 | |||
| aac9677e1f | |||
| fdc1332319 | |||
| 6a52a680bc | |||
| f84272bb12 | |||
| 6f5d1d3196 | |||
| a94cf41cdf | |||
| 2c5cf829ee | |||
| 7d503d6fc4 | |||
| a80929632f | |||
| d5fdf943f6 | |||
| fe26174582 | |||
| 15be428cc9 | |||
| 637c329b7d | |||
| 7e3d329a9a | |||
| e91b2be754 | |||
| 3092dee7f1 | |||
| 4ecd61506e | |||
| 5448d0cd4e | |||
| acec22291f | |||
| e777e81e44 | |||
| 2eb338c42e | |||
| 9292d4635d | |||
| 59b22aac80 | |||
| da3d7dc26b | |||
| e3aed3f45c | |||
| b1a61b9274 | |||
| 9c4c4b6ac6 | |||
| 544f9d7f19 | |||
| 72a7c3a0b6 | |||
| 1810b6a478 | |||
| fabe410daa | |||
| 3c454b0818 | |||
| baf47fbe3c | |||
| 88d27cccf9 | |||
| 71acb64283 | |||
| b989c791cd | |||
| 09ea12a452 | |||
| 87511ece07 | |||
| 984875b0fe | |||
| f6f17c4e21 | |||
| 5c341c997d | |||
| 1544e239bc | |||
| 961b57090d | |||
| 9afc059182 | |||
| 140a2ccef3 | |||
| 4172c31bbb | |||
| d9b99d5606 | |||
| 3785bc6d4b | |||
| 182e44014c | |||
| 684fa4e6fe | |||
| 6c4473c13d | |||
| b5a7c2fd19 | |||
| 37b7f13d78 | |||
| 65dbf502cc | |||
| a51140c766 | |||
| 707b918889 | |||
| 775bb75180 | |||
| 528b0e165e | |||
| 4c23e18b20 | |||
| 36f42a33e8 | |||
| 4859f39d32 | |||
| 65c54deb86 | |||
| 1e2ca4c0c3 | |||
| f2c5d12f87 | |||
| 81bff0f50e | |||
| fb488701cf | |||
| 3ffc35343a | |||
| 84d535a763 | |||
| 095349fdf9 | |||
| bf233ef568 | |||
| e0df382080 | |||
| c3fb975ead | |||
| 39a7b373dc | |||
| 9e0d0bfbdf | |||
| 71ae42ae1c | |||
| 0580ab059e | |||
| 73172f2bb1 | |||
| ce2b0c1bf4 | |||
| 0de1c4519f | |||
| de91a9d520 | |||
| e7b401f210 | |||
| e8cf6ee246 | |||
| 7efc7134e3 | |||
| 4ea0f740b1 | |||
| 068b7399c2 | |||
| 29a3f89b41 | |||
| d98db6c872 | |||
| f873b17c84 | |||
| 54b6685b40 | |||
| 3fd4172e2a | |||
| b97e317e3d | |||
| 24f96333ad | |||
| 63489aeb08 | |||
| 79db0134be | |||
| b8d47f9e4d | |||
| 3651e82958 | |||
| d201eb2132 | |||
| 98ccf9a0f3 | |||
| f2ca56e3e4 | |||
| 65436186a6 | |||
| 4d14ffd53c | |||
| 089588d819 | |||
| e5b692963d | |||
| 3dd06352b8 | |||
| ca0eb36153 | |||
| fb58935867 | |||
| a8ff536406 | |||
| 166c04d4a6 | |||
| 52e1380293 | |||
| 4c45bfd64d | |||
| 2d42f8dc38 | |||
| 1f583d1967 | |||
| 113a7d1864 | |||
| 849895052f | |||
| 0dd8779612 | |||
| 62bd5338ac | |||
| 3e1160ae0a | |||
| 1d85744d64 | |||
| 067bb9642f | |||
| 66e2116a7a | |||
| d6b95754e7 | |||
| 22075e5ea4 | |||
| 8b0665bbe0 | |||
| 6cd55a0e21 | |||
| 8aa8bae804 | |||
| 04b9b0a79a | |||
| 6f19305883 | |||
| 47adbfe625 | |||
| c3d64ae769 | |||
| 09f3fe812b | |||
| 77d4bce21b | |||
| 804bef8edd | |||
| 4282e37d74 | |||
| ce66514b08 | |||
| bbf379fb44 | |||
| 66d905f8b9 | |||
| 545f1f2e73 | |||
| 1e0570443f | |||
| a40c58be11 | |||
| 0bf3c31cbc | |||
| 2e3ba09cbc | |||
| 2b409860ce | |||
| 8aadd39e79 | |||
| 964bf7f26b | |||
| d010bd864f | |||
| 0205ee703e | |||
| ab3d76486b | |||
| eb2058633d | |||
| 483134edf9 | |||
| c397ed6efd | |||
| e4712f0f79 | |||
| 97dda9fc2e | |||
| 0cdb594cb2 | |||
| c0d46339ee | |||
| 85bbbd6499 | |||
| da4ceecbd1 | |||
| da9cf1c300 | |||
| 09fde723a1 | |||
| 66b75790db | |||
| 5aa03aeea3 | |||
| 4e8213a4db | |||
| 3812ca8ef0 | |||
| f04612598e | |||
| 9e8ffc83ae | |||
| ec0097397d | |||
| c078c7381a | |||
| f907c6d1a9 | |||
| 4f392cb38d | |||
| 9c8b0a7e57 | |||
| 93ba721d6a | |||
| ba7d2103de | |||
| 2243de4922 | |||
| fa46f794b0 | |||
| 14f4f075c1 | |||
| 86ea9a3586 | |||
| 11c226ce88 | |||
| 25bec471b4 | |||
| c143031c98 | |||
| a4d820107a | |||
| e401352839 | |||
| f95a884227 | |||
| 89aa47f583 | |||
| 1154141c79 | |||
| 0b019660a4 | |||
| 71a48ad040 | |||
| a316b55fbe | |||
| a04518df3a | |||
| e89610c5bc | |||
| 2347125590 | |||
| 3d98a62723 | |||
| 62920f9f14 | |||
| 8aedcbf5d1 | |||
| 8b8cdbbcfb | |||
| 962091996e | |||
| a16b19535a | |||
| ad19050604 | |||
| 62e8b79218 | |||
| cbbbb52c24 | |||
| c653b48e4d | |||
| b0a28b3d6b | |||
| 9ee601a805 | |||
| 31da1299b3 | |||
| 5000396893 | |||
| da6df4e67f | |||
| d2c0f24ccc | |||
| 3d0fab681d | |||
| 505913f426 | |||
| 7f94e5cc89 | |||
| cbead42b24 | |||
| 1e2148c3ea | |||
| 020690af54 | |||
| 5a19da4c0d | |||
| 5c6cb22989 | |||
| a24500c883 | |||
| 0fbe65971e | |||
| 225addec15 | |||
| 53bd59d797 | |||
| 3f865f1fbf | |||
| ea72ce7256 | |||
| 77927e93e1 | |||
| 7a26c158c0 | |||
| 35a3e718ac | |||
| cff48f852e | |||
| 3a634e99d7 | |||
| ca287f8ec8 | |||
| 5a25c48bdb | |||
| 344f7dc190 | |||
| 6fbcc68f92 | |||
| 512e1525f9 | |||
| 759d842801 | |||
| cd342ae48c | |||
| c6a2f8b4ec | |||
| b9aab9d9af | |||
| 21b9b27787 | |||
| f901ce5dbd | |||
| 260bb7d36f | |||
| e69db7d48c | |||
| 8d4762836e | |||
| d7fb62cb69 | |||
| 6e6970ef97 | |||
| f4c2ab9939 | |||
| 04a4eae82f | |||
| f3ae9b45f9 | |||
| 857b64e522 | |||
| 36a2daabdb | |||
| 5ca24bf88d | |||
| 80e6889256 | |||
| 033db943c5 | |||
| dd09a47f75 | |||
| e1dab648db | |||
| 9aace089a9 | |||
| a4cef41ae2 | |||
| a54f57f6af | |||
| 06c0f071e3 | |||
| 44a8767c46 | |||
| b990d3af0f | |||
| cfa22ad792 | |||
| af14d7b7c2 | |||
| c1858fceca | |||
| d03f8268e9 | |||
| b7983daa57 | |||
| 7658b253af | |||
| 8b2010012b | |||
| df59a7eb9a | |||
| 4278f811f5 | |||
| 412798a32e | |||
| ecbc256558 | |||
| e4fea001d4 | |||
| 111408d5b8 | |||
| 09c3e67674 | |||
| 9c65a70991 | |||
| 6bd260f904 | |||
| da45e3a48c | |||
| aa0a9050b6 | |||
| 0c0e4560ac | |||
| 3166695a61 | |||
| 567c77cff7 | |||
| 55ae54cad4 | |||
| 61a7186653 | |||
| c5cee4aa65 | |||
| 8b29965bf4 | |||
| 2f1ebbbec1 | |||
| ddc3b5e390 | |||
| 7374a2cb21 | |||
| 06489b9ce6 | |||
| 915edf165a | |||
| 1201bf7bd2 | |||
| 41dca1f908 | |||
| 711c45e155 | |||
| a6b78b0bde | |||
| ff05d9c314 | |||
| 851c75b370 | |||
| 700a5263f7 | |||
| 7d455b045c | |||
| 4e735c6533 | |||
| 5d7fa060ba | |||
| 20a023b784 | |||
| cdfdf8ba71 | |||
| f8d8e0f63b | |||
| e06d19bf6a | |||
| c2c3eae1e8 | |||
| 9a49d718b8 | |||
| 35994d6ffd | |||
| 94ea827baa | |||
| b6356904bf | |||
| 5a80e5b979 | |||
| 2e7d6e5805 | |||
| f457136e65 | |||
| 8a49fb4916 | |||
| 0363450584 | |||
| 44083f7ccd | |||
| 27fca64e88 | |||
| 6002fd44df | |||
| 3df36e22a9 | |||
| 9210fb2a00 | |||
| 8d54060656 | |||
| 8fcdf5b640 | |||
| 51e3fd272b | |||
| a6b6c4ebb2 | |||
| 5a65bb5de2 | |||
| bea4c7423a | |||
| a1a4bd4c03 | |||
| dd7da03a82 | |||
| 74dd2d10df | |||
| e25a08dbc1 | |||
| 6865016393 | |||
| 4961848b90 | |||
| 0c67382dcc | |||
| 3589efbd37 | |||
| 4aa3951f54 | |||
| fe5d6b1c48 | |||
| 5dba9b000a | |||
| 6ddafabcb5 | |||
| 4e3f039d27 | |||
| d5f7b860ab | |||
| ae8e8e1099 | |||
| ea97e919a6 | |||
| bd923e92bc | |||
| 92d14f62d7 | |||
| 148820a9e2 | |||
| e9e2de3360 | |||
| c95526e955 | |||
| 52219b9a86 | |||
| 6bd6e7d501 | |||
| 94c3b935f2 | |||
| 6f422653a8 | |||
| 62ad6fceab | |||
| 1a4284b215 | |||
| a866842969 | |||
| 5f94eb7cc6 | |||
| f9efcb4cc6 | |||
| 39d5da091f | |||
| 4aa3acc5ba | |||
| 9fadfc4837 | |||
| af09a0b2e9 | |||
| d11f6a1186 | |||
| 97fd9e8d50 | |||
| 828a6a8f29 | |||
| 205e880e2e | |||
| 928b40a31a | |||
| 755159b068 | |||
| 6dc5550e8b | |||
| 857aae6fc5 | |||
| 7ebba3c9d0 | |||
| 310aaa01fe | |||
| d219eff999 | |||
| dceee41c31 | |||
| 2b300d95e2 | |||
| 9bc904cbce | |||
| 6d1e96faee | |||
| 9830c82770 | |||
| 1bd5871a20 | |||
| 8d174859d8 | |||
| 9db0611a84 | |||
| 32b308f41e | |||
| e827bdb450 | |||
| eeb9b205dc | |||
| c427774cfd | |||
| c84ed523c9 | |||
| abcd2d4767 | |||
| f10588e946 | |||
| 0cc4fd3f3a | |||
| eade31060a | |||
| a8927d5b5d | |||
| e900f4d603 | |||
| 9ac612d62a | |||
| 215d40d38f | |||
| 9c1e3935f8 | |||
| 889cfde8b8 | |||
| 69b416f276 | |||
| 798b7b9fca | |||
| 09713afb0e | |||
| 142b660728 | |||
| 793ccc968c | |||
| adea94484a | |||
| 851b4c22ed | |||
| 7d4fb0a10d | |||
| b6f37af195 | |||
| 13fa5f1138 | |||
| f2ebf58d0a | |||
| 3e7b2eee87 | |||
| 8f7f658544 | |||
| fe940dbf2d | |||
| f71c6e9fa8 | |||
| d23f06999b | |||
| ae05fae058 | |||
| b0726b6bef | |||
| 3e7e7555b5 | |||
| 6991fa5847 | |||
| b65a4e3068 | |||
| 4c4250883b | |||
| 95e988aa1c | |||
| f73099c0ef | |||
| 93f7a8e955 | |||
| 49be457e6f | |||
| 6d56878b75 | |||
| a5ee2c060e | |||
| a6fc743d77 | |||
| 5cf46d0de5 | |||
| 679f54151b | |||
| 1acc172360 | |||
| 3d6b4d1b6d | |||
| d58e1e5347 | |||
| 4c9ba9c93f | |||
| 0eb0d1f656 | |||
| 4918a3685d | |||
| e90c5e1b9b | |||
| 636e2d8ff8 | |||
| 26777c650c | |||
| 1e77d682d3 | |||
| 19e6759221 | |||
| 32929f48ad | |||
| f52de34685 | |||
| 6f855faad9 | |||
| 639bce66bd | |||
| edb036e1dc | |||
| 534a86f644 | |||
| a11e41eb48 | |||
| a60ebdf2a7 | |||
| 30880ad1ca | |||
| 764403f107 | |||
| 6abfbfabc5 | |||
| 344dfacc02 | |||
| c9bc965f4a | |||
| 502b47be90 | |||
| 930f85ab3b | |||
| 0859a84b5f | |||
| 66f9303676 | |||
| 280cfbb3cc | |||
| 670e6a7aa2 | |||
| 9cc15c55e6 | |||
| 0d4e88d482 | |||
| e9154ddd5a | |||
| e83b3b156e | |||
| f72c7abe14 | |||
| 132f29f610 | |||
| 5179eb8772 | |||
| 3e62791c7b | |||
| bf7d7fcb0f | |||
| 35ea9a655c | |||
| 029b1eac93 | |||
| 0693ba8c55 | |||
| 166216444a | |||
| 14d380e99e | |||
| 0fb5b0c399 | |||
| 19f55ea06a | |||
| b7a1c797f5 | |||
| ffff07504f | |||
| f46d285785 | |||
| b80ae5d22c | |||
| 343f537167 | |||
| 51db1ae852 | |||
| 26e84ea01e | |||
| 504cb7385a | |||
| a95267c9c7 | |||
| aed4fda7cc | |||
| 9f3ddf0e3e | |||
| a1e2640b5b | |||
| f72c218dc0 | |||
| cbe9ff63bf | |||
| 25a188a4f4 | |||
| 82cb12a9e1 | |||
| 5d578b0b81 | |||
| f4d461f36e | |||
| 0983683942 | |||
| 1361622d17 | |||
| c5cbe28f2a | |||
| 8f8bb5dfab | |||
| 6ce9062075 | |||
| 45470f4a7d | |||
| b1362b9f34 | |||
| 8c7c6eb116 | |||
| 82ab65912e | |||
| ffbd56a580 | |||
| a48e5ecb07 | |||
| 1871b460e5 | |||
| dd05e086f7 | |||
| f0351ab79a | |||
| f8404557cd | |||
| 2f0865cd66 | |||
| c9cc727c7b | |||
| 94b5647b6b | |||
| 64419e1d6a | |||
| 851cd92695 | |||
| 14511424e2 | |||
| 31c366e3b8 | |||
| f68dc8b40a | |||
| 8e083c38d0 | |||
| 605f6fcedc | |||
| bbf8ba77f8 | |||
| d05604c51f | |||
| 2c26b65070 | |||
| 33c807e803 | |||
| 36514e3760 | |||
| 421499894c | |||
| cfa5299b15 | |||
| 31b6efe082 | |||
| 0a8ec5a325 | |||
| d6f9c9ae1d | |||
| d9b94057d0 | |||
| 6785816d40 | |||
| 3d52dcf044 | |||
| 051ca7ddf2 | |||
| 1674e94d50 | |||
| bfc961ee5f | |||
| 4888f1bd38 | |||
| 344efcd220 | |||
| a8173f9f35 | |||
| c6a481ec7b | |||
| 6ec9081b1b | |||
| 51b2e62ee7 | |||
| bd9e409968 | |||
| 3413f12b93 | |||
| dbc4e0cbf8 | |||
| f7569c0821 | |||
| 13840acf3a | |||
| a8fd83659d | |||
| fbf7a67404 | |||
| 7ea05c699d | |||
| 543e3dfd0d | |||
| 0f79129d0f | |||
| cc28ff85f1 | |||
| 66bc826f7a | |||
| 26b88210f5 | |||
| 172faa058f | |||
| 3b8e470c79 | |||
| 87403485e3 | |||
| 0d90a41dd1 | |||
| 710b4fc73e | |||
| 428eebc00b | |||
| 479a15f198 | |||
| 5a4ec397b5 | |||
| e3bf78a739 | |||
| 9cf1162fde | |||
| 758b4bb3b3 | |||
| 881848eb82 | |||
| 1d9519c64b | |||
| 190d1c5b4b | |||
| fbe3b6ad45 | |||
| 89b6bdd9f6 | |||
| 5bcf4605ff | |||
| f89be0cd97 | |||
| 4a25860a26 | |||
| d60a123a46 | |||
| fb250b8205 | |||
| 474f0f0437 | |||
| 8208567b04 | |||
| 23ee1050bc | |||
| 65d6f2d81a | |||
| 8d969c5501 | |||
| f437825a90 | |||
| 1b5a42bdd4 | |||
| 9f4f06a5cc | |||
| 6cab9464b3 | |||
| f9d7a54ea2 | |||
| 00148941b6 | |||
| 02adc4c941 | |||
| 2b916c6582 | |||
| c338a3a704 | |||
| b7184dc34f | |||
| 98be1d1d2b | |||
| 14fb995468 | |||
| e2ee13c9a0 | |||
| a1dd4a9406 | |||
| fe95139663 | |||
| 54cb413de1 | |||
| f1ced873c0 | |||
| b1f9ac0d98 | |||
| fbc8cf5201 | |||
| 4fe20fe080 | |||
| 8770c45e88 | |||
| 5e75b4a25d | |||
| 4ad70aa3e0 | |||
| 4e37d7c030 | |||
| b251602e23 | |||
| b0f72e8cbb | |||
| b9ca13112b | |||
| 51bc96b533 | |||
| b2aa7e442b | |||
| c3f5bf517b | |||
| 1ce223973a | |||
| 0fa7ac6f9a | |||
| efd7fa067b | |||
| e08d7ccc3b | |||
| 318bae5479 | |||
| 9ff99fb6cb | |||
| 447d1efade | |||
| c3ae0a96bf | |||
| f109f6a301 | |||
| a61e877c9b | |||
| a5d8e735f1 | |||
| af45e7fb51 | |||
| 1c342eb2cc | |||
| 25ae328f5f | |||
| 7c2a0e1ff9 | |||
| 83c8897821 | |||
| a0cde2aaf3 | |||
| 392479cc3b | |||
| 1de6600801 | |||
| e6a23fb412 | |||
| 5e719c1ddd | |||
| 0f486d34ad | |||
| 7e7624befc | |||
| 0c06a3a337 | |||
| fec1514411 | |||
| 964cb2740a | |||
| 47b285a813 | |||
| 46b6114e31 | |||
| 2050a1af3c | |||
| c60df3a071 | |||
| 75984d8b8a | |||
| 229e288277 | |||
| 7ed7e90fb8 | |||
| 3defc6963a | |||
| 03c904e34f | |||
| 78230170fa | |||
| e4d93cb9d2 | |||
| d2f9575b00 | |||
| 84a91699c2 | |||
| 4dadb81b12 | |||
| d72b5d998c | |||
| cbda16740b | |||
| 66e9b85252 | |||
| 5e9f5579b7 | |||
| 740604a2bd | |||
| 430fb9519f | |||
| ad42177a67 | |||
| 29f11b4f50 | |||
| 4ee2359830 | |||
| 7db088250d | |||
| 723215c34f | |||
| 4b7825d2a2 | |||
| 7e971cb3af | |||
| e44b2d17d0 | |||
| 5e38e25b1c | |||
| 6d93e5649a | |||
| 1edb72f717 | |||
| 46cd207197 | |||
| d9582123b2 | |||
| c14c6dd845 | |||
| 638566d7ae | |||
| 0fac734e33 | |||
| 5ab380cda6 | |||
| 0c634cbfcb | |||
| 470b32c529 | |||
| 8db8ea688f | |||
| 77d287b592 | |||
| d4562109b6 | |||
| a45e4b7af0 | |||
| be8e28a1bf | |||
| 3a1778eed3 | |||
| 37f4d30b95 | |||
| c6f2db4b95 | |||
| fada3ad596 | |||
| 07a40f1aa0 | |||
| e306f0d522 | |||
| 3c186cb310 | |||
| 3c88d34dbb | |||
| 8d57ac214c | |||
| 687fa60438 | |||
| c58653a103 | |||
| 17f6e032d8 | |||
| 99e36991b8 | |||
| 3de7c4e1dd | |||
| b41b3e1f52 | |||
| 190074d0e3 | |||
| 4830f8f7b0 | |||
| eeb940be5b | |||
| 7034132702 | |||
| d47fddafd2 | |||
| 49c6fc2e05 | |||
| 0a15200b72 | |||
| a011da60a7 | |||
| 7e4a33ffd1 | |||
| 037b7ad3e0 | |||
| 566d3a6c4d | |||
| f8fe22afee | |||
| 5442f94a69 | |||
| 23a9e90bcc | |||
| 4e904e06d2 | |||
| e6b1e96c6c | |||
| aaf43c9bdf | |||
| c985c16e71 | |||
| 1214feb016 | |||
| 5e04a5319b | |||
| 0e11a46cd1 | |||
| 83a6f8ee13 | |||
| 9efbf11459 | |||
| bb0b41807f | |||
| f4aa0fcd75 | |||
| bf42ad618a | |||
| 09a6fb183a | |||
| 986d221303 | |||
| e6a531206a | |||
| 7eecfb5e5b | |||
| f74b181859 | |||
| 0bd4260d1b | |||
| fc92086607 | |||
| ea22a78a2a | |||
| 9fd9770b3c | |||
| 1b4f36623f | |||
| c02ddb603b | |||
| ce91711da8 | |||
| 026f10911a | |||
| d0f34871d6 | |||
| 456b0fc35c | |||
| edbc8086fe | |||
| c2a4dd1bdd | |||
| ee13b9084f | |||
| 4457c9db21 | |||
| 0792bb4c35 | |||
| 88efd15fdc | |||
| 7aab9d981c | |||
| 48436bae74 | |||
| 5a6ca3f952 | |||
| 3bae7fc767 | |||
| f55ed17711 | |||
| c1a211fc74 | |||
| 4db90d0a27 | |||
| 3d274a8cff | |||
| 37826a9b86 | |||
| 69ed1360d7 | |||
| 3cef15bd00 | |||
| 485baac16f | |||
| fc9f067098 | |||
| af2e612574 | |||
| 5c2e8f9975 | |||
| 1e5797d962 | |||
| 9d6c589556 | |||
| 519bc9671a | |||
| 52d7c341c8 | |||
| 2f82a576d4 | |||
| 3a55ac506e | |||
| 4b020e9c88 | |||
| 14a9e6db5e | |||
| 412e2d9e95 | |||
| 8d4a654e9a | |||
| 898a8b7324 | |||
| 46e4d5513b | |||
| 9d9c9c27d8 | |||
| 29e7520c89 | |||
| 520542cbbf | |||
| 8f1338e2eb | |||
| bb8bf1064f | |||
| 41c1387ee8 | |||
| 8247a73d43 | |||
| f690fb1b7b | |||
| 7c5cbf02a9 | |||
| 56d0cdc213 | |||
| 7bf6b25d38 | |||
| 6748e392f0 | |||
| 01c68e4955 | |||
| c6c4e54296 | |||
| 76eee8bce7 | |||
| aed4c8beb8 | |||
| be66e2c68d | |||
| e39a810888 | |||
| abae1d02ec | |||
| a131e4c819 | |||
| 49bfce1c33 | |||
| 12a574ab74 | |||
| f05266035b | |||
| 49f52141b3 | |||
| c981eaef98 | |||
| db97fc7417 | |||
| e774a9873c | |||
| 049f5ad51f | |||
| a544a1f8d5 | |||
| e8efee9ddc | |||
| 9298a1f05b | |||
| 32edb7e039 | |||
| 791ccf705a | |||
| 8847490cf7 | |||
| efa4154a13 | |||
| a26d801b49 | |||
| cc27ea79fe | |||
| 56b96fa3c7 | |||
| 8bde09f8e9 | |||
| d93e8fb97f | |||
| 31da2399e3 | |||
| d39502b9c6 | |||
| a1621b5e19 | |||
| 047888fffa | |||
| 57291aab87 | |||
| e01232075e | |||
| 632011b659 | |||
| ddd5545f4e | |||
| 3a753e03ec | |||
| 88debfefb1 | |||
| 669890eab5 | |||
| 20c3bf1f52 | |||
| fce00ca3f6 | |||
| 37b847104b | |||
| 735c2b8425 | |||
| 4a8ab12a45 | |||
| f26475794f | |||
| c62e78a8cc | |||
| 51df618d0d | |||
| ec1827d2ba | |||
| 60943bd1c7 | |||
| 661e08b403 | |||
| 8f19789a04 | |||
| c617a99ffb | |||
| 564c45d8d5 | |||
| d32fec4152 | |||
| 18a0d23ee9 | |||
| 1f2c6be884 | |||
| caa508c362 | |||
| 4e6211f075 | |||
| f97220945d | |||
| 240641cc4a | |||
| 6de7b9e143 | |||
| d1f740e989 | |||
| fb5948708b | |||
| 82a9cf1c75 | |||
| 68073b4552 | |||
| 93dd37df2d | |||
| 502306b10a | |||
| 8a77a15270 | |||
| 02f8667f02 | |||
| f417b0818a | |||
| af903d1e64 | |||
| 44c3fda88e | |||
| 74026eed93 | |||
| 26add2743a | |||
| 8b09d1ba58 | |||
| db4cd9018a | |||
| 7a028b8683 | |||
| fb314c4e97 | |||
| e6e7867415 | |||
| 3c263af484 | |||
| ae1c9bff68 | |||
| 66dc89bd4c | |||
| 3b1695262c | |||
| 4337f7d72a | |||
| 97637e5306 | |||
| 645def3aff | |||
| 149d17637a | |||
| 150f5e608a | |||
| e0fb4f5a41 | |||
| badb3720d0 | |||
| 0194c1a5bd | |||
| acd4365e2d | |||
| 10e92a7668 | |||
| 1c1df4a5ec | |||
| 11618a1a36 | |||
| 826f79a8d9 | |||
| 96081eb6b4 | |||
| ef1018b32d | |||
| 191828a6e6 | |||
| 14d81648ea | |||
| 7ac34dcd57 | |||
| 46661cf1bc | |||
| 1ed9d8ab64 | |||
| 7622667be7 | |||
| 25ada26f3c | |||
| 95cace10f2 | |||
| c2b3165473 | |||
| 3703cf37eb | |||
| 9566815d4e | |||
| 329d145705 | |||
| ff9ab23389 | |||
| c308f45de7 | |||
| a8994824e1 | |||
| a07d58cdd5 | |||
| ee8e8e1830 | |||
| 94437cd8fc | |||
| 26f5191ff5 | |||
| dcb96880d8 | |||
| f8a3ee2089 | |||
| 95d49bd88c | |||
| 3ee20350eb | |||
| dc5caa1fc1 | |||
| 0e60e77953 | |||
| 7c53fea02c | |||
| ac2bb5131b | |||
| b11c6a5f61 | |||
| 7d192cce94 | |||
| da2249aeb3 | |||
| ff26be0f83 | |||
| 6ef78ac2d8 | |||
| 19ab5a955f | |||
| ce92dda835 | |||
| 92ef319347 | |||
| 8bec4c7adc | |||
| 0670282c73 | |||
| 1954668475 | |||
| 8952ef31a6 | |||
| 417b3cebb1 | |||
| 7a82a12054 | |||
| 110ff8c715 | |||
| 7680ba8948 | |||
| 12719a8faa | |||
| 57ce4e125a | |||
| 84d5d8c754 | |||
| 09ea7e53ed | |||
| 30ebc651f7 | |||
| 5bdff46342 | |||
| b3802bddff | |||
| 26e5059336 | |||
| 2aa997f2bf | |||
| f5b4c6c14a | |||
| b08fa24b1d | |||
| 2693f69c0a | |||
| 150d570f3b | |||
| ac318e108b | |||
| 2ac6955b0f | |||
| 5b2b9697f5 | |||
| 1d2279a019 | |||
| 6acc27dcbc | |||
| 8215d4b02f | |||
| 8f066612f7 | |||
| 623f7b7cd8 | |||
| 75c901c635 | |||
| 9881eef464 | |||
| c58bacf10f | |||
| e783cb0c01 | |||
| 8aea70857d | |||
| e795d6fe4e | |||
| 8cce0b93e7 | |||
| 6d7fdbb2f5 | |||
| 163632f723 | |||
| edc1ad2068 | |||
| f3ce692435 | |||
| 4248b7e931 | |||
| dfbc9a7ac7 | |||
| 21c5a7dd52 | |||
| c7faf370e2 | |||
| c065fab653 | |||
| 60536a0073 | |||
| 99ca652744 | |||
| 81fa5fb966 | |||
| dc8164fb75 | |||
| 908b561b3f | |||
| 7a962897e7 | |||
| e35e25eab2 | |||
| fc08caa600 | |||
| 194ea4c516 | |||
| 052f8b94ec | |||
| fc2dda94ae | |||
| 31a139f9cb | |||
| 9e9d887061 | |||
| 9b7b63322d | |||
| f96e24bd3e | |||
| d1ab6c72fa | |||
| 4e31718409 | |||
| 9ac7171b19 | |||
| 1e45295371 | |||
| 0d7f1e3708 | |||
| 18eb8634b0 | |||
| 5f71b531ef | |||
| 7febbcd69d | |||
| a41b8ff77f | |||
| 323b808135 | |||
| d4928486d4 | |||
| a7e3f634e4 | |||
| 9ee2972179 | |||
| 6e56814fcd | |||
| 608156e5ec | |||
| 79b45bf308 | |||
| eb07c8ad89 | |||
| 3ef1be025e | |||
| 34d362ad84 | |||
| 7a040ad69c | |||
| fa3f1245fd | |||
| 3185e82471 | |||
| b93af8a49a | |||
| c3303bd751 | |||
| a16f861298 | |||
| 5c16df603f | |||
| 50bab18192 | |||
| 859cc89c2b | |||
| 2b3b9bf751 | |||
| 4e3d8a0d38 | |||
| 3e23221477 | |||
| 91b16bb314 | |||
| ab2262fea3 | |||
| 26233358a8 | |||
| d3eee6e3a3 | |||
| 999bee80e4 | |||
| b358f132f3 | |||
| 43ab0d3060 | |||
| 5192f59f2a | |||
| 90af075af3 | |||
| 84bd314848 | |||
| 8198d6df68 | |||
| f439f0c165 | |||
| fbdd457394 | |||
| 0f4fd655d0 | |||
| a3901ced54 | |||
| 10469cbed9 | |||
| 195c8e97e0 | |||
| 4cdc6eba1b | |||
| 780f470ff2 | |||
| 6eb24e023e | |||
| f0895b4139 | |||
| 5f83d9a92a | |||
| 2489cf390a | |||
| 0552b81510 | |||
| 287e444994 | |||
| 38e30d2642 | |||
| a83dc2e5cd | |||
| 346d75b7d3 | |||
| d7c8b79e0a | |||
| 7364745129 | |||
| db3b66e088 | |||
| 8e75502a9c | |||
| e0ef297acb | |||
| 522cb99ac4 | |||
| b5cd2d1fa2 | |||
| 7aad2fe390 | |||
| 943f2db8fb | |||
| 4ff3416c7d | |||
| 000e423568 | |||
| dfc489fa9e | |||
| 747084be3b | |||
| 42c6d30228 | |||
| 35af697f11 | |||
| d5b347d0c9 | |||
| a834760394 | |||
| ad955949e6 | |||
| 3c453d43d3 | |||
| e017854962 | |||
| 407547c718 | |||
| 6a5e5dd11f | |||
| 40ebdc03b0 | |||
| 4606a018ea | |||
| 7fa658198a | |||
| aabb0e6579 | |||
| d533f9de9f | |||
| 20a447aeda | |||
| 2542dc14d7 | |||
| 1236cd3e42 | |||
| b59fa453f7 | |||
| 82ab3df9f1 | |||
| df3d317b83 | |||
| 2ee94179b5 | |||
| 6c0824e1b6 | |||
| 66a6da8cc0 | |||
| 03c571d832 | |||
| 278011ce0e | |||
| 5fdcca327a | |||
| 68a72d531f | |||
| d995cd0b9c | |||
| 2d36599055 | |||
| 760272647c | |||
| a79b99f557 | |||
| cdbe15eb05 | |||
| adbea9690d | |||
| 9f5bbc070f | |||
| ea9729211d | |||
| bc74ec8ba2 | |||
| ba07dc0672 | |||
| 07df6b5031 | |||
| 7a2fe961fd | |||
| 14b6ef65ff | |||
| c5ddf097f9 | |||
| 261185ee7a | |||
| 3522ceb5bc | |||
| fc591adc9c | |||
| d5f4ced1e8 | |||
| d80f6b8fe0 | |||
| 923fbf53d5 | |||
| 4f09a056e4 | |||
| 0d52d7acf5 | |||
| 789ce6589e | |||
| 792c34349a | |||
| d4fe6d5086 | |||
| 127106d927 | |||
| da3d276408 | |||
| 6b3c38a5df | |||
| d636720eaf | |||
| 0c873747e4 | |||
| 2af16e3922 | |||
| facf9e3c5e | |||
| 9e3e6fd2df | |||
| 823711626b | |||
| b10d3c9289 | |||
| cb7a5a2cb9 | |||
| 6097055437 | |||
| e0d1cd6865 | |||
| e693c86fb7 | |||
| 8cb77421c4 | |||
| 59aacf2ad1 | |||
| 649e8d02fa | |||
| f50749984b | |||
| b933d64af1 | |||
| 03cc6536c1 | |||
| 7172a6e47a | |||
| 587c5c3905 | |||
| 1fc0f294d2 | |||
| 22525c2089 | |||
| 5f15803f17 | |||
| 9311d5f6db | |||
| 6e367599a8 | |||
| 7e133c8efb | |||
| 9aad7bbe85 | |||
| 7365661d29 | |||
| 13b979c314 | |||
| f85cf9207d | |||
| 0827934f66 | |||
| 00098b5fe4 | |||
| 07b94e918b | |||
| 25984704a4 | |||
| 19138006d4 | |||
| d70d0afbaf | |||
| 0a86abaa5a | |||
| 2706cae481 | |||
| 3f4a194864 | |||
| 08a0409a6d | |||
| ded7b54205 | |||
| 145f71a362 | |||
| 44c3a90422 | |||
| 219b6e5b80 | |||
| 6ee37c1e1e | |||
| 6b307e79c7 | |||
| 94045a6da6 | |||
| cacafadce3 | |||
| 0f441e7c68 | |||
| 52a6d2880d | |||
| 20297a42e6 | |||
| 47a1a58bca | |||
| 94343c9137 | |||
| 6d23cb28aa | |||
| c317e6fe68 | |||
| 4fbb5f9787 | |||
| 1c83ac1591 | |||
| cba357af08 | |||
| a301579685 | |||
| 86a82a5804 | |||
| 5c55fe5e24 | |||
| b3b3fcc4a8 | |||
| cab0b63920 | |||
| 9c81f4f7ab | |||
| 8674d1f661 | |||
| 49291c7e0a | |||
| b1e74ce3e9 | |||
| 6fffcdfa35 | |||
| 08ea631ee1 | |||
| 5049863033 | |||
| a92f4455a8 | |||
| 10e8380f59 | |||
| af17244d1f | |||
| 5f1818f35d | |||
| f236f74de0 | |||
| ede3302a52 | |||
| 7430916dd8 | |||
| 3a57dcf0f8 | |||
| e91369801d | |||
| e58f159182 | |||
| 535194cb74 | |||
| 18b54c46e1 | |||
| 6d49af1bd8 | |||
| 9277a93044 | |||
| b33c2b1347 | |||
| 6cb9f57d33 | |||
| f92ce443c5 | |||
| eb8fdd6e06 | |||
| 278740c87d | |||
| 254bfbfd55 | |||
| fc5aa25f02 | |||
| 958e050584 | |||
| 7fc3770f44 | |||
| c5146da57a | |||
| 96b58147c3 | |||
| 8c65165cc4 | |||
| 286f0f7e7f | |||
| 0b06743771 | |||
| 72abef3b19 | |||
| 2ad0692b00 | |||
| 4eda5ad604 | |||
| 0ab4b6a1b6 | |||
| 61b2befd09 | |||
| 6c6cc4e1c4 | |||
| a459fdd16b | |||
| f5ce3a7a69 | |||
| ae0f217a10 | |||
| 45969d90ed | |||
| b27ee071f4 | |||
| 16a62e5a71 | |||
| 1c914d7f05 | |||
| 1f6b5e5b1c | |||
| cc96f66bfe | |||
| 7dd4b93161 | |||
| 606c272508 | |||
| cf6fc003c6 | |||
| 43d9b35318 | |||
| 5beba511f8 | |||
| a3bdddb17a | |||
| b70a503142 | |||
| 2a6268fb67 | |||
| 7161233eb9 | |||
| 332aea3696 | |||
| 01b96d2527 | |||
| a0029a9441 | |||
| e81c1b8c72 | |||
| eb6b2efbed | |||
| e95a593b73 | |||
| 55de3071ef | |||
| 828e341319 | |||
| ae95b6623e | |||
| de7f20b84b | |||
| b4ab74ec3a | |||
| 917fd44ac2 | |||
| dd6c324bf0 | |||
| d6fb5412fb | |||
| 396d56c716 | |||
| 7543794088 | |||
| f83b606d08 | |||
| 8bfff6c85f | |||
| 1869fcf420 | |||
| 93e4051f80 | |||
| 42cc04d73b | |||
| 89a138ab3b | |||
| 0e5a2095e0 | |||
| bc77c64769 | |||
| 4139b4862f | |||
| 3a7779c1ee | |||
| b110a5f265 | |||
| a059ea283d | |||
| a09909c203 | |||
| 715fc1d4e7 | |||
| c3c7b992e0 | |||
| f102a3113d | |||
| 83af240048 | |||
| 46d83b6bbc | |||
| 99e7c944b8 | |||
| 2c9330e61a | |||
| c1a3e46af8 | |||
| a35e29b156 | |||
| 48d141caf6 | |||
| cfd3ab8c24 | |||
| 6883409803 | |||
| 534c788dad | |||
| ef18b76743 | |||
| 7536b94f95 | |||
| 10d4b08930 | |||
| b1f26f9f99 | |||
| 242c85b77f | |||
| ccfa12da60 | |||
| 3b32bffd3c | |||
| 4925bcdb90 | |||
| 1b3f40c6ad | |||
| 07d4acaaad | |||
| 53c2c9e13d | |||
| cf3c0d7745 | |||
| 924a615e0f | |||
| b688860162 | |||
| bf4f62c07a | |||
| 3d74c3f8ba | |||
| eb67890d30 | |||
| d492ed22bc | |||
| 3c3b727b60 | |||
| 2cde142fa1 | |||
| af181686dd | |||
| d79ac9a713 | |||
| a6df2cfb9c | |||
| edbce166e4 | |||
| c99c9a6b32 | |||
| a85bfc5095 | |||
| eaff4db9eb | |||
| dd4718a580 | |||
| c1689e8233 | |||
| 15562067aa | |||
| a044af6a01 | |||
| 54b650ed26 | |||
| ef3eea60eb | |||
| e4bb71f2e3 | |||
| dddd018982 | |||
| 88ff58090d | |||
| 73eb828768 | |||
| f1a2447580 | |||
| bf51b24cfa | |||
| 80ea7ba786 | |||
| d792056cfd | |||
| c26bde6854 | |||
| a71bcb7333 | |||
| a5ee4a06a2 | |||
| 9eac7942c8 | |||
| 8cfe8f7f63 | |||
| 810f47ce02 | |||
| d0cd8310ad | |||
| 13023b91f0 | |||
| 82da6d5ecb | |||
| e5c01188fc | |||
| 7ac453d9ad | |||
| ff059474aa | |||
| 25ca75b964 | |||
| 014729cc93 | |||
| a14e5487f3 | |||
| 925f010d37 | |||
| 0156bdfb2b | |||
| bf55e6ecb7 | |||
| 4b9c3084bb | |||
| 8bdac57426 | |||
| c214d6afbc | |||
| 32e21670dd | |||
| d31b314b9a | |||
| 7c5e194b45 | |||
| 5197ec6ea7 | |||
| 86f9baffac | |||
| c94a5705ed | |||
| 4810b3798b | |||
| d6464e50f1 | |||
| a910069bfe | |||
| b3d2027381 | |||
| 26822f891d | |||
| 0ef24b9818 | |||
| b688dece36 | |||
| 8d73647558 | |||
| 6418ceac08 | |||
| 3e0af04104 | |||
| ebafbcf5cf | |||
| 7d95566716 | |||
| a1c9c2949e | |||
| 088fcbaa70 | |||
| 56037000ad | |||
| f06825359c | |||
| 89aac03574 | |||
| e0162a48aa | |||
| 27e329d073 | |||
| 9d33f89bcf | |||
| 54b8a890f4 | |||
| d34afc14c7 | |||
| a7be63d2df | |||
| 057fd4d5a4 | |||
| 5837daace7 | |||
| 84f40db91a | |||
| f498cefade | |||
| eabec524c9 | |||
| 72acb9435f | |||
| f0bbba92e4 | |||
| 1baba5913e | |||
| 0dd4ad3749 | |||
| abcaf9eeed | |||
| d20c0c3690 | |||
| 82c9b2ecbe | |||
| c9510decf6 | |||
| 80c1412dd3 | |||
| b894ad93aa | |||
| 64df666fee | |||
| bcdd9510af | |||
| 4d504db111 | |||
| b8568c6195 | |||
| 01bd81913f | |||
| 8b4bf3bc1b | |||
| 8b641618bb | |||
| df24267e97 | |||
| 038c4fd706 | |||
| 18a2259123 | |||
| 9e0fcd7979 | |||
| e3852a373f | |||
| 67c82e8ec6 | |||
| 45788dda75 | |||
| 4c7e18b2e9 | |||
| 7b0ab1b3b6 | |||
| 4ca86e1c45 | |||
| debd2e9c75 | |||
| c59df3bd92 | |||
| 4532374ce1 | |||
| 78ae665df8 | |||
| 180861136f | |||
| 16ea57dccf | |||
| 7de4cc406a | |||
| 0905e21f57 | |||
| f4113464de | |||
| 53d7aa6e9d | |||
| 1cbad64009 | |||
| 0e03656397 | |||
| 29b8d51f3d | |||
| 768b210d8c | |||
| 56ca815fa2 | |||
| bcaf7f079a | |||
| 21ebf9ad1c | |||
| 0aebf52d44 | |||
| fc49260836 | |||
| 5526ed9f51 | |||
| 13d4785022 | |||
| 19bcd3a433 | |||
| 8e1d8059f2 | |||
| 5d8371d41f | |||
| a75a544cbb | |||
| 91031e721e | |||
| 028a8d80cb | |||
| 355bd1cb95 | |||
| 3b8337b03f | |||
| da64b1a09a | |||
| f7a466d23b | |||
| 0da7eeb90f | |||
| daf0ede906 | |||
| 5851e5d520 | |||
| 24b3e49378 | |||
| 2efb61ff40 | |||
| a01db70358 | |||
| 03ec9b0bfc | |||
| d97403b389 | |||
| 2f8059fb35 | |||
| d98fae8439 | |||
| 159e3fe086 | |||
| c440649d38 | |||
| 0c28a0bd58 | |||
| 2d7167ebd4 | |||
| a11a48c56c | |||
| 14ba00d116 | |||
| e9959a66a0 | |||
| b447a30341 | |||
| a129700f8c | |||
| 57bd1a697a | |||
| ec6d7d3281 | |||
| 78ab6eee08 | |||
| 205b6a589f | |||
| d825f0aa3d | |||
| 224b31f8cf | |||
| c63370bb40 | |||
| 83e259d0ba | |||
| 84d41bd284 | |||
| 0e30de2572 | |||
| bcf9e7a6dd | |||
| 4c39f8a09d | |||
| db81504cd2 | |||
| 5eb19c563b | |||
| 0abe72482c | |||
| fc7e2109df | |||
| b97d7f23d9 | |||
| 9e30154f6c | |||
| 528e9f04f4 | |||
| 5fcc6df72a | |||
| 670f23907b | |||
| 01837ba8b1 | |||
| 71d5dfb439 | |||
| f5ab51d3c3 |
@@ -23,7 +23,7 @@ defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
| a PHP script and you can easily do that on your own.
|
||||
|
|
||||
*/
|
||||
$config['base_url'] = 'http://admin.dev.liche.cn/';
|
||||
$config['base_url'] = 'haodian.dev.xiaoyu.com';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -98,15 +98,15 @@ class Main extends HD_Controller
|
||||
),
|
||||
);
|
||||
|
||||
$appConfig = $this->mdBobingUser->appConfig();
|
||||
$value = $this->mdBobingUser->count(array('act_key' => $appConfig['act_key'], 'app_id' => $appConfig['app_id']));
|
||||
$list[] = array(
|
||||
'title' => '博饼(人)',
|
||||
'value' => $value,
|
||||
'btns' => array(
|
||||
array('name' => '查看详情', 'url' => '/app/bobing/member?app_id=' . $this->app_id),
|
||||
),
|
||||
);
|
||||
// $appConfig = $this->mdBobingUser->appConfig();
|
||||
// $value = $this->mdBobingUser->count(array('act_key' => $appConfig['act_key'], 'app_id' => $appConfig['app_id']));
|
||||
// $list[] = array(
|
||||
// 'title' => '博饼(人)',
|
||||
// 'value' => $value,
|
||||
// 'btns' => array(
|
||||
// array('name' => '查看详情', 'url' => '/app/bobing/member?app_id=' . $this->app_id),
|
||||
// ),
|
||||
// );
|
||||
|
||||
$conditions[] = array('icon' => 'am-icon-home', 'list' => $list);
|
||||
/*小程序设置 end*/
|
||||
|
||||
@@ -146,7 +146,7 @@ class Series extends HD_Controller{
|
||||
if (!$name || empty($name)) {
|
||||
return $this->show_json(SYS_CODE_FAIL, '车系名称不能为空');
|
||||
}
|
||||
$old = $this->auto_series_model->get(['name'=>$name, 'brand_id' => $brand_id,'status>'=>-1]);
|
||||
$old = $this->auto_series_model->get(['name'=>$name,'status>'=>-1]);
|
||||
if ($old) {
|
||||
return $this->show_json(SYS_CODE_FAIL, '车系已经存在');
|
||||
}
|
||||
|
||||
@@ -1,762 +0,0 @@
|
||||
<?php
|
||||
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
class Clues extends HD_Controller
|
||||
{
|
||||
private $searchTpAry = array('mobile' => '客户手机号', 'name' => '客户姓名', 'void' => 'voId' );
|
||||
private $bizs = array(
|
||||
'350' => array(
|
||||
'name' => '福建',
|
||||
'list' => array(
|
||||
'100958' => array(
|
||||
'biz' => '福州齐安路',
|
||||
'sa' => '吴少凌',
|
||||
'mobile' => '13705028761'
|
||||
),
|
||||
'100966' => array(
|
||||
'biz' => '泉州南环路',
|
||||
'sa' => '傅玲玲',
|
||||
'mobile' => '18519510420'
|
||||
),
|
||||
'101077' => array(
|
||||
'biz' => '晋江豪信',
|
||||
'sa' => '杨晓默',
|
||||
'mobile' => '13799859101'
|
||||
),
|
||||
'100619' => array(
|
||||
'biz' => '漳州狸车',
|
||||
'sa' => '陈鸿喜',
|
||||
'mobile' => '17750151079'
|
||||
),
|
||||
'100231' => array(
|
||||
'biz' => '宁德辉科',
|
||||
'sa' => '余玮',
|
||||
'mobile' => '18659197547'
|
||||
),
|
||||
'100421' => array(
|
||||
'biz' => '南平绿衡',
|
||||
'sa' => '黄小英',
|
||||
'mobile' => '15759156127'
|
||||
),
|
||||
'100179' => array(
|
||||
'biz' => '莆田众诚',
|
||||
'sa' => '林昉',
|
||||
'mobile' => '18760550059'
|
||||
),
|
||||
'100690' => array(
|
||||
'biz' => '龙岩胜华成',
|
||||
'sa' => '郭晓芬',
|
||||
'mobile' => '13600983210'
|
||||
),
|
||||
'101323' => array(
|
||||
'biz' => '厦门机场店',
|
||||
'sa' => '黄芹兰',
|
||||
'mobile' => '19533428116'
|
||||
),
|
||||
'101207' => array(
|
||||
'biz' => '厦门胜华嘉',
|
||||
),
|
||||
),
|
||||
),
|
||||
'440' => array(
|
||||
'name' => '广东',
|
||||
'list' => array(
|
||||
'101071' => array(
|
||||
'biz' => '江门朋赢',
|
||||
'sa' => '余镜苗',
|
||||
'mobile' => '18127125536'
|
||||
),
|
||||
'100647' => array(
|
||||
'biz' => '珠海金浩',
|
||||
'sa' => '占杨',
|
||||
'mobile' => '18923392948'
|
||||
),
|
||||
'101252' => array(
|
||||
'biz' => '佛山鑫明宇',
|
||||
'sa' => '陈惠伦',
|
||||
'mobile' => '13790011910'
|
||||
),
|
||||
'101289' => array(
|
||||
'biz' => '深圳东浩',
|
||||
'sa' => '余佳思', // 庄海山
|
||||
'mobile' => '15889556579' //18123821527
|
||||
),
|
||||
'101204' => array(
|
||||
'biz' => '东莞金屹',
|
||||
'sa' => '林耿文',
|
||||
'mobile' => '17620573545'
|
||||
),
|
||||
'101043' => array(
|
||||
'biz' => '惠州新零致',
|
||||
'sa' => '黄家婷',
|
||||
'mobile' => '13719698587'
|
||||
),
|
||||
'100671' => array(
|
||||
'biz' => '梅州利兴',
|
||||
'sa' => '石绿绿',
|
||||
'mobile' => '14718175658'
|
||||
),
|
||||
'101214' => array(
|
||||
'biz' => '汕头骏华',
|
||||
'sa' => '黎旭',
|
||||
'mobile' => '15766613213'
|
||||
),
|
||||
'100917' => array(
|
||||
'biz' => '揭阳顺鹏',
|
||||
'sa' => '吴佳鸿',
|
||||
'mobile' => '19902714365'
|
||||
),
|
||||
'101487' => array(
|
||||
'biz' => '广州长瑞',
|
||||
'sa' => '吴国腾',
|
||||
'mobile' => '15323380908'
|
||||
),
|
||||
'100755' => array(
|
||||
'biz' => '湛江大众城',
|
||||
'sa' => '盘进雅',
|
||||
'mobile' => '13822586605'
|
||||
),
|
||||
'100739' => array(
|
||||
'biz' => '阳江辉能',
|
||||
'sa' => '林良杰',
|
||||
'mobile' => '18926369788'
|
||||
),
|
||||
'100309' => array(
|
||||
'biz' => '海口福瑞源',
|
||||
'sa' => '蔡智明',
|
||||
'mobile' => '1888999038'
|
||||
),
|
||||
)
|
||||
),
|
||||
'450' => array(
|
||||
'name' => '广西',
|
||||
'list' => array(
|
||||
'100813' => array(
|
||||
'biz' => '桂林车管家',
|
||||
'sa' => '覃智歆',
|
||||
'mobile' => '13768710609'
|
||||
),
|
||||
'100681' => array(
|
||||
'biz' => '柳州骏辉',
|
||||
'sa' => '卢融溪',
|
||||
'mobile' => '18677222303'
|
||||
),
|
||||
'100481' => array(
|
||||
'biz' => '北海池骋',
|
||||
'sa' => '凌国蔚',
|
||||
'mobile' => '13317793668'
|
||||
),
|
||||
'100930' => array(
|
||||
'biz' => '玉林通菲悦',
|
||||
'sa' => '晏小凤',
|
||||
'mobile' => '18277561170'
|
||||
),
|
||||
'101051' => array(
|
||||
'biz' => '南宁众耀达',
|
||||
'sa' => '赵一',
|
||||
'mobile' => '19195771136'
|
||||
),
|
||||
'100232' => array(
|
||||
'biz' => '南宁众合达',
|
||||
'sa' => '莫玉福',
|
||||
'mobile' => '19114702779'
|
||||
),
|
||||
'100531' => array(
|
||||
'biz' => '钦州瑞昇',
|
||||
'sa' => '黄语乔',
|
||||
'mobile' => '19377780781'
|
||||
),
|
||||
'100716' => array(
|
||||
'biz' => '贵港迅猫',
|
||||
'sa' => '',
|
||||
'mobile' => '19175951279'
|
||||
),
|
||||
)
|
||||
),
|
||||
'999' => array(
|
||||
'name' => '异地',
|
||||
'list' => array(
|
||||
'100619' => array(
|
||||
'biz' => '漳州狸车',
|
||||
'sa' => '童勤梅',
|
||||
'mobile' => '13023896026'
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
);
|
||||
protected $log_dir;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->model('hdcloud/hdcloud_clues_model', 'clues_model');
|
||||
$this->load->model('hdcloud/hdcloud_clue_oplogs_model', 'clue_oplogs_model');
|
||||
}
|
||||
|
||||
//首页信息
|
||||
public function index()
|
||||
{
|
||||
$this->lists();
|
||||
}
|
||||
|
||||
public function lists($where = array())
|
||||
{
|
||||
$statusAry = $this->clues_model->statusAry();
|
||||
$params = $this->input->get();
|
||||
|
||||
$this->data['province_id'] = $province_id = intval($params['province_id']);
|
||||
$this->data['biz_id'] = $biz_id = intval($params['biz_id']);
|
||||
|
||||
$page = $params['page'] = $params['page'] ? intval($params['page']) : 1;
|
||||
$size = $params['size'] = $params['size'] ? intval($params['size']) : 20;
|
||||
|
||||
if ($params['title']) {
|
||||
$where["{$params['search_tp']} like '%{$params['title']}%'"] = null;
|
||||
}
|
||||
|
||||
//创建时间
|
||||
if ($params['c_time']) {
|
||||
$c_time = explode(' ~ ', $params['c_time']);
|
||||
if ($c_time[0]) {
|
||||
$where["c_time >="] = strtotime($c_time[0] . ' 00:00:00');
|
||||
}
|
||||
if ($c_time[1]) {
|
||||
$where["c_time <="] = strtotime($c_time[1] . ' 23:59:59');
|
||||
}
|
||||
}
|
||||
|
||||
strlen($params['status']) && $where["status"] = $params['status'];
|
||||
|
||||
$province_id && $where['province_id'] = $province_id;
|
||||
$biz_id && $where['biz_id'] = $biz_id;
|
||||
|
||||
$count = $this->clues_model->count($where);
|
||||
$lists = [];
|
||||
|
||||
if ($count) {
|
||||
$fileds = 'id,void, name,mobile,c_time,admin_id,status, province_id, biz_id';
|
||||
$rows = $this->clues_model->select($where, 'id desc', $page, $size, $fileds);
|
||||
|
||||
foreach ($rows as $key => $val) {
|
||||
$val['status_name'] = $statusAry[$val['status']]['name'];
|
||||
if($val['province_id']){
|
||||
$pro = $this->bizs[$val['province_id']];
|
||||
$val['pro_name'] = $pro['name'];
|
||||
$biz = $this->bizs[$val['province_id']]['list'][$val['biz_id']];
|
||||
$val['biz_name'] = $biz['biz'];
|
||||
}
|
||||
$lists[] = $val;
|
||||
}
|
||||
}
|
||||
$statusList = array();
|
||||
foreach ($this->clues_model->statusAry() as $key => $value) {
|
||||
$cate = array();
|
||||
$where = array("status" => $key);
|
||||
|
||||
$count1 = $this->clues_model->count($where);
|
||||
if ($value['list']) {
|
||||
foreach ($value['list'] as $key2 => $value2) {
|
||||
$where['status2'] = $key2;
|
||||
$count2 = $this->clues_model->count($where);
|
||||
$cate[] = array("id" => $key2, "name" => $value2, "count" => $count2);
|
||||
}
|
||||
}
|
||||
$statusList[] = array("id" => $key, "name" => $value['name'], "cate" => $cate, "count" => $count1);
|
||||
}
|
||||
|
||||
$this->data['lists'] = $lists;
|
||||
$this->data['pager'] = array('count' => ceil($count / $size), 'curr' => $page, 'totle' => $count);
|
||||
$this->data['searchTpAry'] = $this->searchTpAry;
|
||||
$this->data['params'] = $params;
|
||||
$this->data['statusList'] = $statusList;
|
||||
$this->data['maintainAry'] = $this->maintainAry;
|
||||
$this->data['_title'] = '线索池列表';
|
||||
|
||||
|
||||
return $this->show_view('hdcloud/clues/lists', true);
|
||||
}
|
||||
|
||||
public function get()
|
||||
{
|
||||
$params = $this->input->get();
|
||||
$id = intval($params['id']);
|
||||
if (!$id) {
|
||||
return $this->show_json(SYS_CODE_FAIL, '非法参数!');
|
||||
}
|
||||
$statusList = $status2List = $logsList = [];
|
||||
$re = $this->clues_model->get(array('id' => $id));
|
||||
if (!$re || empty($re)) {
|
||||
return $this->show_json(SYS_CODE_FAIL, '线索不存在!');
|
||||
}
|
||||
$dataInfo = $re;
|
||||
foreach ($this->clues_model->statusAry() as $key => $value) {
|
||||
$statusList[] = array("id" => $key, "name" => $value['name']);
|
||||
}
|
||||
if (strlen($re['status'])) {
|
||||
foreach ($this->clues_model->statusAry($re['status'])['list'] as $key => $value) {
|
||||
$status2List[] = array("id" => $key, "name" => $value);
|
||||
}
|
||||
}
|
||||
$dataInfo['editType'] = 0;
|
||||
$info_show['statusList'] = $statusList;
|
||||
$info_show['status2List'] = $status2List;
|
||||
$info_show['c_time'] = date('Y-m-d H:i', $re['c_time']);
|
||||
|
||||
$info_show['logsList'] = $logsList;
|
||||
//意向信息
|
||||
$jsondata = $re['jsondata'] ? json_decode($re['jsondata'], true) : [];
|
||||
//获取城市区域
|
||||
$dataInfo['city_id'] = $re['city_id'];
|
||||
$dataInfo['county_id'] = $re['county_id'];
|
||||
|
||||
$this->data['info'] = $dataInfo;
|
||||
$this->data['info_show'] = $info_show;
|
||||
$this->data['_title'] = '线索详情';
|
||||
return $this->show_view('hdcloud/clues/edit', true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
* @return bool
|
||||
*/
|
||||
function get_add()
|
||||
{
|
||||
$id = $this->input->get('id');
|
||||
|
||||
if ($id) {
|
||||
$row = $this->clues_model->get(array('id' => $id));
|
||||
if (!$row) {
|
||||
return $this->show_json(SYS_CODE_FAIL, '记录不存在');
|
||||
}
|
||||
|
||||
$info = array(
|
||||
'name' => $row['name'],
|
||||
'mobile' => $row['mobile'],
|
||||
);
|
||||
$title = "编辑线索";
|
||||
$action = "edit";
|
||||
} else {
|
||||
$info = array(
|
||||
'name' => '',
|
||||
'mobile' => ''
|
||||
);
|
||||
$title = "新增线索";
|
||||
$action = "add";
|
||||
}
|
||||
|
||||
$this->data['info'] = $info;
|
||||
$this->data['action'] = $action;
|
||||
|
||||
$this->data['_title'] = $title;
|
||||
return $this->show_view('hdcloud/clues/get');
|
||||
}
|
||||
|
||||
//添加单条数据
|
||||
public function add()
|
||||
{
|
||||
$info = $this->input->post('info');
|
||||
|
||||
if (!$info['name']) {
|
||||
return $this->show_json(SYS_CODE_FAIL, '请填写姓名');
|
||||
}
|
||||
|
||||
if (!mobile_valid($info['mobile'])) {
|
||||
return $this->show_json(SYS_CODE_FAIL, '手机号码不准确');
|
||||
}
|
||||
if ($this->clues_model->get(['mobile' => $info['mobile']])) {
|
||||
return $this->show_json(SYS_CODE_FAIL, '手机号已存在');
|
||||
}
|
||||
|
||||
$add = array(
|
||||
'name' => $info['name'],
|
||||
'mobile' => $info['mobile'],
|
||||
'admin_id' => $this->uid,
|
||||
'c_time' => time(),
|
||||
);
|
||||
$ret = $this->clues_model->add($add);
|
||||
if (!$ret) {
|
||||
debug_log("[error]# add fail; " . $this->clues_model->db->last_query(), __FUNCTION__, $this->log_dir);
|
||||
return $this->show_json(SYS_CODE_FAIL, '添加失败');
|
||||
}
|
||||
|
||||
return $this->show_json(SYS_CODE_SUCCESS, '添加成功');
|
||||
}
|
||||
|
||||
public function add_log()
|
||||
{
|
||||
$params = $this->input->post();
|
||||
if (!$params['id']) {
|
||||
return $this->show_json(SYS_CODE_FAIL, '参数错误!');
|
||||
}
|
||||
if (!$params['log']) {
|
||||
return $this->show_json(SYS_CODE_FAIL, '请输入内容!');
|
||||
}
|
||||
$addData = array(
|
||||
'clue_id' => $params['id'],
|
||||
'uid' => $this->uid,
|
||||
'uname' => $this->username,
|
||||
'type' => intval($params['type']),
|
||||
'log' => $params['log'],
|
||||
'c_time' => time()
|
||||
);
|
||||
$id = $this->mdOplogs->add($addData);
|
||||
if ($id) {
|
||||
return $this->show_json(SYS_CODE_SUCCESS, '添加成功');
|
||||
} else {
|
||||
return $this->show_json(SYS_CODE_FAIL, '添加失败');
|
||||
}
|
||||
}
|
||||
|
||||
function add_excel()
|
||||
{
|
||||
require_once COMMPATH . '/third_party/PHPExcel/IOFactory.php';
|
||||
$res = $this->upload();
|
||||
if (!$res['code']) {
|
||||
return $this->show_json(0, $res['message']);
|
||||
}
|
||||
$file = $res['path'];
|
||||
if ($res['file_ext'] == '.xls') {
|
||||
$reader = \PHPExcel_IOFactory::createReader('Excel5'); // 读取 excel 文档
|
||||
} elseif ($res['file_ext'] == '.xlsx') {
|
||||
$reader = \PHPExcel_IOFactory::createReader('Excel2007'); // 读取 excel 文档
|
||||
} else {
|
||||
return $this->show_json(SYS_CODE_FAIL, '文件无法识别');
|
||||
}
|
||||
$PHPExcel = $reader->load($file); // 文档名称
|
||||
$objWorksheet = $PHPExcel->getActiveSheet();
|
||||
$rowCnt = $objWorksheet->getHighestRow(); //获取总行数
|
||||
if ($rowCnt > 800) {
|
||||
@unlink($file);
|
||||
return $this->show_json(0, '数据大于800请拆分多个表格导入');
|
||||
}
|
||||
$data = array();
|
||||
for ($_row = 2; $_row <= $rowCnt; $_row++) { //读取内容
|
||||
$data[] = array(
|
||||
'name' => $objWorksheet->getCell('A' . $_row)->getValue(),
|
||||
'mobile' => $objWorksheet->getCell('B' . $_row)->getValue(),
|
||||
'cfrom' => $objWorksheet->getCell('C' . $_row)->getValue(),
|
||||
);
|
||||
}
|
||||
$done = $this->add_batch($data);
|
||||
@unlink($file);
|
||||
$this->data['load_num'] = count($data);
|
||||
$this->data['done'] = $done;
|
||||
return $this->show_json(SYS_CODE_SUCCESS, "成功导入{$done}条");
|
||||
}
|
||||
|
||||
//编辑单条数据
|
||||
public function edit()
|
||||
{
|
||||
$info = $this->input->post('info');
|
||||
if (!$info) {
|
||||
return $this->show_json(SYS_CODE_FAIL, '非法参数!');
|
||||
}
|
||||
$re = $this->clues_model->get(array('id' => $info['id']));
|
||||
if (!$re || empty($re)) {
|
||||
return $this->show_json(SYS_CODE_FAIL, '线索不存在!');
|
||||
}
|
||||
$msg = '修改成功';
|
||||
$code = SYS_CODE_SUCCESS;
|
||||
if ($info['editType'] == 1) {
|
||||
$statusAry = $this->clues_model->statusAry();
|
||||
if ($info['status'] == $re['status'] && $info['status2'] == $re['status2']) {
|
||||
return $this->show_json(SYS_CODE_FAIL, '状态未修改!');
|
||||
}
|
||||
$status_name = $statusAry[$re['status']]['name'];
|
||||
$status_name_up = $statusAry[$info['status']]['name'];
|
||||
if ($info['status2']) {
|
||||
$status_name .= '-' . $statusAry[$re['status']]['list'][$re['status2']];
|
||||
$status_name_up .= '-' . $statusAry[$info['status']]['list'][$info['status2']];
|
||||
}
|
||||
$log = '更新状态(' . $status_name . ')为(' . $status_name_up . ')';
|
||||
$ret = $this->clues_model->update(array('status' => $info['status'], 'status2' => $info['status2']), array('id' => $info['id']));
|
||||
if (!$ret) {
|
||||
$code = SYS_CODE_FAIL;
|
||||
$msg = '修改状态失败';
|
||||
} else {
|
||||
$msg = '修改状态成功';
|
||||
$this->addLog(array('clue_id' => $info['id'], 'type' => 0, 'log' => $log));
|
||||
}
|
||||
} else if ($info['editType'] == 2) {
|
||||
if ($info['name'] == $re['name']) {
|
||||
return $this->show_json(SYS_CODE_FAIL, '客户姓名未修改!');
|
||||
}
|
||||
$log = '更新客户姓名(' . $re['name'] . ')为(' . $info['name'] . ')';
|
||||
$ret = $this->clues_model->update(array('name' => $info['name']), array('id' => $info['id']));
|
||||
if (!$ret) {
|
||||
$code = SYS_CODE_FAIL;
|
||||
$msg = '修改用户信息失败';
|
||||
} else {
|
||||
$msg = '修改用户信息成功';
|
||||
$this->addLog(array('clue_id' => $info['id'], 'type' => 0, 'log' => $log));
|
||||
}
|
||||
} else if ($info['editType'] == 3) {
|
||||
$up_data = [
|
||||
'city_id' => $info['city_id'],
|
||||
'county_id' => $info['county_id']
|
||||
];
|
||||
$ret = $this->clues_model->update($up_data, array('id' => $info['id']));
|
||||
if (!$ret) {
|
||||
$code = SYS_CODE_FAIL;
|
||||
$msg = '修改意向信息失败';
|
||||
} else {
|
||||
$msg = '修改意向信息成功';
|
||||
$this->addLog(array('clue_id' => $info['id'], 'type' => 0, 'log' => '修改意向信息'));
|
||||
}
|
||||
}
|
||||
return $this->show_json($code, $msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Notes:增加日志
|
||||
* Created on: 2021/7/23 10:48
|
||||
* Created by: dengbw
|
||||
* @param array $ary
|
||||
* @return mixed
|
||||
*/
|
||||
private function addLog($ary = array())
|
||||
{
|
||||
$id = 0;
|
||||
if ($ary['log']) {
|
||||
$addData = array(
|
||||
'clue_id' => $ary['clue_id'],
|
||||
'uid' => $this->uid,
|
||||
'uname' => $this->username,
|
||||
'type' => intval($ary['type']),
|
||||
'log' => $ary['log'],
|
||||
'c_time' => time()
|
||||
);
|
||||
$id = $this->mdOplogs->add($addData);
|
||||
}
|
||||
return $id;
|
||||
}
|
||||
|
||||
//删除单条数据
|
||||
public function del()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//批量操作(默认修改状态)
|
||||
public function batch()
|
||||
{
|
||||
$id = intval($this->input->post('id'));
|
||||
$status = $this->input->post('value');
|
||||
if (!$id || !$status) {
|
||||
$this->show_json(0, '参数错误');
|
||||
}
|
||||
$status_ary = explode('-', $status);
|
||||
$up_data['status'] = intval($status_ary[0]);
|
||||
$up_data['status2'] = intval($status_ary[1]);
|
||||
$this->clues_model->update($up_data, ['id' => $id]);
|
||||
return $this->show_json(SYS_CODE_SUCCESS, '保存成功');
|
||||
}
|
||||
|
||||
//导出数据列表
|
||||
public function export()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function get_bizs(){
|
||||
$province_id = $this->input->get('province_id');
|
||||
|
||||
if($province_id){
|
||||
$bizs = $this->bizs[$province_id];
|
||||
if($bizs){
|
||||
|
||||
foreach ($bizs['list'] as $k => $v){
|
||||
$this->data[] = array(
|
||||
'id' => $k,
|
||||
'biz_name' => $v['biz'],
|
||||
'sa' => $v['sa'],
|
||||
'mobile' => $v['mobile'],
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $this->show_json(SYS_CODE_SUCCESS);
|
||||
}
|
||||
|
||||
public function get_adviser()
|
||||
{
|
||||
$id = $this->input->get('id');
|
||||
$this->data['id'] = $id;
|
||||
|
||||
return $this->show_view('hdcloud/clues/get_adviser');
|
||||
}
|
||||
|
||||
public function edit_adviser(){
|
||||
$id = $this->input->post('id');
|
||||
$province_id = $this->input->post('province_id');
|
||||
$biz_id = $this->input->post('biz_id');
|
||||
$intent = $this->input->post('intent');
|
||||
$remark = $this->input->post('remark');
|
||||
|
||||
$biz = $this->bizs[$province_id]['list'][$biz_id];
|
||||
|
||||
if (!$biz) {
|
||||
return $this->show_json(SYS_CODE_FAIL, '请选择派单门店!');
|
||||
}
|
||||
$biz['id'] = $biz_id;
|
||||
|
||||
$clue_row = $this->clues_model->get(['id' => $id]);
|
||||
if ($clue_row) {
|
||||
// if($clue_row['status']){
|
||||
// return $this->show_json(SYS_CODE_FAIL, '已派单!');
|
||||
// }
|
||||
|
||||
$result = $this->push_neta($clue_row['name'], $clue_row['mobile'], $province_id, $biz, $intent, $remark);
|
||||
$json = json_decode($result, true);
|
||||
|
||||
if($json['dataInfo'][0]['rtnMessage'] == '处理成功'){
|
||||
|
||||
$update = array(
|
||||
'status' => 1,
|
||||
'province_id' => $province_id,
|
||||
'biz_id' => $biz_id,
|
||||
'voId' => $json['dataInfo'][0]['voId'],
|
||||
'intentModel' => $intent,
|
||||
'jsondata' => json_encode($json),
|
||||
);
|
||||
$this->clues_model->update($update, ['id' => $id]);
|
||||
|
||||
return $this->show_json(SYS_CODE_SUCCESS, '派单成功!');
|
||||
}
|
||||
}
|
||||
|
||||
return $this->show_json(SYS_CODE_FAIL, '派单失败!');
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
* @param $lists
|
||||
* @return int
|
||||
*/
|
||||
private function add_batch($lists)
|
||||
{
|
||||
$done = 0;
|
||||
$adds = array();
|
||||
|
||||
$where = array('status' => 1);
|
||||
$select = 'id, title';
|
||||
$map_cfrom = $this->clues_cfrom_model->map('title', 'id', $where, '', 0, 0, $select);
|
||||
$fails = array();
|
||||
foreach ($lists as $k => $v) {
|
||||
if (!$v['name']) {
|
||||
$fails[] = array('data' => $v, 'msg' => 'name is null');
|
||||
continue;
|
||||
}
|
||||
if (!mobile_valid($v['mobile'])) {
|
||||
$fails[] = array('data' => $v, 'msg' => 'mobile valid fail');
|
||||
continue;
|
||||
}
|
||||
if ($this->clues_model->get(['mobile' => $v['mobile']])) {
|
||||
$fails[] = array('data' => $v, 'msg' => '手机号已存在');
|
||||
continue;
|
||||
}
|
||||
|
||||
$adds[] = array(
|
||||
'name' => $v['name'],
|
||||
'mobile' => $v['mobile'],
|
||||
'c_time' => time(),
|
||||
);
|
||||
$done++;
|
||||
}
|
||||
|
||||
$fails && debug_log('[warning]# fails=' . json_encode($fails), __FUNCTION__, $this->log_dir);
|
||||
|
||||
if ($adds) {
|
||||
$ret = $this->clues_model->add_batch($adds);
|
||||
if (!$ret) {
|
||||
debug_log("[error] add_batch fail; " . $this->clues_model->db->last_query(), __FUNCTION__, $this->log_dir);
|
||||
$done = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return $done;
|
||||
}
|
||||
|
||||
//获取线索来源
|
||||
public function get_cfroms()
|
||||
{
|
||||
$id = $this->input->get('id');
|
||||
$where = [
|
||||
'status' => 1,
|
||||
'pid' => 0
|
||||
];
|
||||
$id && $where['pid'] = $id;
|
||||
if ($this->role == 37) {
|
||||
!$id && $where['id'] = 36;
|
||||
}
|
||||
$rows = $this->clues_cfrom_model->select($where, 'id desc', '', '', 'id,title');
|
||||
$this->data['data'] = $rows;
|
||||
return $this->show_json(SYS_CODE_SUCCESS);
|
||||
}
|
||||
|
||||
public function get_bizInfo()
|
||||
{
|
||||
$id = $this->input->get('id');
|
||||
$info = $this->biz_model->get(['id' => $id], 'city_id,county_id,address');
|
||||
$city = $this->area_model->get(['county_id' => $info['county_id']]);
|
||||
$bizinfo['city_name'] = $city['city_name'];
|
||||
$bizinfo['county_name'] = $city['county_name'];
|
||||
$bizinfo['address'] = $info['address'];
|
||||
$this->data['bizinfo'] = $bizinfo;
|
||||
return $this->show_json(SYS_CODE_SUCCESS);
|
||||
}
|
||||
|
||||
public function push_neta($customerName, $mobile, $province_id, $biz, $intentModel = '', $remark = '')
|
||||
{
|
||||
$voId = $province_id . date('mdHis') . sprintf("%06d", rand(1,999999));
|
||||
|
||||
if(in_array($biz['id'], array('100958', '100966', '101077')) || $province_id == '999'){
|
||||
$cusSource3 = '023409'; //区域云店 福泉厦
|
||||
}else{
|
||||
$cusSource3 = '023305'; //本地通
|
||||
}
|
||||
|
||||
$data[] = array(
|
||||
'voId' => $voId,
|
||||
'cusSource3' => $cusSource3,
|
||||
'customerName' => $customerName,
|
||||
'dealerCode' => $biz['id'],
|
||||
'fromSystem' => "好店云",
|
||||
'mobile' => $mobile,
|
||||
'saMobile' => $biz['mobile'],
|
||||
'cusType' => '30111001',
|
||||
'remark' => $remark,
|
||||
'intentModel' => $intentModel,
|
||||
);
|
||||
|
||||
$data = json_encode($data, JSON_UNESCAPED_UNICODE);
|
||||
|
||||
//测试地址
|
||||
//$url = 'https://salespp-sit.hozonauto.com/appservice/app/if/salesclue/createSalesclue';
|
||||
$url = 'https://salesapp.hozonauto.com/appservice/app/if/salesclue/createSalesclue';
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_POST, 1);
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
//https
|
||||
if (strlen($url) > 5 && strtolower(substr($url, 0, 5)) == "https") {
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
|
||||
}
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
|
||||
'Content-Type: application/json; charset=utf-8',
|
||||
'Content-Length: ' . strlen($data)
|
||||
)
|
||||
);
|
||||
$response = curl_exec($ch);
|
||||
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
@@ -85,7 +85,7 @@ class Inventory extends HD_Controller
|
||||
$where['lc_items_inventory_log.addr_id'] = $params['addr_id'];
|
||||
} else if ($params['city_id']) {
|
||||
$where_biz['status'] = 1;
|
||||
$params['city_id'] && $where_biz['city_id'] = $params['city_id'];
|
||||
$where_biz['city_id'] = $params['city_id'];
|
||||
$params['county_id'] && $where_biz['county_id'] = $params['county_id'];
|
||||
$res_biz = $this->mdBiz->select($where_biz, 'id desc', 0, 0, 'id');
|
||||
$res_addr = $this->addr_model->select($where_biz, 'id desc', 0, 0, 'id');
|
||||
@@ -127,7 +127,7 @@ class Inventory extends HD_Controller
|
||||
$autoList[2] = $this->mdAutoSeries->select(array('status' => 1, 'brand_id' => $params['brand_id']), 'id desc', 0, 0, 'id,name');
|
||||
}
|
||||
if ($params['s_id']) {
|
||||
$autoList[3] = $this->mdAutoAttr->select(array('status' => 1,'type' => 1, 's_id' => $params['s_id']), 'id desc', 0, 0, 'id,title as name');
|
||||
$autoList[3] = $this->mdAutoAttr->select(array('status' => 1, 'type' => 1, 's_id' => $params['s_id']), 'id desc', 0, 0, 'id,title as name');
|
||||
}
|
||||
$statusAry = $this->mdInventoryLog->statusAry();
|
||||
$carImgAry = $this->mdInventoryLog->carImgAry();
|
||||
@@ -327,4 +327,4 @@ class Inventory extends HD_Controller
|
||||
public function export()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -620,7 +620,7 @@ class Clues extends HD_Controller
|
||||
'biz_id' => $biz_id,
|
||||
'city_id' => $biz['city_id'],
|
||||
'county_id' => $biz['county_id'],
|
||||
'brand_id' => $clues_row['brand_id'],
|
||||
'brand_id' => 0,
|
||||
's_id' => $clues_row['s_id'],
|
||||
'if_driver' => $clues_row['if_driver'],
|
||||
'cf_title' => '平台分配',
|
||||
|
||||
@@ -107,7 +107,6 @@ class Customer extends HD_Controller
|
||||
$show_info['wxqyAry'] = $wxqyAry;
|
||||
$show_info['wxgrAry'] = $wxgrAry;
|
||||
$show_info['csbizidAry'] = $this->customers_model->csbizidAry();
|
||||
$show_info['cbrandAry'] = $this->customers_model->cbrandAry();
|
||||
$this->data['show_info'] = $show_info;
|
||||
$this->data['lists'] = $lists;
|
||||
$this->data['pager'] = array('count' => ceil($count / $size), 'curr' => $page, 'totle' => $count);
|
||||
@@ -393,7 +392,6 @@ class Customer extends HD_Controller
|
||||
!$params['cf_title'] && $params['cf_title'] = '';
|
||||
!$params['qdjl_id'] && $params['qdjl_id'] = '';
|
||||
!$params['level'] && $params['level'] = '';
|
||||
!is_numeric($params['c_brand']) && $params['c_brand'] = '';
|
||||
!$params['of_id'] && $params['of_id'] = '';
|
||||
!$params['of2_id'] && $params['of2_id'] = '';
|
||||
!$params['city_id'] && $params['city_id'] = '';
|
||||
@@ -423,9 +421,6 @@ class Customer extends HD_Controller
|
||||
if ($params['level']) {
|
||||
$where['level'] = $params['level'];
|
||||
}
|
||||
if (is_numeric($params['c_brand'])) {
|
||||
$where['c_brand'] = $params['c_brand'];
|
||||
}
|
||||
if ($params['of_id']) {
|
||||
$where['of_id'] = $params['of_id'];
|
||||
}
|
||||
@@ -612,11 +607,10 @@ class Customer extends HD_Controller
|
||||
'name' => $row['name'],
|
||||
'level' => $row['level'],
|
||||
'mobile' => $mobile_sub,
|
||||
'c_brand' => $this->customers_model->cbrandAry($row['c_brand']),
|
||||
'of_title' => $of_title,
|
||||
'wxqy_name' => $this->customers_model->wxqyAry($row['wxqy']),
|
||||
'wxgr_name' => $this->customers_model->wxgrAry($row['wxgr']),
|
||||
'wx_name' => '企微' . $this->customers_model->wxqyAry($row['wxqy']) . '; 个微' . $this->customers_model->wxgrAry($row['wxgr']),
|
||||
'wx_name' => '企微:' . $this->customers_model->wxqyAry($row['wxqy']) . '; 个微:' . $this->customers_model->wxgrAry($row['wxgr']),
|
||||
'cf_user' => $cf_user,
|
||||
'to_send' => $to_send,
|
||||
'c_time' => date('Y-m-d H:i:s', $row['c_time']),
|
||||
@@ -952,7 +946,7 @@ class Customer extends HD_Controller
|
||||
"dt_time" => "到店时间",
|
||||
"order_time" => "下单时间",
|
||||
"cont_time" => "最后联系时间",
|
||||
"c_brand" => "品牌归属",
|
||||
#"of_title" => "来源",
|
||||
"of_title_1" => "来源1",
|
||||
"of_title_2" => "来源2",
|
||||
"biz_name" => "归属门店",
|
||||
@@ -967,7 +961,7 @@ class Customer extends HD_Controller
|
||||
$status_arr = $this->customers_model->get_status();
|
||||
unset($status_arr['-1']);
|
||||
if ($count) {
|
||||
$fileds = "id, name, mobile, level, status, cs_biz_id, FROM_UNIXTIME(c_time) as c_time, if(dt_time>0, dt_time,'') as dt_time, if(order_time>0, order_time,'') as order_time, if(cont_time>0, cont_time,'') as cont_time, c_brand, cf_id, of_id, of2_id, (SELECT biz_name FROM `lc_biz` where id = `lc_receiver_customers`.biz_id) as biz_name, (SELECT uname FROM `lc_app_licheb_users` where id = `lc_receiver_customers`.admin_id) as admin_name, biz_id, admin_id, wxqy, wxgr, (select city_name from lc_area where city_id = lc_receiver_customers.city_id limit 1) as city_name, (select county_name from lc_area where county_id = lc_receiver_customers.county_id limit 1) as county_name";
|
||||
$fileds = "id, name, mobile, level, status, cs_biz_id, FROM_UNIXTIME(c_time) as c_time, if(dt_time>0, dt_time,'') as dt_time, if(order_time>0, order_time,'') as order_time, if(cont_time>0, cont_time,'') as cont_time, cf_title, cf_id, of_id, of2_id, (SELECT biz_name FROM `lc_biz` where id = `lc_receiver_customers`.biz_id) as biz_name, (SELECT uname FROM `lc_app_licheb_users` where id = `lc_receiver_customers`.admin_id) as admin_name, biz_id, admin_id, wxqy, wxgr, (select city_name from lc_area where city_id = lc_receiver_customers.city_id limit 1) as city_name, (select county_name from lc_area where county_id = lc_receiver_customers.county_id limit 1) as county_name";
|
||||
$rows = $this->customers_model->select($where, 'id desc', $page, $size, $fileds);
|
||||
foreach ($rows as $key => $val) {
|
||||
$of_title = '';
|
||||
@@ -993,7 +987,7 @@ class Customer extends HD_Controller
|
||||
'dt_time' => $val['dt_time'],
|
||||
'order_time' => $val['order_time'],
|
||||
'cont_time' => $val['cont_time'],
|
||||
'c_brand' => $this->customers_model->cbrandAry($val['c_brand'] ),
|
||||
'of_title' => $of_title,
|
||||
'of_title_1' => $of_title_1,
|
||||
'of_title_2' => $of_title_2,
|
||||
'biz_name' => $val['biz_name'],
|
||||
|
||||
@@ -130,11 +130,11 @@ class Company extends HD_Controller{
|
||||
return $this->show_json(SYS_CODE_FAIL, '请选择城市');
|
||||
}
|
||||
|
||||
// $where = array("title like '{$title}'" => null);
|
||||
// $count = $this->company_model->count($where);
|
||||
// if($count>0){
|
||||
// return $this->show_json(SYS_CODE_FAIL, '公司已存在');
|
||||
// }
|
||||
$where = array("title like '{$title}'" => null);
|
||||
$count = $this->company_model->count($where);
|
||||
if($count>0){
|
||||
return $this->show_json(SYS_CODE_FAIL, '公司已存在');
|
||||
}
|
||||
|
||||
$add = array(
|
||||
'title' => $title,
|
||||
@@ -170,11 +170,11 @@ class Company extends HD_Controller{
|
||||
return $this->show_json(SYS_CODE_FAIL, '请选择城市');
|
||||
}
|
||||
|
||||
// $where = array("title like '{$title}'" => null, "id<>{$info['id']}" => null);
|
||||
// $count = $this->company_model->count($where);
|
||||
// if($count>0){
|
||||
// return $this->show_json(SYS_CODE_FAIL, '公司已存在');
|
||||
// }
|
||||
$where = array("title like '{$title}'" => null, "id<>{$info['id']}" => null);
|
||||
$count = $this->company_model->count($where);
|
||||
if($count>0){
|
||||
return $this->show_json(SYS_CODE_FAIL, '公司已存在');
|
||||
}
|
||||
|
||||
$upd = array(
|
||||
'title' => $title,
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* Time: 14:10
|
||||
*/
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
//session_start();
|
||||
session_start();
|
||||
|
||||
class Auth {
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
<label class="am-para-label">交车时间:</label>
|
||||
<div class="am-para-input">
|
||||
<input type="text" placeholder="请输入交车时间" name="delivery_day" v-model="info.delivery_day" style="display: inline;width: 100px"/>
|
||||
<span>日</span>
|
||||
<span>个工作日</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,598 +0,0 @@
|
||||
<div class="am-form am-form-horizontal" style="width: 98%;padding-top: 10px">
|
||||
<div id="vue-edit">
|
||||
<div class="am-g">
|
||||
<div class="col-sm-12" style="margin-bottom: 20px;">
|
||||
<div class="col-sm-2">
|
||||
<div class="my-panel">
|
||||
<div class="text-center">
|
||||
状态
|
||||
</div>
|
||||
<div class="text-center" style="padding-top: 5px;">
|
||||
<select id="status" v-model="info.status" disabled="disabled"
|
||||
@change='getStatus2();'>
|
||||
<template v-for="(v,i) in infoShow.statusList">
|
||||
<option :value="v.id">{{v.name}}</option>
|
||||
</template>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="my-panel">
|
||||
<div class="text-center">
|
||||
二级状态
|
||||
</div>
|
||||
<div class="text-center" style="padding-top: 5px;">
|
||||
<select id="status2" v-model="info.status2" disabled="disabled">
|
||||
<option value="0">二级状态</option>
|
||||
<template v-for="(v,i) in infoShow.status2List">
|
||||
<option :value="v.id">{{v.name}}</option>
|
||||
</template>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-inline" style="padding-right: 10px;padding-top: 12px;">
|
||||
<div class="text-right">
|
||||
<div class="am-form-group ml10">
|
||||
<a href="javascript:void(0)" class="am-btn am-btn-sm am-btn-default"
|
||||
@click="editType(1)" v-if="info.editType==1">取消编辑</a>
|
||||
<a href="javascript:void(0)" class="am-btn am-btn-sm am-btn-default"
|
||||
@click="editType(1)" v-else>编辑状态</a>
|
||||
</div>
|
||||
<div class="am-form-group ml10" v-if="info.editType==1">
|
||||
<a href="javascript:void(0)" class="am-btn am-btn-sm am-btn-success"
|
||||
@click="saveEdit()">修改状态</a>
|
||||
</div>
|
||||
<div class="am-form-group ml10">
|
||||
<a href="javascript:void(0)" class="am-btn am-btn-sm am-btn-success"
|
||||
onclick="edit_adviser()">分配</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-lg-12">
|
||||
<div class="am-panel am-panel-default">
|
||||
<div class="am-panel-hd">
|
||||
<span href="javascript:void(0)" style="font-size: 20px">
|
||||
用户信息
|
||||
</span>
|
||||
<span style="float:right;margin-top:5px;">
|
||||
<a href="javascript:" @click="editType(2)"><i class="fa fa-edit"></i></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="am-panel-bd am-g">
|
||||
<table width="100%" style="margin:0px 0px 10px 0px;">
|
||||
<tr>
|
||||
<td class="table-td">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">客户姓名:</div>
|
||||
<input type="text" v-model="info.name" placeholder="请输入客户姓名"></div>
|
||||
</td>
|
||||
<td class="table-td">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">客户电话:</div>
|
||||
{{infoShow.mobile_sub}}
|
||||
</div>
|
||||
</td>
|
||||
<td class="table-td">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">线索来源:</div>
|
||||
{{infoShow.cfrom_title}}
|
||||
</div>
|
||||
</td>
|
||||
<td class="table-td">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">加入时间:</div>
|
||||
{{infoShow.c_time}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table-td">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">最后报名时间:</div>
|
||||
{{infoShow.en_time}}
|
||||
</div>
|
||||
</td>
|
||||
<td class="table-td">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">分配商家:</div>
|
||||
<template v-if="infoShow.cus_bizs">
|
||||
{{infoShow.cus_bizs}}
|
||||
</template>
|
||||
<template v-else>
|
||||
未分配
|
||||
</template>
|
||||
</div>
|
||||
</td>
|
||||
<td class="table-td" v-if="infoShow.cf_user">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">分销来源:</div>
|
||||
{{infoShow.cf_user}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="am-form-inline" style="padding-right: 30px;padding-top: 10px;">
|
||||
<div class="text-left pt10">
|
||||
<div class="am-form-group ml10">
|
||||
<a v-if="info.editType==2" href="javascript:void(0)"
|
||||
class="am-btn am-btn-sm am-btn-success"
|
||||
@click="saveEdit()">修改用户信息</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan="3">
|
||||
<div class="am-form-inline" style="padding-right: 40px;padding-top: 10px;">
|
||||
<div class="text-right pt10">
|
||||
<div class="am-form-group ml10">
|
||||
<a data-modal="/common/show_sms?id=<?= $info['id'] ?>&type=clues"
|
||||
data-title="发送短信"
|
||||
class="am-btn am-btn-sm am-btn-success">短信</a>
|
||||
</div>
|
||||
<div class="am-form-group ml10">
|
||||
<a href="javascript:void(0);"
|
||||
data-modal="/common/bind_mobile?id=<?= $info['id'] ?>&type=clues"
|
||||
class="am-btn am-btn-sm am-btn-success" data-title="获取手机号">
|
||||
拨打电话
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-lg-12">
|
||||
<div class="am-panel am-panel-default">
|
||||
<div class="am-panel-hd">
|
||||
<span href="javascript:void(0)" style="font-size: 20px">
|
||||
意向信息
|
||||
</span>
|
||||
<span style="float:right;margin-top:5px;">
|
||||
<a href="javascript:" @click="editType(3)"><i class="fa fa-edit"></i></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="am-panel-bd am-g">
|
||||
<table width="100%" style="margin:0px 0px 10px 0px;">
|
||||
<tr>
|
||||
<td class="table-td" colspan="2">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">地区:</div>
|
||||
<select class="mr5" style="width: 120px; display: inline" v-model="info.city_id">
|
||||
<option value="">选择城市</option>
|
||||
<template v-for="(v,i) in cityAry">
|
||||
<option :value="v.id">{{v.name}}</option>
|
||||
</template>
|
||||
</select>
|
||||
<select style="width: 120px; display: inline" v-model="info.county_id">
|
||||
<option value="">选择行政区</option>
|
||||
<template v-for="(v,i) in countyAry">
|
||||
<option :value="v.id">{{v.name}}</option>
|
||||
</template>
|
||||
</select>
|
||||
</div>
|
||||
</td>
|
||||
<td class="table-td" colspan="2">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">推荐门店:</div>
|
||||
<button v-for="(val,key) in infoShow['near_bizs']"
|
||||
:class="'btn ml5 btn-xs btn-'+randClass()" @click="showBizInfo(val)">
|
||||
{{val.biz_name}}
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="info.editType==3">
|
||||
<td colspan="4">
|
||||
<div class="am-form-inline" style="padding-right: 30px;padding-top: 10px;">
|
||||
<div class="text-left pt10">
|
||||
<div class="am-form-group ml10">
|
||||
<a href="javascript:void(0)"
|
||||
class="am-btn am-btn-sm am-btn-success"
|
||||
@click="saveEdit()">修改意向信息</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-lg-12">
|
||||
<div class="am-panel am-panel-default">
|
||||
<div class="am-panel-hd">
|
||||
<span href="javascript:void(0)" style="font-size: 20px">
|
||||
线索日志
|
||||
</span>
|
||||
<span style="float:right;margin-top:5px">
|
||||
<a href="javascript:void(0)" @click="logModal()">新增小记</a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="am-panel-bd">
|
||||
<div class="am-tabs" data-am-tabs>
|
||||
<div class="am-tab-panel am-active">
|
||||
<table class="am-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="15%"><span>操作人员</span></th>
|
||||
<th width=""><span>内容</span></th>
|
||||
<th width="13%"><span>类型</span></th>
|
||||
<th width="15%"><span>操作时间</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($info_show['logsList'] as $key => $val) { ?>
|
||||
<tr>
|
||||
<td style="vertical-align:middle;word-wrap:break-word"><?= $val['uname'] ?></td>
|
||||
<td style="vertical-align:middle;word-wrap:break-word">
|
||||
<? if ($val['rec_url']) { ?>
|
||||
<audio controls="controls">
|
||||
<source src="<?= $val['rec_url'] ?>"/>
|
||||
</audio>
|
||||
<? } else if ($val['rec_text']) { ?>
|
||||
<?= $val['rec_text'] ?>
|
||||
<? } else { ?>
|
||||
<?= $val['log'] ?>
|
||||
<? } ?>
|
||||
</td>
|
||||
<td style="vertical-align:middle;word-wrap:break-word"><?= $val['type_name'] ?></td>
|
||||
<td style="vertical-align:middle;word-wrap:break-word;"><?= $val['c_time'] ?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="log-modal" style="display: none;">
|
||||
<div style="padding-top: 20px;">
|
||||
<div class="am-form-group">
|
||||
<label class="am-para-label label-width">内容:</label>
|
||||
<div class="am-para-input" style="width: 80%">
|
||||
<textarea name="log" rows="5" placeholder="请输入内容" v-model="goods.log"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-lg-12" id="modal-biz-info" style="display:none">
|
||||
<table width="100%" style="margin:0px 0px 10px 0px;">
|
||||
<tr>
|
||||
<td class="table-td">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">城市地区:</div>
|
||||
{{bizInfo.city_name}}-{{bizInfo.county_name}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table-td">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">详细地址:</div>
|
||||
{{bizInfo.address}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
var vue_obj;
|
||||
$(document).ready(function () {
|
||||
vue_obj = new Vue({
|
||||
el: '#vue-edit',
|
||||
data: {
|
||||
info: {},
|
||||
infoShow: {},
|
||||
goods: {"imgs_url": [], "imgs": [], "log": ''},
|
||||
cityAry: [],
|
||||
countyAry: [],
|
||||
bizInfo: [],
|
||||
},
|
||||
mounted: function () {
|
||||
var that = this;
|
||||
that.info = <?=json_encode($info)?>;
|
||||
that.infoShow = <?=json_encode($info_show)?>;
|
||||
that.init_citys();
|
||||
},
|
||||
computed: {},
|
||||
created: function () {
|
||||
},
|
||||
updated: function () {
|
||||
},
|
||||
methods: {
|
||||
init_citys: function () {
|
||||
var vm = this;
|
||||
$.ajax({
|
||||
type: 'get',
|
||||
url: '/common/area',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
id: '350',
|
||||
key: 'city',
|
||||
type: 1
|
||||
},
|
||||
success: function (response) {
|
||||
if (response.code == 1) {
|
||||
vm.cityAry = response.data;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
editType: function (index) {
|
||||
var vm = this;
|
||||
if (index == 1) {
|
||||
if (vm.info.editType == 1) {
|
||||
$("#status").attr("disabled", "disabled");
|
||||
$("#status2").attr("disabled", "disabled");
|
||||
vm.info.editType = 0;
|
||||
} else {
|
||||
$("#status").removeAttr("disabled");
|
||||
$("#status2").removeAttr("disabled");
|
||||
vm.info.editType = 1;
|
||||
}
|
||||
} else {
|
||||
if (vm.info.editType == index) {
|
||||
vm.info.editType = 0;
|
||||
} else {
|
||||
vm.info.editType = index;
|
||||
}
|
||||
}
|
||||
},
|
||||
getStatus2: function () {
|
||||
//二级分类
|
||||
var vm = this;
|
||||
$.ajax({
|
||||
url: '/receiver/clues/get_status2',
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
status: vm.info.status,
|
||||
},
|
||||
success: function (data) {
|
||||
vm.info.status2 = 0;
|
||||
if (data.data) {
|
||||
vm.infoShow.status2List = data.data;
|
||||
}
|
||||
},
|
||||
});
|
||||
},
|
||||
logModal: function () {
|
||||
var vm = this;
|
||||
layer.open({
|
||||
type: 1,
|
||||
area: ['50%'], //宽高
|
||||
content: $('#log-modal'),
|
||||
title: '新增小记',
|
||||
shade: false,
|
||||
btn: ['保存', '取消'],
|
||||
yes: function (index) {
|
||||
$.ajax({
|
||||
url: '/receiver/clues/add_log',
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
act_type: 1, id: <?= $info['id'] ?>, type: 0, log: vm.goods.log, imgs: vm.goods.imgs
|
||||
},
|
||||
beforeSend: function () {
|
||||
layer.load(1, {
|
||||
shade: [0.1, '#fff'] //0.1透明度的白色背景
|
||||
});
|
||||
},
|
||||
success: function (data) {
|
||||
if (data['code']) {
|
||||
layer.msg(data.msg, {
|
||||
icon: 1,
|
||||
time: 2000
|
||||
}, function () {
|
||||
$.form.reload();
|
||||
});
|
||||
} else {
|
||||
layer.msg(data.msg, {icon: 2});
|
||||
}
|
||||
},
|
||||
complete: function () {
|
||||
layer.closeAll('loading');
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
saveEdit: function () {
|
||||
var vm = this;
|
||||
$.ajax({
|
||||
url: '/receiver/clues/edit',
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
info: vm.info
|
||||
},
|
||||
beforeSend: function () {
|
||||
layer.load(1, {
|
||||
shade: [0.1, '#fff'] //0.1透明度的白色背景
|
||||
});
|
||||
},
|
||||
success: function (data) {
|
||||
loading = false;
|
||||
if (data['code']) {
|
||||
layer.msg(data.msg, {
|
||||
icon: 1,
|
||||
time: 2000
|
||||
}, function () {
|
||||
$.form.reload();
|
||||
});
|
||||
} else {
|
||||
layer.msg(data.msg, {icon: 2});
|
||||
}
|
||||
},
|
||||
complete: function () {
|
||||
loading = false;
|
||||
layer.closeAll('loading');
|
||||
},
|
||||
});
|
||||
},
|
||||
randClass: function () {
|
||||
var classArr = ['default', 'primary', 'success', 'info', 'warning', 'danger'];
|
||||
var rand = Math.floor(Math.random() * classArr.length);
|
||||
return classArr[rand]
|
||||
},
|
||||
showBizInfo: function (info) {
|
||||
var that = this
|
||||
$.get('/receiver/clues/get_bizInfo', {'id': info.id}, function (response) {
|
||||
if (response.code) {
|
||||
that.bizInfo = response.data.bizinfo
|
||||
layer.open({
|
||||
type: 1, //Page层类型
|
||||
title: info.biz_name,
|
||||
shade: false,
|
||||
area: ['420px', '240px'], //宽高
|
||||
content: $("#modal-biz-info")
|
||||
});
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'info.city_id': function (nv, ov) {
|
||||
var that = this;
|
||||
if (nv == '') {
|
||||
that.countyAry = [];
|
||||
that.info.county_id = '';
|
||||
} else {
|
||||
if (nv.substring(0, 4) != that.info.county_id.substring(0, 4)) {
|
||||
that.info.county_id = '';
|
||||
}
|
||||
$.ajax({
|
||||
type: 'get',
|
||||
url: '/common/area',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
id: nv,
|
||||
key: 'county',
|
||||
type: 1
|
||||
},
|
||||
success: function (response) {
|
||||
if (response.code == 1) {
|
||||
that.countyAry = response.data;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function edit_adviser() {
|
||||
var ids = '<?=$info['id']?>'
|
||||
return $.form.modal("/receiver/clues/get_adviser?ids=" + ids, 'open_type=modal', "分配顾问");
|
||||
}
|
||||
|
||||
</script>
|
||||
<style type="text/css">
|
||||
.input-group {
|
||||
width: 100%;
|
||||
padding-right: 30px;
|
||||
}
|
||||
|
||||
.input-group-addon {
|
||||
padding: 0px 0px 0px 0px;
|
||||
font-size: 1.6rem;
|
||||
font-weight: normal;
|
||||
line-height: 0px;
|
||||
color: #333;
|
||||
text-align: right;
|
||||
background-color: #fff;
|
||||
border: 0px solid #fff;
|
||||
border-radius: 0px;
|
||||
width: 110px;
|
||||
}
|
||||
|
||||
.table-td {
|
||||
width: 20%;
|
||||
padding-top: 15px;
|
||||
line-height: 37px;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
.my-ul ul li {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.my-panel {
|
||||
padding: 10px;
|
||||
border: 1px solid #ddd;
|
||||
height: 90px;
|
||||
}
|
||||
|
||||
.auto-content {
|
||||
width: min-content;
|
||||
min-width: 50%;
|
||||
}
|
||||
|
||||
.btn-group .disabled {
|
||||
background-color: #eee;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.photo-upload {
|
||||
position: relative;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.photo-upload:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.photo-upload-item {
|
||||
position: relative;
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
font-size: 12px; /*display:inline-block;width:120px;*/
|
||||
}
|
||||
|
||||
.photo-upload-item > img {
|
||||
}
|
||||
|
||||
.photo-upload-item-check,
|
||||
.photo-upload-item-remove {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
top: -8px;
|
||||
right: -8px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
border: 1px solid #fff;
|
||||
background-color: #eee;
|
||||
border-radius: 50%;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.photo-upload-item:hover .photo-upload-item-remove {
|
||||
opacity: 1;
|
||||
transition: all .4s ease
|
||||
}
|
||||
|
||||
.photo-upload-item-check {
|
||||
opacity: 1;
|
||||
background-color: #36f;
|
||||
color: #fff;
|
||||
}
|
||||
</style>
|
||||
<link rel="stylesheet" type="text/css" href="/static/css/appitem/font-awesome.min.css?v=1581252500">
|
||||
@@ -1,79 +0,0 @@
|
||||
<form class="am-form am-form-horizontal ptb20 pr20 mt10" data-auto="true" method="post" style="padding-top: 10px;padding-bottom: 10px;"
|
||||
action="" id="edit-form">
|
||||
<div class="am-form-group">
|
||||
<label class="am-para-label">姓名:</label>
|
||||
<div class="am-para-input w300">
|
||||
<input type="text" placeholder="输入姓名" v-model="info.name" name="name"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label class="am-para-label">手机号:</label>
|
||||
<div class="am-para-input w300">
|
||||
<input type="text" placeholder="输入手机号" v-model="info.mobile" name="mobile"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<div class="am-para-input">
|
||||
<button class="am-btn am-btn-secondary" type="button" id="add-btn" @click="saveEdit">保存</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
var loading = false;
|
||||
var vue_obj = false;
|
||||
$(function(){
|
||||
vue_obj = new Vue({
|
||||
el: '#edit-form',
|
||||
data: {
|
||||
info:{},
|
||||
action:""
|
||||
},
|
||||
mounted:function() {
|
||||
var vm = this;
|
||||
vm.info = <?=json_encode($info, JSON_UNESCAPED_UNICODE)?>;
|
||||
vm.action = "<?=$action?>";
|
||||
},
|
||||
methods:{
|
||||
saveEdit:function(){
|
||||
var vm = this;
|
||||
if (loading) {
|
||||
return;
|
||||
}
|
||||
loading = 1;
|
||||
|
||||
$.ajax({
|
||||
url: "hdcloud/clues/" + vm.action,
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
info: vm.info
|
||||
},
|
||||
beforeSend: function () {
|
||||
layer.load(1, {
|
||||
shade: [0.1, '#fff'] //0.1透明度的白色背景
|
||||
});
|
||||
},
|
||||
success: function (data) {
|
||||
if (1 == data['code']) {
|
||||
layer.msg(data.msg, {
|
||||
icon: 1,
|
||||
time: 2000
|
||||
}, function () {
|
||||
window.location.reload();
|
||||
});
|
||||
} else {
|
||||
layer.msg(data.msg, {icon: 2});
|
||||
}
|
||||
},
|
||||
complete: function () {
|
||||
loading = false;
|
||||
layer.closeAll('loading');
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -1,127 +0,0 @@
|
||||
<form class="am-form am-form-horizontal ptb20 pr20 mt10" data-auto="true" method="post" style="padding-top: 10px;padding-bottom: 10px;"
|
||||
action="/hdcloud/clues/edit_adviser" id="edit-form">
|
||||
|
||||
<div class="am-form-group">
|
||||
<label class="am-para-label">省份:</label>
|
||||
<div class="am-para-input">
|
||||
<div class="am-form-inline">
|
||||
<div class="am-form-group w200">
|
||||
<select name="province_id" v-model="province_id">
|
||||
<option value="0">请选择省份</option>
|
||||
<option value="350">福建</option>
|
||||
<option value="440">广东</option>
|
||||
<option value="450">广西</option>
|
||||
<option value="999">异地</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label class="am-para-label">门店:</label>
|
||||
<div class="am-para-input w200">
|
||||
<select name="biz_id" v-model="biz_id">
|
||||
<option value="0">请选择门店</option>
|
||||
<template v-for="(v,i) in bizList">
|
||||
<option :value="v.id">{{v.biz_name}} ({{v.sa}})</option>
|
||||
</template>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label class="am-para-label">意向车型:</label>
|
||||
<div class="am-para-input">
|
||||
<div class="am-form-inline">
|
||||
<div class="am-form-group w200">
|
||||
<select name="intent" v-model="intent">
|
||||
<option value="">请选择车系</option>
|
||||
<option value="哪吒L">哪吒L</option>
|
||||
<option value="哪吒X">哪吒X</option>
|
||||
<option value="哪吒U">哪吒U</option>
|
||||
<option value="哪吒AYA">哪吒AYA</option>
|
||||
<option value="哪吒V">哪吒V</option>
|
||||
<option value="哪吒S">哪吒S</option>
|
||||
<option value="哪吒GT">哪吒GT</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label class="am-para-label">备注:</label>
|
||||
<div class="am-para-input"><textarea name="remark" rows="4" v-model="remark">><?= $content ?></textarea></div>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<div class="am-para-input">
|
||||
<input type="hidden" name="id" value="<?= $id ?>">
|
||||
<button class="am-btn am-btn-secondary" type="button" @click="save()">保存分配</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
$(function () {
|
||||
vue_obj = new Vue({
|
||||
el: '#edit-form',
|
||||
data: {
|
||||
province_id: 0,
|
||||
biz_id: 0,
|
||||
bizList: [],
|
||||
intent: '',
|
||||
remark: '',
|
||||
},
|
||||
mounted: function(){
|
||||
this.init_bizs();
|
||||
},
|
||||
methods: {
|
||||
init_bizs:function(){
|
||||
var vm = this;
|
||||
$.get('hdcloud/clues/get_bizs',{province_id:'0'},function(response){
|
||||
if (response.code == 1) {
|
||||
vm.bizList = response.data;
|
||||
}
|
||||
});
|
||||
},
|
||||
save:function(){
|
||||
pdata = {province_id:this.province_id, 'biz_id':this.biz_id, 'id':'<?=$id?>', 'intent':this.intent, 'remark':this.remark}
|
||||
$.post('hdcloud/clues/edit_adviser',pdata,function(response){
|
||||
if (response.code == 1) {
|
||||
layer.msg(response.msg,{'icon':1},function(){
|
||||
layer.closeAll();
|
||||
$.form.reload();
|
||||
})
|
||||
}else{
|
||||
layer.msg(response.msg,{'icon':2});
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
'province_id':function(nv, ov){
|
||||
var that = this;
|
||||
if (nv == '') {
|
||||
that.bizList = [];
|
||||
that.biz_id = '0';
|
||||
} else {
|
||||
$.get('hdcloud/clues/get_bizs',{province_id:nv},function(response){
|
||||
that.bizList = response.data;
|
||||
if (that.biz_id > 0) {
|
||||
var biz_id = '0';
|
||||
for (var i in that.bizList) {
|
||||
var biz = that.bizList[i];
|
||||
if (biz.id == that.biz_id) {
|
||||
biz_id = biz.id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
that.biz_id = biz_id;
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
}
|
||||
})
|
||||
});
|
||||
</script>
|
||||
@@ -1,332 +0,0 @@
|
||||
<link rel="stylesheet" type="text/css" href="/static/css/font-awesome.min.css?v=1581252500">
|
||||
<div class="bs-example bs-example-tabs" data-example-id="togglable-tabs" style="font-size:15px;">
|
||||
<div id="recom-stat"></div>
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li role="presentation" class="<?= !strlen($params['status']) ? 'active' : '' ?>">
|
||||
<a href="javascript:void (0);" data-open="/hdcloud/clues">全部</a>
|
||||
</li>
|
||||
<? foreach ($statusList as $v) { ?>
|
||||
<li role="presentation"
|
||||
class="<? if (strlen($params['status']) && $params['status'] == $v['id']) { ?>active<? } ?>">
|
||||
<? if ($v['cate']) { ?>
|
||||
<a href="javascript:void (0);" class="dropdown-toggle" data-toggle="dropdown">
|
||||
<?= $v['name'] ?>
|
||||
<?= $v['count'] > 0 ? '<span style="background-color:#ff6600" class="am-badge am-round">' . $v['count'] . '</span>' : '' ?>
|
||||
<?= $v['cate'] ? ' <span class="caret"></span>' : '' ?>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<? if ($v['cate']) { ?>
|
||||
<li class="<?= $params['status'] == $v['id'] && !$params['status2'] ? 'active' : '' ?>">
|
||||
<a href="javascript:void (0);"
|
||||
data-open="/hdcloud/clues?status=<?= $v['id'] ?>">
|
||||
全部
|
||||
</a>
|
||||
</li>
|
||||
<? } ?>
|
||||
<? foreach ($v['cate'] as $v2) { ?>
|
||||
<li class="<?= $params['status2'] == $v2['id'] ? 'active' : '' ?>">
|
||||
<a href="javascript:void (0);"
|
||||
data-open="/hdcloud/clues?status=<?= $v['id'] ?>&status2=<?= $v2['id'] ?>">
|
||||
<?= $v2['name'] ?>
|
||||
<?= $v2['count'] > 0 ? '<span style="background-color:#ff6600" class="am-badge am-round">' . $v2['count'] . '</span>' : '' ?>
|
||||
</a>
|
||||
</li>
|
||||
<? } ?>
|
||||
</ul>
|
||||
<? } else { ?>
|
||||
<a href="javascript:void (0);"
|
||||
data-open="/hdcloud/clues?status=<?= $v['id'] ?>">
|
||||
<?= $v['name'] ?>
|
||||
<?= $v['count'] > 0 ? '<span style="background-color:#ff6600" class="am-badge am-round">' . $v['count'] . '</span>' : '' ?>
|
||||
</a>
|
||||
<? } ?>
|
||||
</li>
|
||||
<? } ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="coms-table-wrap mt10">
|
||||
<form class="form-search coms-table-hd clearfix no-border" onsubmit="return false"
|
||||
action="/hdcloud/clues" id="search_form">
|
||||
<input name="status" value="<?= $params['status'] ?>" type="hidden">
|
||||
<div class="am-form am-form-horizontal">
|
||||
<div class="am-form-group fl">
|
||||
<label class="am-para-label w100">客户搜索:</label>
|
||||
<div class="am-para-inline w100">
|
||||
<select name="search_tp" id="search_tp">
|
||||
<? foreach ($searchTpAry as $key => $value) { ?>
|
||||
<option value="<?= $key ?>"
|
||||
<?= $key == $params['search_tp'] ? 'selected' : '' ?>><?= $value ?></option>
|
||||
<? } ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group fl">
|
||||
<div class="am-para-inline w260">
|
||||
<input id="title" name="title" type="text" value="<?= $params['title'] ?>"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group fl">
|
||||
<label class="am-para-label w100">派单地区门店:</label>
|
||||
<div class="am-form-group am-para-inline w150">
|
||||
<select name="province_id" v-model="province_id">
|
||||
<option value="0">请选择省份</option>
|
||||
<option value="350">福建</option>
|
||||
<option value="440">广东</option>
|
||||
<option value="450">广西</option>
|
||||
<option value="999">异地</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group am-para-inline w150">
|
||||
<select name="biz_id" v-model="biz_id">
|
||||
<option value="0">请选择门店</option>
|
||||
<template v-for="(v,i) in bizList">
|
||||
<option :value="v.id">{{v.biz_name}}</option>
|
||||
</template>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<div class="am-form-group" style="margin-bottom: 0px;"></div>
|
||||
<label class="am-para-label w100">创建时间:</label>
|
||||
<div class="am-form-group fl">
|
||||
<div class="am-para-inline w300">
|
||||
<input id="id-create-time" name="c_time" type="text" value="<?= $params['c_time'] ?>"
|
||||
placeholder="创建时间范围" autocomplete="off"/>
|
||||
</div>
|
||||
<div class="am-para-inline" style="padding-top: 5px;">
|
||||
<a class="mr10 id-day-btn" href="javascript:void (0);" data-date="today"
|
||||
data-source="id-create-time">今日</a>
|
||||
<a class="mr10 id-day-btn" href="javascript:void (0);" data-date="yesterday"
|
||||
data-source="id-create-time">昨日</a>
|
||||
<a class="mr10 id-day-btn" href="javascript:void (0);" data-date="weeks"
|
||||
data-source="id-create-time">本周</a>
|
||||
<a class="mr10 id-day-btn" href="javascript:void (0);" data-date="month"
|
||||
data-source="id-create-time">本月</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group fl" style="margin-bottom: 0px;">
|
||||
<div class="am-form-group fl ml10">
|
||||
<button type="submit" class="am-btn am-btn-success am-btn-sm w100">搜索</button>
|
||||
</div>
|
||||
<div class="am-form-group fl ml10">
|
||||
<button type="button" class="am-btn am-btn-success am-btn-sm w100" @click="reset">重置</button>
|
||||
</div>
|
||||
|
||||
<!--div class="am-form-group fl ml10">
|
||||
<button type="button" id="import" class="am-btn am-btn-success am-btn-sm w100">导入</button>
|
||||
</div-->
|
||||
|
||||
<div class="am-form-group fl ml10">
|
||||
<button type="button" class="am-btn am-btn-success am-btn-sm w100"
|
||||
data-modal="/hdcloud/clues/get_add" data-title="新增线索">新增
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="coms-table-bd">
|
||||
<div class="fr">共有<?= $pager['totle'] ?>条数据</div>
|
||||
<table class="am-table am-table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="10%"><span>ID</span></th>
|
||||
<th width="10%"><span>客户姓名</span></th>
|
||||
<th width="10%"><span>客户电话</span></th>
|
||||
<th width="10%"><span>派单地区门店</span></th>
|
||||
<th width="10%"><span>状态</span></th>
|
||||
<th width="15%"><span>创建时间</span></th>
|
||||
<th width="15%"><span>操作</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<? if ($lists) {
|
||||
foreach ($lists as $v) { ?>
|
||||
<tr>
|
||||
<td><?= $v['void'] ?></td>
|
||||
<td><?= $v['name'] ?></td>
|
||||
<td><?= $v['status'] ? substr($v['mobile'], 0, 3) . str_repeat('*', strlen($v['mobile']) - 7) . substr($v['mobile'], -4) : $v['mobile'] ?></td>
|
||||
<td><?= $v['pro_name'] ?> <?= $v['biz_name'] ?></td>
|
||||
<td><?= $v['status_name'] ?></td>
|
||||
<td><?= date('Y-m-d H:i:s', $v['c_time']) ?></td>
|
||||
<td><a data-open="/hdcloud/clues/get?id=<?= $v['id'] ?>&type=clues" href="javascript:void(0);" class="am-btn am-btn-primary am-btn-xs">详情</a>
|
||||
<? if(!$v['void']){ ?><a href="javascript:void(0);" class="am-btn am-btn-primary am-btn-xs" onclick="edit_adviser(<?= $v['id'] ?>);">派单</a> <?php }?>
|
||||
</td>
|
||||
</tr>
|
||||
<? }
|
||||
} ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="coms-table-ft clearfix">
|
||||
<div class="hander am-form">
|
||||
</div>
|
||||
<div class="coms-pagination fr mr20">
|
||||
<? page_view($pager) ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="cule-modal" style="display: none;padding: 10px">
|
||||
<div class="modal-body">
|
||||
<div class="text-center">
|
||||
<h2><i class="fa fa-info-circle"></i> 请上传Excel文件</h2>
|
||||
<p>Excel文件格式必须与模板保持一致,否则无法导入</p>
|
||||
<div class="form-group-action">
|
||||
<a href="/temp/clues.xlsx" target="_blank" class="btn btn-default">查看模板</a>
|
||||
<label href="javascript:" class="btn btn-primary" style="margin-left: 10px;">
|
||||
<form id="import-form">
|
||||
<input type="file" id="clue-file" name="file" accept=".xls,.xlsx"
|
||||
style="left:-9999px;position:absolute;" onchange="load_clue()">
|
||||
</form>
|
||||
<span>上传Excel文件</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$(function () {
|
||||
vue_obj = new Vue({
|
||||
el: '#search_form',
|
||||
data: {
|
||||
province_id:<?=$params['province_id'] ? $params['province_id']:0?>,
|
||||
bizList:[],
|
||||
biz_id:0
|
||||
},
|
||||
mounted: function(){
|
||||
this.init_bizs();
|
||||
},
|
||||
methods: {
|
||||
init_bizs:function(){
|
||||
var vm = this;
|
||||
$.get('hdcloud/clues/get_bizs',{province_id:'0'},function(response){
|
||||
vm.bizList = response.data;
|
||||
});
|
||||
},
|
||||
reset: function () {
|
||||
var that = this;
|
||||
$('#search_tp').val('mobile');
|
||||
$('#title').val('');
|
||||
$('#id-create-time').val('');
|
||||
$('#id-en-time').val('');
|
||||
that.province_id = '0';
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
'province_id':function(nv, ov){
|
||||
var that = this;
|
||||
if (nv == '') {
|
||||
that.bizList = [];
|
||||
that.biz_id = '0';
|
||||
} else {
|
||||
$.get('hdcloud/clues/get_bizs',{province_id:nv},function(response){
|
||||
that.bizList = response.data;
|
||||
if (that.biz_id > 0) {
|
||||
var biz_id = '0';
|
||||
for (var i in that.bizList) {
|
||||
var biz = that.bizList[i];
|
||||
if (biz.id == that.biz_id) {
|
||||
biz_id = biz.id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
that.biz_id = biz_id;
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
}
|
||||
});
|
||||
|
||||
$("#import").click(function () {
|
||||
$("#clue-file").val('');
|
||||
layer.open({
|
||||
type: 1,
|
||||
area: ['40%'], //宽高
|
||||
content: $('#cule-modal'),
|
||||
title: '导入线索',
|
||||
shade: false,
|
||||
btn: ['完成'],
|
||||
yes: function (index) {
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
require(['laydate', 'autocomplete'], function (laydate) {
|
||||
laydate.render({
|
||||
elem: '#id-create-time', range: '~'
|
||||
});
|
||||
laydate.render({
|
||||
elem: '#id-en-time', range: '~'
|
||||
});
|
||||
$('.id-day-btn').click(function () {
|
||||
var type = $(this).data('date'), date = '', nowDate = new Date();
|
||||
var source_id = $(this).data('source') || 'id-create-time';
|
||||
var beginDate = '', endDate = '';
|
||||
switch (type) {
|
||||
case 'today':
|
||||
beginDate = endDate = nowDate.Format('yyyy-MM-dd');
|
||||
break;
|
||||
case 'yesterday':
|
||||
beginDate = endDate = (new Date(nowDate.getTime() - 86400000)).Format('yyyy-MM-dd');
|
||||
break;
|
||||
case 'weeks':
|
||||
nowDate.setDate(nowDate.getDate() - nowDate.getDay() + 1);
|
||||
beginDate = nowDate.getFullYear() + "-" + (nowDate.getMonth() + 1) + "-" + nowDate.getDate();
|
||||
nowDate.setDate(nowDate.getDate() + 6);
|
||||
endDate = nowDate.getFullYear() + "-" + (nowDate.getMonth() + 1) + "-" + nowDate.getDate();
|
||||
break;
|
||||
case 'month':
|
||||
beginDate = nowDate.getFullYear() + "-" + (nowDate.getMonth() + 1) + "-01";
|
||||
var day = new Date(nowDate.getFullYear(), nowDate.getMonth() + 1, 0);
|
||||
endDate = nowDate.getFullYear() + "-" + (nowDate.getMonth() + 1) + "-" + day.getDate();
|
||||
break;
|
||||
}
|
||||
date = beginDate + ' ~ ' + endDate;
|
||||
$('#' + source_id).val(date);
|
||||
});
|
||||
});
|
||||
|
||||
function edit_adviser(id) {
|
||||
return $.form.modal("/hdcloud/clues/get_adviser?id=" + id, 'open_type=modal', "派单门店");
|
||||
}
|
||||
|
||||
function load_clue() {
|
||||
var file = $("#clue-file");
|
||||
if (file.val() == '') {
|
||||
layer.msg('文件是空的');
|
||||
return 0;
|
||||
}
|
||||
var loading = layer.load(1, {
|
||||
shade: [0.1, '#fff'] //0.1透明度的白色背景
|
||||
});
|
||||
|
||||
var options = {
|
||||
url: "/hdcloud/clues/add_excel",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {},
|
||||
success: function (res) {
|
||||
if (1 == res.code) {
|
||||
layer.msg(res.msg, {
|
||||
icon: 1,
|
||||
time: 2000
|
||||
}, function () {
|
||||
$.form.reload();
|
||||
});
|
||||
}
|
||||
},
|
||||
complete: function () {
|
||||
file.val('');
|
||||
layer.close(loading);
|
||||
}
|
||||
};
|
||||
$("#import-form").ajaxSubmit(options);
|
||||
}
|
||||
|
||||
</script>
|
||||
@@ -1,67 +0,0 @@
|
||||
<div class="coms-table-wrap">
|
||||
<div class="coms-table-hd clearfix no-border">
|
||||
<form action="/receiver/clues/lists_call" class="form-search" onsubmit="return false">
|
||||
<div class="am-form am-form-horizontal">
|
||||
<div class="am-form-group fl">
|
||||
<label class="am-para-label">用户名:</label>
|
||||
<div class="am-para-inline w150">
|
||||
<input type="text" value="<?= $params['username'] ?>"
|
||||
name="username"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group fl">
|
||||
<label class="am-para-label">手机号:</label>
|
||||
<div class="am-para-inline w150">
|
||||
<input type="text" value="<?= $params['mobile'] ?>"
|
||||
name="mobile"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group fl">
|
||||
<div class="am-para-inline w150">
|
||||
<button type="submit" class="am-btn ml20 am-btn-sm am-btn-success w100">搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group fl">
|
||||
<button type="button" data-action="/receiver/clues/edit_call" data-ajax="post"
|
||||
data-params-type="3" class="add am-btn ml20 am-btn-sm am-btn-success w120">重置已分配
|
||||
</button>
|
||||
</div>
|
||||
<div class="am-form-group fr" style="font-size: 15px;padding-right: 20px;padding-top: 6px;">
|
||||
共有<?= $pager['totle'] ?>条数据
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="coms-table-bd">
|
||||
<table class="am-table am-table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="3%"><span>ID</span></th>
|
||||
<th width="10%"><span>用户名</span></th>
|
||||
<th width="10%"><span>手机号</span></th>
|
||||
<th width="10%"><span>分配号码</span></th>
|
||||
<th width="10%"><span>操作</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php if ($lists) {
|
||||
foreach ($lists as $v) { ?>
|
||||
<tr>
|
||||
<td><?= $v['id'] ?></td>
|
||||
<td><?= $v['username'] ?></td>
|
||||
<td><?= $v['mobile'] ?></td>
|
||||
<td><?= $v['phone'] ?></td>
|
||||
<td><?= $v['phone_btn'] ?></td>
|
||||
</tr>
|
||||
<?php }
|
||||
} ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="coms-table-ft clearfix">
|
||||
<div class="hander am-form"></div>
|
||||
<div class="coms-pagination fr mr20">
|
||||
<?php page_view($pager) ?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -67,7 +67,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group fl">
|
||||
<label class="am-para-label w100">所在地区:</label>
|
||||
<label class="am-para-label w100">报名位置:</label>
|
||||
<div class="am-form-group am-para-inline w150">
|
||||
<select name="city_id" v-model="city_id">
|
||||
<option value="0">城市</option>
|
||||
@@ -76,9 +76,17 @@
|
||||
</template>
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group am-para-inline w150">
|
||||
<select name="county_id" v-model="county_id">
|
||||
<option value="0">行政区</option>
|
||||
<template v-for="(v,i) in countyAry">
|
||||
<option :value="v.id">{{v.name}}</option>
|
||||
</template>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group fl">
|
||||
<!--label class="am-para-label w100">线索来源:</label>
|
||||
<label class="am-para-label w100">线索来源:</label>
|
||||
<div class="am-form-group am-para-inline w150">
|
||||
<select name="cfrom_id" v-model="cfrom_id">
|
||||
<option value=0>请选择</option>
|
||||
@@ -86,7 +94,7 @@
|
||||
<option :value="v.id">{{v.title}}</option>
|
||||
</template>
|
||||
</select>
|
||||
</div-->
|
||||
</div>
|
||||
<div class="am-form-group am-para-inline w150">
|
||||
<select name="cfrom_id2" v-model="cfrom_id2">
|
||||
<option value=0>请选择</option>
|
||||
@@ -117,6 +125,26 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<div class="am-form-group" style="margin-bottom: 0px;"></div>
|
||||
<label class="am-para-label w100">最后报名时间:</label>
|
||||
<div class="am-form-group fl">
|
||||
<div class="am-para-inline w300">
|
||||
<input id="id-en-time" name="en_time" type="text" value="<?= $params['en_time'] ?>"
|
||||
placeholder="创建时间范围" autocomplete="off"/>
|
||||
</div>
|
||||
<div class="am-para-inline" style="padding-top: 5px;">
|
||||
<a class="mr10 id-day-btn" href="javascript:void (0);" data-date="today"
|
||||
data-source="id-en-time">今天</a>
|
||||
<a class="mr10 id-day-btn" href="javascript:void (0);" data-date="yesterday"
|
||||
data-source="id-en-time">昨日</a>
|
||||
<a class="mr10 id-day-btn" href="javascript:void (0);" data-date="weeks"
|
||||
data-source="id-en-time">本周</a>
|
||||
<a class="mr10 id-day-btn" href="javascript:void (0);" data-date="month"
|
||||
data-source="id-en-time">本月</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group fl" style="margin-bottom: 0px;">
|
||||
<div class="am-form-group fl ml10">
|
||||
<button type="submit" class="am-btn am-btn-success am-btn-sm w100">搜索</button>
|
||||
@@ -149,30 +177,59 @@
|
||||
<table class="am-table am-table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="5%"><label class="checkall">
|
||||
<th width="3%"><label class="checkall">
|
||||
<input type="checkbox" data-check-target=".order-ids"> 全选</label></th>
|
||||
<th width="10%"><span>ID</span></th>
|
||||
<th width="10%"><span>客户姓名</span></th>
|
||||
<th width="10%"><span>客户电话</span></th>
|
||||
<th width="10%"><span>所在地区</span></th>
|
||||
<th width="10%"><span>状态</span></th>
|
||||
<th width="15%"><span>创建时间</span></th>
|
||||
<th width="15%"><span>操作</span></th>
|
||||
<th width="5%"><span>客户姓名</span></th>
|
||||
<th width="5%"><span>客户电话</span></th>
|
||||
<th width="8%"><span>线索来源</span></th>
|
||||
<th width="8%"><span>状态</span></th>
|
||||
<th width="4%"><span>跟进人</span></th>
|
||||
<th width="7%"><span>创建时间</span></th>
|
||||
<th width="7%"><span>最后报名时间</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<? if ($lists) {
|
||||
foreach ($lists as $v) { ?>
|
||||
<tr>
|
||||
<td><input type="checkbox" name="ids[]" class="order-ids" value="<?= $v['id'] ?>"/></td>
|
||||
<td><?= $v['void'] ?></td>
|
||||
<td><input type="checkbox" name="ids[]" class="order-ids"
|
||||
value="<?= $v['id'] ?>"/></td>
|
||||
<td><?= $v['name'] ?></td>
|
||||
<td><?= $v['mobile'] ?></td>
|
||||
<td><?= $v['poi'] ?></td>
|
||||
<td><?= $v['status_name'] ?></td>
|
||||
<td><?= $v['mobile_sub'] ?></td>
|
||||
<td><?= $v['cf_title'] ?></td>
|
||||
<td><? if ($v['cf_id'] == 36 || $v['cf_id'] == 37) { ?>
|
||||
<input type="hidden" class="clues-id-<?= $v['id'] ?>" name="id" value="<?= $v['id'] ?>"
|
||||
checked>
|
||||
<select data-update-group="" data-list-target=".clues-id-<?= $v['id'] ?>"
|
||||
data-action="/receiver/clues/batch" data-field=""
|
||||
style="height: 26px;width: 100px;">
|
||||
<? foreach ($maintainAry as $key => $val) { ?>
|
||||
<option value="<?= $key ?>" <?= $key == $v['status'] . '-' . $v['status2'] ? 'selected' : '' ?>><?= $val ?></option>
|
||||
<? } ?>
|
||||
</select>
|
||||
<? } else { ?>
|
||||
<?= $v['status_name'] ?>
|
||||
<? } ?>
|
||||
</td>
|
||||
<td><?= $v['admin_name'] ?></td>
|
||||
<td><?= date('Y-m-d H:i:s', $v['c_time']) ?></td>
|
||||
<td><a data-open="/receiver/clues/get?id=<?= $v['id'] ?>&type=clues" href="javascript:void(0);" class="am-btn am-btn-primary am-btn-xs">详情</a>
|
||||
<a data-open="/receiver/clues/get?id=<?= $v['id'] ?>&type=clues" href="javascript:void(0);" class="am-btn am-btn-primary am-btn-xs">分配</a>
|
||||
<td><?= $v['en_time'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="8">
|
||||
<div class="row">
|
||||
<div class="col-md-4 align-l">
|
||||
</div>
|
||||
<div class="col-md-8 align-r" style="padding-right: 30px;">
|
||||
<a data-modal="/common/bind_mobile?id=<?= $v['id'] ?>&type=clues"
|
||||
href="javascript:void(0);" class="am-btn am-btn-primary am-btn-xs"
|
||||
data-title="获取手机号">拨打电话</a>
|
||||
<a data-modal="/common/show_sms?id=<?= $v['id'] ?>&type=clues"
|
||||
href="javascript:void(0);" class="am-btn am-btn-primary am-btn-xs"
|
||||
data-title="发送短信">短信</a>
|
||||
<a data-open="/receiver/clues/get?id=<?= $v['id'] ?>&type=clues"
|
||||
href="javascript:void(0);" class="am-btn am-btn-primary am-btn-xs">查看详情</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<? }
|
||||
@@ -233,6 +290,24 @@
|
||||
vm.cityAry = response.data;
|
||||
}
|
||||
});
|
||||
if (vm.city_id > 0) {
|
||||
$.get('common/area', {id: vm.city_id, key: 'county', type: 1}, function (response) {
|
||||
if (response.code == 1) {
|
||||
vm.countyAry = response.data;
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
getCfroms: function () {
|
||||
var that = this
|
||||
$.get('/receiver/CluesCfrom/json_get', function (result) {
|
||||
that.cfroms = result.data.data
|
||||
});
|
||||
if (that.cfrom_id > 0) {
|
||||
$.get('/receiver/CluesCfrom/json_get', {'id': that.cfrom_id}, function (result) {
|
||||
that.cfroms2 = result.data.data
|
||||
});
|
||||
}
|
||||
},
|
||||
reset: function () {
|
||||
var that = this;
|
||||
|
||||
@@ -58,17 +58,16 @@
|
||||
<td class="table-td"><span class="mr5">加入时间:</span>{{info.c_time}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table-td" v-if="info.c_brand"><span class="mr5">品牌归属:</span>{{info.c_brand}}</td>
|
||||
<td class="table-td"><span class="mr5">客户来源:</span>{{info.of_title}}</td>
|
||||
<td class="table-td"><span class="mr5">微信好友:</span>{{info.wx_name}}</td>
|
||||
<td class="table-td"><span class="mr5">客户等级:</span>{{info.level}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table-td"><span class="mr5">微信好友:</span>{{info.wx_name}}</td>
|
||||
<td class="table-td"><span class="mr5">客户位置:</span>{{info.city_county}}</td>
|
||||
<td class="table-td" v-if="info.to_send"><span class="mr5">是否改派:</span>{{info.to_send}}</td>
|
||||
<!--td class="table-td" v-if="info.cf_user"><span class="mr5">分销来源:</span>{{info.cf_user}}</td>
|
||||
<td class="table-td" v-if="info.cf_user"><span class="mr5">分销来源:</span>{{info.cf_user}}</td>
|
||||
<td class="table-td" v-if="!info.to_send && !info.cf_user" colspan="2"></td>
|
||||
<td class="table-td" v-else-if="!info.to_send || !info.cf_user"></td-->
|
||||
<td class="table-td" v-else-if="!info.to_send || !info.cf_user"></td>
|
||||
</tr>
|
||||
<!-- <tr v-if="info.to_send || info.cf_user">-->
|
||||
<!-- <td class="table-td" v-if="info.to_send"><span class="mr5">是否改派:</span>{{info.to_send}}</td>-->
|
||||
|
||||
@@ -28,11 +28,11 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group fl">
|
||||
<div class="am-para-inline w160">
|
||||
<div class="am-para-inline w220">
|
||||
<input id="title" name="title" type="text" v-model="params.title"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group fl " style="width:1920px">
|
||||
<div class="am-form-group fl">
|
||||
<label class="am-para-label w80">客户等级:</label>
|
||||
<div class="am-para-inline w100">
|
||||
<select name="level" v-model="params.level">
|
||||
@@ -40,21 +40,36 @@
|
||||
<option :value="v" v-for="(v,i) in show_info.levelAry">{{v}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="am-para-label w80">企微:</label>
|
||||
</div>
|
||||
<div class="am-form-group fl">
|
||||
<label class="am-para-label w80">渠道经理:</label>
|
||||
<div class="am-para-inline w100">
|
||||
<select name="qdjl_id" v-model="params.qdjl_id">
|
||||
<option value=''>请选择</option>
|
||||
<option :value="v.id" v-for="(v,i) in qdjl_lists">{{v.name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group fl">
|
||||
<label class="am-para-label w80">企微好友:</label>
|
||||
<div class="am-para-inline w100">
|
||||
<select name="wxqy" v-model="params.wxqy">
|
||||
<option value=''>请选择</option>
|
||||
<option :value="i" v-for="(v,i) in show_info.wxqyAry">{{v}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="am-para-label w80">个微:</label>
|
||||
</div>
|
||||
<div class="am-form-group fl">
|
||||
<label class="am-para-label w80">加个微:</label>
|
||||
<div class="am-para-inline w100">
|
||||
<select name="wxgr" v-model="params.wxgr">
|
||||
<option value=''>请选择</option>
|
||||
<option :value="i" v-for="(v,i) in show_info.wxgrAry">{{v}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="am-para-label w100">是否改派:</label>
|
||||
</div>
|
||||
<div class="am-form-group fl">
|
||||
<label class="am-para-label w80">是否改派:</label>
|
||||
<div class="am-para-inline w100">
|
||||
<select name="cs_biz_id" v-model="params.cs_biz_id">
|
||||
<option value=''>请选择</option>
|
||||
@@ -62,15 +77,8 @@
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group fl" style="width:1920px">
|
||||
<label class="am-para-label w80">品牌归属:</label>
|
||||
<div class="am-para-inline w100">
|
||||
<select name="c_brand" v-model="params.c_brand">
|
||||
<option value=''>请选择</option>
|
||||
<option :value="i" v-for="(v,i) in show_info.cbrandAry">{{v}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group" style="margin-bottom: 0px;"></div>
|
||||
<div class="am-form-group fl">
|
||||
<label class="am-para-label w80">客户来源:</label>
|
||||
<div class="am-form-group am-para-inline w100">
|
||||
<select name="of_id" v-model="params.of_id">
|
||||
@@ -84,7 +92,7 @@
|
||||
<option :value="i" v-for="(v,i) in of2Ary">{{v}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="am-para-label w100">客户位置:</label>
|
||||
<label class="am-para-label w80">客户位置:</label>
|
||||
<div class="am-para-inline w100">
|
||||
<select title="城市" name="city_id" v-model="params.city_id">
|
||||
<option value="">选择城市</option>
|
||||
@@ -98,15 +106,16 @@
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group fl" style="width:1920px">
|
||||
<label class="am-para-label w80">门店类型:</label>
|
||||
<div class="am-form-group fl">
|
||||
<label class="am-para-label w90">门店类型:</label>
|
||||
<div class="am-para-inline w100">
|
||||
<select name="biz_type" v-model="params.biz_type">
|
||||
<option value="">请选择</option>
|
||||
<option :value="v.id" v-for="(v,i) in bizTypeAry">{{v.name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group fl">
|
||||
<label class="am-para-label w80">销售员:</label>
|
||||
<div class="am-para-inline w100">
|
||||
<select title="城市" name="city_id_admin" v-model="params.city_id_admin">
|
||||
@@ -136,13 +145,6 @@
|
||||
</template>
|
||||
</select>
|
||||
</div>
|
||||
<label class="am-para-label w100">渠道经理:</label>
|
||||
<div class="am-para-inline w100">
|
||||
<select name="qdjl_id" v-model="params.qdjl_id">
|
||||
<option value=''>请选择</option>
|
||||
<option :value="v.id" v-for="(v,i) in qdjl_lists">{{v.name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<? foreach ($searchTimeAry as $key => $value) { ?>
|
||||
<div id="show-<?= $key ?>" style="display:<?= $params[$key] ? 'block' : 'none' ?>">
|
||||
|
||||
@@ -31,15 +31,4 @@ $config = array(
|
||||
),
|
||||
'model' => array('user_model' => 'app/licheb/app_licheb_users_model')
|
||||
),
|
||||
'neta' => array(
|
||||
'id' => 3,
|
||||
'app_id' => 3,
|
||||
'name' => '哪铁圈',
|
||||
'sign_key' => 'be0fc63bf56a462f16a623501c156bb5',
|
||||
'wx' => array(
|
||||
'appid' => '',
|
||||
'secret' => '',
|
||||
),
|
||||
//'model' => array('user_model' => 'app/neta/app_licheb_users_model')
|
||||
),
|
||||
);
|
||||
|
||||
@@ -17,7 +17,6 @@ class Hd extends CI_Controller {
|
||||
private static $apps = array(
|
||||
'e49d182c6e6dab64' => 'liche',
|
||||
'1c156bb57cd6984a' => 'licheb',
|
||||
'fba9a12d2cd8599a' => 'neta',
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -462,7 +461,7 @@ class Hd extends CI_Controller {
|
||||
private function print_return($data = array(), $ifgzip = false){
|
||||
|
||||
if(!isset($data['code'])){
|
||||
$msg = $data['msg'] ? $data['msg'] : '执行成功';
|
||||
$msg = $data['msg'] ? $data['msg'] : '';
|
||||
$data = array('code' => 200, 'data' => $data, 'msg' => $msg);
|
||||
}
|
||||
|
||||
@@ -612,6 +611,7 @@ class Hd extends CI_Controller {
|
||||
$buff = "";
|
||||
foreach($param as $k => $v){
|
||||
if(!is_array($v) && strlen($v) > 0){
|
||||
// $buff .= $k . "=" . $v . "&";
|
||||
$buff .= $k . "=" . ($v) . "&";
|
||||
}
|
||||
}
|
||||
@@ -621,12 +621,14 @@ class Hd extends CI_Controller {
|
||||
//MD5加密并转大写
|
||||
$string = strtoupper(md5($buff));
|
||||
|
||||
//var_dump($string);
|
||||
//var_dump($buff);
|
||||
// var_dump($string);
|
||||
// var_dump($buff);
|
||||
if($sign == $string){
|
||||
return true;
|
||||
}
|
||||
|
||||
// return true;
|
||||
|
||||
debug_log("[fail]". __FUNCTION__ . ": sign:{$sign}, check:{$string}, buff:{$buff}", $this->log_file);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1,432 +0,0 @@
|
||||
<?php
|
||||
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
ini_set('display_errors','On');
|
||||
error_reporting(E_ERROR);
|
||||
|
||||
require_once(APPPATH . "controllers/dms/CurlAutoLogin.php");
|
||||
|
||||
class Spider extends HD_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->model('dms/dms_clues_model','dms_clues_model');
|
||||
$this->load->model('receiver/receiver_customers_model','receiver_customers_model');
|
||||
$this->log_dir = 'dms';
|
||||
$this->file_name = 'clues.txt';
|
||||
}
|
||||
|
||||
public function get_clues()
|
||||
{
|
||||
//登录态缓存文件
|
||||
$loginResultFile = APPPATH . "cache/loginRes.txt";
|
||||
$autoLogin = new CurlAutoLogin();
|
||||
|
||||
//已有登录态,则直接读取登录态,避免多次重复登录
|
||||
if (!file_exists($loginResultFile)) {
|
||||
$resArr = $this->doLogin($autoLogin, $loginResultFile);
|
||||
} else {
|
||||
debug_log("有登录态,自动登录...\n", $this->file_name, $this->log_dir);
|
||||
$resArr = json_decode(file_get_contents($loginResultFile), true);
|
||||
}
|
||||
|
||||
if (empty($resArr['username'])) {
|
||||
debug_log("未登录成功...\n", $this->file_name, $this->log_dir);
|
||||
exit("未登录成功\n");
|
||||
}
|
||||
|
||||
$token = $resArr['token'];
|
||||
$pageIndex = 1;
|
||||
$pageSize = 100;
|
||||
$dollor = '$';
|
||||
|
||||
$createdDateStart = date("Y-m-d H:i:00", strtotime("-15 minute"));
|
||||
$createdDateEnd = date("Y-m-d H:i:00", strtotime("now"));
|
||||
|
||||
echo "开始时间: ".$createdDateStart." ";
|
||||
echo "截止时间: ".$createdDateEnd." \n";
|
||||
|
||||
debug_log("开始时间: ".$createdDateStart." ", $this->file_name, $this->log_dir);
|
||||
debug_log("截止时间: ".$createdDateEnd." ", $this->file_name, $this->log_dir);
|
||||
|
||||
$curl = <<<CURL
|
||||
curl 'http://dms.dna-nev.com.cn/ly/mp/busicen/csc/graphql.do?v=clueServerQueryFromDlr' \
|
||||
-H 'Accept: application/json, text/plain, */*' \
|
||||
-H 'Accept-Language: zh-CN,zh;q=0.9' \
|
||||
-H 'Authorization: $token' \
|
||||
-H 'Connection: keep-alive' \
|
||||
-H 'Content-Type: application/json;charset=UTF-8' \
|
||||
-H 'Cookie: pwRKey=1; token=$token; wadapp.current.curlang=zh-CN; wadapp.current.token=$token; wadapp.current.user{$dollor}dms.dna-nev.com.cn={"username":"FJ0011董凯杰","remember":false,"randomCode":"8333185700157948","token":"$token","usertype":"2","{$dollor}data":{"result":"1","msg":"Success","token":"$token","username":"FJ0011董凯杰","userRealName":null,"userid":"673d16368b50446681537bd955a09d03","usertype":"2","empname":"董凯杰","errnums":null,"timeout":"3600","expires":10,"initstatus":"1","clientid":null,"vcode":null,"wxbind":"1","errorCode":"Success","message":"Success","loginPage":{"type":"None"}}}; orgInfo={"BRAND_CODE":"1","DLR_CODE":"FJ0011","DLR_ID":"86df6b1f8dd44b44a79723afd536b152","DLR_NAME":"福州狸车","DLR_ORG_TYPE":"1","DLR_STATUS":"1","GROUP_CODE":"1","GROUP_ID":"1","OEM_CODE":"1","OEM_ID":"1","ORG_CODE":"01FJ0011","EMP_ID":"d00f13699d514fb09c8029f59b825a2d","ORG_ID":"90436c9dbef845f2a7c0976132831ee6","ORG_NAME":"整车销售部","ORG_TYPE":"1","PARENT_DLR_CODE":"FJ0011","PARENT_DLR_ID":"86df6b1f8dd44b44a79723afd536b152","PARENT_DLR_NAME":"福州狸车","POS_CODE":"COC_XS_CSR_HEADER,COC_XS_CSR,SE-DLR-003,VE0003,SE-004,VE0001","POS_ID":"0011e894a6fd11ea8bfe005056850f88,00173ad3a6fd11ea8bfe005056850f88,003a9a92a6fd11ea8bfe005056850f88,fffbee61a6fc11ea8bfe005056850f88,293af90463a64f7c820472623a222716,ffca8da7a6fc11ea8bfe005056850f88","SOLUTION_ID":"经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位","COMPANY_ID":"9b89df77b07b4258b5d83c8b8f6bbc79","UPDATEPWDTIME":"2022-9-22","empName":"董凯杰","userId":"673d16368b50446681537bd955a09d03","userName":"FJ0011董凯杰","usertype":"2"}' \
|
||||
-H 'Origin: http://dms.dna-nev.com.cn' \
|
||||
-H 'Referer: http://dms.dna-nev.com.cn/' \
|
||||
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36' \
|
||||
--data-raw '{"query":"query({$dollor}pageIndex: Int, {$dollor}pageSize: Int, {$dollor}dataInfo: InputClueServer){clueServerQueryFromDlr(dataInfo: {$dollor}dataInfo, pageIndex: {$dollor}pageIndex, pageSize: {$dollor}pageSize){msg pageindex pages records result rows{serverOrder custId custName contactTel carBrandName carSeriesCn clueLevelCode nextDealUserName createdName cantactWayName infoChanMName infoChanDName assignStatusName statusName crruNodeName createdDate remainDataDate inteSeriesCode}}}","variables":{"pageSize":$pageSize,"pageIndex":$pageIndex,"dataInfo":{"custName":"","contactTel":"","inteSeriesId":"","clueLevelCode":"","createdDateStart":"$createdDateStart","createdDateEnd":"$createdDateEnd","orderDateStart":"","orderDateEnd":"","status":"","csr":"","serverOrder":"","cantactWayCode":"CS001","infoChanMCode":"","carBrandCode":"","assignStatus":"","crruNode":"","createdName":"","dlrCode":"","handleCode":"1","assignStatusName":"","statusArray":["10","20","21","30","31","40","50"],"nextDealUserId":"","nextDealUserName":"","infoChanDName":"","isQueryHistory":"0"}}}' \
|
||||
--compressed \
|
||||
--insecure
|
||||
CURL;
|
||||
$content = $autoLogin->execCurl($curl);
|
||||
$resArr = json_decode($content, true);
|
||||
|
||||
if (!$resArr['result']) {
|
||||
$this->doLogin($autoLogin, $loginResultFile);
|
||||
}
|
||||
|
||||
//print_r($resArr);
|
||||
|
||||
if(!$resArr['data']['clueServerQueryFromDlr']['rows']){
|
||||
debug_log("无新增数据\n", $this->file_name, $this->log_dir);
|
||||
exit;
|
||||
}else{
|
||||
debug_log("共 ".$resArr['data']['clueServerQueryFromDlr']['records']." 条新增数据\n", $this->file_name, $this->log_dir);
|
||||
}
|
||||
|
||||
foreach ($resArr['data']['clueServerQueryFromDlr']['rows'] as $k => $v) {
|
||||
|
||||
//原始数据
|
||||
$add = array(
|
||||
'o_id' => $v['serverOrder'],
|
||||
'c_id' => $v['custId'],
|
||||
'name' => $v['custName'],
|
||||
'mobile' => $v['contactTel'],
|
||||
'cfrom1' => $v['infoChanMName'],
|
||||
'cfrom2' => $v['infoChanDName'],
|
||||
'jsondata' => json_encode($v, JSON_UNESCAPED_UNICODE),
|
||||
'log_date' => date('Y-m-d'),
|
||||
'c_time' => strtotime($v['createdDate'])
|
||||
);
|
||||
|
||||
//福州狸车
|
||||
if(strpos($v['serverOrder'], 'FJ0011') && $v['statusName'] == '待分配'){
|
||||
//插入狸车宝
|
||||
$this->pushLcb($add);
|
||||
|
||||
//抢单
|
||||
$this->takeOrder($v['serverOrder'], $autoLogin);
|
||||
|
||||
//跟进
|
||||
sleep(1);
|
||||
$cust = $this->customer($v['serverOrder'], $autoLogin);
|
||||
if($cust['data']['clueServerQueryFromDlr']['rows']){
|
||||
$this->follow1($cust['data']['clueServerQueryFromDlr']['rows'][0], $autoLogin);
|
||||
}
|
||||
|
||||
//二次跟进
|
||||
sleep(1);
|
||||
$cust = $this->customer($v['serverOrder'], $autoLogin);
|
||||
if($cust['data']['clueServerQueryFromDlr']['rows']){
|
||||
$this->follow2($cust['data']['clueServerQueryFromDlr']['rows'][0], $autoLogin);
|
||||
}
|
||||
}
|
||||
|
||||
//$this->dms_clues_model->add($add);
|
||||
}
|
||||
}
|
||||
|
||||
private function doLogin($autoLogin, $loginResultFile)
|
||||
{
|
||||
echo "无登录态,模拟登录...\n";
|
||||
debug_log("无登录态,模拟登录...\n", $this->file_name, $this->log_dir);
|
||||
$curl = <<<CURL
|
||||
curl 'http://dms.dna-nev.com.cn/mp/login/validlogin.do' \
|
||||
-H 'Accept: application/json, text/plain, */*' \
|
||||
-H 'Accept-Language: zh-CN,zh;q=0.9' \
|
||||
-H 'Connection: keep-alive' \
|
||||
-H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \
|
||||
-H 'Cookie: pwRKey=1' \
|
||||
-H 'Origin: http://dms.dna-nev.com.cn' \
|
||||
-H 'Referer: http://dms.dna-nev.com.cn/' \
|
||||
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36' \
|
||||
--data-raw 'reuestParas=vrdCxWqmC6nNDXrxEyNCX5sThLElae5I%2FznYqpsieYlTddUJ3hGzCvtSaYuzgDIiFAA3q0F7oHSYjeXfwRppg6lnsHDViByHQ4sJwSXhMWyKZNQ7zrgAZ%2FzR9jd5XQEQYmdcXnNgzjRxZIUaYmOwkAPFBuBOodE58zLpEvWsTFqLQVfQhVUZzE%2FN941hLaRaAHBbSqn21c6TpJyXHprF766eukiB4b5urdLilNsNQimLVcEfW6xQS9dSzAcMQZIR7dWEWQyWGWqPNnfD5yp%2Btw%3D%3D' \
|
||||
--compressed \
|
||||
--insecure
|
||||
CURL;
|
||||
|
||||
$content = $autoLogin->execCurl($curl);
|
||||
$resArr = json_decode($content, true);
|
||||
file_put_contents($loginResultFile, $content); //存储登录结果
|
||||
|
||||
return $resArr;
|
||||
}
|
||||
|
||||
private function takeOrder($serverOrder, $autoLogin)
|
||||
{
|
||||
//登录态缓存文件
|
||||
$loginResultFile = APPPATH . "cache/loginRes.txt";
|
||||
$resArr = json_decode(file_get_contents($loginResultFile), true);
|
||||
$token = $resArr['token'];
|
||||
$dollor = '$';
|
||||
|
||||
$curl = <<<CURL
|
||||
curl 'http://dms.dna-nev.com.cn/ly/mp/busicen/csc/graphql.do?v=clueServerMutationGetBill' \
|
||||
-H 'Accept: application/json, text/plain, */*' \
|
||||
-H 'Accept-Language: zh-CN,zh;q=0.9' \
|
||||
-H 'Authorization: $token' \
|
||||
-H 'Content-Type: application/json;charset=UTF-8' \
|
||||
-H 'Cookie: pwRKey=1; token=$token; wadapp.current.curlang=zh-CN; wadapp.current.token=$token; wadapp.current.user{$dollor}dms.dna-nev.com.cn={"username":"FJ0011董凯杰","remember":false,"randomCode":"46494479577814074","token":"$token","usertype":"2","{$dollor}data":{"result":"1","msg":"Success","token":"$token","username":"FJ0011董凯杰","userRealName":null,"userid":"673d16368b50446681537bd955a09d03","usertype":"2","empname":"董凯杰","errnums":null,"timeout":"3600","expires":10,"initstatus":"1","clientid":null,"vcode":null,"wxbind":"1","errorCode":"Success","message":"Success","loginPage":{"type":"None"}}}; orgInfo={"BRAND_CODE":"1","DLR_CODE":"FJ0011","DLR_ID":"86df6b1f8dd44b44a79723afd536b152","DLR_NAME":"福州狸车","DLR_ORG_TYPE":"1","DLR_STATUS":"1","GROUP_CODE":"1","GROUP_ID":"1","OEM_CODE":"1","OEM_ID":"1","ORG_CODE":"01FJ0011","EMP_ID":"d00f13699d514fb09c8029f59b825a2d","ORG_ID":"90436c9dbef845f2a7c0976132831ee6","ORG_NAME":"整车销售部","ORG_TYPE":"1","PARENT_DLR_CODE":"FJ0011","PARENT_DLR_ID":"86df6b1f8dd44b44a79723afd536b152","PARENT_DLR_NAME":"福州狸车","POS_CODE":"COC_XS_CSR_HEADER,COC_XS_CSR,SE-DLR-003,VE0003,SE-004,VE0001","POS_ID":"0011e894a6fd11ea8bfe005056850f88,00173ad3a6fd11ea8bfe005056850f88,003a9a92a6fd11ea8bfe005056850f88,fffbee61a6fc11ea8bfe005056850f88,293af90463a64f7c820472623a222716,ffca8da7a6fc11ea8bfe005056850f88","SOLUTION_ID":"经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位","COMPANY_ID":"9b89df77b07b4258b5d83c8b8f6bbc79","UPDATEPWDTIME":"2022-9-22","empName":"董凯杰","userId":"673d16368b50446681537bd955a09d03","userName":"FJ0011董凯杰","usertype":"2"}' \
|
||||
-H 'Origin: http://dms.dna-nev.com.cn' \
|
||||
-H 'Proxy-Connection: keep-alive' \
|
||||
-H 'Referer: http://dms.dna-nev.com.cn/' \
|
||||
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36' \
|
||||
--data-raw '{"query":"mutation({$dollor}dataInfo: InputClueServer){clueServerMutationGetBill(dataInfo: {$dollor}dataInfo){msg result}}","variables":{"dataInfo":{"serverOrder":"$serverOrder","handleCode":"0"}}}' \
|
||||
--compressed \
|
||||
--insecure
|
||||
CURL;
|
||||
$content = $autoLogin->execCurl($curl);
|
||||
$resArr = json_decode($content, true);
|
||||
|
||||
print_r($resArr);
|
||||
}
|
||||
|
||||
public function follow1($info, $autoLogin)
|
||||
{
|
||||
//登录态缓存文件
|
||||
$loginResultFile = APPPATH . "cache/loginRes.txt";
|
||||
$resArr = json_decode(file_get_contents($loginResultFile), true);
|
||||
$token = $resArr['token'];
|
||||
$dollor = '$';
|
||||
$nextCallbackDate = date('Y-m-d 00:00:00', strtotime('+3 days'));
|
||||
|
||||
$dataInfo = '{"dataInfo":{"custId":"'.$info['custId'].'","custName":"'.$info['custName'].'","contactTel":"'.$info['contactTel'].'","gender":"0","backupTel":null,"serverOrder":"'.$info['serverOrder'].'","cantactWayCode":"'.$info['cantactWayCode'].'","infoChanMCode":"'.$info['infoChanMCode'].'","infoChanDCode":"'.$info['infoChanDCode'].'","clueLevelCode":"H","crruLevel":null,"intentPriceCode":null,"carBrandCode":"1","inteSeriesId":"cf38e6909c1a41a29871868c79c2eccc","inteSeriesCode":"纳米BOX","inteTypeId":"1d5029d0a5df4be5a063d08256722f47","inteTypeCode":"B420EV0014C001","inteTypeName":"标准型/201km(2022-001)","planReviewDate":"'.$nextCallbackDate.'","color":"","innerColor":"","optionalPackId":"","optionalPackCn":"","remainDataDate":"'.$info['remainDataDate'].'","clueDesc":"继续跟进","remark":null,"touchStatus":"15","buyFocus":null,"custSource":null,"originalCustId":null,"originalCustName":null,"isFirstCallback":"1","recommendPersonRelation":null,"carLicense":null,"introducerRelationship":null,"introducer":null,"introduceTel":null,"introduceGender":null,"compCarBrandCode":null,"compCarBrandName":null,"compCarSeriesCode":null,"compCarSeriesName":null,"reviewCars":[{"seriesCode":"纳米BOX","seriesName":"纳米BOX","modelId":"1d5029d0a5df4be5a063d08256722f47","modelCode":"B420EV0014C001","modelName":"标准型/201km(2022-001)","colorId":"","colorName":null,"inColorId":"","inColorName":null,"optionId":"","optionName":"","isFirstChoice":"1","isCompVehicle":"0"}],"reviewDesc":"继续跟进","nextCallbackDate":"'.$nextCallbackDate.'"}}';
|
||||
|
||||
$curl = <<<CURL
|
||||
curl 'http://dms.dna-nev.com.cn/ly/mp/busicen/csc/graphql.do?v=clueServerMutationReview' \
|
||||
-H 'Accept: application/json, text/plain, */*' \
|
||||
-H 'Accept-Language: zh-CN,zh;q=0.9' \
|
||||
-H 'Authorization: $token' \
|
||||
-H 'Content-Type: application/json;charset=UTF-8' \
|
||||
-H 'Cookie: pwRKey=1; token=$token; wadapp.current.curlang=zh-CN; wadapp.current.token=$token; wadapp.current.user{$dollor}dms.dna-nev.com.cn={"username":"FJ0011董凯杰","remember":false,"randomCode":"46494479577814074","token":"$token","usertype":"2","{$dollor}data":{"result":"1","msg":"Success","token":"$token","username":"FJ0011董凯杰","userRealName":null,"userid":"673d16368b50446681537bd955a09d03","usertype":"2","empname":"董凯杰","errnums":null,"timeout":"3600","expires":10,"initstatus":"1","clientid":null,"vcode":null,"wxbind":"1","errorCode":"Success","message":"Success","loginPage":{"type":"None"}}}; orgInfo={"BRAND_CODE":"1","DLR_CODE":"FJ0011","DLR_ID":"86df6b1f8dd44b44a79723afd536b152","DLR_NAME":"福州狸车","DLR_ORG_TYPE":"1","DLR_STATUS":"1","GROUP_CODE":"1","GROUP_ID":"1","OEM_CODE":"1","OEM_ID":"1","ORG_CODE":"01FJ0011","EMP_ID":"d00f13699d514fb09c8029f59b825a2d","ORG_ID":"90436c9dbef845f2a7c0976132831ee6","ORG_NAME":"整车销售部","ORG_TYPE":"1","PARENT_DLR_CODE":"FJ0011","PARENT_DLR_ID":"86df6b1f8dd44b44a79723afd536b152","PARENT_DLR_NAME":"福州狸车","POS_CODE":"COC_XS_CSR_HEADER,COC_XS_CSR,SE-DLR-003,VE0003,SE-004,VE0001","POS_ID":"0011e894a6fd11ea8bfe005056850f88,00173ad3a6fd11ea8bfe005056850f88,003a9a92a6fd11ea8bfe005056850f88,fffbee61a6fc11ea8bfe005056850f88,293af90463a64f7c820472623a222716,ffca8da7a6fc11ea8bfe005056850f88","SOLUTION_ID":"经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位","COMPANY_ID":"9b89df77b07b4258b5d83c8b8f6bbc79","UPDATEPWDTIME":"2022-9-22","empName":"董凯杰","userId":"673d16368b50446681537bd955a09d03","userName":"FJ0011董凯杰","usertype":"2"}' \
|
||||
-H 'Origin: http://dms.dna-nev.com.cn' \
|
||||
-H 'Proxy-Connection: keep-alive' \
|
||||
-H 'Referer: http://dms.dna-nev.com.cn/' \
|
||||
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36' \
|
||||
--data-raw '{"query":"mutation({$dollor}dataInfo: InputClueServer){clueServerMutationReview(dataInfo: {$dollor}dataInfo){msg result}}","variables":$dataInfo}' \
|
||||
--compressed \
|
||||
--insecure
|
||||
CURL;
|
||||
$content = $autoLogin->execCurl($curl);
|
||||
$resArr = json_decode($content, true);
|
||||
|
||||
echo $curl;
|
||||
print_r($resArr);
|
||||
}
|
||||
|
||||
public function follow2($info, $autoLogin){
|
||||
//登录态缓存文件
|
||||
$loginResultFile = APPPATH . "cache/loginRes.txt";
|
||||
$resArr = json_decode(file_get_contents($loginResultFile), true);
|
||||
$token = $resArr['token'];
|
||||
$dollor = '$';
|
||||
$nextCallbackDate = date('Y-m-d 00:00:00', strtotime('+15 days'));
|
||||
|
||||
$dataInfo = '{"dataInfo": {
|
||||
"custId": "'.$info['custId'].'",
|
||||
"custName": "'.$info['custName'].'",
|
||||
"contactTel": "'.$info['contactTel'].'",
|
||||
"gender": "0",
|
||||
"backupTel": null,
|
||||
"serverOrder": "'.$info['serverOrder'].'",
|
||||
"cantactWayCode": "'.$info['cantactWayCode'].'",
|
||||
"infoChanMCode": "'.$info['infoChanMCode'].'",
|
||||
"infoChanDCode": "'.$info['infoChanDCode'].'",
|
||||
"clueLevelCode": "B",
|
||||
"crruLevel": "H",
|
||||
"intentPriceCode": null,
|
||||
"carBrandCode": "1",
|
||||
"inteSeriesId": "cf38e6909c1a41a29871868c79c2eccc",
|
||||
"inteSeriesCode": "纳米BOX",
|
||||
"inteTypeId": "1d5029d0a5df4be5a063d08256722f47",
|
||||
"inteTypeCode": "B420EV0014C001",
|
||||
"inteTypeName": "标准型/201km(2022-001)",
|
||||
"planReviewDate": "'.$nextCallbackDate.'",
|
||||
"color": "",
|
||||
"innerColor": "",
|
||||
"optionalPackId": "",
|
||||
"optionalPackCn": "",
|
||||
"remainDataDate": "'.date("Y-m-d H:i:00").'",
|
||||
"clueDesc": "继续跟进",
|
||||
"remark": null,
|
||||
"touchStatus": "15",
|
||||
"buyFocus": null,
|
||||
"custSource": null,
|
||||
"originalCustId": null,
|
||||
"originalCustName": null,
|
||||
"isFirstCallback": "0",
|
||||
"recommendPersonRelation": null,
|
||||
"carLicense": null,
|
||||
"introducerRelationship": null,
|
||||
"introducer": null,
|
||||
"introduceTel": null,
|
||||
"introduceGender": null,
|
||||
"compCarBrandCode": null,
|
||||
"compCarBrandName": null,
|
||||
"compCarSeriesCode": null,
|
||||
"compCarSeriesName": null,
|
||||
"reviewCars": [{
|
||||
"seriesCode": "纳米BOX",
|
||||
"seriesName": "纳米BOX",
|
||||
"modelId": "1d5029d0a5df4be5a063d08256722f47",
|
||||
"modelCode": "B420EV0014C001",
|
||||
"modelName": "标准型/201km(2022-001)",
|
||||
"colorId": "",
|
||||
"colorName": null,
|
||||
"inColorId": "",
|
||||
"inColorName": null,
|
||||
"optionId": "",
|
||||
"optionName": "",
|
||||
"isFirstChoice": "1",
|
||||
"isCompVehicle": "0"
|
||||
}],"reviewDesc":"继续跟进","nextCallbackDate":"'.$nextCallbackDate.'"}}';
|
||||
|
||||
$curl = <<<CURL
|
||||
curl 'http://dms.dna-nev.com.cn/ly/mp/busicen/csc/graphql.do?v=clueServerMutationReview' \
|
||||
-H 'Accept: application/json, text/plain, */*' \
|
||||
-H 'Accept-Language: zh-CN,zh;q=0.9' \
|
||||
-H 'Authorization: $token' \
|
||||
-H 'Connection: keep-alive' \
|
||||
-H 'Content-Type: application/json;charset=UTF-8' \
|
||||
-H 'Cookie: pwRKey=1; token=$token; wadapp.current.curlang=zh-CN; wadapp.current.token=$token; wadapp.current.user {$dollor}dms.dna-nev.com.cn={"username":"FJ0011董凯杰","remember":false,"randomCode":"10042259079155347","token":"$token","usertype":"2"," {$dollor}data":{"result":"1","msg":"Success","token":"$token","username":"FJ0011董凯杰","userRealName":null,"userid":"673d16368b50446681537bd955a09d03","usertype":"2","empname":"董凯杰","errnums":null,"timeout":"3600","expires":10,"initstatus":"1","clientid":null,"vcode":null,"wxbind":"1","errorCode":"Success","message":"Success","loginPage":{"type":"None"}}}; orgInfo={"BRAND_CODE":"1","DLR_CODE":"FJ0011","DLR_ID":"86df6b1f8dd44b44a79723afd536b152","DLR_NAME":"福州狸车","DLR_ORG_TYPE":"1","DLR_STATUS":"1","GROUP_CODE":"1","GROUP_ID":"1","OEM_CODE":"1","OEM_ID":"1","ORG_CODE":"01FJ0011","EMP_ID":"d00f13699d514fb09c8029f59b825a2d","ORG_ID":"90436c9dbef845f2a7c0976132831ee6","ORG_NAME":"整车销售部","ORG_TYPE":"1","PARENT_DLR_CODE":"FJ0011","PARENT_DLR_ID":"86df6b1f8dd44b44a79723afd536b152","PARENT_DLR_NAME":"福州狸车","POS_CODE":"COC_XS_CSR_HEADER,COC_XS_CSR,SE-DLR-003,VE0003,SE-004,VE0001","POS_ID":"0011e894a6fd11ea8bfe005056850f88,00173ad3a6fd11ea8bfe005056850f88,003a9a92a6fd11ea8bfe005056850f88,fffbee61a6fc11ea8bfe005056850f88,293af90463a64f7c820472623a222716,ffca8da7a6fc11ea8bfe005056850f88","SOLUTION_ID":"经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位","COMPANY_ID":"9b89df77b07b4258b5d83c8b8f6bbc79","UPDATEPWDTIME":"2022-9-22","empName":"董凯杰","userId":"673d16368b50446681537bd955a09d03","userName":"FJ0011董凯杰","usertype":"2"}' \
|
||||
-H 'Origin: http://dms.dna-nev.com.cn' \
|
||||
-H 'Referer: http://dms.dna-nev.com.cn/' \
|
||||
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36' \
|
||||
--data-raw '{"query":"mutation( {$dollor}dataInfo: InputClueServer){clueServerMutationReview(dataInfo: {$dollor}dataInfo){msg result}}","variables":$dataInfo}' \
|
||||
--compressed \
|
||||
--insecure
|
||||
CURL;
|
||||
|
||||
print_r($curl);
|
||||
$content = $autoLogin->execCurl($curl);
|
||||
$resArr = json_decode($content, true);
|
||||
|
||||
print_r($resArr);
|
||||
}
|
||||
|
||||
private function customer($serverOrder, $autoLogin){
|
||||
//登录态缓存文件
|
||||
$loginResultFile = APPPATH . "cache/loginRes.txt";
|
||||
$resArr = json_decode(file_get_contents($loginResultFile), true);
|
||||
$token = $resArr['token'];
|
||||
$dollor = '$';
|
||||
|
||||
$curl = <<<CURL
|
||||
curl 'http://dms.dna-nev.com.cn/ly/mp/busicen/csc/graphql.do?v=clueServerQueryFromDlr' \
|
||||
-H 'Accept: application/json, text/plain, */*' \
|
||||
-H 'Accept-Language: zh-CN,zh;q=0.9' \
|
||||
-H 'Authorization: $token' \
|
||||
-H 'Connection: keep-alive' \
|
||||
-H 'Content-Type: application/json;charset=UTF-8' \
|
||||
-H 'Cookie: pwRKey=1; token=$token; wadapp.current.curlang=zh-CN; wadapp.current.token=$token; wadapp.current.user { {$dollor}dollor}dms.dna-nev.com.cn={"username":"FJ0011董凯杰","remember":false,"randomCode":"6312573416240335","token":"$token","usertype":"2"," {$dollor}data":{"result":"1","msg":"Success","token":"$token","username":"FJ0011董凯杰","userRealName":null,"userid":"673d16368b50446681537bd955a09d03","usertype":"2","empname":"董凯杰","errnums":null,"timeout":"3600","expires":10,"initstatus":"1","clientid":null,"vcode":null,"wxbind":"1","errorCode":"Success","message":"Success","loginPage":{"type":"None"}}}; orgInfo={"BRAND_CODE":"1","DLR_CODE":"FJ0011","DLR_ID":"86df6b1f8dd44b44a79723afd536b152","DLR_NAME":"福州狸车","DLR_ORG_TYPE":"1","DLR_STATUS":"1","GROUP_CODE":"1","GROUP_ID":"1","OEM_CODE":"1","OEM_ID":"1","ORG_CODE":"01FJ0011","EMP_ID":"d00f13699d514fb09c8029f59b825a2d","ORG_ID":"90436c9dbef845f2a7c0976132831ee6","ORG_NAME":"整车销售部","ORG_TYPE":"1","PARENT_DLR_CODE":"FJ0011","PARENT_DLR_ID":"86df6b1f8dd44b44a79723afd536b152","PARENT_DLR_NAME":"福州狸车","POS_CODE":"COC_XS_CSR_HEADER,COC_XS_CSR,SE-DLR-003,VE0003,SE-004,VE0001","POS_ID":"0011e894a6fd11ea8bfe005056850f88,00173ad3a6fd11ea8bfe005056850f88,003a9a92a6fd11ea8bfe005056850f88,fffbee61a6fc11ea8bfe005056850f88,293af90463a64f7c820472623a222716,ffca8da7a6fc11ea8bfe005056850f88","SOLUTION_ID":"经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位","COMPANY_ID":"9b89df77b07b4258b5d83c8b8f6bbc79","UPDATEPWDTIME":"2022-9-22","empName":"董凯杰","userId":"673d16368b50446681537bd955a09d03","userName":"FJ0011董凯杰","usertype":"2"}' \
|
||||
-H 'Origin: http://dms.dna-nev.com.cn' \
|
||||
-H 'Referer: http://dms.dna-nev.com.cn/' \
|
||||
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36' \
|
||||
--data-raw '{"query":"query( {$dollor}pageIndex: Int, {$dollor}pageSize: Int, {$dollor}dataInfo: InputClueServer){clueServerQueryFromDlr(dataInfo: {$dollor}dataInfo, pageIndex: {$dollor}pageIndex, pageSize: {$dollor}pageSize){msg pageindex pages records result rows{custName gender contactTel backupTel touchStatus inteTypeCode color colorName isOrder clueDesc remark remainDataDate nextCallbackDate planReviewDate custSource originalCustId originalCustName recommendPersonRelation carLicense introducerRelationship introducer introduceTel introduceGender nextCallbackDate arrivedDate caEmpId buyingFormSite dlrShortName cantactWayCode cantactWayName infoChanDCode infoChanDName infoChanMCode infoChanMName clueLevelCode intentPriceCode clueLabel clueActive carSeriesCn carBrandCode inteSeriesId inteSeriesCode carConfigId inteTypeId inteTypeName carConfigCn isFirstCallback optionalPackId optionalShortName innerColor innerColorName reviewId serverOrder custId buyFocus compCarSeriesCode compCarSeriesName compCarBrandCode compCarBrandName}}}","variables":{"pageSize":10,"pageIndex":1,"dataInfo":{"handleCode":"1","statusArray":["10","20","21","30","31","40","50"],"serverOrder":"$serverOrder"}}}' \
|
||||
--compressed \
|
||||
--insecure
|
||||
CURL;
|
||||
$content = $autoLogin->execCurl($curl);
|
||||
$resArr = json_decode($content, true);
|
||||
|
||||
print_r($resArr);
|
||||
|
||||
return $resArr;
|
||||
}
|
||||
|
||||
|
||||
private function pushLcb($data){
|
||||
$add = array(
|
||||
'name' => $data['name'],
|
||||
'mobile' => $data['mobile'],
|
||||
'city_id' => 350100,
|
||||
'county_id' => 350102,
|
||||
'of_id' => 7,
|
||||
'biz_id' => 55,
|
||||
'cf_title' => '自有资源',
|
||||
'cf_clues' => '狸车宝',
|
||||
'c_time' => time(),
|
||||
);
|
||||
|
||||
//来源
|
||||
switch ($data['cfrom1']){
|
||||
case '新媒体线索':
|
||||
if($data['cfrom2'] == '直播团购会'){
|
||||
$add['of2_id'] = 77;
|
||||
}else{
|
||||
$add['of2_id'] = 76;
|
||||
}
|
||||
break;
|
||||
case '传播引流':
|
||||
$add['of2_id'] = 74;
|
||||
break;
|
||||
case '垂媒线索':
|
||||
if($data['cfrom2'] == '汽车之家'){
|
||||
$add['of2_id'] = 72;
|
||||
}elseif ($data['cfrom2'] == '易车'){
|
||||
$add['of2_id'] = 73;
|
||||
}else{
|
||||
$add['of2_id'] = 71;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
$add['of2_id'] = 70;
|
||||
break;
|
||||
}
|
||||
|
||||
$rt = $this->receiver_customers_model->add($add);
|
||||
echo $rt;
|
||||
debug_log("新增狸车宝线索...\n", $this->file_name, $this->log_dir);
|
||||
}
|
||||
|
||||
public function mytest()
|
||||
{
|
||||
//登录态缓存文件
|
||||
$loginResultFile = APPPATH . "cache/loginRes.txt";
|
||||
$autoLogin = new CurlAutoLogin();
|
||||
|
||||
// //已有登录态,则直接读取登录态,避免多次重复登录
|
||||
// if (!file_exists($loginResultFile)) {
|
||||
// $resArr = $this->doLogin($autoLogin, $loginResultFile);
|
||||
// } else {
|
||||
// debug_log("有登录态,自动登录...\n", $this->file_name, $this->log_dir);
|
||||
// $resArr = json_decode(file_get_contents($loginResultFile), true);
|
||||
// }
|
||||
//
|
||||
// if (empty($resArr['username'])) {
|
||||
// debug_log("未登录成功...\n", $this->file_name, $this->log_dir);
|
||||
// exit("未登录成功\n");
|
||||
// }
|
||||
|
||||
$resArr = $this->doLogin($autoLogin, $loginResultFile);
|
||||
$token = $resArr['token'];
|
||||
|
||||
$pageIndex = 1;
|
||||
$pageSize = 100;
|
||||
$dollor = '$';
|
||||
|
||||
$createdDateStart = date("Y-m-d 00:00:00", strtotime("-10 minute"));
|
||||
$createdDateEnd = date("Y-m-d H:i:s", strtotime("now"));
|
||||
|
||||
debug_log("开始时间: ".$createdDateStart." ", $this->file_name, $this->log_dir);
|
||||
debug_log("截止时间: ".$createdDateEnd." ", $this->file_name, $this->log_dir);
|
||||
|
||||
$curl = <<<CURL
|
||||
curl 'http://dms.dna-nev.com.cn/ly/mp/busicen/csc/graphql.do?v=clueServerMutationReview' \
|
||||
-H 'Accept: application/json, text/plain, */*' \
|
||||
-H 'Accept-Language: zh-CN,zh;q=0.9' \
|
||||
-H 'Authorization: $token' \
|
||||
-H 'Connection: keep-alive' \
|
||||
-H 'Content-Type: application/json;charset=UTF-8' \
|
||||
-H 'Cookie: pwRKey=1; token=$token; wadapp.current.curlang=zh-CN; wadapp.current.token=$token; wadapp.current.user\$dms.dna-nev.com.cn={"username":"FJ0011董凯杰","remember":false,"randomCode":"14424255643892003","token":"$token","usertype":"2","\$data":{"result":"1","msg":"Success","token":"$token","username":"FJ0011董凯杰","userRealName":null,"userid":"673d16368b50446681537bd955a09d03","usertype":"2","empname":"董凯杰","errnums":null,"timeout":"3600","expires":10,"initstatus":"1","clientid":null,"vcode":null,"wxbind":"1","errorCode":"Success","message":"Success","loginPage":{"type":"None"}}}; orgInfo={"BRAND_CODE":"1","DLR_CODE":"FJ0011","DLR_ID":"86df6b1f8dd44b44a79723afd536b152","DLR_NAME":"福州狸车","DLR_ORG_TYPE":"1","DLR_STATUS":"1","GROUP_CODE":"1","GROUP_ID":"1","OEM_CODE":"1","OEM_ID":"1","ORG_CODE":"01FJ0011","EMP_ID":"d00f13699d514fb09c8029f59b825a2d","ORG_ID":"90436c9dbef845f2a7c0976132831ee6","ORG_NAME":"整车销售部","ORG_TYPE":"1","PARENT_DLR_CODE":"FJ0011","PARENT_DLR_ID":"86df6b1f8dd44b44a79723afd536b152","PARENT_DLR_NAME":"福州狸车","POS_CODE":"COC_XS_CSR_HEADER,COC_XS_CSR,SE-DLR-003,VE0003,SE-004,VE0001","POS_ID":"0011e894a6fd11ea8bfe005056850f88,00173ad3a6fd11ea8bfe005056850f88,003a9a92a6fd11ea8bfe005056850f88,fffbee61a6fc11ea8bfe005056850f88,293af90463a64f7c820472623a222716,ffca8da7a6fc11ea8bfe005056850f88","SOLUTION_ID":"经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位","COMPANY_ID":"9b89df77b07b4258b5d83c8b8f6bbc79","UPDATEPWDTIME":"2022-9-22","empName":"董凯杰","userId":"673d16368b50446681537bd955a09d03","userName":"FJ0011董凯杰","usertype":"2"}' \
|
||||
-H 'Origin: http://dms.dna-nev.com.cn' \
|
||||
-H 'Referer: http://dms.dna-nev.com.cn/' \
|
||||
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36' \
|
||||
--data-raw '{"query":"mutation(\$dataInfo: InputClueServer){clueServerMutationReview(dataInfo: \$dataInfo){msg result}}","variables":{"dataInfo":{"custId":"ca578a170b6648f0b45cc0a5b41b71db","custName":"未命名","contactTel":"18705067353","gender":"0","backupTel":null,"serverOrder":"XSFJ001123082200009","cantactWayCode":"CS001","infoChanMCode":"dqws2TxA","infoChanDCode":"KFs9gUnF","clueLevelCode":"B","crruLevel":"B","intentPriceCode":null,"carBrandCode":"1","inteSeriesId":"cf38e6909c1a41a29871868c79c2eccc","inteSeriesCode":"纳米BOX","inteTypeId":"1d5029d0a5df4be5a063d08256722f47","inteTypeCode":"B420EV0014C001","inteTypeName":"标准型/201km(2022-001)","planReviewDate":"2023-09-06 00:00:00","color":"","innerColor":"","optionalPackId":"","optionalPackCn":"","remainDataDate":"2023-08-22 16:20:31","clueDesc":"继续跟进","remark":null,"touchStatus":"15","buyFocus":null,"custSource":null,"originalCustId":null,"originalCustName":null,"isFirstCallback":"0","recommendPersonRelation":null,"carLicense":null,"introducerRelationship":null,"introducer":null,"introduceTel":null,"introduceGender":null,"compCarBrandCode":null,"compCarBrandName":null,"compCarSeriesCode":null,"compCarSeriesName":null,"reviewCars":[{"seriesCode":"纳米BOX","seriesName":"纳米BOX","modelId":"1d5029d0a5df4be5a063d08256722f47","modelCode":"B420EV0014C001","modelName":"标准型/201km(2022-001)","colorId":"","colorName":null,"inColorId":"","inColorName":null,"optionId":"","optionName":"","isFirstChoice":"1","isCompVehicle":"0"}],"reviewDesc":"继续跟进","nextCallbackDate":"2023-09-06 00:00:00"}}}' \
|
||||
--compressed \
|
||||
--insecure
|
||||
CURL;
|
||||
|
||||
$content = $autoLogin->execCurl($curl);
|
||||
$resArr = json_decode($content, true);
|
||||
|
||||
print_r($resArr);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,189 @@
|
||||
<?php
|
||||
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
ini_set('display_errors','On');
|
||||
error_reporting(E_ERROR);
|
||||
|
||||
require_once(APPPATH . "controllers/dms/CurlAutoLogin.php");
|
||||
|
||||
class Test extends HD_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->model('dms/dms_clues_model','dms_clues_model');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
//登录态缓存文件
|
||||
$loginResultFile = APPPATH . "cache/loginRes.txt";
|
||||
$autoLogin = new CurlAutoLogin();
|
||||
|
||||
//已有登录态,则直接读取登录态,避免多次重复登录
|
||||
if(!file_exists($loginResultFile)) {
|
||||
$resArr = $this->doLogin($autoLogin, $loginResultFile);
|
||||
} else {
|
||||
echo "有登录态,自动登录...\n";
|
||||
$resArr = json_decode(file_get_contents($loginResultFile), true);
|
||||
}
|
||||
|
||||
if(empty($resArr['username'])) {
|
||||
exit("未登录成功\n");
|
||||
}
|
||||
|
||||
$token = $resArr['token'];
|
||||
$pageIndex = 1;
|
||||
$pageSize = 30;
|
||||
$dollor = '$';
|
||||
|
||||
$createdDateStart = date("Y-m-d 00:00:00",strtotime("-1 day"));
|
||||
$createdDateEnd = date("Y-m-d 00:00:00");
|
||||
|
||||
$redis = &load_cache('redis');
|
||||
$redisKey = 'dms_cid';
|
||||
|
||||
while(true) {
|
||||
echo "处理第".$pageIndex."页..\n";
|
||||
|
||||
$curl = <<<CURL
|
||||
curl 'http://dms.dna-nev.com.cn/ly/mp/busicen/csc/graphql.do?v=clueServerQueryFromDlr' \
|
||||
-H 'Accept: application/json, text/plain, */*' \
|
||||
-H 'Accept-Language: zh-CN,zh;q=0.9' \
|
||||
-H 'Authorization: $token' \
|
||||
-H 'Connection: keep-alive' \
|
||||
-H 'Content-Type: application/json;charset=UTF-8' \
|
||||
-H 'Cookie: pwRKey=1; token=$token; wadapp.current.curlang=zh-CN; wadapp.current.token=$token; wadapp.current.user{$dollor}dms.dna-nev.com.cn={"username":"FJ0011董凯杰","remember":false,"randomCode":"8333185700157948","token":"$token","usertype":"2","{$dollor}data":{"result":"1","msg":"Success","token":"$token","username":"FJ0011董凯杰","userRealName":null,"userid":"673d16368b50446681537bd955a09d03","usertype":"2","empname":"董凯杰","errnums":null,"timeout":"3600","expires":10,"initstatus":"1","clientid":null,"vcode":null,"wxbind":"1","errorCode":"Success","message":"Success","loginPage":{"type":"None"}}}; orgInfo={"BRAND_CODE":"1","DLR_CODE":"FJ0011","DLR_ID":"86df6b1f8dd44b44a79723afd536b152","DLR_NAME":"福州狸车","DLR_ORG_TYPE":"1","DLR_STATUS":"1","GROUP_CODE":"1","GROUP_ID":"1","OEM_CODE":"1","OEM_ID":"1","ORG_CODE":"01FJ0011","EMP_ID":"d00f13699d514fb09c8029f59b825a2d","ORG_ID":"90436c9dbef845f2a7c0976132831ee6","ORG_NAME":"整车销售部","ORG_TYPE":"1","PARENT_DLR_CODE":"FJ0011","PARENT_DLR_ID":"86df6b1f8dd44b44a79723afd536b152","PARENT_DLR_NAME":"福州狸车","POS_CODE":"COC_XS_CSR_HEADER,COC_XS_CSR,SE-DLR-003,VE0003,SE-004,VE0001","POS_ID":"0011e894a6fd11ea8bfe005056850f88,00173ad3a6fd11ea8bfe005056850f88,003a9a92a6fd11ea8bfe005056850f88,fffbee61a6fc11ea8bfe005056850f88,293af90463a64f7c820472623a222716,ffca8da7a6fc11ea8bfe005056850f88","SOLUTION_ID":"经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位,经销商通用岗位","COMPANY_ID":"9b89df77b07b4258b5d83c8b8f6bbc79","UPDATEPWDTIME":"2022-9-22","empName":"董凯杰","userId":"673d16368b50446681537bd955a09d03","userName":"FJ0011董凯杰","usertype":"2"}' \
|
||||
-H 'Origin: http://dms.dna-nev.com.cn' \
|
||||
-H 'Referer: http://dms.dna-nev.com.cn/' \
|
||||
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36' \
|
||||
--data-raw '{"query":"query({$dollor}pageIndex: Int, {$dollor}pageSize: Int, {$dollor}dataInfo: InputClueServer){clueServerQueryFromDlr(dataInfo: {$dollor}dataInfo, pageIndex: {$dollor}pageIndex, pageSize: {$dollor}pageSize){msg pageindex pages records result rows{serverOrder custName contactTel carBrandName carSeriesCn clueLevelCode nextDealUserName createdName cantactWayName infoChanMName infoChanDName clueLabel clueActive assignStatusName statusName crruNodeName column6 createdDate remainDataDate isFirstCallbackName firstReviewDate isOneHour isFourHour isTwentyFourHour orderDate deliveryDate nextCallbackDate changeIntentDate nextDealEmpName inteSeriesCode}}}","variables":{"pageSize":$pageSize,"pageIndex":$pageIndex,"dataInfo":{"custName":"","contactTel":"","inteSeriesId":"","clueLevelCode":"","createdDateStart":"$createdDateStart","createdDateEnd":"$createdDateEnd","orderDateStart":"","orderDateEnd":"","status":"","csr":"","serverOrder":"","cantactWayCode":"CS001","infoChanMCode":"","carBrandCode":"","assignStatus":"","crruNode":"","createdName":"","dlrCode":"","handleCode":"1","assignStatusName":"","statusArray":["10","20","21","30","31","40","50"],"nextDealUserId":"","nextDealUserName":"","infoChanDName":"","isQueryHistory":"0"}}}' \
|
||||
--compressed \
|
||||
--insecure
|
||||
CURL;
|
||||
$content = $autoLogin->execCurl($curl);
|
||||
$resArr = json_decode($content, true);
|
||||
|
||||
if(!$resArr['result']) {
|
||||
$resArr = $this->doLogin($autoLogin, $loginResultFile);
|
||||
$resArr = json_decode($content, true);
|
||||
}
|
||||
|
||||
print_r($resArr);exit;
|
||||
|
||||
foreach ($resArr['data']['clueServerQueryFromDlr']['rows'] as $k => $v){
|
||||
if($pageIndex == 1 && $k == 0){
|
||||
$cid = $redis->get($redisKey);
|
||||
if($cid == $v['serverOrder']){
|
||||
$pageIndex = 999;
|
||||
break;
|
||||
}else{
|
||||
$redis->save($redisKey, $v['serverOrder'], 86400);
|
||||
}
|
||||
}
|
||||
|
||||
$add = array(
|
||||
'c_id' => $v['serverOrder'],
|
||||
'name' => $v['custName'],
|
||||
'mobile' => $v['contactTel'],
|
||||
'cfrom1' => $v['infoChanMName'],
|
||||
'cfrom2' => $v['infoChanDName'],
|
||||
'jsondata' => json_encode($v, JSON_UNESCAPED_UNICODE),
|
||||
'c_time' => strtotime($v['createdDate'])
|
||||
);
|
||||
|
||||
$this->dms_clues_model->add($add);
|
||||
}
|
||||
|
||||
sleep(random_int(5,10));
|
||||
$pageIndex++;
|
||||
|
||||
if($resArr['data']['clueServerQueryFromDlr']['pages'] < $pageIndex) {
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public function doLogin($autoLogin, $loginResultFile)
|
||||
{
|
||||
echo "无登录态,模拟登录...\n";
|
||||
$curl = <<<CURL
|
||||
curl 'http://dms.dna-nev.com.cn/mp/login/validlogin.do' \
|
||||
-H 'Accept: application/json, text/plain, */*' \
|
||||
-H 'Accept-Language: zh-CN,zh;q=0.9' \
|
||||
-H 'Connection: keep-alive' \
|
||||
-H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \
|
||||
-H 'Cookie: pwRKey=1' \
|
||||
-H 'Origin: http://dms.dna-nev.com.cn' \
|
||||
-H 'Referer: http://dms.dna-nev.com.cn/' \
|
||||
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36' \
|
||||
--data-raw 'reuestParas=vrdCxWqmC6nNDXrxEyNCX5sThLElae5I%2FznYqpsieYlTddUJ3hGzCvtSaYuzgDIiFAA3q0F7oHSYjeXfwRppg6lnsHDViByHQ4sJwSXhMWyKZNQ7zrgAZ%2FzR9jd5XQEQYmdcXnNgzjRxZIUaYmOwkAPFBuBOodE58zLpEvWsTFqLQVfQhVUZzE%2FN941hLaRaAHBbSqn21c6TpJyXHprF766eukiB4b5urdLilNsNQimLVcEfW6xQS9dSzAcMQZIR7dWEWQyWGWqPNnfD5yp%2Btw%3D%3D' \
|
||||
--compressed \
|
||||
--insecure
|
||||
CURL;
|
||||
|
||||
$content = $autoLogin->execCurl($curl);
|
||||
$resArr = json_decode($content, true);
|
||||
file_put_contents($loginResultFile, $content); //存储登录结果
|
||||
|
||||
return $resArr;
|
||||
}
|
||||
|
||||
public function test()
|
||||
{
|
||||
$url = 'http://dms.dna-nev.com.cn/mp/login/validlogin.do';
|
||||
$header = array (
|
||||
0 => 'Accept: application/json, text/plain, */*',
|
||||
1 => 'Accept-Language: zh-CN,zh;q=0.9',
|
||||
2 => 'Connection: keep-alive',
|
||||
3 => 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
|
||||
4 => 'Origin: http://dms.dna-nev.com.cn',
|
||||
5 => 'Referer: http://dms.dna-nev.com.cn/',
|
||||
6 => 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
|
||||
);
|
||||
$postData = 'reuestParas=vrdCxWqmC6nNDXrxEyNCX5sThLElae5I%2FznYqpsieYmu3oIOQecGrZpH%2Bhpntm%2Bnb10K23tP9k9i2sqCxHESj1Leu%2BkGr2FYklTI%2BwwdCn2KZNQ7zrgAZ%2FzR9jd5XQEQzwyUCcwxllqqZWKDNMoWSJCLAYbMf0p%2FuqiVE105v%2Fi7yStvG5q7pE6lk%2B9g7oDsAHBbSqn21c6TpJyXHprF766eukiB4b5urdLilNsNQikR6rU2pY5dfymx5S2ytZzlnIE4pE2GHVV9VW6jzLot1w%3D%3D';
|
||||
// $postData = array(
|
||||
// 'reuestParas' => 'vrdCxWqmC6nNDXrxEyNCX5sThLElae5I/znYqpsieYnyP9dYSVqrnNbryed0peXaee4199dAmuV61oHp3hUaIveISmjsLLKviH0eoWO1+5WKZNQ7zrgAZ/zR9jd5XQEQVyCBtq6canDPslkbJJaqBBqDnXrTNfDkp/nCJWdfJaoYGaQma/2+6KOacVm3jq6DAHBbSqn21c6TpJyXHprF766eukiB4b5urdLilNsNQimy2E6KL8vBaa+L4mnRHsEAU3RYz8uFJO2ZRHl9aPfJCA=='
|
||||
// );
|
||||
$cookie = 'Cookie: pwRKey=1'; //需要cookie的话去掉这行的注释
|
||||
$timeout = 10;
|
||||
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //返回数据不直接输出
|
||||
curl_setopt($ch, CURLOPT_ENCODING, "gzip"); //指定gzip压缩
|
||||
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //302/301
|
||||
//SSL
|
||||
if(substr($url, 0, 8) === 'https://') {
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
|
||||
//error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112)解决
|
||||
//值有0-6,请参考手册,值1不行试试其他值
|
||||
//curl_setopt($ch, CURLOPT_SSLVERSION, 1);
|
||||
}
|
||||
//post数据
|
||||
if(!empty($postData)) {
|
||||
curl_setopt($ch, CURLOPT_POST, 1); //发送POST类型数据
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); //POST数据,$post可以是数组(multipart/form-data),也可以是拼接参数串(application/x-www-form-urlencoded)
|
||||
}
|
||||
if(!empty($cookie)) {
|
||||
$header[] = $cookie;
|
||||
}
|
||||
if(!empty($header)) {
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //使用header头信息
|
||||
}
|
||||
//超时时间
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, (int)$timeout);
|
||||
//执行
|
||||
$content = curl_exec($ch);
|
||||
if($error = curl_error($ch)) {
|
||||
//log error
|
||||
error_log($error);
|
||||
}
|
||||
curl_close($ch);
|
||||
|
||||
print_r($content);
|
||||
|
||||
return $content;
|
||||
}
|
||||
}
|
||||
@@ -33,37 +33,35 @@ class Plan extends CI_Controller
|
||||
//$plan[] = array('url' => base_url(array('plan', 'licheb', 'customer_visit')), 'interval' => 1);//增加客户待回访
|
||||
//$plan[] = array('url' => base_url(array('plan', 'licheb', 'customer_level')), 'interval' => 1);//更新客户等级
|
||||
$plan[] = array('url' => base_url(array('plan', 'licheb', 'visit_data')), 'interval' => 3);//更新客户回访记录
|
||||
//$plan[] = array('url' => base_url(array('plan', 'licheb', 'visit_sales')), 'interval' => 3);//客户回访顾问统计
|
||||
$plan[] = array('url' => base_url(array('plan', 'licheb', 'visit_sales')), 'interval' => 3);//客户回访顾问统计
|
||||
$plan[] = array('url' => base_url(array('plan', 'licheb', 'visit_sales_sms')), 'interval' => 2);//给销售发送待回访短信
|
||||
//$plan[] = array('url' => base_url(array('plan', 'licheb', 'customer_manager_sms')), 'interval' => 2);//给店长发送待分配短信
|
||||
//$plan[] = array('url' => base_url(array('plan', 'licheb', 'users_log')), 'interval' => 2);//顾问日志
|
||||
//$plan[] = array('url' => base_url(array('plan', 'licheb', 'bizs_log')), 'interval' => 2);//门店日志
|
||||
//$plan[] = array('url' => base_url(array('plan', 'licheb', 'inventory_log')), 'interval' => 5);//更新盘点状态
|
||||
$plan[] = array('url' => base_url(array('plan', 'licheb', 'customer_manager_sms')), 'interval' => 2);//给店长发送待分配短信
|
||||
$plan[] = array('url' => base_url(array('plan', 'licheb', 'users_log')), 'interval' => 2);//顾问日志
|
||||
$plan[] = array('url' => base_url(array('plan', 'licheb', 'bizs_log')), 'interval' => 2);//门店日志
|
||||
$plan[] = array('url' => base_url(array('plan', 'licheb', 'inventory_log')), 'interval' => 5);//更新盘点状态
|
||||
|
||||
$plan[] = array('url' => base_url(array('plan', 'liche', 'add_owners')), 'interval' => 5);//新增车主
|
||||
//$plan[] = array('url' => base_url(array('plan', 'liche', 'owners_wxqy')), 'interval' => 10);//更新车主企业微信
|
||||
$plan[] = array('url' => base_url(array('plan', 'liche', 'owners_wxqy')), 'interval' => 10);//更新车主企业微信
|
||||
|
||||
//$plan[] = array('url' => base_url(array('plan', 'items', 'stock_log')), 'interval' => 5);//库存车辆日志
|
||||
$plan[] = array('url' => base_url(array('plan', 'items', 'stock_log')), 'interval' => 5);//库存车辆日志
|
||||
|
||||
//$plan[] = array('url' => base_url(array('plan', 'customer', 'statplan')), 'interval' => 5);//生成客户来源日志
|
||||
$plan[] = array('url' => base_url(array('plan', 'customer', 'statplan')), 'interval' => 5);//生成客户来源日志
|
||||
|
||||
$plan[] = array('url' => base_url(array('plan', 'polyv', 'view_log')), 'interval' => 5);//直播观看详情数据
|
||||
|
||||
//$plan[] = array('url' => base_url(array('plan', 'biz', 'settle')), 'interval' => 1);
|
||||
//$plan[] = array('url' => base_url(array('plan', 'biz', 'merge')), 'interval' => 20); //合并结算
|
||||
// $plan[] = array('url' => base_url(array('plan', 'order', 'up_old_status')), 'interval' => 30); //更新旧订单状态
|
||||
$plan[] = array('url' => base_url(array('plan', 'biz', 'settle')), 'interval' => 1);
|
||||
$plan[] = array('url' => base_url(array('plan', 'biz', 'merge')), 'interval' => 20); //合并结算
|
||||
$plan[] = array('url' => base_url(array('plan', 'order', 'up_old_status')), 'interval' => 30); //更新旧订单状态
|
||||
$plan[] = array('url' => base_url(array('plan', 'order', 'out_time')), 'interval' => 10); //未支付订单过期
|
||||
//$plan[] = array('url' => base_url(array('plan', 'order', 'send_aggs_biz_ding_piao_rpt')), 'interval' => 1); //向飞书发送小狸播报
|
||||
//$plan[] = array('url' => base_url(array('plan', 'order', 'cost')), 'interval' => 1); //添加成本表数据
|
||||
$plan[] = array('url' => base_url(array('plan', 'order', 'send_aggs_biz_ding_piao_rpt')), 'interval' => 1); //向飞书发送小狸播报
|
||||
$plan[] = array('url' => base_url(array('plan', 'order', 'cost')), 'interval' => 1); //添加成本表数据
|
||||
|
||||
// $plan[] = array('url' => base_url(array('plan', 'syt', 'subscribemsg')), 'interval' => 1); //私域通模板消息
|
||||
// $plan[] = array('url' => base_url(array('plan', 'syt', 'syn_polyv')), 'interval' => 60); //私域通直播间数据同步
|
||||
// $plan[] = array('url' => base_url(array('plan', 'syt', 'api_viewlog')), 'interval' => 1); //私域通直播间播放日志数据同步
|
||||
// $plan[] = array('url' => base_url(array('plan', 'syt', 'union_user')), 'interval' => 1); //直播数据关联用户
|
||||
$plan[] = array('url' => base_url(array('plan', 'syt', 'out_time')), 'interval' => 1); //订单过期
|
||||
$plan[] = array('url' => base_url(array('plan', 'syt', 'thApi')), 'interval' => 1); //私域通通知第三方脚本
|
||||
|
||||
//$plan[] = array('url' => base_url(array('dms', 'spider', 'get_clues')), 'interval' => 1); //dms爬虫
|
||||
// $plan[] = array('url' => base_url(array('plan', 'syt', 'thApi')), 'interval' => 1); //私域通通知第三方脚本
|
||||
|
||||
$this->plan = $plan;
|
||||
}
|
||||
|
||||
@@ -460,15 +460,14 @@ class Syt extends CI_Controller
|
||||
$size = $this->input->get('size');
|
||||
!$page && $page = 1;
|
||||
!$size && $size = 20;
|
||||
$activityId = 35;
|
||||
$time_start = strtotime('2024-10-04 00:00:00');
|
||||
$activityId = 6;
|
||||
$time_start = strtotime('2022-12-16 00:00:00');
|
||||
$where = [
|
||||
'activityId' => $activityId,
|
||||
'kpi' => 'beforeOrder',
|
||||
'kpi' => 'order',
|
||||
'createTime<' => $time_start
|
||||
];
|
||||
$rows = $this->mdSytActivityKpiData->select($where,'id desc',$page,$size,'id,activityId,cfUserId');
|
||||
|
||||
if($rows){
|
||||
foreach ($rows as $key => $val) {
|
||||
$this->mdSytActivityKpiData->update(['kpi'=>'beforeOrder'],['id'=>$val['id']]);
|
||||
@@ -482,25 +481,22 @@ class Syt extends CI_Controller
|
||||
|
||||
public function up_kpi_count(){
|
||||
$this->load->model('market/market_sylive_activity_kpidata_model','mdSytActivityKpiData');
|
||||
$this->load->model('market/market_sylive_groups_user_model', 'groups_user_model');
|
||||
$this->load->library('market/sylive2_entity');
|
||||
$page = $this->input->get('page');
|
||||
$size = $this->input->get('size');
|
||||
$kpi = $this->input->get('kpi');
|
||||
$activityId = $this->input->get('activityId');
|
||||
|
||||
!$page && $page = 1;
|
||||
!$size && $size = 20;
|
||||
|
||||
$activityId = 6;
|
||||
$where = [
|
||||
'activityId' => $activityId,
|
||||
'kpi' => 'order',
|
||||
'id<=' => 237801
|
||||
];
|
||||
|
||||
$rows = $this->groups_user_model->select($where,'',$page,$size);
|
||||
$rows = $this->mdSytActivityKpiData->select($where,'id desc',$page,$size,'id,activityId,cfUserId');
|
||||
if($rows){
|
||||
foreach ($rows as $key => $val) {
|
||||
$this->sylive2_entity->kpi_count($activityId,$kpi,$val['userId']);
|
||||
echo "执行成功:{$val['userId']}<br>";
|
||||
$val['cfUserId'] && $this->sylive2_entity->kpi_count($activityId,'order',$val['cfUserId']);
|
||||
echo "执行成功:{$val['id']}\n";
|
||||
}
|
||||
}else{
|
||||
echo '执行结束';
|
||||
@@ -516,17 +512,17 @@ class Syt extends CI_Controller
|
||||
!$page && $page = 1;
|
||||
!$size && $size = 20;
|
||||
$where = [
|
||||
'activityId' => 30,
|
||||
'activityId' => 9,
|
||||
];
|
||||
$rows = $this->market_sylive_customer_model->select($where,'customerId asc',$page,$size);
|
||||
if($rows){
|
||||
foreach ($rows as $key => $val) {
|
||||
$order = $this->market_sylive_order_model->get(['userId'=>$val['userId'],'activityId'=>30,'itemId'=>40]);
|
||||
$order = $this->market_sylive_order_model->get(['userId'=>$val['userId'],'activityId'=>9,'itemId'=>12]);
|
||||
if($order){
|
||||
//添加kpi
|
||||
$params = ['a_id' => 30, 'uid' => $val['userId'],'cf_uid' => $val['cfUserId'], 'kpi' => 'beforeOrder'];
|
||||
$params = ['a_id' => 9, 'uid' => $val['userId'],'cf_uid' => $val['cfUserId'], 'kpi' => 'beforeOrder'];
|
||||
$params['tagId'] = $order['id'];
|
||||
$params['itemId'] = 40;
|
||||
$params['itemId'] = 12;
|
||||
$params['jsondata'] = [
|
||||
'sid' => $order['sid'],
|
||||
'order_id' => $order['id']
|
||||
@@ -542,6 +538,7 @@ class Syt extends CI_Controller
|
||||
}
|
||||
|
||||
public function thApi(){
|
||||
echo "stop this plan";exit;
|
||||
require_once COMMPATH . 'third_party/SytApi.php';
|
||||
$this->load->model('market/market_sylive_user_model', 'user_model');
|
||||
$this->load->model('market/market_sylive_order_model');
|
||||
@@ -636,17 +633,15 @@ class Syt extends CI_Controller
|
||||
!$page && $page=1;
|
||||
!$size && $size=30;
|
||||
$where = [
|
||||
"activityId" => 27,
|
||||
"itemId" => 36,
|
||||
'id not in (select tagId from lc_market_sylive_activity_kpidata where activityId = 27 and kpi like "browse")' => null,
|
||||
'cfUserId >' => 0
|
||||
"activityId" => 11,
|
||||
"itemId" => 19,
|
||||
];
|
||||
$rows = $this->market_sylive_order_model->select($where,'id desc',$page,$size);
|
||||
if($rows){
|
||||
$count = $this->market_sylive_order_model->count($where);
|
||||
foreach ($rows as $key => $order) {
|
||||
if($order['cfUserId']){
|
||||
$re_kpi = $this->mdSytActivityKpiData->count(array("activityId" => $order['activityId'], 'tagId' => $order['id'], 'kpi' => 'beforeOrder'));
|
||||
$re_kpi = $this->mdSytActivityKpiData->count(array("activityId" => $order['activityId'], 'tagId' => $order['id'], 'kpi' => 'order'));
|
||||
if($re_kpi){ //kpi存在
|
||||
$res = "订单kpi数据已存在";
|
||||
}else{
|
||||
@@ -655,7 +650,7 @@ class Syt extends CI_Controller
|
||||
'activityId' => $order['activityId'],
|
||||
'userId' => $order['userId'],
|
||||
'cfUserId' => $order['cfUserId'],
|
||||
'kpi' => 'beforeOrder',
|
||||
'kpi' => 'order',
|
||||
];
|
||||
$addData['createTime'] = strtotime($order['createTime']);
|
||||
$addData['updateTime'] = date('Y-m-d H:i:s',$addData['createTime']);
|
||||
@@ -672,7 +667,7 @@ class Syt extends CI_Controller
|
||||
if (!$id) {
|
||||
$res = "添加记录失败";
|
||||
}else{
|
||||
$this->sylive2_entity->kpi_count($order['activityId'],"kpi_count",$order["cfUserId"]);
|
||||
$this->sylive2_entity->kpi_count($order['activityId'],"order",$order["cfUserId"]);
|
||||
$res = "添加记录成功";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
<?php
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
class Sytopic extends CI_Controller
|
||||
{
|
||||
private $log_file = 'plan_sytopic.log';
|
||||
private $log_dir = 'market/sytopic';
|
||||
private $options;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->model('market/Market_sytopic_enroll_model', 'sytopic_enroll_model');
|
||||
$this->load->library("ssApi");
|
||||
}
|
||||
|
||||
//同步私域报名状态
|
||||
public function synEnroll()
|
||||
{
|
||||
$getPage = $this->input->get('page');
|
||||
$redis = &load_cache('redis');
|
||||
$pageCacheKey = "SYTOPIC_SYN_ENROLL_PAGE";
|
||||
if ($getPage) {
|
||||
$page = $getPage;
|
||||
} else {
|
||||
$page = $redis->get($pageCacheKey) ?: 1;
|
||||
}
|
||||
$size = 500;
|
||||
$enrollModel = new Market_sytopic_enroll_model();
|
||||
$enrollDeal = $enrollModel::ENROLL_DEAL_PUSH_CLUE . ',' . $enrollModel::ENROLL_DEAL_PUSH_CUSTOMER;
|
||||
$where = [
|
||||
"enrollDeal in ({$enrollDeal})" => null,
|
||||
"status!=" => $enrollModel::STATUS_INVALID,
|
||||
];
|
||||
$rows = $this->sytopic_enroll_model->select($where, 'id asc', $page, $size, 'id');
|
||||
if ($rows) {
|
||||
$ids = array_column($rows, 'id');
|
||||
$ssApi = new SsApi();
|
||||
$stringIds = implode(',', $ids);
|
||||
debug_log("开始同步,第{$page}页:" . $stringIds, $this->log_file, $this->log_dir);
|
||||
$data = $ssApi->getStatus($stringIds);
|
||||
debug_log("返回结果:" . json_encode($data, JSON_UNESCAPED_UNICODE), $this->log_file, $this->log_dir);
|
||||
if ($data['lists']) {
|
||||
foreach ($data['lists'] as $key => $val) {
|
||||
$this->sytopic_enroll_model->update(['status' => $val['status'], 'status2' => $val['status2']], ['id' => $val['out_id']]);
|
||||
}
|
||||
}
|
||||
$page++;
|
||||
debug_log("同步结束,执行下一页:" . $page, $this->log_file, $this->log_dir);
|
||||
$redis->save($pageCacheKey, $page, 24 * 60 * 60);
|
||||
} else {
|
||||
$redis->delete($pageCacheKey);
|
||||
debug_log("执行结束", $this->log_file, $this->log_dir);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
//ini_set('display_errors', 'On');
|
||||
//error_reporting(E_ERROR);
|
||||
ini_set('display_errors', 'On');
|
||||
error_reporting(E_ERROR);
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: xuxb
|
||||
@@ -41,7 +41,7 @@ abstract class Wxapp extends HD_Controller{
|
||||
protected $ukey;
|
||||
protected $env;//网络环境 d开发, t测试, p生产
|
||||
protected $myuid;
|
||||
protected $plugin_img = 'https://qs.liche.cn/wechat_app';
|
||||
protected $plugin_img = 'https://qs.haodian.cn/wechat_app';
|
||||
|
||||
private $inputs;
|
||||
private $app;
|
||||
|
||||
@@ -170,8 +170,8 @@ class Series extends Wxapp{
|
||||
$page = $this->input_param('page');
|
||||
$size = $this->input_param('size');
|
||||
|
||||
!$page && $page = 0;
|
||||
!$size && $size = 0;
|
||||
!$page && $page = 1;
|
||||
!$size && $size = 20;
|
||||
|
||||
$lists = [];
|
||||
if($type==2 || $type==1){ //1颜色 2内饰颜色
|
||||
|
||||
@@ -12,7 +12,7 @@ require_once APPPATH . 'controllers/wxapp/Wxapp.php';
|
||||
*/
|
||||
class Home extends Wxapp
|
||||
{
|
||||
//private $uid;
|
||||
private $uid;
|
||||
|
||||
function __construct($inputs, $app_key)
|
||||
{
|
||||
|
||||
@@ -60,7 +60,7 @@ class Aptinfo extends Wxapp{
|
||||
$default = $city_name['name'].'/'.$city_row['county_name'];
|
||||
|
||||
//获取背景图
|
||||
$img = 'https://qs.liche.cn/wechat_app/liche/buyCar/ex-default.jpg';
|
||||
$img = 'https://qs.haodian.cn/wechat_app/liche/buyCar/ex-default.jpg';
|
||||
if($cms_id){
|
||||
$cms = $this->cms_model->get(['id'=>$cms_id]);
|
||||
$json = json_decode($cms['jsondata'], true);
|
||||
|
||||
@@ -96,7 +96,7 @@ class Contract extends Wxapp{
|
||||
$data = [
|
||||
'title' => $title,
|
||||
'url' => $h5_url,
|
||||
'img' => 'https://qs.liche.cn/wechat_app/liche/mine/he-demo-2.jpg',
|
||||
'img' => 'https://qs.haodian.cn/wechat_app/liche/mine/he-demo-2.jpg',
|
||||
'netx_path' => $next_path
|
||||
];
|
||||
return $data;
|
||||
|
||||
@@ -53,9 +53,9 @@ class Credit extends Wxapp{
|
||||
'list' => $list,
|
||||
'total' => $count,
|
||||
'bg_list' => [
|
||||
'https://qs.liche.cn/wechat_app/liche/topicActivity/lantushijia/ex-1.jpg',
|
||||
'https://qs.liche.cn/wechat_app/liche/topicActivity/lantushijia/ex-2.jpg',
|
||||
#'https://qs.liche.cn/wechat_app/liche/topicActivity/lantushijia/ex-3.jpg',
|
||||
'https://qs.haodian.cn/wechat_app/liche/topicActivity/lantushijia/ex-1.jpg',
|
||||
'https://qs.haodian.cn/wechat_app/liche/topicActivity/lantushijia/ex-2.jpg',
|
||||
#'https://qs.haodian.cn/wechat_app/liche/topicActivity/lantushijia/ex-3.jpg',
|
||||
]
|
||||
];
|
||||
return $data;
|
||||
|
||||
@@ -60,15 +60,15 @@ class Luckybag extends Wxapp
|
||||
->limit(3)
|
||||
->get()->result_array();
|
||||
$share = array('title' => '帮我拆福袋,赢取家电礼包。电视冰箱洗衣机100%中奖!',
|
||||
'img' => 'https://qs.liche.cn/wechat_app/liche/ningDeFD/sharetip.png');
|
||||
'img' => 'https://qs.haodian.cn/wechat_app/liche/ningDeFD/sharetip.png');
|
||||
$data = array(
|
||||
'title' => '哪吒汽车内购会',
|
||||
"bg" => array('color' => '#f8c33f', 'img' => 'https://qs.liche.cn/wechat_app/liche/ningDeFD/bag-theme.jpg'),
|
||||
'lucky_bag' => ['img' => 'https://qs.liche.cn/wechat_app/liche/ningDeFD/luckybag.png', 'title' => '哪吒汽车宁德时代内购会'
|
||||
"bg" => array('color' => '#f8c33f', 'img' => 'https://qs.haodian.cn/wechat_app/liche/ningDeFD/bag-theme.jpg'),
|
||||
'lucky_bag' => ['img' => 'https://qs.haodian.cn/wechat_app/liche/ningDeFD/luckybag.png', 'title' => '哪吒汽车宁德时代内购会'
|
||||
, 'btn' => $lucky_bag_btn, 'time' => $this->activityTime['title']],
|
||||
'user' => ['btn' => $user_btn, 'zhu_li' => ['title' => "当前已有{$zhu_li_count}位好友帮忙", 'value' => $zhu_li_count, 'list' => $list]],
|
||||
'gift' => $this->mdLuckyBagUsers->get_gift(),
|
||||
'preferential' => ['https://qs.liche.cn/wechat_app/liche/ningDeFD/policy.jpg'],
|
||||
'preferential' => ['https://qs.haodian.cn/wechat_app/liche/ningDeFD/policy.jpg'],
|
||||
'share' => $share
|
||||
);
|
||||
return $data;
|
||||
@@ -107,7 +107,7 @@ class Luckybag extends Wxapp
|
||||
, ['uid' => $this->myuid]);
|
||||
}
|
||||
$gift_list[] = ['title' => $this->mdLuckyBagUsers->get_gift($lottery, 1)['tag'], 'img' => $this->mdLuckyBagUsers->get_gift($lottery, 0)['img']];
|
||||
$gift_list[] = ['title' => $bag_title, 'img' => 'https://qs.liche.cn/wechat_app/liche/ningDeFD/gift-4.jpg'];
|
||||
$gift_list[] = ['title' => $bag_title, 'img' => 'https://qs.haodian.cn/wechat_app/liche/ningDeFD/gift-4.jpg'];
|
||||
$data['title'] = '恭喜您,领取成功!';
|
||||
$data['gift'] = ['title' => '恭喜获得:', 'list' => $gift_list];
|
||||
$data['content'] = '注:订车后时展示该活动页面,销售会将抽中的礼品,写入合同备注中,提车时兑现。';
|
||||
|
||||
@@ -161,11 +161,8 @@ class Order extends Wxapp{
|
||||
$order = $this->receiver_orders_v2_model->get(['id'=>$val['o_id']],'owner_name,main_type,id,payway,brand_id,s_id,sid,v_id,cor_id,money_json,info_json,srv_ids');
|
||||
$info_json = json_decode($order['info_json'],true);
|
||||
$owner_name = $order['main_type'] ? $info_json['c_company'] : $order['owner_name'];
|
||||
$total_price = $this->orders_v2_entity->total_price($order['id']);
|
||||
}else{
|
||||
$order = $this->receiver_orders_model->get(['id'=>$val['o_id']],'id,payway,price,brand_id,s_id,sid,v_id,cor_id,money_json');
|
||||
$money_json = json_decode($order['money_json'],true);
|
||||
$total_price = $money_json['price_discount'] ? $money_json['price_car'] - $money_json['price_discount'] : $money_json['price_car'];
|
||||
$order = $this->receiver_orders_model->get(['id'=>$val['o_id']],'payway,price,brand_id,s_id,sid,v_id,cor_id,money_json');
|
||||
}
|
||||
$select_car = false;
|
||||
if($order['brand_id'] && $order['s_id'] && $order['cor_id']){
|
||||
@@ -247,7 +244,7 @@ class Order extends Wxapp{
|
||||
'title' => $brand_name.$serie_name,
|
||||
'owner_name' => $owner_name,
|
||||
'cover' => $cover,
|
||||
'price' => $total_price,
|
||||
'price' => $this->orders_v2_entity->total_price($order['id']),
|
||||
'sid' => $order['sid'],
|
||||
'payway' => $order['payway'],
|
||||
'type' => $select_car,
|
||||
|
||||
@@ -59,7 +59,7 @@ class Topics extends Wxapp
|
||||
if ($json_topic['title_img']) {
|
||||
$title_img = build_qiniu_image_url($json_topic['title_img']);
|
||||
} else {
|
||||
$title_icon = "https://qs.liche.cn/wechat_app/xingxuanka/special/tt-tip2.png";
|
||||
$title_icon = "https://qs.haodian.cn/wechat_app/xingxuanka/special/tt-tip2.png";
|
||||
}
|
||||
switch ($type) {
|
||||
case "ad"://广告
|
||||
@@ -82,7 +82,7 @@ class Topics extends Wxapp
|
||||
if ($json_topic['title_img']) {
|
||||
$title_img = build_qiniu_image_url($json_topic['title_img']);
|
||||
} else {
|
||||
$title_icon = "https://qs.liche.cn/wechat_app/xingxuanka/special/tt-tip2.png";
|
||||
$title_icon = "https://qs.haodian.cn/wechat_app/xingxuanka/special/tt-tip2.png";
|
||||
}
|
||||
$list[] = [
|
||||
"type" => $type,
|
||||
|
||||
@@ -235,16 +235,16 @@ class User extends Wxapp{
|
||||
$about = [
|
||||
[
|
||||
'title'=>'购车订单',
|
||||
'icon'=>'https://qs.liche.cn/wechat_app/liche/mine/list-icon-5.png',
|
||||
'icon'=>'https://qs.haodian.cn/wechat_app/liche/mine/list-icon-5.png',
|
||||
'url'=>'/pages/mine/carOrder/index',
|
||||
'have_new' => $un_pay ? true : false
|
||||
],
|
||||
['title'=>'我的爱车','icon'=>'https://qs.liche.cn/wechat_app/liche/mine/list-icon-1.png','url'=>'/pages/mine/myCar/index'],
|
||||
['title'=>'我的积分','icon'=>'https://qs.liche.cn/wechat_app/liche/mine/list-icon-6.png','url'=>'/pages/topicActivity/integral/index'],
|
||||
['title'=>'联系小狸','icon'=>'https://qs.liche.cn/wechat_app/liche/mine/list-icon-3.png'],
|
||||
['title'=>'我的爱车','icon'=>'https://qs.haodian.cn/wechat_app/liche/mine/list-icon-1.png','url'=>'/pages/mine/myCar/index'],
|
||||
['title'=>'我的积分','icon'=>'https://qs.haodian.cn/wechat_app/liche/mine/list-icon-6.png','url'=>'/pages/topicActivity/integral/index'],
|
||||
['title'=>'联系小狸','icon'=>'https://qs.haodian.cn/wechat_app/liche/mine/list-icon-3.png'],
|
||||
];
|
||||
if($this->session['dealer'] || $this->session['manage']){
|
||||
$about[] = ['title'=>'推广提现','icon'=>'https://qs.liche.cn/wechat_app/liche/mine/list-icon-4.png','url'=>'/pages/distribute/index'];
|
||||
$about[] = ['title'=>'推广提现','icon'=>'https://qs.haodian.cn/wechat_app/liche/mine/list-icon-4.png','url'=>'/pages/distribute/index'];
|
||||
}
|
||||
$progress_list = $this->progressopt->lists($mobile);
|
||||
$data = [
|
||||
@@ -253,10 +253,10 @@ class User extends Wxapp{
|
||||
'progress_list' => $progress_list,
|
||||
'about' => $about,
|
||||
'order' => [
|
||||
['title' => '全部订单', 'icon' => 'https://qs.liche.cn/wechat_app/liche/mine/order-icon-1.png', 'url' => '/pages/order/index?typeId=0'],
|
||||
['title' => '待付款', 'icon' => 'https://qs.liche.cn/wechat_app/liche/mine/order-icon-2.png', 'url' => "/pages/order/index?typeId=1"],
|
||||
['title' => '进行中', 'icon' => 'https://qs.liche.cn/wechat_app/liche/mine/order-icon-3.png', 'url' => "/pages/order/index?typeId=2"],
|
||||
['title' => '已完成', 'icon' => 'https://qs.liche.cn/wechat_app/liche/mine/order-icon-4.png', 'url' => "/pages/order/index?typeId=3"],
|
||||
['title' => '全部订单', 'icon' => 'https://qs.haodian.cn/wechat_app/liche/mine/order-icon-1.png', 'url' => '/pages/order/index?typeId=0'],
|
||||
['title' => '待付款', 'icon' => 'https://qs.haodian.cn/wechat_app/liche/mine/order-icon-2.png', 'url' => "/pages/order/index?typeId=1"],
|
||||
['title' => '进行中', 'icon' => 'https://qs.haodian.cn/wechat_app/liche/mine/order-icon-3.png', 'url' => "/pages/order/index?typeId=2"],
|
||||
['title' => '已完成', 'icon' => 'https://qs.haodian.cn/wechat_app/liche/mine/order-icon-4.png', 'url' => "/pages/order/index?typeId=3"],
|
||||
],
|
||||
];
|
||||
return $data;
|
||||
|
||||
@@ -185,7 +185,7 @@ class Customers extends Wxapp
|
||||
//检查是否选中标签
|
||||
$checked = $tag_data && in_array($val2['id'], $tag_data) ? true : false;
|
||||
$list[] = ['id' => $val2['id'], 'name' => $val2['name'], 'checked' => $checked];
|
||||
$tag_type == 1 && $checked && $tag_checked[] = $val2['id'];
|
||||
$tag_type == 1 && $checked && !in_array($val['id'], $tag_checked) && $tag_checked[] = $val['id'];
|
||||
$tag_type == 1 && $checked && !$tag_checked_id && $tag_checked_id = $val['id'];
|
||||
}
|
||||
$tags[] = ['id' => $val['id'], 'name' => $val['name'], 'type' => $val['type'], 'list' => $list];
|
||||
@@ -673,7 +673,7 @@ class Customers extends Wxapp
|
||||
}
|
||||
throw new Exception('操作成功', API_CODE_SUCCESS);
|
||||
} else {
|
||||
throw new Exception('操作失败!', ERR_PARAMS_ERROR);
|
||||
throw new Exception('操失败!', ERR_PARAMS_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ class Sms extends Wxapp{
|
||||
$mc->save($key, $code, 600);
|
||||
}
|
||||
if($mobile!='15359333655'){//测试号码
|
||||
send_sms($mobile,$code,'好店云');
|
||||
send_sms($mobile,$code,'狸车宝');
|
||||
}
|
||||
$msg = '发送成功';
|
||||
//$msg = $code;
|
||||
|
||||
@@ -40,7 +40,7 @@ class Sytactivity extends Wxapp
|
||||
protected function get_tabs()
|
||||
{
|
||||
$data['title'] = '私域通';
|
||||
$data['bg_img'] = 'https://qs.liche.cn/wechat_app/lichebao/siyutong/theme.jpg?v=220207';
|
||||
$data['bg_img'] = 'https://qs.haodian.cn/wechat_app/lichebao/siyutong/theme.jpg?v=220207';
|
||||
// $bm_count = $this->mdSytActivityKpiData->count(['kpi' => 'enroll']);
|
||||
// $dd_count = $this->mdCustomers->count(['status' => 1, 'cf_id' => $this->cf_id]);
|
||||
// $xd_count = $this->mdCustomers->count(['status' => 2, 'cf_id' => $this->cf_id]);
|
||||
|
||||
@@ -106,7 +106,7 @@ class Biz extends Wxapp
|
||||
$countKey = array_column($lists, 'sort');
|
||||
array_multisort($countKey, SORT_DESC, $lists);//排序
|
||||
$this->data['title'] = '店铺';
|
||||
$this->data['bg_img'] = 'https://qs.liche.cn/wechat_app/liche/storeInfo/theme.png';
|
||||
$this->data['bg_img'] = 'https://qs.haodian.cn/wechat_app/liche/storeInfo/theme.png';
|
||||
$biz_name = strstr($re['biz_name'], '店') ? $re['biz_name'] : $re['biz_name'] . '店';
|
||||
$this->data['biz_name'] = '狸车· ' . $biz_name;
|
||||
$this->data['address'] = $re['address'];
|
||||
|
||||
@@ -269,7 +269,7 @@ class Home extends Wxapp
|
||||
*/
|
||||
protected function get_biz_posters()
|
||||
{
|
||||
$url = 'https://qs.liche.cn/wechat_app/lichebao/distribute';
|
||||
$url = 'https://qs.haodian.cn/wechat_app/lichebao/distribute';
|
||||
$lists = [
|
||||
['title' => '店铺常规模板', 'cover' => $url . '/md-0.jpg?v=1', 'type' => 0, 'tpHeight' => 10, 'ftHeight' => 350,
|
||||
'marginLR' => 10, 'posterBg' => '', 'posterFt' => $url . '/posterFt-0.jpg', 'bgColor' => '#fff', 'color' => '#fff'],
|
||||
|
||||
@@ -70,7 +70,7 @@ class Topic extends Wxapp
|
||||
if ($json_data['biz_pop']) {//授权弹窗
|
||||
$biz_info['pop'] = $json_data['biz_pop'];
|
||||
$biz_info['biz_name'] = '';
|
||||
$biz_info['headimg'] = 'https://qs.liche.cn/wechat_app/liche/common/dark-logo2.jpg';
|
||||
$biz_info['headimg'] = 'https://qs.haodian.cn/wechat_app/liche/common/dark-logo2.jpg';
|
||||
$biz_info['pop_content'] = '您好,欢迎您访问狸车。授权手机号后将给您提供最新的新能源汽车资讯和优惠活动哦~';
|
||||
if ($biz_id) {
|
||||
$this->load->model("biz/biz_model", 'mdBiz');
|
||||
|
||||
@@ -1,140 +0,0 @@
|
||||
<?php
|
||||
defined('WXAPP_APP') or exit('No direct script access allowed');
|
||||
ini_set('display_errors', 'On');
|
||||
error_reporting(E_ERROR);
|
||||
|
||||
require_once APPPATH . 'controllers/wxapp/Wxapp.php';
|
||||
class Act extends Wxapp
|
||||
{
|
||||
function __construct($inputs, $app_key)
|
||||
{
|
||||
parent::__construct($inputs, $app_key);
|
||||
$this->login_white = 'all';//登录白名单
|
||||
$this->check_status = [];//用户状态校验
|
||||
$this->check_mobile = [];//需要手机号
|
||||
$this->check_headimg = [];//授权微信信息
|
||||
$this->load->model('market/market_sylive_activity_model');
|
||||
$this->load->model('market/market_sylive_order_model');
|
||||
$this->load->model('market/market_sylive_customer_model');
|
||||
}
|
||||
protected function get_user()
|
||||
{
|
||||
$ukey = $this->input_param('ukey');
|
||||
$activityId = 35;//活动id
|
||||
|
||||
$activity = $this->market_sylive_activity_model->get(['activityId' => $activityId]);
|
||||
if (!$activity) {
|
||||
throw new Hd_exception('活动不存在', API_CODE_FAIL);
|
||||
}
|
||||
|
||||
if (!$ukey) {
|
||||
throw new Hd_exception('ukey不存在', API_CODE_FAIL);
|
||||
}
|
||||
|
||||
$customer = $this->market_sylive_customer_model->get(['ukey' => $ukey]);
|
||||
if(!$customer){
|
||||
throw new Hd_exception('用户不存在', API_CODE_FAIL);
|
||||
}
|
||||
|
||||
$data = [
|
||||
'customerId' => $customer['customerId'],
|
||||
];
|
||||
return $data;
|
||||
}
|
||||
|
||||
protected function post_reward()
|
||||
{
|
||||
$activityId = 27;//活动id
|
||||
$ukey = $this->input_param('ukey');
|
||||
$reward_id = $this->input_param('reward_id');
|
||||
|
||||
debug_log("[info]# " . json_encode($this->input_param(),JSON_UNESCAPED_UNICODE), 'neta.log', 'market/sylive');
|
||||
|
||||
//$reward_id 对应 winType
|
||||
$winTypes = array(
|
||||
'5051' => '1', //电视机
|
||||
'5052' => '2', //电冰箱
|
||||
'5053' => '3', //平板
|
||||
);
|
||||
|
||||
$winName = array(
|
||||
'5051' => '电视机',
|
||||
'5052' => '电冰箱',
|
||||
'5053' => '平板电脑',
|
||||
);
|
||||
|
||||
$activity = $this->market_sylive_activity_model->get(['activityId' => $activityId]);
|
||||
if (!$activity) {
|
||||
throw new Hd_exception('活动不存在', API_CODE_FAIL);
|
||||
}
|
||||
|
||||
if (!$reward_id || !$winTypes[$reward_id]) {
|
||||
throw new Hd_exception('参数错误', API_CODE_FAIL);
|
||||
}
|
||||
|
||||
if (!$ukey) {
|
||||
throw new Hd_exception('ukey不存在', API_CODE_FAIL);
|
||||
}
|
||||
|
||||
$customer = $this->market_sylive_customer_model->get(['ukey' => $ukey]);
|
||||
if(!$customer){
|
||||
throw new Hd_exception('用户不存在', API_CODE_FAIL);
|
||||
}
|
||||
|
||||
$order = $this->market_sylive_order_model->get(['activityId' => $activityId, 'userId' => $customer['userId'], 'status' => 1,]);
|
||||
if($order && $order['win'] == 0){
|
||||
$data = [
|
||||
'win' => 1,
|
||||
'winType' => $winTypes[$reward_id],
|
||||
'winTime' => date('Y-m-d H:i:s'),
|
||||
];
|
||||
|
||||
$rt = $this->market_sylive_order_model->update($data, ['id' => $order['id']]);
|
||||
}
|
||||
|
||||
if ($rt) {
|
||||
$winSms = "【好店云】“龙行龘龘「哪」红包”感谢您参与哪吒汽车华南大区新春活动,恭喜您成功锁定(".$winName[$reward_id].")一份,只需您在2024年2月29日前在当地门店选购哪吒X\哪吒AYA\哪吒U-II等车型并完成上牌,即可领取礼品!";
|
||||
b2m_send_sms($order['mobile'], $winSms);
|
||||
throw new Hd_exception('执行成功', API_CODE_SUCCESS);
|
||||
}
|
||||
|
||||
throw new Hd_exception('目标对象不存在', API_CODE_FAIL);
|
||||
}
|
||||
|
||||
protected function post_car()
|
||||
{
|
||||
$activityId = 27;//活动id
|
||||
$ukey = $this->input_param('ukey');
|
||||
$car = $this->input_param('car');
|
||||
|
||||
debug_log("[info]# " . json_encode($this->input_param(),JSON_UNESCAPED_UNICODE), 'neta.log', 'market/sylive');
|
||||
|
||||
$activity = $this->market_sylive_activity_model->get(['activityId' => $activityId]);
|
||||
if (!$activity) {
|
||||
throw new Hd_exception('活动不存在', API_CODE_FAIL);
|
||||
}
|
||||
|
||||
if (!$car) {
|
||||
throw new Hd_exception('参数错误', API_CODE_FAIL);
|
||||
}
|
||||
|
||||
if (!$ukey) {
|
||||
throw new Hd_exception('ukey不存在', API_CODE_FAIL);
|
||||
}
|
||||
|
||||
$customer = $this->market_sylive_customer_model->get(['ukey' => $ukey]);
|
||||
if(!$customer){
|
||||
throw new Hd_exception('用户不存在', API_CODE_FAIL);
|
||||
}else{
|
||||
$data = ['visitTagId' => $car,];
|
||||
$rt = $this->market_sylive_customer_model->update($data, ['customerId' => $customer['customerId']]);
|
||||
}
|
||||
|
||||
if ($rt) {
|
||||
throw new Hd_exception('执行成功', API_CODE_SUCCESS);
|
||||
}
|
||||
|
||||
throw new Hd_exception('目标对象不存在', API_CODE_FAIL);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -71,7 +71,7 @@
|
||||
<div><b>四、车辆交付信息</b></div>
|
||||
<div>甲方已向乙方做了详细的车辆介绍,介绍的内容包含但不限于车辆外部、行李箱、发动机舱、座椅、驾驶位置及各类仪表及显示屏介绍。</div>
|
||||
<div>乙方经过验收,确认上述所有事项,所购车辆符合购车合同约定并已于交付日期收到该车辆。</div>
|
||||
<div style="position:absolute;left:0;right:0;bottom:0;padding-bottom:30px;">
|
||||
<div style="margin-top:50px;">
|
||||
<table style="width:100%;">
|
||||
<tr>
|
||||
<td style="width:60%;">
|
||||
|
||||
Regular → Executable
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"require": {
|
||||
"gregwar/image": "^2.1",
|
||||
"gregwar/image": "^2.1",
|
||||
"tencentcloud/ocr": "^3.0",
|
||||
"wechatpay/wechatpay-guzzle-middleware": "^0.2.2",
|
||||
"mikehaertl/php-pdftk": "^0.11.0",
|
||||
|
||||
+268
-47
@@ -4,12 +4,17 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "9f27737ffbf35aa1f124c7f62201bb1c",
|
||||
"content-hash": "9372f5e234fb33f7279f5b6fe524b15d",
|
||||
"packages": [
|
||||
{
|
||||
"name": "gregwar/cache",
|
||||
"version": "v1.0.13",
|
||||
"target-dir": "Gregwar/Cache",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Gregwar/Cache.git",
|
||||
"reference": "184cc341c25298ff7d584f86b55b6ca26626da4f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Gregwar/Cache/zipball/184cc341c25298ff7d584f86b55b6ca26626da4f",
|
||||
@@ -48,6 +53,11 @@
|
||||
"name": "gregwar/image",
|
||||
"version": "v2.1.0",
|
||||
"target-dir": "Gregwar/Image",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Gregwar/Image.git",
|
||||
"reference": "1cf64c34cbb22933b36727c16b15ed4d925b6fc6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Gregwar/Image/zipball/1cf64c34cbb22933b36727c16b15ed4d925b6fc6",
|
||||
@@ -93,19 +103,24 @@
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "6.5.5",
|
||||
"version": "6.5.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/guzzle.git",
|
||||
"reference": "a52f0440530b54fa079ce76e8c5d196a42cad981"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
|
||||
"reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/a52f0440530b54fa079ce76e8c5d196a42cad981",
|
||||
"reference": "a52f0440530b54fa079ce76e8c5d196a42cad981",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"guzzlehttp/promises": "^1.0",
|
||||
"guzzlehttp/psr7": "^1.6.1",
|
||||
"guzzlehttp/psr7": "^1.9",
|
||||
"php": ">=5.5",
|
||||
"symfony/polyfill-intl-idn": "^1.17.0"
|
||||
"symfony/polyfill-intl-idn": "^1.17"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-curl": "*",
|
||||
@@ -122,22 +137,52 @@
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
]
|
||||
],
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Graham Campbell",
|
||||
"email": "hello@gjcampbell.co.uk",
|
||||
"homepage": "https://github.com/GrahamCampbell"
|
||||
},
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
},
|
||||
{
|
||||
"name": "Jeremy Lindblom",
|
||||
"email": "jeremeamia@gmail.com",
|
||||
"homepage": "https://github.com/jeremeamia"
|
||||
},
|
||||
{
|
||||
"name": "George Mponos",
|
||||
"email": "gmponos@gmail.com",
|
||||
"homepage": "https://github.com/gmponos"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Nyholm",
|
||||
"email": "tobias.nyholm@gmail.com",
|
||||
"homepage": "https://github.com/Nyholm"
|
||||
},
|
||||
{
|
||||
"name": "Márk Sági-Kazár",
|
||||
"email": "mark.sagikazar@gmail.com",
|
||||
"homepage": "https://github.com/sagikazarmark"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Schultze",
|
||||
"email": "webmaster@tubo-world.de",
|
||||
"homepage": "https://github.com/Tobion"
|
||||
}
|
||||
],
|
||||
"description": "Guzzle is a PHP HTTP client library",
|
||||
@@ -151,15 +196,20 @@
|
||||
"rest",
|
||||
"web service"
|
||||
],
|
||||
"time": "2020-06-16T21:01:06+00:00"
|
||||
"time": "2022-06-20T22:16:07+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
"version": "1.4.1",
|
||||
"version": "1.5.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/promises.git",
|
||||
"reference": "b94b2807d85443f9719887892882d0329d1e2598"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d",
|
||||
"reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598",
|
||||
"reference": "b94b2807d85443f9719887892882d0329d1e2598",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -171,41 +221,61 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.4-dev"
|
||||
"dev-master": "1.5-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Promise\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
]
|
||||
],
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Promise\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Graham Campbell",
|
||||
"email": "hello@gjcampbell.co.uk",
|
||||
"homepage": "https://github.com/GrahamCampbell"
|
||||
},
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Nyholm",
|
||||
"email": "tobias.nyholm@gmail.com",
|
||||
"homepage": "https://github.com/Nyholm"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Schultze",
|
||||
"email": "webmaster@tubo-world.de",
|
||||
"homepage": "https://github.com/Tobion"
|
||||
}
|
||||
],
|
||||
"description": "Guzzle promises library",
|
||||
"keywords": [
|
||||
"promise"
|
||||
],
|
||||
"time": "2021-03-07T09:25:29+00:00"
|
||||
"time": "2022-08-28T14:55:35+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
"version": "1.8.2",
|
||||
"version": "1.9.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/psr7.git",
|
||||
"reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91",
|
||||
"reference": "dc960a912984efb74d0a90222870c72c87f10c91",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318",
|
||||
"reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -226,29 +296,50 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.7-dev"
|
||||
"dev-master": "1.9-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Psr7\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
]
|
||||
],
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Psr7\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Graham Campbell",
|
||||
"email": "hello@gjcampbell.co.uk",
|
||||
"homepage": "https://github.com/GrahamCampbell"
|
||||
},
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
},
|
||||
{
|
||||
"name": "George Mponos",
|
||||
"email": "gmponos@gmail.com",
|
||||
"homepage": "https://github.com/gmponos"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Nyholm",
|
||||
"email": "tobias.nyholm@gmail.com",
|
||||
"homepage": "https://github.com/Nyholm"
|
||||
},
|
||||
{
|
||||
"name": "Márk Sági-Kazár",
|
||||
"email": "mark.sagikazar@gmail.com",
|
||||
"homepage": "https://github.com/sagikazarmark"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Schultze",
|
||||
"email": "webmaster@tubo-world.de",
|
||||
"homepage": "https://github.com/Tobion"
|
||||
}
|
||||
],
|
||||
@@ -263,14 +354,82 @@
|
||||
"uri",
|
||||
"url"
|
||||
],
|
||||
"time": "2021-04-26T09:17:50+00:00"
|
||||
"time": "2022-06-20T21:43:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "lcobucci/jwt",
|
||||
"version": "3.4.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/lcobucci/jwt.git",
|
||||
"reference": "3ef8657a78278dfeae7707d51747251db4176240"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/lcobucci/jwt/zipball/3ef8657a78278dfeae7707d51747251db4176240",
|
||||
"reference": "3ef8657a78278dfeae7707d51747251db4176240",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-mbstring": "*",
|
||||
"ext-openssl": "*",
|
||||
"php": "^5.6 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"mikey179/vfsstream": "~1.5",
|
||||
"phpmd/phpmd": "~2.2",
|
||||
"phpunit/php-invoker": "~1.1",
|
||||
"phpunit/phpunit": "^5.7 || ^7.3",
|
||||
"squizlabs/php_codesniffer": "~2.3"
|
||||
},
|
||||
"suggest": {
|
||||
"lcobucci/clock": "*"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.1-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"compat/class-aliases.php",
|
||||
"compat/json-exception-polyfill.php",
|
||||
"compat/lcobucci-clock-polyfill.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"Lcobucci\\JWT\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Luís Otávio Cobucci Oblonczyk",
|
||||
"email": "lcobucci@gmail.com",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "A simple library to work with JSON Web Token and JSON Web Signature",
|
||||
"keywords": [
|
||||
"JWS",
|
||||
"jwt"
|
||||
],
|
||||
"time": "2021-09-28T19:18:28+00:00"
|
||||
},
|
||||
{
|
||||
"name": "mikehaertl/php-pdftk",
|
||||
"version": "0.11.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/mikehaertl/php-pdftk.git",
|
||||
"reference": "61ba14c08491c1bb7d479c87087f236389b4babf"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://mirrors.tencent.com/repository/composer/mikehaertl/php-pdftk/0.11.0/mikehaertl-php-pdftk-0.11.0.zip",
|
||||
"url": "https://api.github.com/repos/mikehaertl/php-pdftk/zipball/61ba14c08491c1bb7d479c87087f236389b4babf",
|
||||
"reference": "61ba14c08491c1bb7d479c87087f236389b4babf",
|
||||
"shasum": ""
|
||||
},
|
||||
@@ -288,6 +447,7 @@
|
||||
"mikehaertl\\pdftk\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
@@ -307,9 +467,14 @@
|
||||
{
|
||||
"name": "mikehaertl/php-shellcommand",
|
||||
"version": "1.6.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/mikehaertl/php-shellcommand.git",
|
||||
"reference": "3488d7803df1e8f1a343d3d0ca452d527ad8d5e5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://mirrors.tencent.com/repository/composer/mikehaertl/php-shellcommand/1.6.4/mikehaertl-php-shellcommand-1.6.4.zip",
|
||||
"url": "https://api.github.com/repos/mikehaertl/php-shellcommand/zipball/3488d7803df1e8f1a343d3d0ca452d527ad8d5e5",
|
||||
"reference": "3488d7803df1e8f1a343d3d0ca452d527ad8d5e5",
|
||||
"shasum": ""
|
||||
},
|
||||
@@ -325,6 +490,7 @@
|
||||
"mikehaertl\\shellcommand\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
@@ -343,9 +509,14 @@
|
||||
{
|
||||
"name": "mikehaertl/php-tmpfile",
|
||||
"version": "1.2.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/mikehaertl/php-tmpfile.git",
|
||||
"reference": "70a5b70b17bc0d9666388e6a551ecc93d0b40a10"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://mirrors.tencent.com/repository/composer/mikehaertl/php-tmpfile/1.2.1/mikehaertl-php-tmpfile-1.2.1.zip",
|
||||
"url": "https://api.github.com/repos/mikehaertl/php-tmpfile/zipball/70a5b70b17bc0d9666388e6a551ecc93d0b40a10",
|
||||
"reference": "70a5b70b17bc0d9666388e6a551ecc93d0b40a10",
|
||||
"shasum": ""
|
||||
},
|
||||
@@ -359,6 +530,7 @@
|
||||
"mikehaertl\\tmp\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
@@ -376,18 +548,23 @@
|
||||
},
|
||||
{
|
||||
"name": "paragonie/random_compat",
|
||||
"version": "v2.0.20",
|
||||
"version": "v2.0.21",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/paragonie/random_compat.git",
|
||||
"reference": "96c132c7f2f7bc3230723b66e89f8f150b29d5ae"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/0f1f60250fccffeaf5dda91eea1c018aed1adc2a",
|
||||
"reference": "0f1f60250fccffeaf5dda91eea1c018aed1adc2a",
|
||||
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/96c132c7f2f7bc3230723b66e89f8f150b29d5ae",
|
||||
"reference": "96c132c7f2f7bc3230723b66e89f8f150b29d5ae",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "4.*|5.*"
|
||||
"phpunit/phpunit": "*"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
|
||||
@@ -416,11 +593,16 @@
|
||||
"pseudorandom",
|
||||
"random"
|
||||
],
|
||||
"time": "2021-04-17T09:33:01+00:00"
|
||||
"time": "2022-02-16T17:07:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-message",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/http-message.git",
|
||||
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||
@@ -466,6 +648,11 @@
|
||||
{
|
||||
"name": "ralouphie/getallheaders",
|
||||
"version": "3.0.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ralouphie/getallheaders.git",
|
||||
"reference": "120b605dfeb996808c31b6477290a714d356e822"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
|
||||
@@ -501,6 +688,11 @@
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"version": "v1.19.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
||||
"reference": "4ad5115c0f5d5172a9fe8147675ec6de266d8826"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/4ad5115c0f5d5172a9fe8147675ec6de266d8826",
|
||||
@@ -567,6 +759,11 @@
|
||||
{
|
||||
"name": "symfony/polyfill-intl-normalizer",
|
||||
"version": "v1.19.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||
"reference": "8db0ae7936b42feb370840cf24de1a144fb0ef27"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8db0ae7936b42feb370840cf24de1a144fb0ef27",
|
||||
@@ -629,6 +826,11 @@
|
||||
{
|
||||
"name": "symfony/polyfill-php70",
|
||||
"version": "v1.19.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php70.git",
|
||||
"reference": "3fe414077251a81a1b15b1c709faf5c2fbae3d4e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/3fe414077251a81a1b15b1c709faf5c2fbae3d4e",
|
||||
@@ -687,6 +889,11 @@
|
||||
{
|
||||
"name": "symfony/polyfill-php72",
|
||||
"version": "v1.19.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php72.git",
|
||||
"reference": "beecef6b463b06954638f02378f52496cb84bacc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/beecef6b463b06954638f02378f52496cb84bacc",
|
||||
@@ -740,16 +947,20 @@
|
||||
},
|
||||
{
|
||||
"name": "tencentcloud/common",
|
||||
"version": "3.0.436",
|
||||
"version": "3.0.712",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/tencentcloud-sdk-php/common.git",
|
||||
"reference": "5d49bdbc237148c2082858ade73610d9e9d61cbc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/tencentcloud-sdk-php/common/zipball/8e1742f06287accfd173141a919d3460d097ac03",
|
||||
"reference": "8e1742f06287accfd173141a919d3460d097ac03",
|
||||
"url": "https://api.github.com/repos/tencentcloud-sdk-php/common/zipball/5d49bdbc237148c2082858ade73610d9e9d61cbc",
|
||||
"reference": "5d49bdbc237148c2082858ade73610d9e9d61cbc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/guzzle": "^6.3||^7.0",
|
||||
"guzzlehttp/psr7": "^1.4",
|
||||
"php": ">=5.6.0"
|
||||
},
|
||||
"type": "library",
|
||||
@@ -772,19 +983,24 @@
|
||||
],
|
||||
"description": "TencentCloudApi php sdk",
|
||||
"homepage": "https://github.com/tencentcloud-sdk-php/common",
|
||||
"time": "2021-07-16T01:04:49+00:00"
|
||||
"time": "2022-08-29T03:14:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "tencentcloud/ocr",
|
||||
"version": "3.0.436",
|
||||
"version": "3.0.712",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/tencentcloud-sdk-php/ocr.git",
|
||||
"reference": "c0d21b263eccfe067731aad39232f537100d43b3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/tencentcloud-sdk-php/ocr/zipball/3158bf1b0d4c89ca0623d0c4eda76a4a8eba656b",
|
||||
"reference": "3158bf1b0d4c89ca0623d0c4eda76a4a8eba656b",
|
||||
"url": "https://api.github.com/repos/tencentcloud-sdk-php/ocr/zipball/c0d21b263eccfe067731aad39232f537100d43b3",
|
||||
"reference": "c0d21b263eccfe067731aad39232f537100d43b3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"tencentcloud/common": "3.0.436"
|
||||
"tencentcloud/common": "3.0.712"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -806,11 +1022,16 @@
|
||||
],
|
||||
"description": "TencentCloudApi php sdk ocr",
|
||||
"homepage": "https://github.com/tencentcloud-sdk-php/ocr",
|
||||
"time": "2021-07-16T01:13:52+00:00"
|
||||
"time": "2022-08-29T03:29:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "wechatpay/wechatpay-guzzle-middleware",
|
||||
"version": "0.2.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/wechatpay-apiv3/wechatpay-guzzle-middleware.git",
|
||||
"reference": "6782ac33ed8cf97628609a71cdc5e84a6a40677a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/wechatpay-apiv3/wechatpay-guzzle-middleware/zipball/6782ac33ed8cf97628609a71cdc5e84a6a40677a",
|
||||
|
||||
@@ -438,8 +438,7 @@ if (!function_exists('send_sms')) {
|
||||
require_once COMMPATH . '/third_party/alisms/alisms.php';
|
||||
$template = 'SMS_218630210';
|
||||
$alisms = new AliSms();
|
||||
$rt = $alisms->sendSms($mobile, array('code' => $code), $template, $sign);
|
||||
debug_log($rt, 'sms.log');
|
||||
$alisms->sendSms($mobile, array('code' => $code), $template, $sign);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -951,11 +950,11 @@ if (!function_exists('http_host_com')) {
|
||||
} else if ($type == 'admin') {
|
||||
$url = "http://liche-admin.dev.xiaoyu.com";
|
||||
}
|
||||
} elseif (false !== strpos($_SERVER['HTTP_HOST'], 'lc')) {//test 测试
|
||||
} elseif (false !== strpos($_SERVER['HTTP_HOST'], 'test')) {//test 测试
|
||||
if ($type == 'api') {
|
||||
$url = 'api.lc.haodian.cn';
|
||||
} else if ($type == 'home') {
|
||||
$url = "http://www.lc.haodian.cn";
|
||||
$url = "https://www-test.liche.cn";
|
||||
} else if ($type == 'admin') {
|
||||
$url = "https://admin.test.liche.cn";
|
||||
}
|
||||
@@ -1161,9 +1160,7 @@ if (!function_exists('myTrim')) {
|
||||
if (!function_exists('is_product')) {
|
||||
function is_product()
|
||||
{
|
||||
if (false !== strpos($_SERVER['HTTP_HOST'], 'dev') ||
|
||||
false !== strpos($_SERVER['HTTP_HOST'], 'test') ||
|
||||
false !== strpos($_SERVER['HTTP_HOST'], 'lc')) { //dev 测试
|
||||
if (false !== strpos($_SERVER['HTTP_HOST'], 'dev') || false !== strpos($_SERVER['HTTP_HOST'], 'test')) { //dev 测试
|
||||
return false;
|
||||
} else { // 正式
|
||||
return true;
|
||||
|
||||
@@ -1,176 +0,0 @@
|
||||
<?php
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
class SsApi
|
||||
{
|
||||
const CF_PLATFORM = "SYSTOPIC";
|
||||
const CLUES_METHOD = 'openApi/clues'; //提交线索
|
||||
const STATUS_METHOD = 'openApi/status'; //获取报名状态
|
||||
const BIZ_METHOD = 'openApi/biz'; //门店信息
|
||||
private $app_id = '1c156bb57cd6984a';
|
||||
private $sign_key = '71fd71173b776766a2ae1209d9a2c2ed';
|
||||
private $api_url = 'https://sapi.liche.cn/hd/app/'; //空间站报名数据接口
|
||||
|
||||
private $ci;
|
||||
private $log_path;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->ci = &get_instance();
|
||||
if (!is_product()) {
|
||||
$this->api_url = 'https://api.ss.haodian.cn/hd/app/'; //测试地址
|
||||
}
|
||||
$this->ci->load->helper('string');
|
||||
$this->log_path = 'ss_api.log';
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $id
|
||||
* @param $name
|
||||
* @param $mobile
|
||||
* @param $en_time
|
||||
* @param $remark
|
||||
* @param $to_customers 是否添加到客户池
|
||||
* @param $biz_id
|
||||
* @return array
|
||||
*/
|
||||
public function postClues($id, $name, $mobile, $en_time, $remark, $to_customers = 0, $biz_id = 0)
|
||||
{
|
||||
$data = [
|
||||
'name' => $name,
|
||||
'mobile' => $mobile,
|
||||
'en_time' => $en_time,
|
||||
'out_id' => $id,
|
||||
'cf_platform' => self::CF_PLATFORM,
|
||||
'biz_id' => $biz_id,
|
||||
'to_customers' => $to_customers,
|
||||
'remark' => $remark,
|
||||
'nonce_str' => random_string('alpha'),
|
||||
'app_id' => $this->app_id,
|
||||
];
|
||||
$data['sign'] = $this->sign($data);
|
||||
$client = new GuzzleHttp\Client();
|
||||
$options = [
|
||||
\GuzzleHttp\RequestOptions::HEADERS => ['Content-Type' => 'application/json'],
|
||||
\GuzzleHttp\RequestOptions::JSON => $data,
|
||||
];
|
||||
$url = $this->api_url . self::CLUES_METHOD;
|
||||
try {
|
||||
debug_log("[info]#请求地址:" . $url, $this->log_path);
|
||||
debug_log("[info]#请求参数:" . json_encode($data, JSON_UNESCAPED_UNICODE), $this->log_path);
|
||||
$response = $client->post($url, $options);
|
||||
debug_log("[info]#返回信息:" . $response->getBody(), $this->log_path);
|
||||
if ($response->getStatusCode() != 200) {
|
||||
debug_log("[error]#" . $response->getStatusCode(), $this->log_path);
|
||||
return ['code' => 0, 'msg' => '网络错误:' . $response->getStatusCode()];
|
||||
}
|
||||
$reqInfo = json_decode($response->getBody());
|
||||
if (!$reqInfo || $reqInfo->code != 200) {
|
||||
$msg = $reqInfo ? $reqInfo->msg : '';
|
||||
return ['code' => 0, 'msg' => '保存失败:' . $msg];
|
||||
}
|
||||
return ['code' => 1, 'msg' => '保存成功'];
|
||||
} catch (Exception $e) {
|
||||
debug_log("[error]#" . $e->getMessage(), $this->log_path);
|
||||
return ['code' => 0, 'msg' => $e->getMessage()];
|
||||
}
|
||||
}
|
||||
|
||||
public function getStatus($out_ids)
|
||||
{
|
||||
if (is_array($out_ids)) {
|
||||
$out_ids = implode(',', $out_ids);
|
||||
}
|
||||
$data = [
|
||||
'out_ids' => $out_ids,
|
||||
'cf_platform' => self::CF_PLATFORM,
|
||||
'nonce_str' => random_string('alpha'),
|
||||
'app_id' => $this->app_id,
|
||||
];
|
||||
$data['sign'] = $this->sign($data);
|
||||
$client = new GuzzleHttp\Client();
|
||||
$options = [
|
||||
\GuzzleHttp\RequestOptions::HEADERS => ['Content-Type' => 'application/json'],
|
||||
\GuzzleHttp\RequestOptions::JSON => $data,
|
||||
];
|
||||
$url = $this->api_url . self::STATUS_METHOD;
|
||||
try {
|
||||
debug_log("[info]#请求地址:" . $url, $this->log_path);
|
||||
debug_log("[info]#请求参数:" . json_encode($data, JSON_UNESCAPED_UNICODE), $this->log_path);
|
||||
$response = $client->post($url, $options);
|
||||
debug_log("[info]#返回信息:" . $response->getBody(), $this->log_path);
|
||||
if ($response->getStatusCode() != 200) {
|
||||
debug_log("[error]#" . $response->getStatusCode(), $this->log_path);
|
||||
return ['code' => 0, 'msg' => '网络错误:' . $response->getStatusCode()];
|
||||
}
|
||||
$reqInfo = json_decode($response->getBody(), true);
|
||||
if (!$reqInfo || $reqInfo['code'] != 200) {
|
||||
$msg = $reqInfo ? $reqInfo['msg'] : '';
|
||||
return ['code' => 0, 'msg' => '保存失败:' . $msg];
|
||||
}
|
||||
return ['code' => 1, 'msg' => '保存成功', 'data' => $reqInfo['data']];
|
||||
} catch (Exception $e) {
|
||||
debug_log("[error]#" . $e->getMessage(), $this->log_path);
|
||||
return ['code' => 0, 'msg' => $e->getMessage()];
|
||||
}
|
||||
}
|
||||
|
||||
public function getBiz($biz_id, $cache = true)
|
||||
{
|
||||
$cacheKey = "SYSTOPIC_SSAPI_BIZ_{$biz_id}";
|
||||
$redis = &load_cache();
|
||||
if ($cache) {
|
||||
$bizInfo = $redis->get($cacheKey);
|
||||
if ($bizInfo) {
|
||||
return ['code' => 1, 'msg' => 'success', 'data' => $bizInfo];
|
||||
}
|
||||
}
|
||||
//数据缓存
|
||||
$data = [
|
||||
'biz_id' => $biz_id,
|
||||
'nonce_str' => random_string('alpha'),
|
||||
'app_id' => $this->app_id,
|
||||
];
|
||||
$data['sign'] = $this->sign($data);
|
||||
$client = new GuzzleHttp\Client();
|
||||
$options = [
|
||||
\GuzzleHttp\RequestOptions::HEADERS => ['Content-Type' => 'application/json'],
|
||||
];
|
||||
$url = $this->api_url . self::BIZ_METHOD . '?' . http_build_query($data);
|
||||
try {
|
||||
debug_log("[info]#请求地址:" . $url, $this->log_path);
|
||||
$response = $client->get($url, $options);
|
||||
debug_log("[info]#返回信息:" . $response->getBody(), $this->log_path);
|
||||
if ($response->getStatusCode() != 200) {
|
||||
debug_log("[error]#" . $response->getStatusCode(), $this->log_path);
|
||||
return ['code' => 0, 'msg' => '网络错误:' . $response->getStatusCode()];
|
||||
}
|
||||
$reqInfo = json_decode($response->getBody(), true);
|
||||
if (!$reqInfo || $reqInfo['code'] != 200) {
|
||||
$msg = $reqInfo ? $reqInfo['msg'] : '';
|
||||
return ['code' => 0, 'msg' => '请求失败:' . $msg];
|
||||
}
|
||||
$redis->save($cacheKey, $reqInfo['data'], 60 * 60);
|
||||
return ['code' => 1, 'msg' => 'success', 'data' => $reqInfo['data']];
|
||||
} catch (Exception $e) {
|
||||
debug_log("[error]#" . $e->getMessage(), $this->log_path);
|
||||
return ['code' => 0, 'msg' => $e->getMessage()];
|
||||
}
|
||||
}
|
||||
|
||||
private function sign($param)
|
||||
{
|
||||
unset($param['sign']);
|
||||
//按字典序排序参数
|
||||
ksort($param);
|
||||
$buff = "";
|
||||
foreach ($param as $k => $v) {
|
||||
if (!is_array($v) && strlen($v) > 0) {
|
||||
$buff .= $k . "=" . ($v) . "&";
|
||||
}
|
||||
}
|
||||
$buff = trim($buff, "&");
|
||||
$buff = $buff . "&key=" . $this->sign_key;
|
||||
return strtoupper(md5($buff));
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
class Sylive2_data_entity{
|
||||
|
||||
const DF_IMG = 'https://qs.liche.cn/web/images/project/H5-ShiYu/goodslogo.jpg'; //东风图标
|
||||
const DF_IMG = 'https://qs.haodian.cn/web/images/project/H5-ShiYu/goodslogo.jpg'; //东风图标
|
||||
|
||||
private $ci;
|
||||
private $show_echarts = false;
|
||||
|
||||
@@ -1,25 +1,22 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* 私域直播
|
||||
*/
|
||||
class Sylive2_entity
|
||||
{
|
||||
class Sylive2_entity{
|
||||
|
||||
private $ci;
|
||||
private $map_kpi_biz = [
|
||||
'browse' => 'browse', 'subscribe' => 'subscribe', 'order' => 'orderTotal', 'watch' => 'watch', 'beforeOrder' => 'beforeOrderTotal'
|
||||
'browse' => 'browse', 'subscribe' => 'subscribe', 'order' => 'orderTotal','watch' => 'watch','beforeOrder' => 'beforeOrderTotal'
|
||||
];
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
public function __construct(){
|
||||
$this->ci = &get_instance();
|
||||
$this->ci->load->model('market/market_sylive_user_model', 'user_model');
|
||||
$this->ci->load->model('market/market_sylive_activity_user_model', 'act_user_model');
|
||||
$this->ci->load->model('market/market_sylive_groups_model', 'groups_model');
|
||||
$this->ci->load->model('market/market_sylive_groups_user_model', 'groups_user_model');
|
||||
$this->ci->load->model('market/market_sys_dictionary_data_model');
|
||||
$this->ci->load->model('market/market_sylive_activity_kpidata_model', 'mdSytActivityKpiData');
|
||||
$this->ci->load->model('market/market_sylive_activity_kpidata_model','mdSytActivityKpiData');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -28,16 +25,15 @@ class Sylive2_entity
|
||||
* @param $data
|
||||
* @return int
|
||||
*/
|
||||
public function get_group_lists($groupsId, $a_id, $data = [])
|
||||
{
|
||||
$row = $this->ci->groups_model->get(['groupsId' => $groupsId, 'activityId' => $a_id], 'groupsId,parentId,groupsName');
|
||||
if (!$row) {
|
||||
public function get_group_lists($groupsId,$a_id,$data=[]){
|
||||
$row = $this->ci->groups_model->get(['groupsId'=>$groupsId,'activityId'=>$a_id],'groupsId,parentId,groupsName');
|
||||
if(!$row){
|
||||
return $data;
|
||||
} else {
|
||||
array_unshift($data, $row);
|
||||
if ($row['parentId']) {
|
||||
return $this->get_group_lists($row['parentId'], $a_id, $data);
|
||||
} else {
|
||||
}else{
|
||||
array_unshift($data,$row);
|
||||
if($row['parentId']){
|
||||
return $this->get_group_lists($row['parentId'],$a_id,$data);
|
||||
}else{
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
@@ -50,32 +46,19 @@ class Sylive2_entity
|
||||
*/
|
||||
public function kpi_log($params)
|
||||
{
|
||||
$mkKpiData = new Market_sylive_activity_kpidata_model();
|
||||
if ($params['a_id'] && $params['uid'] && $params['cf_uid']) {
|
||||
$user = $this->user_model->get(['userId' => $params['uid']]);
|
||||
$act_user = $this->act_user_model->get(['activityId' => $params['a_id'], 'userId' => $params['cf_uid']]);
|
||||
if (!$user || !$act_user) {
|
||||
debug_log("[info]# " . 'uid:' . $params['uid'] . ' cf_uid:' . $params['cf_uid'] . '顾问不存在', 'market/sylive', 'kpi.log');
|
||||
$user = $this->user_model->get(['userId'=>$params['uid']]);
|
||||
$act_user = $this->act_user_model->get(['activityId'=>$params['a_id'],'userId'=>$params['cf_uid']]);
|
||||
if(!$user || !$act_user){
|
||||
debug_log("[info]# " .'uid:'.$params['uid'].' cf_uid:'.$params['cf_uid'].'顾问不存在', 'market/sylive','kpi.log');
|
||||
return array('code' => 0, 'msg' => '顾问不存在');
|
||||
}
|
||||
if (!in_array($params['kpi'], ['order', $mkKpiData::KYP_SHARE]) || $params["itemId"] == 19) { //订单可添加多条kpi 商品id=19也只能加一次
|
||||
if(!in_array($params['kpi'],['order']) || $params["itemId"]==19){ //订单可添加多条kpi 商品id=19也只能加一次
|
||||
$re_kpi = $this->ci->mdSytActivityKpiData->get(array("activityId" => $params['a_id'], 'userId' => $params['uid'], 'kpi' => $params['kpi']));
|
||||
if ($re_kpi) {//已添加过活动kpi(访活动只记录一次用户kpi记录)
|
||||
return array('code' => 0, 'msg' => '已添加过' . $params['kpi'] . '记录');
|
||||
}
|
||||
}
|
||||
if ($params['kpi'] == $mkKpiData::KYP_SHARE) {
|
||||
$where = [
|
||||
"activityId" => $params['a_id'],
|
||||
'userId' => $params['uid'],
|
||||
'kpi' => $params['kpi'],
|
||||
'cfShare' => $params['cfShare']
|
||||
];
|
||||
$re_kpi = $this->ci->mdSytActivityKpiData->get($where);
|
||||
if ($re_kpi) {
|
||||
return ['code' => 0, 'msg' => '已添加过' . $params['kpi'] . '记录'];
|
||||
}
|
||||
}
|
||||
//增加记录
|
||||
$addData = [
|
||||
'activityId' => $params['a_id'],
|
||||
@@ -85,10 +68,10 @@ class Sylive2_entity
|
||||
'createTime' => time(),
|
||||
'day' => date('Y-m-d')
|
||||
];
|
||||
if ($params['c_time']) { //指定创建时间
|
||||
$addData['updateTime'] = date('Y-m-d H:i:s', $params['c_time']);
|
||||
if($params['c_time']){ //指定创建时间
|
||||
$addData['updateTime'] = date('Y-m-d H:i:s',$params['c_time']);
|
||||
$addData['createTime'] = $params['c_time'];
|
||||
$addData['day'] = date('Y-m-d', $params['c_time']);
|
||||
$addData['day'] = date('Y-m-d',$params['c_time']);
|
||||
}
|
||||
$act_user['bizId'] && $addData['bizId'] = $act_user['bizId'];
|
||||
$act_user['levelId1'] && $addData['levelId1'] = $act_user['levelId1'];
|
||||
@@ -98,12 +81,11 @@ class Sylive2_entity
|
||||
$params['itemId'] && $addData['itemId'] = $params['itemId'];
|
||||
$jsondata = $params['jsondata'] ? $params['jsondata'] : [];
|
||||
$jsondata && $addData['jsondata'] = json_encode($jsondata, JSON_UNESCAPED_UNICODE);
|
||||
$params['cfShare'] && $addData['cfShare'] = $params['cfShare'];
|
||||
$id = $this->ci->mdSytActivityKpiData->add($addData);
|
||||
if (!$id) {
|
||||
return array('code' => 0, 'msg' => '添加记录失败');
|
||||
}
|
||||
$this->kpi_count($params['a_id'], $params['kpi'], $params['cf_uid']);
|
||||
$this->kpi_count($params['a_id'],$params['kpi'],$params['cf_uid']);
|
||||
return array('code' => 1, 'msg' => '添加记录成功');
|
||||
} else {
|
||||
return array('code' => 0, 'msg' => '参数错误');
|
||||
@@ -117,52 +99,51 @@ class Sylive2_entity
|
||||
* @param $cf_uid
|
||||
* @return array
|
||||
*/
|
||||
public function kpi_count($a_id, $kpi, $cf_uid)
|
||||
{
|
||||
if ($this->map_kpi_biz[$kpi] && $cf_uid && $a_id) {
|
||||
public function kpi_count($a_id,$kpi,$cf_uid){
|
||||
if($this->map_kpi_biz[$kpi] && $cf_uid && $a_id){
|
||||
$up_key = $this->map_kpi_biz[$kpi];
|
||||
$total = $this->ci->mdSytActivityKpiData->count(['activityId' => $a_id, 'cfUserId' => $cf_uid, 'kpi' => $kpi]);
|
||||
$total = $this->ci->mdSytActivityKpiData->count(['activityId'=>$a_id,'cfUserId'=>$cf_uid,'kpi'=>$kpi]);
|
||||
$update = [
|
||||
$up_key => $total
|
||||
];
|
||||
//更新活动用户表统计数据
|
||||
$this->ci->act_user_model->update($update, ['activityId' => $a_id, 'userId' => $cf_uid]);
|
||||
$this->ci->act_user_model->update($update,['activityId'=>$a_id,'userId'=>$cf_uid]);
|
||||
//更新分组用户统计
|
||||
$this->ci->groups_user_model->update($update, ['activityId' => $a_id, 'userId' => $cf_uid]);
|
||||
$this->ci->groups_user_model->update($update,['activityId'=>$a_id,'userId'=>$cf_uid]);
|
||||
//更新分组统计
|
||||
$group_user = $this->groups_user_model->get(['activityId' => $a_id, 'userId' => $cf_uid]);
|
||||
if ($group_user['levelId1']) {
|
||||
$total = $this->ci->mdSytActivityKpiData->count(['activityId' => $a_id, 'levelId1' => $group_user['levelId1'], 'kpi' => $kpi]);
|
||||
$group_user = $this->groups_user_model->get(['activityId'=>$a_id,'userId'=>$cf_uid]);
|
||||
if($group_user['levelId1']){
|
||||
$total = $this->ci->mdSytActivityKpiData->count(['activityId'=>$a_id,'levelId1'=>$group_user['levelId1'],'kpi'=>$kpi]);
|
||||
$update = [
|
||||
$up_key => $total
|
||||
];
|
||||
$this->ci->groups_model->update($update, ['activityId' => $a_id, 'groupsId' => $group_user['levelId1']]);
|
||||
$this->ci->groups_model->update($update,['activityId'=>$a_id,'groupsId'=>$group_user['levelId1']]);
|
||||
}
|
||||
if ($group_user['levelId2']) {
|
||||
$total = $this->ci->mdSytActivityKpiData->count(['activityId' => $a_id, 'levelId2' => $group_user['levelId2'], 'kpi' => $kpi]);
|
||||
if($group_user['levelId2']){
|
||||
$total = $this->ci->mdSytActivityKpiData->count(['activityId'=>$a_id,'levelId2'=>$group_user['levelId2'],'kpi'=>$kpi]);
|
||||
$update = [
|
||||
$up_key => $total
|
||||
];
|
||||
$this->ci->groups_model->update($update, ['activityId' => $a_id, 'groupsId' => $group_user['levelId2']]);
|
||||
$this->ci->groups_model->update($update,['activityId'=>$a_id,'groupsId'=>$group_user['levelId2']]);
|
||||
}
|
||||
if ($group_user['levelId3']) {
|
||||
$total = $this->ci->mdSytActivityKpiData->count(['activityId' => $a_id, 'levelId3' => $group_user['levelId3'], 'kpi' => $kpi]);
|
||||
if($group_user['levelId3']){
|
||||
$total = $this->ci->mdSytActivityKpiData->count(['activityId'=>$a_id,'levelId3'=>$group_user['levelId3'],'kpi'=>$kpi]);
|
||||
$update = [
|
||||
$up_key => $total
|
||||
];
|
||||
$this->ci->groups_model->update($update, ['activityId' => $a_id, 'groupsId' => $group_user['levelId3']]);
|
||||
$this->ci->groups_model->update($update,['activityId'=>$a_id,'groupsId'=>$group_user['levelId3']]);
|
||||
}
|
||||
//更新门店
|
||||
if ($group_user['bizId']) {
|
||||
$total = $this->ci->mdSytActivityKpiData->count(['activityId' => $a_id, 'bizId' => $group_user['bizId'], 'kpi' => $kpi]);
|
||||
if($group_user['bizId']){
|
||||
$total = $this->ci->mdSytActivityKpiData->count(['activityId'=>$a_id,'bizId'=>$group_user['bizId'],'kpi'=>$kpi]);
|
||||
$update = [
|
||||
$up_key => $total
|
||||
];
|
||||
$this->ci->groups_model->update($update, ['activityId' => $a_id, 'groupsId' => $group_user['bizId']]);
|
||||
$this->ci->groups_model->update($update,['activityId'=>$a_id,'groupsId'=>$group_user['bizId']]);
|
||||
}
|
||||
return ['code' => 1, 'msg' => '更新成功'];
|
||||
} else {
|
||||
return ['code' => 0, 'msg' => '参数错误'];
|
||||
return ['code'=>1,'msg'=>'更新成功'];
|
||||
}else{
|
||||
return ['code'=>0,'msg'=>'参数错误'];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,14 +152,13 @@ class Sylive2_entity
|
||||
* @param $a_id
|
||||
* @return array
|
||||
*/
|
||||
public function level_disk($a_id, $groupsLevel = 0)
|
||||
{
|
||||
$top_group = $this->ci->groups_model->get(['activityId' => $a_id, 'parentId' => 0], 'statisticsType');
|
||||
public function level_disk($a_id,$groupsLevel=0){
|
||||
$top_group = $this->ci->groups_model->get(['activityId'=>$a_id,'parentId'=>0],'statisticsType');
|
||||
$disk = [];
|
||||
if ($top_group['statisticsType']) {
|
||||
$where = ['dictId' => $top_group['statisticsType']];
|
||||
if($top_group['statisticsType']){
|
||||
$where = ['dictId'=>$top_group['statisticsType']];
|
||||
$groupsLevel && $where["dictDataCode>"] = $groupsLevel;
|
||||
$disk = $this->ci->market_sys_dictionary_data_model->map('dictDataCode', 'dictDataName', $where, '', '', '', 'dictDataName,dictDataCode');
|
||||
$disk = $this->ci->market_sys_dictionary_data_model->map('dictDataCode','dictDataName',$where,'','','','dictDataName,dictDataCode');
|
||||
}
|
||||
return $disk;
|
||||
}
|
||||
@@ -188,13 +168,12 @@ class Sylive2_entity
|
||||
* @param $a_id
|
||||
* @return array
|
||||
*/
|
||||
public function level_disk_lists($a_id)
|
||||
{
|
||||
$top_group = $this->ci->groups_model->get(['activityId' => $a_id, 'parentId' => 0], 'statisticsType');
|
||||
public function level_disk_lists($a_id){
|
||||
$top_group = $this->ci->groups_model->get(['activityId'=>$a_id,'parentId'=>0],'statisticsType');
|
||||
$disk = [];
|
||||
if ($top_group['statisticsType']) {
|
||||
$where = ['dictId' => $top_group['statisticsType']];
|
||||
$disk = $this->ci->market_sys_dictionary_data_model->select($where, '', '', '', 'dictDataName,dictDataCode');
|
||||
if($top_group['statisticsType']){
|
||||
$where = ['dictId'=>$top_group['statisticsType']];
|
||||
$disk = $this->ci->market_sys_dictionary_data_model->select($where,'','','','dictDataName,dictDataCode');
|
||||
}
|
||||
return $disk;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
class Sylive_data_entity{
|
||||
|
||||
const DF_IMG = 'https://qs.liche.cn/web/images/project/H5-ShiYu/goodslogo.jpg'; //东风图标
|
||||
const DF_IMG = 'https://qs.haodian.cn/web/images/project/H5-ShiYu/goodslogo.jpg'; //东风图标
|
||||
|
||||
private $ci;
|
||||
private $map_kpi_biz = [
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
*/
|
||||
class Sylive_entity{
|
||||
|
||||
const DEFAULT_HEAD = 'https://qs.liche.cn/web/images/project/H5-ShiYu/default-head.png'; //默认头像
|
||||
const DEFAULT_HEAD = 'https://qs.haodian.cn/web/images/project/H5-ShiYu/default-head.png'; //默认头像
|
||||
const DF_IMG = 'https://img.liche.cn/liche/market/202211/p_862550a2bf8e50f88ccc7b435be62db3.jpg'; //东风图标
|
||||
const HD_IMG = 'https://qs.liche.cn/web/images/project/H5-ShiYu/default-avatar.jpg'; //好店云默认头像
|
||||
const DF_BANNER = 'https://qs.liche.cn/web/images/project/H5-ShiYu/upload/upload-1.jpg'; //默认背景图
|
||||
const HD_IMG = 'https://qs.haodian.cn/web/images/project/H5-ShiYu/default-avatar.jpg'; //好店云默认头像
|
||||
const DF_BANNER = 'https://qs.haodian.cn/web/images/project/H5-ShiYu/upload/upload-1.jpg'; //默认背景图
|
||||
private $ci;
|
||||
private $map_kpi_biz = [
|
||||
'browse' => 'browse', 'subscribe' => 'subscribe', 'order' => 'orderTotal','watch' => 'watch'
|
||||
@@ -127,7 +127,7 @@ class Sylive_entity{
|
||||
* @return int
|
||||
*/
|
||||
public function get_level_lists($organizationId,$data=[]){
|
||||
$row = $this->ci->market_sylive_organization_model->get(['organizationId'=>$organizationId, 'status' => 0],'organizationId,parentId,organizationName,logo');
|
||||
$row = $this->ci->market_sylive_organization_model->get(['organizationId'=>$organizationId],'organizationId,parentId,organizationName,logo');
|
||||
if(!$row){
|
||||
return $data;
|
||||
}else{
|
||||
@@ -242,7 +242,7 @@ class Sylive_entity{
|
||||
}
|
||||
|
||||
//门店用户排行数据
|
||||
public function top_biz_user($aid,$biz_id,$uid,$type='browse',$page=1,$size=90){
|
||||
public function top_biz_user($aid,$biz_id,$uid,$type='browse',$page=1,$size=50){
|
||||
if(!$biz_id){
|
||||
return ['total' => 0, 'lists' => []];
|
||||
}
|
||||
@@ -275,7 +275,7 @@ class Sylive_entity{
|
||||
}
|
||||
$num_tip = $type == 'order' ? '单' : '人';
|
||||
foreach ($rows as $item) {
|
||||
$num = $map[$item['userId']] ? $map[$item['userId']] : '0';
|
||||
$total = $map[$item['userId']] ? $map[$item['userId']] : '0';
|
||||
$lists[] = [
|
||||
'uid' => $item['userId'],
|
||||
'name' => $item['uname'] ? $item['uname'] : $item['nickname'],
|
||||
@@ -518,4 +518,4 @@ class Sylive_entity{
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
<?php
|
||||
|
||||
use GuzzleHttp\Exception\RequestException;
|
||||
|
||||
class Sytopic_enroll_entity
|
||||
{
|
||||
private $log_file = 'sytopic_enroll_syn.log';
|
||||
private $ci;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->ci = &get_instance();
|
||||
$this->ci->load->model('market/market_sylive_organization_model');
|
||||
$this->ci->load->model('market/market_sytopic_enroll_model', 'sytopic_enroll_model');
|
||||
$this->ci->load->model('market/Market_sytopic_model', 'topic_model');
|
||||
$this->ci->load->model('market/Market_sytopic_module_option_model', 'module_option_model');
|
||||
$this->ci->load->model('market/Market_sytopic_module_model', 'module_model');
|
||||
$this->ci->load->library('ssApi');
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步专题报名数据
|
||||
* @param $enrollId 报名id
|
||||
* @return array
|
||||
*/
|
||||
public function synEnroll($enrollId)
|
||||
{
|
||||
$enrollModel = new Market_sytopic_enroll_model();
|
||||
debug_log("[info]# 报名id:" . $enrollId, $this->log_file);
|
||||
$enrollRow = $this->ci->sytopic_enroll_model->get(['id' => $enrollId]);
|
||||
$topicRow = $organizationRow = '';
|
||||
$enrollRow && $topicRow = $this->ci->topic_model->get(['id' => $enrollRow['topicId']]);
|
||||
$topicRow && $organizationRow = $this->ci->market_sylive_organization_model->get(['organizationId' => $topicRow['organizationId']]);
|
||||
if (!$enrollRow) {
|
||||
debug_log("[error]# 报名数据不存在.", $this->log_file);
|
||||
return ['code' => 0, 'msg' => '报名数据不存在'];
|
||||
}
|
||||
if (!$topicRow) {
|
||||
debug_log("[error]# 专题不存在.", $this->log_file);
|
||||
return ['code' => 0, 'msg' => '专题不存在'];
|
||||
}
|
||||
if (!$organizationRow) {
|
||||
debug_log("[error]# 机构不存在.", $this->log_file);
|
||||
return ['code' => 0, 'msg' => '机构不存在'];
|
||||
}
|
||||
$enrollDeal = (int)$enrollRow['enrollDeal'];
|
||||
$ssApi = new SsApi();
|
||||
if ($enrollDeal === $enrollModel::ENROLL_DEAL_NO) {
|
||||
debug_log("[info]# 不需要处理.", $this->log_file);
|
||||
return ['code' => 0, 'msg' => '无需处理'];
|
||||
} else { //同步到客户
|
||||
debug_log("[info]# 同步到空间站.", $this->log_file);
|
||||
$to_customers = 0;
|
||||
if ($enrollDeal == $enrollModel::ENROLL_DEAL_PUSH_CUSTOMER) {
|
||||
$to_customers = 1;
|
||||
}
|
||||
$modelOptionRow = $this->ci->module_option_model->get(['id' => $enrollRow['moduleOptionId']]);
|
||||
$modelRow = $this->ci->module_model->get(['id' => $enrollRow['moduleId']]);
|
||||
if ($modelOptionRow || $modelRow) {
|
||||
$remark = "用户通过 " .$topicRow['title']."-" .$modelRow['title'];
|
||||
$modelOptionRow && $remark .= "-" . $modelOptionRow['title'];
|
||||
$remark .= " 留资";
|
||||
} else {
|
||||
$remark = '用户通过 ' . $topicRow['title'] . ' 留资';
|
||||
}
|
||||
$res = $ssApi->postClues($enrollId, $enrollRow['name'],
|
||||
$enrollRow['mobile'], $enrollRow['enTime'], $remark, $to_customers, (int)$organizationRow['comments']);
|
||||
debug_log("[info]# 接口请求结果:" . json_encode($res, JSON_UNESCAPED_UNICODE), $this->log_file);
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
|
||||
public function __get($name)
|
||||
{
|
||||
if ('_model' === substr($name, -6)) {
|
||||
return $this->ci->$name;
|
||||
} elseif ('load' == $name) {
|
||||
return $this->ci->load;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -272,69 +272,66 @@ class Order_datas_entity{
|
||||
$ins_info = $jsondata['ins_info'] ? $jsondata['ins_info'] : [];
|
||||
if($insurance_img['img']){
|
||||
$url = build_qiniu_image_url($insurance_img['img']);
|
||||
// $ins_key = md5($url);
|
||||
// if(!$ins_info[$ins_key]){
|
||||
//// $result = $this->ci->qiniuorc->car_insure($url);
|
||||
// $result = $this->ci->tcmarket->autoInsurance($url);
|
||||
// if ($result['code']) {
|
||||
// $ins_info[$ins_key]['msg'] = $result['msg'];
|
||||
// $ins_info[$ins_key]['data'] = $result['data'];
|
||||
// $ins_info[$ins_key]['img_url'] = $url;
|
||||
// $jsondata['ins_info'] = $ins_info;
|
||||
// $insurance_img['price'] = floatval($result['data']['premium']);
|
||||
// $insurance_img['date'] = $result['data']['policyStartDate'];
|
||||
// $insurance_img['product'] = $result['data']['companyName'];
|
||||
// }else{
|
||||
// $ins_info[$ins_key]['msg'] = $result['msg'];
|
||||
// $ins_info[$ins_key]['img_url'] = $url;
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
$ins_key = md5($url);
|
||||
if(!$ins_info[$ins_key]){
|
||||
// $result = $this->ci->qiniuorc->car_insure($url);
|
||||
$result = $this->ci->tcmarket->autoInsurance($url);
|
||||
if ($result['code']) {
|
||||
$ins_info[$ins_key]['msg'] = $result['msg'];
|
||||
$ins_info[$ins_key]['data'] = $result['data'];
|
||||
$ins_info[$ins_key]['img_url'] = $url;
|
||||
$jsondata['ins_info'] = $ins_info;
|
||||
$insurance_img['price'] = floatval($result['data']['premium']);
|
||||
$insurance_img['date'] = $result['data']['policyStartDate'];
|
||||
$insurance_img['product'] = $result['data']['companyName'];
|
||||
}else{
|
||||
$ins_info[$ins_key]['msg'] = $result['msg'];
|
||||
$ins_info[$ins_key]['img_url'] = $url;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if($business_img['img']){
|
||||
$url = build_qiniu_image_url($business_img['img']);
|
||||
$ins_key = md5($url);
|
||||
// if(!$ins_info[$ins_key]){
|
||||
//// $result = $this->ci->qiniuorc->car_insure($url);
|
||||
// $result = $this->ci->tcmarket->autoInsurance($url);
|
||||
// if ($result['code']) {
|
||||
// $ins_info[$ins_key]['msg'] = $result['msg'];
|
||||
// $ins_info[$ins_key]['data'] = $result['data'];
|
||||
// $ins_info[$ins_key]['img_url'] = $url;
|
||||
// $jsondata['ins_info'] = $ins_info;
|
||||
// $business_img['price'] = floatval($result['data']['premium']);
|
||||
// $business_img['date'] = $result['data']['policyStartDate'];
|
||||
// $business_img['product'] = $result['data']['companyName'];
|
||||
// }else{
|
||||
// $ins_info[$ins_key]['msg'] = $result['msg'];
|
||||
// $ins_info[$ins_key]['img_url'] = $url;
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
if(!$ins_info[$ins_key]){
|
||||
// $result = $this->ci->qiniuorc->car_insure($url);
|
||||
$result = $this->ci->tcmarket->autoInsurance($url);
|
||||
if ($result['code']) {
|
||||
$ins_info[$ins_key]['msg'] = $result['msg'];
|
||||
$ins_info[$ins_key]['data'] = $result['data'];
|
||||
$ins_info[$ins_key]['img_url'] = $url;
|
||||
$jsondata['ins_info'] = $ins_info;
|
||||
$business_img['price'] = floatval($result['data']['premium']);
|
||||
$business_img['date'] = $result['data']['policyStartDate'];
|
||||
$business_img['product'] = $result['data']['companyName'];
|
||||
}else{
|
||||
$ins_info[$ins_key]['msg'] = $result['msg'];
|
||||
$ins_info[$ins_key]['img_url'] = $url;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if($accident_img['img']){
|
||||
$url = build_qiniu_image_url($accident_img['img']);
|
||||
// $ins_key = md5($url);
|
||||
// if(!$ins_info[$ins_key]){
|
||||
// $result = $this->ci->tcmarket->autoInsurance($url);
|
||||
// if ($result['code']) {
|
||||
// $ins_info[$ins_key]['msg'] = $result['msg'];
|
||||
// $ins_info[$ins_key]['data'] = $result['data'];
|
||||
// $ins_info[$ins_key]['img_url'] = $url;
|
||||
// $jsondata['ins_info'] = $ins_info;
|
||||
// $accident_img['price'] = floatval($result['data']['premium']);
|
||||
// $accident_img['date'] = $result['data']['policyStartDate'];
|
||||
// $accident_img['product'] = $result['data']['companyName'];
|
||||
// }else{
|
||||
// $ins_info[$ins_key]['msg'] = $result['msg'];
|
||||
// $ins_info[$ins_key]['img_url'] = $url;
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
$ins_key = md5($url);
|
||||
if(!$ins_info[$ins_key]){
|
||||
$result = $this->ci->tcmarket->autoInsurance($url);
|
||||
if ($result['code']) {
|
||||
$ins_info[$ins_key]['msg'] = $result['msg'];
|
||||
$ins_info[$ins_key]['data'] = $result['data'];
|
||||
$ins_info[$ins_key]['img_url'] = $url;
|
||||
$jsondata['ins_info'] = $ins_info;
|
||||
$accident_img['price'] = floatval($result['data']['premium']);
|
||||
$accident_img['date'] = $result['data']['policyStartDate'];
|
||||
$accident_img['product'] = $result['data']['companyName'];
|
||||
}else{
|
||||
$ins_info[$ins_key]['msg'] = $result['msg'];
|
||||
$ins_info[$ins_key]['img_url'] = $url;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
$update = [
|
||||
'jsondata' => json_encode($jsondata,JSON_UNESCAPED_UNICODE),
|
||||
'insurance_img' => json_encode($insurance_img,JSON_UNESCAPED_UNICODE),
|
||||
|
||||
@@ -831,7 +831,6 @@ class Orders_v2_entity{
|
||||
* 模板内容 SMS_241355543
|
||||
* 叮~小爱同学,订单 ${sid} 信息发生变化。客户订购车型由 ${car_a} 变更为 ${car_b},请知悉~
|
||||
*/
|
||||
return '';
|
||||
if(!template || !$params){
|
||||
return '';
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ class User_account_model extends HD_Model
|
||||
{
|
||||
return array(
|
||||
1 => array(
|
||||
'deal' => array('img_url' => 'https://qs.liche.cn/wechat_app/liche', 'bg_color' => '#fb3939'),
|
||||
'deal' => array('img_url' => 'https://qs.haodian.cn/wechat_app/liche', 'bg_color' => '#fb3939'),
|
||||
'rule' => ''
|
||||
)
|
||||
);
|
||||
|
||||
@@ -27,9 +27,9 @@ class App_liche_luckybag_users_model extends HD_Model
|
||||
{
|
||||
if ($type == 0) {
|
||||
$content = '入场礼于活动期间抵达内购会现场即可领取内购礼提车时一同领取,权益可转让给亲友';
|
||||
$gift = [1 => ['title' => '内购礼:电视机+内购会入场礼包', 'content' => $content, 'img' => 'https://qs.liche.cn/wechat_app/liche/ningDeFD/gift-1.jpg']
|
||||
, 2 => ['title' => '内购礼:电冰箱+内购会入场礼包', 'content' => $content, 'img' => 'https://qs.liche.cn/wechat_app/liche/ningDeFD/gift-2.jpg']
|
||||
, 3 => ['title' => '内购礼:自行车+内购会入场礼包', 'content' => $content, 'img' => 'https://qs.liche.cn/wechat_app/liche/ningDeFD/gift-3.jpg']];
|
||||
$gift = [1 => ['title' => '内购礼:电视机+内购会入场礼包', 'content' => $content, 'img' => 'https://qs.haodian.cn/wechat_app/liche/ningDeFD/gift-1.jpg']
|
||||
, 2 => ['title' => '内购礼:电冰箱+内购会入场礼包', 'content' => $content, 'img' => 'https://qs.haodian.cn/wechat_app/liche/ningDeFD/gift-2.jpg']
|
||||
, 3 => ['title' => '内购礼:自行车+内购会入场礼包', 'content' => $content, 'img' => 'https://qs.haodian.cn/wechat_app/liche/ningDeFD/gift-3.jpg']];
|
||||
} else {
|
||||
$gift = [1 => ['title' => '电视机', 'tag' => '电视机一台'], 2 => ['title' => '电冰箱', 'tag' => '电冰箱一台']
|
||||
, 3 => ['title' => '自行车', 'tag' => '自行车一辆']];
|
||||
|
||||
@@ -18,7 +18,7 @@ class Syt_activity_kpidata_model extends HD_Model
|
||||
|
||||
public function kpiAry($kpi = '', $title = '')
|
||||
{
|
||||
$url = 'https://qs.liche.cn/wechat_app/haodianyun/siyutong';
|
||||
$url = 'https://qs.haodian.cn/wechat_app/haodianyun/siyutong';
|
||||
$data['share'] = array('img' => $url . '/kpi2-1.png', 'title' => '分享', 'title1' => '分享次数', 'title2' => '分享次数', 'title3' => '分享人数'
|
||||
, 'num_tag' => '次', 'score_tag' => '分数');
|
||||
$data['browse'] = array('img' => $url . '/kpi2-2.png', 'title' => '浏览', 'title1' => '浏览用户', 'title2' => '浏览次数', 'title3' => '浏览人数'
|
||||
|
||||
@@ -34,7 +34,7 @@ class Bobing_user_model extends Base_model
|
||||
$config = array();
|
||||
if ($act_key == 2021) {
|
||||
$config = array(
|
||||
'title' => 'LiChe博饼', 'content' => '2021闽南博饼嘉年华', 'game_start_date' => '2021-09-08 10:00', 'game_end_date' => '2023-10-08 15:00',
|
||||
'title' => 'LiChe博饼', 'content' => '2021闽南博饼嘉年华', 'game_start_date' => '2021-09-08 10:00', 'game_end_date' => '2022-10-08 15:00',
|
||||
'group' => array('title' => '添加小狸', 'btn' => '加小狸企业微信', 'tips' => '通过后送288幸运分'),
|
||||
'app_id' => 1, 'act_key' => $act_key, 'kz_nums' => 5, 'zl_nums' => 5, 'wxqy_nums' => 500, 'ratio_hong_bao' => 40, 'ratio_car_gold_kz' => 60, 'ratio_car_gold_zl' => 40,
|
||||
'max_car_gold' => 500, 'buy_car_gold' => 500, 'max_hong_bao_day' => 500, 'lottery_nums' => 5, 'lotter_gold' => 1000,
|
||||
@@ -87,7 +87,7 @@ class Bobing_user_model extends Base_model
|
||||
if (!$key) {
|
||||
return $imgs;
|
||||
}
|
||||
$url = 'https://qs.liche.cn/wechat_app/liche/bobing/2021/';
|
||||
$url = 'https://qs.haodian.cn/wechat_app/liche/bobing/2021/';
|
||||
$url_id = $url;
|
||||
if ($id == 15) {//15ex1 13雷丁
|
||||
$url_id .= 'ex1-';
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by Vim
|
||||
* User: lcc
|
||||
* Date: 2021/06/29
|
||||
* Time: 13:47
|
||||
*/
|
||||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
class Hdcloud_clue_oplogs_model extends HD_Model
|
||||
{
|
||||
private $table_name = 'lc_hdcloud_clue_oplogs';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct($this->table_name, 'default');
|
||||
}
|
||||
|
||||
/**
|
||||
* Notes:类型
|
||||
* Created on: 2021/7/27 10:31
|
||||
* Created by: dengbw
|
||||
* @return array
|
||||
*/
|
||||
public function typeAry()
|
||||
{
|
||||
return array(0 => '小记', 1 => '发短信', 2 => '拨打号码');
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by Vim
|
||||
* User: lcc
|
||||
* Date: 2021/06/29
|
||||
* Time: 13:47
|
||||
*/
|
||||
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
class Hdcloud_clues_model extends HD_Model
|
||||
{
|
||||
private $table_name = 'lc_hdcloud_clues';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct($this->table_name, 'default');
|
||||
}
|
||||
|
||||
/**
|
||||
* Notes:线索状态
|
||||
* Created on: 2021/9/15 10:25
|
||||
* Created by: dengbw
|
||||
* @param $status
|
||||
* @return array
|
||||
*/
|
||||
public function statusAry($status = '')
|
||||
{
|
||||
$status_ary[0] = array('name' => '待处理', 'list' => array());
|
||||
$status_ary[1] = array('name' => '已派单', 'list' => array());
|
||||
|
||||
if (strlen($status)) {
|
||||
$return_status = $status_ary[$status];
|
||||
} else {
|
||||
$return_status = $status_ary;
|
||||
}
|
||||
return $return_status;
|
||||
}
|
||||
|
||||
//关联订单
|
||||
public function count_order($where)
|
||||
{
|
||||
return $this->select_order($where, '', '', '', '', 1);
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by Vim
|
||||
* User: lcc
|
||||
* Date: 2021/06/29
|
||||
* Time: 13:47
|
||||
*/
|
||||
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
class Neta_model extends HD_Model
|
||||
{
|
||||
private $table_name = 'lc_neta_101';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct($this->table_name, 'default');
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
class Market_register_model extends HD_Model
|
||||
{
|
||||
private $table_name = 'lc_market_register';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct($this->table_name, 'default');
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,10 @@
|
||||
<?php
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
class Market_sylive_activity_kpidata_model extends HD_Model
|
||||
{
|
||||
private $table_name = 'lc_market_sylive_activity_kpidata';
|
||||
|
||||
const KYP_SHARE = 'share'; //kpi类型分享海报
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct($this->table_name, 'default');
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Notes:私域直播_活动表
|
||||
@@ -10,8 +10,6 @@ class Market_sylive_activity_model extends HD_Model
|
||||
{
|
||||
private $table_name = 'lc_market_sylive_activity';
|
||||
|
||||
const KPI_SHARE_ID = 32; //这个活动id之后显示开工率
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct($this->table_name, 'default');
|
||||
|
||||
@@ -10,10 +10,6 @@ class Market_sylive_organization_model extends HD_Model
|
||||
{
|
||||
private $table_name = 'lc_market_sylive_organization';
|
||||
|
||||
const ENROLL_DEAL_NO = 0; // 报名不处理
|
||||
const ENROLL_DEAL_PUSH_CLUE = 1; // 提交狸车线索池
|
||||
const ENROLL_DEAL_PUSH_CUSTOMER = 2; // 提交狸车客户池
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct($this->table_name, 'default');
|
||||
|
||||
@@ -5,73 +5,48 @@ class Market_sytopic_enroll_model extends HD_Model
|
||||
{
|
||||
private $table_name = 'lc_market_sytopic_enroll';
|
||||
|
||||
const ENROLL_DEAL_NO = 0; // 报名不处理
|
||||
const ENROLL_DEAL_PUSH_CLUE = 1; // 提交狸车线索池
|
||||
const ENROLL_DEAL_PUSH_CUSTOMER = 2; // 提交狸车客户池
|
||||
|
||||
const STATUS_PENDING = 0; //待处理
|
||||
const STATUS_SHOP = 1; //已到店
|
||||
const STATUS_SUCCESS = 2; //已成交
|
||||
const STATUS_INVALID = 3; //无效
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct($this->table_name, 'default');
|
||||
}
|
||||
|
||||
//专题报名
|
||||
public function enroll($topicId, $moduleOptionId, $topicUserId, $name, $mobile)
|
||||
public function enroll($id, $topicUserId, $name, $mobile)
|
||||
{
|
||||
$this->load->model('market/Market_sytopic_user_model', 'topic_user_model');
|
||||
$this->load->model('market/market_sytopic_module_option_model');
|
||||
$this->load->model('market/market_sylive_organization_model');
|
||||
$this->load->model('market/market_sytopic_model', 'topic_model');
|
||||
$optionRow = $this->market_sytopic_module_option_model->get(['id' => $id]);
|
||||
$topicUser = $this->topic_user_model->get(['id' => $topicUserId]);
|
||||
$where = ['status' => 0, 'topicId' => $topicId, 'userId' => $topicUser['userId'], 'moduleOptionId' => 0];
|
||||
if ($moduleOptionId) {
|
||||
$where['moduleOptionId'] = $moduleOptionId;
|
||||
}
|
||||
$row = $this->get($where);
|
||||
$row = $this->get(['status' => 0, 'moduleOptionId' => $id, 'userId' => $topicUser['userId']]);
|
||||
if ($row) {
|
||||
// $this->update(['name' => $name, 'mobile' => $mobile], ['id' => $row['id']]);
|
||||
return ['code' => 0, 'msg' => '您的信息已收到,无需重复操作'];
|
||||
}
|
||||
if ($moduleOptionId) {
|
||||
$optionRow = $this->market_sytopic_module_option_model->get(['id' => $moduleOptionId]);
|
||||
}
|
||||
$topic = $this->topic_model->get(['id' => $topicId]);
|
||||
$org = $this->market_sylive_organization_model->get(['organizationId' => $topic['organizationId']]);
|
||||
$data = [
|
||||
'topicUserId' => $topicUserId,
|
||||
'userId' => $topicUser['userId'],
|
||||
'channelId' => $topicUser['channelId'],
|
||||
'topicId' => $topicId,
|
||||
'name' => $name,
|
||||
'mobile' => $mobile,
|
||||
'enTime' => date('Y-m-d H:i:s'),
|
||||
'createTime' => date('Y-m-d H:i:s'),
|
||||
'enrollDeal' => $org ? $org['enrollDeal'] : self::ENROLL_DEAL_NO,
|
||||
];
|
||||
$optionRow['id'] && $data['moduleOptionId'] = $optionRow['id'];
|
||||
$optionRow['topicId'] && $data['topicId'] = $optionRow['topicId'];
|
||||
$optionRow['moduleId'] && $data['moduleId'] = $optionRow['moduleId'];
|
||||
$res = $this->add($data);
|
||||
if (!$res) {
|
||||
return ['code' => 0, 'msg' => '提交失败'];
|
||||
}
|
||||
if (is_numeric($res)) { //数据同步到空间站
|
||||
$this->load->library('market/sytopic_enroll_entity');
|
||||
$this->sytopic_enroll_entity->synEnroll($res);
|
||||
}
|
||||
return ['code' => 1, 'msg' => '保存成功'];
|
||||
}
|
||||
|
||||
public function statusCn()
|
||||
{
|
||||
$statusArray = [
|
||||
self::STATUS_PENDING => '邀约中',
|
||||
self::STATUS_SHOP => '已到店',
|
||||
self::STATUS_SUCCESS => '已成交',
|
||||
self::STATUS_INVALID => '战败'
|
||||
0 => '待确认',
|
||||
1 => '已确认',
|
||||
2 => '无效单'
|
||||
];
|
||||
return $statusArray;
|
||||
}
|
||||
|
||||
@@ -11,10 +11,6 @@ class Market_sytopic_module_model extends HD_Model
|
||||
const TYPE_GRID = 4; //网格排列表
|
||||
const TYPE_HORIZONTAL = 5; // 横排
|
||||
const TYPE_ARTICLE = 6; // 文章
|
||||
const TYPE_ENROLL_BANNER = 7; // 报名轮播图
|
||||
const TYPE_ENROLL_GIFT = 8; // 礼品模块
|
||||
|
||||
const TYPE_ENROLL = 9; // 报名模块
|
||||
|
||||
const TYPE_ARRAY = [
|
||||
// self::TYPE_BANNER => '主图',
|
||||
@@ -23,9 +19,6 @@ class Market_sytopic_module_model extends HD_Model
|
||||
self::TYPE_HORIZONTAL => '横排报名',
|
||||
self::TYPE_SWIPER_BANNER => '轮播图',
|
||||
self::TYPE_ARTICLE => '富文本',
|
||||
self::TYPE_ENROLL_BANNER => '横排轮播图',
|
||||
self::TYPE_ENROLL_GIFT => '礼品',
|
||||
self::TYPE_ENROLL => '直接报名',
|
||||
];
|
||||
|
||||
public function __construct()
|
||||
@@ -35,8 +28,8 @@ class Market_sytopic_module_model extends HD_Model
|
||||
|
||||
public function getTopicModelIds($topicId)
|
||||
{
|
||||
$where = ['topicId' => $topicId, 'status' => 0, 'type!=' => self::TYPE_ENROLL_BANNER];
|
||||
$modelList = $this->map('id', '', $where, 'sort desc,type asc', 1, 100, 'id,type,title');
|
||||
$where = ['topicId' => $topicId, 'status' => 0];
|
||||
$modelList = $this->map('id','type',$where, 'sort desc,type asc', 1, 100, 'id,type');
|
||||
return $modelList ?: [];
|
||||
}
|
||||
|
||||
|
||||
@@ -20,53 +20,21 @@ class Market_sytopic_module_option_model extends HD_Model
|
||||
$where = ['topicId' => $topicId, 'status' => 0, "moduleId in ({$modelIdsStr})" => null];
|
||||
$modelOptionsList = $this->select($where, "FIELD (moduleId,{$modelIdsStr})", 1, 100);
|
||||
foreach ($modelOptionsList as $item) {
|
||||
$model = $modelList[$item['moduleId']][0];
|
||||
$lists[$item['moduleId']]['type'] = $model['type'];
|
||||
$lists[$item['moduleId']]['title'] = $model['title'];
|
||||
$lists[$item['moduleId']]['lists'][] = $this->formItem($model, $item);;
|
||||
}
|
||||
}
|
||||
return $lists;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取头部轮播
|
||||
* @param $topicId
|
||||
* @return array
|
||||
*/
|
||||
public function getTypeEnrollBannerList($topicId)
|
||||
{
|
||||
$this->load->model('market/market_sytopic_module_model');
|
||||
$moduleModel = new Market_sytopic_module_model();
|
||||
$modelList = $moduleModel->map('id', '', ['type' => $moduleModel::TYPE_ENROLL_BANNER, 'status' => 0], '', '', '', 'id,title');
|
||||
$lists = [];
|
||||
if ($modelList) {
|
||||
$modelIdsStr = implode(',', array_keys($modelList));
|
||||
$where = ['topicId' => $topicId, 'status' => 0, "moduleId in ({$modelIdsStr})" => null];
|
||||
$modelOptionsList = $this->select($where, "FIELD (moduleId,{$modelIdsStr})", 1, 100);
|
||||
foreach ($modelOptionsList as $item) {
|
||||
$model = $modelList[$item['moduleId']][0];
|
||||
$lists[] = [
|
||||
'id' => $item['id'],
|
||||
'title' => '',
|
||||
'model_title' => $model['title'],
|
||||
'popUpType' => $item['popUpType'],
|
||||
'banner' => $item['banner'] ? build_qiniu_image_url($item['banner']) : '',
|
||||
'type' => $moduleModel::TYPE_ENROLL_BANNER,
|
||||
];
|
||||
$type = $modelList[$item['moduleId']];
|
||||
$lists[$item['moduleId']]['type'] = $type;
|
||||
$lists[$item['moduleId']]['lists'][] = $this->formItem($type, $item);;
|
||||
}
|
||||
}
|
||||
return $lists;
|
||||
}
|
||||
|
||||
//格式化数据
|
||||
private function formItem($model, $item)
|
||||
private function formItem($type, $item)
|
||||
{
|
||||
$this->load->model('market/market_sytopic_module_model');
|
||||
$this->load->model('market/market_sytopic_enroll_model');
|
||||
$data = [
|
||||
'id' => $item['id'],
|
||||
'model_title' => $model['title'],
|
||||
'title' => $item['title'],
|
||||
'subTitle' => $item['subTitle'],
|
||||
'showBtn' => (bool)$item['showBtn'],
|
||||
@@ -83,8 +51,8 @@ class Market_sytopic_module_option_model extends HD_Model
|
||||
}
|
||||
}
|
||||
$data['otherImg'] = $otherImgSet;
|
||||
$jsonData = $item['jsondata'] ? json_decode($item['jsondata'], true) : [];
|
||||
switch ($model['type']) {
|
||||
$jsonData = json_encode($item['jsondata'], true);
|
||||
switch ($type) {
|
||||
case Market_sytopic_module_model::TYPE_DISCOUNT: //特惠报名
|
||||
$endTime = 0;
|
||||
$showTime = false;
|
||||
@@ -118,24 +86,9 @@ class Market_sytopic_module_option_model extends HD_Model
|
||||
$data['introduction'] = $item['introduction'];
|
||||
$data['createTime'] = $item['createTime'];
|
||||
break;
|
||||
case Market_sytopic_module_model::TYPE_ENROLL_GIFT://礼品模块
|
||||
$enroll = true; //是否可报名
|
||||
if ($item['enrollEndTime'] != '0000-00-00 00:00:00') {
|
||||
$enrollEndTime = $item['enrollEndTime'];
|
||||
if (strtotime($item['enrollEndTime']) - time() <= 0) {
|
||||
$data['btnText'] = '已结束';
|
||||
$enroll = false;
|
||||
}
|
||||
} else {
|
||||
$enrollEndTime = '';
|
||||
}
|
||||
$data['enrollEndTime'] = $enrollEndTime;
|
||||
$data['enroll'] = $enroll;
|
||||
break;
|
||||
default:
|
||||
$data['introduction'] = strip_tags($item['introduction']);
|
||||
}
|
||||
$data['jsonData'] = $jsonData;
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
@@ -87,7 +87,7 @@ class Receiver_customers_model extends HD_Model
|
||||
$arr[4] = ['name' => '外展外拓', 'list' => [' 40' => '精准地推', ' 41' => '车展', ' 42' => '静展', ' 43' => '走进企业']];
|
||||
$arr[5] = ['name' => '自媒体', 'list' => [' 50' => '小红书号', ' 51' => '咸鱼号', ' 52' => '抖音号', ' 53' => '狸车素材', ' 54' => '知乎号', ' 55' => '视频号']];
|
||||
$arr[6] = ['name' => '网络推广', 'list' => [' 60' => '抖音本地通表单', ' 61' => '抖音本地通私信', ' 62' => '视频号', ' 63' => '本地投放(狸车分配)']];
|
||||
$arr[7] = ['name' => '厂商分配', 'list' => [' 70' => '传统渠道', ' 71' => '垂媒-懂车帝', ' 72' => '垂媒-汽车之家', ' 73' => '垂媒-易车', ' 74' => '抖音-效果通', ' 75' => '抖音-本地推', ' 76' => '抖音-本地通', ' 77' => '直播活动']];
|
||||
$arr[7] = ['name' => '厂商分配', 'list' => [' 70' => '传统渠道', ' 71' => '垂媒-懂车帝', ' 72' => '垂媒-汽车之家', ' 73' => '垂媒-易车', ' 74' => '抖音-效果通', ' 75' => '抖音-本地生活', ' 76' => '抖音-本地通', ' 77' => '直播活动']];
|
||||
|
||||
if ($id) {
|
||||
return $arr[$id];
|
||||
@@ -103,7 +103,7 @@ class Receiver_customers_model extends HD_Model
|
||||
$arr[4] = ['name' => '外展外拓', 'list' => [40 => '精准地推', 41 => '车展', 42 => '静展', 43 => '走进企业']];
|
||||
$arr[5] = ['name' => '自媒体', 'list' => [50 => '小红书号', 51 => '咸鱼号', 52 => '抖音号', 53 => '狸车素材', 54 => '知乎号', 55 => '视频号']];
|
||||
$arr[6] = ['name' => '网络推广', 'list' => [60 => '抖音本地通表单', 61 => '抖音本地通私信', 62 => '视频号', 63 => '狸车分配']];
|
||||
$arr[7] = ['name' => '厂商分配', 'list' => [70 => '传统渠道', 71 => '垂媒-懂车帝', 72 => '垂媒-汽车之家', 73 => '垂媒-易车', 74 => '抖音-效果通', 75 => '抖音-本地推', 76 => '抖音-本地通', 77 => '直播活动']];
|
||||
$arr[7] = ['name' => '厂商分配', 'list' => [70 => '传统渠道', 71 => '垂媒-懂车帝', 72 => '垂媒-汽车之家', 73 => '垂媒-易车', 74 => '抖音-效果通', 75 => '抖音-本地生活', 76 => '抖音-本地通', 77 => '直播活动']];
|
||||
|
||||
if ($id) {
|
||||
return $arr[$id];
|
||||
@@ -206,16 +206,6 @@ class Receiver_customers_model extends HD_Model
|
||||
}
|
||||
}
|
||||
|
||||
public function cbrandAry($c_brand=null){
|
||||
$arr = [0 => '综合', 1 => '东风纳米', 4 => '哪吒', 5 => '零跑'];
|
||||
|
||||
if (is_numeric($c_brand)) {
|
||||
return $arr[$c_brand];
|
||||
} else {
|
||||
return $arr;
|
||||
}
|
||||
}
|
||||
|
||||
public function count_order($where)
|
||||
{
|
||||
return $this->select_order($where, '', '', '', '', 1);
|
||||
|
||||
+1
-1
@@ -4,4 +4,4 @@
|
||||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInitd0872984a1db7aa104ae1184a3170d3e::getLoader();
|
||||
return ComposerAutoloaderInit100dfac5df6b34365a27ff7ef036db8c::getLoader();
|
||||
|
||||
-1
@@ -1 +0,0 @@
|
||||
../wechatpay/wechatpay-guzzle-middleware/tool/CertificateDownloader.php
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
dir=$(cd "${0%[/\\]*}" > /dev/null; cd '../wechatpay/wechatpay-guzzle-middleware/tool' && pwd)
|
||||
|
||||
if [ -d /proc/cygdrive ]; then
|
||||
case $(which php) in
|
||||
$(readlink -n /proc/cygdrive)/*)
|
||||
# We are in Cygwin using Windows php, so the path must be translated
|
||||
dir=$(cygpath -m "$dir");
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
"${dir}/CertificateDownloader.php" "$@"
|
||||
+5
-2
@@ -6,13 +6,16 @@ $vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
|
||||
'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
|
||||
'5255c38a0faeba867671b61dfda6d864' => $vendorDir . '/paragonie/random_compat/lib/random.php',
|
||||
'7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
|
||||
'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
||||
'023d27dca8066ef29e6739335ea73bad' => $vendorDir . '/symfony/polyfill-php70/bootstrap.php',
|
||||
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
|
||||
'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
|
||||
'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
|
||||
'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php',
|
||||
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
|
||||
'256c1545158fc915c75e51a931bdba60' => $vendorDir . '/lcobucci/jwt/compat/class-aliases.php',
|
||||
'0d273777b2b0d96e49fb3d800c6b0e81' => $vendorDir . '/lcobucci/jwt/compat/json-exception-polyfill.php',
|
||||
'd6b246ac924292702635bb2349f4a64b' => $vendorDir . '/lcobucci/jwt/compat/lcobucci-clock-polyfill.php',
|
||||
);
|
||||
|
||||
+1
@@ -16,6 +16,7 @@ return array(
|
||||
'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'),
|
||||
'Symfony\\Polyfill\\Intl\\Idn\\' => array($vendorDir . '/symfony/polyfill-intl-idn'),
|
||||
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'),
|
||||
'Lcobucci\\JWT\\' => array($vendorDir . '/lcobucci/jwt/src'),
|
||||
'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'),
|
||||
'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'),
|
||||
'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
|
||||
|
||||
+7
-7
@@ -2,7 +2,7 @@
|
||||
|
||||
// autoload_real.php @generated by Composer
|
||||
|
||||
class ComposerAutoloaderInitd0872984a1db7aa104ae1184a3170d3e
|
||||
class ComposerAutoloaderInit100dfac5df6b34365a27ff7ef036db8c
|
||||
{
|
||||
private static $loader;
|
||||
|
||||
@@ -19,15 +19,15 @@ class ComposerAutoloaderInitd0872984a1db7aa104ae1184a3170d3e
|
||||
return self::$loader;
|
||||
}
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInitd0872984a1db7aa104ae1184a3170d3e', 'loadClassLoader'), true, true);
|
||||
spl_autoload_register(array('ComposerAutoloaderInit100dfac5df6b34365a27ff7ef036db8c', 'loadClassLoader'), true, true);
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInitd0872984a1db7aa104ae1184a3170d3e', 'loadClassLoader'));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit100dfac5df6b34365a27ff7ef036db8c', 'loadClassLoader'));
|
||||
|
||||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
||||
if ($useStaticLoader) {
|
||||
require_once __DIR__ . '/autoload_static.php';
|
||||
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInitd0872984a1db7aa104ae1184a3170d3e::getInitializer($loader));
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInit100dfac5df6b34365a27ff7ef036db8c::getInitializer($loader));
|
||||
} else {
|
||||
$map = require __DIR__ . '/autoload_namespaces.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
@@ -48,19 +48,19 @@ class ComposerAutoloaderInitd0872984a1db7aa104ae1184a3170d3e
|
||||
$loader->register(true);
|
||||
|
||||
if ($useStaticLoader) {
|
||||
$includeFiles = Composer\Autoload\ComposerStaticInitd0872984a1db7aa104ae1184a3170d3e::$files;
|
||||
$includeFiles = Composer\Autoload\ComposerStaticInit100dfac5df6b34365a27ff7ef036db8c::$files;
|
||||
} else {
|
||||
$includeFiles = require __DIR__ . '/autoload_files.php';
|
||||
}
|
||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
||||
composerRequired0872984a1db7aa104ae1184a3170d3e($fileIdentifier, $file);
|
||||
composerRequire100dfac5df6b34365a27ff7ef036db8c($fileIdentifier, $file);
|
||||
}
|
||||
|
||||
return $loader;
|
||||
}
|
||||
}
|
||||
|
||||
function composerRequired0872984a1db7aa104ae1184a3170d3e($fileIdentifier, $file)
|
||||
function composerRequire100dfac5df6b34365a27ff7ef036db8c($fileIdentifier, $file)
|
||||
{
|
||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||
require $file;
|
||||
|
||||
+18
-7
@@ -4,18 +4,21 @@
|
||||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
class ComposerStaticInitd0872984a1db7aa104ae1184a3170d3e
|
||||
class ComposerStaticInit100dfac5df6b34365a27ff7ef036db8c
|
||||
{
|
||||
public static $files = array (
|
||||
'7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
|
||||
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
|
||||
'5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php',
|
||||
'7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
|
||||
'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
||||
'023d27dca8066ef29e6739335ea73bad' => __DIR__ . '/..' . '/symfony/polyfill-php70/bootstrap.php',
|
||||
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
|
||||
'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php',
|
||||
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
|
||||
'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php',
|
||||
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
|
||||
'256c1545158fc915c75e51a931bdba60' => __DIR__ . '/..' . '/lcobucci/jwt/compat/class-aliases.php',
|
||||
'0d273777b2b0d96e49fb3d800c6b0e81' => __DIR__ . '/..' . '/lcobucci/jwt/compat/json-exception-polyfill.php',
|
||||
'd6b246ac924292702635bb2349f4a64b' => __DIR__ . '/..' . '/lcobucci/jwt/compat/lcobucci-clock-polyfill.php',
|
||||
);
|
||||
|
||||
public static $prefixLengthsPsr4 = array (
|
||||
@@ -44,6 +47,10 @@ class ComposerStaticInitd0872984a1db7aa104ae1184a3170d3e
|
||||
array (
|
||||
'Psr\\Http\\Message\\' => 17,
|
||||
),
|
||||
'L' =>
|
||||
array (
|
||||
'Lcobucci\\JWT\\' => 13,
|
||||
),
|
||||
'G' =>
|
||||
array (
|
||||
'GuzzleHttp\\Psr7\\' => 16,
|
||||
@@ -94,6 +101,10 @@ class ComposerStaticInitd0872984a1db7aa104ae1184a3170d3e
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/psr/http-message/src',
|
||||
),
|
||||
'Lcobucci\\JWT\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/lcobucci/jwt/src',
|
||||
),
|
||||
'GuzzleHttp\\Psr7\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/guzzlehttp/psr7/src',
|
||||
@@ -136,10 +147,10 @@ class ComposerStaticInitd0872984a1db7aa104ae1184a3170d3e
|
||||
public static function getInitializer(ClassLoader $loader)
|
||||
{
|
||||
return \Closure::bind(function () use ($loader) {
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInitd0872984a1db7aa104ae1184a3170d3e::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInitd0872984a1db7aa104ae1184a3170d3e::$prefixDirsPsr4;
|
||||
$loader->prefixesPsr0 = ComposerStaticInitd0872984a1db7aa104ae1184a3170d3e::$prefixesPsr0;
|
||||
$loader->classMap = ComposerStaticInitd0872984a1db7aa104ae1184a3170d3e::$classMap;
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInit100dfac5df6b34365a27ff7ef036db8c::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInit100dfac5df6b34365a27ff7ef036db8c::$prefixDirsPsr4;
|
||||
$loader->prefixesPsr0 = ComposerStaticInit100dfac5df6b34365a27ff7ef036db8c::$prefixesPsr0;
|
||||
$loader->classMap = ComposerStaticInit100dfac5df6b34365a27ff7ef036db8c::$classMap;
|
||||
|
||||
}, null, ClassLoader::class);
|
||||
}
|
||||
|
||||
+275
-52
@@ -4,6 +4,11 @@
|
||||
"version": "v1.0.13",
|
||||
"version_normalized": "1.0.13.0",
|
||||
"target-dir": "Gregwar/Cache",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Gregwar/Cache.git",
|
||||
"reference": "184cc341c25298ff7d584f86b55b6ca26626da4f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Gregwar/Cache/zipball/184cc341c25298ff7d584f86b55b6ca26626da4f",
|
||||
@@ -44,6 +49,11 @@
|
||||
"version": "v2.1.0",
|
||||
"version_normalized": "2.1.0.0",
|
||||
"target-dir": "Gregwar/Image",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Gregwar/Image.git",
|
||||
"reference": "1cf64c34cbb22933b36727c16b15ed4d925b6fc6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Gregwar/Image/zipball/1cf64c34cbb22933b36727c16b15ed4d925b6fc6",
|
||||
@@ -90,20 +100,25 @@
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "6.5.5",
|
||||
"version_normalized": "6.5.5.0",
|
||||
"version": "6.5.8",
|
||||
"version_normalized": "6.5.8.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/guzzle.git",
|
||||
"reference": "a52f0440530b54fa079ce76e8c5d196a42cad981"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
|
||||
"reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/a52f0440530b54fa079ce76e8c5d196a42cad981",
|
||||
"reference": "a52f0440530b54fa079ce76e8c5d196a42cad981",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"guzzlehttp/promises": "^1.0",
|
||||
"guzzlehttp/psr7": "^1.6.1",
|
||||
"guzzlehttp/psr7": "^1.9",
|
||||
"php": ">=5.5",
|
||||
"symfony/polyfill-intl-idn": "^1.17.0"
|
||||
"symfony/polyfill-intl-idn": "^1.17"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-curl": "*",
|
||||
@@ -113,7 +128,7 @@
|
||||
"suggest": {
|
||||
"psr/log": "Required for using the Log middleware"
|
||||
},
|
||||
"time": "2020-06-16T21:01:06+00:00",
|
||||
"time": "2022-06-20T22:16:07+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
@@ -122,22 +137,52 @@
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
]
|
||||
],
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Graham Campbell",
|
||||
"email": "hello@gjcampbell.co.uk",
|
||||
"homepage": "https://github.com/GrahamCampbell"
|
||||
},
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
},
|
||||
{
|
||||
"name": "Jeremy Lindblom",
|
||||
"email": "jeremeamia@gmail.com",
|
||||
"homepage": "https://github.com/jeremeamia"
|
||||
},
|
||||
{
|
||||
"name": "George Mponos",
|
||||
"email": "gmponos@gmail.com",
|
||||
"homepage": "https://github.com/gmponos"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Nyholm",
|
||||
"email": "tobias.nyholm@gmail.com",
|
||||
"homepage": "https://github.com/Nyholm"
|
||||
},
|
||||
{
|
||||
"name": "Márk Sági-Kazár",
|
||||
"email": "mark.sagikazar@gmail.com",
|
||||
"homepage": "https://github.com/sagikazarmark"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Schultze",
|
||||
"email": "webmaster@tubo-world.de",
|
||||
"homepage": "https://github.com/Tobion"
|
||||
}
|
||||
],
|
||||
"description": "Guzzle is a PHP HTTP client library",
|
||||
@@ -154,12 +199,17 @@
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
"version": "1.4.1",
|
||||
"version_normalized": "1.4.1.0",
|
||||
"version": "1.5.2",
|
||||
"version_normalized": "1.5.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/promises.git",
|
||||
"reference": "b94b2807d85443f9719887892882d0329d1e2598"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d",
|
||||
"reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598",
|
||||
"reference": "b94b2807d85443f9719887892882d0329d1e2598",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -168,31 +218,46 @@
|
||||
"require-dev": {
|
||||
"symfony/phpunit-bridge": "^4.4 || ^5.1"
|
||||
},
|
||||
"time": "2021-03-07T09:25:29+00:00",
|
||||
"time": "2022-08-28T14:55:35+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.4-dev"
|
||||
"dev-master": "1.5-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Promise\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
]
|
||||
],
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Promise\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Graham Campbell",
|
||||
"email": "hello@gjcampbell.co.uk",
|
||||
"homepage": "https://github.com/GrahamCampbell"
|
||||
},
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Nyholm",
|
||||
"email": "tobias.nyholm@gmail.com",
|
||||
"homepage": "https://github.com/Nyholm"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Schultze",
|
||||
"email": "webmaster@tubo-world.de",
|
||||
"homepage": "https://github.com/Tobion"
|
||||
}
|
||||
],
|
||||
"description": "Guzzle promises library",
|
||||
@@ -202,12 +267,17 @@
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
"version": "1.8.2",
|
||||
"version_normalized": "1.8.2.0",
|
||||
"version": "1.9.0",
|
||||
"version_normalized": "1.9.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/psr7.git",
|
||||
"reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91",
|
||||
"reference": "dc960a912984efb74d0a90222870c72c87f10c91",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318",
|
||||
"reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -225,34 +295,55 @@
|
||||
"suggest": {
|
||||
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
|
||||
},
|
||||
"time": "2021-04-26T09:17:50+00:00",
|
||||
"time": "2022-06-20T21:43:03+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.7-dev"
|
||||
"dev-master": "1.9-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Psr7\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
]
|
||||
],
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Psr7\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Graham Campbell",
|
||||
"email": "hello@gjcampbell.co.uk",
|
||||
"homepage": "https://github.com/GrahamCampbell"
|
||||
},
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
},
|
||||
{
|
||||
"name": "George Mponos",
|
||||
"email": "gmponos@gmail.com",
|
||||
"homepage": "https://github.com/gmponos"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Nyholm",
|
||||
"email": "tobias.nyholm@gmail.com",
|
||||
"homepage": "https://github.com/Nyholm"
|
||||
},
|
||||
{
|
||||
"name": "Márk Sági-Kazár",
|
||||
"email": "mark.sagikazar@gmail.com",
|
||||
"homepage": "https://github.com/sagikazarmark"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Schultze",
|
||||
"email": "webmaster@tubo-world.de",
|
||||
"homepage": "https://github.com/Tobion"
|
||||
}
|
||||
],
|
||||
@@ -268,13 +359,83 @@
|
||||
"url"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "lcobucci/jwt",
|
||||
"version": "3.4.6",
|
||||
"version_normalized": "3.4.6.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/lcobucci/jwt.git",
|
||||
"reference": "3ef8657a78278dfeae7707d51747251db4176240"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/lcobucci/jwt/zipball/3ef8657a78278dfeae7707d51747251db4176240",
|
||||
"reference": "3ef8657a78278dfeae7707d51747251db4176240",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-mbstring": "*",
|
||||
"ext-openssl": "*",
|
||||
"php": "^5.6 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"mikey179/vfsstream": "~1.5",
|
||||
"phpmd/phpmd": "~2.2",
|
||||
"phpunit/php-invoker": "~1.1",
|
||||
"phpunit/phpunit": "^5.7 || ^7.3",
|
||||
"squizlabs/php_codesniffer": "~2.3"
|
||||
},
|
||||
"suggest": {
|
||||
"lcobucci/clock": "*"
|
||||
},
|
||||
"time": "2021-09-28T19:18:28+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.1-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"files": [
|
||||
"compat/class-aliases.php",
|
||||
"compat/json-exception-polyfill.php",
|
||||
"compat/lcobucci-clock-polyfill.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"Lcobucci\\JWT\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Luís Otávio Cobucci Oblonczyk",
|
||||
"email": "lcobucci@gmail.com",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "A simple library to work with JSON Web Token and JSON Web Signature",
|
||||
"keywords": [
|
||||
"JWS",
|
||||
"jwt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "mikehaertl/php-pdftk",
|
||||
"version": "0.11.0",
|
||||
"version_normalized": "0.11.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/mikehaertl/php-pdftk.git",
|
||||
"reference": "61ba14c08491c1bb7d479c87087f236389b4babf"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://mirrors.tencent.com/repository/composer/mikehaertl/php-pdftk/0.11.0/mikehaertl-php-pdftk-0.11.0.zip",
|
||||
"url": "https://api.github.com/repos/mikehaertl/php-pdftk/zipball/61ba14c08491c1bb7d479c87087f236389b4babf",
|
||||
"reference": "61ba14c08491c1bb7d479c87087f236389b4babf",
|
||||
"shasum": ""
|
||||
},
|
||||
@@ -294,6 +455,7 @@
|
||||
"mikehaertl\\pdftk\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
@@ -313,9 +475,14 @@
|
||||
"name": "mikehaertl/php-shellcommand",
|
||||
"version": "1.6.4",
|
||||
"version_normalized": "1.6.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/mikehaertl/php-shellcommand.git",
|
||||
"reference": "3488d7803df1e8f1a343d3d0ca452d527ad8d5e5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://mirrors.tencent.com/repository/composer/mikehaertl/php-shellcommand/1.6.4/mikehaertl-php-shellcommand-1.6.4.zip",
|
||||
"url": "https://api.github.com/repos/mikehaertl/php-shellcommand/zipball/3488d7803df1e8f1a343d3d0ca452d527ad8d5e5",
|
||||
"reference": "3488d7803df1e8f1a343d3d0ca452d527ad8d5e5",
|
||||
"shasum": ""
|
||||
},
|
||||
@@ -333,6 +500,7 @@
|
||||
"mikehaertl\\shellcommand\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
@@ -351,9 +519,14 @@
|
||||
"name": "mikehaertl/php-tmpfile",
|
||||
"version": "1.2.1",
|
||||
"version_normalized": "1.2.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/mikehaertl/php-tmpfile.git",
|
||||
"reference": "70a5b70b17bc0d9666388e6a551ecc93d0b40a10"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://mirrors.tencent.com/repository/composer/mikehaertl/php-tmpfile/1.2.1/mikehaertl-php-tmpfile-1.2.1.zip",
|
||||
"url": "https://api.github.com/repos/mikehaertl/php-tmpfile/zipball/70a5b70b17bc0d9666388e6a551ecc93d0b40a10",
|
||||
"reference": "70a5b70b17bc0d9666388e6a551ecc93d0b40a10",
|
||||
"shasum": ""
|
||||
},
|
||||
@@ -369,6 +542,7 @@
|
||||
"mikehaertl\\tmp\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
@@ -385,24 +559,29 @@
|
||||
},
|
||||
{
|
||||
"name": "paragonie/random_compat",
|
||||
"version": "v2.0.20",
|
||||
"version_normalized": "2.0.20.0",
|
||||
"version": "v2.0.21",
|
||||
"version_normalized": "2.0.21.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/paragonie/random_compat.git",
|
||||
"reference": "96c132c7f2f7bc3230723b66e89f8f150b29d5ae"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/0f1f60250fccffeaf5dda91eea1c018aed1adc2a",
|
||||
"reference": "0f1f60250fccffeaf5dda91eea1c018aed1adc2a",
|
||||
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/96c132c7f2f7bc3230723b66e89f8f150b29d5ae",
|
||||
"reference": "96c132c7f2f7bc3230723b66e89f8f150b29d5ae",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "4.*|5.*"
|
||||
"phpunit/phpunit": "*"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
|
||||
},
|
||||
"time": "2021-04-17T09:33:01+00:00",
|
||||
"time": "2022-02-16T17:07:03+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
@@ -433,6 +612,11 @@
|
||||
"name": "psr/http-message",
|
||||
"version": "1.0.1",
|
||||
"version_normalized": "1.0.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/http-message.git",
|
||||
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||
@@ -480,6 +664,11 @@
|
||||
"name": "ralouphie/getallheaders",
|
||||
"version": "3.0.3",
|
||||
"version_normalized": "3.0.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ralouphie/getallheaders.git",
|
||||
"reference": "120b605dfeb996808c31b6477290a714d356e822"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
|
||||
@@ -517,6 +706,11 @@
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"version": "v1.19.0",
|
||||
"version_normalized": "1.19.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
||||
"reference": "4ad5115c0f5d5172a9fe8147675ec6de266d8826"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/4ad5115c0f5d5172a9fe8147675ec6de266d8826",
|
||||
@@ -585,6 +779,11 @@
|
||||
"name": "symfony/polyfill-intl-normalizer",
|
||||
"version": "v1.19.0",
|
||||
"version_normalized": "1.19.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||
"reference": "8db0ae7936b42feb370840cf24de1a144fb0ef27"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8db0ae7936b42feb370840cf24de1a144fb0ef27",
|
||||
@@ -649,6 +848,11 @@
|
||||
"name": "symfony/polyfill-php70",
|
||||
"version": "v1.19.0",
|
||||
"version_normalized": "1.19.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php70.git",
|
||||
"reference": "3fe414077251a81a1b15b1c709faf5c2fbae3d4e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/3fe414077251a81a1b15b1c709faf5c2fbae3d4e",
|
||||
@@ -709,6 +913,11 @@
|
||||
"name": "symfony/polyfill-php72",
|
||||
"version": "v1.19.0",
|
||||
"version_normalized": "1.19.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php72.git",
|
||||
"reference": "beecef6b463b06954638f02378f52496cb84bacc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/beecef6b463b06954638f02378f52496cb84bacc",
|
||||
@@ -763,20 +972,24 @@
|
||||
},
|
||||
{
|
||||
"name": "tencentcloud/common",
|
||||
"version": "3.0.436",
|
||||
"version_normalized": "3.0.436.0",
|
||||
"version": "3.0.712",
|
||||
"version_normalized": "3.0.712.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/tencentcloud-sdk-php/common.git",
|
||||
"reference": "5d49bdbc237148c2082858ade73610d9e9d61cbc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/tencentcloud-sdk-php/common/zipball/8e1742f06287accfd173141a919d3460d097ac03",
|
||||
"reference": "8e1742f06287accfd173141a919d3460d097ac03",
|
||||
"url": "https://api.github.com/repos/tencentcloud-sdk-php/common/zipball/5d49bdbc237148c2082858ade73610d9e9d61cbc",
|
||||
"reference": "5d49bdbc237148c2082858ade73610d9e9d61cbc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/guzzle": "^6.3||^7.0",
|
||||
"guzzlehttp/psr7": "^1.4",
|
||||
"php": ">=5.6.0"
|
||||
},
|
||||
"time": "2021-07-16T01:04:49+00:00",
|
||||
"time": "2022-08-29T03:14:37+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
@@ -801,18 +1014,23 @@
|
||||
},
|
||||
{
|
||||
"name": "tencentcloud/ocr",
|
||||
"version": "3.0.436",
|
||||
"version_normalized": "3.0.436.0",
|
||||
"version": "3.0.712",
|
||||
"version_normalized": "3.0.712.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/tencentcloud-sdk-php/ocr.git",
|
||||
"reference": "c0d21b263eccfe067731aad39232f537100d43b3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/tencentcloud-sdk-php/ocr/zipball/3158bf1b0d4c89ca0623d0c4eda76a4a8eba656b",
|
||||
"reference": "3158bf1b0d4c89ca0623d0c4eda76a4a8eba656b",
|
||||
"url": "https://api.github.com/repos/tencentcloud-sdk-php/ocr/zipball/c0d21b263eccfe067731aad39232f537100d43b3",
|
||||
"reference": "c0d21b263eccfe067731aad39232f537100d43b3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"tencentcloud/common": "3.0.436"
|
||||
"tencentcloud/common": "3.0.712"
|
||||
},
|
||||
"time": "2021-07-16T01:13:52+00:00",
|
||||
"time": "2022-08-29T03:29:43+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
@@ -839,6 +1057,11 @@
|
||||
"name": "wechatpay/wechatpay-guzzle-middleware",
|
||||
"version": "0.2.2",
|
||||
"version_normalized": "0.2.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/wechatpay-apiv3/wechatpay-guzzle-middleware.git",
|
||||
"reference": "6782ac33ed8cf97628609a71cdc5e84a6a40677a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/wechatpay-apiv3/wechatpay-guzzle-middleware/zipball/6782ac33ed8cf97628609a71cdc5e84a6a40677a",
|
||||
|
||||
Regular → Executable
Regular → Executable
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user