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
package com.gic.haoban.manage.api.dto.chat;
import java.io.Serializable ;
import java.io.Serializable;
import java.util.Date;
/**
......@@ -12,7 +12,7 @@ import java.util.Date;
* @Modify
* @CopyRight
*/
public class GroupChatDTO implements Serializable{
public class GroupChatDTO implements Serializable {
private static final long serialVersionUID = 13124020287100L;
......@@ -53,12 +53,21 @@ public class GroupChatDTO implements Serializable{
private String enterpriseId;
/**gic侧状态1可用,2不可用*/
private Integer gicFlag;
private String staffName ;
private String staffImage ;
private String originalStaffId ;
private Date offTime ;
private String staffName;
private String staffImage;
private String originalStaffId;
private Date offTime;
// 1已关联导购 0未关联导购
private int clerkRelationFlag = 0 ;
private int clerkRelationFlag = 0;
private int openConcatFlag = 0;
public int getOpenConcatFlag() {
return openConcatFlag;
}
public void setOpenConcatFlag(int openConcatFlag) {
this.openConcatFlag = openConcatFlag;
}
public int getClerkRelationFlag() {
return clerkRelationFlag;
......@@ -100,137 +109,155 @@ public class GroupChatDTO implements Serializable{
this.staffName = staffName;
}
public void setGroupChatId(Long groupChatId){
public void setGroupChatId(Long groupChatId) {
this.groupChatId = groupChatId;
}
public Long getGroupChatId(){
public Long getGroupChatId() {
return groupChatId;
}
public void setWxEnterpriseId(String wxEnterpriseId){
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getWxEnterpriseId(){
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setName(String name){
public void setName(String name) {
this.name = name;
}
public String getName(){
public String getName() {
return name;
}
public void setStaffId(String staffId){
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getStaffId(){
public String getStaffId() {
return staffId;
}
public void setWxChatId(String wxChatId){
public void setWxChatId(String wxChatId) {
this.wxChatId = wxChatId;
}
public String getWxChatId(){
public String getWxChatId() {
return wxChatId;
}
public void setChatAddTime(java.util.Date chatAddTime){
public void setChatAddTime(java.util.Date chatAddTime) {
this.chatAddTime = chatAddTime;
}
public java.util.Date getChatAddTime(){
public java.util.Date getChatAddTime() {
return chatAddTime;
}
public void setChatDissolveTime(java.util.Date chatDissolveTime){
public void setChatDissolveTime(java.util.Date chatDissolveTime) {
this.chatDissolveTime = chatDissolveTime;
}
public java.util.Date getChatDissolveTime(){
public java.util.Date getChatDissolveTime() {
return chatDissolveTime;
}
public void setChatNotice(String chatNotice){
public void setChatNotice(String chatNotice) {
this.chatNotice = chatNotice;
}
public String getChatNotice(){
public String getChatNotice() {
return chatNotice;
}
public void setChatStatus(Integer chatStatus){
public void setChatStatus(Integer chatStatus) {
this.chatStatus = chatStatus;
}
public Integer getChatStatus(){
public Integer getChatStatus() {
return chatStatus;
}
public void setCreateTime(java.util.Date createTime){
public void setCreateTime(java.util.Date createTime) {
this.createTime = createTime;
}
public java.util.Date getCreateTime(){
public java.util.Date getCreateTime() {
return createTime;
}
public void setUpdateTime(java.util.Date updateTime){
public void setUpdateTime(java.util.Date updateTime) {
this.updateTime = updateTime;
}
public java.util.Date getUpdateTime(){
public java.util.Date getUpdateTime() {
return updateTime;
}
public void setDeleteFlag(Integer deleteFlag){
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public Integer getDeleteFlag(){
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setTotalCount(Integer totalCount){
public void setTotalCount(Integer totalCount) {
this.totalCount = totalCount;
}
public Integer getTotalCount(){
public Integer getTotalCount() {
return totalCount;
}
public void setTotalMemberCount(Integer totalMemberCount){
public void setTotalMemberCount(Integer totalMemberCount) {
this.totalMemberCount = totalMemberCount;
}
public Integer getTotalMemberCount(){
public Integer getTotalMemberCount() {
return totalMemberCount;
}
public void setAddMemberCount(Integer addMemberCount){
public void setAddMemberCount(Integer addMemberCount) {
this.addMemberCount = addMemberCount;
}
public Integer getAddMemberCount(){
public Integer getAddMemberCount() {
return addMemberCount;
}
public void setAddCount(Integer addCount){
public void setAddCount(Integer addCount) {
this.addCount = addCount;
}
public Integer getAddCount(){
public Integer getAddCount() {
return addCount;
}
public void setQuitCount(Integer quitCount){
public void setQuitCount(Integer quitCount) {
this.quitCount = quitCount;
}
public Integer getQuitCount(){
public Integer getQuitCount() {
return quitCount;
}
public void setQuitMemberCount(Integer quitMemberCount){
public void setQuitMemberCount(Integer quitMemberCount) {
this.quitMemberCount = quitMemberCount;
}
public Integer getQuitMemberCount(){
public Integer getQuitMemberCount() {
return quitMemberCount;
}
public void setEnterpriseId(String enterpriseId){
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getEnterpriseId(){
public String getEnterpriseId() {
return enterpriseId;
}
......
......@@ -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,6 +40,14 @@ public class GroupChatPlanOwnerLogDTO implements Serializable{
private Date expireDate ;
private Date sendTime ;
public String getPlanName() {
return planName;
}
public void setPlanName(String planName) {
this.planName = planName;
}
public Date getSendTime() {
return sendTime;
}
......
......@@ -22,6 +22,15 @@ 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;
......@@ -41,15 +42,16 @@ 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;
......@@ -20,6 +21,11 @@ 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()
......@@ -136,8 +137,63 @@ public class GroupChatPlanOwnerLogServiceImpl implements GroupChatPlanOwnerLogSe
@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;
......@@ -88,9 +89,19 @@ public class GroupChatPlanApiServiceImpl implements GroupChatPlanApiService {
}
@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