1;短信、ai账分切分-ok

2;页面默认时间
This commit is contained in:
wangshuai 2024-08-09 01:07:12 +08:00
parent 9f5dfe053b
commit 7d20fb4f77
11 changed files with 199 additions and 42 deletions

View File

@ -20,6 +20,7 @@ import java.sql.Wrapper;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* 积分变更记录Controller
@ -62,7 +63,22 @@ public class BusIntegralConsumeController extends BaseController
}
startPage();
busIntegralRecord.setIntegralType("sms");
List<BusIntegralRecord> list1 = busIntegralRecordService.selectBusIntegralRecordList1(busIntegralRecord);
clearPage();
startPage();
busIntegralRecord.setIntegralType("AI");
List<BusIntegralRecord> list2 = busIntegralRecordService.selectBusIntegralRecordList1(busIntegralRecord);
clearPage();
list1 = list1.stream().map(bean -> {
for(BusIntegralRecord busIntegralRecord1:list2){
if(busIntegralRecord1.getAccount().equals(bean.getAccount())){
bean.setAiIntegralUpdateNum(busIntegralRecord1.getIntegralUpdateNum());
break;
}
}
return bean;
}).collect(Collectors.toList());
return getDataTable(list1);
}

View File

@ -119,6 +119,7 @@ public class BusAgentInfo extends BaseEntity
@Excel(name = "手机号码")
private String phoneNumber;
private int aiRealTimeNum;
private int aiRealTimeNum1;
private Long deptId;
public Long getDeptId() {
@ -137,6 +138,14 @@ public class BusAgentInfo extends BaseEntity
this.aiRealTimeNum = aiRealTimeNum;
}
public int getAiRealTimeNum1() {
return aiRealTimeNum1;
}
public void setAiRealTimeNum1(int aiRealTimeNum1) {
this.aiRealTimeNum1 = aiRealTimeNum1;
}
public String getPassword() {
return password;
}

View File

