1;营销渠道AI/短信(普通,安全)-30%,差短信集成
2;申请应用,集成饿了么(引入sdk)-10% 3;流水明细过滤条件-完成 4;黑名单,订单查询调整-完成
This commit is contained in:
parent
563aad498b
commit
60b171f166
|
@ -123,7 +123,7 @@ public class BusBanOperateController extends BaseController
|
|||
/**
|
||||
* 删除免运营订单信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:info:remove')")
|
||||
// @PreAuthorize("@ss.hasPermi('system:info:remove')")
|
||||
@Log(title = "免运营订单信息", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids)
|
||||
|
|
|
@ -50,14 +50,15 @@ public class BusIntegralRecordController extends BaseController
|
|||
public TableDataInfo list(BusIntegralRecord busIntegralRecord)
|
||||
{
|
||||
if(!"admin".equals(SecurityUtils.getLoginUser().getUsername())){
|
||||
BusAgentInfo agentInfo = new BusAgentInfo();
|
||||
agentInfo.setSuperiorAgentAccount(SecurityUtils.getLoginUser().getUsername());
|
||||
List<BusAgentInfo> busAgentInfoList = agentInfoService.selectBusAgentInfoList(agentInfo);
|
||||
List<String> list = busAgentInfoList.stream()
|
||||
.map(BusAgentInfo::getAgentAccount) // 抽取用户名属性
|
||||
.collect(Collectors.toList());
|
||||
list.add(SecurityUtils.getLoginUser().getUsername());
|
||||
busIntegralRecord.setAgentAccount(list);
|
||||
// BusAgentInfo agentInfo = new BusAgentInfo();
|
||||
// agentInfo.setSuperiorAgentAccount(SecurityUtils.getLoginUser().getUsername());
|
||||
// List<BusAgentInfo> busAgentInfoList = agentInfoService.selectBusAgentInfoList(agentInfo);
|
||||
// List<String> list = busAgentInfoList.stream()
|
||||
// .map(BusAgentInfo::getAgentAccount) // 抽取用户名属性
|
||||
// .collect(Collectors.toList());
|
||||
// list.add(SecurityUtils.getLoginUser().getUsername());
|
||||
// busIntegralRecord.setAgentAccount(list);
|
||||
busIntegralRecord.setAccount(SecurityUtils.getLoginUser().getUsername());
|
||||
}
|
||||
startPage();
|
||||
List<BusIntegralRecord> list = busIntegralRecordService.selectBusIntegralRecordListA(busIntegralRecord);
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
@ -42,7 +45,11 @@ public class BusOrderInfoController extends BaseController
|
|||
public TableDataInfo list(BusOrderInfo busOrderInfo)
|
||||
{
|
||||
startPage();
|
||||
List<BusOrderInfo> list = busOrderInfoService.selectBusOrderInfoList(busOrderInfo);
|
||||
List<BusOrderInfo> list = new ArrayList<>();
|
||||
if(StringUtils.isEmpty(busOrderInfo.getStoreCode())&&StringUtils.isEmpty(busOrderInfo.getOrderNo())){
|
||||
return getDataTable(list);
|
||||
}
|
||||
list = busOrderInfoService.selectBusOrderInfoListA(busOrderInfo);
|
||||
// list.forEach(System.out::println);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
|
|
@ -44,4 +44,7 @@ public class ReqBusStoreInfo extends BaseEntity {
|
|||
/** 店铺状态 */
|
||||
@ApiModelProperty(name = "店铺状态:1正常,2自配送,3删除")
|
||||
private String selfDeliveryStatus;
|
||||
/** 回访渠道 */
|
||||
@ApiModelProperty(name = "回访渠道")
|
||||
private String marketingChannels;
|
||||
}
|
||||
|
|
|
@ -150,3 +150,8 @@ clientIP:
|
|||
accountsecretKey: 2xib03rq8uqh15x230ea9emjasiu3exv
|
||||
secretId: ohrruf71orkzv9l9enhi
|
||||
secretKey: bp4iyx52tc9oe46hj0lriyux2m6hpzvu
|
||||
|
||||
eleme:
|
||||
isSandbox: false
|
||||
appKey: key
|
||||
appSecret: secret
|
||||
|
|
|
@ -124,6 +124,14 @@
|
|||
<artifactId>tencentcloud-sdk-java</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>me.ele.openapi</groupId>
|
||||
<artifactId>eleme-openapi-sdk</artifactId>
|
||||
<version>1.30.58</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/../lib/eleme-openapi-sdk-1.30.58.jar</systemPath>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
|
@ -152,5 +160,15 @@
|
|||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<configuration>
|
||||
<includeSystemScope>true</includeSystemScope>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
|
@ -0,0 +1,18 @@
|
|||
package com.ruoyi.common.config;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Data
|
||||
@Configuration
|
||||
public class ElemeProperties {
|
||||
|
||||
@Value("${eleme.isSandbox}")
|
||||
private String isSandbox;
|
||||
@Value("${eleme.appKey}")
|
||||
private String appKey;
|
||||
@Value("${eleme.appSecret}")
|
||||
private String appSecret;
|
||||
|
||||
}
|
|
@ -118,6 +118,16 @@ public class BusStoreInfo extends BaseEntity
|
|||
|
||||
private BigDecimal price;
|
||||
|
||||
private String marketingChannels;
|
||||
|
||||
public String getMarketingChannels() {
|
||||
return marketingChannels;
|
||||
}
|
||||
|
||||
public void setMarketingChannels(String marketingChannels) {
|
||||
this.marketingChannels = marketingChannels;
|
||||
}
|
||||
|
||||
public BigDecimal getPrice() {
|
||||
return price;
|
||||
}
|
||||
|
|
|
@ -65,4 +65,5 @@ public interface BusOrderInfoMapper
|
|||
List<BusOrderInfo> selectBusOrderInfoListToAi(@Param("storeCode") String storeCode, @Param("t1") String t1,@Param("t2") String t2);
|
||||
List<BusOrderInfo> selectBusZpsOrderInfoListToAi(@Param("storeCode") String storeCode, @Param("t2") String t2);
|
||||
|
||||
List<BusOrderInfo> selectBusOrderInfoListA(BusOrderInfo busOrderInfo);
|
||||
}
|
||||
|
|
|
@ -62,4 +62,6 @@ public interface IBusOrderInfoService
|
|||
List<BusOrderInfo> selectBusOrderInfoListToAi(String storeCode, String t1, String t2);
|
||||
|
||||
List<BusOrderInfo> selectBusZpsOrderInfoListToAi(String storeCode, String t2);
|
||||
|
||||
List<BusOrderInfo> selectBusOrderInfoListA(BusOrderInfo busOrderInfo);
|
||||
}
|
||||
|
|
|
@ -360,7 +360,11 @@ public class AiServiceImpl implements IAiService {
|
|||
List<BusFifteenInfo> listInfo = fifteenInfoService.selectBusFifteenInfoList(fifteenInfo);
|
||||
if (listInfo.size() == 0) {
|
||||
System.out.println("话术:" + content + "; order" + busOrderInfo.toString());
|
||||
if("AI".equals(busStoreInfo.getMarketingChannels())){
|
||||
sendAiTask(content,busOrderInfo);
|
||||
}else{
|
||||
sendSmsTask();
|
||||
}
|
||||
}else {
|
||||
BusAgentInfo busAgentInfo = agentInfoL.get(0);
|
||||
int a = 1;
|
||||
|
@ -388,6 +392,9 @@ public class AiServiceImpl implements IAiService {
|
|||
}
|
||||
}
|
||||
|
||||
private void sendSmsTask() {
|
||||
}
|
||||
|
||||
private void addAiTaskTest(String apiKey, String content, BusOrderInfo busOrderInfo) {
|
||||
// String apiKey = Optional.ofNullable(redisTemplate.opsForValue().get("apiKey")).orElse(null);
|
||||
String phoneNo = busOrderInfo.getPrivcyPhone().split(",")[0];
|
||||
|
|
|
@ -101,4 +101,9 @@ public class BusOrderInfoServiceImpl implements IBusOrderInfoService
|
|||
return busOrderInfoMapper.selectBusZpsOrderInfoListToAi(storeCode, t2);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BusOrderInfo> selectBusOrderInfoListA(BusOrderInfo busOrderInfo) {
|
||||
return busOrderInfoMapper.selectBusOrderInfoListA(busOrderInfo);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -63,7 +63,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
<select id="selectBusIntegralRecordListA" parameterType="BusIntegralRecord" resultMap="BusIntegralRecordResult">
|
||||
<include refid="selectBusIntegralRecordVo"/>
|
||||
<where>
|
||||
<where> update_type != '消耗账分'
|
||||
<if test="account != null and account != ''"> and account = #{account}</if>
|
||||
<if test="platform != null and platform != ''"> and platform = #{platform}</if>
|
||||
<if test="updateType != null and updateType != ''"> and update_type = #{updateType}</if>
|
||||
|
@ -76,7 +76,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY DATE_FORMAT(Integral_update_time,'%Y-%m-%d') desc
|
||||
ORDER BY Integral_update_time desc
|
||||
</select>
|
||||
<select id="selectBusIntegralRecordById" parameterType="Long" resultMap="BusIntegralRecordResult">
|
||||
<include refid="selectBusIntegralRecordVo"/>
|
||||
|
|
|
@ -64,6 +64,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="storeCode != null and storeCode != ''"> and a.store_code = #{storeCode}</if>
|
||||
<if test="t2 != null and t2 != ''"> and a.order_time <= #{t2}</if>
|
||||
</select>
|
||||
<select id="selectBusOrderInfoListA" resultMap="BusOrderInfoResult">
|
||||
select store_code, store_name, custom_id, order_no, min(id)
|
||||
from bus_order_info
|
||||
<where>
|
||||
<if test="platformType != null and platformType != ''"> and platform_type = #{platformType}</if>
|
||||
<if test="storeCode != null and storeCode != ''"> and store_code = #{storeCode}</if>
|
||||
<if test="customId != null and customId != ''"> and custom_id = #{customId}</if>
|
||||
<if test="orderNo != null and orderNo != ''"> and order_no = #{orderNo}</if>
|
||||
</where>
|
||||
group by store_code, store_name, custom_id, order_no
|
||||
|
||||
</select>
|
||||
|
||||
<insert id="batchInsertOrder">
|
||||
insert into bus_order_info (id,store_code,store_name,custom_id,order_no,order_status,complete_time,dayseq,order_count,order_time,is_phf) values
|
||||
|
|
|
@ -59,6 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="updateId != null "> and update_id = #{updateId}</if>
|
||||
<if test="updateUser != null "> and update_user = #{updateUser}</if>
|
||||
<if test="selfDeliveryStatus != null and selfDeliveryStatus != ''"> and self_delivery_status = #{selfDeliveryStatus}</if>
|
||||
<if test="marketingChannels != null and marketingChannels != ''"> and marketing_channels = #{marketingChannels}</if>
|
||||
<if test="returnVisitUserRange != null and returnVisitUserRange != ''"> and return_visit_user_range = #{returnVisitUserRange}</if>
|
||||
<if test="saleBindId != null "> and sale_bind_id = #{saleBindId}</if>
|
||||
<if test="saleBindName != null and saleBindName != ''"> and sale_bind_name like concat('%', #{saleBindName}, '%')</if>
|
||||
|
|
|
@ -98,7 +98,21 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item></el-form-item>
|
||||
<el-form-item label="回访渠道" prop="marketingChannels">
|
||||
<el-select
|
||||
v-model="queryParams.marketingChannels"
|
||||
placeholder="回访渠道"
|
||||
clearable
|
||||
style="width: 240px"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in dict.type.bus_marketing_channels"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item>
|
||||
|
@ -367,7 +381,7 @@ import { listSaleA} from "@/api/business/sale";
|
|||
|
||||
export default {
|
||||
name: "Role",
|
||||
dicts: ['sys_yes_no','sys_grant_status','sys_platform_type','sys_return_visit_status','bus_script_type'],
|
||||
dicts: ['sys_yes_no','sys_grant_status','sys_platform_type','sys_return_visit_status','bus_script_type','bus_marketing_channels'],
|
||||
data() {
|
||||
return {
|
||||
meituanUrl: "https://e.waimai.meituan.com?ABC="+this.$store.state.user.name+":1",
|
||||
|
@ -411,7 +425,8 @@ export default {
|
|||
saleBindId: undefined,
|
||||
grantStatus: undefined,
|
||||
returnVisitStatus: undefined,
|
||||
selfDeliveryStatus: 2
|
||||
selfDeliveryStatus: 2,
|
||||
marketingChannels: 'AI'
|
||||
},
|
||||
saleList: [],
|
||||
timeRange: undefined,
|
||||
|
|
|
@ -98,7 +98,21 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item></el-form-item>
|
||||
<el-form-item label="回访渠道" prop="marketingChannels">
|
||||
<el-select
|
||||
v-model="queryParams.marketingChannels"
|
||||
placeholder="回访渠道"
|
||||
clearable
|
||||
style="width: 240px"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in dict.type.bus_marketing_channels"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item>
|
||||
|
@ -434,7 +448,7 @@ import { listSaleA} from "@/api/business/sale";
|
|||
|
||||
export default {
|
||||
name: "Role",
|
||||
dicts: ['sys_yes_no','sys_grant_status','sys_platform_type','sys_return_visit_status','bus_script_type'],
|
||||
dicts: ['sys_yes_no','sys_grant_status','sys_platform_type','sys_return_visit_status','bus_script_type','bus_marketing_channels'],
|
||||
data() {
|
||||
return {
|
||||
meituanUrl: "https://e.waimai.meituan.com?ABC="+this.$store.state.user.name+":1",
|
||||
|
@ -481,7 +495,8 @@ export default {
|
|||
saleBindId: undefined,
|
||||
grantStatus: undefined,
|
||||
returnVisitStatus: undefined,
|
||||
selfDeliveryStatus: 1
|
||||
selfDeliveryStatus: 1,
|
||||
marketingChannels: 'AI'
|
||||
},
|
||||
queryParams1: {
|
||||
content: undefined
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="分配账户" prop="account">
|
||||
<!-- <el-form-item label="分配账户" prop="account">
|
||||
<el-input
|
||||
v-model="queryParams.account"
|
||||
placeholder="分配账户"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="变更时间" prop="integralUpdateTime">
|
||||
<el-date-picker clearable
|
||||
v-model="queryParams.integralUpdateTime"
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="标识" prop="storeCode">
|
||||
<el-form-item label="店铺标识" prop="storeCode">
|
||||
<el-input
|
||||
v-model="queryParams.storeCode"
|
||||
placeholder="请输入标识"
|
||||
placeholder="请输入店铺标识"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
|
@ -39,7 +39,7 @@
|
|||
<el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="ID" align="center" prop="id" />
|
||||
<el-table-column label="标识" align="center" prop="storeCode" />
|
||||
<el-table-column label="店铺标识" align="center" prop="storeCode" />
|
||||
<el-table-column label="店铺名称" align="center" prop="storeName" />
|
||||
<el-table-column label="禁止运营标识" align="center" prop="banOperateCode" />
|
||||
<el-table-column label="关联订单" align="center" prop="bindOrderCode" />
|
||||
|
@ -72,7 +72,7 @@
|
|||
/>
|
||||
|
||||
<!-- 添加或修改免运营订单信息对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
|
||||
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
|
||||
<el-form ref="form" :model="formParams" :rules="rules" label-width="80px">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
|
@ -80,14 +80,15 @@
|
|||
<el-input v-model="formParams.orderNo" placeholder="请输入标识" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="营销源标识:" prop="storeName" label-width="100px">
|
||||
<el-input v-model="formParams.storeCode" placeholder="请输入店铺标识" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-col :span="8">
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQueryFrom">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery1">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
@ -95,7 +96,7 @@
|
|||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="源标识" align="center" prop="storeCode" />
|
||||
<el-table-column label="源名称" align="center" prop="storeName" />
|
||||
<el-table-column label="禁止营销标识(用户标识)" align="center" prop="customId" />
|
||||
<el-table-column label="用户标识" align="center" prop="customId" />
|
||||
<el-table-column label="关联订单" align="center" prop="orderNo" />
|
||||
</el-table>
|
||||
<pagination
|
||||
|
@ -225,6 +226,15 @@ export default {
|
|||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
resetQuery1() {
|
||||
this.formParams = {
|
||||
pageNum: 1,
|
||||
pageSize: 5,
|
||||
storeCode: null,
|
||||
orderNo: null
|
||||
}
|
||||
this.resetForm("form");
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
|
|
Loading…
Reference in New Issue