Commit 36902ef5 by 徐高华

parent a94dc9ba
package com.gic.haoban.manage.api.dto.chat;
import java.io.Serializable;
/**
*
* @ClassName: TabHaobanGroupChatPlanOwnerLog
* @Description: TODO
* @Author 徐高华
* @Date 2022年11月25日 15:29:51
* @Modify
* @CopyRight
*/
public class ChatOwnerTotalDTO implements Serializable {
private static final long serialVersionUID = 21697825515700L;
private Long planId;
private String planName;
private java.util.Date startTime;
private java.util.Date endTime;
private int sendCount;
private int notSendCount;
public Long getPlanId() {
return planId;
}
public String getPlanName() {
return planName;
}
public java.util.Date getStartTime() {
return startTime;
}
public java.util.Date getEndTime() {
return endTime;
}
public int getSendCount() {
return sendCount;
}
public int getNotSendCount() {
return notSendCount;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public void setPlanName(String planName) {
this.planName = planName;
}
public void setStartTime(java.util.Date startTime) {
this.startTime = startTime;
}
public void setEndTime(java.util.Date endTime) {
this.endTime = endTime;
}
public void setSendCount(int sendCount) {
this.sendCount = sendCount;
}
public void setNotSendCount(int notSendCount) {
this.notSendCount = notSendCount;
}
}
\ No newline at end of file
......@@ -18,6 +18,7 @@ public class GroupChatPlanOwnerLogDTO implements Serializable{
private Long ownerLogId;
private Long planId;
private String planName ;
private String wxEnterpriseId;
private String enterpriseId;
private String staffId;
......@@ -39,7 +40,15 @@ public class GroupChatPlanOwnerLogDTO implements Serializable{
private Date expireDate ;
private Date sendTime ;
public Date getSendTime() {
public String getPlanName() {
return planName;
}
public void setPlanName(String planName) {
this.planName = planName;
}
public Date getSendTime() {
return sendTime;
}
......
......@@ -22,7 +22,16 @@ public class GroupChatPlanSearchQDTO implements Serializable {
private Date startDate;
private Date endDate;
private String clerkId ;
private String storeId ;
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getChatName() {
return chatName;
}
......
......@@ -3,6 +3,7 @@ package com.gic.haoban.manage.api.service.chat;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.chat.ChatOwnerTotalDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanLogDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO;
......@@ -40,16 +41,17 @@ public interface GroupChatPlanApiService {
public ServiceResponse<Page<GroupChatPlanOwnerLogDTO>> listOwnerLogPage(Long planId, GroupChatPlanSearchQDTO qdto,
BasePageInfo basePageInfo);
public ServiceResponse<Page<GroupChatPlanOwnerLogDTO>> listOwnerLogPageForWxa(Long planId, GroupChatPlanSearchQDTO qdto,
public ServiceResponse<Page<GroupChatPlanOwnerLogDTO>> listOwnerLogPageForWxa(GroupChatPlanSearchQDTO qdto,
BasePageInfo basePageInfo);
public ServiceResponse<Page<ChatOwnerTotalDTO>> listOwnerLogPageForWxaTotal(GroupChatPlanSearchQDTO qdto,
BasePageInfo basePageInfo);
public ServiceResponse<Page<GroupChatPlanLogDTO>> listLogPage(Long planId, GroupChatPlanSearchQDTO qdto,
BasePageInfo basePageInfo);
public ServiceResponse<Void> del(String clerkId, String clerkName, Long planId);
public ServiceResponse<Void> stop(String clerkId, String clerkName, Long planId) ;
public ServiceResponse<Void> stop(String clerkId, String clerkName, Long planId);
}
......@@ -5,6 +5,7 @@ import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.gic.haoban.manage.api.dto.chat.ChatOwnerTotalDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatPlanOwnerLog;
......@@ -30,4 +31,8 @@ public interface GroupChatPlanOwnerLogMapper {
public List<GroupChatPlanOwnerLogDTO> listPage(GroupChatPlanSearchQDTO qdto);
public List<TabGroupChatPlanOwnerLog> listForTimer();
public List<ChatOwnerTotalDTO> listOwnerLogPageForWxaTotal(GroupChatPlanSearchQDTO qdto);
public List<GroupChatPlanOwnerLogDTO> listOwnerLogPageForWxa(GroupChatPlanSearchQDTO qdto);
}
\ No newline at end of file
......@@ -5,6 +5,7 @@ import java.util.List;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.haoban.manage.api.dto.chat.ChatOwnerTotalDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatPlanOwnerLog;
......@@ -19,7 +20,12 @@ public interface GroupChatPlanOwnerLogService {
public Page<GroupChatPlanOwnerLogDTO> listPage(Long planId, GroupChatPlanSearchQDTO qdto,
BasePageInfo basePageInfo);
List<TabGroupChatPlanOwnerLog> listForTimer() ;
List<TabGroupChatPlanOwnerLog> listForTimer();
public Page<ChatOwnerTotalDTO> listOwnerLogPageForWxaTotal(GroupChatPlanSearchQDTO qdto, BasePageInfo basePageInfo);
public Page<GroupChatPlanOwnerLogDTO> listOwnerLogPageForWxa(GroupChatPlanSearchQDTO qdto,
BasePageInfo basePageInfo);
}
\ No newline at end of file
......@@ -23,6 +23,7 @@ import com.gic.commons.util.UniqueIdUtils;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.dto.chat.ChatOwnerTotalDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO;
import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatPlanOwnerLogMapper;
......@@ -85,9 +86,9 @@ public class GroupChatPlanOwnerLogServiceImpl implements GroupChatPlanOwnerLogSe
List<String> storeIdList = list.stream().filter(dto -> StringUtils.isNotBlank(dto.getStoreId()))
.map(dto -> dto.getStoreId()).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(storeIdList)) {
String[] arr = new String[storeIdList.size()] ;
for(int i=0;i<storeIdList.size();i++) {
arr[i] = storeIdList.get(i) ;
String[] arr = new String[storeIdList.size()];
for (int i = 0; i < storeIdList.size(); i++) {
arr[i] = storeIdList.get(i);
}
List<StoreDTO> storeList = this.storeService.getStores(arr);
Map<String, StoreDTO> map = storeList.stream()
......@@ -133,11 +134,66 @@ public class GroupChatPlanOwnerLogServiceImpl implements GroupChatPlanOwnerLogSe
}
this.groupChatPlanOwnerLogMapper.insert(log);
}
@Override
public List<TabGroupChatPlanOwnerLog> listForTimer() {
List<TabGroupChatPlanOwnerLog> list = this.groupChatPlanOwnerLogMapper.listForTimer() ;
List<TabGroupChatPlanOwnerLog> list = this.groupChatPlanOwnerLogMapper.listForTimer();
return list;
}
@Override
public Page<ChatOwnerTotalDTO> listOwnerLogPageForWxaTotal(GroupChatPlanSearchQDTO qdto,
BasePageInfo basePageInfo) {
PageHelper.startPage(basePageInfo);
String clerkId = qdto.getClerkId();
ClerkDTO clerk = this.clerkService.getclerkById(clerkId);
int clerkType = clerk.getClerkType();
String storeId = null;
if (clerkType == 1) {
storeId = clerk.getStoreId();
clerkId = null;
}
qdto.setStoreId(storeId);
List<ChatOwnerTotalDTO> list = this.groupChatPlanOwnerLogMapper.listOwnerLogPageForWxaTotal(qdto);
Page<ChatOwnerTotalDTO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list, ChatOwnerTotalDTO.class);
return retPage;
}
@Override
public Page<GroupChatPlanOwnerLogDTO> listOwnerLogPageForWxa(GroupChatPlanSearchQDTO qdto,
BasePageInfo basePageInfo) {
PageHelper.startPage(basePageInfo);
String clerkId = qdto.getClerkId();
ClerkDTO clerk = this.clerkService.getclerkById(clerkId);
int clerkType = clerk.getClerkType();
String storeId = null;
if (clerkType == 1) {
storeId = clerk.getStoreId();
clerkId = null;
}
qdto.setStoreId(storeId);
List<GroupChatPlanOwnerLogDTO> list = this.groupChatPlanOwnerLogMapper.listOwnerLogPageForWxa(qdto);
Page<GroupChatPlanOwnerLogDTO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list,
GroupChatPlanOwnerLogDTO.class);
if (CollectionUtils.isNotEmpty(list)) {
Set<String> clerkIdList = list.stream().filter(dto -> StringUtils.isNotBlank(dto.getClerkId()))
.map(dto -> dto.getClerkId()).collect(Collectors.toSet());
if (CollectionUtils.isNotEmpty(clerkIdList)) {
List<ClerkDTO> clerkList = this.clerkService.getClerkByClerkIds(clerkIdList);
if (CollectionUtils.isNotEmpty(clerkList)) {
Map<String, ClerkDTO> map = clerkList.stream()
.collect(Collectors.toMap(ClerkDTO::getClerkId, dto -> dto, (k1, k2) -> k1));
list.forEach(dto -> {
String clerkIdTemp = dto.getClerkId();
if (StringUtils.isNotBlank(clerkIdTemp) && null != map.get(clerkIdTemp)) {
dto.setClerkCode(map.get(clerkIdTemp).getClerkCode());
dto.setClerkName(map.get(clerkIdTemp).getClerkName());
}
});
}
}
}
return retPage;
}
}
\ No newline at end of file
......@@ -8,6 +8,7 @@ import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.haoban.manage.api.dto.chat.ChatOwnerTotalDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanLogDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO;
......@@ -80,17 +81,27 @@ public class GroupChatPlanApiServiceImpl implements GroupChatPlanApiService {
this.groupChatPlanService.del(clerkId, clerkName, planId);
return ServiceResponse.success();
}
@Override
public ServiceResponse<Void> stop(String clerkId, String clerkName, Long planId) {
this.groupChatPlanService.stop(clerkId, clerkName, planId);
return ServiceResponse.success();
}
@Override
public ServiceResponse<Page<GroupChatPlanOwnerLogDTO>> listOwnerLogPageForWxa(Long planId,
GroupChatPlanSearchQDTO qdto, BasePageInfo basePageInfo) {
return null;
public ServiceResponse<Page<GroupChatPlanOwnerLogDTO>> listOwnerLogPageForWxa(GroupChatPlanSearchQDTO qdto,
BasePageInfo basePageInfo) {
Page<GroupChatPlanOwnerLogDTO> page = this.groupChatPlanOwnerLogService.listOwnerLogPageForWxa(qdto,
basePageInfo);
return ServiceResponse.success(page);
}
@Override
public ServiceResponse<Page<ChatOwnerTotalDTO>> listOwnerLogPageForWxaTotal(GroupChatPlanSearchQDTO qdto,
BasePageInfo basePageInfo) {
Page<ChatOwnerTotalDTO> page = this.groupChatPlanOwnerLogService.listOwnerLogPageForWxaTotal(qdto,
basePageInfo);
return ServiceResponse.success(page);
}
}
......@@ -104,4 +104,50 @@
where
a.wx_enterprise_id = #{wxEnterpriseId} and a.plan_id = #{planId}
</select>
<select id="listOwnerLogPageForWxaTotal" parameterType="com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO" resultType="com.gic.haoban.manage.api.dto.chat.ChatOwnerTotalDTO">
select
b.name planName ,
b.start_time startTime ,
b.end_time end_time ,
<!-- 已发送 -->
SUM(CASE a.send_status WHEN 2 THEN 1 ELSE 0 END ) sendCount,
<!-- 待发送 -->
SUM(CASE a.send_status WHEN 1 THEN 1 ELSE 0 END ) notSendCount
from tab_haoban_group_chat_plan_owner_log a left join tab_haoban_group_chat_plan b on a.plan_id = b.plan_id
where
a.wx_enterprise_id = #{wxEnterpriseId}
<if test="null != storeId">
and a.store_id = #{storeId}
</if>
<if test="null != clerkId">
and a.clerk_id = #{clerkId}
</if>
group by b.plan_id
</select>
<select id="listOwnerLogPageForWxa" parameterType="com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO" resultType="com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO">
select
b.name planName ,
a.staff_id staffId ,
a.clerk_id clerkId ,
a.store_id storeId ,
a.send_status sendStatus ,
a.send_count sendCount ,
a.send_time sendTime ,
a.create_time createTime ,
a.expire_date expireDate ,
a.done_flag doneFlag ,
a.msgid msgid
from tab_haoban_group_chat_plan_owner_log a left join tab_haoban_group_chat_plan b on a.plan_id = b.plan_id
where a.wx_enterprise_id = #{wxEnterpriseId} and a.plan_id = #{planId}
<if test="null != storeId">
and a.store_id = #{storeId}
</if>
<if test="null != clerkId">
and a.clerk_id = #{clerkId}
</if>
</select>
</mapper>
\ No newline at end of file
package com.gic.haoban.manage.web.controller.haoban;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.haoban.manage.api.dto.chat.ChatOwnerTotalDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO;
import com.gic.haoban.manage.api.service.chat.GroupChatPlanApiService;
/**
*
* @ClassName: GroupChatPlanController
* @Description: 群群发计划
* @author xugh
* @date 2022年11月26日 上午9:32:56
*
*/
@RestController
@RequestMapping("/chat/plan")
public class GroupChatPlanController {
private static org.apache.logging.log4j.Logger logger = LogManager.getLogger(GroupChatPlanController.class);
@Autowired
private GroupChatPlanApiService groupChatPlanApiService;
@RequestMapping("total-list")
public RestResponse<Object> totalList(Long planId, String clerkId, String wxEnterpriseId, String enterpriseId,
BasePageInfo basePageInfo) {
GroupChatPlanSearchQDTO qdto = new GroupChatPlanSearchQDTO();
qdto.setWxEnterpriseId(wxEnterpriseId);
qdto.setEnterpriseId(enterpriseId);
qdto.setClerkId(clerkId);
qdto.setPlanId(planId);
ServiceResponse<Page<ChatOwnerTotalDTO>> page = this.groupChatPlanApiService.listOwnerLogPageForWxaTotal(qdto,
basePageInfo);
return RestResponse.successResult(page.getResult());
}
@RequestMapping("owner-list")
public RestResponse<Object> ownerList(Long planId, String clerkId, String wxEnterpriseId, String enterpriseId,
BasePageInfo basePageInfo) {
GroupChatPlanSearchQDTO qdto = new GroupChatPlanSearchQDTO();
qdto.setWxEnterpriseId(wxEnterpriseId);
qdto.setEnterpriseId(enterpriseId);
qdto.setClerkId(clerkId);
qdto.setPlanId(planId);
ServiceResponse<Page<GroupChatPlanOwnerLogDTO>> page = this.groupChatPlanApiService.listOwnerLogPageForWxa(qdto,
basePageInfo);
return RestResponse.successResult(page.getResult());
}
@RequestMapping("owner-do-list")
public RestResponse<Object> ownerDoList(Long planId, String clerkId, String wxEnterpriseId, String enterpriseId,
BasePageInfo basePageInfo) {
GroupChatPlanSearchQDTO qdto = new GroupChatPlanSearchQDTO();
qdto.setWxEnterpriseId(wxEnterpriseId);
qdto.setEnterpriseId(enterpriseId);
qdto.setClerkId(clerkId);
qdto.setPlanId(planId);
ServiceResponse<Page<GroupChatPlanOwnerLogDTO>> page = this.groupChatPlanApiService.listOwnerLogPage(planId,
qdto, basePageInfo);
return RestResponse.successResult(page.getResult());
}
}
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