1;ai营销订单查询优化

2;表格模版计算,导出修改
3;店铺页营销账分显示
This commit is contained in:
wangshuai 2024-07-26 15:28:47 +08:00
parent 291cab7bdf
commit de74bdbd79
5 changed files with 37 additions and 75 deletions

View File

@ -96,7 +96,7 @@ public class BusStoreDayHistoryInfoController extends BaseController
d = storeInfo.getPrice();
}
excelInfo.setPrice(d.toString());
BigDecimal money = d.multiply(new BigDecimal(visitCount));
BigDecimal money = d.multiply(new BigDecimal(data.getLastPositiveReviewsNum()));
excelInfo.setMoney(money.toString());
totamMoney = totamMoney.add(money);

View File

@ -49,12 +49,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectBusOrderInfoListToAi" resultMap="BusOrderInfoResult">
select a.* from bus_order_info a
SELECT t1.*
FROM bus_order_info AS t1
JOIN (
select a.order_no,min(a.id) AS min_id
from bus_order_info a
LEFT JOIN bus_return_visit_info b on b.phone_number=a.privcy_phone
where b.return_visit_time is null
<if test="storeCode != null and storeCode != ''"> and a.store_code = #{storeCode}</if>
<if test="t1 != null and t1 != ''"> and a.complete_time &gt; #{t1}</if>
<if test="t2 != null and t2 != ''"> and a.complete_time &lt;= #{t2}</if>
GROUP BY a.order_no
) AS t2 ON t1.order_no = t2.order_no AND t1.id = t2.min_id;
</select>
<select id="selectBusZpsOrderInfoListToAi" resultMap="BusOrderInfoResult">

View File

@ -30,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ifnull(a.last_return_visit_num,0) as visitNumber,
ifnull(a.last_positive_reviews_num,0) as commentsNumber,
ifnull(b.price,0) as price,
(ifnull(b.price,0) * ifnull(a.last_return_visit_num,0)) as money
(ifnull(b.price,0) * ifnull(a.last_positive_reviews_num,0)) as money
from bus_store_day_info a INNER JOIN bus_store_info b on b.id = a.store_id
</sql>
<select id="selectBusStoreDayHistoryInfoList" parameterType="com.ruoyi.business.domain.BusStoreExcelInfo" resultType="com.ruoyi.business.domain.BusStoreExcelInfo">

View File

