GuaGuaWinService.php 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. namespace bizMall\promote\services;
  3. use bizMall\base\services\BaseService;
  4. use bizMall\user\services\UserService;
  5. use common\components\error;
  6. use common\components\imgUtil;
  7. use common\components\stringUtil;
  8. use Yii;
  9. class GuaGuaWinService extends BaseService
  10. {
  11. public static $baseFile = '\bizMall\promote\classes\GuaGuaWinClass';
  12. //获取自己的奖品 ssh 2019.8.10
  13. public static function getMyPrize($id, $userId, $sjId)
  14. {
  15. $card = GuaGuaService::getById($id);
  16. if ($card['sjId'] != $sjId) {
  17. error::instance()->setError('你没有权限');
  18. return false;
  19. }
  20. $list = self::getAllByCondition(['cardId' => $id, 'userId' => $userId], null, '*');
  21. if (empty($list)) {
  22. return [];
  23. }
  24. $ids = array_column($list, 'prizeId');
  25. $ids = array_unique(array_filter($ids));
  26. $prizeList = GuaGuaPrizeService::getAllByCondition(['id' => ['in', $ids]], null, '*', 'id');
  27. foreach ($list as $key => $val) {
  28. $prizeId = $val['prizeId'];
  29. $list[$key]['prizeInfo'] = isset($prizeList[$prizeId]) ? $prizeList[$prizeId] : [];
  30. }
  31. return $list;
  32. }
  33. //发放奖品 ssh 2019.8.11
  34. public static function setPrizeGet($id, $sjId)
  35. {
  36. $win = self::getById($id);
  37. if (empty($win)) {
  38. error::instance()->setError('没有获奖信息');
  39. return false;
  40. }
  41. if ($win['sjId'] != $sjId) {
  42. error::instance()->setError('你无法操作' . $win['sjId'] . ' | ' . $sjId);
  43. return false;
  44. }
  45. $time = time();
  46. if (!empty($win['deadline']) && $win['deadline'] < $time) {
  47. error::instance()->setError('领奖时间已经过了');
  48. return false;
  49. }
  50. if ($win['status'] == 2) {
  51. error::instance()->setError('已经发放过了');
  52. return false;
  53. }
  54. self::updateById($id, ['status' => 2]);
  55. return true;
  56. }
  57. public static function getWinUser($card)
  58. {
  59. $id = $card['id'];
  60. $respond = self::getListData('*', ['cardId' => $id], 1, 10);
  61. $winData = [];
  62. if (isset($respond['list']) && !empty($respond['list'])) {
  63. $winList = $respond['list'];
  64. //奖品
  65. $ids = array_column($winList, 'prizeId');
  66. $ids = array_unique(array_filter($ids));
  67. $prizeList = GuaGuaPrizeService::getAllByCondition(['id' => ['in', $ids]], null, '*', 'id');
  68. //用户
  69. $userIdList = array_column($winList, 'userId');
  70. $userInfoList = UserService::getAllByCondition(['id' => ['in', $userIdList]], null, 'id,avatar,userName', 'id');
  71. foreach ($winList as $key => $val) {
  72. $userId = $val['userId'];
  73. $prizeId = $val['prizeId'];
  74. $userInfo = isset($userInfoList[$userId]) ? $userInfoList[$userId] : [];
  75. $userName = isset($userInfo['userName']) ? stringUtil::replaceXH($userInfo['userName']) : '';
  76. $avatar = 'http://img.huaml.com/weixinUserAvatar/2019/08/10/190810092812358125366301679.jpg';
  77. $prizeName = isset($prizeList[$prizeId]['prizeName']) ? $prizeList[$prizeId]['prizeName'] : '';
  78. $getTime = date("m-d H:i", $val['getTime']);
  79. $winData[] = ['userName' => $userName, 'avatar' => $avatar, 'prizeName' => $prizeName, 'getTime' => $getTime];
  80. }
  81. }
  82. return $winData;
  83. }
  84. }