1;帐分消耗-账户少扣减问题(多线程中,赋值相同导致)sql优化

This commit is contained in:
wangshuai 2024-08-13 08:11:36 +08:00
parent b328ccff4a
commit b09432be1f
6 changed files with 33 additions and 13 deletions

View File

@ -63,4 +63,5 @@ public interface BusAgentInfoMapper
BusAgentInfo getAgentByAccount(String agentAccount);
void updateBusAgentScore(BusAgentInfo busAgentInfo);
}

View File

@ -71,4 +71,6 @@ public interface IBusAgentInfoService
int insertAgentInfo(LoginUser loginUser, BusAgentInfo busAgentInfo);
int updateAgentInfo(BusAgentInfo busAgentInfo);
void updateBusAgentScore(BusAgentInfo busAgentInfo);
}

View File

@ -165,20 +165,22 @@ public class AiConsumer {
int a = 1;
if("AI".equals(busStoreInfo.getMarketingChannels())){
int reduce = busAgentInfo.getAiRealTimeNum() - a;
busAgentInfo.setAiRealTimeNum(reduce);
// busAgentInfo.setAiRealTimeNum(reduce);
busAgentInfo.setAiRealTimeNum1(a);
record.setIntegralType("AI");
record.setAiIntegralBalance(reduce);
returnVisitInfo.setIsCharging("AI-0");
}else if("sms".equals(busStoreInfo.getMarketingChannels())){
int reduce = busAgentInfo.getAiDurationBalance() - a;
busAgentInfo.setAiDurationBalance(reduce);
// busAgentInfo.setAiDurationBalance(reduce);
busAgentInfo.setAiDurationBalance1(a);
record.setIntegralType("sms");
record.setIntegralBalance(reduce);
returnVisitInfo.setIsCharging("sms-0");
}
// int reduce = busAgentInfo.getAiDurationBalance() - a;
// busAgentInfo.setAiDurationBalance(reduce);
agentInfoService.updateBusAgentInfo(busAgentInfo);
// agentInfoService.updateBusAgentInfo(busAgentInfo);
agentInfoService.updateBusAgentScore(busAgentInfo);
log.error(busAgentInfo.getAgentAccount()+"扣除"+record.getIntegralType()+"-0帐分"+a);
record.setAccount(busAgentInfo.getAgentAccount());
record.setIntegralUpdateTime(new Date());
@ -201,8 +203,10 @@ public class AiConsumer {
BusAgentInfo busAgentInfo =agentInfo;
int a = 1;
int reduce = busAgentInfo.getAiDurationBalance() - a;
busAgentInfo.setAiDurationBalance(reduce);
agentInfoService.updateBusAgentInfo(busAgentInfo);
busAgentInfo.setAiDurationBalance1(a);
// agentInfoService.updateBusAgentInfo(busAgentInfo);
agentInfoService.updateBusAgentScore(busAgentInfo);
log.error(busAgentInfo.getAgentAccount()+"扣除sms帐分"+a);
BusIntegralRecord record = new BusIntegralRecord();
record.setAccount(busAgentInfo.getAgentAccount());
@ -220,7 +224,7 @@ public class AiConsumer {
fifteenInfo.setLastVisitTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
fifteenInfoService.insertBusFifteenInfo(fifteenInfo);
}else{
log.error("未配置营销渠道=====================");
log.error("未配置营销渠道====================="+busStoreInfo.getStoreCode());
return;
}
}

View File

@ -291,8 +291,8 @@ public class AiServiceImpl implements IAiService {
MqDataInfo mqDataInfo = new MqDataInfo();
agentInfo.setAgentName(null);
mqDataInfo.setAgentInfo(agentInfo);
mqDataInfo.setStoreCode(storeInfo.getStoreCode());
mqDataInfo.setChannel(storeInfo.getMarketingChannels());
mqDataInfo.setStoreCode(busStoreInfo.getStoreCode());
mqDataInfo.setChannel(busStoreInfo.getMarketingChannels());
busOrderInfo.setOrderStatus(null);
busOrderInfo.setStoreName(null);
busOrderInfo.setRecipientPhone(null);
@ -424,9 +424,9 @@ public class AiServiceImpl implements IAiService {
BusAgentInfo busAgentInfo = agentInfoL.get(0);
int a = (Integer.valueOf(aiInfo.getTalktimes()) / 60) + 1;
int reduce = busAgentInfo.getAiRealTimeNum() - a;
busAgentInfo.setAiRealTimeNum(reduce);
// busAgentInfo.setAiRealTimeNum(0);
agentInfoService.updateBusAgentInfo(busAgentInfo);
busAgentInfo.setAiRealTimeNum1(a);
// agentInfoService.updateBusAgentInfo(busAgentInfo);
agentInfoService.updateBusAgentScore(busAgentInfo);
BusIntegralRecord record = new BusIntegralRecord();
record.setAccount(busAgentInfo.getAgentAccount());

View File

@ -240,4 +240,9 @@ public class BusAgentInfoServiceImpl implements IBusAgentInfoService
busAgentInfoMapper.updateBusAgentInfo(temp1);
return 1;
}
@Override
public void updateBusAgentScore(BusAgentInfo busAgentInfo) {
busAgentInfoMapper.updateBusAgentScore(busAgentInfo);
}
}

View File

@ -127,6 +127,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</trim>
where id = #{id}
</update>
<update id="updateBusAgentScore" parameterType="BusAgentInfo">
update bus_agent_info
<trim prefix="SET" suffixOverrides=",">
<if test="aiDurationBalance1 != 0">ai_duration_balance = ai_duration_balance-#{aiDurationBalance1},</if>
<if test="aiRealTimeNum1 != 0">ai_real_time_num = ai_real_time_num-#{aiRealTimeNum1},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteBusAgentInfoById" parameterType="Long">
delete from bus_agent_info where id = #{id}