Commit 2760d141 by 徐高华

群发

parent 441ebbed
......@@ -36,6 +36,9 @@ public interface GroupChatPlanOwnerLogMapper {
public List<Long> listForTimer(@Param("planId") Long planId);
public List<TabGroupChatPlanOwnerLog> listForDoPlan(@Param("planId") Long planId, @Param("startItem") int startItem,
@Param("pageSize") int pageSize);
public List<ChatOwnerTotalDTO> listOwnerLogPageForWxaTotal(GroupChatPlanSearchQDTO qdto);
public List<GroupChatPlanOwnerLogDTO> listOwnerLogPageForWxa(GroupChatPlanSearchQDTO qdto);
......
......@@ -42,6 +42,7 @@ import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.StaffMapper;
import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatPlanLogMapper;
import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatPlanMapper;
import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatPlanOwnerLogMapper;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatPlan;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatPlanLog;
......@@ -72,6 +73,8 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
@Autowired
private GroupChatPlanOwnerLogService groupChatPlanOwnerLogService;
@Autowired
private GroupChatPlanOwnerLogMapper groupChatPlanOwnerLogMapper;
@Autowired
private GroupChatPlanLogMapper groupChatPlanLogMapper;
@Autowired
private QywxSendService qywxSendService;
......@@ -184,11 +187,10 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
logger.info("计划不存在,planid={}", planId);
return;
}
if (plan.getSendFlag() == 2) {
if (plan.getSendFlag() == PlanSendStatusEnum.SENDED.getCode()) {
logger.info("计划已执行过,planid={}", planId);
return;
}
// 控制重复发送
this.groupChatPlanMapper.updateSendFlag(planId);
String wxEnterpriseId = plan.getWxEnterpriseId();
String chatContent = plan.getChatContent();
......@@ -198,24 +200,18 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
JSONObject json = jsonArr.getJSONObject(i);
madidList.add(json.getString("relation_id"));
}
int currentPage = 1;
GroupChatPlanSearchQDTO qdto = new GroupChatPlanSearchQDTO();
qdto.setWxEnterpriseId(wxEnterpriseId);
BasePageInfo basePageInfo = new BasePageInfo();
basePageInfo.setPageNum(currentPage);
basePageInfo.setPageSize(1);
Page<GroupChatPlanOwnerLogDTO> page = this.groupChatPlanOwnerLogService.listPage(planId, qdto, basePageInfo);
while (page.getTotalPage() >= currentPage) {
if (currentPage > 1) {
basePageInfo.setPageNum(currentPage);
page = this.groupChatPlanOwnerLogService.listPage(planId, qdto, basePageInfo);
int pageNum = 0;
int pageSize = 1 ;
List<TabGroupChatPlanOwnerLog> ownerList = null ;
while (true) {
ownerList = this.groupChatPlanOwnerLogMapper.listForDoPlan(planId, pageNum*pageSize, pageSize) ;
if (CollectionUtils.isEmpty(ownerList)) {
break;
}
currentPage++;
List<GroupChatPlanOwnerLogDTO> ownerList = page.getResult();
for (GroupChatPlanOwnerLogDTO dto : ownerList) {
String staffId = dto.getStaffId();
pageNum++;
for (TabGroupChatPlanOwnerLog ownerLog : ownerList) {
String staffId = ownerLog.getStaffId();
ServiceResponse<String> sendResp = qywxSendService.sendChatMessage(wxEnterpriseId, staffId, madidList);
TabGroupChatPlanOwnerLog ownerLog = EntityUtil.changeEntityByJSON(TabGroupChatPlanOwnerLog.class, dto);
if (sendResp.isSuccess()) {
String msgid = sendResp.getResult();
ownerLog.setMsgid(msgid);
......@@ -228,25 +224,25 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
this.groupChatPlanOwnerLogService.update(ownerLog);
// 代办
if (StringUtils.isNotBlank(ownerLog.getClerkId())) {
this.savePendTask(dto, plan);
this.savePendTask(ownerLog, plan);
}
}
}
}
private void savePendTask(GroupChatPlanOwnerLogDTO ownerDTO, TabGroupChatPlan plan) {
logger.info("创建待办数据:{}", JSON.toJSONString(ownerDTO));
private void savePendTask(TabGroupChatPlanOwnerLog ownerLog, TabGroupChatPlan plan) {
logger.info("创建待办数据:{}", JSON.toJSONString(ownerLog));
PendingTaskBO task = new PendingTaskBO();
task.setRelationId(ownerDTO.getOwnerLogId() + "");
task.setBusinessId(ownerDTO.getPlanId() + "");
task.setRelationId(ownerLog.getOwnerLogId() + "");
task.setBusinessId(ownerLog.getPlanId() + "");
task.setTaskType(PendingTaskTypeEnum.GROUP_CHAT.getType());
task.setTitle(plan.getName());
task.setInvalidTime(ownerDTO.getExpireDate());
task.setInvalidTime(plan.getEndTime());
task.setDescription(plan.getRemark());
task.setStoreId(ownerDTO.getStoreId());
task.setClerkId(ownerDTO.getClerkId());
task.setEnterpriseId(ownerDTO.getEnterpriseId());
task.setOverdueTime(ownerDTO.getExpireDate());
task.setStoreId(ownerLog.getStoreId());
task.setClerkId(ownerLog.getClerkId());
task.setEnterpriseId(ownerLog.getEnterpriseId());
task.setOverdueTime(plan.getEndTime());
this.pendingTaskService.addOrUpdatePendingTask(task);
}
......
......@@ -110,6 +110,10 @@
</if>
</select>
<select id="listForDoPlan" resultMap="result-map-tabHaobanGroupChatPlanOwnerLog">
select <include refid="Base_Column_List"/> FROM tab_haoban_group_chat_plan_owner_log WHERE plan_id = #{planId} and delete_flag = 0 limit ${startItem},${pageSize}
</select>
<select id="listPage" parameterType="com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO" resultType="com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO">
select
a.owner_log_id ownerLogId ,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment