diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/UpdateViewTimeFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/UpdateViewTimeFormDTO.java index c2ca21208e..c397dc8d08 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/UpdateViewTimeFormDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/UpdateViewTimeFormDTO.java @@ -9,21 +9,35 @@ import java.io.Serializable; /** * @Author zxc * @DateTime 2021/8/3 10:55 上午 - * @DESC + * @DESC 报事-首次查看事件-两端通用 */ @Data public class UpdateViewTimeFormDTO implements Serializable { private static final long serialVersionUID = 7104400078458366322L; + public interface AddUserInternalGroup { + } + public interface GovInternalGroup { + } - public interface UpdateViewTimeForm{} + // 居民端:resi_user;工作端:staff + @NotBlank(message = "viewType不能为空", groups = AddUserInternalGroup.class) + private String viewType; + @NotBlank(message = "eventId不能为空", groups = AddUserInternalGroup.class) + private String eventId; + @NotBlank(message = "orgId不能为空", groups = GovInternalGroup.class) + private String orgId; + //以下参数从token中获取 /** - * 居民端用户:resi_user;工作人员:staff + * 当前用户id */ - @NotBlank(message = "viewType不能为空",groups = UpdateViewTimeForm.class) - private String viewType; + @NotBlank(message = "userId不能为空", groups = AddUserInternalGroup.class) + private String userId; - @NotBlank(message = "事件ID不能为空",groups = UpdateViewTimeForm.class) - private String eventId; + /** + * 当前客户id + */ + @NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class) + private String customerId; } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ResiEventAction.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ResiEventAction.java index ff9f721e1e..b7e1faa0ff 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ResiEventAction.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ResiEventAction.java @@ -22,7 +22,7 @@ public enum ResiEventAction { SHIFIT_PROJECT ( "shift_project","立项"), CLOSE_CASE ( "close_case","办结"), CHOOSE_RESOLVE ( "choose_resolve","选择是否解决"), - READ( "read","查看事件"); + READ_FIRST( "read_first","首次查看事件"); private String code; diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventController.java index 98bfe74b10..e868c85459 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventController.java @@ -21,6 +21,7 @@ import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.constant.EventConstant; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.service.ResiEventService; @@ -139,14 +140,19 @@ public class ResiEventController { } /** - * @Description 查看报事时,更新时间操作 + * @Description 报事-首次查看事件-两端通用 * @Param formDTO * @author zxc * @date 2021/8/3 11:01 上午 */ @PostMapping("updateviewtime") - public Result updateViewTime(@RequestBody UpdateViewTimeFormDTO formDTO){ - ValidatorUtils.validateEntity(formDTO, UpdateViewTimeFormDTO.UpdateViewTimeForm.class); + public Result updateViewTime(@LoginUser TokenDto tokenDto,@RequestBody UpdateViewTimeFormDTO formDTO){ + formDTO.setUserId(tokenDto.getUserId()); + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO,UpdateViewTimeFormDTO.AddUserInternalGroup.class); + if(EventConstant.STAFF.equals(formDTO.getViewType())){ + ValidatorUtils.validateEntity(formDTO,UpdateViewTimeFormDTO.GovInternalGroup.class); + } resiEventService.updateViewTime(formDTO); return new Result(); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventMentionDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventMentionDao.java index 981cee667a..6580567b78 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventMentionDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventMentionDao.java @@ -44,4 +44,15 @@ public interface ResiEventMentionDao extends BaseDao { * @date 2021/8/4 9:54 */ List selectMentionList(@Param("userId")String userId, @Param("readFlag")String readFlag); + + /** + * 人大代表从未读-》已读,首次查看事件 + * + * @param eventId + * @param userId + * @return int + * @author yinzuomei + * @date 2021/8/4 16:37 + */ + int updateReadFlag(@Param("eventId") String eventId, @Param("userId")String userId); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventOperationLogDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventOperationLogDao.java index 6432b2dbb6..d6e16450a0 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventOperationLogDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventOperationLogDao.java @@ -20,6 +20,9 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.entity.ResiEventOperationLogEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 事件操作日志表 @@ -29,5 +32,16 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface ResiEventOperationLogDao extends BaseDao { - + + /** + * 查询事件操作日志 + * + * @param eventId + * @param userId + * @param actionCode + * @return com.epmet.entity.ResiEventOperationLogEntity + * @author yinzuomei + * @date 2021/8/4 16:44 + */ + List selectByUserAction(@Param("eventId") String eventId, @Param("userId")String userId, @Param("actionCode")String actionCode); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventReportOrgDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventReportOrgDao.java index b8d9776cab..5d8a5044a5 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventReportOrgDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventReportOrgDao.java @@ -20,6 +20,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.entity.ResiEventReportOrgEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 事件相关组织表 @@ -29,5 +30,15 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface ResiEventReportOrgDao extends BaseDao { - + + /** + * 工作人员从待处理=》处理中 + * + * @param eventId + * @param orgId + * @return int + * @author yinzuomei + * @date 2021/8/4 16:40 + */ + int updateReadFlag(@Param("eventId") String eventId, @Param("orgId") String orgId,@Param("userId") String userId); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ResiEventService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ResiEventService.java index 604375b0fb..596609d158 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ResiEventService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ResiEventService.java @@ -24,7 +24,7 @@ public interface ResiEventService extends BaseService { List eventList(EventListFormDTO formDTO); /** - * @Description 查看报事时,更新时间操作 + * @Description 报事-首次查看事件-两端通用 * @Param formDTO * @author zxc * @date 2021/8/3 11:01 上午 diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java index ce21f19a58..1c41b517fb 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java @@ -102,14 +102,38 @@ public class ResiEventServiceImpl extends BaseServiceImpl logEntityList = resiEventOperationLogDao.selectByUserAction(formDTO.getEventId(), formDTO.getUserId(), ResiEventAction.READ_FIRST.getCode()); + if (CollectionUtils.isEmpty(logEntityList)) { + ResiEventOperationLogEntity publishLog=new ResiEventOperationLogEntity(); + publishLog.setCustomerId(formDTO.getCustomerId()); + publishLog.setResiEventId(formDTO.getEventId()); + publishLog.setUserId(formDTO.getUserId()); + publishLog.setUserIdentity(formDTO.getViewType()); + publishLog.setActionCode(ResiEventAction.READ_FIRST.getCode()); + publishLog.setActionDesc(ResiEventAction.READ_FIRST.getDesc()); + publishLog.setOperateTime(new Date()); + publishLog.setCreatedTime(publishLog.getOperateTime()); + resiEventOperationLogDao.insert(publishLog); + } } /** diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.16__create_resievent_tables.sql b/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.16__create_resievent_tables.sql index 8aa3fab8d9..ae83c130fd 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.16__create_resievent_tables.sql +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.16__create_resievent_tables.sql @@ -115,8 +115,8 @@ CREATE TABLE `resi_event_operation_log` ( `RESI_EVENT_ID` varchar(64) NOT NULL COMMENT '事件id', `USER_ID` varchar(64) NOT NULL COMMENT '用户id', `USER_IDENTITY` varchar(32) NOT NULL COMMENT '居民端用户:resi_user;工作人员:staff;报事人:report_user', - `ACTION_CODE` varchar(32) NOT NULL COMMENT '1、发布事件:publish;\r\n2、撤回事件:recall;\r\n3、复:reply;\r\n4、立项:shift_project;\r\n5、办结:close_case;\r\n6、选择是否已解决:choose_resolve;\r\n7、查看阅读事件:read:人大代表未读=>已读;工作人员待处理=>处理中;\r\n', - `ACTION_DESC` varchar(32) NOT NULL COMMENT '1、发布事件:publish;\r\n2、撤回事件:recall;\r\n3、复:reply;\r\n4、立项:shift_project;\r\n5、办结:close_case;\r\n6、选择是否已解决:choose_resolve;\r\n7、查看阅读事件:read:人大代表未读=>已读;工作人员待处理=>处理中;', + `ACTION_CODE` varchar(32) NOT NULL COMMENT '1、发布事件:publish;\r\n2、撤回事件:recall;\r\n3、复:reply;\r\n4、立项:shift_project;\r\n5、办结:close_case;\r\n6、选择是否已解决:choose_resolve;\r\n7、首次查看阅读事件:read_first:人大代表未读=>已读;工作人员待处理=>处理中;\r\n', + `ACTION_DESC` varchar(32) NOT NULL COMMENT '1、发布事件:publish;\r\n2、撤回事件:recall;\r\n3、复:reply;\r\n4、立项:shift_project;\r\n5、办结:close_case;\r\n6、选择是否已解决:choose_resolve;\r\n7、首次查看阅读事件:read_first:人大代表未读=>已读;工作人员待处理=>处理中;', `OPERATE_TIME` datetime NOT NULL COMMENT '操作时间', `DEL_FLAG` varchar(1) NOT NULL DEFAULT '0' COMMENT '删除标识 1删除;0未删除', `REVISION` int(11) NOT NULL COMMENT '乐观锁', diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventMentionDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventMentionDao.xml index 7a4f145c75..3de3934948 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventMentionDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventMentionDao.xml @@ -54,4 +54,15 @@ + + + UPDATE resi_event_mention + SET READ_FLAG = 'read', + UPDATED_BY = #{userId}, + UPDATED_TIME = NOW() + WHERE + RESI_EVENT_ID = #{eventId} + AND USER_ID = #{userId} + AND DEL_FLAG = '0' + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventOperationLogDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventOperationLogDao.xml index 12d1f0ce48..29052bcccb 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventOperationLogDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventOperationLogDao.xml @@ -2,7 +2,13 @@ - + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventReportOrgDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventReportOrgDao.xml index 7c8b96db9e..9ff79fe891 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventReportOrgDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventReportOrgDao.xml @@ -4,5 +4,14 @@ - + + UPDATE resi_event_report_org + SET READ_FLAG = 'read', + UPDATED_BY = #{userId}, + UPDATED_TIME = NOW() + WHERE + RESI_EVENT_ID = #{eventId} + AND ORG_ID = #{orgId} + AND DEL_FLAG = '0' + \ No newline at end of file