Commit cb7c2a99 by 徐高华

朋友圈

parent c7f95ea8
......@@ -25,4 +25,17 @@ public interface QwMomentApiService {
ServiceResponse<Page<QwMomentPlanDataDTO>> dataList(PlanDataListQDTO qdto) ;
/**
* 全部导购处理
* @param params
*/
void initTaskClerk(String params) ;
/**
* 定时发送任务创建通知/执行
* @param params
*/
void sendPlanNoticeTimer(String params) ;
}
......@@ -14,6 +14,7 @@ public interface QwMomentPlanMapper {
void update(TabQwMomentPlan tab) ;
void del(@Param("planId") Long planId) ;
void stop(@Param("planId") Long planId) ;
TabQwMomentPlan getById(@Param("planId") Long planId) ;
......
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;
}
}
......@@ -17,4 +17,7 @@ public interface QwMomentPlanService {
ServiceResponse<Page<QwMomentPlanDTO>> planList(QwMomentPlanQDTO qdto) ;
void initTaskClerk(String params);
void sendPlanNoticeTimer(String params);
}
......@@ -15,13 +15,16 @@ 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.ContentMaterialDTO;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
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.QwMomentPlanQDTO;
import com.gic.haoban.manage.api.service.StaffClerkRelationApiService;
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.moment.TabQwMomentPlan;
import com.gic.haoban.manage.service.service.QywxSendService;
import com.gic.haoban.manage.service.service.moment.QwMomentPlanAttendService;
import com.gic.haoban.manage.service.service.moment.QwMomentPlanService;
import com.gic.quartz.api.dto.QuartzTaskDTO;
......@@ -61,6 +64,8 @@ public class QwMomentPlanServiceImpl implements QwMomentPlanService {
private PowerService powerService ;
@Autowired
private StoreWidgetService storeWidgetService ;
@Autowired
private QywxSendService qywxSendService ;
@Override
public ServiceResponse<Page<QwMomentPlanDTO>> planList(QwMomentPlanQDTO qdto) {
......@@ -125,11 +130,6 @@ public class QwMomentPlanServiceImpl implements QwMomentPlanService {
if (CollectionUtils.isNotEmpty(delList)) {
this.qwMomentPlanAttendMapper.delClerks(planId, delList);
}
if(CollectionUtils.isNotEmpty(addList)) {
for(String clerkId : addList) {
this.sendTaskToClerk(plan.getEnterpriseId(),clerkId,plan.getPlanId());
}
}
}
}
......@@ -138,20 +138,19 @@ public class QwMomentPlanServiceImpl implements QwMomentPlanService {
}else {
this.addOrDelTimer(planId, new Date(), 0);
if(createFlag || publishFlag) {
/* JSONObject jsonObject = new JSONObject() ;
jsonObject.put("type",0) ;
JSONObject jsonObject = new JSONObject() ;
jsonObject.put("planId",planId) ;
this.initTaskClerk(jsonObject.toJSONString());
try {
clientInstance.sendMessage("clerkTaskInitClerkMQ", jsonObject.toJSONString(),10);
// clientInstance.sendMessage("clerkTaskInitClerkMQ", jsonObject.toJSONString(),10);
} catch (Exception e) {
throw new RuntimeException(e);
}*/
}
}
}
return ServiceResponse.success(dto);
}
private void sendTaskToClerk(String enterpriseId,String clerkId , Long planId) {
logger.info("发送任务通知,clerkId={}",clerkId);
// 发送通知
......@@ -188,7 +187,7 @@ public class QwMomentPlanServiceImpl implements QwMomentPlanService {
quartzTask.setTaskStatus(status);
String taskTimeInfo = this.getTaskTime(sendTime);
quartzTask.setTaskTimeInfo(taskTimeInfo);
quartzTask.setTaskService("com.gic.marketing.pro.api.service.clerktask.ClerkTaskApiService");
quartzTask.setTaskService("com.gic.haoban.manage.api.service.moment.QwMomentApiService");
quartzTask.setTaskMethod("sendPlanNoticeTimer");
quartzTask.setTaskParam(planId + "");
quartzTask.setReferId(planId + "");
......@@ -213,7 +212,7 @@ public class QwMomentPlanServiceImpl implements QwMomentPlanService {
}
private void saveAttendClerkForOpenTask(Long planId) {
private void saveAttendClerkForTask(Long planId) {
TabQwMomentPlan plan = this.qwMomentPlanMapper.getById(planId) ;
String creatorId = plan.getCreatorId() ;
String enterpriseId = plan.getEnterpriseId() ;
......@@ -253,4 +252,56 @@ public class QwMomentPlanServiceImpl implements QwMomentPlanService {
return storeIdList;
}
@Override
public void initTaskClerk(String params) {
JSONObject json = JSONObject.parseObject(params) ;
Long planId = json.getLong("planId") ;
TabQwMomentPlan plan = this.qwMomentPlanMapper.getById(planId) ;
// 0全部导购 1部分导购
if(plan.getPlanClerkType()==0) {
this.saveAttendClerkForTask(planId) ;
}
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);
if (CollectionUtils.isNotEmpty(list)) {
for (QwMomentPlanAttendDTO dto : list) {
this.sendTaskToClerk(plan.getEnterpriseId(), dto.getClerkId(), plan.getPlanId());
}
}
}else {
// 企微下发任务
this.sendToQiwei(plan);
}
}
}
private void sendToQiwei(TabQwMomentPlan plan) {
List<ContentMaterialDTO> imageList = new ArrayList<>() ;
ContentMaterialDTO d1 = new ContentMaterialDTO();
d1.setMaterialType(2);
d1.setImgUrl("https://platform-1251519181.cos.ap-shanghai.myqcloud.com/image/jhdm/common-8ed0204b143c4cc0803ec153cd51f481.png?imageView2/format/jpg/q/50");
imageList.add(d1) ;
ServiceResponse<String> resp = this.qywxSendService.share(plan.getWxEnterpriseId(),Arrays.asList("b2ef17cce11f476b996d0b27ebadf7fb"),"朋友圈",imageList) ;
logger.info("发企微朋友={}",JSONObject.toJSONString(resp));
}
@Override
public void sendPlanNoticeTimer(String params) {
logger.info("定时发布任务发送通知={}",params);
Long planId = Long.valueOf(params) ;
TabQwMomentPlan plan = this.qwMomentPlanMapper.getById(planId) ;
// 0全部导购 1部分导购
if(plan.getPlanClerkType()==0) {
this.saveAttendClerkForTask(planId) ;
}
this.sendPlanNotice(plan);
}
}
......@@ -58,4 +58,14 @@ public class QwMomentApiServiceImpl implements QwMomentApiService {
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) ;
}
}
......@@ -232,7 +232,7 @@
</update>
<update id="stop" parameterType="java.lang.Long">
update tab_haoban_qw_moment_plan set status_flag = 2 where plan_id = #{planId}
update tab_haoban_qw_moment_plan set status_flag = 2 , stop_time = now() where plan_id = #{planId}
</update>
<update id="updateClerkNum">
......
......@@ -30,16 +30,15 @@ public class MomentTest {
@Test
public void ddd() {
QwMomentPlanDTO dto = new QwMomentPlanDTO() ;
dto.setPublishType(2);
dto.setPublishType(1);
dto.setPublishTime(new Date());
dto.setWxEnterpriseId("123");
dto.setCreatorId("11");
dto.setCreatorName("222");
dto.setEnterpriseId("123");
dto.setExecType(1);
dto.setWxEnterpriseId("ca66a01b79474c40b3e7c7f93daf1a3b");
dto.setCreatorId("fefd1c81641711e69d0818c58a146fd2");
dto.setCreatorName("达摩管理");
dto.setEnterpriseId("ff8080815dacd3a2015dacd3ef5c0000");
dto.setExecType(0);
dto.setExpireDays(10);
dto.setPlanClerkType(1);
dto.setPlanId(770643491869106177L);
// ,"b2ef17cce11f476b996d0b27ebadf7fb"
List<String> clerkIds = Arrays.asList("a02065ae51594fb9832e4199d4e3a1b0","753a367d709d40a38b17ed25847d3b4b") ;
dto.setSelectClerkIdList(clerkIds);
......
......@@ -56,7 +56,7 @@ public class QwMomentController {
* 活动任务详情
*/
@RequestMapping("detail")
public RestResponse<Page<PlanDetailVO>> detail(Long planId , String execClerkId) {
public RestResponse<PlanDetailVO> detail(Long planId , String execClerkId) {
return null ;
}
......
......@@ -44,6 +44,17 @@ public class PlanClerkListVO implements Serializable {
*/
private Integer taskStatus ;
// 完成时间
private Date sendTime ;
public Date getSendTime() {
return sendTime;
}
public void setSendTime(Date sendTime) {
this.sendTime = sendTime;
}
public Long getPlanId() {
return planId;
}
......
......@@ -47,4 +47,109 @@ public class PlanDetailVO implements Serializable {
/**任务执行完成时间*/
private Date sendTime ;
/**
* 执行方式 0企微1好办小程序
*/
private int execType ;
/**
* 数据更新时间
*/
private Date qwDataTime ;
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 getLinkCount() {
return linkCount;
}
public void setLinkCount(int linkCount) {
this.linkCount = linkCount;
}
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;
}
}
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