$param['merchant_id'], ]; if (!empty($param['searchText'])) { $param['searchText'] = trim($param['searchText']); $where['v.name|v.nickname|v.mobile_phone|r.stock_id|r.stock_name'] = ['like', "%{$param['searchText']}%"]; } if (!empty($param['use_status'])) { $where['r.use_status'] = $param['use_status']; } try { $payCouponRecord = new PayCouponRecordModel(); $list = $payCouponRecord->record($fields, $where, $page, $limit); } catch (\Exception $e) { return callBack(statusCode()['success'], "查询成功", ['list' => [], 'count' => 0]); } if ($list) { $count = $payCouponRecord->recordCount($where); $StoreModel = new RetailStoreModel(); foreach ($list as $key => &$val) { $val['index'] = $key + 1; $val['name'] = $val['name'] ? $val['name'] : $val['nickname']; $val['add_time'] = date('Y-m-d H:i:s', $val['add_time']); if (empty($val['receive_store_name'])) { $val['receive_store_name'] = '主动发放'; } switch ($val['user_type']) { case 1: $val['user_type_name'] = '普通模式'; switch ($val['type']) { case 1: $val['type_name'] = '线上'; break; case 2: $val['type_name'] = '线下'; break; } break; case 2: $val['user_type_name'] = '服务商模式'; $val['type_name'] = '线上,线下'; break; } switch ($val['stock_type']) { case 1: $val['stock_type_name'] = '固定面额满减券'; break; case 2: $val['stock_type_name'] = '折扣券'; break; case 3: $val['stock_type_name'] = '换购券'; break; } if($val['use_status'] == 2){ //已使用 if (!empty($val['use_time'])) { $val['use_time'] = date('Y-m-d H:i:s', $val['use_time']); } if (!empty($val['use_store_id'])) { $val['use_store_name'] = $StoreModel->getFindField([ 'id' => $val['use_store_id'] ], 'storetag'); } else { $val['use_store_name'] = ''; } switch ($val['use_scene']) { case 1: $val['use_scene_name'] = '小程序'; break; case 2: $val['use_scene_name'] = '收银机'; break; case 3: $val['use_scene_name'] = '公众号'; break; } }else{ $val['use_time'] = ''; } } } return callBack(statusCode()['success'], "查询成功", ['list' => $list, 'count' => $count ? $count : 0]); } /** * 代金券详情 * @param $param * [ * id * merchant_id * ] * @return mixed */ public function couponInfo($param) { if (empty($param['id']) || empty($param['merchant_id'])) { return callBack(statusCode()['error'], "缺少参数"); } try { $payCouponModel = new PayCouponModel(); $info = $payCouponModel->getFind(['id' => $param['id'], 'merchant_id' => $param['merchant_id']]); } catch (\Exception $e) { return callBack(statusCode()['success'], "查询成功", ['info' => []]); } $available_begin_time = date('Y-m-d H:i:s', $info['available_begin_time']); $available_begin_time = explode(' ', $available_begin_time); $available_begin_time = $available_begin_time[0] . 'T' . $available_begin_time[1]; $available_end_time = date('Y-m-d H:i:s', $info['available_end_time']); $available_end_time = explode(' ', $available_end_time); $available_end_time = $available_end_time[0] . 'T' . $available_end_time[1]; $info['type'] = intval($info['type']); $info['user_type'] = intval($info['user_type']); $info['available_time'] = [$available_begin_time, $available_end_time]; $info['pattern_info'] = json_decode($info['pattern_info'], true); $info['stock_use_rule'] = json_decode($info['stock_use_rule'], true); $info['coupon_use_rule'] = json_decode($info['coupon_use_rule'], true); return callBack(statusCode()['success'], "查询成功", ['info' => $info]); } /** * 代金券列表 * @param $param * [ * merchant_id * add_time * stock_type 批次类型 1为NORMAL固定面额满减券,2为DISCOUNT折扣券使用规则,3为EXCHANGE换购券使用规则 * suspend_status 1已激活 2未激活 * activate_status 1已激活 2未激活 * ] * @return mixed * [ * status * message * data=>[ * list 列表 * count 总条数 * ] * ] */ public function getCouponList($param) { if (empty($param['merchant_id'])) { return callBack(statusCode()['error'], "缺少参数"); } $where = $this->getCouponListTerm($param); $page = $param['page'] ? $param['page'] : ''; $limit = $param['limit'] ? $param['limit'] : ''; $field = 'id,stock_name,stock_id,stock_type,stock_use_rule,available_begin_time,available_end_time,activate_status,type,suspend_status,user_type,operator_id,operation_num,store_id_gather,coupon_type'; try { $couponModel = new PayCouponModel(); $list = $couponModel->getSelect($where, $field, $order = 'id desc', $page . ',' . $limit); if (!empty($list)) { $count = $couponModel->getCount($where); $JurisdictionUserModel = new JurisdictionUserModel(); foreach ($list as $key => &$val) { $val['index'] = $key + 1; $val['available_begin_time'] = date('Y-m-d H:i:s', $val['available_begin_time']); $val['available_end_time'] = date('Y-m-d H:i:s', $val['available_end_time']); $val['valid_time'] = $val['available_begin_time'] . '-' . $val['available_end_time']; switch ($val['stock_type']) { case 1: $val['stock_type_name'] = '固定面额满减券'; break; case 2: $val['stock_type_name'] = '折扣券'; break; case 3: $val['stock_type_name'] = '换购券'; break; } switch ($val['user_type']) { case 1: $val['user_name'] = '普通支付模式'; switch ($val['type']) { case 1: $val['type_name'] = '线上'; break; case 2: $val['type_name'] = '线下'; break; } break; case 2: $val['user_name'] = '服务商支付模式'; $val['type_name'] = '线上+线下'; break; } $val['operator_name'] = $JurisdictionUserModel->getFindField(['id' => $val['operator_id']], "name"); $val['max_coupons'] = json_decode($val['stock_use_rule'], true)['max_coupons']; } } return callBack(statusCode()['success'], "查询成功", ['list' => $list, 'count' => $count ? $count : 0]); } catch (\Exception $e) { return callBack(statusCode()['success'], "查询成功", ['list' => [], 'count' => 0]); } } /** * 代金券列表的where查询条件 * @param $param * [ * merchant_id * add_time * stock_type 批次类型 1为NORMAL固定面额满减券,2为DISCOUNT折扣券使用规则,3为EXCHANGE换购券使用规则 * suspend_status 1已激活 2未激活 * activate_status 1已激活 2未激活 * ] * @return mixed */ public function getCouponListTerm($param) { if (!empty($param['add_time'])) { $where['available_begin_time'] = ['egt', strtotime($param['add_time'][0])]; $where['available_end_time'] = ['elt', strtotime($param['add_time'][1])]; } if (!empty($param['stock_type'])) { $where['stock_type'] = $param['stock_type']; } if (!empty($param['suspend_status'])) { $where['suspend_status'] = $param['suspend_status']; } if (!empty($param['activate_status'])) { $where['activate_status'] = $param['activate_status']; } $where['status'] = 1; //正常 $where['merchant_id'] = $param['merchant_id']; return $where; } }