Commit 01d111ef by 徐高华

Merge branch 'feature/xgh/2502朋友圈' into 'master'

Feature/xgh/2502朋友圈

See merge request !2655
parents 3dbbffb9 eb5a4f53
package com.gic.haoban.manage.api.dto.moment;
import java.io.Serializable ;
import java.util.Date;
public class QwMomentPlanAttendDTO implements Serializable{
private static final long serialVersionUID = 85681326319600L;
/**id*/
private Long attendId;
/**计划id*/
private Long planId;
/**企微企业id*/
private String wxEnterpriseId;
/**企业id*/
private String enterpriseId;
/**staff*/
private String staffId;
private String staffName;
/**导购*/
private String clerkId;
/**导购code*/
private String clerkCode;
/**导购名称*/
private String clerkName;
/**创建时间*/
private java.util.Date createTime;
/**更新时间*/
private java.util.Date updateTime;
/**是否删除*/
private Integer deleteFlag;
/**评论数*/
private Integer commentCount;
/**点赞数*/
private Integer likeCount;
/**1待执行 2已执行*/
private Integer taskStatus;
/**任务执行时间*/
private java.util.Date sendTime;
/**企微朋友圈id*/
private String momentId;
/**企微获取数据时间*/
private java.util.Date qwDataTime;
/**门店id*/
private String storeId;
// 0待下发 1已下发
private Integer statusFlag ;
private String reason ;
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Long getAttendId() {
return attendId;
}
public void setAttendId(Long attendId) {
this.attendId = attendId;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
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 String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
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 Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public Integer getCommentCount() {
return commentCount;
}
public void setCommentCount(Integer commentCount) {
this.commentCount = commentCount;
}
public Integer getLikeCount() {
return likeCount;
}
public void setLikeCount(Integer likeCount) {
this.likeCount = likeCount;
}
public Integer getTaskStatus() {
return taskStatus;
}
public void setTaskStatus(Integer 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;
}
}
\ No newline at end of file
package com.gic.haoban.manage.api.dto.moment;
import java.io.Serializable ;
import java.util.Date;
import java.util.List;
public class QwMomentPlanDTO implements Serializable{
private static final long serialVersionUID = 85646353131100L;
/**活动id*/
private Long planId;
/**名称*/
private String title;
/**描述*/
private String remark;
/**开始日期*/
private java.util.Date beginDate;
/**结束日期*/
private java.util.Date endDate;
/**几天后失效*/
private Integer expireDays;
/**执行方式 0企微1好办小程序*/
private Integer execType;
/**企微id*/
private String wxEnterpriseId;
/**企业id*/
private String enterpriseId;
/**创建人*/
private String creatorId;
/**创建人*/
private String creatorName;
/**1有效 2终止*/
private Integer statusFlag;
/**1删0有效*/
private Integer deleteFlag;
/**1立即发布2定时发布*/
private Integer publishType;
/**发布时间*/
private java.util.Date publishTime;
/**0全部导购 1部分导购*/
private Integer planClerkType;
/**总任务数*/
private Integer totalNum;
private Integer taskClerkNum ;
/**执行任务数*/
private Integer doneNum;
/**终止时间*/
private java.util.Date stopTime;
/**0自主上传 1内容*/
private Integer mediaType;
/**素材json*/
private String mediaInfo;
/**素材回显内容*/
private String mediaInfoShow;
/**创建时间*/
private java.util.Date createTime;
/**更新时间*/
private java.util.Date updateTime;
/**总点赞数*/
private Integer totalLikeCount;
/**总评论数*/
private Integer totalCommentCount;
/**企微jobid*/
private String qwJobid;
/**完成率*/
private Integer execRate;
// 选择的导购id列表
private List<String> selectClerkIdList ;
/**
* 链接开关
*/
private Integer mediaLinkFlag ;
/**
* 参与导购列表
*/
private List<QwMomentPlanAttendDTO> clerkList ;
public Integer getMediaLinkFlag() {
return mediaLinkFlag;
}
public void setMediaLinkFlag(Integer mediaLinkFlag) {
this.mediaLinkFlag = mediaLinkFlag;
}
public List<QwMomentPlanAttendDTO> getClerkList() {
return clerkList;
}
public void setClerkList(List<QwMomentPlanAttendDTO> clerkList) {
this.clerkList = clerkList;
}
public Integer getTaskClerkNum() {
return taskClerkNum;
}
public void setTaskClerkNum(Integer taskClerkNum) {
this.taskClerkNum = taskClerkNum;
}
public List<String> getSelectClerkIdList() {
return selectClerkIdList;
}
public void setSelectClerkIdList(List<String> selectClerkIdList) {
this.selectClerkIdList = selectClerkIdList;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Date getBeginDate() {
return beginDate;
}
public void setBeginDate(Date beginDate) {
this.beginDate = beginDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public Integer getExpireDays() {
return expireDays;
}
public void setExpireDays(Integer expireDays) {
this.expireDays = expireDays;
}
public Integer getExecType() {
return execType;
}
public void setExecType(Integer execType) {
this.execType = execType;
}
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 String getCreatorId() {
return creatorId;
}
public void setCreatorId(String creatorId) {
this.creatorId = creatorId;
}
public String getCreatorName() {
return creatorName;
}
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public Integer getPublishType() {
return publishType;
}
public void setPublishType(Integer publishType) {
this.publishType = publishType;
}
public Date getPublishTime() {
return publishTime;
}
public void setPublishTime(Date publishTime) {
this.publishTime = publishTime;
}
public Integer getPlanClerkType() {
return planClerkType;
}
public void setPlanClerkType(Integer planClerkType) {
this.planClerkType = planClerkType;
}
public Integer getTotalNum() {
return totalNum;
}
public void setTotalNum(Integer totalNum) {
this.totalNum = totalNum;
}
public Integer getDoneNum() {
return doneNum;
}
public void setDoneNum(Integer doneNum) {
this.doneNum = doneNum;
}
public Date getStopTime() {
return stopTime;
}
public void setStopTime(Date stopTime) {
this.stopTime = stopTime;
}
public Integer getMediaType() {
return mediaType;
}
public void setMediaType(Integer mediaType) {
this.mediaType = mediaType;
}
public String getMediaInfo() {
return mediaInfo;
}
public void setMediaInfo(String mediaInfo) {
this.mediaInfo = mediaInfo;
}
public String getMediaInfoShow() {
return mediaInfoShow;
}
public void setMediaInfoShow(String mediaInfoShow) {
this.mediaInfoShow = mediaInfoShow;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getTotalLikeCount() {
return totalLikeCount;
}
public void setTotalLikeCount(Integer totalLikeCount) {
this.totalLikeCount = totalLikeCount;
}
public Integer getTotalCommentCount() {
return totalCommentCount;
}
public void setTotalCommentCount(Integer totalCommentCount) {
this.totalCommentCount = totalCommentCount;
}
public String getQwJobid() {
return qwJobid;
}
public void setQwJobid(String qwJobid) {
this.qwJobid = qwJobid;
}
public Integer getExecRate() {
return execRate;
}
public void setExecRate(Integer execRate) {
this.execRate = execRate;
}
}
\ No newline at end of file
package com.gic.haoban.manage.api.dto.moment;
import java.io.Serializable ;
import java.util.Date;
public class QwMomentPlanDataDTO implements Serializable{
private static final long serialVersionUID = 69664410786500L;
/**id*/
private Long dataId;
/**计划id*/
private Long planId;
/**企微企业id*/
private String wxEnterpriseId;
/**企业id*/
private String enterpriseId;
/**staff*/
private String staffId;
private String staffName ;
/**导购*/
private String clerkId;
/**门店id*/
private String storeId;
/**客户id*/
private String memberId;
/**创建时间*/
private java.util.Date createTime;
/**更新时间*/
private java.util.Date updateTime;
/**是否删除*/
private Integer deleteFlag;
/**评论时间*/
private java.util.Date commentTime;
/**点赞时间*/
private java.util.Date likeTime;
/**是否评论*/
private Integer commentFlag;
/**是否点赞*/
private Integer likeFlag;
private String clerkCode ;
private String clerkName ;
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 getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public Long getDataId() {
return dataId;
}
public void setDataId(Long dataId) {
this.dataId = dataId;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
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 String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer 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 Integer getCommentFlag() {
return commentFlag;
}
public void setCommentFlag(Integer commentFlag) {
this.commentFlag = commentFlag;
}
public Integer getLikeFlag() {
return likeFlag;
}
public void setLikeFlag(Integer likeFlag) {
this.likeFlag = likeFlag;
}
}
\ No newline at end of file
package com.gic.haoban.manage.api.dto.moment;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
public class QwMomentPlanWxaDTO implements Serializable {
private Long planId ;
/**
* 计划名称
*/
private String name ;
/**
* 任务总数
*/
private int totalNum ;
/**
* 已完成
*/
private int execNum ;
/**
* 未完成
*/
private int notExecNum ;
/**
* 开始时间
*/
private Date startTime ;
/**
* 结束时间
*/
private Date endTime ;
/**
* 点赞数
*/
private int likeCount ;
/**
* 评论数
*/
private int commentCount ;
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getTotalNum() {
return totalNum;
}
public void setTotalNum(int totalNum) {
this.totalNum = totalNum;
}
public int getExecNum() {
return execNum;
}
public void setExecNum(int execNum) {
this.execNum = execNum;
}
public int getNotExecNum() {
return notExecNum;
}
public void setNotExecNum(int notExecNum) {
this.notExecNum = notExecNum;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public int getLikeCount() {
return likeCount;
}
public void setLikeCount(int likeCount) {
this.likeCount = likeCount;
}
public int getCommentCount() {
return commentCount;
}
public void setCommentCount(int commentCount) {
this.commentCount = commentCount;
}
}
\ No newline at end of file
package com.gic.haoban.manage.api.dto.moment;
import java.io.Serializable;
import java.util.Date;
public class TaskDetailDTO implements Serializable {
private Long planId ;
private Long attendId ;
private String clerkId ;
/**
* 执行导购名称
*/
private String clerkName ;
/**
* 任务名称
*/
private String name ;
/**
* 任务描述
*/
private String remark ;
/**
* 开始时间
*/
private Date startTime ;
/**
* 结束时间
*/
private Date endTime ;
/**
* 点赞数
*/
private int likeCount ;
/**
* 评论数
*/
private int commentCount ;
/**任务执行完成时间*/
private Date sendTime ;
/**
* 执行方式 0企微1好办小程序
*/
private int execType ;
/**
* 数据更新时间
*/
private Date qwDataTime ;
// 0已失效1待执行 2已执行
private Integer taskStatus ;
// 1内容
private Integer mediaType ;
public Integer getMediaType() {
return mediaType;
}
public void setMediaType(Integer mediaType) {
this.mediaType = mediaType;
}
public Long getAttendId() {
return attendId;
}
public void setAttendId(Long attendId) {
this.attendId = attendId;
}
public Integer getTaskStatus() {
return taskStatus;
}
public void setTaskStatus(Integer taskStatus) {
this.taskStatus = taskStatus;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getClerkName() {
return clerkName;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public int getLikeCount() {
return likeCount;
}
public void setLikeCount(int likeCount) {
this.likeCount = likeCount;
}
public int getCommentCount() {
return commentCount;
}
public void setCommentCount(int commentCount) {
this.commentCount = commentCount;
}
public Date getSendTime() {
return sendTime;
}
public void setSendTime(Date sendTime) {
this.sendTime = sendTime;
}
public int getExecType() {
return execType;
}
public void setExecType(int execType) {
this.execType = execType;
}
public Date getQwDataTime() {
return qwDataTime;
}
public void setQwDataTime(Date qwDataTime) {
this.qwDataTime = qwDataTime;
}
}
package com.gic.haoban.manage.api.dto.moment;
import java.io.Serializable;
import java.util.Date;
public class TaskListWxaDTO implements Serializable {
private Long planId ;
/**
* 计划名称
*/
private String name ;
/**
* 任务总数
*/
private int totalNum ;
/**
* 已完成
*/
private int execNum ;
/**
* 未完成
*/
private int notExecNum ;
/**
* 开始时间
*/
private Date startTime ;
/**
* 结束时间
*/
private Date endTime ;
/**
* 点赞数
*/
private int likeCount ;
/**
* 评论数
*/
private int commentCount ;
// 0已失效1待执行 2已执行
private Integer taskStatus ;
private String clerkName ;
private String clerkId ;
private Date sendTime ;
public Date getSendTime() {
return sendTime;
}
public void setSendTime(Date sendTime) {
this.sendTime = sendTime;
}
public String getClerkName() {
return clerkName;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public Integer getTaskStatus() {
return taskStatus;
}
public void setTaskStatus(Integer taskStatus) {
this.taskStatus = taskStatus;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getTotalNum() {
return totalNum;
}
public void setTotalNum(int totalNum) {
this.totalNum = totalNum;
}
public int getExecNum() {
return execNum;
}
public void setExecNum(int execNum) {
this.execNum = execNum;
}
public int getNotExecNum() {
return notExecNum;
}
public void setNotExecNum(int notExecNum) {
this.notExecNum = notExecNum;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public int getLikeCount() {
return likeCount;
}
public void setLikeCount(int likeCount) {
this.likeCount = likeCount;
}
public int getCommentCount() {
return commentCount;
}
public void setCommentCount(int commentCount) {
this.commentCount = commentCount;
}
}
\ No newline at end of file
......@@ -13,6 +13,7 @@ public class GroupChatPlanSearchQDTO implements Serializable {
private String wxEnterpriseId;
private String enterpriseId;
private String searchParams;
private String searchParamsLike ;
// 1进行中、2未开始、3已结束
private Integer status;
// 群主 0发送失败 1待发送 2已发送 3放弃 30(失败+放弃)
......@@ -31,6 +32,14 @@ public class GroupChatPlanSearchQDTO implements Serializable {
// clerkTaskStatus 1待处理 2已处理/已失效
private int clerkTaskStatus ;
public String getSearchParamsLike() {
return searchParamsLike;
}
public void setSearchParamsLike(String searchParamsLike) {
this.searchParamsLike = searchParamsLike;
}
public int getClerkTaskStatus() {
return clerkTaskStatus;
}
......
......@@ -40,7 +40,8 @@ public enum NoticeMessageTypeEnum {
TEL_TASK_CANVAS(2017, "话务任务通知", NoticeMessageCategoryTypeEnum.TASK.getType(), "haobanTelTaskCanvas", "/pages/route/index?pageType=", "hbapp_canvas_task", "haobanTelTaskCanvas", "haobanNotice"),
HB_TASK_TO_DO_LIST_NOTICE(2018, "任务执行提醒", NoticeMessageCategoryTypeEnum.TASK.getType(), "haobanTaskTodoNotice", "/pages/route/index?pageType=", "", "haobanTaskTodoNotice", "haobanNotice"),
hbapp_canvas_friend_circle_task(2019, "朋友圈活动-任务详情", NoticeMessageCategoryTypeEnum.TASK.getType(), "qwMomentPlanDetail", "/pages/route/index?pageType=", "hbapp_canvas_friend_circle_task", "qwMomentPlanDetail", "haobanNotice"),
hbapp_canvas_friend_circle_list(2020, "朋友圈-活动列表", NoticeMessageCategoryTypeEnum.TASK.getType(), "qwMomentPlanList", "/pages/route/index?pageType=", "hbapp_canvas_friend_circle_list", "qwMomentPlanList", "haobanNotice"),
STORE_ACCOUNT(3001, "账号申请", NoticeMessageCategoryTypeEnum.OTHER.getType(), "store_account", "/pages/route/index?pageType=", "store_relate_store_record_list", "accountApplication", "haobanNotice"),
//
......
......@@ -11,6 +11,7 @@ public enum PendingTaskTypeEnum {
GROUP_TASK(3, "客户群发", "您收到了新的企微群发任务【{}】,赶紧到企业微信-消息-群发助手中执行吧~"),
ACTIVITY(4, "活动", "您报名的{}活动已经开始啦,快去转发赚佣金吧~"),
GROUP_CHAT(5, "社群群发", "您收到了新的社群群发任务【{}】,赶紧到企业微信-消息-群发助手中执行吧~"),
QYWX_MOMENT(6, "企微朋友圈", "您收到了新的企微朋友圈发布任务【{}】,快去执行吧~"),
;
private int type;
private String name;
......
package com.gic.haoban.manage.api.qdto.moment;
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 ;
/**
* 成员名称
*/
private String staffName ;
private String staffNameLike ;
/**
* 导购条件
*/
private String clerkParams ;
private String clerkParamsLike ;
/**
* 0已失效 1待完成 2已完成
*/
private Integer sendStatus ;
private Date startTime ;
private Date endTime ;
/**
* 排序字段 完成率:exec_rate 点赞:like_count 评论:comment_count
*/
private String sortColumn ;
/**
* desc / asc
*/
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;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getClerkParamsLike() {
return clerkParamsLike;
}
public void setClerkParamsLike(String clerkParamsLike) {
this.clerkParamsLike = clerkParamsLike;
}
public String getSortColumn() {
return sortColumn;
}
public void setSortColumn(String sortColumn) {
this.sortColumn = sortColumn;
}
public String getSortType() {
return sortType;
}
public void setSortType(String sortType) {
this.sortType = sortType;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public String getClerkParams() {
return clerkParams;
}
public void setClerkParams(String clerkParams) {
this.clerkParams = clerkParams;
}
public Integer getSendStatus() {
return sendStatus;
}
public void setSendStatus(Integer sendStatus) {
this.sendStatus = sendStatus;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
}
package com.gic.haoban.manage.api.qdto.moment;
import com.gic.api.base.commons.BasePageInfo;
import java.util.Date;
public class PlanDataListQDTO extends BasePageInfo {
private String wxEnterpriseId ;
private String enterpriseId ;
private Long planId ;
/**
* 成员名称
*/
private String staffName ;
private String staffNameLike ;
/**
* 导购条件
*/
private String clerkParams ;
private String clerkParamsLike ;
/**
* 1点赞 2评论
*/
private Integer type ;
private Date startTime ;
private Date endTime ;
/**
* 排序字段 完成率:exec_rate 点赞:total_like_count 评论:total_comment_count
*/
private String sortColumn ;
/**
* desc / asc
*/
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;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getStaffNameLike() {
return staffNameLike;
}
public void setStaffNameLike(String staffNameLike) {
this.staffNameLike = staffNameLike;
}
public String getSortColumn() {
return sortColumn;
}
public void setSortColumn(String sortColumn) {
this.sortColumn = sortColumn;
}
public String getSortType() {
return sortType;
}
public void setSortType(String sortType) {
this.sortType = sortType;
}
public String getClerkParamsLike() {
return clerkParamsLike;
}
public void setClerkParamsLike(String clerkParamsLike) {
this.clerkParamsLike = clerkParamsLike;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public String getClerkParams() {
return clerkParams;
}
public void setClerkParams(String clerkParams) {
this.clerkParams = clerkParams;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
}
package com.gic.haoban.manage.api.qdto.moment;
import com.gic.api.base.commons.BasePageInfo;
import java.io.Serializable;
public class PlanListWxaQDTO extends BasePageInfo {
private String wxEnterpriseId ;
private String enterpriseId ;
private String storeId ;
private String staffId ;
private String clerkId ;
/**
* 0未完成 1已完成或已失效
*/
private Integer planStatus ;
/**
* 活动名称
*/
private String name ;
private String nameLike ;
public String getNameLike() {
return nameLike;
}
public void setNameLike(String nameLike) {
this.nameLike = nameLike;
}
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 String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public Integer getPlanStatus() {
return planStatus;
}
public void setPlanStatus(Integer planStatus) {
this.planStatus = planStatus;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.gic.haoban.manage.api.qdto.moment;
import com.gic.api.base.commons.BasePageInfo;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
*
* @ClassName: TabHaobanQwMomentPlan
* @Description: TODO
* @Author 徐高华
* @Date 2025年03月05日 10:27:20
* @Modify
* @CopyRight 杭州
*/
public class QwMomentPlanQDTO extends BasePageInfo {
private String wxEnterpriseId ;
private String enterpriseId ;
/**
* 活动名称或id
*/
private String nameParams ;
private String nameParamsLike ;
/**
* 执行方式
*/
private Integer execType ;
/**
* 1进行中 2终止 0未开始 3 已结束
*/
private Integer statusFlag ;
/**
* 开始时间
*/
private Date startTime ;
/**
* 结束时间
*/
private Date endTime ;
/**
* 创建人
*/
private List<String> creatorIdList ;
/**
* 排序字段 完成率:exec_rate 点赞:total_like_count 评论:total_comment_count
*/
private String sortColumn ;
/**
* desc / asc
*/
private String sortType ;
public List<String> getCreatorIdList() {
return creatorIdList;
}
public void setCreatorIdList(List<String> creatorIdList) {
this.creatorIdList = creatorIdList;
}
public String getNameParamsLike() {
return nameParamsLike;
}
public void setNameParamsLike(String nameParamsLike) {
this.nameParamsLike = nameParamsLike;
}
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 String getSortColumn() {
return sortColumn;
}
public void setSortColumn(String sortColumn) {
this.sortColumn = sortColumn;
}
public String getSortType() {
return sortType;
}
public void setSortType(String sortType) {
this.sortType = sortType;
}
public String getNameParams() {
return nameParams;
}
public void setNameParams(String nameParams) {
this.nameParams = nameParams;
}
public Integer getExecType() {
return execType;
}
public void setExecType(Integer execType) {
this.execType = execType;
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
}
\ No newline at end of file
package com.gic.haoban.manage.api.qdto.moment;
import java.io.Serializable;
import java.util.Date;
public class SendResultQDTO implements Serializable {
private String wxEnterpriseId ;
private String staffId ;
private String clerkId ;
private Long planId ;
/**
* 发送时间
*/
private Date sendTime ;
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public Date getSendTime() {
return sendTime;
}
public void setSendTime(Date sendTime) {
this.sendTime = sendTime;
}
}
package com.gic.haoban.manage.api.qdto.moment;
import com.gic.api.base.commons.BasePageInfo;
import java.io.Serializable;
public class TaskListWxaQDTO extends BasePageInfo {
private String wxEnterpriseId ;
private String enterpriseId ;
private String storeId ;
private String staffId ;
private String clerkId ;
/**
* 指定查询的导购ID
*/
private String execClerkId ;
/**
* 0已失效 1未完成 2已完成
*/
private Integer taskStatus ;
private Long planId ;
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 String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getExecClerkId() {
return execClerkId;
}
public void setExecClerkId(String execClerkId) {
this.execClerkId = execClerkId;
}
public Integer getTaskStatus() {
return taskStatus;
}
public void setTaskStatus(Integer taskStatus) {
this.taskStatus = taskStatus;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
}
package com.gic.haoban.manage.api.qdto.moment;
import java.io.Serializable;
public class TaskNumQDTO implements Serializable {
private String wxEnterpriseId ;
private String enterpriseId ;
private String storeId ;
private String clerkId ;
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 String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
}
package com.gic.haoban.manage.api.service.moment;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.moment.*;
import com.gic.haoban.manage.api.qdto.moment.*;
public interface QwMomentApiService {
ServiceResponse<QwMomentPlanDTO> save(QwMomentPlanDTO plan) ;
ServiceResponse<Void> del(Long planId) ;
ServiceResponse<Void> stop(Long planId) ;
ServiceResponse<QwMomentPlanDTO> detail(Long planId) ;
ServiceResponse<Page<QwMomentPlanDTO>> planList(QwMomentPlanQDTO qdto) ;
ServiceResponse<Page<QwMomentPlanAttendDTO>> attendList(PlanClerkListQDTO qdto) ;
ServiceResponse<Page<QwMomentPlanDataDTO>> dataList(PlanDataListQDTO qdto) ;
/**
* 立即发送朋友圈
* @param params
*/
void initTaskClerk(String params) ;
/**
* 定时发送任务创建通知/执行
* @param params
*/
void sendPlanNoticeTimer(String params) ;
/**
* 好办小程序-活动数
* @param qdto
* @return
*/
ServiceResponse<Integer> getTaskNum(TaskNumQDTO qdto) ;
/**
* 好办小程序活动列表
* @param qdto
* @return
*/
ServiceResponse<Page<QwMomentPlanWxaDTO>> planListWxa(PlanListWxaQDTO qdto) ;
/**
* 好办小程序活动任务列表
* @param qdto
* @return
*/
ServiceResponse<Page<TaskListWxaDTO>> taskListWxa(TaskListWxaQDTO qdto) ;
/**
* 好办任务详情
* @param planId
* @param execClerkId
* @return
*/
ServiceResponse<TaskDetailDTO> taskDetail(Long planId, String execClerkId);
/**
* 完成任务
* @param qdto
* @return
*/
ServiceResponse<Void> finishTask(SendResultQDTO qdto);
/**
* 定时拉取企微数据
* @param params
* @return
*/
ServiceResponse<Void> qwDataTimer(String params) ;
}
......@@ -10,29 +10,13 @@ import java.util.List;
public interface QywxTagRelationMapper {
/**
*/
int deleteByPrimaryKey(String qywxTagRelationId);
/**
*/
int insert(TabQywxTagRelation record);
/**
*/
int insertSelective(TabQywxTagRelation record);
/**
*/
// TabQywxTagRelation selectByPrimaryKey(String qywxTagRelationId);
/**
*/
int updateByPrimaryKeySelective(TabQywxTagRelation record);
/**
*/
int updateByPrimaryKey(TabQywxTagRelation record);
/**
* 查询企业下所有同步的
*
* @param wxEnterpriseId
......
......@@ -74,7 +74,5 @@ public interface GroupChatPlanOwnerLogMapper {
int getInvalidTask(@Param("enterpriseId")String enterpriseId , @Param("clerkId")String clerkId , @Param("time")Date time ) ;
int getOverdueTask(@Param("enterpriseId")String enterpriseId , @Param("clerkId")String clerkId , @Param("time")Date time ) ;
int getTaskNum(@Param("enterpriseId")String enterpriseId, @Param("clerkId")String clerkId, @Param("storeId")String storeId, @Param("staffId")String staffId);
}
\ No newline at end of file
package com.gic.haoban.manage.service.dao.mapper.moment;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanAttendDTO;
import com.gic.haoban.manage.api.dto.moment.TaskDetailDTO;
import com.gic.haoban.manage.api.dto.moment.TaskListWxaDTO;
import com.gic.haoban.manage.api.qdto.moment.PlanClerkListQDTO;
import com.gic.haoban.manage.api.qdto.moment.TaskListWxaQDTO;
import com.gic.haoban.manage.service.entity.moment.TabQwMomentPlanAttend;
import com.gic.haoban.manage.service.pojo.bo.moment.CountBO;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
public interface QwMomentPlanAttendMapper {
TabQwMomentPlanAttend getById(Long attendId) ;
void batchInsert(List<TabQwMomentPlanAttend> list) ;
/**
* 查询已经存在的导购
* @param planId
* @param clerkIdList
* @return
*/
List<String> listExistClerkIds(@Param("planId") Long planId , @Param("list") List<String> clerkIdList) ;
List<QwMomentPlanAttendDTO> listClerk(@Param("planId")Long planId , @Param("statusFlag")Integer statusFlag);
List<TabQwMomentPlanAttend> listForData(@Param("planId")Long planId);
/**
* 删除
* @param planId
* @param clerkIdList
*/
void delClerks(@Param("planId") Long planId , @Param("list") List<String> clerkIdList) ;
List<QwMomentPlanAttendDTO> list(PlanClerkListQDTO qdto);
TaskDetailDTO taskDetail(@Param("planId") Long planId, @Param("clerkId") String execClerkId);
TabQwMomentPlanAttend getByStaff(@Param("planId") Long planId, @Param("staffId") String staffId);
List<TaskListWxaDTO> taskListWxa(TaskListWxaQDTO qdto);
void finishTask(@Param("attendId")Long attendId, @Param("sendTime")Date sendTime );
void updateMomentId(@Param("id") Long id, @Param("momentId") String jobId);
void updateFail(@Param("planId") Long planId, @Param("list") List<String> clerkIdList , @Param("reason") String reason) ;
void updateSuccess(@Param("planId") Long planId, @Param("list") List<String> clerkIdList) ;
void updateSuccessStaff(@Param("planId") Long planId, @Param("clerkId") String clerkId , @Param("staffId") String staffId) ;
void updateQwData(@Param("planId") Long planId, @Param("clerkId") String clerkId, @Param("likeCount")int likeCount, @Param("commentCount")int commentCount);
CountBO getQwCount(@Param("planId")Long planId);
int getTotalTask(@Param("enterpriseId")String enterpriseId , @Param("clerkId")String clerkId , @Param("time")Date time ) ;
int getInvalidTask(@Param("enterpriseId")String enterpriseId , @Param("clerkId")String clerkId , @Param("time")Date time ) ;
}
package com.gic.haoban.manage.service.dao.mapper.moment;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanDataDTO;
import com.gic.haoban.manage.api.qdto.moment.PlanDataListQDTO;
import com.gic.haoban.manage.service.entity.moment.TabQwMomentPlanData;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface QwMomentPlanDataMapper {
void batchInsert(List<TabQwMomentPlanData> list) ;
List<QwMomentPlanDataDTO> list(PlanDataListQDTO qdto);
void delAll(@Param("planId") Long planId, @Param("clerkId")String clerkId);
}
package com.gic.haoban.manage.service.dao.mapper.moment;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanDTO;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanWxaDTO;
import com.gic.haoban.manage.api.qdto.moment.PlanListWxaQDTO;
import com.gic.haoban.manage.api.qdto.moment.QwMomentPlanQDTO;
import com.gic.haoban.manage.api.qdto.moment.TaskNumQDTO;
import com.gic.haoban.manage.service.entity.moment.TabQwMomentPlan;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
public interface QwMomentPlanMapper {
void insert(TabQwMomentPlan tab) ;
void update(TabQwMomentPlan tab) ;
void del(@Param("planId") Long planId) ;
void stop(@Param("planId") Long planId) ;
TabQwMomentPlan getById(@Param("planId") Long planId) ;
void updateClerkNum(@Param("planId")Long planId, @Param("totalNum")int totalNum , @Param("taskClerkNum")int taskClerkNum , @Param("doneNum")int doneNum);
List<TabQwMomentPlan> list(QwMomentPlanQDTO qdto);
List<QwMomentPlanWxaDTO> planListWxa(PlanListWxaQDTO qdto);
int getTaskNum(TaskNumQDTO qdto);
void updateJobid(@Param("planId") Long planId, @Param("jobId") String jobId);
void updateMomentId(@Param("planId") Long planId, @Param("momentId") String jobId);
void updateQwData(@Param("planId") Long planId, @Param("like") int like, @Param("comment") int comment);
List<Long> listForData(@Param("type")int type);
List<TabQwMomentPlan> listForStop(@Param("time")Date time);
}
package com.gic.haoban.manage.service.entity.moment;
import java.io.Serializable;
import java.util.Date;
/**
*
* @ClassName: TabHaobanQwMomentPlan
* @Description: TODO
* @Author 徐高华
* @Date 2025年03月05日 15:46:30
* @Modify
* @CopyRight 杭州
*/
public class TabQwMomentPlan implements Serializable{
private static final long serialVersionUID = 85646353131100L;
/**活动id*/
private Long planId;
/**名称*/
private String title;
/**描述*/
private String remark;
/**开始日期*/
private Date beginDate;
/**结束日期*/
private Date endDate;
/**几天后失效*/
private Integer expireDays;
/**执行方式 0企微1好办小程序*/
private Integer execType;
/**企微id*/
private String wxEnterpriseId;
/**企业id*/
private String enterpriseId;
/**创建人*/
private String creatorId;
/**创建人*/
private String creatorName;
/**1有效 2终止*/
private Integer statusFlag;
/**1删0有效*/
private Integer deleteFlag;
/**1立即发布2定时发布*/
private Integer publishType;
/**发布时间*/
private Date publishTime;
/**0全部导购 1部分导购*/
private Integer planClerkType;
/**总任务数*/
private Integer totalNum;
/**执行任务数*/
private Integer doneNum;
/**终止时间*/
private Date stopTime;
/**0自主上传 1内容*/
private Integer mediaType;
/**素材json*/
private String mediaInfo;
/**素材回显内容*/
private String mediaInfoShow;
/**创建时间*/
private Date createTime;
/**更新时间*/
private Date updateTime;
/**总点赞数*/
private Integer totalLikeCount;
/**总评论数*/
private Integer totalCommentCount;
/**企微jobid*/
private String qwJobid;
/**朋友圈id */
private String momentId ;
/**完成率*/
private Integer execRate;
private Integer taskClerkNum ;
/**
* 链接开关
*/
private Integer mediaLinkFlag ;
public Integer getMediaLinkFlag() {
return mediaLinkFlag;
}
public void setMediaLinkFlag(Integer mediaLinkFlag) {
this.mediaLinkFlag = mediaLinkFlag;
}
public Integer getTaskClerkNum() {
return taskClerkNum;
}
public void setTaskClerkNum(Integer taskClerkNum) {
this.taskClerkNum = taskClerkNum;
}
public String getMomentId() {
return momentId;
}
public void setMomentId(String momentId) {
this.momentId = momentId;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Date getBeginDate() {
return beginDate;
}
public void setBeginDate(Date beginDate) {
this.beginDate = beginDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public Integer getExpireDays() {
return expireDays;
}
public void setExpireDays(Integer expireDays) {
this.expireDays = expireDays;
}
public Integer getExecType() {
return execType;
}
public void setExecType(Integer execType) {
this.execType = execType;
}
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 String getCreatorId() {
return creatorId;
}
public void setCreatorId(String creatorId) {
this.creatorId = creatorId;
}
public String getCreatorName() {
return creatorName;
}
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public Integer getPublishType() {
return publishType;
}
public void setPublishType(Integer publishType) {
this.publishType = publishType;
}
public Date getPublishTime() {
return publishTime;
}
public void setPublishTime(Date publishTime) {
this.publishTime = publishTime;
}
public Integer getPlanClerkType() {
return planClerkType;
}
public void setPlanClerkType(Integer planClerkType) {
this.planClerkType = planClerkType;
}
public Integer getTotalNum() {
return totalNum;
}
public void setTotalNum(Integer totalNum) {
this.totalNum = totalNum;
}
public Integer getDoneNum() {
return doneNum;
}
public void setDoneNum(Integer doneNum) {
this.doneNum = doneNum;
}
public Date getStopTime() {
return stopTime;
}
public void setStopTime(Date stopTime) {
this.stopTime = stopTime;
}
public Integer getMediaType() {
return mediaType;
}
public void setMediaType(Integer mediaType) {
this.mediaType = mediaType;
}
public String getMediaInfo() {
return mediaInfo;
}
public void setMediaInfo(String mediaInfo) {
this.mediaInfo = mediaInfo;
}
public String getMediaInfoShow() {
return mediaInfoShow;
}
public void setMediaInfoShow(String mediaInfoShow) {
this.mediaInfoShow = mediaInfoShow;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getTotalLikeCount() {
return totalLikeCount;
}
public void setTotalLikeCount(Integer totalLikeCount) {
this.totalLikeCount = totalLikeCount;
}
public Integer getTotalCommentCount() {
return totalCommentCount;
}
public void setTotalCommentCount(Integer totalCommentCount) {
this.totalCommentCount = totalCommentCount;
}
public String getQwJobid() {
return qwJobid;
}
public void setQwJobid(String qwJobid) {
this.qwJobid = qwJobid;
}
public Integer getExecRate() {
return execRate;
}
public void setExecRate(Integer execRate) {
this.execRate = execRate;
}
}
\ No newline at end of file
package com.gic.haoban.manage.service.entity.moment;
import java.io.Serializable;
import java.util.Date;
/**
*
* @ClassName: TabHaobanQwMomentPlanAttend
* @Description: TODO
* @Author 徐高华
* @Date 2025年03月05日 15:21:31
* @Modify
* @CopyRight 杭州
*/
public class TabQwMomentPlanAttend implements Serializable{
private static final long serialVersionUID = 85681326319600L;
/**id*/
private Long attendId;
/**计划id*/
private Long planId;
/**企微企业id*/
private String wxEnterpriseId;
/**企业id*/
private String enterpriseId;
/**staff*/
private String staffId;
/**导购*/
private String clerkId;
/**导购code*/
private String clerkCode;
/**导购名称*/
private String clerkName;
/**创建时间*/
private Date createTime;
/**更新时间*/
private Date updateTime;
/**是否删除*/
private Integer deleteFlag;
/**评论数*/
private Integer commentCount;
/**点赞数*/
private Integer likeCount;
/**1待执行 2已执行*/
private Integer taskStatus;
/**任务执行时间*/
private Date sendTime;
/**企微朋友圈id*/
private String momentId;
/**企微获取数据时间*/
private Date qwDataTime;
/**门店id*/
private String storeId;
// 0待下发 1已下发
private Integer statusFlag ;
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Long getAttendId() {
return attendId;
}
public void setAttendId(Long attendId) {
this.attendId = attendId;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
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 String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
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 Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public Integer getCommentCount() {
return commentCount;
}
public void setCommentCount(Integer commentCount) {
this.commentCount = commentCount;
}
public Integer getLikeCount() {
return likeCount;
}
public void setLikeCount(Integer likeCount) {
this.likeCount = likeCount;
}
public Integer getTaskStatus() {
return taskStatus;
}
public void setTaskStatus(Integer 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;
}
}
\ No newline at end of file
package com.gic.haoban.manage.service.entity.moment;
import java.io.Serializable;
import java.util.Date;
/**
*
* @ClassName: TabHaobanQwMomentPlanData
* @Description: TODO
* @Author 徐高华
* @Date 2025年03月05日 11:24:04
* @Modify
* @CopyRight 杭州
*/
public class TabQwMomentPlanData implements Serializable{
private static final long serialVersionUID = 69664410786500L;
/**id*/
private Long dataId;
/**计划id*/
private Long planId;
/**企微企业id*/
private String wxEnterpriseId;
/**企业id*/
private String enterpriseId;
/**staff*/
private String staffId;
/**导购*/
private String clerkId;
private String clerkCode ;
private String clerkName ;
/**门店id*/
private String storeId;
/**客户id*/
private String memberId;
/**创建时间*/
private Date createTime;
/**更新时间*/
private Date updateTime;
/**是否删除*/
private Integer deleteFlag;
/**评论时间*/
private Date commentTime;
/**点赞时间*/
private Date likeTime;
/**是否评论*/
private Integer commentFlag;
/**是否点赞*/
private Integer likeFlag;
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 Long getDataId() {
return dataId;
}
public void setDataId(Long dataId) {
this.dataId = dataId;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
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 String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer 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 Integer getCommentFlag() {
return commentFlag;
}
public void setCommentFlag(Integer commentFlag) {
this.commentFlag = commentFlag;
}
public Integer getLikeFlag() {
return likeFlag;
}
public void setLikeFlag(Integer likeFlag) {
this.likeFlag = likeFlag;
}
}
\ No newline at end of file
package com.gic.haoban.manage.service.pojo;
import java.io.Serializable;
public class ClerkStaffBO implements Serializable {
private String clerkId ;
private String staffId ;
// 0成功 1导购已删除 2未绑定成员
private int code ;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
}
package com.gic.haoban.manage.service.pojo.bo.moment;
public class CountBO {
private Integer likeCount ;
private Integer commentCount ;
public Integer getLikeCount() {
return likeCount;
}
public void setLikeCount(Integer likeCount) {
this.likeCount = likeCount;
}
public Integer getCommentCount() {
return commentCount;
}
public void setCommentCount(Integer commentCount) {
this.commentCount = commentCount;
}
}
package com.gic.haoban.manage.service.pojo.bo.moment;
public class StaffClerkBO {
private String staffId ;
private String clerkId ;
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
}
......@@ -233,6 +233,14 @@ public class GroupChatPlanOwnerLogServiceImpl implements GroupChatPlanOwnerLogSe
qdto.setClerkId(qdto.getSearchClerkId());
}
}
if(clerkType > 1) {
storeId = qdto.getStoreId();
clerkId = null;
qdto.setClerkId(null);
if (StringUtils.isNotBlank(qdto.getSearchClerkId())) {
qdto.setClerkId(qdto.getSearchClerkId());
}
}
qdto.setStoreId(storeId);
List<GroupChatPlanOwnerLogDTO> list = this.groupChatPlanOwnerLogMapper.listOwnerLogPageForWxa(qdto);
if (CollectionUtils.isNotEmpty(list)) {
......
......@@ -23,6 +23,7 @@ import com.gic.haoban.manage.api.util.notify.NoticeMessageUtil;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanStaffClerkRelationMapper;
import com.gic.haoban.manage.service.dao.mapper.WxEnterpriseRelatedMapper;
import com.gic.haoban.manage.service.dao.mapper.chat.*;
import com.gic.haoban.manage.service.dao.mapper.moment.QwMomentPlanAttendMapper;
import com.gic.haoban.manage.service.service.StaffClerkRelationService;
import com.gic.haoban.manage.service.service.content.impl.GroupMessageServiceImpl;
import com.gic.haoban.manage.service.util.StreamUtils;
......@@ -139,6 +140,8 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
private StaffClerkRelationService staffClerkRelationService ;
@Autowired
private SettingApiService settingApiService ;
@Autowired
private QwMomentPlanAttendMapper qwMomentPlanAttendMapper ;
private static GicMQClient mqClient = GICMQClientUtil.getClientInstance();
......@@ -303,7 +306,7 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
public Page<GroupChatPlanBO> listPage(GroupChatPlanSearchQDTO qdto, BasePageInfo basePageInfo) {
if (StringUtils.isNotBlank(qdto.getSearchParams())) {
String params = qdto.getSearchParams();
qdto.setSearchParams("%" + params + "%");
qdto.setSearchParamsLike("%" + params + "%");
}
PageHelper.startPage(basePageInfo);
List<TabGroupChatPlan> list = this.groupChatPlanMapper.list(qdto);
......@@ -951,8 +954,13 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
logger.info("clerkId={}",total);
if(total > 0) {
int invalid = this.groupChatPlanOwnerLogMapper.getInvalidTask(enterpriseId,clerkId,date) ;
int overdue = this.groupChatPlanOwnerLogMapper.getOverdueTask(enterpriseId,clerkId,date) ;
this.qywxGroupSendCanvasApiService.saveNoticeLog(enterpriseId,clerkId,total,overdue,invalid,"chat") ;
this.qywxGroupSendCanvasApiService.saveNoticeLog(enterpriseId,clerkId,total,0,invalid,"chat") ;
}
// 朋友圈
int momentTotal = this.qwMomentPlanAttendMapper.getTotalTask(enterpriseId,clerkId,date) ;
if(momentTotal > 0) {
int invalid = this.qwMomentPlanAttendMapper.getInvalidTask(enterpriseId,clerkId,date) ;
this.qywxGroupSendCanvasApiService.saveNoticeLog(enterpriseId,clerkId,momentTotal,0,invalid,"moment") ;
}
}
}
......
......@@ -149,7 +149,7 @@ public class MaterialServiceImpl implements MaterialService {
Integer materialType = materialDTO.getMaterialType();
String madiaId = materialDTO.getMediaId();
//需要上传的类型
List<Integer> typeList = Arrays.asList(2, 4, 5, 6 , 7);
List<Integer> typeList = Arrays.asList(2, 3, 4, 5, 6 , 7);
if (typeList.contains(materialType)) {
madiaId = this.reUpdalodMetail(materialId,from);
}
......@@ -202,6 +202,10 @@ public class MaterialServiceImpl implements MaterialService {
fileType = QywxMediaTypeEnum.IMAGE;
url = old.getImgUrl();
}
if (type ==3) {
fileType = QywxMediaTypeEnum.IMAGE;
url = old.getImgUrl();
}
if (type == 4) {
fileType = QywxMediaTypeEnum.VIDEO;
url = old.getLink();
......
......@@ -230,8 +230,12 @@ public class QywxSendServiceImpl implements QywxSendService {
QywxLinkMaterialDTO linkMaterialDTO = new QywxLinkMaterialDTO();
linkMaterialDTO.setTitle(material.getMaterialTitle());
linkMaterialDTO.setPicUrl(material.getWxImgUrl());
if(StringUtils.isNotBlank(linkMaterialDTO.getPicUrl())) {
linkMaterialDTO.setPicUrl(material.getImgUrl());
}
linkMaterialDTO.setDesc(material.getMaterialDesc());
linkMaterialDTO.setUrl(material.getLink());
linkMaterialDTO.setMedia_id(maerialId);
dto.setMsgType(QywxMediaTypeEnum.LINK.getName());
dto.setLink(linkMaterialDTO);
} else if (materialType == 4) {
......
package com.gic.haoban.manage.service.service.moment;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanAttendDTO;
import com.gic.haoban.manage.api.dto.moment.TaskDetailDTO;
import com.gic.haoban.manage.api.dto.moment.TaskListWxaDTO;
import com.gic.haoban.manage.api.qdto.moment.PlanClerkListQDTO;
import com.gic.haoban.manage.api.qdto.moment.SendResultQDTO;
import com.gic.haoban.manage.api.qdto.moment.TaskListWxaQDTO;
import com.gic.haoban.manage.service.entity.moment.TabQwMomentPlan;
import com.gic.haoban.manage.service.pojo.ClerkStaffBO;
import java.util.Date;
import java.util.List;
public interface QwMomentPlanAttendService {
ServiceResponse<Page<QwMomentPlanAttendDTO>> attendList(PlanClerkListQDTO qdto) ;
/**
* 导购
* @param enterpriseId
* @param planId
*/
void saveClerk(String wxEnterpriseId , String enterpriseId, Long planId , List<ClerkStaffBO> clerkStaffList , int statusFlag) ;
ServiceResponse<TaskDetailDTO> taskDetail(Long planId, String execClerkId);
ServiceResponse<Page<TaskListWxaDTO>> taskListWxa(TaskListWxaQDTO qdto);
ServiceResponse<Void> finishTask(SendResultQDTO qdto);
void updateMomentId(Long attendId, int times) ;
void updateStatusFlag(TabQwMomentPlan plan) ;
void finishTaskUpdateData(Long attendId , Long planId , Date sendDate) ;
}
package com.gic.haoban.manage.service.service.moment;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanDataDTO;
import com.gic.haoban.manage.api.qdto.moment.PlanDataListQDTO;
import com.gic.haoban.manage.service.entity.moment.TabQwMomentPlanAttend;
import com.gic.wechat.api.dto.qywx.moment.MomentResultDTO;
public interface QwMomentPlanDataService {
ServiceResponse<Page<QwMomentPlanDataDTO>> dataList(PlanDataListQDTO qdto) ;
ServiceResponse<Void> save(TabQwMomentPlanAttend task , MomentResultDTO dto) ;
}
package com.gic.haoban.manage.service.service.moment;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanDTO;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanWxaDTO;
import com.gic.haoban.manage.api.qdto.moment.PlanListWxaQDTO;
import com.gic.haoban.manage.api.qdto.moment.QwMomentPlanQDTO;
import com.gic.haoban.manage.api.qdto.moment.TaskNumQDTO;
import com.gic.haoban.manage.service.entity.moment.TabQwMomentPlan;
import com.gic.haoban.manage.service.entity.moment.TabQwMomentPlanAttend;
public interface QwMomentPlanService {
ServiceResponse<QwMomentPlanDTO> save(QwMomentPlanDTO plan) ;
ServiceResponse<Void> del(Long planId) ;
ServiceResponse<Void> stop(Long planId) ;
ServiceResponse<QwMomentPlanDTO> detail(Long planId) ;
ServiceResponse<Page<QwMomentPlanDTO>> planList(QwMomentPlanQDTO qdto) ;
void initTaskClerk(String params);
void sendPlanNoticeTimer(String params);
ServiceResponse<Integer> getTaskNum(TaskNumQDTO qdto);
ServiceResponse<Page<QwMomentPlanWxaDTO>> planListWxa(PlanListWxaQDTO qdto);
void getQwData(Long planId) ;
/**
* 拉取企微点赞、评论
* @param task
*/
void getQwData(TabQwMomentPlanAttend task , int type, String planMomentId) ;
void getMomentId(Long planId) ;
void sendToQiwei(TabQwMomentPlan plan) ;
/**
* 是否已发布
* @param planId
*/
void getQwPublishData(Long planId , String cursor) ;
void qwDataTimer(String params);
}
package com.gic.haoban.manage.service.service.moment.impl;
import com.alibaba.fastjson.JSONObject;
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.PageHelperUtils;
import com.gic.commons.util.UniqueIdUtils;
import com.gic.haoban.manage.api.dto.CommonMQDTO;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanAttendDTO;
import com.gic.haoban.manage.api.dto.moment.TaskDetailDTO;
import com.gic.haoban.manage.api.dto.moment.TaskListWxaDTO;
import com.gic.haoban.manage.api.qdto.moment.PlanClerkListQDTO;
import com.gic.haoban.manage.api.qdto.moment.SendResultQDTO;
import com.gic.haoban.manage.api.qdto.moment.TaskListWxaQDTO;
import com.gic.haoban.manage.api.service.HaobanCommonMQApiService;
import com.gic.haoban.manage.api.service.StaffClerkRelationApiService;
import com.gic.haoban.manage.service.dao.mapper.StaffMapper;
import com.gic.haoban.manage.service.dao.mapper.moment.QwMomentPlanAttendMapper;
import com.gic.haoban.manage.service.dao.mapper.moment.QwMomentPlanMapper;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.moment.TabQwMomentPlan;
import com.gic.haoban.manage.service.entity.moment.TabQwMomentPlanAttend;
import com.gic.haoban.manage.service.pojo.ClerkStaffBO;
import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.service.moment.QwMomentPlanAttendService;
import com.gic.haoban.manage.service.service.moment.QwMomentPlanService;
import com.gic.haoban.manage.service.service.notify.PendingTaskService;
import com.gic.wechat.api.dto.qdto.group.QywxMomentInfoQDTO;
import com.gic.wechat.api.dto.qywx.group.QywxMomentRespDTO;
import com.gic.wechat.api.service.qywx.QywxSuiteApiService;
import com.github.pagehelper.PageHelper;
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;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
@Service("qwMomentPlanAttendService")
public class QwMomentPlanAttendServiceImpl implements QwMomentPlanAttendService {
private final Logger logger = LogManager.getLogger(this.getClass());
@Autowired
private QwMomentPlanAttendMapper qwMomentPlanAttendMapper ;
@Autowired
private ClerkService clerkService ;
@Autowired
private QywxSuiteApiService qywxSuiteApiService ;
@Autowired
private WxEnterpriseService wxEnterpriseService ;
@Autowired
private StaffMapper staffMapper ;
@Autowired
private QwMomentPlanMapper qwMomentPlanMapper ;
@Autowired
private StaffClerkRelationApiService staffClerkRelationApiService ;
@Autowired
private QwMomentPlanService qwMomentPlanService ;
@Autowired
private PendingTaskService pendingTaskService ;
@Autowired
private HaobanCommonMQApiService haobanCommonMQApiService ;
@Override
public ServiceResponse<Page<QwMomentPlanAttendDTO>> attendList(PlanClerkListQDTO qdto) {
// 0已失效 1待完成 2已完成
Integer sendStatus = qdto.getSendStatus() ;
TabQwMomentPlan plan = this.qwMomentPlanMapper.getById(qdto.getPlanId()) ;
boolean isEnd = plan.getStatusFlag()==2 || plan.getEndDate().getTime() <= System.currentTimeMillis() ;
if(null != sendStatus && isEnd && sendStatus==1) {
return ServiceResponse.success(new Page<>());
}
if(null != sendStatus && !isEnd && sendStatus==0) {
return ServiceResponse.success(new Page<>());
}
PageHelper.startPage(qdto);
if(StringUtils.isNotEmpty(qdto.getClerkParams())) {
qdto.setClerkParamsLike("%"+qdto.getClerkParams()+"%");
}
if(StringUtils.isNotBlank(qdto.getStaffName())) {
qdto.setStaffNameLike("%"+qdto.getStaffName()+"%");
}
if(StringUtils.isBlank(qdto.getSortColumn())) {
qdto.setSortColumn("create_time");
}
if(StringUtils.isBlank(qdto.getSortType())) {
qdto.setSortType("desc");
}
List<QwMomentPlanAttendDTO> list = this.qwMomentPlanAttendMapper.list(qdto);
Page<QwMomentPlanAttendDTO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list, QwMomentPlanAttendDTO.class);
if(CollectionUtils.isNotEmpty(retPage.getResult()) && null != sendStatus && sendStatus==0) {
retPage.getResult().forEach(o->o.setTaskStatus(0));
}
return ServiceResponse.success(retPage);
}
@Override
public void saveClerk(String wxEnterpriseId , String enterpriseId, Long planId , List<ClerkStaffBO> clerkStaffList , int statusFlag) {
if(CollectionUtils.isEmpty(clerkStaffList)) {
return;
}
List<String> clerkIdList = clerkStaffList.stream().map(o->o.getClerkId()).collect(Collectors.toList());
List<String> existClerkIdList = this.qwMomentPlanAttendMapper.listExistClerkIds(planId,clerkIdList) ;
if(CollectionUtils.isNotEmpty(existClerkIdList)) {
clerkIdList = clerkIdList.stream().filter(o->!existClerkIdList.contains(o)).collect(Collectors.toList());
}
if(CollectionUtils.isEmpty(clerkIdList)) {
logger.info("所有导购都已添加过");
return ;
}
List<TabQwMomentPlanAttend> list = new ArrayList<>() ;
for(ClerkStaffBO bo : clerkStaffList) {
String clerkId = bo.getClerkId() ;
ClerkDTO clerkDTO = this.clerkService.getclerkById(clerkId) ;
if(null != clerkDTO) {
TabQwMomentPlanAttend attend = new TabQwMomentPlanAttend() ;
attend.setAttendId(UniqueIdUtils.uniqueLong());
attend.setPlanId(planId);
attend.setWxEnterpriseId(wxEnterpriseId);
attend.setEnterpriseId(enterpriseId);
attend.setStaffId(bo.getStaffId());
attend.setClerkId(clerkId);
attend.setClerkCode(clerkDTO.getClerkCode());
attend.setClerkName(clerkDTO.getClerkName());
attend.setStoreId(clerkDTO.getStoreId());
attend.setTaskStatus(1);
attend.setStatusFlag(statusFlag);
list.add(attend) ;
}
}
this.qwMomentPlanAttendMapper.batchInsert(list);
if(statusFlag == 1) {
this.qwMomentPlanMapper.updateClerkNum(planId,list.size(), list.size(), -1);
}else {
this.qwMomentPlanMapper.updateClerkNum(planId,list.size(), -1, -1);
}
}
@Override
public void updateStatusFlag(TabQwMomentPlan plan) {
List<QwMomentPlanAttendDTO> allList = this.qwMomentPlanAttendMapper.listClerk(plan.getPlanId(),0) ;
if(CollectionUtils.isEmpty(allList)) {
return;
}
int totalSize = allList.size() ;
List<String> clerkIdList = allList.stream().map(o->o.getClerkId()).collect(Collectors.toList());
List<StaffClerkRelationDTO> list = this.staffClerkRelationApiService.listByClerkIdsWxEnterpriseId(clerkIdList,plan.getWxEnterpriseId()) ;
Map<String,String> map = list.stream().collect(Collectors.toMap(o->o.getClerkId(),StaffClerkRelationDTO::getStaffId,(k1, k2)->k1)) ;
if(CollectionUtils.isEmpty(list)) {
this.qwMomentPlanAttendMapper.updateFail(plan.getPlanId(), clerkIdList,"任务下发时未绑定企微号");
}else {
List<String> noStaff = allList.stream().filter(o->map.keySet().contains(o.getClerkId())).map(o->o.getClerkId()).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(noStaff)) {
this.qwMomentPlanAttendMapper.updateFail(plan.getPlanId(), clerkIdList,"任务下发时未绑定企微号");
}
List<String> successList = new ArrayList<>() ;
for(QwMomentPlanAttendDTO dto : allList) {
String cid = dto.getClerkId() ;
String sid = dto.getStaffId() ;
if(map.get(cid) != null && map.get(cid).equals(sid)) {
successList.add(cid) ;
}else {
this.qwMomentPlanAttendMapper.updateSuccessStaff(plan.getPlanId(),cid,map.get(cid));
}
}
if(CollectionUtils.isNotEmpty(successList)) {
this.qwMomentPlanAttendMapper.updateSuccess(plan.getPlanId(), successList);
}
}
int failCount = 0 ;
List<QwMomentPlanAttendDTO> failList = this.qwMomentPlanAttendMapper.listClerk(plan.getPlanId(),2) ;
if(CollectionUtils.isNotEmpty(failList)) {
failCount = failList.size() ;
}
this.qwMomentPlanMapper.updateClerkNum(plan.getPlanId(), totalSize, totalSize-failCount,-1);
}
@Override
public ServiceResponse<TaskDetailDTO> taskDetail(Long planId, String execClerkId) {
TaskDetailDTO dto = this.qwMomentPlanAttendMapper.taskDetail(planId,execClerkId) ;
if(null == dto) {
return ServiceResponse.failure("9999","活动不存在或已删除");
}
Long attendId = dto.getAttendId() ;
TabQwMomentPlanAttend attend = this.qwMomentPlanAttendMapper.getById(attendId) ;
TabQwMomentPlan plan = this.qwMomentPlanMapper.getById(planId) ;
this.qwMomentPlanService.getQwData(attend,1,plan.getMomentId());
return ServiceResponse.success(dto);
}
@Override
public ServiceResponse<Page<TaskListWxaDTO>> taskListWxa(TaskListWxaQDTO qdto) {
PageHelper.startPage(qdto);
List<TaskListWxaDTO> list = this.qwMomentPlanAttendMapper.taskListWxa(qdto);
Page<TaskListWxaDTO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list, TaskListWxaDTO.class);
return ServiceResponse.success(retPage);
}
@Override
public ServiceResponse<Void> finishTask(SendResultQDTO qdto) {
Long planId = qdto.getPlanId() ;
String clerkId = qdto.getClerkId() ;
TaskDetailDTO dto = this.qwMomentPlanAttendMapper.taskDetail(planId,clerkId) ;
if(null == dto) {
return ServiceResponse.failure("9999","任务不存在");
}
this.finishTaskUpdateData(dto.getAttendId(),planId,qdto.getSendTime()) ;
String momentId = this.getMomentId(qdto.getStaffId() , qdto.getSendTime() , 0) ;
if(StringUtils.isNotBlank(momentId)) {
this.qwMomentPlanAttendMapper.updateMomentId(dto.getAttendId(),momentId);
}else {
logger.info("未获取到,延迟获取={},{}",planId,qdto.getStaffId()) ;
CommonMQDTO mq = new CommonMQDTO() ;
mq.setType(7) ;
Map<String,String> map = new HashMap<>() ;
map.put("attendId",dto.getAttendId()+"") ;
map.put("times", "1");
mq.setParams(map);
this.haobanCommonMQApiService.putCommonDelayMessage(mq, 10);
}
return ServiceResponse.success() ;
}
@Override
public void updateMomentId(Long attendId , int times) {
TabQwMomentPlanAttend tab = this.qwMomentPlanAttendMapper.getById(attendId) ;
String momentId = this.getMomentId(tab.getStaffId() , tab.getSendTime() , times) ;
if(StringUtils.isNotBlank(momentId)) {
this.qwMomentPlanAttendMapper.updateMomentId(attendId, momentId);
}else {
if(times >= 10) {
return;
}
logger.info("未获取到,延迟获取={},{}",tab.getPlanId(),tab.getStaffId()) ;
CommonMQDTO mq = new CommonMQDTO() ;
mq.setType(7) ;
Map<String,String> map = new HashMap<>() ;
map.put("attendId",attendId+"") ;
map.put("times", (times+1)+"");
mq.setParams(map);
this.haobanCommonMQApiService.putCommonDelayMessage(mq, 10);
}
}
@Override
public void finishTaskUpdateData(Long attendId , Long planId , Date sendDate) {
TabQwMomentPlanAttend attend = this.qwMomentPlanAttendMapper.getById(attendId) ;
if(attend.getTaskStatus()==2) {
return;
}
this.qwMomentPlanAttendMapper.finishTask(attendId,sendDate) ;
this.qwMomentPlanMapper.updateClerkNum(planId,-1,-1,1);
// 完成代办
this.pendingTaskService.updateFinish(attendId+"") ;
}
private String getMomentId(String staffId , Date sendTime , int times) {
Date startTime = DateUtil.addNumForSecond(sendTime,-(60 + times * 60)) ;
Date endTime = DateUtil.addNumForMinute(sendTime,1) ;
TabHaobanStaff staff = this.staffMapper.selectByPrimaryKey(staffId) ;
String wxEnterpriseId = staff.getWxEnterpriseId() ;
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId) ;
String wxUserId = staff.getWxUserId() ;
if(qwDTO.needOpenUserId3th()) {
wxUserId = staff.getWxOpenUseId() ;
}
QywxMomentInfoQDTO qywxMomentInfoQDTO = new QywxMomentInfoQDTO();
qywxMomentInfoQDTO.setCorpid(qwDTO.getThirdCorpid());
qywxMomentInfoQDTO.setSuiteid(qwDTO.getSelf3thSecret());
qywxMomentInfoQDTO.setStartTime(startTime.getTime() / 1000);
qywxMomentInfoQDTO.setEndTime(endTime.getTime() / 1000);
qywxMomentInfoQDTO.setCreatorId(wxUserId);
qywxMomentInfoQDTO.setPageSize(1);
ServiceResponse<QywxMomentRespDTO> serviceResponse = qywxSuiteApiService.queryQywxMomentList(qywxMomentInfoQDTO,qwDTO.isSelf(),qwDTO.getUrlHost());
logger.info("查询朋友圈id={},{},{}",staffId,sendTime, JSONObject.toJSONString(serviceResponse));
List<QywxMomentRespDTO.QywxMomentInfoDTO> list = serviceResponse.getResult().getQywxMomentInfos() ;
if(CollectionUtils.isNotEmpty(list)) {
return list.get(0).getMomentId() ;
}
return null ;
}
}
package com.gic.haoban.manage.service.service.moment.impl;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.PageHelperUtils;
import com.gic.commons.util.UniqueIdUtils;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanDataDTO;
import com.gic.haoban.manage.api.qdto.moment.PlanDataListQDTO;
import com.gic.haoban.manage.service.dao.mapper.moment.QwMomentPlanAttendMapper;
import com.gic.haoban.manage.service.dao.mapper.moment.QwMomentPlanDataMapper;
import com.gic.haoban.manage.service.entity.moment.TabQwMomentPlanAttend;
import com.gic.haoban.manage.service.entity.moment.TabQwMomentPlanData;
import com.gic.haoban.manage.service.service.ExternalClerkRelatedService;
import com.gic.haoban.manage.service.service.moment.QwMomentPlanAttendService;
import com.gic.haoban.manage.service.service.moment.QwMomentPlanDataService;
import com.gic.wechat.api.dto.qywx.moment.MomentComments;
import com.gic.wechat.api.dto.qywx.moment.MomentResultDTO;
import com.github.pagehelper.PageHelper;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
@Service("qwMomentPlanDataService")
public class QwMomentPlanDataServiceImpl implements QwMomentPlanDataService {
@Autowired
private QwMomentPlanDataMapper qwMomentPlanDataMapper ;
@Autowired
private ExternalClerkRelatedService externalClerkRelatedService ;
@Autowired
private QwMomentPlanAttendMapper qwMomentPlanAttendMapper ;
@Autowired
private QwMomentPlanAttendService qwMomentPlanAttendService ;
@Override
public ServiceResponse<Page<QwMomentPlanDataDTO>> dataList(PlanDataListQDTO qdto) {
PageHelper.startPage(qdto);
if(StringUtils.isNotEmpty(qdto.getClerkParams())) {
qdto.setClerkParamsLike("%"+qdto.getClerkParams()+"%");
}
if(StringUtils.isNotBlank(qdto.getStaffName())) {
qdto.setStaffNameLike("%"+qdto.getStaffName()+"%");
}
if(StringUtils.isBlank(qdto.getSortColumn())) {
qdto.setSortColumn("create_time");
}
if(StringUtils.isBlank(qdto.getSortType())) {
qdto.setSortType("desc");
}
List<QwMomentPlanDataDTO> list = this.qwMomentPlanDataMapper.list(qdto);
Page<QwMomentPlanDataDTO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list, QwMomentPlanDataDTO.class);
return ServiceResponse.success(retPage);
}
@Override
public ServiceResponse<Void> save(TabQwMomentPlanAttend task, MomentResultDTO dto) {
Set<String> set = new HashSet<>() ;
Map<String,TabQwMomentPlanData> map = new HashMap<>() ;
this.qwMomentPlanDataMapper.delAll(task.getPlanId(),task.getClerkId()) ;
List<MomentComments> likeList = dto.getLikeList() ;
int likeCount = 0 ;
int commentCount = 0 ;
if(CollectionUtils.isNotEmpty(likeList)) {
for(MomentComments item : likeList) {
String externalUserid = item.getExternal_userid() ;
String memberId = this.externalClerkRelatedService.getMemberIdByExternalId(task.getWxEnterpriseId(),externalUserid) ;
if(StringUtils.isBlank(memberId)) {
set.add(externalUserid) ;
continue;
}
TabQwMomentPlanData data = new TabQwMomentPlanData() ;
data.setMemberId(memberId);
data.setLikeFlag(1);
likeCount = likeCount+1 ;
data.setLikeTime(new Date(item.getCreate_time()*1000));
map.put(externalUserid,data) ;
}
}
List<MomentComments> commentList = dto.getCommentList() ;
if(CollectionUtils.isNotEmpty(commentList)) {
for(MomentComments item : commentList) {
String externalUserid = item.getExternal_userid() ;
if(set.contains(externalUserid)) {
continue;
}
TabQwMomentPlanData data = map.get(externalUserid) ;
if(null != data) {
commentCount = commentCount + 1 ;
data.setCommentFlag(1);
data.setCommentTime(new Date(item.getCreate_time()*1000));
}else {
String memberId = this.externalClerkRelatedService.getMemberIdByExternalId(task.getWxEnterpriseId(),externalUserid) ;
if(StringUtils.isBlank(memberId)) {
continue;
}
data = new TabQwMomentPlanData() ;
data.setMemberId(memberId);
data.setCommentFlag(1);
commentCount = commentCount + 1 ;
data.setCommentTime(new Date(item.getCreate_time()*1000));
map.put(externalUserid,data) ;
}
}
}
List<TabQwMomentPlanData> addList = new ArrayList<>() ;
Set<String> keySet = map.keySet() ;
Iterator<String> it = keySet.iterator() ;
while (it.hasNext()) {
String key = it.next() ;
TabQwMomentPlanData value = map.get(key) ;
if(null != value) {
value.setDataId(UniqueIdUtils.uniqueLong());
value.setPlanId(task.getPlanId());
value.setEnterpriseId(task.getEnterpriseId());
value.setStaffId(task.getStaffId());
value.setClerkId(task.getClerkId());
value.setStoreId(task.getStoreId());
value.setWxEnterpriseId(task.getWxEnterpriseId());
value.setClerkCode(task.getClerkCode());
value.setClerkName(task.getClerkName());
addList.add(value);
}
}
if(CollectionUtils.isNotEmpty(addList)) {
this.qwMomentPlanDataMapper.batchInsert(addList);
}
this.qwMomentPlanAttendMapper.updateQwData(task.getPlanId(),task.getClerkId(),likeCount,commentCount) ;
if((likeCount > 0 || commentCount > 0) && task.getTaskStatus()==1) {
this.qwMomentPlanAttendService.finishTaskUpdateData(task.getAttendId(), task.getPlanId() , new Date());
}
return ServiceResponse.success();
}
}
package com.gic.haoban.manage.service.service.moment.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
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.clerk.api.service.PowerService;
import com.gic.commons.util.*;
import com.gic.enterprise.api.dto.EnterpriseSettingDTO;
import com.gic.enterprise.api.dto.StoreSearchDTO;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.enterprise.api.service.StoreService;
import com.gic.enterprise.api.service.StoreWidgetService;
import com.gic.haoban.manage.api.dto.CommonMQDTO;
import com.gic.haoban.manage.api.dto.ContentMaterialDTO;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanAttendDTO;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanDTO;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanWxaDTO;
import com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum;
import com.gic.haoban.manage.api.enums.PendingTaskTypeEnum;
import com.gic.haoban.manage.api.qdto.moment.PlanListWxaQDTO;
import com.gic.haoban.manage.api.qdto.moment.QwMomentPlanQDTO;
import com.gic.haoban.manage.api.qdto.moment.TaskNumQDTO;
import com.gic.haoban.manage.api.service.HaobanCommonMQApiService;
import com.gic.haoban.manage.api.service.StaffClerkRelationApiService;
import com.gic.haoban.manage.api.util.notify.NoticeMessageUtil;
import com.gic.haoban.manage.service.dao.mapper.StaffMapper;
import com.gic.haoban.manage.service.dao.mapper.moment.QwMomentPlanAttendMapper;
import com.gic.haoban.manage.service.dao.mapper.moment.QwMomentPlanMapper;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.moment.TabQwMomentPlan;
import com.gic.haoban.manage.service.entity.moment.TabQwMomentPlanAttend;
import com.gic.haoban.manage.service.pojo.ClerkStaffBO;
import com.gic.haoban.manage.service.pojo.bo.PendingTaskBO;
import com.gic.haoban.manage.service.pojo.bo.moment.CountBO;
import com.gic.haoban.manage.service.service.QywxSendService;
import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.service.moment.QwMomentPlanAttendService;
import com.gic.haoban.manage.service.service.moment.QwMomentPlanDataService;
import com.gic.haoban.manage.service.service.moment.QwMomentPlanService;
import com.gic.haoban.manage.service.service.notify.PendingTaskService;
import com.gic.mq.sdk.GicMQClient;
import com.gic.quartz.api.dto.QuartzTaskDTO;
import com.gic.quartz.api.service.QuartzService;
import com.gic.wechat.api.dto.qywx.chat.GroupChatListDTO;
import com.gic.wechat.api.dto.qywx.chat.GroupChatListItemDTO;
import com.gic.wechat.api.dto.qywx.moment.MomentPublishDTO;
import com.gic.wechat.api.dto.qywx.moment.MomentResultDTO;
import com.gic.wechat.api.dto.qywx.moment.MomentUserDTO;
import com.gic.wechat.api.service.qywx.QywxExternalUserService;
import com.github.pagehelper.PageHelper;
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;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
@Service("qwMomentPlanService")
public class QwMomentPlanServiceImpl implements QwMomentPlanService {
private final Logger logger = LogManager.getLogger(this.getClass());
@Autowired
private QwMomentPlanMapper qwMomentPlanMapper ;
@Autowired
private QwMomentPlanAttendService qwMomentPlanAttendService ;
@Autowired
private QwMomentPlanAttendMapper qwMomentPlanAttendMapper ;
@Autowired
private QuartzService quartzService;
@Autowired
private ClerkService clerkService ;
@Autowired
private EnterpriseService enterpriseService ;
@Autowired
private StoreService storeService ;
@Autowired
private StaffClerkRelationApiService staffClerkRelationApiService;
@Autowired
private PowerService powerService ;
@Autowired
private StoreWidgetService storeWidgetService ;
@Autowired
private QywxSendService qywxSendService ;
@Autowired
private QywxExternalUserService qywxExternalUserService;
@Autowired
private WxEnterpriseService wxEnterpriseService ;
@Autowired
private StaffMapper staffMapper ;
@Autowired
private QwMomentPlanDataService qwMomentPlanDataService ;
@Autowired
private HaobanCommonMQApiService haobanCommonMQApiService ;
@Autowired
private PendingTaskService pendingTaskService ;
private static GicMQClient mqClient = GICMQClientUtil.getClientInstance();
@Override
public ServiceResponse<Page<QwMomentPlanDTO>> planList(QwMomentPlanQDTO qdto) {
PageHelper.startPage(qdto);
if(StringUtils.isNotEmpty(qdto.getNameParams())) {
qdto.setNameParamsLike("%"+qdto.getNameParams()+"%");
}
if(StringUtils.isBlank(qdto.getSortColumn())) {
qdto.setSortColumn("create_time");
}
if(StringUtils.isBlank(qdto.getSortType())) {
qdto.setSortType("desc");
}
List<TabQwMomentPlan> list = this.qwMomentPlanMapper.list(qdto);
Page<QwMomentPlanDTO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list, QwMomentPlanDTO.class);
return ServiceResponse.success(retPage);
}
@Override
public ServiceResponse<Page<QwMomentPlanWxaDTO>> planListWxa(PlanListWxaQDTO qdto) {
PageHelper.startPage(qdto);
if(StringUtils.isNotEmpty(qdto.getName())) {
qdto.setNameLike("%"+qdto.getName()+"%");
}
List<QwMomentPlanWxaDTO> list = this.qwMomentPlanMapper.planListWxa(qdto);
Page<QwMomentPlanWxaDTO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list, QwMomentPlanWxaDTO.class);
return ServiceResponse.success(retPage);
}
@Override
public ServiceResponse<QwMomentPlanDTO> save(QwMomentPlanDTO dto) {
logger.info("保存朋友圈活动={}", JSONObject.toJSONString(dto));
String enterpriseId = dto.getEnterpriseId() ;
String wxEnterpriseId = dto.getWxEnterpriseId() ;
Long planId = dto.getPlanId() ;
boolean publishNow = dto.getPublishType()==1 ;
TabQwMomentPlan plan = EntityUtil.changeEntity(TabQwMomentPlan.class,dto) ;
Date now = new Date() ;
plan.setUpdateTime(now);
// 1立即发布2定时发布
if(publishNow) {
plan.setPublishTime(now);
}
boolean createFlag = false ;
plan.setBeginDate(plan.getPublishTime());
Date endTime = DateUtil.getEndTimeOfDay(DateUtil.addDay(plan.getBeginDate(), plan.getExpireDays()));
plan.setEndDate(endTime);
if(null == planId) {
createFlag = true ;
planId = UniqueIdUtils.uniqueLong();
dto.setPlanId(planId);
plan.setPlanId(planId);
plan.setCreateTime(now);
plan.setStatusFlag(1);
this.qwMomentPlanMapper.insert(plan);
}else {
this.qwMomentPlanMapper.update(plan);
}
// 参与导购
if(dto.getPlanClerkType()==1) {
if (createFlag) {
List<StaffClerkRelationDTO> list = this.staffClerkRelationApiService.listByClerkIdsWxEnterpriseId(dto.getSelectClerkIdList(),plan.getWxEnterpriseId()) ;
List<ClerkStaffBO> clerkStaffList = list.stream().map(o->{
ClerkStaffBO bo = new ClerkStaffBO() ;
bo.setClerkId(o.getClerkId());
bo.setStaffId(o.getStaffId());
return bo ;
}).collect(Collectors.toList()) ;
int statusFlag = 0 ;
if(publishNow) {
statusFlag = 1 ;
}
this.qwMomentPlanAttendService.saveClerk(wxEnterpriseId,enterpriseId, planId, clerkStaffList , statusFlag);
} else {
List<String> oldList = this.qwMomentPlanAttendMapper.listClerk(planId , null).stream().map(o -> o.getClerkId()).collect(Collectors.toList());
List<String> newList = dto.getSelectClerkIdList();
List<String> addList = newList.stream().filter(o -> !oldList.contains(o)).distinct().collect(Collectors.toList());
List<String> delList = oldList.stream().filter(o -> !newList.contains(o)).distinct().collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(addList)) {
List<StaffClerkRelationDTO> list = this.staffClerkRelationApiService.listByClerkIdsWxEnterpriseId(addList,plan.getWxEnterpriseId()) ;
List<ClerkStaffBO> clerkStaffList = list.stream().map(o->{
ClerkStaffBO bo = new ClerkStaffBO() ;
bo.setClerkId(o.getClerkId());
bo.setStaffId(o.getStaffId());
return bo ;
}).collect(Collectors.toList()) ;
this.qwMomentPlanAttendService.saveClerk(wxEnterpriseId,enterpriseId, planId , clerkStaffList , 0);
}
if (CollectionUtils.isNotEmpty(delList)) {
this.qwMomentPlanAttendMapper.delClerks(planId, delList);
}
}
}
if(!publishNow) {
this.addOrDelTimer(planId, plan.getPublishTime(), 1);
}else {
this.addOrDelTimer(planId, new Date(), 0);
JSONObject jsonObject = new JSONObject() ;
jsonObject.put("planId",planId) ;
try {
// initTaskClerk
logger.info("立即开始执行={}",planId);
mqClient.sendMessage("qwMomentInitClerkMQ", jsonObject.toJSONString(),10);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return ServiceResponse.success(dto);
}
private void sendTaskToClerk(String clerkId, TabQwMomentPlan plan) {
String enterpriseId = plan.getEnterpriseId() ;
Long planId = plan.getPlanId() ;
String planName = plan.getTitle() ;
String invalidTime = DateUtil.dateToStr(plan.getEndDate(),"yyyy-MM-dd HH:mm:ss") ;
logger.info("发送任务通知,clerkId={}",clerkId);
Map<String, String> map = new HashMap<>();
map.put("taskName",planName) ;
map.put("invalidTime",invalidTime) ;
int messageType = NoticeMessageTypeEnum.hbapp_canvas_friend_circle_task.getType();
JSONObject jsonObject = new JSONObject();
jsonObject.put("planId",planId) ;
jsonObject.put("clerkId",clerkId) ;
NoticeMessageUtil.sendNoticeMessage(enterpriseId,clerkId,messageType,null,map,jsonObject);
}
@Override
public ServiceResponse<Void> del(Long planId) {
this.qwMomentPlanMapper.del(planId);
this.addOrDelTimer(planId, new Date(), 0);
return ServiceResponse.success();
}
@Override
public ServiceResponse<Void> stop(Long planId) {
TabQwMomentPlan plan = this.qwMomentPlanMapper.getById(planId) ;
this.qwMomentPlanMapper.stop(planId);
// 删除定时
this.addOrDelTimer(planId, new Date(), 0);
if(plan.getExecType()==0 && StringUtils.isNotBlank(plan.getMomentId())) {
String wxEnterpriseId = plan.getWxEnterpriseId() ;
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId) ;
logger.info("取消发送={},{}",planId,plan.getMomentId());
this.qywxExternalUserService.cancelMomentTask(qwDTO.getThirdCorpid(),
qwDTO.getSelf3thSecret(), plan.getMomentId() ,qwDTO.isSelf(),qwDTO.getUrlHost()) ;
}
return ServiceResponse.success();
}
@Override
public ServiceResponse<QwMomentPlanDTO> detail(Long planId) {
TabQwMomentPlan plan = this.qwMomentPlanMapper.getById(planId);
if(null == plan) {
return ServiceResponse.failure("9999", "活动不存在或已删除");
}
QwMomentPlanDTO dto = EntityUtil.changeEntityByJSON(QwMomentPlanDTO.class,plan) ;
// 获取参与导购
if(dto.getPlanClerkType()==1) {
List<QwMomentPlanAttendDTO> clerkList = this.qwMomentPlanAttendMapper.listClerk(planId,null) ;
dto.setClerkList(clerkList);
}
return ServiceResponse.success(dto);
}
private void addOrDelTimer(Long planId, Date sendTime, int status) {
logger.info("添加1/删除0定时,{},{}", status, planId);
QuartzTaskDTO quartzTask = new QuartzTaskDTO();
quartzTask.setTaskStatus(status);
String taskTimeInfo = this.getTaskTime(sendTime);
quartzTask.setTaskTimeInfo(taskTimeInfo);
quartzTask.setTaskService("com.gic.haoban.manage.api.service.moment.QwMomentApiService");
quartzTask.setTaskMethod("sendPlanNoticeTimer");
quartzTask.setTaskParam(planId + "");
quartzTask.setReferId(planId + "");
try {
quartzService.addOrUpdateQuartzTask(quartzTask);
} catch (Exception e) {
logger.warn("提交定时任务异常", e);
}
}
private String getTaskTime(Date date) {
String timeInfo = DateUtil.dateToStr(date, "yyyyMMddHHmmss");
String year = timeInfo.substring(0, 4);
int month = Integer.parseInt(timeInfo.substring(4, 6));
int day = Integer.parseInt(timeInfo.substring(6, 8));
int hour = Integer.parseInt(timeInfo.substring(8, 10));
int minute = Integer.parseInt(timeInfo.substring(10, 12));
int second = Integer.parseInt(timeInfo.substring(12, 14));
String time = new StringBuilder().append(second).append(" ").append(minute).append(" ").append(hour).append(" ")
.append(day).append(" ").append(month).append(" ").append(year).toString();
return time;
}
private void saveAttendClerkForTask(TabQwMomentPlan plan) {
Long planId = plan.getPlanId() ;
String creatorId = plan.getCreatorId() ;
String enterpriseId = plan.getEnterpriseId() ;
ClerkDTO clerkDTO = this.clerkService.getclerkById(creatorId) ;
EnterpriseSettingDTO enterpriseSetting = enterpriseService.getEnterpriseSettingByEnterpriseId(enterpriseId);
List<String> storeIdList = null ;
if(clerkDTO.getClerkType()==3 || !(enterpriseSetting.getEnableAccessControl() != null && enterpriseSetting.getEnableAccessControl() == 1)) {
logger.info("超管");
StoreSearchDTO searchDTO = new StoreSearchDTO() ;
searchDTO.setEnterpriseId(plan.getEnterpriseId());
searchDTO.setStatus("2");
storeIdList = this.storeService.listStoreIds(searchDTO) ;
}else {
storeIdList = this.getStoreIdList(clerkDTO) ;
}
List<StaffClerkRelationDTO> list = this.staffClerkRelationApiService.listByStoreIds(plan.getWxEnterpriseId() , storeIdList) ;
List<ClerkStaffBO> clerkIdList = list.stream().map(o->{
ClerkStaffBO bo = new ClerkStaffBO() ;
bo.setClerkId(o.getClerkId());
bo.setStaffId(o.getStaffId());
return bo ;
}).collect(Collectors.toList()) ;
Page<ClerkDTO> userPage = this.clerkService.pageUserBySearchName(plan.getEnterpriseId(),null,1,10000) ;
List<String> userIdList = userPage.getResult().stream().map(o->o.getClerkId()).collect(Collectors.toList());
logger.info("管理员列表={}",userIdList);
clerkIdList.stream().filter(o->!userIdList.contains(o)).collect(Collectors.toList()) ;
logger.info("导购数量={}",clerkIdList.size());
this.qwMomentPlanAttendService.saveClerk(plan.getWxEnterpriseId(),plan.getEnterpriseId(),planId, clerkIdList , 1);
this.qwMomentPlanMapper.updateClerkNum(planId,clerkIdList.size(),-1,-1);
}
private List<String> getStoreIdList(ClerkDTO clerkDTO) {
String clerkId = clerkDTO.getClerkId();
String enterpriseId = clerkDTO.getEnterpriseId();
String storeWidgetId = this.powerService.getStoreWidgetId(null, clerkId);
// 门店id列表
List<String> storeIdList = storeWidgetService.getStoreWidgetStore(storeWidgetId, enterpriseId, null, null, 2);
logger.info("组件id={},上线数量:{}", storeWidgetId,storeIdList.size());
if (CollectionUtils.isEmpty(storeIdList)) {
return Collections.emptyList();
}
return storeIdList;
}
@Override
public void initTaskClerk(String params) {
logger.info("创建立即执行朋友圈={}",params);
JSONObject json = JSONObject.parseObject(params) ;
Long planId = json.getLong("planId") ;
TabQwMomentPlan plan = this.qwMomentPlanMapper.getById(planId) ;
this.send(plan);
}
@Override
public void sendPlanNoticeTimer(String params) {
logger.info("定时发布任务发送通知={}",params);
Long planId = Long.valueOf(params) ;
TabQwMomentPlan plan = this.qwMomentPlanMapper.getById(planId) ;
if(null == plan) {
logger.info("null");
return;
}
this.send(plan);
}
private void send(TabQwMomentPlan plan) {
if(plan.getDeleteFlag()==1 || plan.getStatusFlag()!=1 || plan.getEndDate().getTime()<=System.currentTimeMillis()) {
logger.info("计划已停止={}",plan.getPlanId());
return;
}
// 0全部导购 1部分导购
if(plan.getPlanClerkType()==0) {
this.saveAttendClerkForTask(plan) ;
}else {
// 下发失败
this.qwMomentPlanAttendService.updateStatusFlag(plan);
}
this.sendPlanNotice(plan);
}
// 发送活动通知
private void sendPlanNotice(TabQwMomentPlan plan) {
if(plan.getPublishType()==1 || plan.getPublishTime().getTime() <= System.currentTimeMillis()) {
long planId = plan.getPlanId();
// 好办小程序
if(plan.getExecType()==1) {
List<QwMomentPlanAttendDTO> list = this.qwMomentPlanAttendMapper.listClerk(planId , 1);
if (CollectionUtils.isNotEmpty(list)) {
for (QwMomentPlanAttendDTO dto : list) {
this.sendTaskToClerk(dto.getClerkId(),plan);
this.addPendingTask(plan,dto.getStoreId(),dto.getClerkId(),dto.getAttendId()) ;
}
}
}else {
// 企微下发任务
this.sendToQiwei(plan);
}
}
}
@Override
public void sendToQiwei(TabQwMomentPlan plan) {
List<ContentMaterialDTO> imageList = new ArrayList<>() ;
String json = plan.getMediaInfo() ;
JSONArray arr = JSONArray.parseArray(json) ;
String msg = null ;
for(int i=0;i<arr.size();i++) {
JSONObject obj = arr.getJSONObject(i) ;
ContentMaterialDTO vo = new ContentMaterialDTO();
vo.setMaterialType(obj.getInteger("materialType"));
if(vo.getMaterialType()==4) {
vo.setVideoImgUrl(obj.getString("imgUrl"));
vo.setImgUrl(obj.getString("videoUrl"));
}
if(vo.getMaterialType()==3) {
vo.setLink(obj.getString("link"));
vo.setImgUrl(obj.getString("imgUrl"));
}
if(vo.getMaterialType()==2) {
vo.setImgUrl(obj.getString("imgUrl"));
}
vo.setMaterialTitle(obj.getString("title"));
if(vo.getMaterialType()==1) {
msg = obj.getString("contentText") ;
continue;
}
vo.setMaterialDesc(obj.getString("contentText"));
imageList.add(vo);
}
List<QwMomentPlanAttendDTO> clerkList = this.qwMomentPlanAttendMapper.listClerk(plan.getPlanId(),1) ;
List<String> clerkIdList = clerkList.stream().map(o->o.getClerkId()).collect(Collectors.toList());
ServiceResponse<String> resp = this.qywxSendService.share(plan.getWxEnterpriseId(),clerkIdList,msg,imageList) ;
logger.info("发企微朋友={}",JSONObject.toJSONString(resp));
String jobId = resp.getResult() ;
if(StringUtils.isBlank(jobId)) {
logger.info("朋友圈调用企微失败={}",plan.getPlanId());
return;
}
for (QwMomentPlanAttendDTO dto : clerkList) {
this.addPendingTask(plan,dto.getStoreId(),dto.getClerkId(),dto.getAttendId()) ;
}
this.qwMomentPlanMapper.updateJobid(plan.getPlanId(),jobId) ;
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(plan.getWxEnterpriseId());
ServiceResponse<Object> resp2 = this.qywxExternalUserService.getMomentTaskResult(qwDTO.getThirdCorpid(),
qwDTO.getSelf3thSecret(), jobId, qwDTO.isSelf(),qwDTO.getUrlHost()) ;
logger.info("获取moment_id={}",JSONObject.toJSONString(resp2));
if(null != resp2.getResult()) {
String moment_id = resp2.getResult().toString() ;
this.qwMomentPlanMapper.updateMomentId(plan.getPlanId(),moment_id);
}else {
CommonMQDTO mq = new CommonMQDTO() ;
mq.setType(6) ;
Map<String,String> map = new HashMap<>() ;
map.put("planId",plan.getPlanId()+"") ;
mq.setParams(map);
this.haobanCommonMQApiService.putCommonDelayMessage(mq, 60);
}
}
@Override
public void getMomentId(Long planId) {
TabQwMomentPlan plan = this.qwMomentPlanMapper.getById(planId) ;
String wxEnterpriseId =plan.getWxEnterpriseId() ;
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
ServiceResponse<Object> resp2 = this.qywxExternalUserService.getMomentTaskResult(qwDTO.getThirdCorpid(),
qwDTO.getSelf3thSecret(), plan.getQwJobid(), qwDTO.isSelf(),qwDTO.getUrlHost()) ;
logger.info("获取moment_id={}",JSONObject.toJSONString(resp2));
if(null != resp2.getResult()) {
String moment_id = resp2.getResult().toString() ;
this.qwMomentPlanMapper.updateMomentId(plan.getPlanId(),moment_id);
}else {
CommonMQDTO mq = new CommonMQDTO() ;
mq.setType(6) ;
Map<String,String> map = new HashMap<>() ;
map.put("planId",plan.getPlanId()+"") ;
mq.setParams(map);
this.haobanCommonMQApiService.putCommonDelayMessage(mq, 60);
}
}
@Override
public ServiceResponse<Integer> getTaskNum(TaskNumQDTO qdto) {
int count = this.qwMomentPlanMapper.getTaskNum(qdto);
return ServiceResponse.success(count);
}
@Override
public void getQwData(Long planId) {
TabQwMomentPlan plan = this.qwMomentPlanMapper.getById(planId) ;
List< TabQwMomentPlanAttend> list = this.qwMomentPlanAttendMapper.listForData(planId) ;
for(TabQwMomentPlanAttend item : list) {
this.getQwData(item , 0 , plan.getMomentId());
}
CountBO bo = this.qwMomentPlanAttendMapper.getQwCount(planId) ;
if (null != bo && (null != bo.getLikeCount() || null != bo.getCommentCount())) {
int like = 0 ;
int comment = 0 ;
if(bo.getLikeCount() != null) {
like = bo.getLikeCount() ;
}
if(bo.getCommentCount() != null) {
comment = bo.getCommentCount() ;
}
this.qwMomentPlanMapper.updateQwData(planId , like , comment) ;
}
}
@Override
public void getQwData(TabQwMomentPlanAttend task , int type ,String planMomentId) {
logger.info("获取企微的统计={},{},{}",JSONObject.toJSONString(task),type,planMomentId);
if(StringUtils.isNotBlank(planMomentId)) {
task.setMomentId(planMomentId);
}
if(StringUtils.isBlank(task.getMomentId())) {
return;
}
MomentResultDTO dto = this.getQwData(task.getStaffId(),task.getMomentId(),task.getWxEnterpriseId()) ;
if(null != dto) {
this.qwMomentPlanDataService.save(task, dto);
if(type==1) {
CountBO bo = this.qwMomentPlanAttendMapper.getQwCount(task.getPlanId()) ;
if (null != bo && (null != bo.getLikeCount() || null != bo.getCommentCount())) {
int like = 0 ;
int comment = 0 ;
if(bo.getLikeCount() != null) {
like = bo.getLikeCount() ;
}
if(bo.getCommentCount() != null) {
comment = bo.getCommentCount() ;
}
this.qwMomentPlanMapper.updateQwData(task.getPlanId() , like , comment) ;
}
}
}
}
private MomentResultDTO getQwData(String staffId , String momentId , String wxEnterpriseId) {
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId) ;
return this.getData(staffId,momentId,qwDTO);
}
private MomentResultDTO getData(String staffId , String momentId , WxEnterpriseQwDTO qwDTO) {
TabHaobanStaff staff = this.staffMapper.selectByPrimaryKey(staffId) ;
String wxUserId = staff.getWxUserId() ;
if(qwDTO.needOpenUserId3th()) {
wxUserId = staff.getWxOpenUseId() ;
}
ServiceResponse<MomentResultDTO> resp = this.qywxExternalUserService.getMomentComments(qwDTO.getThirdCorpid(),
qwDTO.getSelf3thSecret(), momentId,wxUserId,qwDTO.isSelf(),qwDTO.getUrlHost()) ;
logger.info("企微统计返回={},{}",JSONObject.toJSONString(resp),staffId);
MomentResultDTO dto = resp.getResult() ;
return dto ;
}
private void addPendingTask(TabQwMomentPlan plan , String storeId , String clerkId , Long attendId) {
PendingTaskBO bo = new PendingTaskBO();
bo.setRelationId(attendId+"");
bo.setBusinessId(plan.getPlanId()+"");
bo.setTaskType(PendingTaskTypeEnum.QYWX_MOMENT.getType());
bo.setTitle(plan.getTitle());
bo.setDescription(plan.getRemark());
bo.setStoreId(storeId);
bo.setInvalidTime(plan.getEndDate());
bo.setClerkId(clerkId);
bo.setEnterpriseId(plan.getEnterpriseId());
bo.setOverdueTime(plan.getEndDate());
this.pendingTaskService.addOrUpdatePendingTask(bo);
}
@Override
public void getQwPublishData(Long planId, String cursor) {
TabQwMomentPlan plan = this.qwMomentPlanMapper.getById(planId) ;
String momentId = plan.getMomentId() ;
if(StringUtils.isBlank(momentId)) {
return;
}
String wxEnterpriseId = plan.getWxEnterpriseId() ;
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId) ;
ServiceResponse<MomentPublishDTO> resp = this.qywxExternalUserService.getPublishList(qwDTO.getThirdCorpid(),
qwDTO.getSelf3thSecret(), momentId,null,qwDTO.isSelf(),qwDTO.getUrlHost()) ;
if(!resp.isSuccess()) {
logger.info("拉取列表异常={}", JSON.toJSON(resp));
return;
}
MomentPublishDTO dto = resp.getResult();
cursor = dto.getNext_cursor();
List<MomentUserDTO> list = dto.getTask_list() ;
for (MomentUserDTO item : list) {
String userid = item.getUserid() ;
int chatStatus = item.getPublish_status() ;
if(chatStatus==1) {
TabHaobanStaff staff = this.staffMapper.selectByUserIdAndEnterpriseId(userid, wxEnterpriseId);
if(null != staff) {
String staffId = staff.getStaffId();
TabQwMomentPlanAttend attend = this.qwMomentPlanAttendMapper.getByStaff(planId, staffId);
if(attend.getTaskStatus()==1) {
this.qwMomentPlanAttendService.finishTaskUpdateData(attend.getAttendId(),attend.getPlanId(),new Date()) ;
}
}
}
}
// 从企微拉取下一批数据
if (org.apache.commons.lang.StringUtils.isNotBlank(cursor)) {
this.getQwPublishData(planId,cursor);
}
}
@Override
public void qwDataTimer(String params) {
logger.info("朋友圈-定时-{}",params);
// 是否完成
if(params.equals("1")) {
List<Long> planIdList = this.qwMomentPlanMapper.listForData(1) ;
if(CollectionUtils.isNotEmpty(planIdList)) {
for(Long planId : planIdList) {
this.getQwPublishData(planId,null) ;
}
}
}
// 评论数据
if(params.equals("2")) {
List<Long> planIdList = this.qwMomentPlanMapper.listForData(2) ;
if(CollectionUtils.isNotEmpty(planIdList)) {
for(Long planId : planIdList) {
this.getQwData(planId);
}
}
}
// 到期停止
if(params.equals("3")) {
Date end = DateUtil.getEndTimeOfDay(new Date()) ;
List<TabQwMomentPlan> planList = this.qwMomentPlanMapper.listForStop(end) ;
if(CollectionUtils.isNotEmpty(planList)) {
for(TabQwMomentPlan plan : planList) {
String wxEnterpriseId = plan.getWxEnterpriseId() ;
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId) ;
logger.info("取消发送={},{}",plan.getPlanId(),plan.getMomentId());
if(StringUtils.isNotBlank(plan.getMomentId())) {
this.qywxExternalUserService.cancelMomentTask(qwDTO.getThirdCorpid(),
qwDTO.getSelf3thSecret(), plan.getMomentId(), qwDTO.isSelf(), qwDTO.getUrlHost());
}
}
}
}
}
}
......@@ -463,6 +463,8 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
mid.setPageType("hbapp_canvas_custom_send_list");
}else if("tel".equals(relationId)) {
mid.setPageType("hbapp_canvas_task_list");
}else if("moment".equals(relationId)) {
mid.setPageType("hbapp_canvas_friend_circle_list");
}else {
mid.setPageType("workbench");
}
......
......@@ -12,6 +12,8 @@ import com.gic.commons.util.StringUtil;
import com.gic.haoban.manage.api.dto.MemberUnionidWechatAccountQDTO;
import com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService;
import com.gic.haoban.manage.service.service.chat.GroupChatPlanService;
import com.gic.haoban.manage.service.service.moment.QwMomentPlanAttendService;
import com.gic.haoban.manage.service.service.moment.QwMomentPlanService;
import com.gic.haoban.manage.service.service.role.HaobanMenuService;
import com.gic.haoban.manage.service.util.EventUtils;
import com.gic.member.api.dto.MemberInfoChangeNotifyDTO;
......@@ -59,6 +61,10 @@ public class HaobanCommonMQApiServiceImpl implements HaobanCommonMQApiService {
private TabHaobanExternalClerkRelatedMapper externalClerkRelatedMapper ;
@Autowired
private GroupChatPlanService groupChatPlanService ;
@Autowired
private QwMomentPlanService qwMomentPlanService ;
@Autowired
private QwMomentPlanAttendService qwMomentPlanAttendService;
@Override
public void putCommonMessage(CommonMQDTO dto) {
......@@ -151,6 +157,15 @@ public class HaobanCommonMQApiServiceImpl implements HaobanCommonMQApiService {
Long ownerLogId = Long.valueOf(map.get("ownerLogId")) ;
this.groupChatPlanService.doPlanSendInfo(ownerLogId);
break;
case 6 :
Long momentPlanId = Long.valueOf(map.get("planId")) ;
this.qwMomentPlanService.getMomentId(momentPlanId);
break;
case 7 :
Long attendId = Long.valueOf(map.get("attendId")) ;
int times = Integer.valueOf(map.get("times")) ;
this.qwMomentPlanAttendService.updateMomentId(attendId,times);
break;
default:
break;
}
......
package com.gic.haoban.manage.service.service.out.impl.moment;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.moment.*;
import com.gic.haoban.manage.api.qdto.moment.*;
import com.gic.haoban.manage.api.service.moment.QwMomentApiService;
import com.gic.haoban.manage.service.service.moment.QwMomentPlanAttendService;
import com.gic.haoban.manage.service.service.moment.QwMomentPlanDataService;
import com.gic.haoban.manage.service.service.moment.QwMomentPlanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service("qwMomentApiService")
public class QwMomentApiServiceImpl implements QwMomentApiService {
@Autowired
private QwMomentPlanService qwMomentPlanService ;
@Autowired
private QwMomentPlanAttendService qwMomentPlanAttendService ;
@Autowired
private QwMomentPlanDataService qwMomentPlanDataService ;
@Override
public ServiceResponse<QwMomentPlanDTO> save(QwMomentPlanDTO plan) {
return this.qwMomentPlanService.save(plan);
}
@Override
public ServiceResponse<Void> del(Long planId) {
return this.qwMomentPlanService.del(planId);
}
@Override
public ServiceResponse<Void> stop(Long planId) {
return this.qwMomentPlanService.stop(planId);
}
@Override
public ServiceResponse<QwMomentPlanDTO> detail(Long planId) {
return this.qwMomentPlanService.detail(planId) ;
}
@Override
public ServiceResponse<Page<QwMomentPlanDTO>> planList(QwMomentPlanQDTO qdto) {
return this.qwMomentPlanService.planList(qdto) ;
}
@Override
public ServiceResponse<Page<QwMomentPlanAttendDTO>> attendList(PlanClerkListQDTO qdto) {
return this.qwMomentPlanAttendService.attendList(qdto) ;
}
@Override
public ServiceResponse<Page<QwMomentPlanDataDTO>> dataList(PlanDataListQDTO qdto) {
return this.qwMomentPlanDataService.dataList(qdto) ;
}
@Override
public void initTaskClerk(String params) {
this.qwMomentPlanService.initTaskClerk(params) ;
}
@Override
public void sendPlanNoticeTimer(String params) {
this.qwMomentPlanService.sendPlanNoticeTimer(params) ;
}
@Override
public ServiceResponse<Integer> getTaskNum(TaskNumQDTO qdto) {
return this.qwMomentPlanService.getTaskNum(qdto) ;
}
@Override
public ServiceResponse<Page<QwMomentPlanWxaDTO>> planListWxa(PlanListWxaQDTO qdto) {
return this.qwMomentPlanService.planListWxa(qdto) ;
}
@Override
public ServiceResponse<Page<TaskListWxaDTO>> taskListWxa(TaskListWxaQDTO qdto) {
return this.qwMomentPlanAttendService.taskListWxa(qdto) ;
}
@Override
public ServiceResponse<TaskDetailDTO> taskDetail(Long planId, String execClerkId) {
return this.qwMomentPlanAttendService.taskDetail(planId,execClerkId) ;
}
@Override
public ServiceResponse<Void> finishTask(SendResultQDTO qdto) {
return this.qwMomentPlanAttendService.finishTask(qdto) ;
}
@Override
public ServiceResponse<Void> qwDataTimer(String params) {
this.qwMomentPlanService.qwDataTimer(params) ;
return null;
}
}
......@@ -237,7 +237,7 @@
<dubbo:reference interface="com.gic.business.order.service.ordermanage.WebOrderManageApiService" id="webOrderManageApiService" timeout="10000" retries="0" check="false"/>
<dubbo:reference interface="com.gic.operating.api.service.HaobanWxEnterpriseApiService" id="haobanWxEnterpriseApiService" timeout="10000" retries="0" check="false"/>
<dubbo:service interface="com.gic.haoban.manage.api.service.moment.QwMomentApiService" ref="qwMomentApiService" timeout="10000" />
<dubbo:service interface="com.gic.haoban.manage.api.service.content.task.CommissionTaskApiService"
ref="commissionTaskApiService" timeout="10000" />
<dubbo:reference id="memberOrderReadApiService" interface="com.gic.order.api.service.member.MemberOrderReadApiService" timeout="10000" retries="0" check="false" />
......
......@@ -21,16 +21,6 @@
relation_type, sync_flag, `order`, qywx_tag_id, qywx_tag_item_id, status_flag, create_time,
update_time
</sql>
<!-- <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">-->
<!-- select-->
<!-- <include refid="Base_Column_List"/>-->
<!-- from tab_haoban_qywx_tag_relation-->
<!-- where qywx_tag_relation_id = #{qywxTagRelationId,jdbcType=VARCHAR}-->
<!-- </select>-->
<update id="deleteByPrimaryKey" parameterType="java.lang.String">
update tab_haoban_qywx_tag_relation set status_flag = 0 , update_time =now()
where qywx_tag_relation_id = #{qywxTagRelationId,jdbcType=VARCHAR}
</update>
<insert id="insert" parameterType="com.gic.haoban.manage.service.entity.TabQywxTagRelation">
insert into tab_haoban_qywx_tag_relation (qywx_tag_relation_id, wx_enterprise_id,
......@@ -44,91 +34,6 @@
#{qywxTagId,jdbcType=VARCHAR}, #{qywxTagItemId,jdbcType=VARCHAR}, #{statusFlag,jdbcType=INTEGER},
#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.gic.haoban.manage.service.entity.TabQywxTagRelation">
insert into tab_haoban_qywx_tag_relation
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="qywxTagRelationId != null">
qywx_tag_relation_id,
</if>
<if test="wxEnterpriseId != null">
wx_enterprise_id,
</if>
<if test="enterpriseId != null">
enterprise_id,
</if>
<if test="memberTagId != null">
member_tag_id,
</if>
<if test="tagItemId != null">
tag_item_id,
</if>
<if test="relationType != null">
relation_type,
</if>
<if test="syncFlag != null">
sync_flag,
</if>
<if test="order != null">
`order`,
</if>
<if test="qywxTagId != null">
qywx_tag_id,
</if>
<if test="qywxTagItemId != null">
qywx_tag_item_id,
</if>
<if test="statusFlag != null">
status_flag,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="qywxTagRelationId != null">
#{qywxTagRelationId,jdbcType=VARCHAR},
</if>
<if test="wxEnterpriseId != null">
#{wxEnterpriseId,jdbcType=VARCHAR},
</if>
<if test="enterpriseId != null">
#{enterpriseId,jdbcType=VARCHAR},
</if>
<if test="memberTagId != null">
#{memberTagId,jdbcType=VARCHAR},
</if>
<if test="tagItemId != null">
#{tagItemId,jdbcType=VARCHAR},
</if>
<if test="relationType != null">
#{relationType,jdbcType=INTEGER},
</if>
<if test="syncFlag != null">
#{syncFlag,jdbcType=INTEGER},
</if>
<if test="order != null">
#{order,jdbcType=BIGINT},
</if>
<if test="qywxTagId != null">
#{qywxTagId,jdbcType=VARCHAR},
</if>
<if test="qywxTagItemId != null">
#{qywxTagItemId,jdbcType=VARCHAR},
</if>
<if test="statusFlag != null">
#{statusFlag,jdbcType=INTEGER},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.gic.haoban.manage.service.entity.TabQywxTagRelation">
update tab_haoban_qywx_tag_relation
<set>
......@@ -171,22 +76,6 @@
</set>
where qywx_tag_relation_id = #{qywxTagRelationId,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.gic.haoban.manage.service.entity.TabQywxTagRelation">
update tab_haoban_qywx_tag_relation
set wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR},
enterprise_id = #{enterpriseId,jdbcType=VARCHAR},
member_tag_id = #{memberTagId,jdbcType=VARCHAR},
tag_item_id = #{tagItemId,jdbcType=VARCHAR},
relation_type = #{relationType,jdbcType=INTEGER},
sync_flag = #{syncFlag,jdbcType=INTEGER},
`order` = #{order,jdbcType=BIGINT},
qywx_tag_id = #{qywxTagId,jdbcType=VARCHAR},
qywx_tag_item_id = #{qywxTagItemId,jdbcType=VARCHAR},
status_flag = #{statusFlag,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where qywx_tag_relation_id = #{qywxTagRelationId,jdbcType=VARCHAR}
</update>
<select id="listBySyncStatus" parameterType="java.lang.String" resultMap="BaseResultMap">
select
......
......@@ -178,8 +178,11 @@
<select id="list" parameterType="com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO" resultMap="result-map-tabHaobanGroupChatPlan">
select
<include refid="Base_Column_List" />
from tab_haoban_group_chat_plan where wx_enterprise_id=#{wxEnterpriseId}
and enterprise_id = #{enterpriseId} and delete_flag = 0
from tab_haoban_group_chat_plan where
enterprise_id = #{enterpriseId} and delete_flag = 0
<if test="null != wxEnterpriseId">
and wx_enterprise_id=#{wxEnterpriseId}
</if>
<if test="null != startDate">
and create_time <![CDATA[>=]]> #{startDate} and create_time <![CDATA[<=]]> #{endDate}
</if>
......@@ -193,7 +196,7 @@
and end_time <![CDATA[<]]> now()
</if>
<if test="null != searchParams and '' != searchParams">
and name like #{searchParams}
and ( name like #{searchParamsLike} or plan_id=#{searchParams} )
</if>
<if test="null !=creatorIdList and creatorIdList.size>0">
and creator_id in
......
......@@ -309,19 +309,13 @@
</select>
<!-- 查询逾期任务数-->
<!-- 查询失效任务数-->
<select id="getInvalidTask" resultType="int">
select count(1) 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.enterprise_id = #{enterpriseId} and b.end_time = #{time}
AND a.clerk_id = #{clerkId} AND a.send_status = 1 and a.delete_flag = 0
</select>
<!-- 查询失效任务数-->
<select id="getOverdueTask" resultType="int">
select count(1) 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.enterprise_id = #{enterpriseId} and b.end_time = now()
AND a.clerk_id = #{clerkId} AND a.send_status = 1 and a.delete_flag = 0
</select>
<select id="getTaskNum" resultType="java.lang.Integer">
select count(1) from (
select a.plan_id from tab_haoban_group_chat_plan_owner_log a LEFT JOIN tab_haoban_group_chat_plan b ON a.plan_id = b.plan_id
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gic.haoban.manage.service.dao.mapper.moment.QwMomentPlanAttendMapper">
<resultMap type="com.gic.haoban.manage.service.entity.moment.TabQwMomentPlanAttend" id="result-map-tabHaobanQwMomentPlanAttend">
<result column="attend_id" javaType="long" jdbcType="BIGINT" property="attendId"/>
<result column="plan_id" javaType="long" jdbcType="BIGINT" property="planId"/>
<result column="wx_enterprise_id" javaType="String" jdbcType="CHAR" property="wxEnterpriseId"/>
<result column="enterprise_id" javaType="String" jdbcType="CHAR" property="enterpriseId"/>
<result column="staff_id" javaType="String" jdbcType="CHAR" property="staffId"/>
<result column="clerk_id" javaType="String" jdbcType="CHAR" property="clerkId"/>
<result column="clerk_code" javaType="String" jdbcType="VARCHAR" property="clerkCode"/>
<result column="clerk_name" javaType="String" jdbcType="VARCHAR" property="clerkName"/>
<result column="create_time" javaType="java.util.Date" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" javaType="java.util.Date" jdbcType="TIMESTAMP" property="updateTime"/>
<result column="delete_flag" javaType="int" jdbcType="INTEGER" property="deleteFlag"/>
<result column="comment_count" javaType="int" jdbcType="INTEGER" property="commentCount"/>
<result column="like_count" javaType="int" jdbcType="INTEGER" property="likeCount"/>
<result column="task_status" javaType="int" jdbcType="INTEGER" property="taskStatus"/>
<result column="send_time" javaType="java.util.Date" jdbcType="TIMESTAMP" property="sendTime"/>
<result column="moment_id" javaType="String" jdbcType="VARCHAR" property="momentId"/>
<result column="qw_data_time" javaType="java.util.Date" jdbcType="TIMESTAMP" property="qwDataTime"/>
<result column="store_id" javaType="String" jdbcType="VARCHAR" property="storeId"/>
<result column="status_flag" property="statusFlag" />
</resultMap>
<sql id="Base_Column_List">
attend_id,
plan_id,
wx_enterprise_id,
enterprise_id,
staff_id,
clerk_id,
clerk_code,
clerk_name,
create_time,
update_time,
delete_flag,
comment_count,
like_count,
task_status,
send_time,
moment_id,
qw_data_time,
store_id , status_flag
</sql>
<select id="list" resultType="com.gic.haoban.manage.api.dto.moment.QwMomentPlanAttendDTO"
parameterType="com.gic.haoban.manage.api.qdto.moment.PlanClerkListQDTO">
select a.attend_id attendId ,
a.plan_id planId,
a.wx_enterprise_id wxEnterpriseId,
a.enterprise_id enterpriseId,
a.staff_id staffId,
b.staff_name staffName ,
a.clerk_id clerkId ,
a.clerk_code clerkCode,
a.clerk_name clerkName ,
a.create_time createTime,
a.update_time updateTime,
a.comment_count commentCount ,
a.like_count likeCount,
a.task_status taskStatus,
a.send_time sendTime ,
a.moment_id momentId,
a.qw_data_time qwDataTime ,
a.store_id storeId , a.status_flag statusFlag , reason reason from tab_haoban_qw_moment_plan_attend a left join tab_haoban_staff b on a.staff_id = b.staff_id
where a.plan_id =#{planId} and a.delete_flag = 0
<if test="null != staffNameLike">
and b.staff_name like #{staffNameLike}
</if>
<if test="null != clerkParamsLike">
and (a.clerk_code like #{clerkParamsLike} or a.clerk_name like #{clerkParamsLike})
</if>
<if test="null != startTime">
and ( a.create_time >= #{startTime} and a.create_time <![CDATA[ <= ]]> #{endTime} )
</if>
<if test="sendStatus==0">
and a.task_status = 1
</if>
<if test="sendStatus==1">
and a.task_status = 1
</if>
<if test="sendStatus==2">
and a.task_status = 2
</if>
and a.status_flag = #{statusFlag}
order by a.${sortColumn} ${sortType}
</select>
<select id="listExistClerkIds" resultType="java.lang.String">
select clerk_id from tab_haoban_qw_moment_plan_attend where plan_id = #{planId} and clerk_id in (
<foreach collection="list" separator="," item="item">
#{item}
</foreach>
) and delete_flag = 0
</select>
<select id="listClerk" resultType="com.gic.haoban.manage.api.dto.moment.QwMomentPlanAttendDTO">
select clerk_id clerkId , clerk_code clerkCode , clerk_name clerkName , staff_id staffId , store_id storeId , attend_id attendId
from tab_haoban_qw_moment_plan_attend where plan_id = #{planId}
<if test="null != statusFlag">
and status_flag = #{statusFlag}
</if>
and delete_flag = 0
</select>
<select id="taskDetail" resultType="com.gic.haoban.manage.api.dto.moment.TaskDetailDTO">
select
b.title name ,
b.remark remark ,
b.exec_type execType ,
b.begin_date startTime ,
b.end_date endTime ,
b.media_type mediaType ,
a.attend_id attendId ,
a.plan_id planId ,
a.clerk_id clerkId ,
a.clerk_name clerkName ,
a.send_time sendTime ,
a.like_count likeCount ,
a.comment_count commentCount ,
a.qw_data_time qwDataTime ,
a.task_status taskStatus
from tab_haoban_qw_moment_plan_attend a left join tab_haoban_qw_moment_plan b on a.plan_id = b.plan_id
where a.plan_id = #{planId} and a.clerk_id = #{clerkId} and a.delete_flag = 0 and a.status_flag = 1
</select>
<select id="taskListWxa" resultType="com.gic.haoban.manage.api.dto.moment.TaskListWxaDTO"
parameterType="com.gic.haoban.manage.api.qdto.moment.TaskListWxaQDTO">
select
b.title name ,
b.remark remark ,
b.exec_type execType ,
b.begin_date startTime ,
b.end_date endTime ,
a.plan_id planId ,
a.clerk_id clerkId ,
a.clerk_name clerkName ,
a.send_time sendTime ,
a.like_count likeCount ,
a.comment_count commentCount ,
a.qw_data_time qwDataTime ,
a.task_status taskStatus
from tab_haoban_qw_moment_plan_attend a left join tab_haoban_qw_moment_plan b on a.plan_id = b.plan_id
where a.plan_id = #{planId} and a.store_id = #{storeId}
<if test="null != execClerkId and execClerkId !='' ">
and a.clerk_id = #{execClerkId}
</if>
<if test="null != clerkId and clerkId !='' ">
and a.clerk_id = #{clerkId}
</if>
<if test="null != taskStatus and taskStatus==0">
and a.task_status = 1 and b.end_date <![CDATA[ <= ]]> now()
</if>
<if test="null != taskStatus and taskStatus==1">
and a.task_status = 1 and b.end_date > now()
</if>
<if test="null != taskStatus and taskStatus==2">
and a.task_status = 2
</if>
</select>
<select id="listForData" resultMap="result-map-tabHaobanQwMomentPlanAttend" parameterType="java.lang.Long">
select <include refid="Base_Column_List" /> from tab_haoban_qw_moment_plan_attend where plan_id =#{planId} and delete_flag = 0
</select>
<select id="getQwCount" resultType="com.gic.haoban.manage.service.pojo.bo.moment.CountBO">
select sum(like_count) likeCount , sum(comment_count) commentCount from tab_haoban_qw_moment_plan_attend where plan_id=#{planId} and delete_flag = 0 and
like_count is not null and comment_count is not null
</select>
<select id="getById" resultMap="result-map-tabHaobanQwMomentPlanAttend"
parameterType="java.lang.Long">
select <include refid="Base_Column_List" /> from tab_haoban_qw_moment_plan_attend where attend_id = #{attendId}
</select>
<select id="getByStaff" resultMap="result-map-tabHaobanQwMomentPlanAttend">
select <include refid="Base_Column_List" /> from tab_haoban_qw_moment_plan_attend where plan_id = #{planId} and staff_id =#{staffId}
</select>
<select id="getTotalTask" resultType="int">
select count(1) from tab_haoban_qw_moment_plan_attend a LEFT JOIN tab_haoban_qw_moment_plan b ON a.plan_id = b.plan_id
where a.enterprise_id = #{enterpriseId} and b.end_date <![CDATA[ > ]]> now()
AND a.clerk_id = #{clerkId} AND a.task_status = 1 and a.delete_flag = 0 and b.status_flag = 1
</select>
<!-- 查询失效任务数-->
<select id="getInvalidTask" resultType="int">
select count(1) from tab_haoban_qw_moment_plan_attend a LEFT JOIN tab_haoban_qw_moment_plan b ON a.plan_id = b.plan_id
where a.enterprise_id = #{enterpriseId} and b.end_date = #{time}
AND a.clerk_id = #{clerkId} AND a.task_status = 1 and a.delete_flag = 0 and b.status_flag = 1
</select>
<update id="delClerks">
update tab_haoban_qw_moment_plan_attend set delete_flag = 1 , update_time=now() where plan_id = #{planId}
<if test="null != list">
and clerk_id in (
<foreach collection="list" item="item" separator=",">
#{item}
</foreach>
)
</if>
</update>
<update id="finishTask">
update tab_haoban_qw_moment_plan_attend set task_status = 2 , send_time= #{sendTime} where attend_id = #{attendId}
</update>
<update id="updateMomentId">
update tab_haoban_qw_moment_plan_attend set moment_id = #{momentId} where attend_id = #{id}
</update>
<update id="updateFail">
update tab_haoban_qw_moment_plan_attend set status_flag = 2 , reason = #{reason} where plan_id = #{planId}
and clerk_id in (
<foreach collection="list" item="item" separator=",">
#{item}
</foreach>
)
</update>
<update id="updateSuccess">
update tab_haoban_qw_moment_plan_attend set status_flag = 1 where plan_id = #{planId}
and clerk_id in (
<foreach collection="list" item="item" separator=",">
#{item}
</foreach>
)
</update>
<update id="updateSuccessStaff">
update tab_haoban_qw_moment_plan_attend set status_flag = 1 , staff_id=#{staffId} where plan_id = #{planId} and clerk_id = #{clerkId}
</update>
<update id="updateQwData">
update tab_haoban_qw_moment_plan_attend set like_count = #{likeCount} , comment_count=#{commentCount}, qw_data_time = now() where plan_id = #{planId} and clerk_id = #{clerkId}
</update>
<!-- ===================== 新增 ======================== -->
<insert id="batchInsert">
INSERT INTO tab_haoban_qw_moment_plan_attend(
attend_id,
plan_id,
wx_enterprise_id,
enterprise_id,
staff_id,
clerk_id,
clerk_code,
clerk_name,
delete_flag,
comment_count,
like_count,
task_status,
send_time,
moment_id,
qw_data_time,
store_id , status_flag
)VALUES
<foreach collection="list" item="item" separator="," index="index">
(
#{item.attendId,jdbcType=BIGINT},
#{item.planId,jdbcType=BIGINT},
#{item.wxEnterpriseId,jdbcType=CHAR},
#{item.enterpriseId,jdbcType=CHAR},
#{item.staffId,jdbcType=CHAR},
#{item.clerkId,jdbcType=CHAR},
#{item.clerkCode,jdbcType=VARCHAR},
#{item.clerkName,jdbcType=VARCHAR},
0,
#{item.commentCount,jdbcType=INTEGER},
#{item.likeCount,jdbcType=INTEGER},
#{item.taskStatus,jdbcType=INTEGER},
#{item.sendTime,jdbcType=TIMESTAMP},
#{item.momentId,jdbcType=VARCHAR},
#{item.qwDataTime,jdbcType=TIMESTAMP},
#{item.storeId,jdbcType=VARCHAR} , #{item.statusFlag}
)
</foreach>
</insert>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gic.haoban.manage.service.dao.mapper.moment.QwMomentPlanDataMapper">
<resultMap type="com.gic.haoban.manage.service.entity.moment.TabQwMomentPlanData" id="result-map-tabHaobanQwMomentPlanData">
<result column="data_id" javaType="long" jdbcType="BIGINT" property="dataId"/>
<result column="plan_id" javaType="long" jdbcType="BIGINT" property="planId"/>
<result column="wx_enterprise_id" javaType="String" jdbcType="CHAR" property="wxEnterpriseId"/>
<result column="enterprise_id" javaType="String" jdbcType="CHAR" property="enterpriseId"/>
<result column="staff_id" javaType="String" jdbcType="CHAR" property="staffId"/>
<result column="clerk_id" javaType="String" jdbcType="CHAR" property="clerkId"/>
<result column="store_id" javaType="String" jdbcType="CHAR" property="storeId"/>
<result column="member_id" javaType="String" jdbcType="CHAR" property="memberId"/>
<result column="create_time" javaType="java.util.Date" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" javaType="java.util.Date" jdbcType="TIMESTAMP" property="updateTime"/>
<result column="delete_flag" javaType="int" jdbcType="INTEGER" property="deleteFlag"/>
<result column="comment_time" javaType="java.util.Date" jdbcType="TIMESTAMP" property="commentTime"/>
<result column="like_time" javaType="java.util.Date" jdbcType="TIMESTAMP" property="likeTime"/>
<result column="comment_flag" javaType="int" jdbcType="INTEGER" property="commentFlag"/>
<result column="like_flag" javaType="int" jdbcType="INTEGER" property="likeFlag"/>
</resultMap>
<sql id="Base_Column_List">
data_id,
plan_id,
wx_enterprise_id,
enterprise_id,
staff_id,
clerk_id,
store_id,
member_id,
create_time,
update_time,
delete_flag,
comment_time,
like_time,
comment_flag,
like_flag
</sql>
<update id="delAll">
update tab_haoban_qw_moment_plan_data set delete_flag = 1 where plan_id=#{planId} and clerk_id=#{clerkId} and delete_flag = 0
</update>
<!-- ===================== 新增 ======================== -->
<select id="list" resultType="com.gic.haoban.manage.api.dto.moment.QwMomentPlanDataDTO"
parameterType="com.gic.haoban.manage.api.qdto.moment.PlanDataListQDTO">
select
b.staff_name staffName ,
a.data_id dataId,
a.plan_id planId ,
a.staff_id staffId ,
a.clerk_id clerkId ,
a.store_id storeId ,
a.member_id memberId ,
a.create_time createTime ,
a.update_time updateTime ,
a.comment_time commentTime ,
a.like_time likeTime ,
a.comment_flag commentFlag ,
a.like_flag likeFlag ,
a.clerk_code clerkCode ,
a.clerk_name clerkName
from tab_haoban_qw_moment_plan_data a left join tab_haoban_staff b on a.staff_id = b.staff_id where a.plan_id=#{planId} and a.delete_flag = 0
<if test="null != staffNameLike">
and b.staff_name like #{staffNameLike}
</if>
<if test="null != clerkParamsLike">
and (a.clerk_code like #{clerkParamsLike} or a.clerk_name like #{clerkParamsLike})
</if>
<if test="type==1">
and a.like_flag = 1
<if test="null != startTime">
and ( a.like_time >= #{startTime} and a.like_time <![CDATA[ <= ]]> #{endTime} )
</if>
order by a.like_time desc
</if>
<if test="type==2">
and a.comment_flag = 1
<if test="null != startTime">
and ( a.comment_time >= #{startTime} and a.comment_time <![CDATA[ <= ]]> #{endTime} )
</if>
order by a.comment_time desc
</if>
</select>
<update id="batchInsert">
INSERT INTO tab_haoban_qw_moment_plan_data(
data_id,
plan_id,
wx_enterprise_id,
enterprise_id,
staff_id,
clerk_id,
clerk_code ,
clerk_name,
store_id,
member_id,
comment_time,
like_time,
comment_flag,
like_flag
)VALUES
<foreach collection="list" item="item" separator="," index="index">
( #{item.dataId,jdbcType=BIGINT},
#{item.planId,jdbcType=BIGINT},
#{item.wxEnterpriseId,jdbcType=CHAR},
#{item.enterpriseId,jdbcType=CHAR},
#{item.staffId,jdbcType=CHAR},
#{item.clerkId,jdbcType=CHAR},
#{item.clerkCode},
#{item.clerkName},
#{item.storeId,jdbcType=CHAR},
#{item.memberId,jdbcType=CHAR},
#{item.commentTime,jdbcType=TIMESTAMP},
#{item.likeTime,jdbcType=TIMESTAMP},
#{item.commentFlag,jdbcType=INTEGER},
#{item.likeFlag,jdbcType=INTEGER} )
</foreach>
</update>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gic.haoban.manage.service.dao.mapper.moment.QwMomentPlanMapper">
<resultMap type="com.gic.haoban.manage.service.entity.moment.TabQwMomentPlan" id="result-map-tabHaobanQwMomentPlan">
<result column="plan_id" javaType="long" jdbcType="BIGINT" property="planId"/>
<result column="title" javaType="String" jdbcType="VARCHAR" property="title"/>
<result column="remark" javaType="String" jdbcType="VARCHAR" property="remark"/>
<result column="begin_date" javaType="java.util.Date" property="beginDate"/>
<result column="end_date" javaType="java.util.Date" property="endDate"/>
<result column="expire_days" javaType="int" jdbcType="INTEGER" property="expireDays"/>
<result column="exec_type" javaType="int" jdbcType="INTEGER" property="execType"/>
<result column="wx_enterprise_id" javaType="String" jdbcType="CHAR" property="wxEnterpriseId"/>
<result column="enterprise_id" javaType="String" jdbcType="CHAR" property="enterpriseId"/>
<result column="creator_id" javaType="String" jdbcType="VARCHAR" property="creatorId"/>
<result column="creator_name" javaType="String" jdbcType="VARCHAR" property="creatorName"/>
<result column="status_flag" javaType="int" jdbcType="INTEGER" property="statusFlag"/>
<result column="delete_flag" javaType="int" jdbcType="INTEGER" property="deleteFlag"/>
<result column="publish_type" javaType="int" jdbcType="INTEGER" property="publishType"/>
<result column="publish_time" javaType="java.util.Date" jdbcType="TIMESTAMP" property="publishTime"/>
<result column="plan_clerk_type" javaType="int" jdbcType="INTEGER" property="planClerkType"/>
<result column="total_num" javaType="int" jdbcType="INTEGER" property="totalNum"/>
<result column="done_num" javaType="int" jdbcType="INTEGER" property="doneNum"/>
<result column="stop_time" javaType="java.util.Date" jdbcType="TIMESTAMP" property="stopTime"/>
<result column="media_type" javaType="int" jdbcType="INTEGER" property="mediaType"/>
<result column="media_info" javaType="String" property="mediaInfo"/>
<result column="media_info_show" javaType="String" property="mediaInfoShow"/>
<result column="create_time" javaType="java.util.Date" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" javaType="java.util.Date" jdbcType="TIMESTAMP" property="updateTime"/>
<result column="total_like_count" javaType="int" jdbcType="INTEGER" property="totalLikeCount"/>
<result column="total_comment_count" javaType="int" jdbcType="INTEGER" property="totalCommentCount"/>
<result column="qw_jobid" javaType="String" jdbcType="VARCHAR" property="qwJobid"/>
<result column="exec_rate" javaType="int" jdbcType="INTEGER" property="execRate"/>
<result column="task_clerk_num" property="taskClerkNum" />
<result column="moment_id" property="momentId" />
<result column="media_link_flag" property="mediaLinkFlag" />
</resultMap>
<sql id="Base_Column_List">
plan_id,
title,
remark,
begin_date,
end_date,
expire_days,
exec_type,
wx_enterprise_id,
enterprise_id,
creator_id,
creator_name,
status_flag,
delete_flag,
publish_type,
publish_time,
plan_clerk_type,
total_num,
done_num,
stop_time,
media_type,
media_info,
media_info_show,
create_time,
update_time,
total_like_count,
total_comment_count,
qw_jobid,
exec_rate , task_clerk_num , moment_id , media_link_flag
</sql>
<!-- ===================== 新增 ======================== -->
<insert id="insert">
INSERT INTO tab_haoban_qw_moment_plan(
plan_id,
title,
remark,
begin_date,
end_date,
expire_days,
exec_type,
wx_enterprise_id,
enterprise_id,
creator_id,
creator_name,
status_flag,
publish_type,
publish_time,
plan_clerk_type,
total_num,
done_num,
stop_time,
media_type,
media_info,
media_info_show,
total_like_count,
total_comment_count,
qw_jobid,
exec_rate , media_link_flag
)VALUES(
#{planId,jdbcType=BIGINT},
#{title,jdbcType=VARCHAR},
#{remark,jdbcType=VARCHAR},
#{beginDate},
#{endDate},
#{expireDays,jdbcType=INTEGER},
#{execType,jdbcType=INTEGER},
#{wxEnterpriseId,jdbcType=CHAR},
#{enterpriseId,jdbcType=CHAR},
#{creatorId,jdbcType=VARCHAR},
#{creatorName,jdbcType=VARCHAR},
#{statusFlag,jdbcType=INTEGER},
#{publishType,jdbcType=INTEGER},
#{publishTime,jdbcType=TIMESTAMP},
#{planClerkType,jdbcType=INTEGER},
#{totalNum,jdbcType=INTEGER},
#{doneNum,jdbcType=INTEGER},
#{stopTime,jdbcType=TIMESTAMP},
#{mediaType,jdbcType=INTEGER},
#{mediaInfo},
#{mediaInfoShow},
#{totalLikeCount,jdbcType=INTEGER},
#{totalCommentCount,jdbcType=INTEGER},
#{qwJobid,jdbcType=VARCHAR},
#{execRate,jdbcType=INTEGER} , #{mediaLinkFlag}
)
</insert>
<update id="update" parameterType="com.gic.haoban.manage.service.entity.moment.TabQwMomentPlan">
UPDATE tab_haoban_qw_moment_plan <set>
<if test="null != title">
title=#{title},
</if>
<if test="null != remark">
remark=#{remark},
</if>
<if test="null != beginDate">
begin_date=#{beginDate},
</if>
<if test="null != endDate">
end_date=#{endDate},
</if>
<if test="null != expireDays">
expire_days=#{expireDays},
</if>
<if test="null != execType">
exec_type=#{execType},
</if>
<if test="null != publishType">
publish_type=#{publishType},
</if>
<if test="null != publishTime">
publish_time=#{publishTime},
</if>
<if test="null != planClerkType">
plan_clerk_type=#{planClerkType},
</if>
<if test="null != stopTime">
stop_time=#{stopTime},
</if>
<if test="null != mediaType">
media_type=#{mediaType},
</if>
<if test="null != mediaInfo">
media_info=#{mediaInfo},
</if>
<if test="null != mediaInfoShow">
media_info_show=#{mediaInfoShow},
</if>
<if test="null != mediaLinkFlag">
media_link_flag=#{mediaLinkFlag},
</if>
</set>
where plan_id =#{planId}
</update>
<select id="getById" resultMap="result-map-tabHaobanQwMomentPlan">
select <include refid="Base_Column_List" /> from tab_haoban_qw_moment_plan where plan_id =#{planId} and delete_flag = 0
</select>
<select id="planListWxa" resultType="com.gic.haoban.manage.api.dto.moment.QwMomentPlanWxaDTO"
parameterType="com.gic.haoban.manage.api.qdto.moment.PlanListWxaQDTO">
select a.plan_id planId ,
a.title name ,
a.begin_date startTime ,
a.end_date endTime ,
sum(ifnull(b.like_count,0)) likeCount ,
sum(ifnull(b.comment_count,0)) commentCount ,
count(1) totalNum,
sum(IF(b.task_status = 2, 1, 0 )) AS execNum,
SUM(IF( a.status_flag = 1 AND b.task_status = 1 AND end_date >= NOW() , 1, 0 )) AS notExecNum
from tab_haoban_qw_moment_plan a left join tab_haoban_qw_moment_plan_attend b on a.plan_id = b.plan_id
where a.wx_enterprise_id=#{wxEnterpriseId} and a.enterprise_id=#{enterpriseId} and b.store_id=#{storeId}
and b.status_flag = 1 and a.delete_flag = 0
<if test="null != clerkId">
and b.clerk_id = #{clerkId}
</if>
<if test="null != nameLike">
and a.title like #{nameLike}
</if>
group by a.plan_id
<if test="planStatus==0">
having notExecNum > 0
</if>
<if test="planStatus==1">
having notExecNum = 0
</if>
ORDER BY a.publish_time DESC , a.plan_id DESC
</select>
<select id="getTaskNum" resultType="java.lang.Integer"
parameterType="com.gic.haoban.manage.api.qdto.moment.TaskNumQDTO">
select count(1) from (
select a.plan_id
from tab_haoban_qw_moment_plan a left join tab_haoban_qw_moment_plan_attend b on a.plan_id = b.plan_id
where a.wx_enterprise_id=#{wxEnterpriseId} and a.enterprise_id=#{enterpriseId} and b.store_id=#{storeId}
and b.status_flag = 1 and a.end_date > now() and a.status_flag = 1 and b.task_status = 1
<if test="null != clerkId">
and b.clerk_id = #{clerkId}
</if>
group by a.plan_id ) t
</select>
<select id="list" resultMap="result-map-tabHaobanQwMomentPlan"
parameterType="com.gic.haoban.manage.api.qdto.moment.QwMomentPlanQDTO">
select <include refid="Base_Column_List"/> from tab_haoban_qw_moment_plan where enterprise_id = #{enterpriseId}
<if test="null != wxEnterpriseId">
and wx_enterprise_id=#{wxEnterpriseId}
</if>
<if test="statusFlag ==0">
and ( status_flag = 1 and begin_date <![CDATA[ > ]]> NOW() )
</if>
<if test="statusFlag ==1">
and ( status_flag = 1 and end_date <![CDATA[ >= ]]> NOW() and begin_date <![CDATA[ <= ]]> now() )
</if>
<if test="statusFlag ==2">
and ( status_flag = 2 )
</if>
<if test="statusFlag ==3">
and ( status_flag = 1 and end_date <![CDATA[ < ]]> NOW() )
</if>
<if test="null != startTime" >
and create_time >= #{startTime} and create_time <![CDATA[ <= ]]> #{endTime}
</if>
<if test="null != nameParamsLike" >
and ( title like #{nameParamsLike} or plan_id = #{nameParams} )
</if>
<if test="null != execType">
and exec_type = #{execType}
</if>
<if test="null != creatorIdList and creatorIdList.size()>0">
AND creator_id IN
<foreach collection="creatorIdList" separator="," open="(" close=")" item="item">
#{item}
</foreach>
</if>
and delete_flag = 0 order by ${sortColumn} ${sortType}
</select>
<select id="listForData" resultType="java.lang.Long">
<if test="type==1">
select plan_id from tab_haoban_qw_moment_plan where status_flag = 1 and begin_date <![CDATA[ < ]]> now() and end_date > now() and delete_flag = 0
</if>
<if test="type==2">
select plan_id from tab_haoban_qw_moment_plan where status_flag = 1 and begin_date <![CDATA[ < ]]> now() and end_date > DATE_ADD(now(), INTERVAL -3 DAY) and delete_flag = 0 and done_num > 0
</if>
</select>
<select id="listForStop" resultMap="result-map-tabHaobanQwMomentPlan">
select <include refid="Base_Column_List" /> from tab_haoban_qw_moment_plan where end_date =#{time} and delete_flag =0 and status_flag = 1 and exec_type = 0
</select>
<update id="del" parameterType="java.lang.Long">
update tab_haoban_qw_moment_plan set delete_flag = 1 where plan_id = #{planId}
</update>
<update id="stop" parameterType="java.lang.Long">
update tab_haoban_qw_moment_plan set status_flag = 2 , stop_time = now() where plan_id = #{planId}
</update>
<update id="updateClerkNum">
update tab_haoban_qw_moment_plan <set>
<if test="-1 != totalNum">
total_num = #{totalNum} ,
</if>
<if test="-1 != taskClerkNum">
task_clerk_num = #{taskClerkNum} ,
</if>
<if test="-1 != doneNum">
done_num = #{doneNum} + 1 , exec_rate = done_num *10000 / task_clerk_num
</if>
</set>
where plan_id = #{planId}
</update>
<update id="updateJobid">
update tab_haoban_qw_moment_plan set qw_jobid = #{jobId} where plan_id = #{planId}
</update>
<update id="updateMomentId">
update tab_haoban_qw_moment_plan set moment_id = #{momentId} where plan_id = #{planId}
</update>
<update id="updateQwData">
update tab_haoban_qw_moment_plan set total_like_count = #{like} , total_comment_count = #{comment} where plan_id = #{planId}
</update>
</mapper>
\ No newline at end of file
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.gic.haoban.manage.api.service.OpenStaffApiService;
import com.gic.member.api.dto.es.MemberDataDTO;
import com.gic.member.api.service.MemberApiService;
import com.gic.search.engine.api.constant.OperateEnum;
import com.gic.search.engine.api.dto.ESResponseQueryBatch;
import com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO;
import com.gic.search.engine.api.filter.NewNodeAddUtil;
import com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService;
import org.apache.commons.collections.CollectionUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext-conf.xml"})
public class ChaHuiyuanTest {
@Autowired
private ESDataDynamicOperationApiService esDataDynamicOperationApiService ;
String eid = "ff8080816deed97e016df22b567a1e2b";
@Test
public void tt() {
List<String> list = FileUtils3.getText();
this.getMemberMap(eid,list) ;
}
public void getMemberMap(String enterpriseId, List<String> memberIdList) {
String returnFields = "memberId,mainStoreId,mainClerkId,openStoreId,openClerkId,name,nickName,phoneNumber,photoUrl,cardNo";
List<JSONObject> esList = this.queryDataBatch(enterpriseId, memberIdList, returnFields);
List<MemberDataDTO> list = JSONArray.parseArray(JSONArray.toJSONString(esList),MemberDataDTO.class);
for(MemberDataDTO m : list) {
System.out.println(m.getMemberId()+","+m.getCardNo());
}
}
public List<JSONObject> queryDataBatch(String enterpriseId, List<String> memberIdList, String returnFields) {
DynamicSearchDTO search = new DynamicSearchDTO();
search.setEnterpriseId(enterpriseId);
search.setColumnCategoryCode("member");
String memberIds = String.join(" ", memberIdList);
JSONObject searchObj = new JSONObject();
searchObj = NewNodeAddUtil.addNewNodeForAnd("memberId", OperateEnum.OPERATE_CONTAIN.getValue(), memberIds,
searchObj);
search.setSearchJson(searchObj);
search.setReturnFileds(returnFields);
search.setSortJson(NewNodeAddUtil.createSortNode("memberId", NewNodeAddUtil.SORT_RULE_ASC));
search.setBegin(0);
search.setRecordNumber(memberIdList.size());
ESResponseQueryBatch response = this.esDataDynamicOperationApiService.queryDataBatch(search, Boolean.FALSE,
null);
return response.getRes();
}
}
......@@ -128,6 +128,9 @@ public class ChatTest {
@Autowired
private QywxExternalUserService qywxExternalUserService;
public static void main(String[] args) {
System.out.println("ff80808191282eee019146b628d82460".hashCode()%10);
}
@Test
public void test() {
......
......@@ -17,7 +17,7 @@ public class FileUtils3 {
public static List<String> getText(){
List<String> list = new ArrayList<>();
try {
BufferedReader bw = new BufferedReader(new FileReader(new File("c:\\b.txt"))) ;
BufferedReader bw = new BufferedReader(new FileReader(new File("d:\\json.txt"))) ;
StringBuilder sb = new StringBuilder() ;
while(true) {
String s = bw.readLine() ;
......
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.content.api.qdto.activity.ContentActivityQDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityHmDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityRewardDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityRewardDetailDTO;
......@@ -12,9 +14,12 @@ import com.gic.haoban.manage.api.service.chat.GroupChatActivityApiService;
import com.gic.haoban.manage.api.service.chat.GroupChatActivityShareApiService;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatActivityBaseContext;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatActivityContext;
import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.service.chat.GroupChatActivityInviteLogService;
import com.gic.haoban.manage.service.service.chat.GroupChatActivityRewardLogService;
import com.gic.haoban.manage.service.service.chat.GroupChatActivityService;
import com.gic.wechat.api.dto.qywx.chat.GroupChatListDTO;
import com.gic.wechat.api.service.qywx.QywxChatApiService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
......@@ -39,6 +44,21 @@ public class GroupChatTest {
private GroupChatActivityShareApiService groupChatActivityShareApiService;
@Autowired
private GroupChatActivityInviteLogService groupChatActivityInviteLogService;
@Autowired
private WxEnterpriseService wxEnterpriseService ;
@Autowired
private QywxChatApiService qywxChatApiService ;
@Test
public void test() {
String wxEnterpriseId = "4b18675afa7e4dfaa7b9c66b11ca6474";
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
ServiceResponse<GroupChatListDTO> resp = this.qywxChatApiService.groupchatList(qwDTO.getThirdCorpid(),
qwDTO.getSelf3thSecret() , Arrays.asList("15277046187","17703215186"), 1, null , qwDTO.isSelf(), qwDTO.getUrlHost());
System.out.println("*****************同步群列表"+JSON.toJSONString(resp));
}
@Test
public void saveActivity() throws Exception{
......
......@@ -29,383 +29,476 @@ public class HaobanRoleTest {
@Test
public void tt() {
List<String> list = Arrays.asList("a0e2b8466e554aa88fa25e6f3757aa06",
"a253a78e2f1349fb9e8727015e48cd2b",
"d672eda301b2499a899902a02e55041c",
"626a8fd134ea4b91a83d472e0aba4081",
"9b5eda19379f412eaf1c55477910b792",
"2834fc85368847fd9c9614993a7a31a0",
"16e40d9a63814668873e36fa3bdd2d2a",
"e03b7089bfbf46cba60479f147adf6eb",
List<String> list = Arrays.asList("771859eba515470d80d7c99cad6de224",
"c054c2bb07a04b6b83a3ecb1f1d2fea0",
"b8e88fabdf0a4282b5b5ad641240e98f",
"1382a56af61147e1917a78ef8e6cf000",
"ac3ec79249a3495e92947c05034986a3",
"7c0ecea6657a41f59da66a09f191705d",
"8ec4350fbbba498789d78a757f4fd701",
"2313e41b16d843ad8d45828f4b475643",
"29f5926b34c749c3a8b95739a963748d",
"1d84dc1cd6ea43068c4640264fe9cf6c",
"64f807355a9f47378311466ad147b178",
"0fc1ef4f8f8f4f89bd09e9c5a9428961",
"cb4eeda3e07e4765b8e6d774b95771c2",
"67897dbb905d4720a4718a6c5539afa5",
"47a76bacad474d95a8111756b7ba9b2d",
"2fdb7927db174a8e9d68c975538364d5",
"89fd6ad36b3f4d0f9b06c856e4d91441",
"e0e12e08d62b47ac823b7d8d99fb9495",
"7c140f63c6c14acab2eac5290ed0c59d",
"c05df62cd6f844cea55778321c5552e5",
"784b6d7711664b278d7d73f92940958f",
"8bb1442e0f5943989cf9e5513acb1f03",
"f47cf73c887c444a909eb60feac0e6b2",
"703207906c5942b0937f8eda35036e9b",
"1f29d6d940254005a805041a24684b1c",
"f1f32aea8eee4a15be09d8c755d906bc",
"27f6a5b4ed474c7889f9f35efdd90acb",
"aaeb11a19ebc49d0b9e05f4c6e0ee98e",
"aff51a3b36e44beb9edc55a68de73f4d",
"0051a2bbbfa442568d472e446244ddb6",
"0bd39f2386824e41a0a145cc4dcda29d",
"81f546ffc79544ee81f5f80f2e3993ae",
"1debfbd39d4249ef9ccf6e2d5c1ee199",
"f482ab6f37d9401885acc7e7b07170ee",
"28964c9168ec4e6bbc3aa072e3374b7e",
"6404f37c4a4d4ab6ae20c9980575daa0",
"cd688b9b915b4c4d81a967abf5ce2399",
"c50a57f2a59042e9aa4ff8361f2d61f7",
"f04df76f35a14d819fc7192d8d75d33a",
"2e5db471800b4c529e52dc4f98f6651a",
"9aad8308f8524b6cac451519f6d65792",
"5fff1b5ff62149f8bad5b10b141bcc6b",
"4e801e4b9cd4489389a4c12c30b5595f",
"8af6367375d643f4adf0bd255349d52a",
"31a820018562417d9947f0f4771ddfc2",
"8477c149d8774f06ab841f042645832b",
"dcc57fbe466942fb9338e22c4f55a58d",
"fa8445c14f1b4e749729c1f12ca0fd64",
"a2537fd63e594221bfcdfaea9013c2a9",
"93409ef252b64a77a238d4c99bd44b8d",
"368ed5e4bff542299387baa25a074779",
"9d6e78716f42479eb3056902d5553e94",
"3e98de1a1b61422f904f8128c71eab95",
"463045fde3ac4b4da2778b46f1c55155",
"362cdcf577fc4cd686958c6443c0b9d7",
"c2a7904f682343efb9bc1cae026888a3",
"0e4819d814fc4c2698273a0f9e12ca24",
"e034e2bd5d0b44d3bf553c9f8204094c",
"8dfe18d9077a4192bc6f76463052a8e3",
"ae6737b9ef234dc3be12922cdbe7a404",
"602b72561d4d47aabf88897f754456f3",
"0feac8068fef4736b03a57aeb0c03cb5",
"a253a78e2f1349fb9e8727015e48cd2b",
"1221cea0a12840429a56d823489c4295",
"bbf8e5d0aac64b0b982e3afd971b8ff0",
"207b879084324809be5810d70d287fd1",
"abcd03d17eb349d491b983b09d678a4a",
"1dac964159694e4d9a8f03a3e6d65d75",
"46a4b60dea4b4b83a6ff81108c1d0d17",
"bf0f8b4351754819984ce12fbc3a8a4f",
"9900848270d6422c891c8b674c729a04",
"4119c628c1ab42da9c7976f405a0d013",
"3807d1017a1544d3be888e6108494dd2",
"f079bd6c985a4b8296ce1ba5b7a4e41e",
"acbfeb379b5242d5b2e44ab50e1047a1",
"4b18675afa7e4dfaa7b9c66b11ca6474",
"1d1e13c75d314c1fb01b97f104baf74b",
"7d1a509a3ad94a9f8c001ead0394e199",
"0dd77eacc16d4499a7310d0d663a27f6",
"8ee3e7e1016142fba939460fb9098c08",
"e9254b614d6e43ffa7c74094be1f07f2",
"0e33e5b6c97b46d39d3502335f227fed",
"e125f933481749828eb3b8bf9bb03801",
"8824ef05d5394f7085cf909141ef6d4c",
"b4fa8b82902944778c740c7fc08fd7bc",
"6dccb1983a8e400987d8608fb63db7b1",
"7df48a749ec1457594e85f80233ee4a3",
"d4210ec4393d4be9b75b79f7e4db4287",
"a238657d62c04ad2bb04b30d77552f6f",
"057b77b82e4349b59a8f6613c790b578",
"7d1e3ee9b5ed4751a9beb9193a263c8e",
"198413be4c614564acda9d05e1b845fd",
"2db544a8d44d429982d0fd1ad0cd81fe",
"7a6656b229db40b2b87719ad92dc6da9",
"213ee71a87184dddbbbceeb5b38fecde",
"eec55cf2133d48a6ab99292ca914798f",
"c44499b124c24b669c8185dce2001bcd",
"ee364e50f36b45c791b10568d61689f8",
"e34cf346f9ff4920ab186085f0f78527",
"8109cb858d174b7782280f61ec31f0a5",
"500f8256e232465da60adbe3a6e308fd",
"2eb11d95dc364ee79bef12a0a7c9048f",
"ab118565196540d9a0b6752b080c6a57",
"a8e33b39a1134fa28faf3090346ec298",
"3261f11ed58542ad903f753e4d7140f5",
"771859eba515470d80d7c99cad6de224",
"ec399cbc2b204863929070ae05ad373f",
"da15c53d69534f6db9238001fb7f4595",
"31ebe5173e6348718a525e8784b618cb",
"cad5cb747e154a1bb02ad13d1fc1cbbe",
"e78d7726ce75428aa16ad4a029ba2fbf",
"faf70a82e8db433ea58a3be12d6f31e0",
"47a76bacad474d95a8111756b7ba9b2d",
"cb39e3facf1e419cac0582d2c5dbc394",
"f7feddfa8a1e45e48468b8c618193a68",
"c0c2186a947440aa8c0afbdd869ec043",
"85be128d963a4889a43a4efc2834fce5",
"27c3a1376f0a4d93958cb61767f74772",
"d4d2ad3949314b93963c29a88bfcffae",
"ae8452c5ad8140e9ba39fd39a0452ea0",
"1e98842f50a545e8a74810f5685ac5c4",
"03921c5bcc8f471fbd341e0c1d532c4f",
"66d97c3272794dd79ff025bc48eadb00",
"3c881f84f5f743f2a03a79384e6a938a",
"e5b606108d294886a708555a080cf938",
"dace034955de48e89192e583379b36af",
"aec90d5293f949859f3cd05b86a561e3",
"3d2cb5eaa8744cb2ae9ea372a0cef9be",
"05b30f42a224488f9d064765b983e8cf",
"0051a2bbbfa442568d472e446244ddb6",
"58dc9f135c764e82a932a790bd0e519e",
"fbd75796d20541c2b998e6f36126b495",
"689c1cdf2d35435eb9065066bb41d028",
"4a3b8f75ceee456cb6c7fa3ca645d587",
"f0301cf9ff34438baa168cc6b6ea7c13",
"827041d9dd6a4a1a983585e590c93124",
"faacb0a2dcad4db8909e1bbcf23f46bf",
"6f279de1d6ff4769bebbad54189d1feb",
"1aad46766eae42c09de19ec5cedb004b",
"0b149af4d61e4c2aaa2da768642f201b",
"25f358d8e8ad4feaa01d773fbbc30fef",
"953299696d2b4eaebaeb52dd597d3f63",
"f550da66c436459ba4a7eb482aa63afb",
"9dd18b31dfa342e190d0001e764cd1a8",
"a899e618f5104813bf445a9e5175defb",
"e46d2eb33b4842c3b2348e5362353a3a",
"8d4a6f15b2684806956d8610db9e2578",
"ae6737b9ef234dc3be12922cdbe7a404",
"b6d49b95afa047c6a6f3009173a9c089",
"7515993f8afb46d6856c138f8236c372",
"3a86592d9c3f4aa39eb208eeb50dbbf3",
"ad6c4b35b4c54efabef8fde8ebf7d1ac",
"95d21303782e45cc99af09da5b819ab1",
"5f184bc85e614af6beb2e8f93b6809f4",
"b3fea34fe8ee435b87e9af61b34bb983",
"1ccbf4b3646a4697969760bfe9879816",
"b0d73b83f534460ca6dc7f518f7745f1",
"02d1e6bf1ab04168a7556e121f5d594b",
"12501f4b793343e6a5afd148112c5949",
"4ca1fe1b423c479899662be6bf8e12ab",
"5e122e13d8834372beafc79bc4aa50b7",
"d0f476b576ef4f84adb02486bad453eb",
"0abea1dfeb5a4b69999b397767766ff7",
"49800ac8431b420da8c82ae31dc96cbd",
"40d1fab667f443b1b120373d01b31f2a",
"54bc94380dbe42d69feeeff7992da1f6",
"0bf16aea86fd40e5b9f7c0f5653bde32",
"d2c5f455738c4133a18f747c7b89382e",
"271deb1a949f4c85a49a9bba70498976",
"8aef68018c3a4a25a8d8c89e63af3191",
"1d1e13c75d314c1fb01b97f104baf74b",
"9a2c0dadbaf24b97824a1d77bc86bf4d",
"8a3c64520eff477c8b1079bf528d8e9a",
"702a4ede9999412b917b15afd743c0a7",
"d226a840168e435c9315b2e873ee73ad",
"8af6367375d643f4adf0bd255349d52a",
"3b63712d97944996959b72c1df443491",
"9698ba9e797b42b3ad924ba58b39f4c0",
"e72d6e4b44844abd95e7dc3a98c92628",
"cfc7dd59adf34dc88c4c714f55c40b53",
"4b954d56885d48c4a318d66f213006ef",
"f4e5c659e6f848749b8c25535263a8ad",
"93416e3a92504683b5b13513477a840a",
"369038a3568b46a6898d635843b73dc6",
"028228f414164b5282755952f080ccfe",
"984fa35315b341e8894078d6aba930e3",
"28dacca98f804ad586b4fab4d89df91b",
"a9f344da556c4ef196fe7d19f3ec3a89",
"238f0503143441c189e791347daf2dd1",
"16c336c516fb42adb843d403f861cd0b",
"eef50d95636c4821869ac3315efac814",
"521edc4920bf43fa98caee105d297556",
"27f6a5b4ed474c7889f9f35efdd90acb",
"fcae29cc5d7d4739a353e777e5e77d82",
"edbc2a17e4e341999b625d2cd8d31b9b",
"692441406a9c41ce9e54afb495d1b536",
"d1bc85085ac34061a3be378ac3905279",
"500f8256e232465da60adbe3a6e308fd",
"73e457a2ad364825b33c3212bba05128",
"533103b705d448f991edf24d2a244c10",
"c50dc2164f1e4a3b95dbfbc824278ce5",
"513657bcaff3411b9a70200d4bce4826",
"dad5bcc8edbb424abdf70d7365680d49",
"f7dea30408aa47a6aed0edcd801e1500",
"e9254b614d6e43ffa7c74094be1f07f2",
"2db544a8d44d429982d0fd1ad0cd81fe",
"def740442c684ac18532a72f8eb15e31",
"716fd0e5cc354cfd9cb1169d026d86db",
"457d80d1ac65483fb04d37fc4ef945a9",
"1dac964159694e4d9a8f03a3e6d65d75",
"7a11c347030342eba50d188b96b646c0",
"de600085669b46149213f641c3768933",
"2cae93c93d594499be7afdef3999c187",
"bb55da16836540979dc83901b310ff7b",
"165d3fd1b452492f95f9c58380c344f3",
"c28402611777477780a29f237d4e7823",
"dcc57fbe466942fb9338e22c4f55a58d",
"376cece6904342b1a948b36c95ae8d3c",
"8e095672232f4a2a965606731b9f4b33",
"49896d89f00e45ee975100bdfba29c9e",
"59d8d6421d3044cfb1c87e15797219ca",
"0ee6d7931966427c9c12451ff9bb7f9a",
"d2c5f455738c4133a18f747c7b89382e",
"9a7a89d2d1534c47980ea0886a202d3c",
"1d5a0540002049e997d7b71bc95029ba",
"05571082787c49498dd5facc9b97df3e",
"99cdf0fe5747447aa88e6249bce60a91",
"31a820018562417d9947f0f4771ddfc2",
"fd97e7eb254843d88f2d1493bed7c97d",
"028228f414164b5282755952f080ccfe",
"90d286dd72e34b8db5c92ad4045e38b4",
"fb8b98a779e247efbed10ed474f9ad01",
"b516bdfeae5642b888a268f8e7de4e09",
"b585912573ce49d98e98b7ccc2c80292",
"1aad46766eae42c09de19ec5cedb004b",
"41203c07d05f494a82a633ed964d39d3",
"6a2ec77394e54d448f7de350ae0737cc",
"a833a4a4d3ee430b88847e427f5f548f",
"7f8c0c0eedd546ed9c4b355bb9cc2f31",
"74394d101c40405a9303d0d3fedc178f",
"f299dee10f36493e821b192e25d2689a",
"207b879084324809be5810d70d287fd1",
"24d1ca5d21534ceaa8db841e10231681",
"faacb0a2dcad4db8909e1bbcf23f46bf",
"29369c6903fd4fedbf0dfb8260778765",
"7c0ecea6657a41f59da66a09f191705d",
"168fd30abe1d4bb683f7024331bf6d55",
"98857d4d88154249b3c17a7bde76127a",
"0a2e14b5535d490588314c288527ca12",
"6dd39faa087745d1bcd6de10b1175158",
"b18b5c361ae14528be9d4509c85bf378",
"1ccbf4b3646a4697969760bfe9879816",
"48348858663f4c4b8729cbf86919fb81",
"94080b033a204fbc8491b83b8ab1ebad",
"8d998a7656a148f0ac3eeff11339021f",
"b584cc828ca44594b83238ca7525c715",
"1d84dc1cd6ea43068c4640264fe9cf6c",
"771c4c6d5d9844ff85550f3764fe3741",
"bd833266bc0c40cdb34bd24a21a6f662",
"b724dd8c26684db4ba3993972c4f76ae",
"b0d73b83f534460ca6dc7f518f7745f1",
"aaeb11a19ebc49d0b9e05f4c6e0ee98e",
"b9bfccb9aacf47aab70871bf491bc80d",
"fb85fc977e1e462492307e868e7eef3d",
"0a265e8a78ce458989e32964d138da82",
"ac3ec79249a3495e92947c05034986a3",
"b9246e6d35854fb9816dcbf7f44a0e7e",
"a05c50e72a0945b9afe175d4ad3f258f",
"27ef74e052054cf3bccf15235abb0fb2",
"827041d9dd6a4a1a983585e590c93124",
"b95b164425204fe2baf1fa8cdb1be695",
"5c1a02dcd9b84bc2826a15513c92cc02",
"c4176174e397449dbfdfced81451be9d",
"515b2222eea248f9b0c68864ab63bfb2",
"25cda90a9530445ba5aa3e20155f930e",
"ac451a350eed4a96958dd5c7377f8bd9",
"c65be37e397d4f2fbd90b8e59b6b4e53",
"da15c53d69534f6db9238001fb7f4595",
"d7928daea8d344aaa5aa7b8d8debea04",
"8e4917cfd89b4170877db0dd186a2372",
"0e4819d814fc4c2698273a0f9e12ca24",
"e0e2e8c7f9a040759025b79094081640",
"b8f2f238e73844219d8c1ac563cec0db",
"68d1fa15838a4604a58af9c5dcff1a23",
"e34cf346f9ff4920ab186085f0f78527",
"28dacca98f804ad586b4fab4d89df91b",
"d1bc85085ac34061a3be378ac3905279",
"6a2ec77394e54d448f7de350ae0737cc",
"d80500ce620642d7aee9aa526b5f8ae5",
"165d3fd1b452492f95f9c58380c344f3",
"4044dde9ad46432198452534f06ec6b5",
"d0a9e3cd351e4c26a526082a8c210f03",
"70ec36aa789f41ed9c8e11210e06fae2",
"0bd39f2386824e41a0a145cc4dcda29d",
"54bc94380dbe42d69feeeff7992da1f6",
"00ce3f9d57b041b3a8ab74cde731230b",
"29f5926b34c749c3a8b95739a963748d",
"64f807355a9f47378311466ad147b178",
"f7dea30408aa47a6aed0edcd801e1500",
"e0f02a8502a34be3b0003ab95b918359",
"d4516c84caf44742a4723e2ce84e6720",
"60dd1a7f176347ce993a2d0d5c7a3331",
"a9f344da556c4ef196fe7d19f3ec3a89",
"c43f64a1d36846c88054a5db06345914",
"ab118565196540d9a0b6752b080c6a57",
"8be7e781a6564ae8b5e50912b08fe319",
"8167f2030c06456f91020f2ea62b231a",
"8e095672232f4a2a965606731b9f4b33",
"462995bc8bd44249a3abab182d583b4b",
"f7feddfa8a1e45e48468b8c618193a68",
"8477c149d8774f06ab841f042645832b",
"37331d01245d434896bc54bffc69dcf6",
"9fe193b0c2754166982e109f450d9b97",
"9d89bb22e0894f7a8b7bff4af1c95629",
"0a265e8a78ce458989e32964d138da82",
"e044d8aa6d414a3ca8e496a9f1cde3f5",
"ea1dbe16cabf477d87057880ac7e844e",
"45a039d8b56a4b78b4cd316b9485fc7a",
"213ee71a87184dddbbbceeb5b38fecde",
"23a5357cf9b94e808899e0bb7ac7309f",
"8e4e3768c05048dfb286aca9e097c053",
"9aad8308f8524b6cac451519f6d65792",
"07a2a516fcb241ce883bd2225164f435",
"4ab90369954d4687b2f0e18ccd962ea2",
"2277c0c559bc4671bf2246905217136b",
"bf1df4c8e6314d4cab62a3f99eb6d942",
"533103b705d448f991edf24d2a244c10",
"73858f5b9a1243bba2fb10c9c026fc34",
"267c13c9a6f049bfacfc05b9419462a1",
"9b5eda19379f412eaf1c55477910b792",
"e0ee4460340b417facc2c66eec887f2f",
"e8722d13f1054101a000b6a86bf6a1d2",
"09bcb860e59e4a0894db0db114ba0ec4",
"48348858663f4c4b8729cbf86919fb81",
"24d1ca5d21534ceaa8db841e10231681",
"0dd77eacc16d4499a7310d0d663a27f6",
"3807d1017a1544d3be888e6108494dd2",
"5fff1b5ff62149f8bad5b10b141bcc6b",
"65adbac524764473b36c9c66f13fac68",
"0ff9a2ef8a114ffc9a3b74b8425f0d46",
"b114eb1193864ade93b1361a962e065f",
"40c12bf0c8b04b9d97a36ebd6dca201c",
"2d7d999184b74afdb1a421d79a67f1e0",
"94a8d2b32e4c494db3055cd39771e1d6",
"f482ab6f37d9401885acc7e7b07170ee",
"6c1b24df774d4b589629035de4c4ac34",
"d0f476b576ef4f84adb02486bad453eb",
"861e0e0d31ae477b9c3c5366b3f248f5",
"aff51a3b36e44beb9edc55a68de73f4d",
"b72b31ece29b4c6c984a1feefbe04665",
"cefee250b1e44d9ebbc13dac07bc8056",
"398fa1d1021c4ed6b40582d6c695a495",
"a05c50e72a0945b9afe175d4ad3f258f",
"24e96b7c7a6e42a0bc26531aded9dde0",
"def740442c684ac18532a72f8eb15e31",
"457d80d1ac65483fb04d37fc4ef945a9",
"df254df0249f45bc9e4b1a4b4642e7a7",
"b95b164425204fe2baf1fa8cdb1be695",
"c7b806a2032e427ca482ad724f37358f",
"9900848270d6422c891c8b674c729a04",
"4b18675afa7e4dfaa7b9c66b11ca6474",
"e0f02a8502a34be3b0003ab95b918359",
"f12ead3abb574479987040c88f79e416",
"a084a52cb68c4bfaa098022d6812b243",
"94386051106d49959249d169e9df5681",
"376884c2ef0842bab78a04445899b8ef",
"727f05dbe66d48009719f63a189b9965",
"db6c58bc454c4a25bd0d8caed3c0959f",
"8e4917cfd89b4170877db0dd186a2372",
"d4210ec4393d4be9b75b79f7e4db4287",
"3fbaa4c643754c8abdcbda74701090ce",
"60dd1a7f176347ce993a2d0d5c7a3331",
"46a4b60dea4b4b83a6ff81108c1d0d17",
"778fefcbbf5c43969d17b1895a406237",
"4f6e5d92adfe4c51b14655b382e19d47",
"67346a682cc44ed09f983094a53c904b",
"771c4c6d5d9844ff85550f3764fe3741",
"c50a57f2a59042e9aa4ff8361f2d61f7",
"b3fea34fe8ee435b87e9af61b34bb983",
"5daccbc4c2f3447b87b9b0342b85ad58",
"66fabfdb1b154e7b85f2db46edfe4c4d",
"e5b606108d294886a708555a080cf938",
"c28402611777477780a29f237d4e7823",
"8895cdbe41194305a6042df65afcf36e",
"dace034955de48e89192e583379b36af",
"4b6bfd0ff7474096819ee74ed9a148c5",
"e72d6e4b44844abd95e7dc3a98c92628",
"71ccfa9715f745d69d6c998ed02d7a05",
"23a5357cf9b94e808899e0bb7ac7309f",
"716fd0e5cc354cfd9cb1169d026d86db",
"9ac676478e6f44998a8b03f7b4791d0e",
"702a4ede9999412b917b15afd743c0a7",
"1221cea0a12840429a56d823489c4295",
"267c13c9a6f049bfacfc05b9419462a1",
"0e63727e35e14d69b86cd4e422a07663",
"58dc9f135c764e82a932a790bd0e519e",
"4e801e4b9cd4489389a4c12c30b5595f",
"418b9268172641b0835e46485e830d04",
"b29a41a5518b45a6ace7e9703036c77d",
"168fd30abe1d4bb683f7024331bf6d55",
"b8f2f238e73844219d8c1ac563cec0db",
"fb40256db41142a196b21ccf03e58507",
"d4516c84caf44742a4723e2ce84e6720",
"be71a7e3f725426f98dd8d58e4d2ec2e",
"66989aef012148af92869e3e833b9965",
"6e2ebc6b188544439abd14d5e213c6f5",
"6953adf9f0fb49418aa5321ca6cd062e",
"74394d101c40405a9303d0d3fedc178f",
"b84b8f411cc445e983596589931fccd6",
"eef50d95636c4821869ac3315efac814",
"f5492cd1489f4cbbb3934dca96fee20a",
"7d1e3ee9b5ed4751a9beb9193a263c8e",
"bfbed220d031434da0475c347cc8bdaf",
"59d8d6421d3044cfb1c87e15797219ca",
"984fa35315b341e8894078d6aba930e3",
"e78d7726ce75428aa16ad4a029ba2fbf",
"1be5c2ac3f6146d0bbfcec9a539de6df",
"e03b7089bfbf46cba60479f147adf6eb",
"1fadf4ecb1484c5a8c4d062d79ac9aea",
"16e40d9a63814668873e36fa3bdd2d2a",
"cad5cb747e154a1bb02ad13d1fc1cbbe",
"939605cf70c5454692425ad99afd5259",
"2de86c342b134edfa1075a8ce1a55d47",
"c44499b124c24b669c8185dce2001bcd",
"a519c5f75cda442aa34fe19b2676b9d0",
"d734b9a19f52484db17fdee7ba4f1eda",
"fcae29cc5d7d4739a353e777e5e77d82",
"ec399cbc2b204863929070ae05ad373f",
"134801372fc44b1fa94c61e7c41d67b4",
"238f0503143441c189e791347daf2dd1",
"82f9dcb8378d4a06ae7124597a0eafde",
"902a34cf07784b08831cb490cfe6ce3f",
"1ad8582021b148b8a1d30bf428afc84c",
"4bb66817efe44cde8d5ca53fce61a1bd",
"14674e3df079419b867c8c9201b79097",
"31060eb76d7a42969516c7ff12f9a1ea",
"b0bdf01506a346bf9ae64907082ced24",
"1debfbd39d4249ef9ccf6e2d5c1ee199",
"533a1ad1d4a1428fa3ea8a81a90ba975",
"939605cf70c5454692425ad99afd5259",
"18e66bd54f694399be7271befe2205bc",
"ac7baaba195746f099bd7e10024f275d",
"bf1df4c8e6314d4cab62a3f99eb6d942",
"b914c346d6344fd2a0fd68f7c5e24fe5",
"2dd01dc003934f54952418bb764e4f75",
"a0e2b8466e554aa88fa25e6f3757aa06",
"eec55cf2133d48a6ab99292ca914798f",
"71161c52d05544e1a56acc5c67d6b7de",
"37339f333a3a49f1bcc89e3b7999114a",
"8d4a6f15b2684806956d8610db9e2578",
"7a6656b229db40b2b87719ad92dc6da9",
"2277c0c559bc4671bf2246905217136b",
"c3e61531cf4f4d85a7e5ed7647f7520a",
"55902436994f4949a3f6e6b901510061",
"c42fddd1867e401cb2224437909eeda0",
"03921c5bcc8f471fbd341e0c1d532c4f",
"f2b989f5dadb4f0091eabd3fd6397116",
"b82aec8285d84e81b4634fb36d087004",
"b18b5c361ae14528be9d4509c85bf378",
"6dccb1983a8e400987d8608fb63db7b1",
"99cdf0fe5747447aa88e6249bce60a91",
"7dd8a83d21ae435788f3bb17869d13bd",
"90456a871bf0410493fb33660f85cfc9",
"9648ba4ea629437e801794b6d06d97c0",
"4c9a01934cc34124973729d7fe2f50f7",
"13dea65945c84640a2560dd35b4a7ea9",
"376cece6904342b1a948b36c95ae8d3c",
"1e98842f50a545e8a74810f5685ac5c4",
"edbc2a17e4e341999b625d2cd8d31b9b",
"fc6b9d30d0a44c25a29f9da9ae84071c",
"a21fdabbde9a4245a8081bc02e96ab85",
"9a8d1aa99e8f478d8492d19053a84974",
"fb85fc977e1e462492307e868e7eef3d",
"b724dd8c26684db4ba3993972c4f76ae",
"d1b2bcfe1f814f2b934334c4c22419a2",
"6f65c943ad1145caa002901a27b3856c",
"94080b033a204fbc8491b83b8ab1ebad",
"29b810cb1ad146e2a0bf9724c7f2b99e",
"249d8e02797b40fba8c38c88d01d2fcb",
"39fe8f2571594ea49c8e5ed18f88aafd",
"0cba15ff7ea84d60aeae3c9b2f50252a",
"40d1fab667f443b1b120373d01b31f2a",
"2d7d999184b74afdb1a421d79a67f1e0",
"6d1155b55c4147a1877f8a2d438b53fa",
"1382a56af61147e1917a78ef8e6cf000",
"4bb66817efe44cde8d5ca53fce61a1bd",
"c50dc2164f1e4a3b95dbfbc824278ce5",
"0fc1ef4f8f8f4f89bd09e9c5a9428961",
"25f358d8e8ad4feaa01d773fbbc30fef",
"f0301cf9ff34438baa168cc6b6ea7c13",
"45a039d8b56a4b78b4cd316b9485fc7a",
"602b72561d4d47aabf88897f754456f3",
"515b2222eea248f9b0c68864ab63bfb2",
"d0a9e3cd351e4c26a526082a8c210f03",
"7a11c347030342eba50d188b96b646c0",
"1ad8582021b148b8a1d30bf428afc84c",
"f88a91e0f38b4d819f4a352dc63e2f77",
"0abea1dfeb5a4b69999b397767766ff7",
"6f66f42fa55c4c27a63eb8cf07032a3d",
"68d1fa15838a4604a58af9c5dcff1a23",
"7df48a749ec1457594e85f80233ee4a3",
"98857d4d88154249b3c17a7bde76127a",
"f04df76f35a14d819fc7192d8d75d33a",
"f47cf73c887c444a909eb60feac0e6b2",
"a833a4a4d3ee430b88847e427f5f548f",
"18e66bd54f694399be7271befe2205bc",
"f299dee10f36493e821b192e25d2689a",
"a5a8f973aa884a0192a0a80ce66ff056",
"ee4314d1f60546f38c7f51b97e2857d7",
"fd97e7eb254843d88f2d1493bed7c97d",
"e034e2bd5d0b44d3bf553c9f8204094c",
"25cda90a9530445ba5aa3e20155f930e",
"e8ed7566c9ef421895235b69b51d01fd",
"55902436994f4949a3f6e6b901510061",
"7c994af4c1724b2fa9a552c553b4da07",
"6404f37c4a4d4ab6ae20c9980575daa0",
"3a5f74cd7e254ae4a20c6aab4871ea30",
"3e98de1a1b61422f904f8128c71eab95",
"f1f32aea8eee4a15be09d8c755d906bc",
"513657bcaff3411b9a70200d4bce4826",
"0a19a96f7a7049c9aa4499a206512e94",
"0b149af4d61e4c2aaa2da768642f201b",
"f5492cd1489f4cbbb3934dca96fee20a",
"4a3b8f75ceee456cb6c7fa3ca645d587",
"d226a840168e435c9315b2e873ee73ad",
"a2537fd63e594221bfcdfaea9013c2a9",
"df254df0249f45bc9e4b1a4b4642e7a7",
"be71a7e3f725426f98dd8d58e4d2ec2e",
"8a3c64520eff477c8b1079bf528d8e9a",
"3261f11ed58542ad903f753e4d7140f5",
"5102616222384e2aadac9f2e07930b64",
"4e0506105a5e47f8913884c8a5059fd9",
"b9bfccb9aacf47aab70871bf491bc80d",
"933f0b01d30742e88671dab2b45b50df",
"376884c2ef0842bab78a04445899b8ef",
"2046fa4f2e594f2aa72f21491c0e0eff",
"6d1155b55c4147a1877f8a2d438b53fa",
"2eb11d95dc364ee79bef12a0a7c9048f",
"0243d0611e4742cbb79fe6015e594c4e",
"8dfe18d9077a4192bc6f76463052a8e3",
"dac3f98aa9d741d68d3d58f82c1abf05",
"1c5117d581724e3b88b8adedb0c5fa8d",
"91a7d4ce31e34163a7cd56d1487decb1",
"73e457a2ad364825b33c3212bba05128",
"ed93ec911008400c95d5f4193c050bbb",
"27c3a1376f0a4d93958cb61767f74772",
"232389f7ab2e4e529b6818ff0eeacd5c",
"5f72493993aa4ace92f6705156629669",
"fb40256db41142a196b21ccf03e58507",
"0147e8313a4547ac922231f12f9c556a",
"90456a871bf0410493fb33660f85cfc9",
"3226ba2b1e12464abae09a3d3adf8825",
"d41dc7d775f747aaa8e0b25e7d937b09",
"90d286dd72e34b8db5c92ad4045e38b4",
"9a2c0dadbaf24b97824a1d77bc86bf4d",
"f2b989f5dadb4f0091eabd3fd6397116",
"48d391befc8845368d79c6716c2aff4a",
"82f9dcb8378d4a06ae7124597a0eafde",
"fa41098cf7494eae875e3607a74bd677",
"09bcb860e59e4a0894db0db114ba0ec4",
"67608fa7be9649afb32705093179ac8b",
"6f279de1d6ff4769bebbad54189d1feb",
"bfb6977d8caf4b6baf44e464ab234d41",
"30f1875cc4e44a62b455da724a7497f7",
"0e163cb429b848c391a846e7363a1930",
"804de988ce48423584f0df6b52735fd9",
"85be128d963a4889a43a4efc2834fce5",
"67897dbb905d4720a4718a6c5539afa5",
"703207906c5942b0937f8eda35036e9b",
"4483a850c6a94d248d81038f78c56eb8",
"727f05dbe66d48009719f63a189b9965",
"b84b8f411cc445e983596589931fccd6",
"9a7a89d2d1534c47980ea0886a202d3c",
"7c986dc7ee9b4f74981e90b5fe730bee",
"3c881f84f5f743f2a03a79384e6a938a",
"bb55da16836540979dc83901b310ff7b",
"462995bc8bd44249a3abab182d583b4b",
"2f33e0fe33924dd5866ec12821ec9ba3",
"b72b31ece29b4c6c984a1feefbe04665",
"2212298dd8ed40208f8bcfb1cf6932a7",
"7515993f8afb46d6856c138f8236c372",
"1dc6a4dca67f4711885d6058a722e743",
"8d998a7656a148f0ac3eeff11339021f",
"0a19a96f7a7049c9aa4499a206512e94",
"bd833266bc0c40cdb34bd24a21a6f662",
"255903d9ba5c4aa1b7c5f81912dfbd37",
"01546b1361a84315a39ccffa1cdd778a",
"979278e8b08c4b7aa5bfb95ec4cac89a",
"ef8607976407491fb5ff66611b1d57ea",
"1f29d6d940254005a805041a24684b1c",
"73858f5b9a1243bba2fb10c9c026fc34",
"8e4e3768c05048dfb286aca9e097c053",
"a003986755f54f17bb3aaa42d46c7a4a",
"d6e5c05eb20c42ba95a63d6fa434a009",
"ee364e50f36b45c791b10568d61689f8",
"7c994af4c1724b2fa9a552c553b4da07",
"ffc6490b2a8144e4a8059fb604810987",
"1d6385d0541240ec93daea8930b63f37",
"d41dc7d775f747aaa8e0b25e7d937b09",
"2834fc85368847fd9c9614993a7a31a0",
"0e63727e35e14d69b86cd4e422a07663",
"861e0e0d31ae477b9c3c5366b3f248f5",
"91a7d4ce31e34163a7cd56d1487decb1",
"6c1b24df774d4b589629035de4c4ac34",
"1cc9bc27a7b5483f9191f1f930b15987",
"ae8452c5ad8140e9ba39fd39a0452ea0",
"b0bdf01506a346bf9ae64907082ced24",
"faf70a82e8db433ea58a3be12d6f31e0",
"49634f0c0e8348b0886f39468ddac950",
"6dd39faa087745d1bcd6de10b1175158",
"39fe8f2571594ea49c8e5ed18f88aafd",
"2e5db471800b4c529e52dc4f98f6651a",
"cefee250b1e44d9ebbc13dac07bc8056",
"3a86592d9c3f4aa39eb208eeb50dbbf3",
"3b06ddfc9eed4e9ba4b7af13926402cc",
"a21fdabbde9a4245a8081bc02e96ab85",
"67346a682cc44ed09f983094a53c904b",
"8ec4350fbbba498789d78a757f4fd701",
"9b866258d1f24b44acf381b4df321ba8",
"d80500ce620642d7aee9aa526b5f8ae5",
"3e6813f9a13745beb743bc4f44629a80",
"c65be37e397d4f2fbd90b8e59b6b4e53",
"5c1a02dcd9b84bc2826a15513c92cc02",
"9a8d1aa99e8f478d8492d19053a84974",
"369038a3568b46a6898d635843b73dc6",
"3c0b0cff087045e08c310005cc435ee0",
"232389f7ab2e4e529b6818ff0eeacd5c",
"566acb71a53943c88e094b89d43ca3be",
"a8dabcc56bd0465f997c2ea3ade42864",
"bbf8e5d0aac64b0b982e3afd971b8ff0",
"2212298dd8ed40208f8bcfb1cf6932a7",
"c3ec4364f73c4959b84a6f01a9d806ef",
"6326baa3cb7a4ba6a9d75a85a2c07769",
"0069ccdd34cb4d4988786e012c2276f7",
"37331d01245d434896bc54bffc69dcf6",
"db6c58bc454c4a25bd0d8caed3c0959f",
"c2a7904f682343efb9bc1cae026888a3",
"4e0506105a5e47f8913884c8a5059fd9",
"3b63712d97944996959b72c1df443491",
"2f33e0fe33924dd5866ec12821ec9ba3",
"ac7baaba195746f099bd7e10024f275d",
"ae362ff647154014ba6e376f6c57e045",
"a899e618f5104813bf445a9e5175defb",
"398fa1d1021c4ed6b40582d6c695a495",
"fa88746dfe964acd8761d1de8ff7d139",
"37339f333a3a49f1bcc89e3b7999114a",
"1d6385d0541240ec93daea8930b63f37",
"5f72493993aa4ace92f6705156629669",
"00ce3f9d57b041b3a8ab74cde731230b",
"6f66f42fa55c4c27a63eb8cf07032a3d",
"784b6d7711664b278d7d73f92940958f",
"533a1ad1d4a1428fa3ea8a81a90ba975",
"b5803d8db33747e9b22f638c05e1c5f6",
"f4e5c659e6f848749b8c25535263a8ad",
"8ebb5cf8e18f422aab156c7614c5b3a7",
"9ac676478e6f44998a8b03f7b4791d0e",
"89fd6ad36b3f4d0f9b06c856e4d91441",
"2cae93c93d594499be7afdef3999c187",
"6326baa3cb7a4ba6a9d75a85a2c07769",
"95d21303782e45cc99af09da5b819ab1",
"d672389548dd4442b76f2aa07a1cb8b0",
"8109cb858d174b7782280f61ec31f0a5",
"e0e2e8c7f9a040759025b79094081640",
"a8e33b39a1134fa28faf3090346ec298",
"b4fa8b82902944778c740c7fc08fd7bc",
"67608fa7be9649afb32705093179ac8b",
"1c5117d581724e3b88b8adedb0c5fa8d",
"626a8fd134ea4b91a83d472e0aba4081",
"48d391befc8845368d79c6716c2aff4a",
"6d52f722471343eeb7fbed87994cbdf8",
"0daeb2f5ceaf441f9b61d88ae80d1c7f",
"49800ac8431b420da8c82ae31dc96cbd",
"9648ba4ea629437e801794b6d06d97c0",
"14674e3df079419b867c8c9201b79097",
"b52cb724276e443ab07e8bfc8a3f24d9",
"b29a41a5518b45a6ace7e9703036c77d",
"13dea65945c84640a2560dd35b4a7ea9",
"b914c346d6344fd2a0fd68f7c5e24fe5",
"1dc6a4dca67f4711885d6058a722e743",
"0feac8068fef4736b03a57aeb0c03cb5",
"3c0b0cff087045e08c310005cc435ee0",
"b8e88fabdf0a4282b5b5ad641240e98f",
"c3e61531cf4f4d85a7e5ed7647f7520a",
"7f8c0c0eedd546ed9c4b355bb9cc2f31",
"ce8af0ba0faf4e569ee43eb1d7905058",
"3226ba2b1e12464abae09a3d3adf8825",
"8bb1442e0f5943989cf9e5513acb1f03",
"6d8130c450a74a498d773c4e2b46cb62",
"15d56cebaf814ec491053ac06ce494d5",
"2310164457b4441db19548f0f3aeddc9",
"ffc6490b2a8144e4a8059fb604810987",
"c054c2bb07a04b6b83a3ecb1f1d2fea0",
"463045fde3ac4b4da2778b46f1c55155",
"28964c9168ec4e6bbc3aa072e3374b7e",
"d672389548dd4442b76f2aa07a1cb8b0",
"689c1cdf2d35435eb9065066bb41d028",
"902a34cf07784b08831cb490cfe6ce3f",
"12501f4b793343e6a5afd148112c5949",
"6d8130c450a74a498d773c4e2b46cb62") ;
"b52cb724276e443ab07e8bfc8a3f24d9",
"198413be4c614564acda9d05e1b845fd",
"4917701407e1470c82015c7c8a23dfc1",
"c05df62cd6f844cea55778321c5552e5",
"2e511b41cceb47e785fb13d4b41af641",
"aec90d5293f949859f3cd05b86a561e3",
"0e0828a1e778445faf0a394516442824",
"6945d77852b44a7a9d8b99f0f3801958",
"3a704c66bf754dbd9ceead659f9afa4d",
"acbfeb379b5242d5b2e44ab50e1047a1",
"249d8e02797b40fba8c38c88d01d2fcb",
"4b954d56885d48c4a318d66f213006ef",
"f9fe7f61f8a3421981d07e5b4da5ea6c",
"9b866258d1f24b44acf381b4df321ba8",
"c917bcfced06477b918fbcdbb4b332da",
"dac3f98aa9d741d68d3d58f82c1abf05",
"0daeb2f5ceaf441f9b61d88ae80d1c7f",
"16c336c516fb42adb843d403f861cd0b",
"ae362ff647154014ba6e376f6c57e045",
"0a2e14b5535d490588314c288527ca12",
"521edc4920bf43fa98caee105d297556",
"29369c6903fd4fedbf0dfb8260778765",
"6db61a221ea745f88fc59ac7d935faf9",
"a53767725d0b424ea5edaee1c8675325",
"834d98ec3b3547989b71ae0573f2a56b",
"0147e8313a4547ac922231f12f9c556a",
"0cba15ff7ea84d60aeae3c9b2f50252a",
"f550da66c436459ba4a7eb482aa63afb",
"e8ed7566c9ef421895235b69b51d01fd",
"7d1a509a3ad94a9f8c001ead0394e199",
"a84af0a65da34c99a461eca86e939f04",
"5f184bc85e614af6beb2e8f93b6809f4",
"4119c628c1ab42da9c7976f405a0d013",
"b9246e6d35854fb9816dcbf7f44a0e7e",
"8e0b5fcc71d54ed98416f0a2a7d9018b",
"cfc7dd59adf34dc88c4c714f55c40b53",
"41203c07d05f494a82a633ed964d39d3",
"b2bdef38240441b78e248247e8f8e0dc") ;
for(int i=0;i<list.size();i++) {
this.add(list.get(i));
}
}
private List<String> existList(String wxEnterpriseId , Long roleId , List<String> ms) {
List<String> list = this.haobanRoleMenuMapper.getMenuInMenuCodes(wxEnterpriseId, roleId, ms) ;
if(null == list) {
list = new ArrayList<>() ;
}
return list ;
}
private void add(String wxEnterpriseId) {
List<TabHaobanRoleMenu> addList = new ArrayList<>() ;
List<TabHaobanRole> list = this.haobanRoleMapper.getListByWxEnterpriseId(wxEnterpriseId,1) ;
for(TabHaobanRole role : list) {
if(role.getClerkType()==0 || role.getClerkType()==1) {
if(role.getClerkType()==0) {
List<String> ms = Arrays.asList("marketingTask" , "marketingTaskDetail_complete" ,"marketingTaskDetail_carryOut") ;
List<String> existMenus = this.existList(wxEnterpriseId, role.getRoleId(), ms) ;
for(String s : ms) {
TabHaobanRoleMenu m = new TabHaobanRoleMenu();
m.setRoleMenuId(UniqueIdUtils.uniqueLong());
m.setMenuCode(s);
m.setStatusFlag(1);
m.setCreateTime(new Date());
m.setUpdateTime(new Date());
m.setWxEnterpriseId(wxEnterpriseId);
m.setRoleId(role.getRoleId());
if(!existMenus.contains(s)) {
addList.add(m);
}
}
} else if(role.getClerkType()==1) {
List<String> ms = Arrays.asList("marketingTask" , "marketingTaskList_distribute" ,"marketingTaskDetail_complete" ,"marketingTaskDetail_distribute" ,"marketingTaskDetail_carryOut") ;
List<String> existMenus = this.existList(wxEnterpriseId, role.getRoleId(), ms) ;
for(String s : ms) {
TabHaobanRoleMenu m = new TabHaobanRoleMenu() ;
m.setRoleMenuId(UniqueIdUtils.uniqueLong());
m.setMenuCode(s);
m.setStatusFlag(1);
m.setCreateTime(new Date());
m.setUpdateTime(new Date());
m.setWxEnterpriseId(wxEnterpriseId);
m.setRoleId(role.getRoleId());
if(!existMenus.contains(s)) {
addList.add(m);
}
}
}else if(role.getClerkType()==2) {
List<String> existMenus = this.existList(wxEnterpriseId, role.getRoleId(), Arrays.asList("marketingManager")) ;
if(CollectionUtils.isNotEmpty(existMenus)) {
continue;
}
TabHaobanRoleMenu m = new TabHaobanRoleMenu() ;
m.setRoleMenuId(UniqueIdUtils.uniqueLong());
m.setMenuCode("singleFriends");
m.setMenuCode("marketingManager");
m.setStatusFlag(1);
m.setCreateTime(new Date());
m.setUpdateTime(new Date());
......@@ -415,6 +508,7 @@ public class HaobanRoleTest {
}
}
if(CollectionUtils.isNotEmpty(addList)) {
System.out.println("_________________________");
this.haobanRoleMenuMapper.insertBatch(addList);
}
......
......@@ -151,7 +151,7 @@ public class HmPageServiceTest {
@Test
public void groupNameCheckTest(){
ServiceResponse<List<HmGroupDTO>> ms = groupService.queryGroupListByName("", "ff8080815dacd3a2015dacd3ef5c0000", "测试006");
ServiceResponse<List<HmGroupDTO>> ms = groupService.queryGroupListByName("", "ff8080815dacd3a2015dacd3ef5c0000", "测试006\uD83E\uDD51");
System.out.println(JSON.toJSONString(ms));
}
......
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.DateUtil;
import com.gic.haoban.manage.api.dto.ContentMaterialDTO;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
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.qdto.moment.SendResultQDTO;
import com.gic.haoban.manage.api.service.moment.QwMomentApiService;
import com.gic.haoban.manage.service.dao.mapper.StaffMapper;
import com.gic.haoban.manage.service.dao.mapper.moment.QwMomentPlanAttendMapper;
import com.gic.haoban.manage.service.dao.mapper.moment.QwMomentPlanMapper;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.moment.TabQwMomentPlan;
import com.gic.haoban.manage.service.entity.moment.TabQwMomentPlanAttend;
import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.service.chat.GroupChatPlanService;
import com.gic.haoban.manage.service.service.content.impl.GroupMessageServiceImpl;
import com.gic.haoban.manage.service.service.moment.QwMomentPlanService;
import com.gic.wechat.api.dto.qdto.group.QywxMomentInfoQDTO;
import com.gic.wechat.api.dto.qywx.group.QywxMomentRespDTO;
import com.gic.wechat.api.service.qywx.QywxExternalUserService;
import com.gic.wechat.api.service.qywx.QywxSuiteApiService;
import org.apache.commons.collections.CollectionUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.*;
import java.util.stream.Collectors;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext-conf.xml"})
public class MomentTest {
@Autowired
private QwMomentApiService qwMomentApiService ;
@Autowired
private WxEnterpriseService wxEnterpriseService ;
@Autowired
private QywxExternalUserService qywxExternalUserService ;
@Autowired
private QwMomentPlanService qwMomentPlanService ;
@Autowired
private QwMomentPlanMapper qwMomentPlanMapper ;
@Autowired
private QwMomentPlanAttendMapper qwMomentPlanAttendMapper ;
@Test
public void ddd() {
/* QwMomentPlanDTO dto = new QwMomentPlanDTO() ;
dto.setPublishType(1);
dto.setPublishTime(new Date());
dto.setWxEnterpriseId("ca66a01b79474c40b3e7c7f93daf1a3b");
dto.setCreatorId("fefd1c81641711e69d0818c58a146fd2");
dto.setCreatorName("达摩管理");
dto.setEnterpriseId("ff8080815dacd3a2015dacd3ef5c0000");
dto.setExecType(1);
dto.setExpireDays(10);
dto.setPlanClerkType(1);
// ,"b2ef17cce11f476b996d0b27ebadf7fb"
List<String> clerkIds = Arrays.asList("b2ef17cce11f476b996d0b27ebadf7fb","753a367d709d40a38b17ed25847d3b4b") ;
dto.setSelectClerkIdList(clerkIds);
this.qwMomentApiService.save(dto) ;*/
Long planId = 772924621895778364L ;
TabQwMomentPlan plan = this.qwMomentPlanMapper.getById(planId) ;
this.qwMomentPlanService.sendToQiwei(plan);
}
@Test
public void page() {
QwMomentPlanQDTO qdto = new QwMomentPlanQDTO();
qdto.setEnterpriseId("123");
qdto.setWxEnterpriseId("123");
qdto.setExecType(1);
qdto.setStatusFlag(1);
qdto.setStartTime(new Date());
qdto.setEndTime(new Date());
qdto.setNameParams("123");
qdto.setPageNum(1);
qdto.setPageSize(2);
this.qwMomentApiService.planList(qdto) ;
}
@Test
public void dataPage() {
PlanDataListQDTO qdto = new PlanDataListQDTO();
qdto.setPlanId(1111l);
qdto.setPageNum(1);
qdto.setPageSize(2);
qdto.setStaffName("111");
qdto.setClerkParams("2222");
qdto.setType(1);
this.qwMomentApiService.dataList(qdto) ;
}
@Test
public void clerkPage() {
PlanClerkListQDTO qdto = new PlanClerkListQDTO();
qdto.setPlanId(1111l);
qdto.setPageNum(1);
qdto.setPageSize(2);
qdto.setStaffName("111");
qdto.setClerkParams("2222");
this.qwMomentApiService.attendList(qdto) ;
}
@Test
public void getmomentid() {
String wxEnterpriseId = "ca66a01b79474c40b3e7c7f93daf1a3b";
String jobId = "kyy1q5PYkElEGL6BISXVKkKZPD-Lpq76iGKEn8Z1nU4OBh9487Ni70dA638plHpD";
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
ServiceResponse<Object> resp2 = this.qywxExternalUserService.getMomentTaskResult(qwDTO.getThirdCorpid(),
qwDTO.getSelf3thSecret(), jobId, qwDTO.isSelf(),qwDTO.getUrlHost()) ;
System.out.println(JSONObject.toJSONString(resp2));
}
@Test
public void data() {
Long planId = 773211358316478465L ;
// this.qwMomentPlanService.getQwData(planId);
this.qwMomentPlanService.getQwPublishData(planId,null);
}
@Autowired
private StaffMapper staffMapper ;
@Autowired
private QywxSuiteApiService qywxSuiteApiService ;
@Test
public void finish() {
/*SendResultQDTO q = new SendResultQDTO() ;
q.setClerkId("2dd543ad1f2e4feab2e5a5c767197858");
q.setWxEnterpriseId("ca66a01b79474c40b3e7c7f93daf1a3b");
q.setStaffId("2c0d179610a04016bf8971ac0f158442");
q.setPlanId(772845323461615680L);
q.setSendTime(new Date(1741760727397l));
this.qwMomentApiService.finishTask(q) ;*/
String staffId = "92a1edc7147e411c9b13ba9e815a6efb";
Date sendTime = DateUtil.strToDate("2025-03-24 13:47:29","yyyy-MM-dd HH:mm:ss") ;
Date startTime = DateUtil.addNumForSecond(sendTime,-10) ;
Date endTime = DateUtil.addNumForMinute(sendTime,1) ;
TabHaobanStaff staff = this.staffMapper.selectByPrimaryKey(staffId) ;
String wxEnterpriseId = staff.getWxEnterpriseId() ;
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId) ;
String wxUserId = staff.getWxUserId() ;
if(qwDTO.needOpenUserId3th()) {
wxUserId = staff.getWxOpenUseId() ;
}
QywxMomentInfoQDTO qywxMomentInfoQDTO = new QywxMomentInfoQDTO();
qywxMomentInfoQDTO.setCorpid(qwDTO.getThirdCorpid());
qywxMomentInfoQDTO.setSuiteid(qwDTO.getSelf3thSecret());
qywxMomentInfoQDTO.setStartTime(startTime.getTime() / 1000);
qywxMomentInfoQDTO.setEndTime(endTime.getTime() / 1000);
qywxMomentInfoQDTO.setCreatorId(wxUserId);
qywxMomentInfoQDTO.setPageSize(1);
ServiceResponse<QywxMomentRespDTO> serviceResponse = qywxSuiteApiService.queryQywxMomentList(qywxMomentInfoQDTO,qwDTO.isSelf(),qwDTO.getUrlHost());
System.out.println(JSONObject.toJSONString(serviceResponse));
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
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.DateUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService;
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.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
@Service
public class MomentClerkExcelHandler extends DownloadHandlerAbstract<MomentClerkExcelVO> {
@Autowired
private QwMomentApiService qwMomentApiService ;
@Autowired
private StoreService storeService ;
@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<QwMomentPlanDTO> detaiResp = this.qwMomentApiService.detail(qdto.getPlanId()) ;
boolean isEnd = detaiResp.getResult().getStatusFlag()==2 || detaiResp.getResult().getEndDate().getTime()<System.currentTimeMillis() ;
ServiceResponse<Page<QwMomentPlanAttendDTO>> pageResp = this.qwMomentApiService.attendList(qdto);
List<MomentClerkExcelVO> voList = new ArrayList<>();
if (null != pageResp && CollectionUtils.isNotEmpty(pageResp.getResult().getResult())) {
for(QwMomentPlanAttendDTO item : pageResp.getResult().getResult()) {
MomentClerkExcelVO vo = EntityUtil.changeEntityByJSON(MomentClerkExcelVO.class,item) ;
if(StringUtils.isNotBlank(vo.getStoreId())) {
StoreDTO store = this.storeService.getStore(vo.getStoreId());
vo.setStoreName(store.getStoreName());
vo.setStoreCode(store.getStoreCode());
}
Date sendTime = vo.getSendTime() ;
if(null != sendTime) {
vo.setSendTimeExcel(DateUtil.dateToStr(sendTime,"yyyy-MM-dd HH:mm:ss"));
}
int taskStatus = vo.getTaskStatus();
String taskStatusExcel = "未完成" ;
if(taskStatus==2) {
taskStatusExcel = "已完成" ;
}else {
if(isEnd) {
taskStatusExcel = "已失效" ;
}
}
vo.setTaskStatusExcel(taskStatusExcel);
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.DateUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService;
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.haoban.manage.web.vo.moment.QwMomentPlanDataVO;
import com.gic.member.api.dto.es.MemberDataDTO;
import com.gic.web.common.download.DownloadHandlerAbstract;
import com.gic.web.common.download.context.Context;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class MomentDataExcelHandler extends DownloadHandlerAbstract<MomentDataExcelVO> {
@Autowired
private QwMomentApiService qwMomentApiService ;
@Autowired
private StoreService storeService ;
@Autowired
private QwMomentController qwMomentController ;
@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())) {
for(QwMomentPlanDataDTO item : pageResp.getResult().getResult()) {
MomentDataExcelVO vo = EntityUtil.changeEntityByJSON(MomentDataExcelVO.class,item) ;
if(qdto.getType()==1 && null != vo.getLikeTime()) {
vo.setTimeExcel(DateUtil.dateToStr(vo.getLikeTime(),"yyyy-MM-dd HH:mm:ss"));
}
if(qdto.getType()==2 && null != vo.getCommentTime()) {
vo.setTimeExcel(DateUtil.dateToStr(vo.getCommentTime(),"yyyy-MM-dd HH:mm:ss"));
}
if(StringUtils.isNotBlank(vo.getStoreId())) {
StoreDTO store = this.storeService.getStore(vo.getStoreId());
vo.setStoreName(store.getStoreName());
vo.setStoreCode(store.getStoreCode());
}
voList.add(vo) ;
}
List<String> memberIdList = voList.stream().map(o->o.getMemberId()).collect(Collectors.toList());
Map<String, MemberDataDTO> map = this.qwMomentController.getMemberMap(qdto.getEnterpriseId(),memberIdList) ;
for (MomentDataExcelVO vo : voList) {
String memberId = vo.getMemberId() ;
if(null == map.get(memberId)) {
vo.setMemberScene(2);
}else {
MemberDataDTO data = map.get(memberId) ;
vo.setMemberName(data.getName());
vo.setMemberNick(data.getNickName());
vo.setMemberCard(data.getCardNo());
vo.setMemberImage(data.getPhotoUrl());
vo.setMemberPhone(data.getPhoneNumber());
vo.setMemberScene(3);
}
}
}
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");
}
}
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.qdto.moment.QwMomentPlanQDTO;
import com.gic.haoban.manage.api.service.moment.QwMomentApiService;
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.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
@Service
public class MomentPlanExcelHandler extends DownloadHandlerAbstract<MomentPlanExcelVO> {
@Autowired
private QwMomentApiService qwMomentApiService ;
@Override
public List<MomentPlanExcelVO> getData(Context context, String json, Integer currentPage) {
QwMomentPlanQDTO qdto = JSON.parseObject(json, QwMomentPlanQDTO.class);
BasePageInfo pageInfo = new BasePageInfo() ;
pageInfo.setPageSize(this.getPageSize());
pageInfo.setPageNum(currentPage);
ServiceResponse<Page<QwMomentPlanDTO>> pageResp = this.qwMomentApiService.planList(qdto);
List<MomentPlanExcelVO> voList = new ArrayList<>();
if (null != pageResp && CollectionUtils.isNotEmpty(pageResp.getResult().getResult())) {
for(QwMomentPlanDTO item : pageResp.getResult().getResult()) {
MomentPlanExcelVO vo = EntityUtil.changeEntityByJSON(MomentPlanExcelVO.class,item) ;
int execType = vo.getExecType() ;
String execTypeExcel = "企业快捷发布" ;
if(execType==1) {
execTypeExcel = "好办小程序发布" ;
}
vo.setExecTypeExcel(execTypeExcel);
int statusFlag = vo.getStatusFlag() ;
String statusFlagExcel = "进行中" ;
if(statusFlag==2) {
statusFlagExcel = "已终止" ;
}else {
if (vo.getBeginDate().getTime() > System.currentTimeMillis()) {
statusFlagExcel = "未开始" ;
}else if(vo.getEndDate().getTime() < System.currentTimeMillis()) {
statusFlagExcel = "已结束" ;
}
}
if(null != vo.getExecRate() && vo.getExecRate() > 0) {
vo.setExecRateFloat(BigDecimal.valueOf(vo.getExecRate()).divide(BigDecimal.valueOf(100),2,2).doubleValue());
}
vo.setStatusFlagExcel(statusFlagExcel);
voList.add(vo) ;
}
}
return voList;
}
@Override
public List<String> getColumnNames() {
return Arrays.asList("活动信息", "执行方式","活动状态","下发任务数","完成任务数","完成率","点赞数","评论数");
}
@Override
public LinkedHashMap<String, List<String>> doubleColumnNames() {
return null;
}
@Override
public List<String> getColumns() {
return Arrays.asList("title", "execTypeExcel", "statusFlagExcel","taskClerkNum", "doneNum","execRateFloat","totalLikeCount","totalCommentCount");
}
}
package com.gic.haoban.manage.web.controller.moment;
import cn.hutool.core.date.DatePattern;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
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.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanAttendDTO;
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.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.log.LogRecordUserServiceImpl;
import com.gic.haoban.manage.web.qo.moment.PlanClerkListQO;
import com.gic.haoban.manage.web.qo.moment.PlanDataListQO;
import com.gic.haoban.manage.web.qo.moment.PlanListQO;
import com.gic.haoban.manage.web.qo.moment.QwMomentPlanQO;
import com.gic.haoban.manage.web.utils.CreatorUtils;
import com.gic.haoban.manage.web.vo.moment.ClerkVO;
import com.gic.haoban.manage.web.vo.moment.HaobanQwMomentPlanVO;
import com.gic.haoban.manage.web.vo.moment.QwMomentPlanAttendVO;
import com.gic.haoban.manage.web.vo.moment.QwMomentPlanDataVO;
import com.gic.log.record.anno.GicLogRecord;
import com.gic.log.record.util.GicLogRecordCategoryEnum;
import com.gic.log.record.util.GicLogRecordEvaluationContext;
import com.gic.log.record.util.GicLogRecordOptTypeEnum;
import com.gic.member.api.dto.es.MemberDataDTO;
import com.gic.qcloud.BucketNameEnum;
import com.gic.search.engine.api.constant.OperateEnum;
import com.gic.search.engine.api.dto.ESResponseQueryBatch;
import com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO;
import com.gic.search.engine.api.filter.NewNodeAddUtil;
import com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService;
import com.gic.web.common.download.DownloadTask;
import com.gic.web.common.download.DownloadTaskUtil;
import com.gic.web.common.download.constants.TaskTypeEnum;
import com.google.common.collect.Sets;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
* 企微朋友圈
*/
@RestController
@RequestMapping("/qw-moment")
public class QwMomentController {
private static Logger logger = LogManager.getLogger(QwMomentController.class);
@Autowired
private QwMomentApiService qwMomentApiService ;
@Autowired
private MomentPlanExcelHandler momentPlanExcelHandler ;
@Autowired
private MomentClerkExcelHandler momentClerkExcelHandler ;
@Autowired
private MomentDataExcelHandler momentDataExcelHandler ;
@Autowired
private StoreService storeService ;
@Autowired
private ESDataDynamicOperationApiService esDataDynamicOperationApiService ;
/**
* 新建任务
*/
@RequestMapping("add")
@ResponseBody
@GicLogRecord(value = "${#logValue}", category = GicLogRecordCategoryEnum.QW_MOMENT, optType = GicLogRecordOptTypeEnum.QW_MOMENT_ADD, userFunc = LogRecordUserServiceImpl.class, optPage = "企微朋友圈-朋友圈列表-新建页面")
public RestResponse<String> add(@RequestBody QwMomentPlanQO qo){
logger.info("新建任务={}", JSONObject.toJSONString(qo));
QwMomentPlanDTO plan = EntityUtil.changeEntityByJSON(QwMomentPlanDTO.class,qo) ;
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
plan.setEnterpriseId(loginUser.getEnterpriseId());
plan.setWxEnterpriseId(loginUser.getWxEnterpriseId());
plan.setCreatorId(loginUser.getClerkId());
plan.setCreatorName(loginUser.getClerkName());
ServiceResponse<QwMomentPlanDTO> resp = this.qwMomentApiService.save(plan) ;
String logContent = "新增企微朋友圈活动【" + resp.getResult().getTitle() + "-" + resp.getResult().getPlanId() + "】";
GicLogRecordEvaluationContext.putAttribute("logValue", logContent);
return RestResponse.successResult(resp.getResult().getPlanId()+"") ;
}
/**
* 更新
*/
@RequestMapping("update")
@ResponseBody
@GicLogRecord(value = "${#logValue}", category = GicLogRecordCategoryEnum.QW_MOMENT, optType = GicLogRecordOptTypeEnum.QW_MOMENT_EIDT, userFunc = LogRecordUserServiceImpl.class, optPage = "企微朋友圈-朋友圈列表-编辑页面")
public RestResponse<String> update(@RequestBody QwMomentPlanQO qo) {
logger.info("更新任务={}", JSONObject.toJSONString(qo));
if(null == qo.getPlanId()) {
GicLogRecordEvaluationContext.noWriteLog();
return RestResponse.failure("9999","活动id为空") ;
}
ServiceResponse<QwMomentPlanDTO> planResp = this.qwMomentApiService.detail(qo.getPlanId()) ;
if(null == planResp.getResult()) {
GicLogRecordEvaluationContext.noWriteLog();
return RestResponse.failure("9999","活动不存在") ;
}
QwMomentPlanDTO oldPlan = planResp.getResult() ;
QwMomentPlanDTO plan = EntityUtil.changeEntityByJSON(QwMomentPlanDTO.class,qo) ;
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
plan.setEnterpriseId(loginUser.getEnterpriseId());
plan.setWxEnterpriseId(loginUser.getWxEnterpriseId());
plan.setCreatorId(loginUser.getClerkId());
plan.setCreatorName(loginUser.getClerkName());
ServiceResponse<QwMomentPlanDTO> resp = this.qwMomentApiService.save(plan) ;
String logTitle = "编辑企微朋友圈活动【" + resp.getResult().getTitle() + "-" + resp.getResult().getPlanId() + "】";
ServiceResponse<QwMomentPlanDTO> newPlanResp = this.qwMomentApiService.detail(qo.getPlanId()) ;
String logContent = this.getLogContent(loginUser.getEnterpriseId(), oldPlan, newPlanResp.getResult());
logger.info("日志内容logContent={}",logContent);
if(StringUtils.isBlank(logContent.trim())) {
GicLogRecordEvaluationContext.noWriteLog();
}else {
GicLogRecordEvaluationContext.putAttribute("logValue", logTitle + logContent);
}
return RestResponse.successResult(resp.getResult().getPlanId()+"") ;
}
private String getLogContent(String enterpriseId ,QwMomentPlanDTO oldDTO , QwMomentPlanDTO newDTO) {
List<String> logList = new ArrayList<>();
this.otherLog("活动标题",oldDTO.getTitle(),newDTO.getTitle() , logList) ;
this.otherLog("活动描述",oldDTO.getRemark(),newDTO.getRemark() , logList) ;
String oldExecType = "" ;
String newExecType = "" ;
this.otherLog("执行方式",oldExecType,newExecType , logList) ;
// 0全部导购 1部分导购
int oldPlanClerkType = oldDTO.getPlanClerkType() ;
int newPlanClerkTyp = newDTO.getPlanClerkType() ;
if(oldPlanClerkType==0 && newPlanClerkTyp==1) {
this.otherLog("执行人类型","全部导购","部分导购" , logList) ;
}else if(oldPlanClerkType==1 && newPlanClerkTyp==0) {
this.otherLog("执行人类型","部分导购","全部导购" , logList) ;
}else if(oldPlanClerkType==1 && newPlanClerkTyp==1) {
List<String> oldClerkIdList = oldDTO.getClerkList().stream().map(o->o.getClerkId()).collect(Collectors.toList());
List<String> newClerkIdList = newDTO.getClerkList().stream().map(o->o.getClerkId()).collect(Collectors.toList());
String del = "" ;
String add = "" ;
for(String clerkId : oldClerkIdList) {
List<String> nameList = new ArrayList<>() ;
if(!newClerkIdList.contains(clerkId)) {
nameList.add(clerkId);
}
if(CollectionUtils.isNotEmpty(nameList)) {
del = "删除【"+nameList.stream().collect(Collectors.joining("、"))+"】" ;
}
}
for(String clerkId : newClerkIdList) {
List<String> nameList = new ArrayList<>() ;
if(!oldClerkIdList.contains(clerkId)) {
nameList.add(clerkId);
}
if(CollectionUtils.isNotEmpty(nameList)) {
add = "新增【"+nameList.stream().collect(Collectors.joining("、"))+"】" ;
}
}
if(StringUtils.isNotBlank(del) || StringUtils.isNotBlank(add)) {
logList.add("修改部分导购:"+ add + ";" + del);
}
}
if(!oldDTO.getMediaInfo().equals(newDTO.getMediaInfo())) {
logList.add("变更朋友圈配置");
}
// 1立即发布2定时发布
int oldPublishType = oldDTO.getPublishType() ;
int newPublishType = newDTO.getPublishType() ;
if(oldPublishType==2 && newPublishType==1) {
Date publishTime = oldDTO.getPublishTime() ;
this.otherLog("发送时间","定时发布-"+DateUtil.dateToStr(publishTime,"yyyy-MM-dd HH:mm:ss"),"立即发布" , logList) ;
}else if(oldPublishType==2 && newPublishType==2) {
Date oldPublishTime = oldDTO.getPublishTime() ;
Date newPublishTime = oldDTO.getPublishTime() ;
this.otherLog("发送时间",DateUtil.dateToStr(oldPublishTime,"yyyy-MM-dd HH:mm:ss"),DateUtil.dateToStr(newPublishTime,"yyyy-MM-dd HH:mm:ss") , logList) ;
}
int oldExpireDays = oldDTO.getExpireDays() ;
int newExpireDays = newDTO.getExpireDays() ;
this.otherLog("失效时间",oldExpireDays+"天后",newExpireDays+"天后" , logList) ;
return logList.stream().filter(o->StringUtils.isNotBlank(o)).collect(Collectors.joining(";"));
}
private static List<String> differenceList(List<String> list1, List<String> list2) {
if (CollectionUtils.isNotEmpty(list1) && CollectionUtils.isNotEmpty(list2)) {
Sets.SetView<String> setView = Sets.difference(Sets.newHashSet(list1), Sets.newHashSet(list2));
return setView.stream().collect(Collectors.toList());
}
return Collections.emptyList();
}
private String otherLog(String s1, String s2, String s3 , List<String> logList) {
if(null == s2) {
s2 = "" ;
}
if(null == s3) {
s3 = "" ;
}
if (!s2.equals(s3)) {
String s = new StringBuilder(s1).append("从【").append(s2).append("】修改为【").append(s3).append("】").toString() ;
if(null != logList) {
logList.add(s);
}
return s ;
}
return "";
}
/**
* 删除
* @return
*/
@RequestMapping("del")
@ResponseBody
@GicLogRecord(value = "${#logValue}", category = GicLogRecordCategoryEnum.QW_MOMENT, optType = GicLogRecordOptTypeEnum.QW_MOMENT_DEL, userFunc = LogRecordUserServiceImpl.class, optPage = "企微朋友圈-朋友圈列表")
public RestResponse<Void> del(Long planId){
ServiceResponse<QwMomentPlanDTO> resp = this.qwMomentApiService.detail(planId) ;
if(null == resp.getResult()) {
GicLogRecordEvaluationContext.noWriteLog();
return RestResponse.failure("9999","活动不存在") ;
}
this.qwMomentApiService.del(planId) ;
String logContent = "删除企微朋友圈活动任务【" + resp.getResult().getTitle() + "-" + planId + "】";
GicLogRecordEvaluationContext.putAttribute("logValue", logContent);
return RestResponse.successResult() ;
}
/**
* 终止
* @return
*/
@RequestMapping("stop")
@ResponseBody
@GicLogRecord(value = "${#logValue}", category = GicLogRecordCategoryEnum.QW_MOMENT, optType = GicLogRecordOptTypeEnum.QW_MOMENT_STOP, userFunc = LogRecordUserServiceImpl.class, optPage = "企微朋友圈-朋友圈列表")
public RestResponse<Void> stop(Long planId){
ServiceResponse<QwMomentPlanDTO> resp = this.qwMomentApiService.detail(planId) ;
if(null == resp.getResult()) {
GicLogRecordEvaluationContext.noWriteLog();
return RestResponse.failure("9999","活动不存在") ;
}
this.qwMomentApiService.stop(planId) ;
String logContent = "终止企微朋友圈活动【" + resp.getResult().getTitle() + "-" + planId + "】";
GicLogRecordEvaluationContext.putAttribute("logValue", logContent);
return RestResponse.successResult() ;
}
/**
* 复制
* @return
*/
@RequestMapping("copy")
@ResponseBody
public RestResponse<HaobanQwMomentPlanVO> copy(Long planId){
RestResponse<HaobanQwMomentPlanVO> detailResponse = this.detail(planId) ;
// 删除ID
HaobanQwMomentPlanVO vo = detailResponse.getResult() ;
vo.setPlanId(null);
vo.setPublishTime(null);
vo.setPublishType(1);
vo.setExpireDays(null);
return RestResponse.successResult(vo) ;
}
/**
* 活动列表
*/
@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());
qdto.setWxEnterpriseId(loginUser.getWxEnterpriseId());
ServiceResponse<Page<QwMomentPlanDTO>> resp = this.qwMomentApiService.planList(qdto) ;
Page<HaobanQwMomentPlanVO> retPage = PageHelperUtils.changePageToCurrentPage(resp.getResult(), HaobanQwMomentPlanVO.class);
List<HaobanQwMomentPlanVO> voList= retPage.getResult() ;
if(CollectionUtils.isNotEmpty(voList)) {
for (HaobanQwMomentPlanVO vo : voList) {
if(null != vo.getExecRate() && vo.getExecRate() > 0) {
vo.setExecRateFloat(BigDecimal.valueOf(vo.getExecRate()).divide(BigDecimal.valueOf(100),2,2).doubleValue());
}
if(vo.getStatusFlag()==1) {
if (vo.getBeginDate().getTime() > System.currentTimeMillis()) {
vo.setStatusFlag(0);
}else if(vo.getEndDate().getTime() < System.currentTimeMillis()) {
vo.setStatusFlag(3);
}
}
}
retPage.setResult(voList);
}
return RestResponse.successResult(retPage);
}
/**
* 活动详情
*/
@RequestMapping("detail")
public RestResponse<HaobanQwMomentPlanVO> detail(Long planId) {
ServiceResponse<QwMomentPlanDTO> detaiResp = this.qwMomentApiService.detail(planId) ;
if (!detaiResp.isSuccess()) {
return RestResponse.failure("1", "活动不存在");
}
// 查询素材列表
HaobanQwMomentPlanVO vo = EntityUtil.changeEntityByJSON(HaobanQwMomentPlanVO.class, detaiResp.getResult());
// 部分导购
if(vo.getPlanClerkType()==1) {
List<QwMomentPlanAttendDTO> clerkList = detaiResp.getResult().getClerkList() ;
if(CollectionUtils.isNotEmpty(clerkList)) {
List<ClerkVO> list = clerkList.stream().map(o->{
ClerkVO clerkVO = new ClerkVO();
clerkVO.setClerkId(o.getClerkId());
clerkVO.setClerkCode(o.getClerkCode());
clerkVO.setClerkName(o.getClerkName());
return clerkVO ;
}).collect(Collectors.toList()) ;
vo.setClerkVOList(list);
}
}
if(null != detaiResp.getResult().getExecRate()) {
vo.setExecRateFloat(BigDecimal.valueOf(detaiResp.getResult().getExecRate()).divide(BigDecimal.valueOf(100),2,2).doubleValue());
}
if(vo.getStatusFlag()==1) {
if (vo.getBeginDate().getTime() > System.currentTimeMillis()) {
vo.setStatusFlag(0);
}else if(vo.getEndDate().getTime() < System.currentTimeMillis()) {
vo.setStatusFlag(3);
}
}
return RestResponse.successResult(vo);
}
/**
* 执行导购列表
*/
@RequestMapping("clerk-list")
public RestResponse<Page<QwMomentPlanAttendVO>> clerkList(@RequestBody PlanClerkListQO qo) {
PlanClerkListQDTO qdto = EntityUtil.changeEntityByJSON(PlanClerkListQDTO.class,qo) ;
ServiceResponse<Page<QwMomentPlanAttendDTO>> resp = this.qwMomentApiService.attendList(qdto) ;
Page<QwMomentPlanAttendVO> retPage = PageHelperUtils.changePageToCurrentPage(resp.getResult(), QwMomentPlanAttendVO.class);
List<QwMomentPlanAttendVO> list = retPage.getResult() ;
if(CollectionUtils.isNotEmpty(list)) {
for (QwMomentPlanAttendVO vo : list) {
String storeId = vo.getStoreId() ;
if(StringUtils.isNotBlank(storeId)) {
StoreDTO store = this.storeService.getStore(storeId);
vo.setStoreId(storeId);
vo.setStoreName(store.getStoreName());
vo.setStoreCode(store.getStoreCode());
}
}
}
return RestResponse.successResult(retPage);
}
/**
* 统计
*/
@RequestMapping("data-list")
public RestResponse<Page<QwMomentPlanDataVO>> dataList(@RequestBody PlanDataListQO qo) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
PlanDataListQDTO qdto = EntityUtil.changeEntityByJSON(PlanDataListQDTO.class,qo) ;
ServiceResponse<Page<QwMomentPlanDataDTO>> resp = this.qwMomentApiService.dataList(qdto) ;
Page<QwMomentPlanDataVO> retPage = PageHelperUtils.changePageToCurrentPage(resp.getResult(), QwMomentPlanDataVO.class);
List<QwMomentPlanDataVO> list = retPage.getResult() ;
if(CollectionUtils.isNotEmpty(list)) {
for (QwMomentPlanDataVO vo : list) {
String storeId = vo.getStoreId() ;
if(StringUtils.isNotBlank(storeId)) {
StoreDTO store = this.storeService.getStore(storeId);
vo.setStoreId(storeId);
vo.setStoreName(store.getStoreName());
vo.setStoreCode(store.getStoreCode());
}
}
List<String> memberIdList = list.stream().map(o->o.getMemberId()).collect(Collectors.toList());
Map<String,MemberDataDTO> map = this.getMemberMap(loginUser.getEnterpriseId(),memberIdList) ;
for (QwMomentPlanDataVO vo : list) {
String memberId = vo.getMemberId() ;
if(null == map.get(memberId)) {
vo.setMemberScene(2);
}else {
MemberDataDTO data = map.get(memberId) ;
vo.setMemberName(data.getName());
vo.setMemberNick(data.getNickName());
vo.setMemberCard(data.getCardNo());
vo.setMemberImage(data.getPhotoUrl());
vo.setMemberPhone(data.getPhoneNumber());
vo.setMemberScene(3);
}
}
}
return RestResponse.successResult(retPage);
}
/**
* 统计-导出
*/
@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) ;
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);
}
/**
* 活动列表-导出
* @param qo
* @return
*/
@RequestMapping("plan-list-excel")
public RestResponse<String> planListExcel(@RequestBody PlanListQO qo) {
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());
BasePageInfo basePageInfo = new BasePageInfo();
basePageInfo.setPageNum(1);
basePageInfo.setPageSize(1);
ServiceResponse<Page<QwMomentPlanDTO>> pageResp = this.qwMomentApiService.planList(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 = "企微朋友圈-活动列表";
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(momentPlanExcelHandler);
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);
}
/**
* 执行导购列表-导出
* @param qo
* @return
*/
@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) ;
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);
}
public Map<String,MemberDataDTO> getMemberMap(String enterpriseId, List<String> memberIdList) {
String returnFields = "memberId,mainStoreId,mainClerkId,openStoreId,openClerkId,name,nickName,phoneNumber,photoUrl,cardNo";
List<JSONObject> esList = this.queryDataBatch(enterpriseId, memberIdList, returnFields);
if(CollectionUtils.isEmpty(esList)) {
logger.info("会员查询无");
return null ;
}
logger.info("会员信息={}",JSONObject.toJSONString(esList));
List<MemberDataDTO> list = JSONArray.parseArray(JSONArray.toJSONString(esList),MemberDataDTO.class);
Map<String,MemberDataDTO> map = list.stream().collect(Collectors.toMap(o->o.getMemberId(),o->o,(k1,k2)->k1));
if(null == map) {
map = new HashMap<>() ;
}
return map;
}
public List<JSONObject> queryDataBatch(String enterpriseId, List<String> memberIdList, String returnFields) {
DynamicSearchDTO search = new DynamicSearchDTO();
search.setEnterpriseId(enterpriseId);
search.setColumnCategoryCode("member");
String memberIds = String.join(" ", memberIdList);
JSONObject searchObj = new JSONObject();
searchObj = NewNodeAddUtil.addNewNodeForAnd("memberId", OperateEnum.OPERATE_CONTAIN.getValue(), memberIds,
searchObj);
search.setSearchJson(searchObj);
search.setReturnFileds(returnFields);
search.setSortJson(NewNodeAddUtil.createSortNode("memberId", NewNodeAddUtil.SORT_RULE_ASC));
search.setBegin(0);
search.setRecordNumber(memberIdList.size());
ESResponseQueryBatch response = this.esDataDynamicOperationApiService.queryDataBatch(search, Boolean.FALSE,
null);
return response.getRes();
}
}
package com.gic.haoban.manage.web.qo.moment;
import com.gic.api.base.commons.BasePageInfo;
import java.util.Date;
public class PlanClerkListQO extends BasePageInfo {
private Long planId ;
/**
* 成员名称
*/
private String staffName ;
/**
* 导购条件
*/
private String clerkParams ;
/**
* 0已失效 1待完成 2已完成
*/
private Integer sendStatus ;
private Date startTime ;
private Date endTime ;
/**
* 排序字段 完成率:exec_rate 点赞:like_count 评论:comment_count
*/
private String sortColumn ;
/**
* desc / asc
*/
private String sortType ;
/**
* 0待下发 1已下发 2下发失败
*/
private String statusFlag ;
public String getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(String statusFlag) {
this.statusFlag = statusFlag;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getSortColumn() {
return sortColumn;
}
public void setSortColumn(String sortColumn) {
this.sortColumn = sortColumn;
}
public String getSortType() {
return sortType;
}
public void setSortType(String sortType) {
this.sortType = sortType;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public String getClerkParams() {
return clerkParams;
}
public void setClerkParams(String clerkParams) {
this.clerkParams = clerkParams;
}
public Integer getSendStatus() {
return sendStatus;
}
public void setSendStatus(Integer sendStatus) {
this.sendStatus = sendStatus;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
}
package com.gic.haoban.manage.web.qo.moment;
import com.gic.api.base.commons.BasePageInfo;
import java.util.Date;
public class PlanDataListQO extends BasePageInfo {
private Long planId ;
/**
* 成员名称
*/
private String staffName ;
/**
* 导购条件
*/
private String clerkParams ;
/**
* 1点赞 2评论
*/
private Integer type ;
private Date startTime ;
private Date endTime ;
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public String getClerkParams() {
return clerkParams;
}
public void setClerkParams(String clerkParams) {
this.clerkParams = clerkParams;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
}
package com.gic.haoban.manage.web.qo.moment;
import com.gic.api.base.commons.BasePageInfo;
import java.util.Date;
public class PlanListQO extends BasePageInfo {
/**
* 活动名称或id
*/
private String nameParams ;
/**
* 执行方式
*/
private Integer execType ;
/**
* 1进行中 2终止 0未开始 3 已结束
*/
private Integer statusFlag ;
/**
* 开始时间
*/
private Date startTime ;
/**
* 结束时间
*/
private Date endTime ;
// 仅看自己 1是0否
private int showSelfFlag ;
/**
* 排序字段 完成率:exec_rate 点赞:total_like_count 评论:total_comment_count
*/
private String sortColumn ;
/**
* desc / asc
*/
private String sortType ;
public String getSortColumn() {
return sortColumn;
}
public void setSortColumn(String sortColumn) {
this.sortColumn = sortColumn;
}
public String getSortType() {
return sortType;
}
public void setSortType(String sortType) {
this.sortType = sortType;
}
public String getNameParams() {
return nameParams;
}
public void setNameParams(String nameParams) {
this.nameParams = nameParams;
}
public Integer getExecType() {
return execType;
}
public void setExecType(Integer execType) {
this.execType = execType;
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public int getShowSelfFlag() {
return showSelfFlag;
}
public void setShowSelfFlag(int showSelfFlag) {
this.showSelfFlag = showSelfFlag;
}
}
package com.gic.haoban.manage.web.qo.moment;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
*
* @ClassName: TabHaobanQwMomentPlan
* @Description: TODO
* @Author 徐高华
* @Date 2025年03月05日 10:27:20
* @Modify
* @CopyRight 杭州
*/
public class QwMomentPlanQO implements Serializable {
private static final long serialVersionUID = 67027585759300L;
private Long planId ;
/**
* 名称
*/
private String title;
/**
* 描述
*/
private String remark;
/**
* 几天后失效
*/
private int expireDays;
/**
* 执行方式 0企微1好办小程序
*/
private int execType;
/**
* 1立即发布2定时发布
*/
private Integer publishType;
/**
* 发布时间
*/
private Date publishTime;
/**
* 0全部导购 1部分导购
*/
private Integer planClerkType;
/**
* 0自主上传 1内容
*/
private Integer mediaType;
/**
* 素材json
*/
private String mediaInfo;
/**
* 素材回显内容
*/
private String mediaInfoShow;
// 选择的导购id列表
private List<String> selectClerkIdList ;
/**
* 链接开关
*/
private Integer mediaLinkFlag ;
public Integer getMediaLinkFlag() {
return mediaLinkFlag;
}
public void setMediaLinkFlag(Integer mediaLinkFlag) {
this.mediaLinkFlag = mediaLinkFlag;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public List<String> getSelectClerkIdList() {
return selectClerkIdList;
}
public void setSelectClerkIdList(List<String> selectClerkIdList) {
this.selectClerkIdList = selectClerkIdList;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public int getExpireDays() {
return expireDays;
}
public void setExpireDays(int expireDays) {
this.expireDays = expireDays;
}
public int getExecType() {
return execType;
}
public void setExecType(int execType) {
this.execType = execType;
}
public Integer getPublishType() {
return publishType;
}
public void setPublishType(Integer publishType) {
this.publishType = publishType;
}
public Date getPublishTime() {
return publishTime;
}
public void setPublishTime(Date publishTime) {
this.publishTime = publishTime;
}
public Integer getPlanClerkType() {
return planClerkType;
}
public void setPlanClerkType(Integer planClerkType) {
this.planClerkType = planClerkType;
}
public Integer getMediaType() {
return mediaType;
}
public void setMediaType(Integer mediaType) {
this.mediaType = mediaType;
}
public String getMediaInfo() {
return mediaInfo;
}
public void setMediaInfo(String mediaInfo) {
this.mediaInfo = mediaInfo;
}
public String getMediaInfoShow() {
return mediaInfoShow;
}
public void setMediaInfoShow(String mediaInfoShow) {
this.mediaInfoShow = mediaInfoShow;
}
}
\ No newline at end of file
package com.gic.haoban.manage.web.vo.moment;
import java.io.Serializable;
public class ClerkVO implements Serializable {
private String clerkName ;
private String clerkId ;
private String clerkCode ;
public String getClerkName() {
return clerkName;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
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;
}
}
package com.gic.haoban.manage.web.vo.moment;
import java.io.Serializable ;
import java.util.Date;
import java.util.List;
/**
*
* @ClassName: TabHaobanQwMomentPlan
* @Description: TODO
* @Author 徐高华
* @Date 2025年03月05日 10:27:20
* @Modify
* @CopyRight 杭州
*/
public class HaobanQwMomentPlanVO implements Serializable {
private static final long serialVersionUID = 67027585759300L;
/**
* 活动id
*/
private Long planId;
/**
* 名称
*/
private String title;
/**
* 描述
*/
private String remark;
/**
* 开始时间
*/
private java.util.Date beginDate;
/**
* 结束结束
*/
private java.util.Date endDate;
/**
* 几天后失效
*/
private Integer expireDays;
/**
* 执行方式 0企微1好办小程序
*/
private Integer execType;
/**
* 企微id
*/
private String wxEnterpriseId;
/**
* 企业id
*/
private String enterpriseId;
/**
* 创建人
*/
private String creatorId;
/**
* 创建人
*/
private String creatorName;
/**
* 1进行中 2终止 0未开始 3 已结束
*/
private Integer statusFlag;
/**
* 1立即发布2定时发布
*/
private Integer publishType;
/**
* 发布时间
*/
private java.util.Date publishTime;
/**
* 0全部导购 1部分导购
*/
private Integer planClerkType;
/**
* 总任务数
*/
private Integer totalNum;
/**
* 成功下发导购数据
*/
private Integer taskClerkNum ;
/**
* 执行任务数
*/
private Integer doneNum;
/**完成率*/
private Integer execRate;
/**
* 完成率
*/
private Double execRateFloat ;
/**
* 终止时间
*/
private java.util.Date stopTime;
/**
* 0自主上传 1内容
*/
private Integer mediaType;
/**
* 素材json
*/
private String mediaInfo;
/**
* 素材回显内容
*/
private String mediaInfoShow;
/**
* 创建时间
*/
private java.util.Date createTime;
/**
* 更新时间
*/
private java.util.Date updateTime;
/**
* 总点赞数
*/
private Integer totalLikeCount;
/**
* 总评论数
*/
private Integer totalCommentCount;
/**
* 指定导购返回
*/
private List<ClerkVO> clerkVOList ;
/**
* 链接开关
*/
private Integer mediaLinkFlag ;
public Integer getMediaLinkFlag() {
return mediaLinkFlag;
}
public void setMediaLinkFlag(Integer mediaLinkFlag) {
this.mediaLinkFlag = mediaLinkFlag;
}
public void setExecType(Integer execType) {
this.execType = execType;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Integer getExecRate() {
return execRate;
}
public void setExecRate(Integer execRate) {
this.execRate = execRate;
}
public List<ClerkVO> getClerkVOList() {
return clerkVOList;
}
public void setClerkVOList(List<ClerkVO> clerkVOList) {
this.clerkVOList = clerkVOList;
}
public Integer getTaskClerkNum() {
return taskClerkNum;
}
public void setTaskClerkNum(Integer taskClerkNum) {
this.taskClerkNum = taskClerkNum;
}
public Double getExecRateFloat() {
return execRateFloat;
}
public void setExecRateFloat(Double execRateFloat) {
this.execRateFloat = execRateFloat;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Date getBeginDate() {
return beginDate;
}
public void setBeginDate(Date beginDate) {
this.beginDate = beginDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public Integer getExpireDays() {
return expireDays;
}
public void setExpireDays(Integer expireDays) {
this.expireDays = expireDays;
}
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 String getCreatorId() {
return creatorId;
}
public void setCreatorId(String creatorId) {
this.creatorId = creatorId;
}
public String getCreatorName() {
return creatorName;
}
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
public Integer getPublishType() {
return publishType;
}
public void setPublishType(Integer publishType) {
this.publishType = publishType;
}
public Date getPublishTime() {
return publishTime;
}
public void setPublishTime(Date publishTime) {
this.publishTime = publishTime;
}
public Integer getPlanClerkType() {
return planClerkType;
}
public void setPlanClerkType(Integer planClerkType) {
this.planClerkType = planClerkType;
}
public Integer getTotalNum() {
return totalNum;
}
public void setTotalNum(Integer totalNum) {
this.totalNum = totalNum;
}
public Integer getDoneNum() {
return doneNum;
}
public void setDoneNum(Integer doneNum) {
this.doneNum = doneNum;
}
public Date getStopTime() {
return stopTime;
}
public void setStopTime(Date stopTime) {
this.stopTime = stopTime;
}
public Integer getMediaType() {
return mediaType;
}
public void setMediaType(Integer mediaType) {
this.mediaType = mediaType;
}
public String getMediaInfo() {
return mediaInfo;
}
public void setMediaInfo(String mediaInfo) {
this.mediaInfo = mediaInfo;
}
public String getMediaInfoShow() {
return mediaInfoShow;
}
public void setMediaInfoShow(String mediaInfoShow) {
this.mediaInfoShow = mediaInfoShow;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getTotalLikeCount() {
return totalLikeCount;
}
public void setTotalLikeCount(Integer totalLikeCount) {
this.totalLikeCount = totalLikeCount;
}
public Integer getTotalCommentCount() {
return totalCommentCount;
}
public void setTotalCommentCount(Integer totalCommentCount) {
this.totalCommentCount = totalCommentCount;
}
public Integer getExecType() {
return execType;
}
public Integer getStatusFlag() {
return statusFlag;
}
}
\ 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 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 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: 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;
@JsonSerialize(using = UserNameJsonSeralizer.class)
private String memberName ;
private String memberNick ;
@JsonSerialize(using = CardNoJsonSeralizer.class)
private String memberCard ;
private String memberImage ;
@JsonSerialize(using = PhoneNumberJsonSeralizer.class)
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
package com.gic.haoban.manage.web.vo.moment;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
*
* @ClassName: TabHaobanQwMomentPlan
* @Description: TODO
* @Author 徐高华
* @Date 2025年03月05日 10:27:20
* @Modify
* @CopyRight 杭州
*/
public class MomentPlanExcelVO implements Serializable {
private static final long serialVersionUID = 67027585759300L;
/**
* 活动id
*/
private Long planId;
/**
* 名称
*/
private String title;
/**
* 描述
*/
private String remark;
/**
* 开始时间
*/
private Date beginDate;
/**
* 结束结束
*/
private Date endDate;
/**
* 几天后失效
*/
private int expireDays;
/**
* 执行方式 0企微1好办小程序
*/
private Integer execType;
private String execTypeExcel;
/**
* 创建人
*/
private String creatorName;
/**
* 1进行中 2终止 0未开始 3 已结束
*/
private Integer statusFlag;
private String statusFlagExcel;
/**
* 1立即发布2定时发布
*/
private Integer publishType;
/**
* 发布时间
*/
private Date publishTime;
/**
* 0全部导购 1部分导购
*/
private Integer planClerkType;
/**
* 总任务数
*/
private Integer totalNum;
/**
* 成功下发导购数据
*/
private Integer taskClerkNum ;
/**
* 执行任务数
*/
private Integer doneNum;
/**完成率*/
private Integer execRate;
/**
* 完成率
*/
private Double execRateFloat ;
/**
* 终止时间
*/
private Date stopTime;
/**
* 创建时间
*/
private Date createTime;
/**
* 总点赞数
*/
private Integer totalLikeCount;
/**
* 总评论数
*/
private Integer totalCommentCount;
public Integer getExecRate() {
return execRate;
}
public void setExecRate(Integer execRate) {
this.execRate = execRate;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Date getBeginDate() {
return beginDate;
}
public void setBeginDate(Date beginDate) {
this.beginDate = beginDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public int getExpireDays() {
return expireDays;
}
public void setExpireDays(int expireDays) {
this.expireDays = expireDays;
}
public Integer getExecType() {
return execType;
}
public void setExecType(Integer execType) {
this.execType = execType;
}
public String getExecTypeExcel() {
return execTypeExcel;
}
public void setExecTypeExcel(String execTypeExcel) {
this.execTypeExcel = execTypeExcel;
}
public String getCreatorName() {
return creatorName;
}
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public String getStatusFlagExcel() {
return statusFlagExcel;
}
public void setStatusFlagExcel(String statusFlagExcel) {
this.statusFlagExcel = statusFlagExcel;
}
public Integer getPublishType() {
return publishType;
}
public void setPublishType(Integer publishType) {
this.publishType = publishType;
}
public Date getPublishTime() {
return publishTime;
}
public void setPublishTime(Date publishTime) {
this.publishTime = publishTime;
}
public Integer getPlanClerkType() {
return planClerkType;
}
public void setPlanClerkType(Integer planClerkType) {
this.planClerkType = planClerkType;
}
public Integer getTotalNum() {
return totalNum;
}
public void setTotalNum(Integer totalNum) {
this.totalNum = totalNum;
}
public Integer getTaskClerkNum() {
return taskClerkNum;
}
public void setTaskClerkNum(Integer taskClerkNum) {
this.taskClerkNum = taskClerkNum;
}
public Integer getDoneNum() {
return doneNum;
}
public void setDoneNum(Integer doneNum) {
this.doneNum = doneNum;
}
public Double getExecRateFloat() {
return execRateFloat;
}
public void setExecRateFloat(Double execRateFloat) {
this.execRateFloat = execRateFloat;
}
public Date getStopTime() {
return stopTime;
}
public void setStopTime(Date stopTime) {
this.stopTime = stopTime;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Integer getTotalLikeCount() {
return totalLikeCount;
}
public void setTotalLikeCount(Integer totalLikeCount) {
this.totalLikeCount = totalLikeCount;
}
public Integer getTotalCommentCount() {
return totalCommentCount;
}
public void setTotalCommentCount(Integer totalCommentCount) {
this.totalCommentCount = totalCommentCount;
}
}
\ No newline at end of file
package com.gic.haoban.manage.web.vo.moment;
import java.io.Serializable ;
import java.util.Date;
/**
*
* @ClassName: TabHaobanQwMomentPlanAttend
* @Description: TODO
* @Author 徐高华
* @Date 2025年03月05日 10:46:49
* @Modify
* @CopyRight 杭州
*/
public class QwMomentPlanAttendVO implements Serializable{
private static final long serialVersionUID = 68786058223200L;
private String staffId;
/**
* 员工名称
*/
private String staffName ;
/**导购*/
private String clerkId;
/**导购code*/
private String clerkCode;
/**导购名称*/
private String clerkName;
/**评论数*/
private Integer commentCount;
/**点赞数*/
private Integer likeCount;
/**0已失效 1待执行 2已执行*/
private Integer taskStatus;
/**任务执行时间*/
private Date sendTime;
/**企微朋友圈id*/
private String momentId;
/**企微获取数据时间*/
private Date qwDataTime;
/**门店id*/
private String storeId;
/**
* 门店名称
*/
private String storeName ;
/**
* 门店code
*/
private String storeCode ;
/**
* 下发失败原因
*/
private String reason ;
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 Integer getCommentCount() {
return commentCount;
}
public void setCommentCount(Integer commentCount) {
this.commentCount = commentCount;
}
public Integer getLikeCount() {
return likeCount;
}
public void setLikeCount(Integer likeCount) {
this.likeCount = likeCount;
}
public Integer getTaskStatus() {
return taskStatus;
}
public void setTaskStatus(Integer 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 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: TabHaobanQwMomentPlanData
* @Description: TODO
* @Author 徐高华
* @Date 2025年03月05日 11:24:04
* @Modify
* @CopyRight 杭州
*/
public class QwMomentPlanDataVO implements Serializable{
private static final long serialVersionUID = 69664410786500L;
/**staff*/
private String staffId;
/**
* 员工名称
*/
private String staffName ;
/**导购*/
private String clerkId;
/**导购code*/
private String clerkCode;
/**导购名称*/
private String clerkName;
/**客户id*/
private String memberId;
@JsonSerialize(using = UserNameJsonSeralizer.class)
private String memberName ;
private String memberNick ;
@JsonSerialize(using = CardNoJsonSeralizer.class)
private String memberCard ;
private String memberImage ;
@JsonSerialize(using = PhoneNumberJsonSeralizer.class)
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;
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 Integer getMemberScene() {
return memberScene;
}
public void setMemberScene(Integer memberScene) {
this.memberScene = memberScene;
}
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 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;
}
}
\ No newline at end of file
......@@ -143,5 +143,7 @@
<dubbo:reference id="pay4WXService" interface="com.gic.thirdparty.api.service.Pay4WXService" timeout="10000" retries="0" check="false"/>
<dubbo:reference id="appOrderApiService" interface="com.gic.haoban.manage.api.service.licence.AppOrderApiService" timeout="10000" retries="0" check="false"/>
<dubbo:reference id="couponCardService" interface="com.gic.marketing.api.service.CouponCardService" timeout="100000" retries="0" check="false" />
<dubbo:reference id="qwMomentApiService" interface="com.gic.haoban.manage.api.service.moment.QwMomentApiService" timeout="100000" retries="0" check="false" />
</beans>
......@@ -7,6 +7,7 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.gic.commons.util.DateUtil;
import com.gic.haoban.manage.api.dto.CommonMQDTO;
import com.gic.haoban.manage.api.dto.chat.*;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatSearchQDTO;
......@@ -61,7 +62,8 @@ public class GroupChatPlanController {
*/
@RequestMapping("total-list")
public RestResponse<Page<ChatOwnerTotalDTO>> totalList(String clerkId, String wxEnterpriseId, String enterpriseId,
String searchParams, BasePageInfo basePageInfo , @RequestParam(defaultValue = "1") int clerkTaskStatus , String storeId) {
String searchParams, BasePageInfo basePageInfo , @RequestParam(defaultValue = "1") int clerkTaskStatus , String storeId ,
String startDate , String endDate ) {
if (StringUtils.isEmpty(clerkId)) {
return RestResponse.failure("1", "clerkId为空");
}
......@@ -73,6 +75,17 @@ public class GroupChatPlanController {
if (StringUtils.isNotBlank(searchParams)) {
qdto.setSearchParams("%" + searchParams + "%");
}
Date _startDate = null ;
Date _endDate = null;
if(StringUtils.isNotBlank(startDate)) {
_startDate = DateUtil.strToDate(startDate,"yyyy-MM-dd") ;
}
if(StringUtils.isNotBlank(endDate)) {
_endDate = DateUtil.strToDate(endDate,"yyyy-MM-dd") ;
_endDate = DateUtil.getEndTimeOfDay(_endDate) ;
}
qdto.setStartDate(_startDate);
qdto.setEndDate(_endDate);
qdto.setClerkTaskStatus(clerkTaskStatus);
ServiceResponse<Page<ChatOwnerTotalDTO>> pageResp = this.groupChatPlanApiService
.listOwnerLogPageForWxaTotal(qdto, basePageInfo);
......
package com.gic.haoban.manage.web.controller.moment;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
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.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanDTO;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanWxaDTO;
import com.gic.haoban.manage.api.dto.moment.TaskDetailDTO;
import com.gic.haoban.manage.api.dto.moment.TaskListWxaDTO;
import com.gic.haoban.manage.api.qdto.moment.PlanListWxaQDTO;
import com.gic.haoban.manage.api.qdto.moment.SendResultQDTO;
import com.gic.haoban.manage.api.qdto.moment.TaskListWxaQDTO;
import com.gic.haoban.manage.api.qdto.moment.TaskNumQDTO;
import com.gic.haoban.manage.api.service.moment.QwMomentApiService;
import com.gic.haoban.manage.web.qo.moment.PlanClerkListQO;
import com.gic.haoban.manage.web.qo.moment.PlanListQO;
import com.gic.haoban.manage.web.vo.moment.PlanClerkListVO;
import com.gic.haoban.manage.web.vo.moment.PlanListVO;
import com.gic.haoban.manage.web.vo.moment.TaskDetailVO;
import com.gic.haoban.manage.web.vo.moment.TaskMaterialVO;
import org.apache.commons.collections.CollectionUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.*;
/**
* 企微朋友圈 - 好办小程序
*/
@RestController
@RequestMapping("/qw-moment")
public class QwMomentController {
private static Logger logger = LogManager.getLogger(QwMomentController.class);
@Autowired
private QwMomentApiService qwMomentApiService ;
@Autowired
private ClerkService clerkService ;
/**
* 获取任务数
*/
@RequestMapping("get-task-num")
@ResponseBody
public RestResponse<Integer> getTaskNum(String wxEnterpriseId , String enterpriseId , String storeId , String clerkId , String staffId) {
TaskNumQDTO qdto = new TaskNumQDTO() ;
qdto.setWxEnterpriseId(wxEnterpriseId);
qdto.setEnterpriseId(enterpriseId);
qdto.setStoreId(storeId);
ClerkDTO clerk = this.clerkService.getclerkById(clerkId) ;
if(0 == clerk.getClerkType()) {
qdto.setClerkId(clerkId);
}
ServiceResponse<Integer> resp = this.qwMomentApiService.getTaskNum(qdto) ;
return RestResponse.successResult(resp.getResult()==null?0:resp.getResult()) ;
}
/**
* 活动列表
*/
@RequestMapping("plan-list")
public RestResponse<Page<PlanListVO>> planList(@RequestBody PlanListQO qo) {
logger.info("查询活动列表={}", JSONObject.toJSONString(qo));
PlanListWxaQDTO qdto = EntityUtil.changeEntityByJSON(PlanListWxaQDTO.class,qo) ;
ClerkDTO clerk = this.clerkService.getclerkById(qo.getClerkId()) ;
if(0 != clerk.getClerkType()) {
qdto.setClerkId(null);
}
ServiceResponse<Page<QwMomentPlanWxaDTO>> pageResp = this.qwMomentApiService.planListWxa(qdto) ;
Page<PlanListVO> retPage = PageHelperUtils.changePageToCurrentPage(pageResp.getResult(), PlanListVO.class);
if(qo.getPlanStatus()==1) {
for(PlanListVO vo : retPage.getResult()) {
// 作为失效的数量返回
vo.setNotExecNum(vo.getTotalNum()-vo.getExecNum());
}
}
return RestResponse.successResult(retPage) ;
}
/**
* 活动任务-导购列表
*/
@RequestMapping("task-list")
public RestResponse<Page<PlanClerkListVO>> taskList(@RequestBody PlanClerkListQO qo) {
logger.info("活动下任务列表={}", JSONObject.toJSONString(qo));
TaskListWxaQDTO qdto = EntityUtil.changeEntityByJSON(TaskListWxaQDTO.class,qo) ;
ClerkDTO clerk = this.clerkService.getclerkById(qo.getClerkId()) ;
if(0 != clerk.getClerkType()) {
qdto.setClerkId(null);
}
ServiceResponse<QwMomentPlanDTO> resp = this.qwMomentApiService.detail(qo.getPlanId()) ;
QwMomentPlanDTO plan = resp.getResult();
if(null == plan) {
return RestResponse.failure("9999","活动不存在或已删除") ;
}
ServiceResponse<Page<TaskListWxaDTO>> pageResp = this.qwMomentApiService.taskListWxa(qdto) ;
Page<PlanClerkListVO> retPage = PageHelperUtils.changePageToCurrentPage(pageResp.getResult(), PlanClerkListVO.class);
if(CollectionUtils.isNotEmpty(retPage.getResult())) {
for(PlanClerkListVO vo : retPage.getResult()) {
if(vo.getTaskStatus()==1) {
if(plan.getStatusFlag()==2 || plan.getEndDate().getTime()<System.currentTimeMillis()) {
vo.setTaskStatus(0);
}
}
}
}
return RestResponse.successResult(retPage) ;
}
/**
* 活动任务详情
*/
@RequestMapping("detail")
public RestResponse<TaskDetailVO> detail(Long planId , String execClerkId) {
ServiceResponse<TaskDetailDTO> detailResp = this.qwMomentApiService.taskDetail(planId , execClerkId) ;
if(detailResp.isSuccess()) {
TaskDetailVO vo = EntityUtil.changeEntityByJSON(TaskDetailVO.class,detailResp.getResult()) ;
ServiceResponse<QwMomentPlanDTO> resp = this.qwMomentApiService.detail(planId) ;
QwMomentPlanDTO plan = resp.getResult();
if(vo.getTaskStatus()==1) {
if(plan.getStatusFlag()==2 || plan.getEndDate().getTime()<System.currentTimeMillis()) {
vo.setTaskStatus(0);
}
}
return RestResponse.successResult(vo) ;
}
return RestResponse.failure("9999",detailResp.getMessage()) ;
}
/**
* 素材列表
*/
@RequestMapping("material-list")
public RestResponse<List<TaskMaterialVO>> getTaskMaterial(Long planId) {
ServiceResponse<QwMomentPlanDTO> detailResp = this.qwMomentApiService.detail(planId) ;
List<TaskMaterialVO> list = new ArrayList<>() ;
if(detailResp.isSuccess() && null != detailResp.getResult()) {
String json = detailResp.getResult().getMediaInfo() ;
JSONArray arr = JSONArray.parseArray(json) ;
for(int i=0;i<arr.size();i++) {
JSONObject obj = arr.getJSONObject(i) ;
TaskMaterialVO vo = new TaskMaterialVO();
vo.setMaterialType(obj.getInteger("materialType"));
vo.setImgUrl(obj.getString("imgUrl"));
if(vo.getMaterialType()==4) {
vo.setLink(obj.getString("videoUrl"));
}
if(vo.getMaterialType()==3) {
vo.setLink(obj.getString("link"));
}
vo.setMaterialTitle(obj.getString("title"));
vo.setMaterialContent(obj.getString("contentText"));
if(null !=detailResp.getResult().getMediaLinkFlag() && detailResp.getResult().getMediaLinkFlag()==1) {
vo.setContentMaterialId(obj.getString("materialId"));
}
list.add(vo);
}
}
return RestResponse.successResult(list) ;
}
/**
* 完成企微群饭任务
*/
@RequestMapping("finish-moment-task")
@ResponseBody
public RestResponse<Void> finishTask(@RequestBody SendResultQDTO qdto) {
logger.info("完成任务={}",JSONObject.toJSONString(qdto)) ;
this.qwMomentApiService.finishTask(qdto) ;
return RestResponse.successResult();
}
}
package com.gic.haoban.manage.web.qo.moment;
import com.gic.api.base.commons.BasePageInfo;
public class PlanClerkListQO extends BasePageInfo {
private String wxEnterpriseId ;
private String enterpriseId ;
private String storeId ;
private String staffId ;
private String clerkId ;
/**
* 指定查询的导购ID
*/
private String execClerkId ;
/**
* 0已失效 1未完成 2已完成
*/
private Integer taskStatus ;
private Long planId ;
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
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 String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getExecClerkId() {
return execClerkId;
}
public void setExecClerkId(String execClerkId) {
this.execClerkId = execClerkId;
}
public Integer getTaskStatus() {
return taskStatus;
}
public void setTaskStatus(Integer taskStatus) {
this.taskStatus = taskStatus;
}
}
package com.gic.haoban.manage.web.qo.moment;
import com.gic.api.base.commons.BasePageInfo;
import java.util.Date;
public class PlanListQO extends BasePageInfo {
private String wxEnterpriseId ;
private String enterpriseId ;
private String storeId ;
private String staffId ;
private String clerkId ;
/**
* 0未完成 1已完成或已失效
*/
private Integer planStatus ;
/**
* 活动名称
*/
private String name ;
private Date startDate ;
private Date endDate ;
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
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 String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public Integer getPlanStatus() {
return planStatus;
}
public void setPlanStatus(Integer planStatus) {
this.planStatus = planStatus;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.gic.haoban.manage.web.vo.moment;
import java.io.Serializable;
import java.util.Date;
public class PlanClerkListVO implements Serializable {
private Long planId ;
/**
* 计划名称
*/
private String name ;
/**
* 开始时间
*/
private Date startTime ;
/**
* 结束时间
*/
private Date endTime ;
/**
* 点赞数
*/
private int likeCount ;
/**
* 评论数
*/
private int commentCount ;
private String clerkId ;
/**
* 执行导购名
*/
private String clerkName ;
/**
* 0已失效 1待完成 2已完成
*/
private Integer taskStatus ;
// 完成时间
private Date sendTime ;
public Date getSendTime() {
return sendTime;
}
public void setSendTime(Date sendTime) {
this.sendTime = sendTime;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public int getLikeCount() {
return likeCount;
}
public void setLikeCount(int likeCount) {
this.likeCount = likeCount;
}
public int getCommentCount() {
return commentCount;
}
public void setCommentCount(int commentCount) {
this.commentCount = commentCount;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getClerkName() {
return clerkName;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
public Integer getTaskStatus() {
return taskStatus;
}
public void setTaskStatus(Integer taskStatus) {
this.taskStatus = taskStatus;
}
}
package com.gic.haoban.manage.web.vo.moment;
import java.io.Serializable;
import java.util.Date;
public class PlanListVO implements Serializable {
private Long planId ;
/**
* 计划名称
*/
private String name ;
/**
* 任务总数
*/
private int totalNum ;
/**
* 已完成
*/
private int execNum ;
/**
* 未完成 - 或已失效
*/
private int notExecNum ;
/**
* 开始时间
*/
private Date startTime ;
/**
* 结束时间
*/
private Date endTime ;
/**
* 点赞数
*/
private int likeCount ;
/**
* 评论数
*/
private int commentCount ;
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getTotalNum() {
return totalNum;
}
public void setTotalNum(int totalNum) {
this.totalNum = totalNum;
}
public int getExecNum() {
return execNum;
}
public void setExecNum(int execNum) {
this.execNum = execNum;
}
public int getNotExecNum() {
return notExecNum;
}
public void setNotExecNum(int notExecNum) {
this.notExecNum = notExecNum;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public int getLikeCount() {
return likeCount;
}
public void setLikeCount(int likeCount) {
this.likeCount = likeCount;
}
public int getCommentCount() {
return commentCount;
}
public void setCommentCount(int commentCount) {
this.commentCount = commentCount;
}
}
package com.gic.haoban.manage.web.vo.moment;
import java.io.Serializable;
import java.util.Date;
public class TaskDetailVO implements Serializable {
private Long planId ;
private String clerkId ;
/**
* 执行导购名称
*/
private String clerkName ;
/**
* 任务名称
*/
private String name ;
/**
* 任务描述
*/
private String remark ;
/**
* 开始时间
*/
private Date startTime ;
/**
* 结束时间
*/
private Date endTime ;
/**
* 点赞数
*/
private int likeCount ;
/**
* 评论数
*/
private int commentCount ;
/**任务执行完成时间*/
private Date sendTime ;
/**
* 执行方式 0企微1好办小程序
*/
private int execType ;
/**
* 数据更新时间
*/
private Date qwDataTime ;
// 0已失效1待执行 2已执行
private Integer taskStatus ;
// 1内容
private Integer mediaType ;
public Integer getMediaType() {
return mediaType;
}
public void setMediaType(Integer mediaType) {
this.mediaType = mediaType;
}
public Integer getTaskStatus() {
return taskStatus;
}
public void setTaskStatus(Integer taskStatus) {
this.taskStatus = taskStatus;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getClerkName() {
return clerkName;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public int getLikeCount() {
return likeCount;
}
public void setLikeCount(int likeCount) {
this.likeCount = likeCount;
}
public int getCommentCount() {
return commentCount;
}
public void setCommentCount(int commentCount) {
this.commentCount = commentCount;
}
public Date getSendTime() {
return sendTime;
}
public void setSendTime(Date sendTime) {
this.sendTime = sendTime;
}
public int getExecType() {
return execType;
}
public void setExecType(int execType) {
this.execType = execType;
}
public Date getQwDataTime() {
return qwDataTime;
}
public void setQwDataTime(Date qwDataTime) {
this.qwDataTime = qwDataTime;
}
}
package com.gic.haoban.manage.web.vo.moment;
import java.io.Serializable;
public class TaskMaterialVO implements Serializable {
private static final long serialVersionUID = 6871384233719346928L;
/**
* 素材类型, 1 : 文本, 2 : 图片, 3 : 网页,4 : 视频, 5 : 文件 6小程序 7卡券小程序
*/
private Integer materialType;
/**
* 图片地址
*/
private String imgUrl;
/**
* 视频地址、h5
*/
private String link;
/**
* 文本内容、链接描述
*/
private String materialContent;
/**
* 标题
*/
private String materialTitle;
/**
* 内容素材ID
*/
private String contentMaterialId ;
public String getContentMaterialId() {
return contentMaterialId;
}
public void setContentMaterialId(String contentMaterialId) {
this.contentMaterialId = contentMaterialId;
}
public Integer getMaterialType() {
return materialType;
}
public void setMaterialType(Integer materialType) {
this.materialType = materialType;
}
public String getImgUrl() {
return imgUrl;
}
public void setImgUrl(String imgUrl) {
this.imgUrl = imgUrl;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
public String getMaterialContent() {
return materialContent;
}
public void setMaterialContent(String materialContent) {
this.materialContent = materialContent;
}
public String getMaterialTitle() {
return materialTitle;
}
public void setMaterialTitle(String materialTitle) {
this.materialTitle = materialTitle;
}
}
......@@ -188,7 +188,7 @@
timeout="10000" retries="0" check="false"/>
<dubbo:reference id="gatheringActivityWxApiService" interface="com.gic.marketing.pro.api.service.activity.GatheringActivityWxApiService" timeout="10000" retries="0" check="false"/>
<dubbo:reference id="qwMomentApiService" interface="com.gic.haoban.manage.api.service.moment.QwMomentApiService" timeout="100000" retries="0" check="false" />
<dubbo:reference id="eSDataDynamicOperationApiService"
interface="com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService"
timeout="10000"/>
......
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