|
|
@@ -19,6 +19,7 @@ import com.fs.company.service.ICompanyVoiceRoboticService;
|
|
|
import com.fs.company.service.ICompanyWxAccountService;
|
|
|
import com.fs.company.service.ICompanyWxClientService;
|
|
|
import com.fs.company.service.ICompanyWxDialogService;
|
|
|
+import com.fs.company.service.impl.CompanyVoiceRoboticWxServiceImpl;
|
|
|
import com.fs.company.util.ObjectPlaceholderResolver;
|
|
|
import com.fs.company.vo.SendMsgVo;
|
|
|
import com.fs.course.config.WxConfig;
|
|
|
@@ -59,6 +60,7 @@ public class WxTaskService {
|
|
|
private final CompanyVoiceRoboticCalleesMapper companyVoiceRoboticCalleesMapper;
|
|
|
private final CompanyVoiceRoboticWxMapper companyVoiceRoboticWxMapper;
|
|
|
private final CompanyWxClientMapper companyWxClientMapper;
|
|
|
+ private final CompanyVoiceRoboticWxServiceImpl companyVoiceRoboticWxServiceImpl;
|
|
|
private RedissonClient redissonClient;
|
|
|
|
|
|
private final ExecutorService cidExcutor = new ThreadPoolExecutor(
|
|
|
@@ -269,33 +271,42 @@ public class WxTaskService {
|
|
|
* @param robotic
|
|
|
*/
|
|
|
@Transactional
|
|
|
- public List<CompanyWxClient> allocateWx(CompanyVoiceRobotic robotic){
|
|
|
+ public List<CompanyWxClient> allocateWx(CompanyVoiceRobotic robotic) {
|
|
|
List<CompanyWxClient> resArr = new ArrayList<>();
|
|
|
//找到任务指定的微信用户
|
|
|
List<CompanyVoiceRoboticWx> companyVoiceRoboticWxes = companyVoiceRoboticWxMapper.selectByRoboticIdWithGroupBy(robotic.getId());
|
|
|
Integer totalSize = 0;
|
|
|
- if(null != companyVoiceRoboticWxes && !companyVoiceRoboticWxes.isEmpty()){
|
|
|
- totalSize = companyVoiceRoboticWxes.size();
|
|
|
- } else{
|
|
|
+ if (null != companyVoiceRoboticWxes && !companyVoiceRoboticWxes.isEmpty()) {
|
|
|
+ totalSize = companyVoiceRoboticWxes.size();
|
|
|
+ } else {
|
|
|
log.error("分配对象空,数据异常");
|
|
|
throw new RuntimeException("没有找到任务指定的微信用户");
|
|
|
}
|
|
|
List<CompanyWxClient> companyWxClients = companyWxClientMapper.selectListByRoboticId(robotic.getId());
|
|
|
- if(null == companyWxClients || companyWxClients.isEmpty()){
|
|
|
+ if (null == companyWxClients || companyWxClients.isEmpty()) {
|
|
|
log.error("分配个微空,数据异常");
|
|
|
throw new RuntimeException("没有找到需要分配微信用户");
|
|
|
}
|
|
|
Integer allocateIndex = 0;
|
|
|
+ List<CompanyVoiceRoboticWx> updateCompanyVoiceRoboticWxList = new ArrayList<>();
|
|
|
//分配客户
|
|
|
for (CompanyWxClient companyWxClient : companyWxClients) {
|
|
|
- CompanyVoiceRoboticWx wx = companyVoiceRoboticWxes.get(allocateIndex++ % totalSize);
|
|
|
+ CompanyVoiceRoboticWx wx = new CompanyVoiceRoboticWx();
|
|
|
+ wx = companyVoiceRoboticWxes.get(allocateIndex++ % totalSize);
|
|
|
companyWxClient.setRoboticWxId(wx.getId());
|
|
|
companyWxClient.setAccountId(wx.getAccountId());
|
|
|
companyWxClient.setDialogId(wx.getWxDialogId());
|
|
|
resArr.add(companyWxClient);
|
|
|
+ if (wx.getNum() == null) {
|
|
|
+ wx.setNum(1);
|
|
|
+ } else {
|
|
|
+ wx.setNum(wx.getNum() + 1);
|
|
|
+ }
|
|
|
+ updateCompanyVoiceRoboticWxList.add(wx);
|
|
|
}
|
|
|
//保存数据库
|
|
|
companyWxClientService.updateBatchById(companyWxClients);
|
|
|
+ companyVoiceRoboticWxServiceImpl.updateBatchById(updateCompanyVoiceRoboticWxList);
|
|
|
return resArr;
|
|
|
}
|
|
|
|