@ -120,9 +120,12 @@
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="2">
<el-form-item label="开启数量" ><span>{{map.openCount}}</span></el-form-item>
</el-col>
<el-col :span="2">
<el-form-item label="当前账分:"><span>{{nowIntegral}}</span></el-form-item>
</el-col>
</el-row>
</el-form>
@ -324,14 +327,6 @@
<el-input-number v-model="form.maxOrderNum" placeholder="请输入营销下单次数" :min="1"/>
</el-form-item>
<el-form-item label="营销时段" prop="start_time">
<!-- <el-date-picker
v-model="value2"
type="datetimerange"
range-separator="至"
:picker-options="pickerOptions"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker> -->
<el-time-picker
is-range
v-model="timeRange"
@ -401,7 +396,7 @@
</template>
<script>
import { listStore, changeReturnVisitStatus, getMtUrl, changeSelfDeliveryStatus, getStoreConfig, updateStoreConfig, getStoreStatistics } from "@/api/business/store";
import { listStore, changeReturnVisitStatus, getMtUrl, changeSelfDeliveryStatus, getStoreConfig, updateStoreConfig, nowIntegral, getStoreStatistics } from "@/api/business/store";
import { listSaleA} from "@/api/business/sale";
export default {
@ -412,6 +407,7 @@ export default {
meituanUrl: "https://e.waimai.meituan.com?ABC="+this.$store.state.user.name+":1",
//
loading: true,
nowIntegral: 0,
//
ids: [],
//
@ -463,19 +459,6 @@ export default {
},
//
rules: {
// storeCode: undefined,
// content1: undefined,
// content2: undefined,
// content3: undefined,
// content4: undefined,
// minOrderNum: 1,
// maxOrderNum: 1,
// timeRange: '',
// isSpliceOrder: 2,
// selfDeliveryDuration: 1,
// saleBindId: undefined,
// quota: 1,
// remark: undefined
minOrderNum: [
{ required: true, message: "下单次数min不能为空", trigger: "blur" }
],
@ -499,6 +482,7 @@ export default {
this.getListSale();
this.getList();
this.storeStatistics();
this.getNowIntegral();
},
methods: {
renderPrice(h, { column, $index }) {
@ -516,6 +500,12 @@ export default {
column.label
]
},
getNowIntegral() {
nowIntegral().then(response => {
this.nowIntegral = response.data;
}
);
},
changeQuotaStatus(){
if(this.form.quotaStatus == '2'){
this.isDisabledQuotaStatus = true

View File

@ -97,8 +97,6 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="创建时间">
<el-date-picker
@ -110,21 +108,17 @@
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<!-- </el-col>-->
<!-- <el-col>-->
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="2">
<el-form-item label="开启数量" ><span>{{map.openCount}}</span></el-form-item>
</el-col>
<el-col :span="2">
<el-form-item label="当前账分:"><span>{{nowIntegral}}</span></el-form-item>
</el-col>
</el-row>
</el-form>
@ -191,17 +185,6 @@
</template>
</el-table-column>
<el-table-column label="营销用户下单" prop="returnVisitUserRange" align="center" width="110" />
<!-- <el-table-column label="是否开启" prop="returnVisitStatus" align="center" width="85" >-->
<!-- <template slot-scope="scope">-->
<!-- <el-switch-->
<!-- v-model="scope.row.returnVisitStatus"-->
<!-- active-value="1"-->
<!-- inactive-value="2"-->
<!-- @change="handleStatusChange(scope.row)"-->
<!-- ></el-switch>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width =120>
<template slot-scope="scope">
<el-button
@ -297,14 +280,6 @@
<el-input-number v-model="form.maxOrderNum" placeholder="请输入营销下单次数" :min="1"/>
</el-form-item>
<el-form-item label="营销时段" prop="start_time">
<!-- <el-date-picker
v-model="value2"
type="datetimerange"
range-separator="至"
:picker-options="pickerOptions"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker> -->
<el-time-picker
is-range
v-model="timeRange"
@ -331,7 +306,6 @@
</el-radio-group>
</el-form-item>
<el-form-item label="店铺归属" prop="saleBindId">
<!-- <el-input v-model="form.roleSort" controls-position="right"/> -->
<el-select
v-model="form.saleBindId"
placeholder="店铺归属"
@ -392,14 +366,11 @@
</div>
</el-dialog>
</div>
<!-- <el-upload src="{{ imageUrl }}"></el-upload> -->
<!-- <img src="imageUrl" title="点击上传头像" class="img-circle img-lg"></img> -->
<!-- <el-image src="{{imageUrl}}" /> -->
</template>
<script>
import { listStore, changeReturnVisitStatus, getMtUrl, changeSelfDeliveryStatus, getStoreConfig, updateStoreConfig, getStoreStatistics,generateWord,setUpPrize } from "@/api/business/store";
import { listStore, changeReturnVisitStatus, getMtUrl, changeSelfDeliveryStatus, getStoreConfig, updateStoreConfig, getStoreStatistics, generateWord, nowIntegral, setUpPrize } from "@/api/business/store";
import { listSaleA} from "@/api/business/sale";
export default {
@ -413,6 +384,7 @@ export default {
//
ids: [],
dateRange: [],
nowIntegral: 0,
//
single: true,
//
@ -468,19 +440,6 @@ export default {
},
//
rules: {
// storeCode: undefined,
// content1: undefined,
// content2: undefined,
// content3: undefined,
// content4: undefined,
// minOrderNum: 1,
// maxOrderNum: 1,
// timeRange: '',
// isSpliceOrder: 2,
// selfDeliveryDuration: 1,
// saleBindId: undefined,
// quota: 1,
// remark: undefined
minOrderNum: [
{ required: true, message: "下单次数min不能为空", trigger: "blur" }
],
@ -503,6 +462,7 @@ export default {
this.getListSale();
this.getList();
this.storeStatistics();
this.getNowIntegral();
},
methods: {
renderPrice(h, { column, $index }) {
@ -530,6 +490,12 @@ export default {
}
);
},
getNowIntegral() {
nowIntegral().then(response => {
this.nowIntegral = response.data;
}
);
},
storeStatistics() {
getStoreStatistics().then(response => {
this.map.storeCount = response.data.storeCount;