123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- <?php
- // +----------------------------------------------------------------------
- // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2017~2021 https://www.yiovo.com All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
- // +----------------------------------------------------------------------
- // | Author: 萤火科技 <admin@yiovo.com>
- // +----------------------------------------------------------------------
- declare (strict_types = 1);
- namespace app\store\model\groupbuylb;
- use app\common\model\groupbuylb\GroupBuyLbHelp as GroupBuyLbHelpModel;
- use app\common\library\helper;
- use app\common\model\User as UserModel;
- /**
- * 拼团裂变参与模型
- * Class Coupon
- * @package app\store\model
- */
- class GroupBuyLbHelp extends GroupBuyLbHelpModel
- {
- protected $append = [];
- public function getPayTimeAttr($value, $data){
- if ($data['pay_time']){
- return date('Y-m-d H:i:s',$data['pay_time']);
- }
- return '';
- }
- /**
- * 获取列表
- * @param array $param 查询条件
- * @param int $listRows 分页数量
- * @return mixed
- * @throws \think\db\exception\DbException
- */
- public function getAllList(array $param = [], int $listRows = 15)
- {
- // 检索查询条件
- $filter = $this->getQueryFilter($param);
- // 执行查询
- return $this->alias('h')->with([])
- ->leftJoin('group_buy_lb_goods gg','gg.group_buy_lb_activity_id = h.group_buy_lb_activity_id')
- ->leftJoin("group_buy_lb_activity_join join",'join.id=h.join_id')
- ->where($filter)->where('h.pay_state','in',[0,1])
- ->field('h.*,join.user_id as join_user_id,join.status,gg.goods_id,gg.goods_name,gg.goods_sku_no')
- ->order(['h.id'=>'desc'])
- ->paginate($listRows)->each(function (&$item){
- $item['join_user_name'] = UserModel::where('user_id',$item['join_user_id'])->value('nick_name')??'';
- $item['help_user_name'] = UserModel::where('user_id',$item['user_id'])->value("nick_name")??'';
- });
- }
- /**
- * 检索查询条件
- * @param array $param
- * @return \think\db\BaseQuery
- */
- private function getQueryFilter(array $param)
- {
- //获取条件
- $params = $this->setQueryDefaultValue($param, [
- ]);
- // 筛选条件
- $filter = [];
- // 订单编号
- !empty($params['order_no']) && $filter[] = ['order_no', 'like', "%{$params['order_no']}%"];
- !empty($params['goods_name']) && $filter[] = ['gg.goods_name', 'like', "%{$params['goods_name']}%"];
- !empty($params['goods_sku_no']) && $filter[] = ['gg.goods_sku_no', 'like', "%{$params['goods_sku_no']}%"];
- //付款起止时间
- if (!empty($params['betweenTime'])) {
- $times = between_date($params['betweenTime']);
- $filter[] = ['pay_time', '>=', strtotime($times['start_date'])];
- $filter[] = ['pay_time', '<=', strtotime($times['end_date'])];
- }
- //拼团状态 0 拼团中 1 拼团成功 2拼团失败
- if(isset($params['status'])&&$params['status']>-1){
- $filter[] = ['join.status','=',$params['status']];
- }
- //是否退款 0 拼团失败要给用户退款 1 已退款
- if(isset($params['finance_refund'])&&$params['finance_refund']>-1){
- $filter[] = ['finance_refund','=',$params['finance_refund']];
- }
- // 实例化新查询对象
- return $filter;
- }
- /**
- * 活动参团人数
- * @param $activityId
- */
- public function sumActSaleVolume($activityId){
- $m = self::where('group_buy_lb_activity_id',$activityId)
- ->where('pay_state',1)
- ->field('sum(rice_card_money+pay_money) as sale_v')
- ->find();
- return $m?$m->sale_v:'0.00';
- }
- public static function sumActGoodsNum($activityId){
- return self::where('group_buy_lb_activity_id',$activityId)->where('pay_state',1)
- ->where('order_id','>=',0)->sum('goods_num');
- }
- public function getList($joinId){
- return self::where('join_id',$joinId)->where('order_id','>=',0)
- ->where('pay_state',1)
- ->where('has_canceled',0)//todo是否也需要过滤
- ->field('user_id,order_no,order_id,pay_time')->select();
- }
- public function getFailedGroupList($joinId){
- return self::alias('hp')->leftJoin('user us','hp.user_id=us.user_id')
- ->where('join_id',$joinId)
- ->where('has_canceled',0)
- ->where('pay_state','in',[0,1])
- ->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')
- ->select();
- }
- /**
- * 活动参团人数
- * @param $activityId
- * @return int
- */
- public function sumActHelpCount($activityId){
- return self::where('group_buy_lb_activity_id',$activityId)
- ->where('pay_state',1)
- ->where('order_id','>=',0)->count('id');
- }
- }
|