Browse Source

书记日志-消息提醒弹框列表接口初版

dev
sunyuchao 3 years ago
parent
commit
0663b09b34
  1. 34
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/MemosToRemindFormDTO.java
  2. 42
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/MemosToRemindResultDTO.java
  3. 41
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttrController.java
  4. 16
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoAttrDao.java
  5. 20
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttrService.java
  6. 40
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttrServiceImpl.java
  7. 88
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml

34
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/MemosToRemindFormDTO.java

@ -0,0 +1,34 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
/**
* @Author sun
* @Description 书记日志-待提醒弹框-提醒内容列表-接口入参
**/
@Data
public class MemosToRemindFormDTO implements Serializable {
private static final long serialVersionUID = 4859779755214502427L;
public interface MemoAttr extends CustomerClientShowGroup {}
/**
* 待提醒业务Id
*/
@NotBlank(message = "待提醒业务Id不能为空", groups = { MemoAttr.class })
private String memoId;
/**
* 到期提醒时间,不传值默认查询当前时间之前的数据yyyy-MM-dd
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private String remindTime;
//token中用户Id
private String userId;
}

42
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/MemosToRemindResultDTO.java

@ -0,0 +1,42 @@
package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Author sun
* @Description 书记日志-待提醒弹框-提醒内容列表-接口返参
**/
@Data
@AllArgsConstructor
public class MemosToRemindResultDTO implements Serializable {
private static final long serialVersionUID = 4769136806332933579L;
/**
* 对应业务数据Id
*/
private String memoId;
/**
* 业务类型 人员关怀concern难点堵点difficulty工作日志work_diary
*/
private String type;
/**
* 业务类型 人员关怀concern难点堵点difficulty工作日志work_diary
*/
private String typeName;
/**
* 提醒内容
*/
private String content;
/**
* 提醒时间日期类型
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private String remindTime;
}

41
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttrController.java

@ -1,7 +1,9 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
@ -9,10 +11,16 @@ import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.MemoAttrDTO;
import com.epmet.dto.form.MemosToRemindFormDTO;
import com.epmet.dto.form.ProjectByCreateTopicUserFormDTO;
import com.epmet.dto.form.ShiftProjectFormDTO;
import com.epmet.dto.result.IssueProjectResultDTO;
import com.epmet.dto.result.MemosToRemindResultDTO;
import com.epmet.service.MemoAttrService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@ -67,6 +75,39 @@ public class MemoAttrController {
return new Result();
}
/**
* @Author sun
* @Description 书记日志-待提醒弹框-提醒内容列表
**/
@PostMapping("memosToRemind")
public Result<List<MemosToRemindResultDTO>> memosToRemind(@RequestBody MemosToRemindFormDTO formDTO) {
//public Result<List<MemosToRemindResultDTO>> memosToRemind(@LoginUser TokenDto tokenDTO, @RequestBody MemosToRemindFormDTO formDTO) {
//formDTO.setUserId(tokenDTO.getUserId());
formDTO.setUserId("111");
return new Result<List<MemosToRemindResultDTO>>().ok(memoAttrService.memosToRemind(formDTO));
}
/**
* @Author sun
* @Description 书记日志-待提醒时间列表
**/
@PostMapping("memoTime")
public Result<List<String>> memoTime() {
return new Result<List<String>>().ok(memoAttrService.memoTime("111"));
/*public Result<List<String>> memoTime(@LoginUser TokenDto tokenDTO) {
return new Result<List<String>>().ok(memoAttrService.memoTime(tokenDTO.getUserId()));*/
}
/**
* @Author sun
* @Description 书记日志-提醒列表-我知道了
**/
@PostMapping("setReaded")
public Result setReaded(@RequestBody MemosToRemindFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, MemosToRemindFormDTO.MemoAttr.class);
memoAttrService.setReaded(formDTO.getMemoId());
return new Result();
}
}

16
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoAttrDao.java

@ -1,8 +1,13 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.MemosToRemindResultDTO;
import com.epmet.entity.MemoAttrEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* 备忘录-属性表
@ -13,4 +18,15 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface MemoAttrDao extends BaseDao<MemoAttrEntity> {
/**
* @Author sun
* @Description 查询提醒内容列表有时间的按时间查询没有的查询当前日期之前的数据
**/
List<MemosToRemindResultDTO> memosToRemind(@Param("remindTime") String remindTime, @Param("userId") String userId);
/**
* @Author sun
* @Description 查询某个人当前日期之后当日0点之前待提醒时间节点列表
**/
List<String> memoTime(@Param("userId") String userId);
}

20
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttrService.java

@ -3,6 +3,8 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.MemoAttrDTO;
import com.epmet.dto.form.MemosToRemindFormDTO;
import com.epmet.dto.result.MemosToRemindResultDTO;
import com.epmet.entity.MemoAttrEntity;
import java.util.List;
@ -75,4 +77,22 @@ public interface MemoAttrService extends BaseService<MemoAttrEntity> {
* @date 2022-03-15
*/
void delete(String[] ids);
/**
* @Author sun
* @Description 书记日志-待提醒弹框-提醒内容列表
**/
List<MemosToRemindResultDTO> memosToRemind(MemosToRemindFormDTO formDTO);
/**
* @Author sun
* @Description 书记日志-待提醒时间列表
**/
List<String> memoTime(String userId);
/**
* @Author sun
* @Description 书记日志-提醒列表-我知道了
**/
void setReaded(String memoId);
}

40
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttrServiceImpl.java

@ -4,12 +4,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.MemoAttrDao;
import com.epmet.dto.MemoAttrDTO;
import com.epmet.dto.form.MemosToRemindFormDTO;
import com.epmet.dto.result.MemosToRemindResultDTO;
import com.epmet.entity.MemoAttrEntity;
import com.epmet.service.MemoAttrService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -25,6 +29,7 @@ import java.util.Map;
* @since v1.0.0 2022-03-15
*/
@Service
@Slf4j
public class MemoAttrServiceImpl extends BaseServiceImpl<MemoAttrDao, MemoAttrEntity> implements MemoAttrService {
@ -80,4 +85,39 @@ public class MemoAttrServiceImpl extends BaseServiceImpl<MemoAttrDao, MemoAttrEn
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @Author sun
* @Description 书记日志-待提醒弹框-提醒内容列表
**/
@Override
public List<MemosToRemindResultDTO> memosToRemind(MemosToRemindFormDTO formDTO) {
//1.查询提醒内容列表,有时间的按时间查询,没有的查询当前日期之前的数据
List<MemosToRemindResultDTO> resultList = baseDao.memosToRemind(formDTO.getRemindTime(), formDTO.getUserId());
return resultList;
}
/**
* @Author sun
* @Description 书记日志-待提醒时间列表
**/
@Override
public List<String> memoTime(String userId) {
List<String> resultList = baseDao.memoTime(userId);
return resultList;
}
/**
* @Author sun
* @Description 书记日志-提醒列表-我知道了
**/
@Override
public void setReaded(String memoId) {
MemoAttrEntity entity = new MemoAttrEntity();
entity.setId(memoId);
entity.setReadFlag(NumConstant.ONE);
if (baseDao.updateById(entity) < NumConstant.ONE) {
log.warn(String.format("书记日志-提醒列表-修改阅读状态失败,提醒记录Id", memoId));
}
}
}

88
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml

@ -3,6 +3,94 @@
<mapper namespace="com.epmet.dao.MemoAttrDao">
<select id="memosToRemind" resultType="com.epmet.dto.result.MemosToRemindResultDTO">
SELECT a.memoId, a.remindTime, a.type, a.typeName, a.content FROM (
SELECT
ma.id memoId,
ma.remind_time remindTime,
ma.type type,
'人员关怀' typeName,
mc.content content
FROM
memo_attr ma
INNER JOIN memo_concern mc ON ma.type = 'concern' AND ma.id = mc.id
WHERE
ma.del_flag = '0'
AND mc.del_flag = '0'
AND ma.read_flag = '0'
AND ma.receiver = #{userId}
<choose>
<when test='remindTime != "" and remindTime != null'>
AND ma.remind_time = #{remindTime}
</when>
<otherwise>
AND ma.remind_time <![CDATA[<=]]> NOW()
</otherwise>
</choose>
UNION ALL
SELECT
ma.id memoId,
ma.remind_time remindTime,
ma.type type,
'难点堵点' typeName,
md.content content
FROM
memo_attr ma
INNER JOIN memo_difficulty md ON ma.type = 'difficulty' AND ma.id = md.id
WHERE
ma.del_flag = '0'
AND md.del_flag = '0'
AND ma.read_flag = '0'
AND ma.receiver = #{userId}
<choose>
<when test='remindTime != "" and remindTime != null'>
AND ma.remind_time = #{remindTime}
</when>
<otherwise>
AND ma.remind_time <![CDATA[<=]]> NOW()
</otherwise>
</choose>
UNION ALL
SELECT
ma.id memoId,
ma.remind_time remindTime,
ma.type type,
'工作日志' typeName,
mwd.content content
FROM
memo_attr ma
INNER JOIN memo_work_diary mwd ON ma.type = 'work_diary' AND ma.id = mwd.id
WHERE
ma.del_flag = '0'
AND mwd.del_flag = '0'
AND ma.read_flag = '0'
AND ma.receiver = #{userId}
<choose>
<when test='remindTime != "" and remindTime != null'>
AND ma.remind_time = #{remindTime}
</when>
<otherwise>
AND ma.remind_time <![CDATA[<=]]> NOW()
</otherwise>
</choose>
) a ORDER BY a.remindTime ASC
</select>
<select id="memoTime" resultType="java.lang.String">
SELECT
DATE_FORMAT(remind_time, '%Y-%m-%d %H:%i:%s') remindTime
FROM
memo_attr
WHERE
del_flag = '0'
AND receiver = #{userId}
AND remind_time > NOW()
AND remind_time <![CDATA[<]]> CURDATE() + 1
ORDER BY remind_time ASC
</select>
</mapper>
Loading…
Cancel
Save