LogController.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace app\modules\admin\controllers\pond;
  3. use app\models\Goods;
  4. use app\models\Pond;
  5. use app\models\PondLog;
  6. use app\models\User;
  7. use app\modules\admin\controllers\BaseController;
  8. use yii\data\Pagination;
  9. class LogController extends BaseController
  10. {
  11. public function actionIndex()
  12. {
  13. $query = PondLog::find()->alias('log')
  14. ->leftJoin(['p' => Pond::tableName()], 'log.pond_id = p.id')
  15. ->leftJoin(['u' => User::tableName()], 'log.user_id = u.id')
  16. ->leftJoin(['g' => Goods::tableName()], 'log.gift_id = g.id')
  17. ->where(['log.store_id' => get_store_id()])
  18. ->select('log.*, p.name as gift_name, u.nickname, g.name as goods_name');
  19. if ($type = post_params('type')) {
  20. $query->andWhere(['log.type' => $type]);
  21. }
  22. if ($nickname = post_params('nickname')) {
  23. $query->andWhere(['u.nickname' => $nickname]);
  24. }
  25. $count = $query->count();
  26. $pagination = new Pagination(['totalCount' => $count]);
  27. // $query = $query->limit($pagination->limit)->offset($pagination->offset);
  28. $query->orderBy('log.id desc');
  29. $list = pagination_make($query);
  30. foreach ($list['list'] as &$item) {
  31. $item['create_time'] = date('Y-m-d H:i:s', $item['create_time']);
  32. $item['gift_name'] = $item['gift_name'] ?: $item['goods_name'];
  33. if ($item['pond_name']) {
  34. $item['gift_name'] = $item['pond_name'];
  35. }
  36. }
  37. return $this->asJson([
  38. 'code' => 0,
  39. 'msg' => '',
  40. 'data' => $list,
  41. ]);
  42. }
  43. public function actionSend()
  44. {
  45. $id = post_params('id');
  46. $model = PondLog::findOne($id);
  47. if (!$model) {
  48. return $this->asJson([
  49. 'code' => 1,
  50. 'msg' => '中奖记录不存在',
  51. ]);
  52. }
  53. $model->status = 1;
  54. $model->raffle_time = time();
  55. if($model->save()) {
  56. return $this->asJson([
  57. 'code' => 0,
  58. 'msg' => '兑换成功',
  59. ]);
  60. }
  61. return $this->asJson([
  62. 'code' => 1,
  63. 'msg' => '数据有误',
  64. ]);
  65. }
  66. }