Commit 1f8b34a8 by 章春雨

Merge branch 'feat-1002334' into 'master'

1002334 时间管理的发送记录与完成情况功能

See merge request rays/pcloud-book!401
parents 6287c76d c79874b8
...@@ -19,4 +19,6 @@ public class ReplyMessageBaseDto implements Serializable { ...@@ -19,4 +19,6 @@ public class ReplyMessageBaseDto implements Serializable {
private Integer startDay; private Integer startDay;
private String sendHour;
} }
...@@ -34,4 +34,6 @@ public class ReplyMessageDto implements Serializable { ...@@ -34,4 +34,6 @@ public class ReplyMessageDto implements Serializable {
private String fileType; private String fileType;
private BigDecimal size; private BigDecimal size;
private Integer taskItemId;
} }
package com.pcloud.book.timecontrol.dto;
import com.pcloud.common.dto.BaseDto;
import lombok.Data;
@Data
public class SubscribeTaskUserDTO extends BaseDto {
/**
* 微信用户ID
*/
private String wxUserId;
/**
* 昵称
*/
private String nickName;
/**
* 头像
*/
private String headPic;
/**
* 性别
*/
private Integer sex;
private Integer taskItemCount;
/**
* 任务已完成次数
*/
private Integer completedCount;
/**
* 未完成次数
*/
private Integer noCompletedCount;
/**
* 订阅状态(0-取消订阅 1-订阅 2-完成)
*/
private Integer subscribeState;
}
package com.pcloud.book.timecontrol.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @date: 2020年01月30日 15:20
* @Author: Zcy
* @Descprition
*/
@Data
public class TaskCompletedDto implements Serializable {
private Integer taskId;
private String taskName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
private Integer taskItemCount;
private Long depLabelId;
private Long purLabelId;
private Long proLabelId;
private String proLabelName;
private String depLabelName;
private String purLabelName;
private Integer subscribePersonCount;
}
package com.pcloud.book.timecontrol.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Description:TODO
* @Author:zcy
* @Date:2020-01-31
* @Version:1.0
*/
@Data
public class TaskItemSendDto implements Serializable {
private Integer id;
private Integer taskId;
private String taskName;
private Integer taskItemId;
private String robotWxId;
private String robotName;
private Integer startDay;
private Integer finishConfirm;
private String finishKeyWord;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
private List<ReplyMessageDto> replyMessageList;
private Integer sendState;
private Integer sendPersonCount;
private Integer bookId;
private String bookName;
private String isbn;
private String serialNumber;
}
package com.pcloud.book.timecontrol.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @date: 2020年02月01日 21:04
* @Author: lihao
* @Descprition
*/
@Data
public class TaskSendUserDto implements Serializable {
private Integer id;
private String robotWxId;
private Integer taskId;
private Integer taskItemId;
/**
* 微信用户ID
*/
private String wxUserId;
/**
* 昵称
*/
private String nickName;
/**
* 头像
*/
private String headPic;
/**
* 性别
*/
private Integer sex;
private Long depLabelId;
private Long purLabelId;
private Long proLabelId;
private String proLabelName;
private String depLabelName;
private String purLabelName;
private Integer hasCompleted;
private Integer sendState;
private String sendDay;
private String sendHour;
}
package com.pcloud.book.timecontrol.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @date: 2020年01月30日 15:20
* @Author: Zcy
* @Descprition
*/
@Data
public class TodayTaskSendDto implements Serializable {
/**
* 今日消息已发条数
*/
private Integer todaySendCount;
/**
* 今日消息待发条数
*/
private Integer todayNotSendCount;
}
package com.pcloud.book.timecontrol.biz;
import com.pcloud.book.timecontrol.dto.*;
import com.pcloud.common.page.PageBeanNew;
import java.util.List;
/**
* @Description:TODO
* @Author:zcy
* @Date:2020-01-30
* @Version:1.0
*/
public interface TaskCompletedBiz {
PageBeanNew<TaskCompletedDto> listTaskCompleted4Pcloud(Integer currentPage, Integer numPerPage, String taskName, Integer proLabelId, Integer depLabelId, Integer purLabelId);
PageBeanNew<SubscribeTaskUserDTO> listTaskSubscribeUser4Pcloud(Integer currentPage, Integer numPerPage, String search, Integer taskId,Integer subscribeType);
PageBeanNew<TaskItemSendDto> listTaskItemSendRecord4Pcloud(Integer currentPage, Integer numPerPage, String startTime, String endTime, String robotWxId, String taskName, String sendContent, String search);
PageBeanNew<TaskSendUserDto> listTaskItemSendUser4Pcloud(Integer currentPage, Integer numPerPage, Integer taskItemId, String search, String robotWxId);
TodayTaskSendDto getTodayTaskSend();
List<String> getTaskSendDateList(String date);
}
...@@ -510,7 +510,7 @@ public class TaskBizImpl implements TaskBiz { ...@@ -510,7 +510,7 @@ public class TaskBizImpl implements TaskBiz {
timeControlTaskSendMapper.updateSendState(taskSendId, TaskSendStateEnum.FINISH_SEND.getState(), 1); timeControlTaskSendMapper.updateSendState(taskSendId, TaskSendStateEnum.FINISH_SEND.getState(), 1);
//每次都要判断一下是否所有单项任务都完成。完成之后需要同步修改关注表里面完成状态 //每次都要判断一下是否所有单项任务都完成。完成之后需要同步修改关注表里面完成状态
Integer noCompletedItem = timeControlTaskSendMapper.getNoCompletedItem(timeControlTaskSend.getTaskId()); Integer noCompletedItem = timeControlTaskSendMapper.getNoCompletedCount(timeControlTaskSend.getSubscribeId());
if(noCompletedItem==0){ if(noCompletedItem==0){
taskSubscribeMapper.completedTaskById(timeControlTaskSend.getSubscribeId()); taskSubscribeMapper.completedTaskById(timeControlTaskSend.getSubscribeId());
} }
......
...@@ -153,6 +153,7 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz { ...@@ -153,6 +153,7 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
taskSend.setSendState(TaskSendStateEnum.WAIT_SEND.state); taskSend.setSendState(TaskSendStateEnum.WAIT_SEND.state);
taskSend.setTaskItemId(item.getId()); taskSend.setTaskItemId(item.getId());
taskSend.setSendDay(DateUtils.getShortDateStr(DateUtils.addDay(new Date(), item.getStartDay()))); taskSend.setSendDay(DateUtils.getShortDateStr(DateUtils.addDay(new Date(), item.getStartDay())));
taskSend.setSendHour(item.getSendHour());
taskSendList.add(taskSend); taskSendList.add(taskSend);
} }
LOGGER.info("111"); LOGGER.info("111");
...@@ -427,7 +428,7 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz { ...@@ -427,7 +428,7 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
//每次都要判断一下是否所有单项任务都完成。完成之后需要同步修改关注表里面完成状态 //每次都要判断一下是否所有单项任务都完成。完成之后需要同步修改关注表里面完成状态
if(count==taskSendList.size()) { if(count==taskSendList.size()) {
Integer noCompletedItem = timeControlTaskSendMapper.getNoCompletedItem(timeControlTaskSend.getTaskId()); Integer noCompletedItem = timeControlTaskSendMapper.getNoCompletedCount(timeControlTaskSend.getSubscribeId());
if (noCompletedItem == 0) { if (noCompletedItem == 0) {
taskSubscribeMapper.completedTaskById(timeControlTaskSend.getSubscribeId()); taskSubscribeMapper.completedTaskById(timeControlTaskSend.getSubscribeId());
} }
......
package com.pcloud.book.timecontrol.entity; package com.pcloud.book.timecontrol.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date; import java.util.Date;
public class TimeControlTaskItem { public class TimeControlTaskItem {
...@@ -13,6 +15,7 @@ public class TimeControlTaskItem { ...@@ -13,6 +15,7 @@ public class TimeControlTaskItem {
private String finishKeyWord; private String finishKeyWord;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private Date createTime;
private Date updateTime; private Date updateTime;
......
...@@ -32,4 +32,6 @@ public class TimeControlTaskSend implements Serializable { ...@@ -32,4 +32,6 @@ public class TimeControlTaskSend implements Serializable {
private Integer sendState; private Integer sendState;
private Integer completeState; private Integer completeState;
private String sendHour;
} }
package com.pcloud.book.timecontrol.facade.impl;
import com.pcloud.book.timecontrol.biz.TaskBiz;
import com.pcloud.book.timecontrol.biz.TaskCompletedBiz;
import com.pcloud.book.timecontrol.biz.TaskSubscribeBiz;
import com.pcloud.book.timecontrol.dto.*;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @date: 2020年02月07日 12:52
* @Author: zy
* @Descprition
*/
@Api(value = "时间管理完成情况")
@RequestMapping(value = "/statis")
@RestController("statisFacade")
public class TimeControlStatisFacadeImpl {
@Autowired
private TaskBiz taskBiz;
@Autowired
private TaskSubscribeBiz taskSubscribeBiz;
@Autowired
private TaskCompletedBiz taskCompletedBiz;
@GetMapping("listTaskCompleted4Pcloud")
@ApiOperation(value = "平台端查询任务完成情况列表", httpMethod = "GET")
ResponseDto<PageBeanNew<TaskCompletedDto>> listTaskCompleted4Pcloud(@RequestHeader("token") String token,
@RequestParam Integer currentPage,
@RequestParam Integer numPerPage,
@RequestParam(value = "search", required = false) String search,
@RequestParam(value = "taskName", required = false) String taskName,
@RequestParam(value = "proLabelId", required = false) Integer proLabelId,
@RequestParam(value = "depLabelId", required = false) Integer depLabelId,
@RequestParam(value = "purLabelId", required = false) Integer purLabelId) throws PermissionException {
SessionUtil.getToken4Redis(token);
PageBeanNew<TaskCompletedDto> pageResult = taskCompletedBiz.listTaskCompleted4Pcloud(currentPage, numPerPage, taskName,proLabelId,depLabelId,purLabelId);
return new ResponseDto<>(pageResult);
}
@GetMapping("listTaskSubscribeUser4Pcloud")
@ApiOperation(value = "平台端查询任务参与用户列表", httpMethod = "GET")
ResponseDto<PageBeanNew<SubscribeTaskUserDTO>> listTaskSubscribeUser4Pcloud(@RequestHeader("token") String token,
@RequestParam Integer currentPage,
@RequestParam Integer numPerPage,
@RequestParam(value = "taskId") Integer taskId,
@RequestParam(value = "search", required = false) String search,
@RequestParam(value = "subscribeType", required = false) Integer subscribeType) throws PermissionException {
SessionUtil.getToken4Redis(token);
PageBeanNew<SubscribeTaskUserDTO> pageResult = taskCompletedBiz.listTaskSubscribeUser4Pcloud(currentPage, numPerPage, search,taskId,subscribeType);
return new ResponseDto<>(pageResult);
}
@GetMapping("getTodayTaskSend")
@ApiOperation(value = "获取今日消息发送信息", httpMethod = "GET")
ResponseDto<TodayTaskSendDto> getTodayTaskSend(@RequestHeader("token") String token) throws PermissionException {
SessionUtil.getToken4Redis(token);
TodayTaskSendDto todayTaskSendDto=taskCompletedBiz.getTodayTaskSend();
return new ResponseDto<>(todayTaskSendDto);
}
@GetMapping("getTaskSendDateList")
@ApiOperation(value = "获取有发送任务的日期集合", httpMethod = "GET")
ResponseDto<List<String>> getTaskSendDateList(@RequestHeader("token") String token,
@RequestParam(value = "date") String date) throws PermissionException {
SessionUtil.getToken4Redis(token);
List<String> taskSendDateList=taskCompletedBiz.getTaskSendDateList(date);
return new ResponseDto<>(taskSendDateList);
}
@GetMapping("listTaskItemSendRecord4Pcloud")
@ApiOperation(value = "平台端查询任务发送记录列表", httpMethod = "GET")
ResponseDto<PageBeanNew<TaskItemSendDto>> listTaskItemSendRecord4Pcloud(@RequestHeader("token") String token,
@RequestParam Integer currentPage,
@RequestParam Integer numPerPage,
@RequestParam(value = "startTime", required = false) String startTime,
@RequestParam(value = "endTime", required = false) String endTime,
@RequestParam(value = "robotWxId", required = false) String robotWxId,
@RequestParam(value = "taskName", required = false) String taskName,
@RequestParam(value = "sendContent", required = false) String sendContent,
@RequestParam(value = "search", required = false) String search) throws PermissionException {
SessionUtil.getToken4Redis(token);
PageBeanNew<TaskItemSendDto> pageResult = taskCompletedBiz.listTaskItemSendRecord4Pcloud(currentPage, numPerPage, startTime, endTime,robotWxId,taskName,sendContent,search);
return new ResponseDto<>(pageResult);
}
@GetMapping("listTaskItemSendUser4Pcloud")
@ApiOperation(value = "平台端查询任务发送读者详情列表", httpMethod = "GET")
ResponseDto<PageBeanNew<TaskSendUserDto>> listTaskItemSendUser4Pcloud(@RequestHeader("token") String token,
@RequestParam Integer currentPage,
@RequestParam Integer numPerPage,
@RequestParam(value = "taskItemId") Integer taskItemId,
@RequestParam(value = "search", required = false) String search, @RequestParam String robotWxId) throws PermissionException {
SessionUtil.getToken4Redis(token);
PageBeanNew<TaskSendUserDto> pageResult = taskCompletedBiz.listTaskItemSendUser4Pcloud(currentPage, numPerPage,taskItemId,search, robotWxId);
return new ResponseDto<>(pageResult);
}
}
\ No newline at end of file
...@@ -2,6 +2,7 @@ package com.pcloud.book.timecontrol.mapper; ...@@ -2,6 +2,7 @@ package com.pcloud.book.timecontrol.mapper;
import com.pcloud.book.timecontrol.entity.TimeControlReplyMessage; import com.pcloud.book.timecontrol.entity.TimeControlReplyMessage;
import com.pcloud.book.timecontrol.dto.ReplyMessageDto;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -28,4 +29,6 @@ public interface TimeControlReplyMessageMapper { ...@@ -28,4 +29,6 @@ public interface TimeControlReplyMessageMapper {
List<TimeControlReplyMessage> list4TaskItem(@Param("taskItemId") Integer taskItemId, @Param("replyType") Integer replyType); List<TimeControlReplyMessage> list4TaskItem(@Param("taskItemId") Integer taskItemId, @Param("replyType") Integer replyType);
List<TimeControlReplyMessage> getByTaskItemId(Integer taskItemId); List<TimeControlReplyMessage> getByTaskItemId(Integer taskItemId);
List<ReplyMessageDto> list4TaskItemList(@Param("taskItemIds") List<Integer> taskItemIds, @Param("replyType") Integer replyType);
} }
\ No newline at end of file
...@@ -22,4 +22,6 @@ public interface TimeControlTaskItemMapper { ...@@ -22,4 +22,6 @@ public interface TimeControlTaskItemMapper {
void updateTtaskItem(TimeControlTaskItem timeControlTaskItem); void updateTtaskItem(TimeControlTaskItem timeControlTaskItem);
List<ReplyMessageBaseDto> listTaskItemDay(Integer taskId); List<ReplyMessageBaseDto> listTaskItemDay(Integer taskId);
List<TimeControlTaskItem> getByItemIdList(@Param("taskItemIds") List<Integer> taskItemIds);
} }
\ No newline at end of file
package com.pcloud.book.timecontrol.mapper; package com.pcloud.book.timecontrol.mapper;
import com.pcloud.book.timecontrol.entity.TimeControlTask;
import com.pcloud.book.timecontrol.vo.KeyWordTaskVO;
import com.pcloud.book.timecontrol.dto.BookTaskBindingDto; import com.pcloud.book.timecontrol.dto.BookTaskBindingDto;
import com.pcloud.book.timecontrol.dto.SubscribeTaskUserDTO;
import com.pcloud.book.timecontrol.dto.TaskCompletedDto;
import com.pcloud.book.timecontrol.dto.TaskDto; import com.pcloud.book.timecontrol.dto.TaskDto;
import com.pcloud.book.timecontrol.entity.TimeControlTask;
import com.pcloud.book.timecontrol.vo.KeyWordTaskVO;
import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -52,4 +54,13 @@ public interface TimeControlTaskMapper { ...@@ -52,4 +54,13 @@ public interface TimeControlTaskMapper {
TaskDto getTaskByIdAndWxUserId(@Param("relSkillId")Integer relSkillId, @Param("wxUserId")String wxUserId); TaskDto getTaskByIdAndWxUserId(@Param("relSkillId")Integer relSkillId, @Param("wxUserId")String wxUserId);
Integer getSubscribeState(@Param("relSkillId")Integer relSkillId, @Param("wxUserId")String wxUserId); Integer getSubscribeState(@Param("relSkillId")Integer relSkillId, @Param("wxUserId")String wxUserId);
Integer getTaskCompletedCount(@Param("taskName") String taskName,@Param("proLabelId") Integer proLabelId, @Param("depLabelId") Integer depLabelId, @Param("purLabelId") Integer purLabelId);
List<TaskCompletedDto> listTaskCompleted4Pcloud(@Param("pageNum") Integer pageNum, @Param("numPerPage") Integer numPerPage, @Param("taskName") String taskName, @Param("proLabelId") Integer proLabelId, @Param("depLabelId") Integer depLabelId, @Param("purLabelId") Integer purLabelId);
Integer getSubscribeCount(@Param("search") String search,@Param("taskId") Integer taskId,@Param("subscribeType") Integer subscribeType,@Param("wxIds") List<String> wxIds);
List<SubscribeTaskUserDTO> listTaskSubscribeUser4Pcloud(@Param("pageNum") Integer pageNum, @Param("numPerPage") Integer numPerPage, @Param("search") String search, @Param("taskId") Integer taskId,@Param("subscribeType") Integer subscribeType,@Param("wxIds") List<String> wxIds);
} }
\ No newline at end of file
package com.pcloud.book.timecontrol.mapper; package com.pcloud.book.timecontrol.mapper;
import com.pcloud.book.timecontrol.entity.TimeControlTaskSend; import com.pcloud.book.timecontrol.dto.SubscribeTaskUserDTO;
import com.pcloud.book.timecontrol.dto.TaskItemSendDto;
import com.pcloud.book.timecontrol.dto.TaskSendDto; import com.pcloud.book.timecontrol.dto.TaskSendDto;
import com.pcloud.book.timecontrol.dto.TaskSendUserDto;
import com.pcloud.book.timecontrol.entity.TimeControlTaskSend;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -40,4 +43,22 @@ public interface TimeControlTaskSendMapper { ...@@ -40,4 +43,22 @@ public interface TimeControlTaskSendMapper {
TimeControlTaskSend getById(Integer taskSendId); TimeControlTaskSend getById(Integer taskSendId);
Integer getNoCompletedItem(Integer taskId); Integer getNoCompletedItem(Integer taskId);
Integer todayTaskSendCount();
Integer todayTaskNotSendCount();
List<String> getTaskSendDateList(@Param("date") String date);
Integer getTaskItemSendCount(@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("robotWxId") String robotWxId,@Param("taskName") String taskName,@Param("sendContent") String sendContent);
List<TaskItemSendDto> listTaskItemSendRecord4Pcloud(@Param("pageNum") Integer pageNum, @Param("numPerPage") Integer numPerPage, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("robotWxId") String robotWxId, @Param("taskName") String taskName, @Param("sendContent") String sendContent);
Integer getTaskItemSendUserCount(@Param("wxIds") List<String> wxIds,@Param("taskItemId") Integer taskItemId, @Param("robotWxId") String robotWxId);
List<TaskSendUserDto> listTaskItemSendUser4Pcloud(@Param("pageNum") Integer pageNum, @Param("numPerPage") Integer numPerPage,@Param("wxIds") List<String> wxIds, @Param("taskItemId") Integer taskItemId, @Param("robotWxId") String robotWxId);
List<SubscribeTaskUserDTO> getTaskNoCompletedCount(@Param("wxIds") List<String> wxIds, @Param("taskId") Integer taskId);
Integer getNoCompletedCount(@Param("subscribeId") Integer subscribeId);
} }
...@@ -31,5 +31,4 @@ public interface TimeControlTaskSubscribeMapper { ...@@ -31,5 +31,4 @@ public interface TimeControlTaskSubscribeMapper {
void completedTaskById(Integer subscribeId); void completedTaskById(Integer subscribeId);
} }
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
<update id="update" parameterType="com.pcloud.book.pcloudkeyword.entity.PcloudRobotClassify"> <update id="update" parameterType="com.pcloud.book.pcloudkeyword.entity.PcloudRobotClassify">
update pcloud_robot set update pcloud_robot set
classify_name = #{classifyName} classify_name = #{classifyName},
is_delete = #{isDelete} is_delete = #{isDelete}
where id=#{id} where id=#{id}
</update> </update>
......
...@@ -76,4 +76,25 @@ ...@@ -76,4 +76,25 @@
where task_item_id = #{taskItemId,jdbcType=INTEGER} where task_item_id = #{taskItemId,jdbcType=INTEGER}
</select> </select>
<select id="list4TaskItemList" resultType="com.pcloud.book.timecontrol.dto.ReplyMessageDto">
select
task_item_id taskItemId,
app_id appId,
product_id productId,
img_url imgUrl,
file_name fileName,
file_url fileUrl,
text text,
link_url linkUrl,
message_type messageType, file_type fileType, size
from time_control_reply_message
where reply_type = #{replyType}
<if test="taskItemIds !=null and taskItemIds.size()>0">
AND task_item_id IN
<foreach collection="taskItemIds" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</if>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
</select> </select>
<select id="listTaskItemDay" resultType="com.pcloud.book.timecontrol.dto.ReplyMessageBaseDto"> <select id="listTaskItemDay" resultType="com.pcloud.book.timecontrol.dto.ReplyMessageBaseDto">
select id, task_id taskId, start_day startDay select id, task_id taskId, start_day startDay, send_hour sendHour
from time_control_task_item where task_id = #{taskId} from time_control_task_item where task_id = #{taskId}
order by startDay asc, send_hour asc order by startDay asc, send_hour asc
</select> </select>
...@@ -67,4 +67,14 @@ ...@@ -67,4 +67,14 @@
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</delete> </delete>
<select id="getByItemIdList" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from time_control_task_item
where id IN
<foreach collection="taskItemIds" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -233,4 +233,106 @@ ...@@ -233,4 +233,106 @@
now(), now(), #{proLabelId}, #{depLabelId}, #{purLabelId}, #{successSubscribeWord}, #{successUnSubscribeWord}) now(), now(), #{proLabelId}, #{depLabelId}, #{purLabelId}, #{successSubscribeWord}, #{successUnSubscribeWord})
</insert> </insert>
<select id="getTaskCompletedCount" resultType="java.lang.Integer">
SELECT ifnull(COUNT(1),0)
FROM time_control_task a
where 1=1
<if test="taskName != null">
and a.task_name like concat('%', #{taskName}, '%')
</if>
<if test="proLabelId != null">
AND a.pro_label_id = #{proLabelId}
</if>
<if test="depLabelId != null">
AND a.dep_label_id = #{depLabelId}
</if>
<if test="purLabelId != null">
AND a.pur_label_id = #{purLabelId}
</if>
</select>
<select id="listTaskCompleted4Pcloud" resultType="com.pcloud.book.timecontrol.dto.TaskCompletedDto">
SELECT
a.task_id taskId,
a.task_name taskName,
COUNT(distinct c.id) taskItemCount,
COUNT(DISTINCT d.wx_user_id) subscribePersonCount
FROM time_control_task a
LEFT JOIN time_control_task_item c ON a.task_id = c.task_id
LEFT JOIN time_control_task_subscribe d on a.task_id=d.task_id
WHERE 1=1
<if test="taskName != null">
and a.task_name like concat('%', #{taskName}, '%')
</if>
<if test="proLabelId != null">
AND a.pro_label_id = #{proLabelId}
</if>
<if test="depLabelId != null">
AND a.dep_label_id = #{depLabelId}
</if>
<if test="purLabelId != null">
AND a.pur_label_id = #{purLabelId}
</if>
GROUP BY
a.task_id
<if test="pageNum != null">
limit #{pageNum}, #{numPerPage}
</if>
</select>
<select id="getSubscribeCount" resultType="java.lang.Integer">
SELECT ifnull(COUNT(1),0)
FROM time_control_task_subscribe a
where 1=1
<if test="wxIds != null and wxIds.size()>0">
and a.wx_user_id IN
<foreach collection="wxIds" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</if>
<if test="subscribeType !=null">
and a.state=#{subscribeType}
</if>
and a.task_id=#{taskId}
</select>
<select id="listTaskSubscribeUser4Pcloud" resultType="com.pcloud.book.timecontrol.dto.SubscribeTaskUserDTO">
select t1.wxUserId wxUserId,
t1.subscribeState subscribeState,
ifnull(t2.completedCount,0) completedCount from
(select
wx_user_id wxUserId,
state subscribeState
FROM time_control_task_subscribe a
where 1=1
<if test="wxIds != null and wxIds.size()>0">
and a.wx_user_id IN
<foreach collection="wxIds" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</if>
<if test="subscribeType !=null">
and a.state=#{subscribeType}
</if>
and a.task_id=#{taskId}
)t1
left join
(
select wx_user_id wxId,count(1) completedCount
from time_control_task_send a where
1=1
<if test="wxIds != null and wxIds.size()>0">
and a.wx_user_id IN
<foreach collection="wxIds" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</if>
and a.task_id=#{taskId} and complete_state=1
GROUP BY wxId
)t2 on t1.wxUserId=t2.wxId
ORDER BY completedCount desc,wxUserId asc
<if test="pageNum != null">
limit #{pageNum}, #{numPerPage}
</if>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -19,13 +19,13 @@ ...@@ -19,13 +19,13 @@
<insert id="batchInsert" parameterType="com.pcloud.book.timecontrol.entity.TimeControlTaskSend" useGeneratedKeys="true" keyProperty="id"> <insert id="batchInsert" parameterType="com.pcloud.book.timecontrol.entity.TimeControlTaskSend" useGeneratedKeys="true" keyProperty="id">
insert into time_control_task_send insert into time_control_task_send
(wx_user_id, book_id, task_id, task_item_id, subscribe_id, send_day, send_state, create_time) (wx_user_id, book_id, task_id, task_item_id, subscribe_id, send_day, send_state, create_time, send_hour)
values values
<foreach collection="list" item="item" index="index" separator=","> <foreach collection="list" item="item" index="index" separator=",">
( (
#{item.wxUserId,jdbcType=VARCHAR}, #{item.bookId,jdbcType=INTEGER}, #{item.taskId,jdbcType=INTEGER}, #{item.wxUserId,jdbcType=VARCHAR}, #{item.bookId,jdbcType=INTEGER}, #{item.taskId,jdbcType=INTEGER},
#{item.taskItemId,jdbcType=INTEGER}, #{item.subscribeId,jdbcType=INTEGER}, #{item.sendDay,jdbcType=VARCHAR}, #{item.taskItemId,jdbcType=INTEGER}, #{item.subscribeId,jdbcType=INTEGER}, #{item.sendDay,jdbcType=VARCHAR},
#{item.sendState,jdbcType=INTEGER}, NOW() #{item.sendState,jdbcType=INTEGER}, NOW(), #{item.sendHour}
) )
</foreach> </foreach>
</insert> </insert>
...@@ -39,9 +39,8 @@ ...@@ -39,9 +39,8 @@
a.task_item_id taskItemId a.task_item_id taskItemId
from time_control_task_send a from time_control_task_send a
left join time_control_task_subscribe b on a.subscribe_id = b.id left join time_control_task_subscribe b on a.subscribe_id = b.id
LEFT JOIN time_control_task_item c on a.task_item_id=c.id
where a.send_state = 0 where a.send_state = 0
and CONCAT_WS(" ",a.send_day,SUBSTRING_INDEX(c.send_hour,":",1)) = DATE_FORMAT(NOW(), '%Y-%m-%d %H'); and CONCAT_WS(" ",a.send_day,SUBSTRING_INDEX(a.send_hour,":",1)) = DATE_FORMAT(NOW(), '%Y-%m-%d %H');
</select> </select>
...@@ -91,4 +90,143 @@ ...@@ -91,4 +90,143 @@
WHERE task_id =#{taskId} WHERE task_id =#{taskId}
and complete_state !=1 AND send_state !=2 and complete_state !=1 AND send_state !=2
</select> </select>
<select id="todayTaskSendCount" resultType="java.lang.Integer">
SELECT ifnull(COUNT(1),0) FROM time_control_task_send WHERE send_state = 1
AND send_day =DATE_FORMAT(NOW(), '%Y-%m-%d')
</select>
<select id="todayTaskNotSendCount" resultType="java.lang.Integer">
SELECT ifnull(COUNT(1),0) FROM time_control_task_send WHERE send_state = 0
AND send_day =DATE_FORMAT(NOW(), '%Y-%m-%d')
</select>
<select id="getTaskSendDateList" resultType="java.lang.String">
SELECT DISTINCT send_day from time_control_task_send where SUBSTRING_INDEX(send_day,"-",2)=#{date}
ORDER BY send_day
</select>
<select id="getTaskItemSendCount" resultType="java.lang.Integer">
select count(1) from (
select c.robot_wx_id
from
time_control_task_send a LEFT JOIN
time_control_task b on a.task_id=b.task_id
LEFT JOIN time_control_task_subscribe c on a.subscribe_id=c.id
LEFT JOIN time_control_reply_message d on a.task_item_id=d.task_item_id
where 1=1
<if test="startTime !=null">
and a.send_day <![CDATA[ >= ]]> STR_TO_DATE(#{startTime},'%Y-%m-%d')
</if>
<if test="endTime !=null">
and a.send_day <![CDATA[ <= ]]> STR_TO_DATE(#{endTime},'%Y-%m-%d')
</if>
<if test="robotWxId !=null">
and c.robot_wx_id=#{robotWxId}
</if>
<if test="taskName !=null">
and b.task_name like concat('%', #{taskName}, '%')
</if>
<if test="sendContent !=null">
and d.text like concat('%', #{sendContent}, '%')
</if>
group by
a.task_item_id,c.robot_wx_id
)s
</select>
<select id="listTaskItemSendRecord4Pcloud" resultType="com.pcloud.book.timecontrol.dto.TaskItemSendDto">
select
a.task_id taskId,
b.task_name taskName,
a.task_item_id taskItemId,
c.robot_wx_id robotWxId,
ifnull(count(DISTINCT a.wx_user_id),0) sendPersonCount,
e.create_time createTime
from
time_control_task_send a LEFT JOIN
time_control_task b on a.task_id=b.task_id
LEFT JOIN time_control_task_subscribe c on a.subscribe_id=c.id
LEFT JOIN time_control_reply_message d on a.task_item_id=d.task_item_id
LEFT JOIN time_control_task_item e on a.task_item_id = e.id
where 1=1
<if test="startTime !=null">
and a.send_day <![CDATA[ >= ]]> STR_TO_DATE(#{startTime},'%Y-%m-%d')
</if>
<if test="endTime !=null">
and a.send_day <![CDATA[ <= ]]> STR_TO_DATE(#{endTime},'%Y-%m-%d')
</if>
<if test="robotWxId !=null">
and c.robot_wx_id=#{robotWxId}
</if>
<if test="taskName !=null">
and b.task_name like concat('%', #{taskName}, '%')
</if>
<if test="sendContent !=null">
and d.text like concat('%', #{sendContent}, '%')
</if>
GROUP BY
a.task_item_id,c.robot_wx_id
<if test="pageNum != null">
limit #{pageNum}, #{numPerPage}
</if>
</select>
<select id="getTaskItemSendUserCount" resultType="java.lang.Integer">
SELECT ifnull(COUNT(DISTINCT a.wx_user_id),0) FROM time_control_task_send a
LEFT JOIN time_control_task_subscribe b ON a.subscribe_id = b.id
where 1=1
<if test="wxIds != null and wxIds.size()>0">
and a.wx_user_id IN
<foreach collection="wxIds" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</if>
and a.task_item_id=#{taskItemId} AND b.robot_Wx_id = #{robotWxId}
</select>
<select id="listTaskItemSendUser4Pcloud" resultType="com.pcloud.book.timecontrol.dto.TaskSendUserDto">
SELECT
a.task_id taskId,
a.task_item_id taskItemId,
a.wx_user_id wxUserId,
a.send_state sendState, a.send_day sendDay, a.send_hour sendHour
FROM time_control_task_send a
LEFT JOIN time_control_task_subscribe b on a.subscribe_id = b.id
where 1=1
<if test="wxIds != null and wxIds.size()>0">
and a.wx_user_id IN
<foreach collection="wxIds" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</if>
and a.task_item_id=#{taskItemId} AND b.robot_wx_id = #{robotWxId}
<if test="pageNum != null">
limit #{pageNum}, #{numPerPage}
</if>
</select>
<select id="getTaskNoCompletedCount" resultType="com.pcloud.book.timecontrol.dto.SubscribeTaskUserDTO">
select
wx_user_id wxUserId,
ifnull(count(1),0) noCompletedCount
from time_control_task_send
where task_id=#{taskId}
and complete_state=0
and send_state !=2
<if test="wxIds !=null and wxIds.size()>0">
and wx_user_id IN
<foreach collection="wxIds" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</if>
group by wx_user_id
</select>
<select id="getNoCompletedCount" resultType="java.lang.Integer">
select ifnull(count(1),0)
from time_control_task_send
WHERE subscribe_id =#{subscribeId}
and complete_state !=1 AND send_state !=2
</select>
</mapper> </mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment