GroupBuyLbHelp.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2017~2021 https://www.yiovo.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
  8. // +----------------------------------------------------------------------
  9. // | Author: 萤火科技 <admin@yiovo.com>
  10. // +----------------------------------------------------------------------
  11. declare (strict_types = 1);
  12. namespace app\store\model\groupbuylb;
  13. use app\common\model\groupbuylb\GroupBuyLbHelp as GroupBuyLbHelpModel;
  14. use app\common\library\helper;
  15. use app\common\model\User as UserModel;
  16. /**
  17. * 拼团裂变参与模型
  18. * Class Coupon
  19. * @package app\store\model
  20. */
  21. class GroupBuyLbHelp extends GroupBuyLbHelpModel
  22. {
  23. protected $append = [];
  24. public function getPayTimeAttr($value, $data){
  25. if ($data['pay_time']){
  26. return date('Y-m-d H:i:s',$data['pay_time']);
  27. }
  28. return '';
  29. }
  30. /**
  31. * 获取列表
  32. * @param array $param 查询条件
  33. * @param int $listRows 分页数量
  34. * @return mixed
  35. * @throws \think\db\exception\DbException
  36. */
  37. public function getAllList(array $param = [], int $listRows = 15)
  38. {
  39. // 检索查询条件
  40. $filter = $this->getQueryFilter($param);
  41. // 执行查询
  42. return $this->alias('h')->with([])
  43. ->leftJoin('group_buy_lb_goods gg','gg.group_buy_lb_activity_id = h.group_buy_lb_activity_id')
  44. ->leftJoin("group_buy_lb_activity_join join",'join.id=h.join_id')
  45. ->where($filter)->where('h.pay_state','in',[0,1])
  46. ->field('h.*,join.user_id as join_user_id,join.status,gg.goods_id,gg.goods_name,gg.goods_sku_no')
  47. ->order(['h.id'=>'desc'])
  48. ->paginate($listRows)->each(function (&$item){
  49. $item['join_user_name'] = UserModel::where('user_id',$item['join_user_id'])->value('nick_name')??'';
  50. $item['help_user_name'] = UserModel::where('user_id',$item['user_id'])->value("nick_name")??'';
  51. });
  52. }
  53. /**
  54. * 检索查询条件
  55. * @param array $param
  56. * @return \think\db\BaseQuery
  57. */
  58. private function getQueryFilter(array $param)
  59. {
  60. //获取条件
  61. $params = $this->setQueryDefaultValue($param, [
  62. ]);
  63. // 筛选条件
  64. $filter = [];
  65. // 订单编号
  66. !empty($params['order_no']) && $filter[] = ['order_no', 'like', "%{$params['order_no']}%"];
  67. !empty($params['goods_name']) && $filter[] = ['gg.goods_name', 'like', "%{$params['goods_name']}%"];
  68. !empty($params['goods_sku_no']) && $filter[] = ['gg.goods_sku_no', 'like', "%{$params['goods_sku_no']}%"];
  69. //付款起止时间
  70. if (!empty($params['betweenTime'])) {
  71. $times = between_date($params['betweenTime']);
  72. $filter[] = ['pay_time', '>=', strtotime($times['start_date'])];
  73. $filter[] = ['pay_time', '<=', strtotime($times['end_date'])];
  74. }
  75. //拼团状态 0 拼团中 1 拼团成功 2拼团失败
  76. if(isset($params['status'])&&$params['status']>-1){
  77. $filter[] = ['join.status','=',$params['status']];
  78. }
  79. //是否退款 0 拼团失败要给用户退款 1 已退款
  80. if(isset($params['finance_refund'])&&$params['finance_refund']>-1){
  81. $filter[] = ['finance_refund','=',$params['finance_refund']];
  82. }
  83. // 实例化新查询对象
  84. return $filter;
  85. }
  86. /**
  87. * 活动参团人数
  88. * @param $activityId
  89. */
  90. public function sumActSaleVolume($activityId){
  91. $m = self::where('group_buy_lb_activity_id',$activityId)
  92. ->where('pay_state',1)
  93. ->field('sum(rice_card_money+pay_money) as sale_v')
  94. ->find();
  95. return $m?$m->sale_v:'0.00';
  96. }
  97. public static function sumActGoodsNum($activityId){
  98. return self::where('group_buy_lb_activity_id',$activityId)->where('pay_state',1)
  99. ->where('order_id','>=',0)->sum('goods_num');
  100. }
  101. public function getList($joinId){
  102. return self::where('join_id',$joinId)->where('order_id','>=',0)
  103. ->where('pay_state',1)
  104. ->where('has_canceled',0)//todo是否也需要过滤
  105. ->field('user_id,order_no,order_id,pay_time')->select();
  106. }
  107. public function getFailedGroupList($joinId){
  108. return self::alias('hp')->leftJoin('user us','hp.user_id=us.user_id')
  109. ->where('join_id',$joinId)
  110. ->where('has_canceled',0)
  111. ->where('pay_state','in',[0,1])
  112. ->field('us.nick_name,hp.order_no,hp.order_id,hp.pay_time,hp.pay_money,hp.rice_card_money,hp.finance_refund,hp.pay_state,hp.id as help_id,hp.is_virtual_join_user,hp.fans')
  113. ->select();
  114. }
  115. /**
  116. * 活动参团人数
  117. * @param $activityId
  118. * @return int
  119. */
  120. public function sumActHelpCount($activityId){
  121. return self::where('group_buy_lb_activity_id',$activityId)
  122. ->where('pay_state',1)
  123. ->where('order_id','>=',0)->count('id');
  124. }
  125. }