Commit 8dd153da by 徐高华

群发

parent 11e905c7
...@@ -46,6 +46,16 @@ public class GroupChatPlanDTO implements Serializable{ ...@@ -46,6 +46,16 @@ public class GroupChatPlanDTO implements Serializable{
private Integer successChatCount; private Integer successChatCount;
/**总群数*/ /**总群数*/
private Integer totalChatCount; private Integer totalChatCount;
// 1代发送 2已发送
private Integer sendFlag;
public Integer getSendFlag() {
return sendFlag;
}
public void setSendFlag(Integer sendFlag) {
this.sendFlag = sendFlag;
}
public String getWxEnterpriseId() { public String getWxEnterpriseId() {
return wxEnterpriseId; return wxEnterpriseId;
......
...@@ -23,6 +23,8 @@ public interface GroupChatPlanMapper { ...@@ -23,6 +23,8 @@ public interface GroupChatPlanMapper {
public int deleteById(@Param("planId") Long planId, @Param("clerkId") String clerkId, public int deleteById(@Param("planId") Long planId, @Param("clerkId") String clerkId,
@Param("clerkName") String clerkName); @Param("clerkName") String clerkName);
public int updateSendFlag(@Param("planId") Long planId);
public int updateById(TabGroupChatPlan entity); public int updateById(TabGroupChatPlan entity);
public TabGroupChatPlan selectById(Long planId); public TabGroupChatPlan selectById(Long planId);
......
package com.gic.haoban.manage.service.entity.chat; package com.gic.haoban.manage.service.entity.chat;
import java.io.Serializable ; import java.io.Serializable;
/** /**
* *
...@@ -11,7 +11,7 @@ import java.io.Serializable ; ...@@ -11,7 +11,7 @@ import java.io.Serializable ;
* @Modify * @Modify
* @CopyRight * @CopyRight
*/ */
public class TabGroupChatPlan implements Serializable{ public class TabGroupChatPlan implements Serializable {
private static final long serialVersionUID = 21576537277600L; private static final long serialVersionUID = 21576537277600L;
...@@ -47,6 +47,16 @@ public class TabGroupChatPlan implements Serializable{ ...@@ -47,6 +47,16 @@ public class TabGroupChatPlan implements Serializable{
private String wxEnterpriseId; private String wxEnterpriseId;
private String enterpriseId; private String enterpriseId;
// 1代发送 2已发送
private Integer sendFlag;
public Integer getSendFlag() {
return sendFlag;
}
public void setSendFlag(Integer sendFlag) {
this.sendFlag = sendFlag;
}
public String getWxEnterpriseId() { public String getWxEnterpriseId() {
return wxEnterpriseId; return wxEnterpriseId;
...@@ -80,137 +90,155 @@ public class TabGroupChatPlan implements Serializable{ ...@@ -80,137 +90,155 @@ public class TabGroupChatPlan implements Serializable{
this.modifierName = modifierName; this.modifierName = modifierName;
} }
public void setPlanId(Long planId){ public void setPlanId(Long planId) {
this.planId = planId; this.planId = planId;
} }
public Long getPlanId(){ public Long getPlanId() {
return planId; return planId;
} }
public void setName(String name){
public void setName(String name) {
this.name = name; this.name = name;
} }
public String getName(){ public String getName() {
return name; return name;
} }
public void setRemark(String remark){
public void setRemark(String remark) {
this.remark = remark; this.remark = remark;
} }
public String getRemark(){ public String getRemark() {
return remark; return remark;
} }
public void setChatContent(String chatContent){
public void setChatContent(String chatContent) {
this.chatContent = chatContent; this.chatContent = chatContent;
} }
public String getChatContent(){ public String getChatContent() {
return chatContent; return chatContent;
} }
public void setCreatorId(String creatorId){
public void setCreatorId(String creatorId) {
this.creatorId = creatorId; this.creatorId = creatorId;
} }
public String getCreatorId(){ public String getCreatorId() {
return creatorId; return creatorId;
} }
public void setCreatorName(String creatorName){
public void setCreatorName(String creatorName) {
this.creatorName = creatorName; this.creatorName = creatorName;
} }
public String getCreatorName(){ public String getCreatorName() {
return creatorName; return creatorName;
} }
public void setCreateTime(java.util.Date createTime){
public void setCreateTime(java.util.Date createTime) {
this.createTime = createTime; this.createTime = createTime;
} }
public java.util.Date getCreateTime(){ public java.util.Date getCreateTime() {
return createTime; return createTime;
} }
public void setUpdateTime(java.util.Date updateTime){
public void setUpdateTime(java.util.Date updateTime) {
this.updateTime = updateTime; this.updateTime = updateTime;
} }
public java.util.Date getUpdateTime(){ public java.util.Date getUpdateTime() {
return updateTime; return updateTime;
} }
public void setStatusFlag(Integer statusFlag){
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag; this.statusFlag = statusFlag;
} }
public Integer getStatusFlag(){ public Integer getStatusFlag() {
return statusFlag; return statusFlag;
} }
public void setSendType(Integer sendType){
public void setSendType(Integer sendType) {
this.sendType = sendType; this.sendType = sendType;
} }
public Integer getSendType(){ public Integer getSendType() {
return sendType; return sendType;
} }
public void setSendTime(java.util.Date sendTime){
public void setSendTime(java.util.Date sendTime) {
this.sendTime = sendTime; this.sendTime = sendTime;
} }
public java.util.Date getSendTime(){ public java.util.Date getSendTime() {
return sendTime; return sendTime;
} }
public void setStartTime(java.util.Date startTime){
public void setStartTime(java.util.Date startTime) {
this.startTime = startTime; this.startTime = startTime;
} }
public java.util.Date getStartTime(){ public java.util.Date getStartTime() {
return startTime; return startTime;
} }
public void setEndTime(java.util.Date endTime){
public void setEndTime(java.util.Date endTime) {
this.endTime = endTime; this.endTime = endTime;
} }
public java.util.Date getEndTime(){ public java.util.Date getEndTime() {
return endTime; return endTime;
} }
public void setExpireDays(Integer expireDays){
public void setExpireDays(Integer expireDays) {
this.expireDays = expireDays; this.expireDays = expireDays;
} }
public Integer getExpireDays(){ public Integer getExpireDays() {
return expireDays; return expireDays;
} }
public void setStaffIdList(String staffIdList){
public void setStaffIdList(String staffIdList) {
this.staffIdList = staffIdList; this.staffIdList = staffIdList;
} }
public String getStaffIdList(){ public String getStaffIdList() {
return staffIdList; return staffIdList;
} }
public void setStaffCount(Integer staffCount){
public void setStaffCount(Integer staffCount) {
this.staffCount = staffCount; this.staffCount = staffCount;
} }
public Integer getStaffCount(){ public Integer getStaffCount() {
return staffCount; return staffCount;
} }
public void setSendCount(Integer sendCount){
public void setSendCount(Integer sendCount) {
this.sendCount = sendCount; this.sendCount = sendCount;
} }
public Integer getSendCount(){ public Integer getSendCount() {
return sendCount; return sendCount;
} }
public void setSuccessChatCount(Integer successChatCount){
public void setSuccessChatCount(Integer successChatCount) {
this.successChatCount = successChatCount; this.successChatCount = successChatCount;
} }
public Integer getSuccessChatCount(){ public Integer getSuccessChatCount() {
return successChatCount; return successChatCount;
} }
public void setTotalChatCount(Integer totalChatCount){
public void setTotalChatCount(Integer totalChatCount) {
this.totalChatCount = totalChatCount; this.totalChatCount = totalChatCount;
} }
public Integer getTotalChatCount(){ public Integer getTotalChatCount() {
return totalChatCount; return totalChatCount;
} }
} }
\ No newline at end of file
...@@ -47,6 +47,16 @@ public class GroupChatPlanBO implements Serializable{ ...@@ -47,6 +47,16 @@ public class GroupChatPlanBO implements Serializable{
private Integer successChatCount; private Integer successChatCount;
/**总群数*/ /**总群数*/
private Integer totalChatCount; private Integer totalChatCount;
// 1代发送 2已发送
private Integer sendFlag;
public Integer getSendFlag() {
return sendFlag;
}
public void setSendFlag(Integer sendFlag) {
this.sendFlag = sendFlag;
}
public String getWxEnterpriseId() { public String getWxEnterpriseId() {
return wxEnterpriseId; return wxEnterpriseId;
......
...@@ -101,22 +101,27 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService { ...@@ -101,22 +101,27 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
@Override @Override
public void save(GroupChatPlanDTO dto) { public void save(GroupChatPlanDTO dto) {
TabGroupChatPlan entity = EntityUtil.changeEntityByJSON(TabGroupChatPlan.class, dto); TabGroupChatPlan entity = EntityUtil.changeEntityByJSON(TabGroupChatPlan.class, dto);
if (null == dto.getPlanId()) { Long planId = dto.getPlanId();
entity.setPlanId(UniqueIdUtils.uniqueLong()); if (null == planId) {
planId = UniqueIdUtils.uniqueLong();
entity.setPlanId(planId);
if (entity.getSendType() == 1) {
entity.setSendTime(new Date());
}
this.groupChatPlanMapper.insert(entity); this.groupChatPlanMapper.insert(entity);
// 立即发送 // 立即发送
if (entity.getSendType() == 1) { if (entity.getSendType() == 1) {
this.sendMQ(entity.getPlanId()); this.sendMQ(entity.getPlanId());
}else { } else {
this.addTimer(entity.getPlanId(), entity.getSendTime(), 1); this.addOrDelTimer(entity.getPlanId(), entity.getSendTime(), 1);
} }
} else { } else {
this.groupChatPlanMapper.updateById(entity); this.groupChatPlanMapper.updateById(entity);
// 立即发送 // 立即发送
if (entity.getSendType() == 1) { if (entity.getSendType() == 1) {
this.sendMQ(entity.getPlanId()); this.sendMQ(entity.getPlanId());
}else { } else {
this.addTimer(entity.getPlanId(), entity.getSendTime(), 1); this.addOrDelTimer(entity.getPlanId(), entity.getSendTime(), 1);
} }
} }
} }
...@@ -144,6 +149,11 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService { ...@@ -144,6 +149,11 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
logger.info("计划不存在,planid={}", planId); logger.info("计划不存在,planid={}", planId);
return; return;
} }
if (plan.getSendFlag() == 2) {
logger.info("计划已执行过,planid={}", planId);
return;
}
this.groupChatPlanMapper.updateSendFlag(planId);
// 控制重复发送 // 控制重复发送
String[] staffIdList = plan.getStaffIdList().split(","); String[] staffIdList = plan.getStaffIdList().split(",");
String wxEnterpriseId = plan.getWxEnterpriseId(); String wxEnterpriseId = plan.getWxEnterpriseId();
...@@ -232,8 +242,8 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService { ...@@ -232,8 +242,8 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
@Override @Override
public void del(String clerkId, String clerkName, Long planId) { public void del(String clerkId, String clerkName, Long planId) {
this.groupChatPlanMapper.deleteById(planId,clerkId,clerkName) ; this.groupChatPlanMapper.deleteById(planId, clerkId, clerkName);
this.addTimer(planId, new Date(), 0); this.addOrDelTimer(planId, new Date(), 0);
} }
@Override @Override
...@@ -281,7 +291,7 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService { ...@@ -281,7 +291,7 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
return retPage; return retPage;
} }
public void addTimer(Long planId, Date sendTime, int status) { public void addOrDelTimer(Long planId, Date sendTime, int status) {
QuartzTaskDTO quartzTask = new QuartzTaskDTO(); QuartzTaskDTO quartzTask = new QuartzTaskDTO();
quartzTask.setTaskStatus(status); quartzTask.setTaskStatus(status);
String taskTimeInfo = this.getTaskTime(sendTime); String taskTimeInfo = this.getTaskTime(sendTime);
......
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
a. migrate_trainee_chat_cnt migrateTraineeChatCnt a. migrate_trainee_chat_cnt migrateTraineeChatCnt
from tab_haoban_group_chat_data a left join tab_haoban_staff b on a.staff_id = b.staff_id from tab_haoban_group_chat_data a left join tab_haoban_staff b on a.staff_id = b.staff_id
where a.wx_enterprise_id = #{wxEnterpriseId} where a.wx_enterprise_id = #{wxEnterpriseId}
and a.date >= #{startDate} and a.date <= #{endDate} and a.date >= #{startDate} and a.date <![CDATA[ <= ]]> #{endDate}
<if test="null != staffIdList and staffIdList.size > 0"> <if test="null != staffIdList and staffIdList.size > 0">
and a.staff_id in and a.staff_id in
<foreach collection="staffIdList" close=")" open="(" index="index" item="staffId" separator=","> <foreach collection="staffIdList" close=")" open="(" index="index" item="staffId" separator=",">
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
<result column="success_chat_count" property="successChatCount" /> <result column="success_chat_count" property="successChatCount" />
<result column="total_chat_count" property="totalChatCount" /> <result column="total_chat_count" property="totalChatCount" />
<result column="delete_flag" property="deleteFlag" /> <result column="delete_flag" property="deleteFlag" />
<result column="send_flag" property="sendFlag" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
plan_id, plan_id,
...@@ -51,7 +52,7 @@ ...@@ -51,7 +52,7 @@
send_count, send_count,
success_chat_count, success_chat_count,
total_chat_count , total_chat_count ,
wx_enterprise_id , enterprise_id wx_enterprise_id , enterprise_id , send_flag , delete_flag
</sql> </sql>
<!-- ===================== 新增 ======================== --> <!-- ===================== 新增 ======================== -->
<insert id="insert" <insert id="insert"
...@@ -78,7 +79,7 @@ ...@@ -78,7 +79,7 @@
staff_count, staff_count,
send_count, send_count,
success_chat_count, success_chat_count,
total_chat_count , wx_enterprise_id , enterprise_id , delete_flag total_chat_count , wx_enterprise_id , enterprise_id , delete_flag , send_flag
)VALUES( )VALUES(
#{planId}, #{planId},
#{name}, #{name},
...@@ -100,7 +101,7 @@ ...@@ -100,7 +101,7 @@
#{staffCount}, #{staffCount},
#{sendCount}, #{sendCount},
#{successChatCount}, #{successChatCount},
#{totalChatCount} , #{wxEnterpriseId} , #{enterpriseId} , 0 #{totalChatCount} , #{wxEnterpriseId} , #{enterpriseId} , 0 , 1
) )
]]> ]]>
</insert> </insert>
...@@ -112,6 +113,9 @@ ...@@ -112,6 +113,9 @@
#{clerkId} , modifierName = #{clerkName} WHERE plan_id = #{planId} #{clerkId} , modifierName = #{clerkName} WHERE plan_id = #{planId}
</update> </update>
<update id="updateSendFlag">
UPDATE tab_haoban_group_chat_plan SET send_flag = 2 , send_time = now() WHERE plan_id = #{planId}
</update>
<!-- ==================更新 ========== --> <!-- ==================更新 ========== -->
<update id="updateById" <update id="updateById"
......
package com.gic.haoban.manage.web.controller.chat; package com.gic.haoban.manage.web.controller.chat;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
...@@ -48,12 +50,23 @@ public class GroupChatPlanController { ...@@ -48,12 +50,23 @@ public class GroupChatPlanController {
@RequestMapping("del") @RequestMapping("del")
public RestResponse<Object> del(Long planId) { public RestResponse<Object> del(Long planId) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser(); WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
this.groupChatPlanApiService.del(loginUser.getClerkId(), loginUser.getClerkName() , planId); this.groupChatPlanApiService.del(loginUser.getClerkId(), loginUser.getClerkName(), planId);
return RestResponse.successResult(); return RestResponse.successResult();
} }
@RequestMapping("update") @RequestMapping("update")
public RestResponse<Object> update(@RequestBody GroupChatPlanDTO dto) { public RestResponse<Object> update(@RequestBody GroupChatPlanDTO dto) {
ServiceResponse<GroupChatPlanDTO> resp = this.groupChatPlanApiService.detail(dto.getPlanId());
GroupChatPlanDTO plan = resp.getResult();
if (null == plan) {
return RestResponse.failure("9999", "计划不存在");
}
if (plan.getSendType() == 1) {
return RestResponse.failure("9999", "已发送的不能编辑");
}
if (null != plan.getSendTime() && plan.getSendTime().before(new Date())) {
return RestResponse.failure("9999", "已发送的不能编辑");
}
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser(); WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
dto.setModifierId(loginUser.getClerkId()); dto.setModifierId(loginUser.getClerkId());
dto.setModifierName(loginUser.getClerkName()); dto.setModifierName(loginUser.getClerkName());
......
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