GroupBuyHelp.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  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\groupbuy;
  13. use app\common\model\groupbuy\GroupBuyHelp as GroupBuyHelpModel;
  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 GroupBuyHelp extends GroupBuyHelpModel
  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 $activityId
  33. */
  34. public function sumActSaleVolume($activityId){
  35. $m = self::where('group_buy_activity_id',$activityId)
  36. ->where('pay_state',1)
  37. ->field('sum(rice_card_money+pay_money) as sale_v')
  38. ->find();
  39. return $m?$m->sale_v:'0.00';
  40. }
  41. public static function sumActGoodsNum($activityId){
  42. return self::where('group_buy_activity_id',$activityId)->where('pay_state',1)
  43. ->where('order_id','>=',0)->sum('goods_num');
  44. }
  45. public function getList($joinId){
  46. return self::where('join_id',$joinId)->where('order_id','>=',0)
  47. ->where('pay_state',1)
  48. ->field('order_no,order_id,pay_time')->select();
  49. }
  50. public function getFailedGroupList($joinId){
  51. return self::alias('hp')->leftJoin('user us','hp.user_id=us.user_id')
  52. ->where('join_id',$joinId)->where('pay_state','in',[0,1])
  53. ->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')
  54. ->select();
  55. }
  56. /**
  57. * 活动参团人数
  58. * @param $activityId
  59. * @return int
  60. */
  61. public function sumActHelpCount($activityId){
  62. return self::where('group_buy_activity_id',$activityId)
  63. ->where('pay_state',1)
  64. ->where('order_id','>=',0)->count('id');
  65. }
  66. /**
  67. * 获取列表
  68. * @param array $param 查询条件
  69. * @param int $listRows 分页数量
  70. * @return mixed
  71. * @throws \think\db\exception\DbException
  72. */
  73. public function getAllList(array $param = [], int $listRows = 15)
  74. {
  75. // 检索查询条件
  76. $filter = $this->getQueryFilter($param);
  77. // 执行查询
  78. return $this->alias('h')->with([])
  79. ->leftJoin('group_buy_goods gg','gg.group_buy_activity_id = h.group_buy_activity_id')
  80. ->leftJoin("group_buy_activity_join join",'join.id=h.join_id')
  81. ->where($filter)->where('h.pay_state','in',[0,1])
  82. ->field('h.*,join.user_id as join_user_id,join.status,gg.goods_id,gg.goods_name,gg.goods_sku_no')
  83. ->order(['h.id'=>'desc'])
  84. ->paginate($listRows)->each(function (&$item){
  85. $item['join_user_name'] = UserModel::where('user_id',$item['join_user_id'])->value('nick_name')??'';
  86. $item['help_user_name'] = UserModel::where('user_id',$item['user_id'])->value("nick_name")??'';
  87. });
  88. }
  89. /**
  90. * 检索查询条件
  91. * @param array $param
  92. * @return \think\db\BaseQuery
  93. */
  94. private function getQueryFilter(array $param)
  95. {
  96. //获取条件
  97. $params = $this->setQueryDefaultValue($param, [
  98. ]);
  99. // 筛选条件
  100. $filter = [];
  101. // 订单编号
  102. !empty($params['order_no']) && $filter[] = ['order_no', 'like', "%{$params['order_no']}%"];
  103. !empty($params['goods_name']) && $filter[] = ['gg.goods_name', 'like', "%{$params['goods_name']}%"];
  104. !empty($params['goods_sku_no']) && $filter[] = ['gg.goods_sku_no', 'like', "%{$params['goods_sku_no']}%"];
  105. //付款起止时间
  106. if (!empty($params['betweenTime'])) {
  107. $times = between_date($params['betweenTime']);
  108. $filter[] = ['pay_time', '>=', strtotime($times['start_date'])];
  109. $filter[] = ['pay_time', '<=', strtotime($times['end_date'])];
  110. }
  111. //拼团状态 0 拼团中 1 拼团成功 2拼团失败
  112. if(isset($params['status'])&&$params['status']>-1){
  113. $filter[] = ['join.status','=',$params['status']];
  114. }
  115. //是否退款 0 拼团失败要给用户退款 1 已退款
  116. if(isset($params['finance_refund'])&&$params['finance_refund']>-1){
  117. $filter[] = ['finance_refund','=',$params['finance_refund']];
  118. }
  119. // 实例化新查询对象
  120. return $filter;
  121. }
  122. }