套餐类型
This commit is contained in:
parent
e9c34ae95d
commit
e40d67fd0c
@ -81,6 +81,10 @@ class PackageRepository extends Repository
|
|||||||
$this->model = $this->model->where('status', $conditions['status']);
|
$this->model = $this->model->where('status', $conditions['status']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isset($conditions['flowed'])) {
|
||||||
|
$this->model = $this->model->where('flowed', $conditions['flowed']);
|
||||||
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,8 +19,6 @@ class CreateVirtualOrderCardsTables extends Migration
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
DB::unprepared(File::get(__DIR__ . '/create_virtual_order_cards_func.pgsql'));
|
|
||||||
|
|
||||||
Schema::create('virtual_order_cards_partition', function (Blueprint $table) {
|
Schema::create('virtual_order_cards_partition', function (Blueprint $table) {
|
||||||
$table->increments('id')->comment('自增ID');
|
$table->increments('id')->comment('自增ID');
|
||||||
$table->tinyInteger('type')->unsigned()->default(0)->comment('订单类型(0:基础套餐 1:套餐续费 2:续费包 3:加油包 4:可选包 5:附加包)');
|
$table->tinyInteger('type')->unsigned()->default(0)->comment('订单类型(0:基础套餐 1:套餐续费 2:续费包 3:加油包 4:可选包 5:附加包)');
|
||||||
@ -70,6 +68,8 @@ class CreateVirtualOrderCardsTables extends Migration
|
|||||||
$table->index(['type', 'company_id', 'package_id', 'unit_price']);
|
$table->index(['type', 'company_id', 'package_id', 'unit_price']);
|
||||||
$table->index(['service_start_at', 'service_end_at']);
|
$table->index(['service_start_at', 'service_end_at']);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
DB::unprepared(File::get(__DIR__ . '/create_virtual_order_cards_func.pgsql'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -10,7 +10,7 @@ CREATE OR REPLACE VIEW real_virtual_relations AS
|
|||||||
FROM real_order_cards_partition as r
|
FROM real_order_cards_partition as r
|
||||||
JOIN virtual_order_cards as v ON v.id = r.virtual_order_id
|
JOIN virtual_order_cards as v ON v.id = r.virtual_order_id
|
||||||
WHERE r.virtual_order_id <> 0
|
WHERE r.virtual_order_id <> 0
|
||||||
GROUP BY r.type,r.company_id,r.package_id,v.company_id,v.package_id
|
GROUP BY r.type,r.company_id,r.package_id,v.company_id,v.package_id;
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION GET_TIMELINES(INT8[])
|
CREATE OR REPLACE FUNCTION GET_TIMELINES(INT8[])
|
||||||
RETURNS TABLE
|
RETURNS TABLE
|
||||||
|
@ -71,10 +71,10 @@ CREATE MATERIALIZED VIEW vd_old_orders AS
|
|||||||
END AS service_end_at,
|
END AS service_end_at,
|
||||||
to_timestamp((ckb_custom_handle_log.create_time)::double precision) AS created_at,
|
to_timestamp((ckb_custom_handle_log.create_time)::double precision) AS created_at,
|
||||||
count(*) AS counts
|
count(*) AS counts
|
||||||
FROM ((((vd.ckb_custom_handle_log
|
FROM vd.ckb_custom_handle_log
|
||||||
LEFT JOIN vd.ckb_custom ON (((ckb_custom.custom_no)::text = (ckb_custom_handle_log.custom_no)::text)))
|
LEFT JOIN vd.ckb_custom ON ckb_custom.custom_no = ckb_custom_handle_log.custom_no
|
||||||
LEFT JOIN vd.virtual_companies ON ((((virtual_companies.sn)::TEXT = concat('No', lpad((ckb_custom_handle_log.company)::TEXT, 11, '0'::TEXT))) AND (virtual_companies.deleted_at IS NULL))))
|
LEFT JOIN vd.virtual_companies ON virtual_companies.sn = concat('No', lpad((ckb_custom_handle_log.company)::text, 11, '0'::text)) AND virtual_companies.deleted_at IS NULL
|
||||||
LEFT JOIN vd.virtual_packages ON ((((virtual_packages.sn)::text = (ckb_custom_handle_log.content)::text) AND (virtual_packages.deleted_at IS NULL))))
|
LEFT JOIN vd.virtual_packages ON virtual_packages.sn =ckb_custom_handle_log.content AND virtual_packages.deleted_at IS NULL
|
||||||
WHERE (ckb_custom_handle_log.type = ANY (ARRAY[11, 13, 14, 15]))
|
WHERE (ckb_custom_handle_log.type = ANY (ARRAY[11, 13, 14, 15]))
|
||||||
GROUP BY
|
GROUP BY
|
||||||
ckb_custom_handle_log.create_time,
|
ckb_custom_handle_log.create_time,
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
<div class="search-wrap" v-show="search.show">
|
<div class="search-wrap" v-show="search.show">
|
||||||
<ul class="handle-wraper">
|
<ul class="handle-wraper">
|
||||||
<li class="handle-item w-250">
|
<li class="handle-item w-200">
|
||||||
<Select clearable placeholder="运营商" v-model="params.carrier_operator">
|
<Select clearable placeholder="运营商" v-model="params.carrier_operator">
|
||||||
<Option :value="0">联通</Option>
|
<Option :value="0">联通</Option>
|
||||||
<Option :value="1">移动</Option>
|
<Option :value="1">移动</Option>
|
||||||
@ -34,26 +34,40 @@
|
|||||||
</Select>
|
</Select>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="handle-item w-250">
|
<li class="handle-item w-200">
|
||||||
<Input clearable placeholder="套餐编号" v-model.trim="params.sn"></Input>
|
<Input clearable placeholder="套餐编号" v-model.trim="params.sn"></Input>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="handle-item w-250">
|
<li class="handle-item w-200">
|
||||||
<AutoComplete @on-search="handleCompletePackages(type)" icon="ios-search" placeholder="套餐名称" v-model.trim="params.name">
|
<AutoComplete
|
||||||
<Option :key="item.id" :value="item.name" v-for="item in completeHandledPackages">{{ item.name }}</Option>
|
@on-search="handleCompletePackages(type)"
|
||||||
|
icon="ios-search"
|
||||||
|
placeholder="套餐名称"
|
||||||
|
v-model.trim="params.name"
|
||||||
|
>
|
||||||
|
<Option
|
||||||
|
:key="item.id"
|
||||||
|
:value="item.name"
|
||||||
|
v-for="item in completeHandledPackages"
|
||||||
|
>{{ item.name }}</Option>
|
||||||
</AutoComplete>
|
</AutoComplete>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="handle-item w-250">
|
<li class="handle-item w-200">
|
||||||
<Select clearable placeholder="套餐状态" v-model="params.status">
|
<Select clearable placeholder="套餐状态" v-model="params.status">
|
||||||
<Option :value="0">已启用</Option>
|
<Option :value="0">已启用</Option>
|
||||||
<Option :value="1">已禁用</Option>
|
<Option :value="1">已禁用</Option>
|
||||||
<Option :value="2">已删除</Option>
|
<Option :value="2">已删除</Option>
|
||||||
</Select>
|
</Select>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
|
||||||
|
|
||||||
<ul class="handle-wraper">
|
<li class="handle-item w-200" v-if="type !== 3">
|
||||||
|
<Select clearable placeholder="套餐类型" v-model="params.flowed">
|
||||||
|
<Option :value="0">正向套餐</Option>
|
||||||
|
<Option :value="1">后向套餐</Option>
|
||||||
|
</Select>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li class="f-r">
|
<li class="f-r">
|
||||||
<div class="handle-item">
|
<div class="handle-item">
|
||||||
<Button @click="index(1)" ghost type="primary">立即搜索</Button>
|
<Button @click="index(1)" ghost type="primary">立即搜索</Button>
|
||||||
@ -71,10 +85,23 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="page-turn-wrap" v-if="list_data">
|
<div class="page-turn-wrap" v-if="list_data">
|
||||||
<Page :current="Number(list_data.current_page)" :page-size="Number(list_data.per_page)" :total="Number(list_data.total)" @on-change="index" show-elevator show-total></Page>
|
<Page
|
||||||
|
:current="Number(list_data.current_page)"
|
||||||
|
:page-size="Number(list_data.per_page)"
|
||||||
|
:total="Number(list_data.total)"
|
||||||
|
@on-change="index"
|
||||||
|
show-elevator
|
||||||
|
show-total
|
||||||
|
></Page>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ui-edit :type="type" :data="editObj.data" :show.sync="editObj.show" @add-success="index" @update-success="index(list_data.current_page)"></ui-edit>
|
<ui-edit
|
||||||
|
:type="type"
|
||||||
|
:data="editObj.data"
|
||||||
|
:show.sync="editObj.show"
|
||||||
|
@add-success="index"
|
||||||
|
@update-success="index(list_data.current_page)"
|
||||||
|
></ui-edit>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -10,7 +10,8 @@ export default {
|
|||||||
name: '',
|
name: '',
|
||||||
carrier_operator: '',
|
carrier_operator: '',
|
||||||
sn: '',
|
sn: '',
|
||||||
status: ''
|
status: '',
|
||||||
|
flowed: ''
|
||||||
},
|
},
|
||||||
type: 0,
|
type: 0,
|
||||||
trashed: null,
|
trashed: null,
|
||||||
@ -181,6 +182,26 @@ export default {
|
|||||||
this.type = Number(this.$route.params.type);
|
this.type = Number(this.$route.params.type);
|
||||||
this.index(1);
|
this.index(1);
|
||||||
},
|
},
|
||||||
|
mounted() {
|
||||||
|
if (this.type !== 3) {
|
||||||
|
this.table_titles.splice(7, 0, {
|
||||||
|
title: '套餐类型',
|
||||||
|
key: '',
|
||||||
|
width: 100,
|
||||||
|
render: (h, { row, column, index }) => {
|
||||||
|
let type = ['primary', 'warning'];
|
||||||
|
let text = ['正向套餐', '后向套餐'];
|
||||||
|
|
||||||
|
return h('Button', {
|
||||||
|
props: {
|
||||||
|
type: type[row.flowed],
|
||||||
|
size: 'small'
|
||||||
|
}
|
||||||
|
}, text[row.flowed]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/**
|
/**
|
||||||
* [index 列表]
|
* [index 列表]
|
||||||
|
2
public/js/app.7394310b.js
Normal file
2
public/js/app.7394310b.js
Normal file
File diff suppressed because one or more lines are too long
1
public/js/app.7394310b.js.map
Normal file
1
public/js/app.7394310b.js.map
Normal file
File diff suppressed because one or more lines are too long
2
public/js/chunk-63ee4df4.c7a4bc29.js
Normal file
2
public/js/chunk-63ee4df4.c7a4bc29.js
Normal file
File diff suppressed because one or more lines are too long
1
public/js/chunk-63ee4df4.c7a4bc29.js.map
Normal file
1
public/js/chunk-63ee4df4.c7a4bc29.js.map
Normal file
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
|||||||
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=\favicon.ico><script src=\config.js></script><title></title><link href=/css/chunk-63ee4df4.78afaf5b.css rel=prefetch><link href=/css/chunk-996b1e80.5cadf3d0.css rel=prefetch><link href=/js/chunk-00ae0766.3874cd10.js rel=prefetch><link href=/js/chunk-07a274ec.c3ad5dec.js rel=prefetch><link href=/js/chunk-63ee4df4.87a99f35.js rel=prefetch><link href=/js/chunk-996b1e80.d3b45e46.js rel=prefetch><link href=/css/app.d71a8195.css rel=preload as=style><link href=/css/chunk-vendors.3c3b2e85.css rel=preload as=style><link href=/js/app.77e8188a.js rel=preload as=script><link href=/js/chunk-vendors.ed6443e8.js rel=preload as=script><link href=/css/chunk-vendors.3c3b2e85.css rel=stylesheet><link href=/css/app.d71a8195.css rel=stylesheet></head><body><noscript><strong>很抱歉,如果没有启用JavaScript,程序不能正常工作,若要继续使用请启用它。</strong></noscript><div id=app></div><script src=/js/chunk-vendors.ed6443e8.js></script><script src=/js/app.77e8188a.js></script></body></html>
|
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=\favicon.ico><script src=\config.js></script><title></title><link href=/css/chunk-63ee4df4.78afaf5b.css rel=prefetch><link href=/css/chunk-996b1e80.5cadf3d0.css rel=prefetch><link href=/js/chunk-00ae0766.3874cd10.js rel=prefetch><link href=/js/chunk-07a274ec.c3ad5dec.js rel=prefetch><link href=/js/chunk-63ee4df4.c7a4bc29.js rel=prefetch><link href=/js/chunk-996b1e80.d3b45e46.js rel=prefetch><link href=/css/app.d71a8195.css rel=preload as=style><link href=/css/chunk-vendors.3c3b2e85.css rel=preload as=style><link href=/js/app.7394310b.js rel=preload as=script><link href=/js/chunk-vendors.ed6443e8.js rel=preload as=script><link href=/css/chunk-vendors.3c3b2e85.css rel=stylesheet><link href=/css/app.d71a8195.css rel=stylesheet></head><body><noscript><strong>很抱歉,如果没有启用JavaScript,程序不能正常工作,若要继续使用请启用它。</strong></noscript><div id=app></div><script src=/js/chunk-vendors.ed6443e8.js></script><script src=/js/app.7394310b.js></script></body></html>
|
Loading…
x
Reference in New Issue
Block a user