$param['merchant_id'], 'store_id' => $param['store_id'], 'vid' => $param['vip_id'], 'status' => 1, 'vip_recharge_id' => $param['activity_id'] ]; try { $OrderModel = new RetailRechargeOrderModel(); $num = $OrderModel->getCount($where); return callBack(statusCode()['success'], "会员的充值次数查询成功", $num); } catch (\Exception $e) { return callBack(statusCode()['error'], "会员的充值次数查询失败"); } } /** * 会员充值记录列表 * @param $parameter * [ * user_type 1商户 2门店 * request_type 1web端 2移动端 * merchant_id * store_id * searchText 会员名称 手机号 * scene_type 1收银机 2商户后台 3门店后台 4小程序 5公众号 * repay_name 0:直接到账 1:分期到账 * start_time 开始时间 移动端 * end_time 结束时间 移动端 * page * limit * ] * @return array * [ * status * message * data=>[ * list 记录列表 * count 总条数 * ] * ] */ public function getVipRechargeRecordList($parameter) { $result = $this->VipRechargeRecordVerify($parameter); //参数验证 if ($result['status'] != 1) { return $result; //验证失败返回 } $page = $parameter['page'] ? $parameter['page'] : 1; $limit = $parameter['limit'] ? $parameter['limit'] : 10; $where = $this->getVipRechargeRecordTerm($parameter); //查询条件 $fields = 'r.add_time,r.money,r.all_money,r.give_money,r.repay_name,r.scene_type,v.mobile_phone,v.card_key,v.name,v.nickname,s.storetag'; try { $vipRechargeRecordModel = new RetailRechargeOrderModel(); $list = $vipRechargeRecordModel->getVipRechargeRecordList($fields, $where, $page, $limit); } catch (\Exception $e) { return ['status' => 1, 'message' => '查询成功', 'data' => ['list' => [], 'count' => 0]]; } if ($list) { $count = $vipRechargeRecordModel->getVipRechargeRecordCount($where); //获取记录总条数 foreach ($list as &$val) { $val['money'] = round($val['money'], 2); $val['all_money'] = round($val['all_money'], 2); $val['give_money'] = round($val['give_money'], 2); $val['name'] = $val['name'] ? $val['name'] : $val['nickname']; $val['mobile_phone'] = $val['mobile_phone'] ? $val['mobile_phone'] : $val['card_key']; $val['add_time'] = date('Y-m-d H:i:s', $val['add_time']); switch ($val['repay_name']) { case 0: $val['repay_name'] = '直接到账'; break; case 1: $val['repay_name'] = '分期到账'; break; } switch ($val['scene_type']) { case 1: $val['scene_name'] = '收银机'; break; case 2: $val['scene_name'] = '商户后台'; break; case 3: $val['scene_name'] = '门店后台'; break; case 4: $val['scene_name'] = '小程序'; break; case 5: $val['scene_name'] = '公众号'; break; case 6: $val['scene_name'] = '小助手'; break; } } } return ['status' => 1, 'message' => '查询成功', 'data' => ['list' => $list, 'count' => $count ? $count : 0]]; } /** * 会员充值记录列表的where条件 * @param $parameter * [ * user_type 1商户 2门店 * request_type 1web端 2移动端 * merchant_id * store_id * searchText 会员名称 手机号 * scene_type 1收银机 2商户后台 3门店后台 4小程序 5公众号 * repay_name 0:直接到账 1:分期到账 * start_time 开始时间 移动端 * end_time 结束时间 移动端 * ] * @return array */ public function getVipRechargeRecordTerm($parameter) { $where = [ 'r.merchant_id' => $parameter['merchant_id'], 'r.status' => 1, 'r.state' => 1, 'r.refund_status' => 1, 'r.type' => array('in', '1,3') ]; switch ($parameter['user_type']) { case 2: //门店 $where['r.store_id'] = $parameter['store_id']; break; } if (!empty($parameter['searchText'])) { $where['v.name|v.nickname|v.mobile_phone|v.card_key'] = ['like', "%{$parameter['searchText']}%"]; } if (!empty($parameter['scene_type'])) { $where['r.scene_type'] = ['in', $parameter['scene_type']]; } if (in_array($parameter['repay_name'], [0, 1]) && $parameter['repay_name'] != '') { $where['r.repay_name'] = $parameter['repay_name']; } switch ($parameter['request_type']) { case 2: //移动端 $start_time = $parameter['start_time'] ? strtotime($parameter['start_time']) : ''; $end_time = $parameter['end_time'] ? strtotime($parameter['end_time']) : ''; break; } if (!empty($start_time) && !empty($end_time)) { $where['r.add_time'] = ['between', [$start_time, $end_time]]; } else if (!empty($start_time)) { $where['r.add_time'] = ['egt', $start_time]; } else if (!empty($end_time)) { $where['r.add_time'] = ['elt', $end_time]; } return $where; } /** * 会员充值记录列表参数验证 * @param $parameter * [ * user_type 1商户 2门店 * request_type 1web端 2移动端 * merchant_id * store_id * ] * @return array */ public function VipRechargeRecordVerify($parameter) { if (!in_array($parameter['request_type'], [1, 2]) || !in_array($parameter['user_type'], [1, 2]) || empty($parameter['merchant_id']) || ($parameter['user_type'] == 2 && empty($parameter['store_id']))) { return ['status' => 0, 'message' => '未知请求来源']; } return ['status' => 1, 'message' => '验证通过']; } }