123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283 |
- <?php
- /*
- * @Description: 宽带套餐
- * @Version: *
- * @Autor: lexuan
- * @Date: 2024-11-25 16:38:13
- * @LastEditors: lexuan
- * @LastEditTime: 2024-11-25 16:38:13
- */
- namespace App\DataApiNew\Helper;
- use App\DataApiNew\Models\PackagesKd;
- use App\Models\Pages;
- use App\Models\SpoutExport;
- use App\Models\SpoutImport;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- use Vinkla\Hashids\Facades\Hashids;
- class PackagesKdHelper
- {
- // 查询条件
- public function whens($query, $request)
- {
- return $query
- ->when($request->filled('id'), fn ($q) => $q->where('id', $request->id))
- ->when($request->filled('name'), fn ($q) => $q->where('name', 'like', "%$request->name%"))
- ->when($request->has('rebate_type'), fn ($q) => $q->where('rebate_type', $request->rebate_type))
- ->when($request->has('is_upload'), fn ($q) => $q->where('is_upload', $request->is_upload))
- ->when($request->filled('operator_id'), fn ($q) => $q->where('operator_id', $request->operator_id));
- }
- // 查询列表
- public function select(Request $request, $selectFields = [])
- {
- if (empty($selectFields)) {
- $selectFields = PackagesKd::$selectFields;
- }
- $page = new Pages($request, PackagesKd::query());
- $page->withRelations(['suppliers']);
- $page->before(function ($query) use ($request, $selectFields) {
- $query->select($selectFields);
- return $this->whens($query, $request)
- ->orderBy('is_upload', 'desc')
- ->orderBy(DB::raw('CAST(yj AS UNSIGNED)'), 'desc')
- ->orderby("weight", "desc")
- ->orderBy('created_at', 'desc');;
- });
- $result = $page->paginate();
- return $result;
- }
- // 导出
- public function export(Request $request)
- {
- $query = PackagesKd::select(PackagesKd::$selectFields);
- $query = $this->whens($query, $request);
- $query->orderBy('created_at', 'desc');
- $header = [
- '名称' => 'name',
- '简介' => 'mini_text',
- '主图' => 'image',
- '详情' => 'details',
- '运营商' => 'operator_id',
- '佣金政策' => 'yjzc',
- '套餐类型' => 'type_id',
- '月租' => 'monthly_rent',
- '权重' => 'weight',
- '上游套餐编码' => 'upstream_code',
- '生产方式' => 'production_type_id',
- '是否上架' => 'is_upload',
- '是否需要身份证号' => 'need_idcard',
- '是否需要上传身份证照片' => 'is_upload_idcard',
- '状态' => 'status',
- '外部产品编码' => 'out_package_id',
- '归属地' => 'belonging_place',
- '流量额度' => 'data_quota',
- '通话时长' => 'call_duration',
- '是否可选号' => 'is_choose_number',
- '首充金额' => 'first_recharge_amount',
- '直接提交局方,0表示不提,1表示提' => 'direct_send_status',
- '线上或本地号库切换,默认为0:无号库,1:本地号库,2:线上号库' => 'uporlocal',
- '颜色' => 'color',
- '最小年龄' => 'min_age',
- '最大年龄' => 'max_age',
- '亲情号' => 'family_number',
- '靓号' => 'beautiful_number',
- '可否自选归属地' => 'ownership_change',
- '优惠有效期,单位月' => 'discount_month',
- '套餐月租' => 'month_rent',
- '通用流量' => 'general_traffic',
- '定向流量' => 'directional_traffic',
- '长期资费/短期资费' => 'long_short_tariff',
- '附带权益' => 'interest',
- '原月租' => 'original_month_rent',
- '封面图' => 'cover_img',
- '注意事项' => 'attention',
- '只发货地区' => 'noly_delivery_area',
- '亮点' => 'bright',
- '返佣类型 1:次月返 2:秒返' => 'rebate_type',
- '知识库' => 'knowledge_base',
- '是否选号' => 'select_status',
- '是否校验' => 'is_valid',
- '前置校验编码' => 'valid_req_code',
- '套餐标签' => 'tag_ids',
- '小店套餐标签' => 'shop_tag_ids',
- '定向流量' => 'data_orientation',
- '通用流量' => 'data_usual',
- '是否允许直播 0:不允许 1:允许' => 'is_live',
- '删除时间' => 'deleted_at',
- '运营商标识图' => 'ident_image',
- '下架时间' => 'delist_time',
- '产品类型 0号卡 1宽带' => 'product_type',
- '网速' => 'internet_speed',
- '供货商id' => 'supplier_id',
- '结佣条件' => 'commission_terms',
- ];
- $getEnValue = $this->getEnValue();
- $excel = new SpoutExport($header);
- $excel->setData($query->get());
- $result = $excel->setEnum($getEnValue)->spoutToExcel('excel_out');
- return $result ? success($result['url']) : error();
- }
- // 导入
- public function import(Request $request)
- {
- $header = [
- '名称' => 'name',
- '简介' => 'mini_text',
- '主图' => 'image',
- '详情' => 'details',
- '运营商' => 'operator_id',
- '佣金政策' => 'yjzc',
- '套餐类型' => 'type_id',
- '月租' => 'monthly_rent',
- '权重' => 'weight',
- '上游套餐编码' => 'upstream_code',
- '生产方式' => 'production_type_id',
- '是否上架' => 'is_upload',
- '是否需要身份证号' => 'need_idcard',
- '是否需要上传身份证照片' => 'is_upload_idcard',
- '状态' => 'status',
- '外部产品编码' => 'out_package_id',
- '归属地' => 'belonging_place',
- '流量额度' => 'data_quota',
- '通话时长' => 'call_duration',
- '是否可选号' => 'is_choose_number',
- '首充金额' => 'first_recharge_amount',
- '直接提交局方,0表示不提,1表示提' => 'direct_send_status',
- '线上或本地号库切换,默认为0:无号库,1:本地号库,2:线上号库' => 'uporlocal',
- '颜色' => 'color',
- '最小年龄' => 'min_age',
- '最大年龄' => 'max_age',
- '亲情号' => 'family_number',
- '靓号' => 'beautiful_number',
- '可否自选归属地' => 'ownership_change',
- '优惠有效期,单位月' => 'discount_month',
- '套餐月租' => 'month_rent',
- '通用流量' => 'general_traffic',
- '定向流量' => 'directional_traffic',
- '长期资费/短期资费' => 'long_short_tariff',
- '附带权益' => 'interest',
- '原月租' => 'original_month_rent',
- '封面图' => 'cover_img',
- '注意事项' => 'attention',
- '只发货地区' => 'noly_delivery_area',
- '亮点' => 'bright',
- '返佣类型 1:次月返 2:秒返' => 'rebate_type',
- '知识库' => 'knowledge_base',
- '是否选号' => 'select_status',
- '是否校验' => 'is_valid',
- '前置校验编码' => 'valid_req_code',
- '套餐标签' => 'tag_ids',
- '小店套餐标签' => 'shop_tag_ids',
- '定向流量' => 'data_orientation',
- '通用流量' => 'data_usual',
- '是否允许直播 0:不允许 1:允许' => 'is_live',
- '删除时间' => 'deleted_at',
- '运营商标识图' => 'ident_image',
- '下架时间' => 'delist_time',
- '产品类型 0号卡 1宽带' => 'product_type',
- '网速' => 'internet_speed',
- '供货商id' => 'supplier_id',
- '结佣条件' => 'commission_terms',
- ];
- $getEnValue = $this->getEnValue();
- $SpoutImport = new SpoutImport($header);
- $dataList = $SpoutImport->setRequest($request)->getExcelData();
- return $dataList;
- }
- // 获取枚举值
- public function getEnValue()
- {
- $data = [
- 'open_status' => [
- 0 => "待开卡",
- 1 => "开卡中",
- ]
- ];
- return $data;
- }
- // 查询一条
- public function find(Request $request)
- {
- $request->validate([
- 'id' => 'required|integer',
- ]);
- $result = PackagesKd::where(['id' => $request->id])->select(PackagesKd::$selectFields)->first();
- return success($result);
- }
- // 添加
- public function insert(Request $request)
- {
- $request->validate([
- 'name' => 'required',
- ]);
- sys_log($request, '添加套餐', '宽带套餐');
- $result = PackagesKd::create($request->all());
- if ($result) {
- // 生成套餐秘钥
- PackagesKd::where('id', $result->id)->update(['package_key' => Hashids::encode($result->id)]);
- return success();
- } else {
- return error();
- }
- }
- // 修改
- public function update(Request $request)
- {
- $request->validate([
- 'id' => 'required|integer',
- ]);
- sys_log($request, '修改套餐', '宽带套餐');
- $result = PackagesKd::where(['id' => $request->id])->update($request->all());
- if ($result) {
- return success();
- } else {
- return error();
- }
- }
- // 删除
- public function delete(Request $request)
- {
- $request->validate([
- 'ids' => 'required',
- ]);
-
- sys_log($request, '删除套餐', '宽带套餐');
- $id_str = $request->ids;
- $arr = explode(",", $id_str);
- // 查询是否存在子数据
- // $count = Shop::whereIn('tm_id',$arr)->count();
- // if($count > 0){
- // return ['code'=>0,'msg'=>"存在子数据,禁止删除"];
- // }
- $result = PackagesKd::whereIn('id', $arr)->delete();
- if ($result) {
- return success();
- } else {
- return error();
- }
- }
- }
|