@ -42,6 +42,14 @@ public class BusIntegralRecord extends BaseEntity
@JSONField(ordinal = 4)
private int integralUpdateNum;
@Excel(name = "积分变更数值")
@JSONField(ordinal = 5)
private int aiIntegralUpdateNum;
@Excel(name = "账分类型")
@JSONField(ordinal = 6)
private String integralType;
/** 变更时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "变更时间", width = 30, dateFormat = "yyyy-MM-dd")
@ -51,6 +59,7 @@ public class BusIntegralRecord extends BaseEntity
/** 积分余额 */
// @Excel(name = "积分余额")
private int integralBalance;
private int aiIntegralBalance;
private List<String> agentAccount;
@ -62,6 +71,14 @@ public class BusIntegralRecord extends BaseEntity
this.agentAccount = agentAccount;
}
public int getAiIntegralUpdateNum() {
return aiIntegralUpdateNum;
}
public void setAiIntegralUpdateNum(int aiIntegralUpdateNum) {
this.aiIntegralUpdateNum = aiIntegralUpdateNum;
}
/** 代理备注 */
// @Excel(name = "代理备注")
private String agentRemark;
@ -159,6 +176,22 @@ public class BusIntegralRecord extends BaseEntity
this.remark = remark;
}
public String getIntegralType() {
return integralType;
}
public void setIntegralType(String integralType) {
this.integralType = integralType;
}
public int getAiIntegralBalance() {
return aiIntegralBalance;
}
public void setAiIntegralBalance(int aiIntegralBalance) {
this.aiIntegralBalance = aiIntegralBalance;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

View File

@ -162,21 +162,33 @@ public class AiConsumer {
if (listInfo.size() != 0) {
System.out.println("15天拦截=====================");
BusAgentInfo busAgentInfo = agentInfo;
BusIntegralRecord record = new BusIntegralRecord();
int a = 1;
if("AI".equals(busStoreInfo.getMarketingChannels())){
int reduce = busAgentInfo.getAiRealTimeNum() - a;
busAgentInfo.setAiDurationBalance(reduce);
record.setIntegralType("AI");
record.setAiIntegralBalance(reduce);
returnVisitInfo.setIsCharging("AI-0");
}else if("sms".equals(busStoreInfo.getMarketingChannels())){
int reduce = busAgentInfo.getAiDurationBalance() - a;
busAgentInfo.setAiDurationBalance(reduce);
record.setIntegralType("sms");
record.setIntegralBalance(reduce);
returnVisitInfo.setIsCharging("sms-0");
}
// int reduce = busAgentInfo.getAiDurationBalance() - a;
// busAgentInfo.setAiDurationBalance(reduce);
agentInfoService.updateBusAgentInfo(busAgentInfo);
BusIntegralRecord record = new BusIntegralRecord();
record.setAccount(busAgentInfo.getAgentAccount());
record.setIntegralUpdateTime(new Date());
record.setUpdateType("消耗账分");
record.setIntegralUpdateNum(a);
record.setIntegralBalance(reduce);
// record.setIntegralBalance(reduce);
record.setRemark(busOrderInfo.getPrivcyPhone());
record.setAgentRemark("其他");
integralRecordService.insertBusIntegralRecord(record);
returnVisitInfo.setIsCharging("其他");
}else {
if("AI".equals(busStoreInfo.getMarketingChannels())){
aiService.sendAiTask(content,busOrderInfo);
@ -199,6 +211,7 @@ public class AiConsumer {
record.setUpdateType("消耗账分");
record.setIntegralUpdateNum(a);
record.setIntegralBalance(reduce);
record.setIntegralType("sms");
record.setRemark(busOrderInfo.getPrivcyPhone());
record.setAgentRemark("sms");
integralRecordService.insertBusIntegralRecord(record);

View File

@ -263,14 +263,26 @@ public class AiServiceImpl implements IAiService {
continue;
}
// int cha = agentInfoL.get(0).getAiDurationBalance() - agentInfoL.get(0).getAiRealTimeNum();
int cha = agentInfo.getAiDurationBalance();
if("sms".equals(busStoreInfo.getMarketingChannels())){
int cha = agentInfo.getAiDurationBalance();//短信-安全账分
if (cha < list.size()&&(cha - 1)>0) {
list.subList(0, cha - 1);
log.error("积分不足截取部分订单营销");
agentInfo.setAiRealTimeNum(agentInfo.getAiDurationBalance());
log.error("安全账分不足截取部分订单营销");
} else if(cha < 0){
continue;
}
}else if("AI".equals(busStoreInfo.getMarketingChannels())){
int cha = agentInfo.getAiRealTimeNum();//ai电话-普通账分
if (cha < list.size()&&(cha - 1)>0) {
list.subList(0, cha - 1);
log.error("普通账分不足截取部分订单营销");
} else if(cha < 0){
continue;
}
}else{
log.error(busStoreInfo.getStoreCode()+"营销异常");
continue;
}
for (BusOrderInfo busOrderInfo : newList) {
MqDataInfo mqDataInfo = new MqDataInfo();
mqDataInfo.setAgentInfo(agentInfo);
@ -404,9 +416,9 @@ public class AiServiceImpl implements IAiService {
if (agentInfoL.size() > 0) {
BusAgentInfo busAgentInfo = agentInfoL.get(0);
int a = (Integer.valueOf(aiInfo.getTalktimes()) / 60) + 1;
int reduce = busAgentInfo.getAiDurationBalance() - a;
busAgentInfo.setAiDurationBalance(reduce);
busAgentInfo.setAiRealTimeNum(0);
int reduce = busAgentInfo.getAiRealTimeNum() - a;
busAgentInfo.setAiRealTimeNum(reduce);
// busAgentInfo.setAiRealTimeNum(0);
agentInfoService.updateBusAgentInfo(busAgentInfo);
BusIntegralRecord record = new BusIntegralRecord();
@ -414,9 +426,10 @@ public class AiServiceImpl implements IAiService {
record.setIntegralUpdateTime(new Date());
record.setUpdateType("消耗账分");
record.setIntegralUpdateNum(a);
record.setIntegralBalance(reduce);
record.setAiIntegralBalance(reduce);
record.setRemark(orderInfo.getPrivcyPhone());
record.setAgentRemark("AI");
record.setIntegralType("AI");
integralRecordService.insertBusIntegralRecord(record);
}
}

View File

@ -161,13 +161,30 @@ public class BusAgentInfoServiceImpl implements IBusAgentInfoService
BusIntegralRecord record = new BusIntegralRecord();
record.setAccount(busAgentInfo.getAgentAccount());
record.setUpdateType("入账");
record.setIntegralUpdateNum(busAgentInfo.getAiDurationBalance1());
int newValue = 0;
BusAgentInfo temp = busAgentInfoMapper.selectBusAgentInfoById(busAgentInfo.getId());
if(busAgentInfo.getAiDurationBalance1()!=0){
record.setIntegralUpdateNum(busAgentInfo.getAiDurationBalance1());
int oldValue = temp.getAiDurationBalance();
int newValue = busAgentInfo.getAiDurationBalance1();
newValue = busAgentInfo.getAiDurationBalance1();
busAgentInfo.setAiDurationBalance((oldValue+newValue));
record.setIntegralBalance((oldValue+newValue));
record.setIntegralType("sms");
record.setAiIntegralBalance(temp.getAiRealTimeNum());
}else if(busAgentInfo.getAiRealTimeNum1()!=0){
record.setIntegralUpdateNum(busAgentInfo.getAiRealTimeNum1());
int oldValue = temp.getAiRealTimeNum();
newValue = busAgentInfo.getAiRealTimeNum1();
busAgentInfo.setAiRealTimeNum((oldValue+newValue));
record.setAiIntegralBalance((oldValue+newValue));
record.setIntegralType("AI");
record.setIntegralBalance(temp.getAiDurationBalance());
}
// int oldValue = temp.getAiDurationBalance();
// int newValue = busAgentInfo.getAiDurationBalance1();
// busAgentInfo.setAiDurationBalance((oldValue+newValue));
// record.setIntegralBalance((oldValue+newValue));
record.setIntegralUpdateTime(new Date());
record.setCreateUser(busAgentInfo.getSuperiorAgentAccount());
@ -178,18 +195,35 @@ public class BusAgentInfoServiceImpl implements IBusAgentInfoService
record1.setAccount(busAgentInfo.getSuperiorAgentAccount());
record1.setUpdateType("出账");
record1.setCreateUser(busAgentInfo.getAgentAccount());
// record1.setIntegralUpdateNum(busAgentInfo.getAiDurationBalance1());
if(busAgentInfo.getAiDurationBalance1()!=0){
record1.setIntegralUpdateNum(busAgentInfo.getAiDurationBalance1());
record1.setIntegralType("sms");
}else if(busAgentInfo.getAiRealTimeNum1()!=0){
record1.setIntegralUpdateNum(busAgentInfo.getAiRealTimeNum1());
record1.setIntegralType("AI");
}
BusAgentInfo temp1 = busAgentInfoMapper.selectBusAgentInfoById(busAgentInfo.getSuperiorAgentCode());
if(busAgentInfo.getSuperiorAgentCode() == 1){
record1.setIntegralUpdateTime(new Date());
recordService.insertBusIntegralRecord(record1);
return 1;
}
if(busAgentInfo.getAiDurationBalance1()!=0){
int oldValue1 = temp1.getAiDurationBalance();
record1.setIntegralBalance(oldValue1 - newValue);
record1.setAiIntegralBalance(temp1.getAiRealTimeNum());
temp1.setAiDurationBalance(oldValue1 - newValue);
}else if(busAgentInfo.getAiRealTimeNum1()!=0){
int oldValue1 = temp1.getAiRealTimeNum();
record1.setAiIntegralBalance(oldValue1 - newValue);
record1.setIntegralBalance(temp1.getAiDurationBalance());
temp1.setAiRealTimeNum(oldValue1 - newValue);
}
// int oldValue1 = temp1.getAiDurationBalance();
// record1.setIntegralBalance(oldValue1 - newValue);
record1.setIntegralUpdateTime(new Date());
recordService.insertBusIntegralRecord(record1);
temp1.setAiDurationBalance(oldValue1 - newValue);
busAgentInfoMapper.updateBusAgentInfo(temp1);
return 1;

View File

@ -25,7 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectBusAgentInfoVo">
select id, agent_account, agent_name, integral,create_time ,superior_agent_code, superior_agent_account, grant_store_num, operate_store_num, last_use_integral_num, last_positive_reviews_num, ai_duration_balance, last_login_time, last_login_ip, login_num, del_status from bus_agent_info
select id, agent_account, agent_name, integral,create_time ,superior_agent_code, superior_agent_account, grant_store_num, operate_store_num, last_use_integral_num, last_positive_reviews_num, ai_duration_balance, last_login_time, last_login_ip, login_num, del_status,ai_real_time_num from bus_agent_info
</sql>
<select id="selectBusAgentInfoList" parameterType="BusAgentInfo" resultMap="BusAgentInfoResult">
@ -117,6 +117,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="lastUseIntegralNum != null">last_use_integral_num = #{lastUseIntegralNum},</if>
<if test="lastPositiveReviewsNum != null">last_positive_reviews_num = #{lastPositiveReviewsNum},</if>
<if test="aiDurationBalance != null">ai_duration_balance = #{aiDurationBalance},</if>
<if test="aiRealTimeNum != null">ai_real_time_num = #{aiRealTimeNum},</if>
<if test="lastLoginTime != null">last_login_time = #{lastLoginTime},</if>
<if test="lastLoginIp != null">last_login_ip = #{lastLoginIp},</if>
<if test="loginNum != null">login_num = #{loginNum},</if>

View File

@ -12,13 +12,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="integralUpdateNum" column="Integral_update_num" />
<result property="integralUpdateTime" column="Integral_update_time" />
<result property="integralBalance" column="Integral_balance" />
<result property="aiIntegralBalance" column="ai_integral_balance" />
<result property="integralType" column="integral_type" />
<result property="agentRemark" column="agent_remark" />
<result property="remark" column="remark" />
<result property="createUser" column="create_user" />
</resultMap>
<sql id="selectBusIntegralRecordVo">
select id, account, platform, update_type, Integral_update_num, Integral_update_time, Integral_balance, agent_remark, remark,create_user from bus_integral_record
select id, account, platform, update_type, Integral_update_num, Integral_update_time, Integral_balance,ai_integral_balance,integral_type, agent_remark, remark,create_user from bus_integral_record
</sql>
<sql id="selectBusIntegralRecordVo1">
@ -48,6 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where>
<if test="platform != null and platform != ''"> and platform = #{platform}</if>
<if test="updateType != null and updateType != ''"> and update_type = #{updateType}</if>
<if test="integralType != null and integralType != ''"> and integral_type = #{integralType}</if>
<if test="integralUpdateTime != null "> and DATE_FORMAT(Integral_update_time,'%Y-%m-%d') = DATE_FORMAT(#{integralUpdateTime},'%Y-%m-%d')</if>
<if test="agentRemark != null and agentRemark != ''"> and agent_remark = #{agentRemark}</if>
<if test="agentAccount != null">
@ -94,6 +97,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="integralUpdateNum != null">Integral_update_num,</if>
<if test="integralUpdateTime != null">Integral_update_time,</if>
<if test="integralBalance != null">Integral_balance,</if>
<if test="aiIntegralBalance != null">ai_integral_balance,</if>
<if test="integralType != null">integral_type,</if>
<if test="agentRemark != null">agent_remark,</if>
<if test="remark != null">remark,</if>
<if test="createUser != null">create_user,</if>
@ -105,6 +110,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="integralUpdateNum != null">#{integralUpdateNum},</if>
<if test="integralUpdateTime != null">#{integralUpdateTime},</if>
<if test="integralBalance != null">#{integralBalance},</if>
<if test="aiIntegralBalance != null">#{aiIntegralBalance},</if>
<if test="integralType != null">#{integralType},</if>
<if test="agentRemark != null">#{agentRemark},</if>
<if test="remark != null">#{remark},</if>
<if test="createUser != null">#{createUser},</if>

View File

@ -87,7 +87,8 @@
<el-table-column label="运营店铺数" align="center" prop="operateStoreNum" />
<el-table-column label="昨日消耗积分数" align="center" prop="lastUseIntegralNum" />
<el-table-column label="昨日好评量" align="center" prop="lastPositiveReviewsNum" />
<el-table-column label="AI时长余额" align="center" prop="aiDurationBalance" />
<el-table-column label="安全营销余额" align="center" prop="aiDurationBalance" />
<el-table-column label="普通营销余额" align="center" prop="aiRealTimeNum" />
<el-table-column label="上次登录时间" align="center" prop="lastLoginTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.lastLoginTime, '{y}-{m}-{d}') }}</span>
@ -102,8 +103,14 @@
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate1(scope.row)"
>充值</el-button>
@click="handleUpdate1(scope.row,'sms')"
>安全充值</el-button>
<el-button v-if="user != 'admin' || scope.row.superiorAgentAccount == 'admin'"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate1(scope.row,'AI')"
>普通充值</el-button>
</template>
</el-table-column>
</el-table>
@ -159,7 +166,22 @@
<el-dialog :title="title" :visible.sync="open1" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="时长" prop="aiDurationBalance1">
<el-form-item label="账号" prop="agentAccount">
<el-input disabled v-model="form.agentAccount" />
</el-form-item>
<el-form-item label="账号名称" prop="agentName">
<el-input disabled v-model="form.agentName" />
</el-form-item>
<el-form-item label="普通余额" prop="aiRealTimeNum" v-if="durationType=='AI'">
<el-input disabled v-model="form.aiRealTimeNum" />
</el-form-item>
<el-form-item label="安全余额" prop="aiDurationBalance" v-if="durationType=='sms'">
<el-input disabled v-model="form.aiDurationBalance" />
</el-form-item>
<el-form-item label="充值普通" prop="aiRealTimeNum1" v-if="durationType=='AI'">
<el-input v-model="form.aiRealTimeNum1" placeholder="请输入时长" />
</el-form-item>
<el-form-item label="充值安全" prop="aiDurationBalance1" v-if="durationType=='sms'">
<el-input v-model="form.aiDurationBalance1" placeholder="请输入时长" />
</el-form-item>
<el-form-item label="备注" prop="remark">
@ -216,7 +238,8 @@ export default {
form: {},
//
rules: {
}
},
durationType: undefined
};
},
created() {
@ -291,8 +314,9 @@ export default {
this.title = "添加代理管理";
},
/** 修改按钮操作 */
handleUpdate1(row) {
handleUpdate1(row,type) {
this.reset();
this.durationType = type
const id = row.id || this.ids
getInfo(id).then(response => {
this.form = response.data;

View File

@ -76,7 +76,8 @@
<el-table-column label="日期" align="center" prop="integralUpdateTime" />
<el-table-column label="账号" align="center" prop="account" />
<el-table-column label="类型" align="center" prop="updateType" />
<el-table-column label="账分消耗" align="center" prop="integralUpdateNum" />
<el-table-column label="安全账分消耗" align="center" prop="integralUpdateNum" />
<el-table-column label="普通账分消耗" align="center" prop="aiIntegralUpdateNum" />
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
@ -136,9 +137,9 @@ export default {
expireTimeOPtion: {
disabledDate(time) {
let curDate = (new Date()).getTime();
let date1 = 16 * 24 * 3600 * 1000;
let date1 = 15 * 24 * 3600 * 1000;
let date2 = curDate-date1;
return time.getTime() > Date.now()-8.64e7 || time.getTime() < date2;
return (time.getTime() > Date.now()) ;//|| (time.getTime() < date2)
// return time.getTime() > Date.now() - 8.64e7; //-8.64e7
}
},
@ -168,7 +169,7 @@ export default {
platform: null,
updateType: null,
integralUpdateNum: null,
integralUpdateTime: null,
integralUpdateTime: new Date(),
integralBalance: null,
agentRemark: null,
},

View File

@ -92,7 +92,13 @@
<el-table-column label="分配账户" align="center" prop="account" />
<el-table-column label="分配类型" align="center" prop="updateType" />
<el-table-column label="分配账额" align="center" prop="integralUpdateNum" />
<el-table-column label="入账后余额" align="center" prop="integralBalance" />
<el-table-column label="账分类别" align="center" prop="integralType" >
<template slot-scope="scope">
<dict-tag :options="dict.type.bus_marketing_channels" :value="scope.row.integralType"/>
</template>
</el-table-column>
<el-table-column label="安全账分余额" align="center" prop="integralBalance" />
<el-table-column label="普通账分余额" align="center" prop="aiIntegralBalance" />
<el-table-column label="分配人" align="center" prop="createUser" />
<el-table-column label="分配时间" align="center" prop="integralUpdateTime" width="180">
<template slot-scope="scope">
@ -172,15 +178,15 @@ import { listRecord, getRecord, delRecord, addRecord, updateRecord } from "@/api
export default {
name: "Record",
dicts: ['bus_score_type'],
dicts: ['bus_score_type','bus_marketing_channels'],
data() {
return {
expireTimeOPtion: {
disabledDate(time) {
let curDate = (new Date()).getTime();
let date1 = 16 * 24 * 3600 * 1000;
let date1 = 15 * 24 * 3600 * 1000;
let date2 = curDate-date1;
return time.getTime() > Date.now()-8.64e7 || time.getTime() < date2;
return time.getTime() > Date.now() ;//|| time.getTime() < date2
// return time.getTime() > Date.now() - 8.64e7; //-8.64e7
}
},
@ -210,7 +216,7 @@ export default {
platform: null,
updateType: null,
integralUpdateNum: null,
integralUpdateTime: new Date(),
integralUpdateTime: null,//new Date()
integralBalance: null,
agentRemark: null,
},