Commit 03fd4779 by 徐高华

企微托管

parent b97d7505
package com.gic.haoban.manage.web.controller.open;
import com.alibaba.fastjson.JSON;
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.util.EntityUtil;
import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.haoban.manage.web.vo.open.OpenQwAlarmLogExcelVO;
import com.gic.haoban.task.manage.api.dto.open.OpenQwAlarmLogDTO;
import com.gic.haoban.task.manage.api.qdto.open.AlarmWordsLogQDTO;
import com.gic.haoban.task.manage.api.service.OpenQwApiService;
import com.gic.web.common.download.DownloadHandlerAbstract;
import com.gic.web.common.download.context.Context;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
@Service
public class OpenAlarmWordsLogExcelHandler extends DownloadHandlerAbstract<OpenQwAlarmLogExcelVO> {
@Autowired
private OpenQwApiService openQwApiService ;
@Autowired
private EnterpriseService enterpriseService ;
@Override
public List<OpenQwAlarmLogExcelVO> getData(Context context, String json, Integer currentPage) {
AlarmWordsLogQDTO qdto = JSON.parseObject(json, AlarmWordsLogQDTO.class);
BasePageInfo pageInfo = new BasePageInfo() ;
pageInfo.setPageSize(this.getPageSize());
pageInfo.setPageNum(currentPage);
ServiceResponse<Page<OpenQwAlarmLogDTO>> page = this.openQwApiService.alarmWordsLogPage(qdto, pageInfo);
List<OpenQwAlarmLogExcelVO> voList = new ArrayList<>();
if (null != page && CollectionUtils.isNotEmpty(page.getResult().getResult())) {
EnterpriseDTO en = this.enterpriseService.getEnterpriseById(qdto.getEnterpriseId()) ;
for(OpenQwAlarmLogDTO item : page.getResult().getResult()) {
OpenQwAlarmLogExcelVO vo = EntityUtil.changeEntityByJSON(OpenQwAlarmLogExcelVO.class,item) ;
if(item.getChatType()==1) {
}else {
}
voList.add(vo) ;
}
}
return voList;
}
@Override
public List<String> getColumnNames() {
return Arrays.asList("成员姓名", "导购姓名","导购code","导购所属门店名称","导购所属门店code","会话类型","客户姓名","客户昵称","客户手机号","群名称","敏感词","会话内容","会话时间");
}
@Override
public LinkedHashMap<String, List<String>> doubleColumnNames() {
return null;
}
@Override
public List<String> getColumns() {
return Arrays.asList("staffName", "clerkName", "clerkCode", "storeName","storeCode", "chatTypeExcel","memberName","memberNick","memberPhone","groupChatName","alarmWords","content","createTimeExcel");
}
@Override
public Integer getPageSize() {
return 1000 ;
}
}
......@@ -28,10 +28,6 @@ public class OpenStaffExcelHandler extends DownloadHandlerAbstract<OpenStaffExce
@Autowired
private OpenStaffApiService openStaffApiService ;
@Autowired
private StaffApiService staffApiService ;
@Autowired
private StaffClerkRelationApiService staffClerkRelationApiService ;
@Autowired
private EnterpriseService enterpriseService ;
@Override
......@@ -78,7 +74,7 @@ public class OpenStaffExcelHandler extends DownloadHandlerAbstract<OpenStaffExce
@Override
public List<String> getColumnNames() {
return Arrays.asList("成员姓名", "成员code","托管状态","关联导购姓名","关联导购code","关联门店姓名","关联门店code","所属商户","最近托管授权时间","新增时间");
return Arrays.asList("成员姓名", "托管状态","关联导购姓名","关联导购code","关联门店姓名","关联门店code","所属商户","最近托管授权时间","新增时间");
}
@Override
......@@ -88,7 +84,7 @@ public class OpenStaffExcelHandler extends DownloadHandlerAbstract<OpenStaffExce
@Override
public List<String> getColumns() {
return Arrays.asList("staffName", "wxUserId", "statusExcel", "clerkNames","clerkCodes", "storeNames","storeCodes","brandName","lastTimeExcel","createTimeExcel");
return Arrays.asList("staffName", "statusExcel", "clerkNames","clerkCodes", "storeNames","storeCodes","brandName","lastTimeExcel","createTimeExcel");
}
@Override
......
package com.gic.haoban.manage.web.controller.open;
import cn.hutool.core.date.DatePattern;
import com.alibaba.fastjson.JSON;
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.AuthorizedUser;
import com.gic.commons.util.DateUtil;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.common.utils.AuthWebRequestUtil;
......@@ -14,11 +19,17 @@ import com.gic.haoban.task.manage.api.dto.open.*;
import com.gic.haoban.task.manage.api.qdto.open.AlarmWordsLogQDTO;
import com.gic.haoban.task.manage.api.qdto.open.QwOpenAlarmWordsQDTO;
import com.gic.haoban.task.manage.api.service.OpenQwApiService;
import com.gic.qcloud.BucketNameEnum;
import com.gic.web.common.download.DownloadTask;
import com.gic.web.common.download.DownloadTaskUtil;
import com.gic.web.common.download.constants.TaskTypeEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
/**
* 企微托管-敏感词
*/
......@@ -28,6 +39,8 @@ public class QywxAlarmWordsController {
@Autowired
private OpenQwApiService openQwApiService ;
@Autowired
private OpenAlarmWordsLogExcelHandler openAlarmWordsLogExcelHandler ;
/**
* 敏感词列表
......@@ -107,5 +120,55 @@ public class QywxAlarmWordsController {
return RestResponse.successResult(resp.getResult()) ;
}
/**
* 敏感词监控列表导出
* @param qo
* @return
*/
@RequestMapping("alarm-words-log-excel")
public RestResponse<String> excel(@RequestBody AlarmWordsLogPageQO qo) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
AlarmWordsLogQDTO qdto = EntityUtil.changeEntityByJSON(AlarmWordsLogQDTO.class,qo) ;
qdto.setWxEnterpriseId(loginUser.getWxEnterpriseId());
qdto.setEnterpriseId(loginUser.getEnterpriseId());
BasePageInfo basePageInfo = new BasePageInfo() ;
basePageInfo.setPageNum(1);
basePageInfo.setPageSize(1);
ServiceResponse<Page<OpenQwAlarmLogDTO>> pageResp =this.openQwApiService.alarmWordsLogPage(qdto,basePageInfo) ;
final int totalCount = pageResp.getResult().getTotalCount() ;
if (totalCount == 0) {
return RestResponse.failure("9999", "导出数据条数为0");
}
AuthorizedUser user = new AuthorizedUser();
user.setUserId(loginUser.getClerkId());
user.setEnterpriseId(loginUser.getEnterpriseId());
user.setRealName(loginUser.getClerkName());
String fileName = "敏感词" ;
Date startDate = new Date();
Date endDate = new Date() ;
if(null != startDate && null != endDate) {
fileName = fileName + "-" + DateUtil.formatString(startDate, "yyyy-MM-dd") + "到" + DateUtil.formatString(endDate, "yyyy-MM-dd");
}
// 1.组装数据查询条件
DownloadTask task = new DownloadTask();
task.setTaskTypeEnum(TaskTypeEnum.HAOBAN_ALARM_WORDS);
task.setUser(user);
task.setDataType(qo.getDataType());
task.setTotalCount(totalCount);
task.setFileName(fileName);
task.setChannelName(TaskTypeEnum.HAOBAN_ALARM_WORDS.getName());
task.setBucketName(BucketNameEnum.REPORT_50000.getName());
task.setSearchDataParams(JSON.toJSONStringWithDateFormat(qdto, DatePattern.NORM_DATETIME_PATTERN));
task.setHandler(openAlarmWordsLogExcelHandler);
JSONResponse jsonResponse = DownloadTaskUtil.createDownloadTask(task);
final String reportId;
if (jsonResponse.isSuccess()) {
reportId = (String) jsonResponse.getResult();
} else {
return RestResponse.failure("9999",jsonResponse.getErrorMessage());
}
return RestResponse.successResult(reportId);
}
}
......@@ -22,6 +22,16 @@ public class AlarmWordsLogPageQO extends BasePageInfo implements Serializable {
private Date startDate;
private Date endDate;
private int dataType ;
public int getDataType() {
return dataType;
}
public void setDataType(int dataType) {
this.dataType = dataType;
}
public String getClerkParams() {
return clerkParams;
}
......
package com.gic.haoban.manage.web.vo.open;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.gic.web.common.jsonSeralizer.CardNoJsonSeralizer;
import com.gic.web.common.jsonSeralizer.PhoneNumberJsonSeralizer;
import com.gic.web.common.jsonSeralizer.UserNameJsonSeralizer;
import java.io.Serializable;
import java.util.Date;
/**
* @ClassName: TabOpenQwAlarmLog
* @Description: TODO
* @Author 徐高华
* @Date 2024年06月12日 12:45:27
* @Modify
* @CopyRight 杭州
*/
public class OpenQwAlarmLogExcelVO implements Serializable {
private static final long serialVersionUID = 98010897759200L;
/**
* 1单聊 2群聊
*/
private String chatTypeExcel;
/**
* 敏感词
*/
private String alarmWords;
/**
* 内容
*/
private String content;
/**
* 昵称
*/
private String memberName;
/**
* 创建时间
*/
private String createTimeExcel;
/**
* 群名称
*/
private String groupChatName;
/**
* 会员Nick
*/
@JsonSerialize(using = UserNameJsonSeralizer.class)
private String memberNick;
/**
* 会员卡
*/
@JsonSerialize(using = CardNoJsonSeralizer.class)
private String memberCard;
/**
* 手机号
*/
@JsonSerialize(using = PhoneNumberJsonSeralizer.class)
private String memberPhone;
/**
* 导购
*/
private String clerkCode;
/**
* 导购
*/
private String clerkName;
/**
* 门店
*/
private String storeCode;
/**
* 门店
*/
private String storeName;
/**
* 成员名称
*/
private String staffName ;
public String getChatTypeExcel() {
return chatTypeExcel;
}
public void setChatTypeExcel(String chatTypeExcel) {
this.chatTypeExcel = chatTypeExcel;
}
public String getAlarmWords() {
return alarmWords;
}
public void setAlarmWords(String alarmWords) {
this.alarmWords = alarmWords;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public String getCreateTimeExcel() {
return createTimeExcel;
}
public void setCreateTimeExcel(String createTimeExcel) {
this.createTimeExcel = createTimeExcel;
}
public String getGroupChatName() {
return groupChatName;
}
public void setGroupChatName(String groupChatName) {
this.groupChatName = groupChatName;
}
public String getMemberNick() {
return memberNick;
}
public void setMemberNick(String memberNick) {
this.memberNick = memberNick;
}
public String getMemberCard() {
return memberCard;
}
public void setMemberCard(String memberCard) {
this.memberCard = memberCard;
}
public String getMemberPhone() {
return memberPhone;
}
public void setMemberPhone(String memberPhone) {
this.memberPhone = memberPhone;
}
public String getClerkCode() {
return clerkCode;
}
public void setClerkCode(String clerkCode) {
this.clerkCode = clerkCode;
}
public String getClerkName() {
return clerkName;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
public String getStoreCode() {
return storeCode;
}
public void setStoreCode(String storeCode) {
this.storeCode = storeCode;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
}
\ 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