Commit 2760d141 by 徐高华

群发

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