Commit f2e85283 by 徐高华

群发详情

parent f9d2d5bb
package com.gic.haoban.manage.api.dto.chat;
import java.io.Serializable ;
import java.io.Serializable;
/**
*
......@@ -11,91 +11,190 @@ import java.io.Serializable ;
* @Modify
* @CopyRight
*/
public class GroupChatPlanLogDTO implements Serializable{
private static final long serialVersionUID = 21625366526300L;
private Long logId;
private Long planId;
private String wxEnterpriseId;
/**群id*/
private Long groupChatId;
private Integer sendStatus;
/**群主记录id*/
private Long ownLogId;
private String remark;
private java.util.Date sendTime;
private java.util.Date createTime;
private java.util.Date updateTime;
public void setLogId(Long logId){
this.logId = logId;
}
public Long getLogId(){
return logId;
}
public void setPlanId(Long planId){
this.planId = planId;
}
public Long getPlanId(){
return planId;
}
public void setWxEnterpriseId(String wxEnterpriseId){
this.wxEnterpriseId = wxEnterpriseId;
}
public String getWxEnterpriseId(){
return wxEnterpriseId;
}
public void setGroupChatId(Long groupChatId){
this.groupChatId = groupChatId;
}
public Long getGroupChatId(){
return groupChatId;
}
public void setSendStatus(Integer sendStatus){
this.sendStatus = sendStatus;
}
public Integer getSendStatus(){
return sendStatus;
}
public void setOwnLogId(Long ownLogId){
this.ownLogId = ownLogId;
}
public Long getOwnLogId(){
return ownLogId;
}
public void setRemark(String remark){
this.remark = remark;
}
public String getRemark(){
return remark;
}
public void setSendTime(java.util.Date sendTime){
this.sendTime = sendTime;
}
public java.util.Date getSendTime(){
return sendTime;
}
public void setCreateTime(java.util.Date createTime){
this.createTime = createTime;
}
public java.util.Date getCreateTime(){
return createTime;
}
public void setUpdateTime(java.util.Date updateTime){
this.updateTime = updateTime;
}
public java.util.Date getUpdateTime(){
return updateTime;
}
public class GroupChatPlanLogDTO implements Serializable {
private static final long serialVersionUID = 21625366526300L;
private Long logId;
private Long planId;
private String staffId;
private String staffName;
private String clerkId;
private String clerkName;
private String clerkCode;
private String storeCode;
private String storeName;
private String storeId;
private String wxEnterpriseId;
/**群id*/
private Long groupChatId;
private String chatName;
private Integer chatTotalCount;
private Integer sendStatus;
/**群主记录id*/
private Long ownLogId;
private String remark;
private java.util.Date sendTime;
private java.util.Date createTime;
private java.util.Date updateTime;
public Integer getChatTotalCount() {
return chatTotalCount;
}
public void setChatTotalCount(Integer chatTotalCount) {
this.chatTotalCount = chatTotalCount;
}
public String getChatName() {
return chatName;
}
public void setChatName(String chatName) {
this.chatName = chatName;
}
public String getStaffId() {
return staffId;
}
public String getStaffName() {
return staffName;
}
public String getClerkId() {
return clerkId;
}
public String getClerkName() {
return clerkName;
}
public String getClerkCode() {
return clerkCode;
}
public String getStoreCode() {
return storeCode;
}
public String getStoreName() {
return storeName;
}
public String getStoreId() {
return storeId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
public void setClerkCode(String clerkCode) {
this.clerkCode = clerkCode;
}
public void setStoreCode(String storeCode) {
this.storeCode = storeCode;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public void setLogId(Long logId) {
this.logId = logId;
}
public Long getLogId() {
return logId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public Long getPlanId() {
return planId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setGroupChatId(Long groupChatId) {
this.groupChatId = groupChatId;
}
public Long getGroupChatId() {
return groupChatId;
}
public void setSendStatus(Integer sendStatus) {
this.sendStatus = sendStatus;
}
public Integer getSendStatus() {
return sendStatus;
}
public void setOwnLogId(Long ownLogId) {
this.ownLogId = ownLogId;
}
public Long getOwnLogId() {
return ownLogId;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getRemark() {
return remark;
}
public void setSendTime(java.util.Date sendTime) {
this.sendTime = sendTime;
}
public java.util.Date getSendTime() {
return sendTime;
}
public void setCreateTime(java.util.Date createTime) {
this.createTime = createTime;
}
public java.util.Date getCreateTime() {
return createTime;
}
public void setUpdateTime(java.util.Date updateTime) {
this.updateTime = updateTime;
}
public java.util.Date getUpdateTime() {
return updateTime;
}
}
\ No newline at end of file
......@@ -21,6 +21,11 @@ public class GroupChatPlanOwnerLogDTO implements Serializable{
private String wxEnterpriseId;
private String enterpriseId;
private String staffId;
private String staffName ;
private String clerkName ;
private String clerkCode ;
private String storeName ;
private String storeCode ;
private String storeId;
private String clerkId;
/**1已发送 0待发送*/
......@@ -33,7 +38,47 @@ public class GroupChatPlanOwnerLogDTO implements Serializable{
private String msgid ;
private Date expireDate ;
public Date getExpireDate() {
public String getStaffName() {
return staffName;
}
public String getClerkName() {
return clerkName;
}
public String getClerkCode() {
return clerkCode;
}
public String getStoreName() {
return storeName;
}
public String getStoreCode() {
return storeCode;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
public void setClerkCode(String clerkCode) {
this.clerkCode = clerkCode;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public void setStoreCode(String storeCode) {
this.storeCode = storeCode;
}
public Date getExpireDate() {
return expireDate;
}
......
......@@ -2,6 +2,7 @@ package com.gic.haoban.manage.service.dao.mapper.chat;
import java.util.Date;
import java.util.List;
import java.util.Set;
import org.apache.ibatis.annotations.Param;
......@@ -36,7 +37,7 @@ public interface GroupChatMapper {
public TabGroupChat selectById(Long groupChatId);
public List<TabGroupChat> listByIdList(@Param("idList") List<Long> idList);
public List<TabGroupChat> listByIdSet(@Param("idList") Set<Long> idList);
public TabGroupChat selectByWxChatId(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("wxChatId") String wxChatId);
......
package com.gic.haoban.manage.service.service.chat.impl;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors;
......@@ -95,7 +96,7 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
dto.setChatHmId(hmid);
dto.setChatHmCode("HM10" + hmid);
List<Long> chatidList = dto.getChatIdList() ;
List<TabGroupChat> chatList = this.groupChatMapper.listByIdList(chatidList);
List<TabGroupChat> chatList = this.groupChatMapper.listByIdSet(new HashSet<>(chatidList));
List<String> wxChatidList = chatList.stream().map(item -> item.getWxChatId()).collect(Collectors.toList());
logger.info("企微群id={}", wxChatidList);
AddJoinWayDTO joinDTO = new AddJoinWayDTO();
......
......@@ -2,7 +2,12 @@ package com.gic.haoban.manage.service.service.chat.impl;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -10,9 +15,13 @@ import org.springframework.stereotype.Service;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
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.GroupChatPlanOwnerLogDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO;
......@@ -35,28 +44,65 @@ public class GroupChatPlanOwnerLogServiceImpl implements GroupChatPlanOwnerLogSe
private StaffClerkRelationService staffClerkRelationService;
@Autowired
private ClerkMainStoreRelatedService clerkMainStoreRelatedService;
@Autowired
private ClerkService clerkService;
@Autowired
private StoreService storeService;
public TabGroupChatPlanOwnerLog getById(Long ownerLogId){
TabGroupChatPlanOwnerLog log = this.groupChatPlanOwnerLogMapper.selectById(ownerLogId) ;
return log ;
public TabGroupChatPlanOwnerLog getById(Long ownerLogId) {
TabGroupChatPlanOwnerLog log = this.groupChatPlanOwnerLogMapper.selectById(ownerLogId);
return log;
}
@Override
public void updateSendCount(Long id, int sendCount, Date sendTime) {
this.groupChatPlanOwnerLogMapper.updateSendCount(id,sendCount,sendTime);
this.groupChatPlanOwnerLogMapper.updateSendCount(id, sendCount, sendTime);
}
@Override
public Page<GroupChatPlanOwnerLogDTO> listPage(Long planId, GroupChatPlanSearchQDTO qdto,
BasePageInfo basePageInfo) {
PageHelper.startPage(basePageInfo);
qdto.setPlanId(planId);
List<GroupChatPlanOwnerLogDTO> list = this.groupChatPlanOwnerLogMapper.listPage(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 clerkId = dto.getClerkId();
if (StringUtils.isNotBlank(clerkId) && null != map.get(clerkId)) {
dto.setClerkCode(map.get(clerkId).getClerkCode());
dto.setClerkName(map.get(clerkId).getClerkName());
}
});
}
}
List<String> storeIdList = list.stream().filter(dto -> StringUtils.isNotBlank(dto.getStoreId()))
.map(dto -> dto.getStoreId()).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(storeIdList)) {
String[] arr = (String[]) storeIdList.toArray();
List<StoreDTO> storeList = this.storeService.getStores(arr);
Map<String, StoreDTO> map = storeList.stream()
.collect(Collectors.toMap(StoreDTO::getStoreId, dto -> dto, (k1, k2) -> k1));
list.forEach(dto -> {
String storeId = dto.getStoreId();
if (StringUtils.isNotBlank(storeId) && null != map.get(storeId)) {
dto.setStoreCode(map.get(storeId).getStoreCode());
dto.setStoreName(map.get(storeId).getStoreName());
}
});
}
}
Page<GroupChatPlanOwnerLogDTO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list,
GroupChatPlanOwnerLogDTO.class);
return retPage;
}
@Override
public void save(GroupChatPlanOwnerLogDTO dto) {
TabGroupChatPlanOwnerLog log = EntityUtil.changeEntityByJSON(TabGroupChatPlanOwnerLog.class, dto);
......
......@@ -3,8 +3,12 @@ package com.gic.haoban.manage.service.service.chat.impl;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -16,10 +20,14 @@ import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.JSONResponse;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.DateUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
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.WxEnterpriseQwDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanLogDTO;
......@@ -27,9 +35,11 @@ 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.config.Config;
import com.gic.haoban.manage.service.dao.mapper.StaffMapper;
import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatMapper;
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.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.chat.TabGroupChat;
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.TabGroupChatPlanOwnerLog;
......@@ -67,6 +77,12 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
private StaffMapper staffMapper;
@Autowired
private GroupChatService groupChatService;
@Autowired
private ClerkService clerkService;
@Autowired
private StoreService storeService;
@Autowired
private GroupChatMapper groupChatMapper;
@Override
public void save(GroupChatPlanDTO dto) {
......@@ -185,12 +201,60 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
}
}
}
@Override
public Page<GroupChatPlanLogDTO> listLogPage(GroupChatPlanSearchQDTO qdto, BasePageInfo basePageInfo) {
PageHelper.startPage(basePageInfo);
List<GroupChatPlanLogDTO> list = this.groupChatPlanLogMapper.listPlanLog(qdto);
Page<GroupChatPlanLogDTO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list, GroupChatPlanLogDTO.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 clerkId = dto.getClerkId();
if (StringUtils.isNotBlank(clerkId) && null != map.get(clerkId)) {
dto.setClerkCode(map.get(clerkId).getClerkCode());
dto.setClerkName(map.get(clerkId).getClerkName());
}
});
}
}
List<String> storeIdList = list.stream().filter(dto -> StringUtils.isNotBlank(dto.getStoreId()))
.map(dto -> dto.getStoreId()).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(storeIdList)) {
String[] arr = (String[]) storeIdList.toArray();
List<StoreDTO> storeList = this.storeService.getStores(arr);
Map<String, StoreDTO> map = storeList.stream()
.collect(Collectors.toMap(StoreDTO::getStoreId, dto -> dto, (k1, k2) -> k1));
list.forEach(dto -> {
String storeId = dto.getStoreId();
if (StringUtils.isNotBlank(storeId) && null != map.get(storeId)) {
dto.setStoreCode(map.get(storeId).getStoreCode());
dto.setStoreName(map.get(storeId).getStoreName());
}
});
}
Set<Long> groupChatIdSet = list.stream().map(dto -> dto.getGroupChatId()).collect(Collectors.toSet());
List<TabGroupChat> chatList = this.groupChatMapper.listByIdSet(groupChatIdSet);
if (CollectionUtils.isNotEmpty(chatList)) {
Map<Long, TabGroupChat> map = chatList.stream()
.collect(Collectors.toMap(TabGroupChat::getGroupChatId, dto -> dto, (k1, k2) -> k1));
list.forEach(dto -> {
Long groupChatId = dto.getGroupChatId();
if (null != groupChatId && null != map.get(groupChatId)) {
dto.setChatName(map.get(groupChatId).getName());
dto.setChatTotalCount(map.get(groupChatId).getTotalCount());
}
});
}
}
Page<GroupChatPlanLogDTO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list,
GroupChatPlanLogDTO.class);
return retPage;
}
......
......@@ -65,10 +65,17 @@
</insert>
<select id="listPlanLog" parameterType="com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO" resultType="com.gic.haoban.manage.api.dto.chat.GroupChatPlanLogDTO">
select
group_chat_id groupChatId,
send_status sendStatus,
create_time createTime
from tab_haoban_group_chat_plan_log
SELECT b.clerk_id clerkId ,
b.store_id storeId ,
b.staff_id staffId ,
c.staff_name staffName ,
a.group_chat_id groupChatId,
a.send_status sendStatus,
a.send_time sendTime ,
a.create_time createTime
FROM tab_haoban_group_chat_plan_log a
LEFT JOIN tab_haoban_group_chat_plan_owner_log b ON a.`own_log_id` = b.`owner_log_id`
LEFT JOIN tab_haoban_staff c ON b.`staff_id` = c.`staff_id`
where a.wx_enterprise_id = #{wxEnterpriseId} and plan_id = #{planId}
</select>
</mapper>
\ No newline at end of file
......@@ -83,6 +83,20 @@
</select>
<select id="listPage" parameterType="com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO" resultType="com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO">
select * from tab_haoban_group_chat_plan_owner_log
select
b.staff_name staffName ,
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_staff b on a.staff_id = b.staff_id
where
a.wx_enterprise_id = #{wxEnterpriseId} and a.plan_id = #{planId}
</select>
</mapper>
\ No newline at end of file
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