From a681f3ea91d44f1e048c6e51fd275fbdaf54f0dc Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Tue, 23 Jun 2020 10:29:24 +0800 Subject: [PATCH] 0623 --- .../com/ccsens/tall/bean/dto/MemberDto.java | 24 +++++++- .../com/ccsens/tall/bean/dto/ProjectDto.java | 4 ++ .../com/ccsens/tall/bean/dto/RingDto.java | 6 ++ .../com/ccsens/tall/bean/vo/ProjectVo.java | 15 +++++ .../java/com/ccsens/tall/bean/vo/RingVo.java | 25 ++++++-- .../tall/service/IProMemberService.java | 16 +++++ .../com/ccsens/tall/service/IRingService.java | 30 ++++++++- .../ccsens/tall/service/ProMemberService.java | 44 +++++++++++++ .../ccsens/tall/service/ProjectService.java | 60 ++++++++++-------- .../com/ccsens/tall/service/RingService.java | 61 ++++++++++++++++--- .../com/ccsens/tall/web/MemberController.java | 31 ++++++++-- .../ccsens/tall/web/MemberRoleController.java | 2 +- .../ccsens/tall/web/ProjectController.java | 16 ++--- .../com/ccsens/tall/web/RingController.java | 16 ++++- .../ccsens/tall/web/UserInfoController.java | 2 +- tall/src/main/resources/application.yml | 4 +- .../resources/mapper_dao/SysProjectDao.xml | 6 +- .../test/java/com/ccsens/util/Base64Test.java | 8 +-- 18 files changed, 302 insertions(+), 68 deletions(-) diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/MemberDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/MemberDto.java index 300e6fd7..21721c06 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/MemberDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/MemberDto.java @@ -15,7 +15,7 @@ import java.util.List; @Data public class MemberDto { @Data - @ApiModel("添加评论") + @ApiModel("添加成员") public static class SaveMember{ @ApiModelProperty("项目id") private Long projectId; @@ -29,4 +29,26 @@ public class MemberDto { private Long stakeholderId; } + + @Data + @ApiModel("删除成员") + public static class DeleteMember{ + @ApiModelProperty("成员id") + private Long memberId; + } + + @Data + @ApiModel("修改成员信息") + public static class UpdateMemberInfo{ + @ApiModelProperty("成员id") + private Long memberId; + @ApiModelProperty("成员名") + private String memberName; + @ApiModelProperty("成员手机号") + private String phone; + @ApiModelProperty("所属角色的id") + private List roleId; + @ApiModelProperty("奖惩干系人id") + private Long stakeholderId; + } } diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/ProjectDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/ProjectDto.java index bdbaeaba..b1d93ddd 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/ProjectDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/ProjectDto.java @@ -66,5 +66,9 @@ public class ProjectDto { private String description; @ApiModelProperty("被修改的项目的地址") private String address; + @ApiModelProperty("项目开始时间") + private String beginTime; + @ApiModelProperty("项目结束时间") + private String endTime; } } diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/RingDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/RingDto.java index a24cd121..289fc311 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/RingDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/RingDto.java @@ -42,4 +42,10 @@ public class RingDto { @ApiModelProperty("消息id") private List messageIdList; } + @Data + @ApiModel("将项目内的消息设为已读") + public static class ReadMessageByProjectId{ + @ApiModelProperty("项目id") + private Long projectId; + } } diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java index 8e57cd2b..5d9ad382 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java @@ -40,6 +40,8 @@ public class ProjectVo { private ProjectConfig projectConfig; @ApiModelProperty("标签信息") private List labelList; + @ApiModelProperty("未处理信息的数量") + private ProjectUnreadMsg projectUnreadMsg; public Long getTotalDuration(){ if(ObjectUtil.isNotNull(endTime) && ObjectUtil.isNotNull(beginTime)){ @@ -84,6 +86,19 @@ public class ProjectVo { } } + @Data + @ApiModel("项目下未处理的消息数量") + public static class ProjectUnreadMsg{ + @ApiModelProperty("未处理的消息总数") + private Integer totalNum; + @ApiModelProperty("ring消息") + private Integer ringNum; + @ApiModelProperty("check消息") + private Integer checkNum; + @ApiModelProperty("交付物消息") + private Integer deliverNum; + } + @ApiModel @Data public static class ProjectConfig{ diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/RingVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/RingVo.java index c9b3050d..70b530a1 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/RingVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/RingVo.java @@ -21,16 +21,16 @@ public class RingVo { private Integer size ; } @Data - @ApiModel("返回ring消息") + @ApiModel("查找ring消息") public static class RingInfo{ @ApiModelProperty("消息id") private Long messageId; @ApiModelProperty("消息内容") - private String value ; + private String value; @ApiModelProperty("消息发送时间") - private Long time ; + private Long time; @ApiModelProperty("是否是自己发送的消息") - private Integer mine ; + private Integer mine; @ApiModelProperty("未读数量") private Integer unread; @ApiModelProperty("发送者信息") @@ -40,7 +40,7 @@ public class RingVo { } @Data - @ApiModel("接收/发送者信息") + @ApiModel("发送者信息") public static class MsgReceiveRole{ @ApiModelProperty("接收者的角色id") private Long id; @@ -51,7 +51,7 @@ public class RingVo { } @Data - @ApiModel("接收/发送者信息") + @ApiModel("接收者信息") public static class MsgSender{ @ApiModelProperty("发送者的id") private Long id; @@ -60,4 +60,17 @@ public class RingVo { @ApiModelProperty("发送者的头像") private String avatarUrl; } + + @Data + @ApiModel("发送后返回消息详情") + public static class RingInfoByReturn{ + @ApiModelProperty("消息id") + private Long messageId; + @ApiModelProperty("消息内容") + private String value; + @ApiModelProperty("消息发送时间") + private Long time; + @ApiModelProperty("接收角色的信息") + private List roleList = new ArrayList<>(); + } } diff --git a/tall/src/main/java/com/ccsens/tall/service/IProMemberService.java b/tall/src/main/java/com/ccsens/tall/service/IProMemberService.java index 493832ef..62975830 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProMemberService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProMemberService.java @@ -35,6 +35,22 @@ public interface IProMemberService { * 添加成员 * @param currentUserId userId * @param saveMember 项目id,角色id,成员姓名和手机号等 + * @throws Exception 权限不足异常 */ void saveProMember(Long currentUserId, MemberDto.SaveMember saveMember) throws Exception; + + /** + * 删除成员 + * @param currentUserId userId + * @param deleteMember 被删除的成员的id + */ + void deleteMember(Long currentUserId, MemberDto.DeleteMember deleteMember); + + /** + * 修改成员的信息 + * @param currentUserId userId + * @param updateMemberInfo 需要修改的信息 + * @return 返回修改后的成员信息 + */ + ProjectVo.MembersByProject updateMemberInfo(Long currentUserId, MemberDto.UpdateMemberInfo updateMemberInfo); } diff --git a/tall/src/main/java/com/ccsens/tall/service/IRingService.java b/tall/src/main/java/com/ccsens/tall/service/IRingService.java index 0f9dbca2..4fba61ad 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IRingService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IRingService.java @@ -8,9 +8,37 @@ import com.github.pagehelper.PageInfo; import java.util.List; public interface IRingService { - void sendRingMsg(Long currentUserId, RingDto.RingSendDto ringSendDto) throws Exception; + /** + * 发送消息 + * @param currentUserId userId + * @param ringSendDto 发送的消息内容 + * @return 返回发送的消息详细信息 + * @throws Exception json异常 + */ + RingVo.RingInfoByReturn sendRingMsg(Long currentUserId, RingDto.RingSendDto ringSendDto) throws Exception; + /** + * 查找ring消息 + * @param currentUserId userId + * @param getRingDto 项目id和分页信息 + * @return 分页查找的消息详情 + */ PageInfo getRingInfo(Long currentUserId, RingDto.GetRingDto getRingDto); + /** + * 阅读消息 + * @param currentUserId userId + * @param message 消息id + * @return 返回已读的消息的信息 + * @throws JsonProcessingException json异常 + */ List readRingMsg(Long currentUserId, RingDto.MessageId message) throws JsonProcessingException; + + /** + * 将项目下的消息全部已读 + * @param currentUserId userId + * @param projectId 项目id + * @throws Exception json异常 + */ + void readRingMsgByProjectId(Long currentUserId, Long projectId) throws Exception; } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProMemberService.java b/tall/src/main/java/com/ccsens/tall/service/ProMemberService.java index ec801469..e19ed570 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProMemberService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProMemberService.java @@ -265,4 +265,48 @@ public class ProMemberService implements IProMemberService { throw new BaseException(CodeEnum.NOT_POWER); } } + + @Override + public void deleteMember(Long currentUserId, MemberDto.DeleteMember deleteMember) { + //查找要删除的成员 + ProMember proMember = proMemberDao.selectByPrimaryKey(deleteMember.getMemberId()); + if(ObjectUtil.isNull(proMember)){ + throw new BaseException(CodeEnum.NOT_MEMBER); + } + //检查操作者的权限 + int power = proRoleService.selectPowerByRoleName(currentUserId, proMember.getProjectId()); +// if (power < 2) { +// throw new BaseException(CodeEnum.NOT_POWER); +// } + //修改成员状态来删除 + proMember.setRecStatus((byte) 2); + proMemberDao.updateByPrimaryKeySelective(proMember); + //删除成员和角色关联信息 + ProMemberRoleExample proMemberRoleExample = new ProMemberRoleExample(); + proMemberRoleExample.createCriteria().andMemberIdEqualTo(proMember.getId()); + List proMemberRoleList = proMemberRoleDao.selectByExample(proMemberRoleExample); + if(CollectionUtil.isNotEmpty(proMemberRoleList)){ + proMemberRoleList.forEach(proMemberRole -> { + proMemberRole.setRecStatus((byte) 2); + proMemberRoleDao.updateByPrimaryKeySelective(proMemberRole); + }); + } + //删除成员关注项目的信息 + UserAttentionExample userAttentionExample = new UserAttentionExample(); + userAttentionExample.createCriteria().andUserIdEqualTo(proMember.getUserId()).andProjectIdEqualTo(proMember.getProjectId()); + List userAttentionList = userAttentionDao.selectByExample(userAttentionExample); + if(CollectionUtil.isNotEmpty(userAttentionList)){ + userAttentionList.forEach(userAttention -> { + userAttention.setRecStatus((byte) 2); + userAttentionDao.updateByPrimaryKeySelective(userAttention); + }); + } + } + + @Override + public ProjectVo.MembersByProject updateMemberInfo(Long currentUserId, MemberDto.UpdateMemberInfo updateMemberInfo) { + return null; + } + + } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProjectService.java b/tall/src/main/java/com/ccsens/tall/service/ProjectService.java index 1beffc16..9fe2cee7 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProjectService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProjectService.java @@ -7,7 +7,6 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.ccsens.tall.bean.dto.ProjectDto; import com.ccsens.tall.bean.po.*; -import com.ccsens.tall.bean.vo.DomainVo; import com.ccsens.tall.bean.vo.LabelVo; import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.persist.dao.*; @@ -20,11 +19,11 @@ import com.ccsens.util.exception.BaseException; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.*; @@ -32,31 +31,31 @@ import java.util.*; @Service @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public class ProjectService implements IProjectService { - @Autowired + @Resource private SysProjectDao sysProjectDao; - @Autowired + @Resource private ProShowDao proShowDao; - @Autowired + @Resource private ProRoleExcludeDao roleExcludeDao; - @Autowired + @Resource private ProRoleDao proRoleDao; - @Autowired + @Resource private TaskDetailDao taskDetailDao; - @Autowired + @Resource private TaskSubTimeDao taskSubTimeDao; - @Autowired + @Resource private UserAttentionDao attentionDao; - @Autowired + @Resource private TaskPluginDao pluginDao; - @Autowired + @Resource private TaskDeliverDao taskDeliverDao; - @Autowired + @Resource private IProRoleService proRoleService; - @Autowired + @Resource private Snowflake snowflake; - @Autowired + @Resource private SysDomainDao sysDomainDao; - @Autowired + @Resource private SysLabelDao sysLabelDao; @Override @@ -71,13 +70,12 @@ public class ProjectService implements IProjectService { /** * 根据名字查找此用户创建的项目 - * - * @param subProject - * @param currentUserId - * @return + * @param subProject 项目名 + * @param currentUserId userId + * @return 项目信息 */ @Override - public SysProject selectByNameAndUserId(String subProject, Long currentUserId) throws Exception { + public SysProject selectByNameAndUserId(String subProject, Long currentUserId) { SysProject project = new SysProject(); SysProjectExample projectExample = new SysProjectExample(); projectExample.createCriteria().andCreatorIdEqualTo(currentUserId).andNameEqualTo(subProject); @@ -90,10 +88,9 @@ public class ProjectService implements IProjectService { /** * 查找本月哪一天有项目 - * - * @param currentUserId - * @param date - * @return + * @param currentUserId userId + * @param date 日期 + * @return 返回有项目的日期 */ @Override public List haveProjectDay(Long currentUserId, String date) throws Exception { @@ -109,13 +106,13 @@ public class ProjectService implements IProjectService { for (SysProject sysProject : projectList) { startMillisTime = sysProject.getBeginTime() > startMillisTime ? sysProject.getBeginTime() : startMillisTime; endMillisTime = sysProject.getEndTime() < endMillisTime ? sysProject.getEndTime() : endMillisTime; - dateList = getTimeList(dateList, startMillisTime, endMillisTime); + getTimeList(dateList, startMillisTime, endMillisTime); } } return dateList; } - private List getTimeList(List dateList, Long startTime, Long endTime) { + private void getTimeList(List dateList, Long startTime, Long endTime) { SimpleDateFormat sdf = new SimpleDateFormat("dd"); Date s = new Date(startTime); Date e = new Date(endTime); @@ -133,7 +130,6 @@ public class ProjectService implements IProjectService { } curr.add(Calendar.DATE, 1); } - return dateList; } /** @@ -193,10 +189,18 @@ public class ProjectService implements IProjectService { ProjectVo.ProjectConfig projectConfig = new ProjectVo.ProjectConfig(); projectInfo.setProjectConfig(projectConfig); } + //查找项目未处理的消息数量 + ProjectVo.ProjectUnreadMsg unreadMsg = getUnreadMsgByProject(currentUserId,projectInfo.getId()); + projectInfo.setProjectUnreadMsg(unreadMsg); }); } } + private ProjectVo.ProjectUnreadMsg getUnreadMsgByProject(Long userId,Long projectId) { + + return null; + } + private List projectInfoByProject(List projectList, Long currentUserId) { List projectInfoList = new ArrayList<>(); if (CollectionUtil.isNotEmpty(projectList)) { @@ -587,6 +591,7 @@ public class ProjectService implements IProjectService { if (CollectionUtil.isNotEmpty(roleExecludeList)) { for (ProRoleExclude roleExeclude : roleExecludeList) { ProRoleExclude newRoleExeclude = new ProRoleExclude(); + newRoleExeclude.setId(snowflake.nextId()); newRoleExeclude.setRoleId(newRoleMap.get(oldRoleMap.get(roleExeclude.getRoleId()))); newRoleExeclude.setOtherRoleId(newRoleMap.get(oldRoleMap.get(roleExeclude.getRoleId()))); roleExcludeDao.insertSelective(newRoleExeclude); @@ -757,6 +762,7 @@ public class ProjectService implements IProjectService { sysProjectDao.updateByPrimaryKeySelective(project); } else { throw new BaseException(CodeEnum.NOT_POWER); + } } else { throw new BaseException(CodeEnum.NOT_PROJECT); diff --git a/tall/src/main/java/com/ccsens/tall/service/RingService.java b/tall/src/main/java/com/ccsens/tall/service/RingService.java index 5c1e5599..b84da705 100644 --- a/tall/src/main/java/com/ccsens/tall/service/RingService.java +++ b/tall/src/main/java/com/ccsens/tall/service/RingService.java @@ -61,7 +61,7 @@ public class RingService implements IRingService { * @param ringSendDto 发送的消息内容 */ @Override - public void sendRingMsg(Long currentUserId, RingDto.RingSendDto ringSendDto) throws Exception { + public RingVo.RingInfoByReturn sendRingMsg(Long currentUserId, RingDto.RingSendDto ringSendDto) throws Exception { //获取当前时间 Long time = System.currentTimeMillis(); //将消息详情保存至数据库 @@ -98,6 +98,14 @@ public class RingService implements IRingService { ringMessageWithSendDto.setReceivers(BaseMessageDto.MessageUser.userIdToUsers(userIdList)); rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME, JacksonUtil.beanToJson(ringMessageWithSendDto)); + //返回消息的详细信息 + RingVo.RingInfoByReturn ringInfoByReturn = new RingVo.RingInfoByReturn(); + ringInfoByReturn.setMessageId(ringMsg.getId()); + ringInfoByReturn.setTime(ringMsg.getTime()); + ringInfoByReturn.setValue(ringMsg.getValueText()); + List msgReceiveRole = sysRingMsgDao.ringReceiveRole(ringMsg.getId()); + ringInfoByReturn.setRoleList(msgReceiveRole); + return ringInfoByReturn; } /** @@ -121,11 +129,11 @@ public class RingService implements IRingService { List msgReceiveRole = sysRingMsgDao.ringReceiveRole(ringInfo.getMessageId()); ringInfo.setRoleList(msgReceiveRole); //添加发送者的头像 - if(ObjectUtil.isNotNull(ringInfo.getSender())) { + if (ObjectUtil.isNotNull(ringInfo.getSender())) { SysUser user = userDao.selectByPrimaryKey(ringInfo.getSender().getId()); - if(ObjectUtil.isNotNull(user) && StrUtil.isNotEmpty(user.getAvatarUrl())){ + if (ObjectUtil.isNotNull(user) && StrUtil.isNotEmpty(user.getAvatarUrl())) { ringInfo.getSender().setAvatarUrl(user.getAvatarUrl()); - }else { + } else { ringInfo.getSender().setAvatarUrl(PropUtil.notGatewayUrl + "staticrec/logo.png"); } } @@ -182,18 +190,18 @@ public class RingService implements IRingService { } } //查询被读的信息返回 - List ringInfos = sysRingMsgDao.selectRingInfoByRingMsgId(currentUserId, message.getProjectId(),msgId); + List ringInfos = sysRingMsgDao.selectRingInfoByRingMsgId(currentUserId, message.getProjectId(), msgId); if (CollectionUtil.isNotEmpty(ringInfos)) { ringInfos.forEach(ringInfo -> { //添加接收角色的信息 List msgReceiveRole = sysRingMsgDao.ringReceiveRole(msgId); ringInfo.setRoleList(msgReceiveRole); //添加发送者的头像 - if(ObjectUtil.isNotNull(ringInfo.getSender())) { + if (ObjectUtil.isNotNull(ringInfo.getSender())) { SysUser user = userDao.selectByPrimaryKey(ringInfo.getSender().getId()); - if(ObjectUtil.isNotNull(user) && StrUtil.isNotEmpty(user.getAvatarUrl())){ + if (ObjectUtil.isNotNull(user) && StrUtil.isNotEmpty(user.getAvatarUrl())) { ringInfo.getSender().setAvatarUrl(user.getAvatarUrl()); - }else { + } else { ringInfo.getSender().setAvatarUrl(PropUtil.notGatewayUrl + "staticrec/logo.png"); } } @@ -205,4 +213,41 @@ public class RingService implements IRingService { return ringInfoList; } + + @Override + public void readRingMsgByProjectId(Long currentUserId, Long projectId) throws Exception { + log.info("读取消息的项目id:{}", projectId); + //获取当前用户在项目内的角色 + List roleIdList = sysRingMsgDao.selectRoleIdByUserId(currentUserId, projectId); + log.info("阅读者的角色:{}", roleIdList.toString()); + if (CollectionUtil.isNotEmpty(roleIdList)) { + for (Long roleId : roleIdList) { + //查找消息 + SysRingSendExample sysRingSendExample = new SysRingSendExample(); + sysRingSendExample.createCriteria().andRoleIdEqualTo(roleId); + List sysRingSendList = sysRingSendDao.selectByExample(sysRingSendExample); + if (CollectionUtil.isNotEmpty(sysRingSendList)) { + //循环已读消息 + for (SysRingSend sysRingSend : sysRingSendList) { + if (sysRingSend.getReadStatus() != 1) { + sysRingSend.setReadStatus((byte) 1); + sysRingSend.setReadTime(System.currentTimeMillis()); + sysRingSendDao.updateByPrimaryKeySelective(sysRingSend); + //获取消息 + SysRingMsg sysRingMsg = sysRingMsgDao.selectByPrimaryKey(sysRingSend.getRingId()); + //ws消息接收者的userId + Set userIdSet = new HashSet<>(); + userIdSet.add(sysRingMsg.getSenderId()); + List userIdList = new ArrayList<>(userIdSet); + //将已读消息返回给发送者 + RingMessageWithReadDto ringMessageWithReadDto = new RingMessageWithReadDto(sysRingMsg.getId(), projectId, roleId); + ringMessageWithReadDto.setReceivers(BaseMessageDto.MessageUser.userIdToUsers(userIdList)); + rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME, + JacksonUtil.beanToJson(ringMessageWithReadDto)); + } + } + } + } + } + } } diff --git a/tall/src/main/java/com/ccsens/tall/web/MemberController.java b/tall/src/main/java/com/ccsens/tall/web/MemberController.java index 6f032c0d..fdf5c149 100644 --- a/tall/src/main/java/com/ccsens/tall/web/MemberController.java +++ b/tall/src/main/java/com/ccsens/tall/web/MemberController.java @@ -1,8 +1,7 @@ package com.ccsens.tall.web; import com.ccsens.tall.bean.dto.MemberDto; -import com.ccsens.tall.bean.dto.MemberRoleDto; -import com.ccsens.tall.bean.dto.RingDto; +import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.service.IProMemberService; import com.ccsens.util.JsonResponse; import com.ccsens.util.WebConstant; @@ -19,20 +18,42 @@ import javax.servlet.http.HttpServletRequest; */ @Api(tags = "成员操作相关api" ) @RestController -@RequestMapping("/member") +@RequestMapping("/members") public class MemberController { @Resource private IProMemberService proMemberService; - @ApiOperation(value = "添加角色",notes = "") + @ApiOperation(value = "添加成员",notes = "") @ApiImplicitParams({ }) - @RequestMapping(value = "", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + @RequestMapping(value = "/save", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse saveMember(HttpServletRequest request, @ApiParam @Validated @RequestBody MemberDto.SaveMember saveMember) throws Exception { Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); proMemberService.saveProMember(currentUserId,saveMember); return JsonResponse.newInstance().ok(); } + + @ApiOperation(value = "删除成员",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/delete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse deleteMember(HttpServletRequest request, + @ApiParam @Validated @RequestBody MemberDto.DeleteMember deleteMember) throws Exception { + Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); + proMemberService.deleteMember(currentUserId,deleteMember); + return JsonResponse.newInstance().ok(); + } + + @ApiOperation(value = "修改成员信息",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse updateMemberInfo(HttpServletRequest request, + @ApiParam @Validated @RequestBody MemberDto.UpdateMemberInfo updateMemberInfo) throws Exception { + Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); + ProjectVo.MembersByProject membersInfo = proMemberService.updateMemberInfo(currentUserId,updateMemberInfo); + return JsonResponse.newInstance().ok(membersInfo); + } } diff --git a/tall/src/main/java/com/ccsens/tall/web/MemberRoleController.java b/tall/src/main/java/com/ccsens/tall/web/MemberRoleController.java index dca38ab9..409d6174 100644 --- a/tall/src/main/java/com/ccsens/tall/web/MemberRoleController.java +++ b/tall/src/main/java/com/ccsens/tall/web/MemberRoleController.java @@ -78,7 +78,7 @@ public class MemberRoleController { @ApiImplicitParams({ @ApiImplicitParam(name = "roleId", value = "角色Id", required = true, paramType = "query") }) - @RequestMapping(value = "", method = RequestMethod.DELETE, produces = {"application/json;charset=UTF-8"}) + @RequestMapping(value = "/role/delete", method = RequestMethod.DELETE, produces = {"application/json;charset=UTF-8"}) public JsonResponse deleteTask(HttpServletRequest request, @RequestParam(required = false)Long roleId) throws Exception { Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); diff --git a/tall/src/main/java/com/ccsens/tall/web/ProjectController.java b/tall/src/main/java/com/ccsens/tall/web/ProjectController.java index 34f0b2fa..5eaa1e82 100644 --- a/tall/src/main/java/com/ccsens/tall/web/ProjectController.java +++ b/tall/src/main/java/com/ccsens/tall/web/ProjectController.java @@ -1,6 +1,5 @@ package com.ccsens.tall.web; -import com.ccsens.tall.bean.dto.LabelDto; import com.ccsens.tall.bean.dto.ProjectDto; import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.bean.vo.TaskVo; @@ -15,24 +14,27 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.List; -@Api(tags = "项目相关API" , description = "") +/** + * @author 逗 + */ +@Api(tags = "项目相关API") @RestController @RequestMapping("/projects") public class ProjectController { - @Autowired + @Resource private IProjectService projectService; - @Autowired + @Resource private IProRoleService proRoleService; - @Autowired + @Resource private IProMemberService proMemberService; - @Autowired + @Resource private IProTaskDetailService taskDetailService; @ApiOperation(value = "获取日历上哪天有小红点",notes = "按照优先级倒序+时间正序排序") diff --git a/tall/src/main/java/com/ccsens/tall/web/RingController.java b/tall/src/main/java/com/ccsens/tall/web/RingController.java index 1fa0a578..9fdeab4f 100644 --- a/tall/src/main/java/com/ccsens/tall/web/RingController.java +++ b/tall/src/main/java/com/ccsens/tall/web/RingController.java @@ -31,11 +31,11 @@ public class RingController { @ApiImplicitParams({ }) @RequestMapping(value = "/send", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse sendRingMsg(HttpServletRequest request, + public JsonResponse sendRingMsg(HttpServletRequest request, @ApiParam @Validated @RequestBody RingDto.RingSendDto ringSendDto) throws Exception { Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); - ringService.sendRingMsg(currentUserId,ringSendDto); - return JsonResponse.newInstance().ok(); + RingVo.RingInfoByReturn ringInfo = ringService.sendRingMsg(currentUserId,ringSendDto); + return JsonResponse.newInstance().ok(ringInfo); } @@ -63,4 +63,14 @@ public class RingController { return JsonResponse.newInstance().ok(ringInfoList); } + @ApiOperation(value = "将项目内的消息全部已读", notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/read/projectId", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse readRingMsgByProjectId(HttpServletRequest request, + @ApiParam @Validated @RequestBody RingDto.ReadMessageByProjectId projectId) throws Exception { + Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); + ringService.readRingMsgByProjectId(currentUserId,projectId.getProjectId()); + return JsonResponse.newInstance().ok(); + } } diff --git a/tall/src/main/java/com/ccsens/tall/web/UserInfoController.java b/tall/src/main/java/com/ccsens/tall/web/UserInfoController.java index d0ca3674..65e310f6 100644 --- a/tall/src/main/java/com/ccsens/tall/web/UserInfoController.java +++ b/tall/src/main/java/com/ccsens/tall/web/UserInfoController.java @@ -68,7 +68,7 @@ public class UserInfoController { return JsonResponse.newInstance().ok(); } - @ApiOperation(value = "上传头像") + @ApiOperation(value = "查找用户详细信息") @ApiImplicitParams({ }) @RequestMapping(value = "", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) diff --git a/tall/src/main/resources/application.yml b/tall/src/main/resources/application.yml index c88e995d..b2acd365 100644 --- a/tall/src/main/resources/application.yml +++ b/tall/src/main/resources/application.yml @@ -1,4 +1,4 @@ spring: profiles: - active: test - include: util-test,common + active: dev + include: util-dev,common diff --git a/tall/src/main/resources/mapper_dao/SysProjectDao.xml b/tall/src/main/resources/mapper_dao/SysProjectDao.xml index ebeb4647..9bf3ab4c 100644 --- a/tall/src/main/resources/mapper_dao/SysProjectDao.xml +++ b/tall/src/main/resources/mapper_dao/SysProjectDao.xml @@ -139,8 +139,8 @@ l.level as lLevle, l.description as lDescription FROM - t_sys_user_attention a - left JOIN t_sys_project p ON a.project_id = p.id + t_sys_project p + LEFT JOIN t_sys_user_attention a ON a.project_id = p.id left join t_sys_project_label pl on pl.project_id = p.id left join t_sys_label l on pl.label_id = l.id and l.user_id = #{userId} @@ -148,6 +148,8 @@ a.user_id = #{userId} AND p.rec_status = 0 + and + a.rec_status = 0 and (l.rec_status = 0 or l.rec_status is null) and diff --git a/util/src/test/java/com/ccsens/util/Base64Test.java b/util/src/test/java/com/ccsens/util/Base64Test.java index 2c79076d..94aa3c12 100644 --- a/util/src/test/java/com/ccsens/util/Base64Test.java +++ b/util/src/test/java/com/ccsens/util/Base64Test.java @@ -13,7 +13,9 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @description: @@ -38,11 +40,9 @@ public class Base64Test { @Test public void test02() throws Exception { - String a = "112233445566"; - String b = a.substring(0,12); - System.out.println(a.length()); - System.out.println(b); + } + }