Commit e3f4a3c3 by 徐高华

群群发

parent 29684b70
......@@ -60,6 +60,16 @@ public class GroupChatPlanDTO implements Serializable {
// 是否发送全部
private int sendAllFlag ;
// 所有的群发条件
private String allSearchParams ;
public String getAllSearchParams() {
return allSearchParams;
}
public void setAllSearchParams(String allSearchParams) {
this.allSearchParams = allSearchParams;
}
public int getSendAllFlag() {
return sendAllFlag;
......
......@@ -26,6 +26,11 @@ public interface GroupChatOwnerMapper {
public int updateChatCount(@Param("staffId") String staffId, @Param("chatCount") int chatCount);
public List<GroupChatOwnerDTO> listOwner(OwnerSearchQDTO qdto);
public List<GroupChatOwnerDTO> listOwnerPage(@Param("wxEnterpriseId")String wxEnterpriseId ,
@Param("departmentIdList") List<String> departmentIdList ,
@Param("searchParams") String searchParams ,
@Param("startItem") int startItem, @Param("pageSize") int pageSize);
public List<GroupChatOwnerDTO> listOwnerForStatistic(@Param("wxEnterpriseId")String wxEnterpriseId , @Param("startItem") int startItem,
@Param("pageSize") int pageSize);
......
......@@ -55,6 +55,16 @@ public class TabGroupChatPlan implements Serializable {
// 是否发送全部
private int sendAllFlag ;
// 所有的群发条件
private String allSearchParams ;
public String getAllSearchParams() {
return allSearchParams;
}
public void setAllSearchParams(String allSearchParams) {
this.allSearchParams = allSearchParams;
}
public int getSendAllFlag() {
return sendAllFlag;
......
......@@ -55,6 +55,16 @@ public class GroupChatPlanBO implements Serializable{
private Integer materialFrom;
// 是否发送全部
private int sendAllFlag ;
// 所有的群发条件
private String allSearchParams ;
public String getAllSearchParams() {
return allSearchParams;
}
public void setAllSearchParams(String allSearchParams) {
this.allSearchParams = allSearchParams;
}
public int getSendAllFlag() {
return sendAllFlag;
......
......@@ -93,6 +93,9 @@ public interface GroupChatService {
*/
public Page<GroupChatOwnerDTO> listOwnerPage(OwnerSearchQDTO qdto, BasePageInfo basePageInfo);
public List<String> setDepartIdList(String wxEnterpriseId, String departmentId) ;
/**
*
* @Title: listOwnerHistory
......
......@@ -350,25 +350,37 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
int pageNum = 0;
List<TabGroupChatPlanOwnerLog> ownerList = null;
int sendAlFlag = plan.getSendAllFlag() ;
String allSearchParams = plan.getAllSearchParams() ;
// 发送全部群主
if(sendAlFlag==1) {
int ownerPageNo = 0;
int ownerPageSize = 500 ;
int totalCount = 0 ;
List<GroupChatOwnerDTO> list = null;
String searchParams = null ;
List<String> departmentIdList = null ;
if(StringUtils.isNotEmpty(allSearchParams)) {
JSONObject json = JSONObject.parseObject(allSearchParams) ;
searchParams = json.getString("searchParams") ;
String dpid = json.getString("departmentId") ;
if(StringUtils.isNotBlank(dpid)) {
departmentIdList = this.groupChatService.setDepartIdList(wxEnterpriseId,dpid) ;
}
}
while (true) {
list = this.groupChatOwnerMapper.listOwnerForStatistic(wxEnterpriseId, ownerPageNo * ownerPageSize, ownerPageSize);
if(null != searchParams || null != departmentIdList) {
list = this.groupChatOwnerMapper.listOwnerPage(wxEnterpriseId, departmentIdList,searchParams,ownerPageNo * ownerPageSize, ownerPageSize);
}else {
list = this.groupChatOwnerMapper.listOwnerForStatistic(wxEnterpriseId, ownerPageNo * ownerPageSize, ownerPageSize);
}
if (CollectionUtils.isEmpty(list)) {
break;
}
ownerPageNo++;
List<String> staffIdList = this.filterNoClerk(wxEnterpriseId,list) ;
logger.info("全部,群主数={},{},过滤后={}", wxEnterpriseId,list.size(),staffIdList.size());
if(CollectionUtils.isNotEmpty(staffIdList)) {
String staffIds = staffIdList.stream().collect(Collectors.joining(",")) ;
totalCount = totalCount + staffIdList.size() ;
this.groupChatPlanOwnerLogService.batchAdd(staffIds, plan);
}
logger.info("全部,群主数={},{},过滤后={}", wxEnterpriseId,list.size());
String staffIds = list.stream().map(o->o.getStaffId()).collect(Collectors.joining(",")) ;
totalCount = totalCount + list.size() ;
this.groupChatPlanOwnerLogService.batchAdd(staffIds, plan);
}
this.groupChatPlanMapper.updateStaffCount(planId,totalCount);
}
......
......@@ -1075,7 +1075,8 @@ public class GroupChatServiceImpl implements GroupChatService {
return retPage;
}
private List<String> setDepartIdList(String wxEnterpriseId, String departmentId) {
@Override
public List<String> setDepartIdList(String wxEnterpriseId, String departmentId) {
List<String> departmentIdList = new ArrayList<>();
if (StringUtils.isNotBlank(departmentId)) {
TabHaobanDepartment department = this.departmentService.selectById(departmentId);
......
......@@ -68,7 +68,7 @@
and b.staff_name like #{searchParams}
</if>
<if test="status==1">
and b.status_flag = 1
and b.status_flag = 1
</if>
<if test="status==2">
and b.status_flag = 0
......@@ -77,6 +77,32 @@
group by a.staff_id
</if>
</select>
<select id="listOwnerPage" resultType="com.gic.haoban.manage.api.dto.chat.GroupChatOwnerDTO">
select * from (
SELECT a.staff_id staffId , b.`staff_name` staffName , a.wx_enterprise_id wxEnterpriseId ,
b.wx_user_id wxUserId , b.wx_open_user_id wxOpenUserId
FROM tab_haoban_group_chat_owner a LEFT JOIN tab_haoban_staff b ON a.`staff_id` = b.`staff_id`
<if test="departmentIdList != null and departmentIdList.size() > 0">
left join tab_haoban_staff_department_related c on a.staff_id = c.staff_id and c.status_flag = 1
</if>
where a.wx_enterprise_id=#{wxEnterpriseId}
<if test="departmentIdList != null and departmentIdList.size() > 0">
and c.department_id IN
<foreach collection="departmentIdList" item="id" index="index" open="(" close=")" separator=",">
#{id,jdbcType=VARCHAR}
</foreach>
</if>
<if test="null != searchParams and ''!=searchParams ">
and b.staff_name like #{searchParams}
</if>
and b.status_flag = 1
<if test="departmentIdList != null and departmentIdList.size() > 0">
group by a.staff_id
</if>
) t limit ${startItem},${pageSize}
</select>
<select id="listOwnerForStatistic" resultType="com.gic.haoban.manage.api.dto.chat.GroupChatOwnerDTO">
SELECT a.staff_id staffId , a.wx_enterprise_id wxEnterpriseId ,
......
......@@ -29,6 +29,7 @@
<result column="send_flag" property="sendFlag" />
<result column="material_from" property="materialFrom" />
<result column="send_all_flag" property="sendAllFlag" />
<result column="all_search_params" property="allSearchParams" />
</resultMap>
<sql id="Base_Column_List">
plan_id,
......@@ -52,7 +53,7 @@
success_chat_count,
fail_chat_count ,
wx_enterprise_id , enterprise_id , send_flag ,
material_from , send_all_flag
material_from , send_all_flag , all_search_params
</sql>
<!-- ===================== 新增 ======================== -->
<insert id="insert"
......@@ -79,7 +80,7 @@
send_count,
success_chat_count,
fail_chat_count , wx_enterprise_id , enterprise_id , delete_flag , send_flag,
material_from , send_all_flag
material_from , send_all_flag , all_search_params
)VALUES(
#{planId},
#{name},
......@@ -101,7 +102,7 @@
#{sendCount},
#{successChatCount},
#{failChatCount} , #{wxEnterpriseId} , #{enterpriseId} , 0 , 1,
#{materialFrom} , #{sendAllFlag}
#{materialFrom} , #{sendAllFlag} , #{allSearchParams}
)
]]>
</insert>
......@@ -145,7 +146,8 @@
end_time=#{endTime},
expire_days=#{expireDays},
material_from=#{materialFrom} ,
send_all_flag = #{sendAllFlag}
send_all_flag = #{sendAllFlag} ,
all_search_params = #{allSearchParams}
where plan_id = #{planId}
]]>
</update>
......
......@@ -63,6 +63,16 @@ public class GroupChatPlanVO implements Serializable{
// 是否发送全部
private int sendAllFlag ;
// 所有的群发条件
private String allSearchParams ;
public String getAllSearchParams() {
return allSearchParams;
}
public void setAllSearchParams(String allSearchParams) {
this.allSearchParams = allSearchParams;
}
public int getSendAllFlag() {
return sendAllFlag;
......
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