| 
									
										
										
										
											2021-11-25 18:11:50 +08:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace app\repository; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | use app\model\CouponBill; | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  | use app\model\Deduction; | 
					
						
							| 
									
										
										
										
											2021-11-30 15:26:38 +08:00
										 |  |  | use app\model\Member as MemberModel; | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  | use app\model\Recharge; | 
					
						
							| 
									
										
										
										
											2021-11-25 18:11:50 +08:00
										 |  |  | use app\service\Repository; | 
					
						
							|  |  |  | use think\Collection; | 
					
						
							|  |  |  | use think\Model; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * 流水相关 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Class BusinessRepository | 
					
						
							|  |  |  |  * @package app\repository | 
					
						
							|  |  |  |  * @method self getInstance(Model $model = null) static | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | class BillRepository extends Repository | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * 流水列表 | 
					
						
							|  |  |  |      * @param $page | 
					
						
							|  |  |  |      * @param $size | 
					
						
							| 
									
										
										
										
											2021-11-29 13:56:26 +08:00
										 |  |  |      * @param $keyword | 
					
						
							| 
									
										
										
										
											2021-12-13 15:57:27 +08:00
										 |  |  |      * @param null $businessCode | 
					
						
							| 
									
										
										
										
											2021-11-29 13:56:26 +08:00
										 |  |  |      * @param null $startTime | 
					
						
							|  |  |  |      * @param null $endTime | 
					
						
							|  |  |  |      * @param array $orders | 
					
						
							|  |  |  |      * @return array | 
					
						
							| 
									
										
										
										
											2021-11-25 18:11:50 +08:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2021-12-13 15:57:27 +08:00
										 |  |  |     public function billList($page, $size, $keyword = null, $businessCode = null,$startTime = null, $endTime = null, $orders = ["a.id" => "desc"]) | 
					
						
							| 
									
										
										
										
											2021-11-25 18:11:50 +08:00
										 |  |  |     { | 
					
						
							|  |  |  |         $failData = [ | 
					
						
							|  |  |  |             'total' => 0, | 
					
						
							|  |  |  |             'current' => $page, | 
					
						
							|  |  |  |             'size' => $size, | 
					
						
							|  |  |  |             'list' => new Collection(), | 
					
						
							|  |  |  |         ]; | 
					
						
							| 
									
										
										
										
											2021-11-30 15:26:38 +08:00
										 |  |  |         $rep = CouponBill::alias("a") | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |             ->join("business b", "a.business_code = b.code") | 
					
						
							|  |  |  |             ->join("account c", "a.user_code = c.user_code") | 
					
						
							|  |  |  |             ->join("coupon_main d", "a.coupon_main_id = d.id") | 
					
						
							|  |  |  |             ->when(!empty($keyword), function ($q) use ($keyword) { | 
					
						
							| 
									
										
										
										
											2021-12-23 16:30:22 +08:00
										 |  |  |                 $q->where("b.business_name|c.nick_name|d.name", "like", "%{$keyword}%"); | 
					
						
							| 
									
										
										
										
											2021-11-30 15:26:38 +08:00
										 |  |  |             }) | 
					
						
							| 
									
										
										
										
											2021-12-13 15:57:27 +08:00
										 |  |  |             ->when(!empty($businessCode), function ($q) use ($businessCode) { | 
					
						
							|  |  |  |                 $q->where("b.code", "=", $businessCode); | 
					
						
							|  |  |  |             }) | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |             ->when(MemberModel::is_agency(session("auth")['roles']), function ($q) { | 
					
						
							| 
									
										
										
										
											2021-11-30 15:26:38 +08:00
										 |  |  |                 $q->where("b.agency_code", "=", session("auth")['business_code']); | 
					
						
							|  |  |  |             }) | 
					
						
							| 
									
										
										
										
											2021-11-29 13:56:26 +08:00
										 |  |  |             ->when(!empty($startTime), function ($q) use ($startTime) { | 
					
						
							| 
									
										
										
										
											2021-11-30 15:26:38 +08:00
										 |  |  |                 $q->whereTime("a.create_time", ">=", $startTime); | 
					
						
							| 
									
										
										
										
											2021-11-29 13:56:26 +08:00
										 |  |  |             }) | 
					
						
							|  |  |  |             ->when(!empty($endTime), function ($q) use ($endTime) { | 
					
						
							| 
									
										
										
										
											2021-11-30 15:26:38 +08:00
										 |  |  |                 $q->whereTime("a.create_time", "<=", $endTime); | 
					
						
							|  |  |  |             }) | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |             ->field("a.*,b.business_name,c.nick_name,c.avatar_url,d.name as coupon_main_name"); | 
					
						
							| 
									
										
										
										
											2021-11-30 15:26:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |         $failData ['total'] = $rep->count(); | 
					
						
							|  |  |  |         $failData ['list'] = $rep | 
					
						
							|  |  |  |             ->page($page, $size) | 
					
						
							|  |  |  |             ->order($orders) | 
					
						
							|  |  |  |             ->select(); | 
					
						
							|  |  |  |         return $failData; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-11-30 15:26:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-13 15:57:27 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * api获取签到流水列表 | 
					
						
							|  |  |  |      * @param $page | 
					
						
							|  |  |  |      * @param $size | 
					
						
							|  |  |  |      * @param $keyword | 
					
						
							|  |  |  |      * @param null $businessCode | 
					
						
							|  |  |  |      * @param null $startTime | 
					
						
							|  |  |  |      * @param null $endTime | 
					
						
							|  |  |  |      * @param array $orders | 
					
						
							|  |  |  |      * @return array | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function apiBillList($page, $size, $businessCode = null,$startTime = null, $endTime = null, $orders = ["id" => "desc"]) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2021-12-23 15:08:48 +08:00
										 |  |  |         $failData = [ | 
					
						
							|  |  |  |             'total' => 0, | 
					
						
							|  |  |  |             'current' => $page, | 
					
						
							|  |  |  |             'size' => $size, | 
					
						
							|  |  |  |             'list' => new Collection(), | 
					
						
							|  |  |  |         ]; | 
					
						
							|  |  |  |         $rep =  CouponBill::with(["couponMain","account"]) | 
					
						
							| 
									
										
										
										
											2021-12-13 15:57:27 +08:00
										 |  |  |             ->when(!empty($businessCode), function ($q) use ($businessCode) { | 
					
						
							|  |  |  |                 $q->where("business_code", "=", $businessCode); | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |             ->when(!empty($startTime), function ($q) use ($startTime) { | 
					
						
							| 
									
										
										
										
											2021-12-23 16:30:22 +08:00
										 |  |  |                 $q->whereTime("create_time", ">=", $startTime . "00:00:00"); | 
					
						
							| 
									
										
										
										
											2021-12-13 15:57:27 +08:00
										 |  |  |             }) | 
					
						
							|  |  |  |             ->when(!empty($endTime), function ($q) use ($endTime) { | 
					
						
							| 
									
										
										
										
											2021-12-23 16:30:22 +08:00
										 |  |  |                 $q->whereTime("create_time", "<=", $endTime . "23:59:59"); | 
					
						
							| 
									
										
										
										
											2021-12-23 15:08:48 +08:00
										 |  |  |             }); | 
					
						
							|  |  |  |             ; | 
					
						
							|  |  |  |         $failData["total"] = $rep->count(); | 
					
						
							|  |  |  |         $failData["list"] = $rep->page($page,$size) | 
					
						
							| 
									
										
										
										
											2021-12-13 15:57:27 +08:00
										 |  |  |             ->order($orders) | 
					
						
							|  |  |  |             ->select(); | 
					
						
							| 
									
										
										
										
											2021-12-23 15:08:48 +08:00
										 |  |  |         return $failData; | 
					
						
							| 
									
										
										
										
											2021-12-13 15:57:27 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * 充值流水列表 | 
					
						
							|  |  |  |      * @param $page | 
					
						
							|  |  |  |      * @param $size | 
					
						
							|  |  |  |      * @param $keyword | 
					
						
							|  |  |  |      * @param null $startTime | 
					
						
							|  |  |  |      * @param null $endTime | 
					
						
							|  |  |  |      * @param array $orders | 
					
						
							|  |  |  |      * @return array | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function rechargeBillList($page, $size, $keyword = null, $startTime = null, $endTime = null, $orders = ["a.id" => "desc"]) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2021-11-30 15:26:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |         $failData = [ | 
					
						
							|  |  |  |             'total' => 0, | 
					
						
							|  |  |  |             'current' => $page, | 
					
						
							|  |  |  |             'size' => $size, | 
					
						
							|  |  |  |             'list' => new Collection(), | 
					
						
							|  |  |  |         ]; | 
					
						
							|  |  |  |         $rep = Recharge::alias("a") | 
					
						
							|  |  |  |             ->join("account b", "a.open_id = b.open_id") | 
					
						
							|  |  |  |             ->join("business c", "a.business_code = c.code") | 
					
						
							|  |  |  |             ->join("member d", "a.member_id = d.id", "left") | 
					
						
							|  |  |  |             ->join("business e", "c.agency_code = e.code", "left") | 
					
						
							|  |  |  |             ->when(!empty($startTime), function ($q) use ($startTime) { | 
					
						
							|  |  |  |                 $q->whereTime("a.update_time", ">=", $startTime); | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |             ->when(!empty($keyword), function ($q) use ($keyword) { | 
					
						
							| 
									
										
										
										
											2021-12-23 09:49:15 +08:00
										 |  |  |                 $q->where("c.business_name", "like", "%$keyword%"); | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |             }) | 
					
						
							|  |  |  |             ->when(!empty($endTime), function ($q) use ($endTime) { | 
					
						
							|  |  |  |                 $q->whereTime("a.update_time", "<=", $endTime); | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |             ->field( | 
					
						
							|  |  |  |                 [ | 
					
						
							|  |  |  |                     "a.*", | 
					
						
							|  |  |  |                     "b.nick_name", | 
					
						
							|  |  |  |                     "b.avatar_url", | 
					
						
							|  |  |  |                     "d.nickname as member_nickname", | 
					
						
							|  |  |  |                     "c.business_name", | 
					
						
							|  |  |  |                     "e.business_name as agency_business_name", | 
					
						
							|  |  |  |                 ] | 
					
						
							|  |  |  |             ); | 
					
						
							| 
									
										
										
										
											2021-11-25 18:11:50 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $failData ['total'] = $rep->count(); | 
					
						
							| 
									
										
										
										
											2021-11-29 13:56:26 +08:00
										 |  |  |         $failData ['list'] = $rep | 
					
						
							| 
									
										
										
										
											2021-11-25 18:11:50 +08:00
										 |  |  |             ->page($page, $size) | 
					
						
							|  |  |  |             ->order($orders) | 
					
						
							|  |  |  |             ->select(); | 
					
						
							|  |  |  |         return $failData; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * 扣款流水列表 | 
					
						
							|  |  |  |      * @param $page | 
					
						
							|  |  |  |      * @param $size | 
					
						
							|  |  |  |      * @param $keyword | 
					
						
							|  |  |  |      * @param null $startTime | 
					
						
							|  |  |  |      * @param null $endTime | 
					
						
							|  |  |  |      * @param array $orders | 
					
						
							|  |  |  |      * @return array | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function deductionBillList($page, $size, $keyword = null, $startTime = null, $endTime = null, $orders = ["id" => "desc"]) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $failData = [ | 
					
						
							|  |  |  |             'total' => 0, | 
					
						
							|  |  |  |             'current' => $page, | 
					
						
							|  |  |  |             'size' => $size, | 
					
						
							|  |  |  |             'list' => new Collection(), | 
					
						
							|  |  |  |         ]; | 
					
						
							|  |  |  |         $rep = Deduction::alias("a") | 
					
						
							|  |  |  |             ->join("business c", "a.business_code = c.code") | 
					
						
							|  |  |  |             ->join("coupon_main e", "a.coupon_main_id = e.id") | 
					
						
							|  |  |  |             ->join("coupon_bill d", "a.bill_id = d.id") | 
					
						
							| 
									
										
										
										
											2021-12-22 18:50:19 +08:00
										 |  |  |             ->join("account b", "a.user_code = b.user_code") | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |             ->when(!empty($startTime), function ($q) use ($startTime) { | 
					
						
							|  |  |  |                 $q->whereTime("a.create_time", ">=", $startTime); | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |             ->when(!empty($keyword), function ($q) use ($keyword) { | 
					
						
							| 
									
										
										
										
											2021-12-22 18:50:19 +08:00
										 |  |  |                 $q->where("c.business_name|e.name", "like", "%" . $keyword . "%"); | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |             }) | 
					
						
							|  |  |  |             ->when(!empty($endTime), function ($q) use ($endTime) { | 
					
						
							|  |  |  |                 $q->whereTime("a.create_time", "<=", $endTime); | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |             ->field( | 
					
						
							|  |  |  |                 [ | 
					
						
							|  |  |  |                     "a.money", | 
					
						
							|  |  |  |                     "a.balance", | 
					
						
							|  |  |  |                     "a.create_time", | 
					
						
							|  |  |  |                     "b.nick_name", | 
					
						
							|  |  |  |                     "b.avatar_url", | 
					
						
							|  |  |  |                     "e.name as coupon_main_name", | 
					
						
							|  |  |  |                     "c.business_name", | 
					
						
							| 
									
										
										
										
											2021-12-22 18:50:19 +08:00
										 |  |  |                     "c.agency_code", | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |                     "d.consumer_money", | 
					
						
							|  |  |  |                     "d.admin_money", | 
					
						
							|  |  |  |                     "d.agency_money", | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     "d.lat", | 
					
						
							|  |  |  |                     "d.lng", | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 ] | 
					
						
							|  |  |  |             ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $failData ['total'] = $rep->count(); | 
					
						
							|  |  |  |         $failData ['list'] = $rep | 
					
						
							|  |  |  |             ->page($page, $size) | 
					
						
							|  |  |  |             ->order($orders) | 
					
						
							|  |  |  |             ->select(); | 
					
						
							| 
									
										
										
										
											2021-12-22 18:50:19 +08:00
										 |  |  |         $failData["list"]->each(function ($item){ | 
					
						
							| 
									
										
										
										
											2021-12-23 11:02:00 +08:00
										 |  |  |             if(!empty($item->agency_code)){ | 
					
						
							| 
									
										
										
										
											2021-12-22 18:50:19 +08:00
										 |  |  |                 $item->agency_business_name = MemberModel::whereRaw("FIND_IN_SET('".MemberModel::ANENT_ROLE_ID."',roles)"  ) | 
					
						
							|  |  |  |                     ->where("business_code",$item->agency_code)->value("nickname",""); | 
					
						
							|  |  |  |             }else{ | 
					
						
							|  |  |  |                 $item->agency_business_name = ""; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         }); | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |         return $failData; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-11-25 18:11:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-29 13:56:26 +08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * 总收益 | 
					
						
							|  |  |  |      * @param $field | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |      * @param null $keyword | 
					
						
							| 
									
										
										
										
											2021-11-29 13:56:26 +08:00
										 |  |  |      * @param null $start_time | 
					
						
							|  |  |  |      * @param null $end_time | 
					
						
							|  |  |  |      * @return float | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |     public function getAgencyMoneySum($field, $keyword = null, $start_time = null, $end_time = null) | 
					
						
							| 
									
										
										
										
											2021-11-29 13:56:26 +08:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2021-12-22 16:46:51 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |         return CouponBill::alias("a") | 
					
						
							| 
									
										
										
										
											2021-12-22 16:46:51 +08:00
										 |  |  |             ->join("business b", "a.business_code = b.code") | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |             ->join("business e", "a.agency_code = e.code", "left") | 
					
						
							|  |  |  |             ->join("account c", "a.user_code = c.user_code") | 
					
						
							|  |  |  |             ->join("coupon_main d", "a.coupon_main_id = d.id") | 
					
						
							|  |  |  |             ->when(!empty($keyword), function ($q) use ($keyword) { | 
					
						
							| 
									
										
										
										
											2021-12-23 16:30:22 +08:00
										 |  |  |                 $q->where("b.business_name|c.nick_name|d.name", "like", "%{$keyword}%"); | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |             }) | 
					
						
							|  |  |  |             ->when(!empty($start_time), function ($q) use ($start_time) { | 
					
						
							|  |  |  |                 $q->whereTime("a.create_time", ">=", $start_time); | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |             ->when(!empty($end_time), function ($q) use ($end_time) { | 
					
						
							|  |  |  |                 $q->whereTime("a.create_time", "<=", $end_time); | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |             ->when(MemberModel::is_agency(session("auth")['roles']), function ($q) { | 
					
						
							| 
									
										
										
										
											2021-12-22 16:46:51 +08:00
										 |  |  |                 $q->where("b.agency_code", "=", session("auth")['business_code']); | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |             }) | 
					
						
							|  |  |  |             ->sum("a." . $field); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-13 15:57:27 +08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * 总流水 | 
					
						
							|  |  |  |      * @param $businessCode | 
					
						
							|  |  |  |      * @param null $startTime | 
					
						
							|  |  |  |      * @param null $endTime | 
					
						
							|  |  |  |      * @return float | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function getBillMoneySum($businessCode, $startTime=null, $endTime=null ) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return CouponBill::alias("a") | 
					
						
							|  |  |  |             ->join("account c", "a.user_code = c.user_code") | 
					
						
							|  |  |  |             ->join("coupon_main b", "a.coupon_main_id = b.id") | 
					
						
							|  |  |  |             ->where("a.business_code",$businessCode) | 
					
						
							|  |  |  |             ->when(!empty($startTime), function ($q) use ($startTime) { | 
					
						
							| 
									
										
										
										
											2021-12-23 16:30:22 +08:00
										 |  |  |                 $q->whereTime("a.create_time", ">=", $startTime. "00:00:00"); | 
					
						
							| 
									
										
										
										
											2021-12-13 15:57:27 +08:00
										 |  |  |             }) | 
					
						
							|  |  |  |             ->when(!empty($endTime), function ($q) use ($endTime) { | 
					
						
							| 
									
										
										
										
											2021-12-23 16:30:22 +08:00
										 |  |  |                 $q->whereTime("a.create_time", "<=", $endTime. "23:59:59"); | 
					
						
							| 
									
										
										
										
											2021-12-13 15:57:27 +08:00
										 |  |  |             }) | 
					
						
							|  |  |  |             ->sum("b.deduction_money"); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * 总充值流水 | 
					
						
							|  |  |  |      * @param null $keyword | 
					
						
							|  |  |  |      * @param null $start_time | 
					
						
							|  |  |  |      * @param null $end_time | 
					
						
							|  |  |  |      * @return float | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function getRechargeMoneySum($keyword = null, $start_time = null, $end_time = null) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return Recharge::alias("a") | 
					
						
							|  |  |  |             ->join("account b", "a.open_id = b.open_id") | 
					
						
							|  |  |  |             ->join("business c", "a.business_code = c.code") | 
					
						
							|  |  |  |             ->join("member d", "a.member_id = d.id", "left") | 
					
						
							|  |  |  |             ->join("business e", "c.agency_code = e.code", "left") | 
					
						
							| 
									
										
										
										
											2021-12-22 16:46:51 +08:00
										 |  |  |             ->where("a.state",Recharge::state_on) | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |             ->when(!empty($keyword), function ($q) use ($keyword) { | 
					
						
							|  |  |  |                 $q->whereTime("c.business_name|e.business_name", "like", "%" . $keyword . "%"); | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |             ->when(!empty($start_time), function ($q) use ($start_time) { | 
					
						
							|  |  |  |                 $q->whereTime("a.update_time", ">=", $start_time); | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |             ->when(!empty($end_time), function ($q) use ($end_time) { | 
					
						
							|  |  |  |                 $q->whereTime("a.update_time", "<=", $end_time); | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |             ->sum("a.money"); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * 总扣款流水 | 
					
						
							|  |  |  |      * @param null $keyword | 
					
						
							|  |  |  |      * @param null $start_time | 
					
						
							|  |  |  |      * @param null $end_time | 
					
						
							|  |  |  |      * @return float | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function getDeductionMoneySum($keyword = null,$start_time = null, $end_time = null) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return Deduction::alias("a") | 
					
						
							|  |  |  |             ->join("business c", "a.business_code = c.code") | 
					
						
							|  |  |  |             ->join("business f", "f.code = c.agency_code", "left") | 
					
						
							|  |  |  |             ->join("coupon_main e", "a.coupon_main_id = e.id") | 
					
						
							|  |  |  |             ->join("coupon_bill d", "a.bill_id = d.id") | 
					
						
							|  |  |  |             ->join("account b", "d.user_code = b.user_code", "left") | 
					
						
							|  |  |  |             ->when(!empty($keyword), function ($q) use ($keyword) { | 
					
						
							|  |  |  |                 $q->where("c.business_name|f.business_name", "like", "%" . $keyword . "%"); | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |             ->when(!empty($start_time), function ($q) use ($start_time) { | 
					
						
							|  |  |  |                 $q->whereTime("a.create_time", ">=", $start_time); | 
					
						
							|  |  |  |             }) | 
					
						
							| 
									
										
										
										
											2021-11-30 15:26:38 +08:00
										 |  |  |             ->when(!empty($end_time), function ($q) use ($end_time) { | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |                 $q->whereTime("a.create_time", "<=", $end_time); | 
					
						
							| 
									
										
										
										
											2021-11-30 15:26:38 +08:00
										 |  |  |             }) | 
					
						
							| 
									
										
										
										
											2021-12-01 16:53:44 +08:00
										 |  |  |             ->sum("a.money"); | 
					
						
							| 
									
										
										
										
											2021-11-29 13:56:26 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-25 18:11:50 +08:00
										 |  |  | } |