Commit 768aa1d5 by 徐高华

朋友圈

parent ccb1a7c3
......@@ -5,6 +5,10 @@ import com.gic.api.base.commons.BasePageInfo;
import java.util.Date;
public class PlanClerkListQDTO extends BasePageInfo {
private String wxEnterpriseId ;
private String enterpriseId ;
private Long planId ;
/**
* 成员名称
......@@ -39,10 +43,36 @@ public class PlanClerkListQDTO extends BasePageInfo {
*/
private String sortType ;
private Integer statusFlag ;
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public String getStaffNameLike() {
return staffNameLike;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public void setStaffNameLike(String staffNameLike) {
this.staffNameLike = staffNameLike;
}
......
......@@ -6,6 +6,8 @@ import java.util.Date;
public class PlanDataListQDTO extends BasePageInfo {
private String wxEnterpriseId ;
private String enterpriseId ;
private Long planId ;
......@@ -42,6 +44,22 @@ public class PlanDataListQDTO extends BasePageInfo {
*/
private String sortType ;
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Long getPlanId() {
return planId;
}
......
package com.gic.haoban.manage.web.controller.moment;
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.haoban.manage.api.dto.moment.QwMomentPlanAttendDTO;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanDTO;
import com.gic.haoban.manage.api.qdto.moment.PlanClerkListQDTO;
import com.gic.haoban.manage.api.qdto.moment.PlanDataListQDTO;
import com.gic.haoban.manage.api.qdto.moment.QwMomentPlanQDTO;
import com.gic.haoban.manage.api.service.moment.QwMomentApiService;
import com.gic.haoban.manage.web.vo.moment.MomentClerkExcelVO;
import com.gic.haoban.manage.web.vo.moment.MomentPlanExcelVO;
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 MomentClerkExcelHandler extends DownloadHandlerAbstract<MomentClerkExcelVO> {
@Autowired
private QwMomentApiService qwMomentApiService ;
@Override
public List<MomentClerkExcelVO> getData(Context context, String json, Integer currentPage) {
PlanClerkListQDTO qdto = JSON.parseObject(json, PlanClerkListQDTO.class);
BasePageInfo pageInfo = new BasePageInfo() ;
pageInfo.setPageSize(this.getPageSize());
pageInfo.setPageNum(currentPage);
ServiceResponse<Page<QwMomentPlanAttendDTO>> pageResp = this.qwMomentApiService.attendList(qdto);
List<MomentClerkExcelVO> voList = new ArrayList<>();
if (null != pageResp && CollectionUtils.isNotEmpty(pageResp.getResult().getResult())) {
EnterpriseDTO en = this.enterpriseService.getEnterpriseById(qdto.getEnterpriseId()) ;
for(QwMomentPlanAttendDTO item : pageResp.getResult().getResult()) {
MomentClerkExcelVO vo = EntityUtil.changeEntityByJSON(MomentClerkExcelVO.class,item) ;
voList.add(vo) ;
}
}
return voList;
}
@Override
public List<String> getColumnNames() {
return Arrays.asList();
}
@Override
public List<String> getColumnNames(Context context) {
String json = context.getDownloadReportDTO().getSearchDataParams();
PlanClerkListQDTO qdto = JSON.parseObject(json, PlanClerkListQDTO.class);
if(qdto.getStatusFlag()==1) {
return Arrays.asList("员工姓名", "员工id" , "导购名称", "导购code","所属门店名称", "门店code","完成情况","发布时间","点赞数","评论数");
}else {
return Arrays.asList("员工姓名", "员工id" , "导购名称", "导购code","所属门店名称", "门店code","下发失败原因");
}
}
@Override
public List<String> getColumns(Context context) {
String json = context.getDownloadReportDTO().getSearchDataParams();
PlanClerkListQDTO qdto = JSON.parseObject(json, PlanClerkListQDTO.class);
if(qdto.getStatusFlag()==1) {
return Arrays.asList("staffName", "staffId", "clerkName", "clerkCode","storeName", "storeCode","taskStatusExcel","sendTimeExcel","likeCount","commentCount");
}else {
return Arrays.asList("staffName", "staffId", "clerkName", "clerkCode","storeName", "storeCode","reason");
}
}
@Override
public LinkedHashMap<String, List<String>> doubleColumnNames() {
return null;
}
@Override
public List<String> getColumns() {
return Arrays.asList();
}
}
package com.gic.haoban.manage.web.controller.moment;
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.haoban.manage.api.dto.moment.QwMomentPlanDTO;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanDataDTO;
import com.gic.haoban.manage.api.qdto.moment.PlanDataListQDTO;
import com.gic.haoban.manage.api.qdto.moment.QwMomentPlanQDTO;
import com.gic.haoban.manage.api.service.moment.QwMomentApiService;
import com.gic.haoban.manage.web.vo.moment.MomentDataExcelVO;
import com.gic.haoban.manage.web.vo.moment.MomentPlanExcelVO;
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 MomentDataExcelHandler extends DownloadHandlerAbstract<MomentDataExcelVO> {
@Autowired
private QwMomentApiService qwMomentApiService ;
@Override
public List<MomentDataExcelVO> getData(Context context, String json, Integer currentPage) {
PlanDataListQDTO qdto = JSON.parseObject(json, PlanDataListQDTO.class);
BasePageInfo pageInfo = new BasePageInfo() ;
pageInfo.setPageSize(this.getPageSize());
pageInfo.setPageNum(currentPage);
ServiceResponse<Page<QwMomentPlanDataDTO>> pageResp = this.qwMomentApiService.dataList(qdto);
List<MomentDataExcelVO> voList = new ArrayList<>();
if (null != pageResp && CollectionUtils.isNotEmpty(pageResp.getResult().getResult())) {
EnterpriseDTO en = this.enterpriseService.getEnterpriseById(qdto.getEnterpriseId()) ;
for(QwMomentPlanDataDTO item : pageResp.getResult().getResult()) {
MomentDataExcelVO vo = EntityUtil.changeEntityByJSON(MomentDataExcelVO.class,item) ;
voList.add(vo) ;
}
}
return voList;
}
@Override
public List<String> getColumnNames() {
return new ArrayList<>() ;
}
@Override
public List<String> getColumnNames(Context context) {
String json = context.getDownloadReportDTO().getSearchDataParams();
PlanDataListQDTO qdto = JSON.parseObject(json, PlanDataListQDTO.class);
if(qdto.getType()==1) {
return Arrays.asList("员工姓名", "导购名称", "导购code","所属门店名称", "门店code","客户姓名","客户手机号","点赞时间");
}else {
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","memberName","memberPhone","timeExcel");
}
}
......@@ -70,6 +70,10 @@ public class QwMomentController {
private QwMomentApiService qwMomentApiService ;
@Autowired
private MomentPlanExcelHandler momentPlanExcelHandler ;
@Autowired
private MomentClerkExcelHandler momentClerkExcelHandler ;
@Autowired
private MomentDataExcelHandler momentDataExcelHandler ;
/**
* 新建任务
......@@ -288,6 +292,9 @@ public class QwMomentController {
@RequestMapping("plan-list")
public RestResponse<Page<HaobanQwMomentPlanVO>> planList(@RequestBody PlanListQO qo) {
QwMomentPlanQDTO qdto = EntityUtil.changeEntityByJSON(QwMomentPlanQDTO.class,qo) ;
if(null != qdto.getEndTime()) {
qdto.setEndTime(DateUtil.getEndTimeOfDay(qdto.getEndTime()));
}
qdto.setCreatorIdList(CreatorUtils.getCreatorIdList(qo.getShowSelfFlag()));
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
qdto.setEnterpriseId(loginUser.getEnterpriseId());
......@@ -354,9 +361,54 @@ public class QwMomentController {
*/
@RequestMapping("data-list-excel")
public RestResponse<String> dataListExcel(@RequestBody PlanDataListQO qo) {
ServiceResponse<QwMomentPlanDTO> detailResp = this.qwMomentApiService.detail(qo.getPlanId()) ;
PlanDataListQDTO qdto = EntityUtil.changeEntityByJSON(PlanDataListQDTO.class,qo) ;
ServiceResponse<Page<QwMomentPlanDataDTO>> resp = this.qwMomentApiService.dataList(qdto) ;
return RestResponse.successResult(null);
if(null != qdto.getEndTime()) {
qdto.setEndTime(DateUtil.getEndTimeOfDay(qdto.getEndTime()));
}
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
qdto.setWxEnterpriseId(loginUser.getWxEnterpriseId());
qdto.setEnterpriseId(loginUser.getEnterpriseId());
BasePageInfo basePageInfo = new BasePageInfo();
basePageInfo.setPageNum(1);
basePageInfo.setPageSize(1);
ServiceResponse<Page<QwMomentPlanDataDTO>> pageResp = this.qwMomentApiService.dataList(qdto);
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 = "企微朋友圈-"+detailResp.getResult().getTitle()+"-点赞数据";
if(qo.getType()==2) {
fileName = "企微朋友圈-"+detailResp.getResult().getTitle()+"-评论数据";
}
Date startDate = qo.getStartTime() ;
Date endDate = qo.getEndTime() ;
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.QYWX_MOMENT);
task.setUser(user);
task.setDataType(1);
task.setTotalCount(totalCount);
task.setFileName(fileName);
task.setChannelName(TaskTypeEnum.QYWX_MOMENT.getName());
task.setBucketName(BucketNameEnum.REPORT_50000.getName());
task.setSearchDataParams(JSON.toJSONStringWithDateFormat(qdto, DatePattern.NORM_DATETIME_PATTERN));
task.setHandler(momentDataExcelHandler);
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);
}
......@@ -367,7 +419,10 @@ public class QwMomentController {
*/
@RequestMapping("plan-list-excel")
public RestResponse<String> planListExcel(@RequestBody PlanListQO qo) {
QwMomentPlanQDTO qdto = new QwMomentPlanQDTO() ;
QwMomentPlanQDTO qdto = EntityUtil.changeEntityByJSON(QwMomentPlanQDTO.class,qo) ;
if(null != qdto.getEndTime()) {
qdto.setEndTime(DateUtil.getEndTimeOfDay(qdto.getEndTime()));
}
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
qdto.setWxEnterpriseId(loginUser.getWxEnterpriseId());
qdto.setEnterpriseId(loginUser.getEnterpriseId());
......@@ -418,9 +473,51 @@ public class QwMomentController {
*/
@RequestMapping("clerk-list-excel")
public RestResponse<String> clerkListExcel(@RequestBody PlanClerkListQO qo) {
ServiceResponse<QwMomentPlanDTO> detailResp = this.qwMomentApiService.detail(qo.getPlanId()) ;
PlanClerkListQDTO qdto = EntityUtil.changeEntityByJSON(PlanClerkListQDTO.class,qo) ;
ServiceResponse<Page<QwMomentPlanAttendDTO>> resp = this.qwMomentApiService.attendList(qdto) ;
return RestResponse.successResult(null);
if(null != qdto.getEndTime()) {
qdto.setEndTime(DateUtil.getEndTimeOfDay(qdto.getEndTime()));
}
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
qdto.setWxEnterpriseId(loginUser.getWxEnterpriseId());
qdto.setEnterpriseId(loginUser.getEnterpriseId());
BasePageInfo basePageInfo = new BasePageInfo();
basePageInfo.setPageNum(1);
basePageInfo.setPageSize(1);
ServiceResponse<Page<QwMomentPlanAttendDTO>> pageResp = this.qwMomentApiService.attendList(qdto);
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 = "企微朋友圈-"+detailResp.getResult().getTitle()+"-执行情况";
Date startDate = qo.getStartTime() ;
Date endDate = qo.getEndTime() ;
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.QYWX_MOMENT);
task.setUser(user);
task.setDataType(1);
task.setTotalCount(totalCount);
task.setFileName(fileName);
task.setChannelName(TaskTypeEnum.QYWX_MOMENT.getName());
task.setBucketName(BucketNameEnum.REPORT_50000.getName());
task.setSearchDataParams(JSON.toJSONStringWithDateFormat(qdto, DatePattern.NORM_DATETIME_PATTERN));
task.setHandler(momentClerkExcelHandler);
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);
}
}
package com.gic.haoban.manage.web.vo.moment;
import java.io.Serializable;
import java.util.Date;
/**
*
* @ClassName: TabHaobanQwMomentPlan
* @Description: TODO
* @Author 徐高华
* @Date 2025年03月05日 10:27:20
* @Modify
* @CopyRight 杭州
*/
public class MomentClerkExcelVO implements Serializable {
private static final long serialVersionUID = 67027585759300L;
private String staffId;
/**
* 员工名称
*/
private String staffName ;
/**导购*/
private String clerkId;
/**导购code*/
private String clerkCode;
/**导购名称*/
private String clerkName;
/**评论数*/
private int commentCount;
/**点赞数*/
private int likeCount;
/**0已失效 1待执行 2已执行*/
private int taskStatus;
private String taskStatusExcel ;
/**任务执行时间*/
private Date sendTime;
private String sendTimeExcel ;
/**企微朋友圈id*/
private String momentId;
/**企微获取数据时间*/
private Date qwDataTime;
/**门店id*/
private String storeId;
/**
* 门店名称
*/
private String storeName ;
/**
* 门店code
*/
private String storeCode ;
/**
* 下发失败原因
*/
private String reason ;
public String getTaskStatusExcel() {
return taskStatusExcel;
}
public void setTaskStatusExcel(String taskStatusExcel) {
this.taskStatusExcel = taskStatusExcel;
}
public String getSendTimeExcel() {
return sendTimeExcel;
}
public void setSendTimeExcel(String sendTimeExcel) {
this.sendTimeExcel = sendTimeExcel;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
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 int getCommentCount() {
return commentCount;
}
public void setCommentCount(int commentCount) {
this.commentCount = commentCount;
}
public int getLikeCount() {
return likeCount;
}
public void setLikeCount(int likeCount) {
this.likeCount = likeCount;
}
public int getTaskStatus() {
return taskStatus;
}
public void setTaskStatus(int taskStatus) {
this.taskStatus = taskStatus;
}
public Date getSendTime() {
return sendTime;
}
public void setSendTime(Date sendTime) {
this.sendTime = sendTime;
}
public String getMomentId() {
return momentId;
}
public void setMomentId(String momentId) {
this.momentId = momentId;
}
public Date getQwDataTime() {
return qwDataTime;
}
public void setQwDataTime(Date qwDataTime) {
this.qwDataTime = qwDataTime;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public String getStoreCode() {
return storeCode;
}
public void setStoreCode(String storeCode) {
this.storeCode = storeCode;
}
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
}
\ No newline at end of file
package com.gic.haoban.manage.web.vo.moment;
import java.io.Serializable;
import java.util.Date;
/**
*
* @ClassName: TabHaobanQwMomentPlan
* @Description: TODO
* @Author 徐高华
* @Date 2025年03月05日 10:27:20
* @Modify
* @CopyRight 杭州
*/
public class MomentDataExcelVO implements Serializable {
private static final long serialVersionUID = 67027585759300L;
/**staff*/
private String staffId;
/**
* 员工名称
*/
private String staffName ;
/**导购*/
private String clerkId;
/**导购code*/
private String clerkCode;
/**导购名称*/
private String clerkName;
/**客户id*/
private String memberId;
private String memberName ;
private String memberNick ;
private String memberCard ;
private String memberImage ;
private String memberPhone ;
/**是否删除*/
private int deleteFlag;
/**评论时间*/
private java.util.Date commentTime;
/**点赞时间*/
private java.util.Date likeTime;
/**是否评论*/
private int commentFlag;
/**是否点赞*/
private int likeFlag;
/**门店id*/
private String storeId;
/**
* 门店名称
*/
private String storeName ;
/**
* 门店code
*/
private String storeCode ;
/**
* 1:非会员 2:会员已注销 3:正常
*/
private Integer memberScene;
private String timeExcel ;
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
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 getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
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 getMemberImage() {
return memberImage;
}
public void setMemberImage(String memberImage) {
this.memberImage = memberImage;
}
public String getMemberPhone() {
return memberPhone;
}
public void setMemberPhone(String memberPhone) {
this.memberPhone = memberPhone;
}
public int getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(int deleteFlag) {
this.deleteFlag = deleteFlag;
}
public Date getCommentTime() {
return commentTime;
}
public void setCommentTime(Date commentTime) {
this.commentTime = commentTime;
}
public Date getLikeTime() {
return likeTime;
}
public void setLikeTime(Date likeTime) {
this.likeTime = likeTime;
}
public int getCommentFlag() {
return commentFlag;
}
public void setCommentFlag(int commentFlag) {
this.commentFlag = commentFlag;
}
public int getLikeFlag() {
return likeFlag;
}
public void setLikeFlag(int likeFlag) {
this.likeFlag = likeFlag;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public String getStoreCode() {
return storeCode;
}
public void setStoreCode(String storeCode) {
this.storeCode = storeCode;
}
public Integer getMemberScene() {
return memberScene;
}
public void setMemberScene(Integer memberScene) {
this.memberScene = memberScene;
}
public String getTimeExcel() {
return timeExcel;
}
public void setTimeExcel(String timeExcel) {
this.timeExcel = timeExcel;
}
}
\ 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