GroupBuyHelp.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  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\api\model\groupbuy;
  13. use app\common\model\groupbuylb\GroupBuyLbGoods as GroupBuyLbGoodsModel;
  14. use app\common\model\groupbuylb\GroupBuyLbJoin as GroupBuyLbJoinModel;
  15. use app\store\model\Goods;
  16. use app\common\model\groupbuy\GroupBuyHelp as GroupBuyHelpModel;
  17. use app\common\library\helper;
  18. use app\common\model\groupbuy\GroupBuyGoods as GroupBuyGoodsModel;
  19. use app\common\model\groupbuy\GroupBuyJoin as GroupBuyJoinModel;
  20. use think\facade\Db;
  21. /**
  22. * 拼团参与模型
  23. * Class Coupon
  24. * @package app\store\model
  25. */
  26. class GroupBuyHelp extends GroupBuyHelpModel
  27. {
  28. protected $append = [];
  29. /**
  30. * 待支付订单详情
  31. * @param string $orderNo 订单号
  32. * @return null|static
  33. */
  34. public static function getPayDetail(string $orderNo) {
  35. return self::detail(['order_no' => $orderNo]);
  36. }
  37. /**
  38. * 获取列表
  39. * @param int $categoryId
  40. * @param int $limit
  41. * @return \think\Paginator
  42. * @throws \think\db\exception\DbException
  43. */
  44. public function getList(int $user_id = 0, int $limit = 15){
  45. // 检索查询条件
  46. $filter = [];
  47. $user_id > 0 && $filter[] = ['user_id', '=', $user_id];
  48. $filter[] = ['pay_state','=',1];
  49. // 获取列表数据
  50. $list = $this->where($filter)->order(['id' => 'desc'])->paginate($limit)->each(function($item) {
  51. $groupgoods = GroupBuyGoodsModel::where('group_buy_activity_id',$item['group_buy_activity_id'])->find();
  52. $join = GroupBuyJoinModel::where('id',$item['join_id'])->find();
  53. $item['group_price'] = $groupgoods['group_price'];
  54. $item['preview_url'] = $groupgoods['preview_url'];
  55. $item['goods_name'] = $groupgoods['goods_name'];
  56. $item['pt_state'] = $item['order_id'] > 0 ? 1 :0;
  57. $item['join_status'] = $join->status;//当前团的状态 0 进行中 1 成功 2失败
  58. $item['hc_count'] = $join->hc_count;
  59. $item['pay_time'] = Date("Y-m-d H:i:s",$item['pay_time']);
  60. });
  61. return $list;
  62. }
  63. public function getListUnionGroup(int $user_id = 0, int $limit = 15,int $page=1){
  64. $offset = ($page-1)*$limit;
  65. $sqlCount = "select count(*) as think_count from
  66. (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
  67. from yoshop_group_buy_activity_help where user_id={$user_id} and pay_state=1 union
  68. 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
  69. from yoshop_group_buy_lb_activity_help where user_id={$user_id} and pay_state=1) c limit 1;";
  70. $countsArr = DB::query($sqlCount);
  71. $counts = $countsArr[0]['think_count']??0;
  72. $current_page = $page;
  73. $last_page = ceil($counts/15);
  74. $sql = "select c.* from
  75. (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
  76. from yoshop_group_buy_activity_help where user_id={$user_id} and pay_state=1 union
  77. 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
  78. from yoshop_group_buy_lb_activity_help where user_id={$user_id} and pay_state=1) c
  79. order by c.create_time desc limit {$offset},{$limit};";
  80. $list = DB::query($sql);
  81. if (count($list)){
  82. foreach ($list as &$item){
  83. if ($item['gtype'] == 1){
  84. $groupgoods = GroupBuyGoodsModel::where('group_buy_activity_id',$item['group_activity_id'])->find();
  85. $join = GroupBuyJoinModel::where('id',$item['join_id'])->find();
  86. }
  87. if ($item['gtype'] == 2){
  88. $groupgoods = GroupBuyLbGoodsModel::where('group_buy_lb_activity_id',$item['group_activity_id'])->find();
  89. $join = GroupBuyLbJoinModel::where('id',$item['join_id'])->find();
  90. }
  91. $item['group_price'] = $groupgoods['group_price'];
  92. $item['preview_url'] = $groupgoods['preview_url'];
  93. $item['goods_name'] = $groupgoods['goods_name'];
  94. $item['pt_state'] = $item['order_id'] > 0 ? 1 :0;
  95. $item['join_status'] = $join->status;//当前团的状态 0 进行中 1 成功 2失败
  96. $item['hc_count'] = $join->hc_count;
  97. $item['pay_time'] = Date("Y-m-d H:i:s",$item['pay_time']);
  98. }
  99. }
  100. $data['current_page'] = $current_page;
  101. $data['last_page'] = $last_page;
  102. $data['data'] = $list;
  103. return $data;
  104. }
  105. }