MemberWelfareDraw.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. declare (strict_types=1);
  3. namespace app\store\model\member;
  4. use app\common\model\member\MemberWelfareDraw as WelfareDrawModel;
  5. /**
  6. * 福利领取记录
  7. * Class MemberCards
  8. * @package app\common\model
  9. */
  10. class MemberWelfareDraw extends WelfareDrawModel
  11. {
  12. public function getLists($params,$toExport=false){
  13. $t_now = time();
  14. $where = $this->getFilter($params);
  15. $where[] = ['target_type','=' ,2];
  16. $query = self::alias('mwd')
  17. ->leftJoin('user us','mwd.user_id=us.user_id')
  18. ->leftJoin('member_cooperation_coupon mcc','mwd.code_id=mcc.id')
  19. ->where($where)
  20. ->field('mwd.id,mwd.user_id,mwd.target_id,mwd.create_time,mwd.code_id,mwd.check_status,mwd.use_end_time,us.nick_name,us.mobile,mcc.code')
  21. ->order('mwd.id desc');
  22. if ($toExport == true){
  23. $query = $query->select();
  24. }else{
  25. $query = $query->paginate(15);
  26. }
  27. return $query->each(function (&$item) use ($t_now){
  28. if ($item['check_status'] == 0 && strtotime($item['use_end_time'])< $t_now){
  29. $item['has_expired'] = 1;
  30. }else{
  31. $item['has_expired'] = 0;
  32. }
  33. });
  34. }
  35. public function getFilter($params){
  36. $where[] = ['mwd.target_id','=',$params['targetId']];
  37. !empty($params['mobile']) && $where[] = ['us.mobile','like','%'.$params['mobile'].'%'];
  38. //核销状态
  39. if (isset($params["checkStatus"]) && in_array($params['checkStatus'],[0,1])){
  40. $where[] = ['mwd.check_status','=',$params['checkStatus']];
  41. }
  42. //是否已过期
  43. if (isset($params["hasExpired"]) && $params['hasExpired'] == 1){
  44. $where[] = ['mwd.check_status','=',0];
  45. $where[] = ['mwd.use_end_time','<',date('Y-m-d')];
  46. }
  47. if (isset($params["hasExpired"]) && $params['hasExpired'] == 0){
  48. $where[] = ['mwd.check_status','=',1];
  49. }
  50. //领取时间
  51. if(!empty($params['betweenTime'])){
  52. $times = between_time_format($params['betweenTime']);
  53. $where[] = ['mwd.create_time','between',[$times['start_time'],$times['end_time']]];
  54. }
  55. return $where;
  56. }
  57. /**
  58. * 异业福利领取记录导出
  59. * @param $param
  60. * @return array
  61. */
  62. public function diffwDrawExportData($param){
  63. $data['header'] = ['领取用户昵称','用户手机号','领取时间', '领取券码','核销状态','是否过期'];
  64. $data['filename'] = '异业福利领取明细';
  65. $data['data'] = [];
  66. $items = $this->getLists($param,true);
  67. $datas = [];
  68. foreach ($items as $item){
  69. $temp = [];
  70. $temp['nick_name'] = $item['nick_name'];
  71. $temp['mobile'] = $item['mobile'];
  72. $temp['create_time'] = $item['create_time'];
  73. $temp['code'] = $item['code'];
  74. $temp['check_status'] = $item['check_status']?'已核销':'未核销';
  75. $temp['has_expired'] = $item['has_expired']?'已过期':'未过期';
  76. $datas[] = $temp;
  77. }
  78. $data['data'] = $datas;
  79. return $data;
  80. }
  81. }