// +---------------------------------------------------------------------- declare (strict_types = 1); namespace app\api\model\groupbuy; use app\common\model\groupbuylb\GroupBuyLbGoods as GroupBuyLbGoodsModel; use app\common\model\groupbuylb\GroupBuyLbJoin as GroupBuyLbJoinModel; use app\store\model\Goods; use app\common\model\groupbuy\GroupBuyHelp as GroupBuyHelpModel; use app\common\library\helper; use app\common\model\groupbuy\GroupBuyGoods as GroupBuyGoodsModel; use app\common\model\groupbuy\GroupBuyJoin as GroupBuyJoinModel; use think\facade\Db; /** * 拼团参与模型 * Class Coupon * @package app\store\model */ class GroupBuyHelp extends GroupBuyHelpModel { protected $append = []; /** * 待支付订单详情 * @param string $orderNo 订单号 * @return null|static */ public static function getPayDetail(string $orderNo) { return self::detail(['order_no' => $orderNo]); } /** * 获取列表 * @param int $categoryId * @param int $limit * @return \think\Paginator * @throws \think\db\exception\DbException */ public function getList(int $user_id = 0, int $limit = 15){ // 检索查询条件 $filter = []; $user_id > 0 && $filter[] = ['user_id', '=', $user_id]; $filter[] = ['pay_state','=',1]; // 获取列表数据 $list = $this->where($filter)->order(['id' => 'desc'])->paginate($limit)->each(function($item) { $groupgoods = GroupBuyGoodsModel::where('group_buy_activity_id',$item['group_buy_activity_id'])->find(); $join = GroupBuyJoinModel::where('id',$item['join_id'])->find(); $item['group_price'] = $groupgoods['group_price']; $item['preview_url'] = $groupgoods['preview_url']; $item['goods_name'] = $groupgoods['goods_name']; $item['pt_state'] = $item['order_id'] > 0 ? 1 :0; $item['join_status'] = $join->status;//当前团的状态 0 进行中 1 成功 2失败 $item['hc_count'] = $join->hc_count; $item['pay_time'] = Date("Y-m-d H:i:s",$item['pay_time']); }); return $list; } public function getListUnionGroup(int $user_id = 0, int $limit = 15,int $page=1){ $offset = ($page-1)*$limit; $sqlCount = "select count(*) as think_count from (select id,group_buy_activity_id as group_activity_id,join_id,user_id,order_id,head_picture,1 as gtype,has_canceled,pay_type,pay_time,create_time from yoshop_group_buy_activity_help where user_id={$user_id} and pay_state=1 union select id,group_buy_lb_activity_id as group_activity_id,join_id,user_id,order_id,head_picture,2 as gtype,pay_type,has_canceled,pay_time,create_time from yoshop_group_buy_lb_activity_help where user_id={$user_id} and pay_state=1) c limit 1;"; $countsArr = DB::query($sqlCount); $counts = $countsArr[0]['think_count']??0; $current_page = $page; $last_page = ceil($counts/15); $sql = "select c.* from (select id,group_buy_activity_id as group_activity_id,join_id,user_id,order_id,goods_num,head_picture,1 as gtype,has_canceled,pay_type,pay_time,create_time from yoshop_group_buy_activity_help where user_id={$user_id} and pay_state=1 union select id,group_buy_lb_activity_id as group_activity_id,join_id,user_id,order_id,goods_num,head_picture,2 as gtype,has_canceled,pay_type,pay_time,create_time from yoshop_group_buy_lb_activity_help where user_id={$user_id} and pay_state=1) c order by c.create_time desc limit {$offset},{$limit};"; $list = DB::query($sql); if (count($list)){ foreach ($list as &$item){ if ($item['gtype'] == 1){ $groupgoods = GroupBuyGoodsModel::where('group_buy_activity_id',$item['group_activity_id'])->find(); $join = GroupBuyJoinModel::where('id',$item['join_id'])->find(); } if ($item['gtype'] == 2){ $groupgoods = GroupBuyLbGoodsModel::where('group_buy_lb_activity_id',$item['group_activity_id'])->find(); $join = GroupBuyLbJoinModel::where('id',$item['join_id'])->find(); } $item['group_price'] = $groupgoods['group_price']; $item['preview_url'] = $groupgoods['preview_url']; $item['goods_name'] = $groupgoods['goods_name']; $item['pt_state'] = $item['order_id'] > 0 ? 1 :0; $item['join_status'] = $join->status;//当前团的状态 0 进行中 1 成功 2失败 $item['hc_count'] = $join->hc_count; $item['pay_time'] = Date("Y-m-d H:i:s",$item['pay_time']); } } $data['current_page'] = $current_page; $data['last_page'] = $last_page; $data['data'] = $list; return $data; } }