Browse Source

修改ring消息查询

master
zy_Java 5 years ago
parent
commit
8b0e02378d
  1. 5
      tall/src/main/java/com/ccsens/tall/bean/vo/RingVo.java
  2. 3
      tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberDao.java
  3. 4
      tall/src/main/java/com/ccsens/tall/persist/dao/SysRingMsgDao.java
  4. 139
      tall/src/main/java/com/ccsens/tall/service/ProMemberService.java
  5. 2
      tall/src/main/java/com/ccsens/tall/service/ProjectMessageService.java
  6. 18
      tall/src/main/java/com/ccsens/tall/service/RingService.java
  7. 23
      tall/src/main/java/com/ccsens/tall/service/UserService.java
  8. 58
      tall/src/main/resources/mapper_dao/ProMemberDao.xml
  9. 30
      tall/src/main/resources/mapper_dao/SysRingMsgDao.xml

5
tall/src/main/java/com/ccsens/tall/bean/vo/RingVo.java

@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
@ -23,7 +24,7 @@ public class RingVo {
@ApiModel("返回ring消息")
public static class RingInfo{
@ApiModelProperty("消息id")
private String messageId;
private Long messageId;
@ApiModelProperty("消息内容")
private String value ;
@ApiModelProperty("消息发送时间")
@ -35,7 +36,7 @@ public class RingVo {
@ApiModelProperty("发送者信息")
private MsgSender sender;
@ApiModelProperty("接收角色的信息")
private List<MsgReceiveRole> roleList;
private List<MsgReceiveRole> roleList = new ArrayList<>();
}
@Data

3
tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberDao.java

@ -2,6 +2,7 @@ package com.ccsens.tall.persist.dao;
import com.ccsens.tall.bean.po.ProMember;
import com.ccsens.tall.bean.vo.MemberVo;
import com.ccsens.tall.bean.vo.ProjectVo;
import com.ccsens.tall.bean.vo.WbsVo;
import com.ccsens.tall.persist.mapper.ProMemberMapper;
import org.apache.ibatis.annotations.Param;
@ -26,4 +27,6 @@ public interface ProMemberDao extends ProMemberMapper{
List<Long> queryUserIdsByProjectId(@Param("projectId") Long projectId);
List<ProMember> selectMemberByRoleId(@Param("roleId")Long roleId);
List<ProjectVo.MembersByProject> selectMembersByProjectId(@Param("projectId")Long projectId);
}

4
tall/src/main/java/com/ccsens/tall/persist/dao/SysRingMsgDao.java

@ -10,9 +10,9 @@ import java.util.List;
@Repository
public interface SysRingMsgDao extends SysRingMsgMapper {
List<RingVo.RingInfo> selectRingInfoByProject(@Param("userId")Long userId, @Param("projectId")Long projectId, @Param("pageIndex")int pageIndex, @Param("pageSize")int pageSize);
List<RingVo.RingInfo> selectRingInfoByProject(@Param("userId")Long userId, @Param("projectId")Long projectId);
List<Long> selectRoleIdByUserId(@Param("userId")Long userId, @Param("projectId")Long projectId);
void updateStatusByRoleIdAndMsgId(@Param("roleIdList")List<Long> roleIdList, @Param("messageIdList")List<Long> messageIdList);
List<RingVo.MsgReceiveRole> ringReceiveRole(@Param("messageId")Long messageId);
}

139
tall/src/main/java/com/ccsens/tall/service/ProMemberService.java

@ -45,75 +45,76 @@ public class ProMemberService implements IProMemberService {
@Override
public List<ProjectVo.MembersByProject> selectMembersByProjectId(Long projectId) throws Exception {
List<ProjectVo.MembersByProject> members = new ArrayList<>();
ProjectVo.MembersByProject member = null;
List<ProjectVo.MembersByProject.BelongRole> belongRoleList = null;
ProjectVo.MembersByProject.BelongRole belongRole = null;
ProMemberExample memberExample = new ProMemberExample();
memberExample.createCriteria().andProjectIdEqualTo(projectId).andStakeholderIdIsNull();
List<ProMember> memberList = proMemberDao.selectByExample(memberExample);
if(CollectionUtil.isNotEmpty(memberList)){
for(ProMember proMember:memberList){
member = new ProjectVo.MembersByProject();
member.setMemberId(proMember.getId());
member.setName(proMember.getNickname());
member.setPhone(proMember.getPhone());
member.setUserId(proMember.getUserId());
}
}
//查找所有角色
ProRoleExample roleExample = new ProRoleExample();
roleExample.createCriteria().andProjectIdEqualTo(projectId);
List<ProRole> roleList = proRoleDao.selectByExample(roleExample);
if(CollectionUtil.isNotEmpty(roleList)){
for(ProRole role :roleList){
if(!role.getName().equals(WebConstant.ROLE_NAME.AllMember.phase)&&!role.getName().equals(WebConstant.ROLE_NAME.MVP.phase)) {
//查找角色下所有成员
ProMemberRoleExample memberRoleExample = new ProMemberRoleExample();
memberRoleExample.createCriteria().andRoleIdEqualTo(role.getId());
List<ProMemberRole> memberRoleList = proMemberRoleDao.selectByExample(memberRoleExample);
if(CollectionUtil.isNotEmpty(memberRoleList)){
for (ProMemberRole memberRole:memberRoleList){
ProMember proMember = proMemberDao.selectByPrimaryKey(memberRole.getMemberId());
if(ObjectUtil.isNotNull(proMember)){
boolean flag = false;
if (CollectionUtil.isNotEmpty(members)) {
for (ProjectVo.MembersByProject membersByProject : members) {
if (membersByProject.getPhone().equals(proMember.getPhone())) {
belongRole = new ProjectVo.MembersByProject.BelongRole();
belongRole.setRoleId(role.getId());
belongRole.setRoleName(role.getName());
membersByProject.getBelongRole().add(belongRole);
flag = true;
break;
}
}
}
if (!flag) {
member = new ProjectVo.MembersByProject();
member.setMemberId(proMember.getId());
member.setName(proMember.getNickname());
member.setPhone(proMember.getPhone());
member.setUserId(proMember.getUserId());
String mAccount = userService.selectAccountByPhone(member.getPhone());
member.setAccount(mAccount);
belongRoleList = new ArrayList<>();
belongRole = new ProjectVo.MembersByProject.BelongRole();
belongRole.setRoleId(role.getId());
belongRole.setRoleName(role.getName());
belongRoleList.add(belongRole);
member.setBelongRole(belongRoleList);
members.add(member);
}
}
}
}
}
}
}
List<ProjectVo.MembersByProject> members = proMemberDao.selectMembersByProjectId(projectId);
// List<ProjectVo.MembersByProject> members = new ArrayList<>();
// ProjectVo.MembersByProject member = null;
// List<ProjectVo.MembersByProject.BelongRole> belongRoleList = null;
// ProjectVo.MembersByProject.BelongRole belongRole = null;
// ProMemberExample memberExample = new ProMemberExample();
// memberExample.createCriteria().andProjectIdEqualTo(projectId).andStakeholderIdIsNull();
// List<ProMember> memberList = proMemberDao.selectByExample(memberExample);
// if(CollectionUtil.isNotEmpty(memberList)){
// for(ProMember proMember:memberList){
// member = new ProjectVo.MembersByProject();
// member.setMemberId(proMember.getId());
// member.setName(proMember.getNickname());
// member.setPhone(proMember.getPhone());
// member.setUserId(proMember.getUserId());
// }
// }
//
// //查找所有角色
// ProRoleExample roleExample = new ProRoleExample();
// roleExample.createCriteria().andProjectIdEqualTo(projectId);
// List<ProRole> roleList = proRoleDao.selectByExample(roleExample);
// if(CollectionUtil.isNotEmpty(roleList)){
// for(ProRole role :roleList){
// if(!role.getName().equals(WebConstant.ROLE_NAME.AllMember.phase)&&!role.getName().equals(WebConstant.ROLE_NAME.MVP.phase)) {
// //查找角色下所有成员
// ProMemberRoleExample memberRoleExample = new ProMemberRoleExample();
// memberRoleExample.createCriteria().andRoleIdEqualTo(role.getId());
// List<ProMemberRole> memberRoleList = proMemberRoleDao.selectByExample(memberRoleExample);
// if(CollectionUtil.isNotEmpty(memberRoleList)){
// for (ProMemberRole memberRole:memberRoleList){
// ProMember proMember = proMemberDao.selectByPrimaryKey(memberRole.getMemberId());
// if(ObjectUtil.isNotNull(proMember)){
// boolean flag = false;
// if (CollectionUtil.isNotEmpty(members)) {
// for (ProjectVo.MembersByProject membersByProject : members) {
// if (membersByProject.getPhone().equals(proMember.getPhone())) {
// belongRole = new ProjectVo.MembersByProject.BelongRole();
// belongRole.setRoleId(role.getId());
// belongRole.setRoleName(role.getName());
// membersByProject.getBelongRole().add(belongRole);
// flag = true;
// break;
// }
// }
// }
// if (!flag) {
// member = new ProjectVo.MembersByProject();
// member.setMemberId(proMember.getId());
// member.setName(proMember.getNickname());
// member.setPhone(proMember.getPhone());
// member.setUserId(proMember.getUserId());
// String mAccount = userService.selectAccountByPhone(member.getPhone());
// member.setAccount(mAccount);
//
// belongRoleList = new ArrayList<>();
// belongRole = new ProjectVo.MembersByProject.BelongRole();
// belongRole.setRoleId(role.getId());
// belongRole.setRoleName(role.getName());
// belongRoleList.add(belongRole);
// member.setBelongRole(belongRoleList);
//
// members.add(member);
// }
// }
// }
// }
// }
// }
// }
return members;
}

2
tall/src/main/java/com/ccsens/tall/service/ProjectMessageService.java

@ -125,8 +125,6 @@ public class ProjectMessageService implements IProjectMessageService {
return;
}
String template = getTemplate(newMessages);
openids.clear();
openids.add("oALvgw6K6iHbOf7IqyyLFTD_rIVc");
openids.forEach(openid -> {
WxTemplateMessage wxTemplateMessage = new WxTemplateMessage();
BeanUtils.copyProperties(wxMessage, wxTemplateMessage);

18
tall/src/main/java/com/ccsens/tall/service/RingService.java

@ -102,20 +102,18 @@ public class RingService implements IRingService{
*/
@Override
public PageInfo<RingVo.RingInfo> getRingInfo(Long currentUserId, RingDto.GetRingDto getRingDto) {
//计算分页信息
int pageIndex = 0;
int pageSize = 10;
if(ObjectUtil.isNotNull(getRingDto.getPageSize())) {
pageSize = getRingDto.getPageSize();
}
if(ObjectUtil.isNotNull(getRingDto.getPage())) {
pageIndex = (getRingDto.getPage() - 1) * pageSize;
}
getRingDto.setPage(getRingDto.getPage() == null ? 1 : getRingDto.getPage());
getRingDto.setPageSize(getRingDto.getPageSize() == null ? 10 : getRingDto.getPageSize());
PageHelper.startPage(getRingDto.getPage(), getRingDto.getPageSize());
List<RingVo.RingInfo> ringInfoList = sysRingMsgDao.selectRingInfoByProject(currentUserId,getRingDto.getProjectId(),pageIndex,pageSize);
List<RingVo.RingInfo> ringInfoList = sysRingMsgDao.selectRingInfoByProject(currentUserId,getRingDto.getProjectId());
if(CollectionUtil.isNotEmpty(ringInfoList)){
ringInfoList.forEach(ringInfo -> {
List<RingVo.MsgReceiveRole> msgReceiveRole = sysRingMsgDao.ringReceiveRole(ringInfo.getMessageId());
ringInfo.setRoleList(msgReceiveRole);
});
}
CollectionUtil.sort(ringInfoList,new Comparator<RingVo.RingInfo>(){
@Override

23
tall/src/main/java/com/ccsens/tall/service/UserService.java

@ -531,7 +531,8 @@ public class UserService implements IUserService {
accountAuth.setUserId(user.getId());
accountAuth.setIdentifyType((byte) WebConstant.IDENTIFY_TYPE.Account.value);
accountAuth.setIdentifier("USER_" + accountName);
accountAuth.setCredential("123456");
accountAuth.setSalt(ShiroKit.getRandomSalt(6));
accountAuth.setCredential(ShiroKit.md5("123456", accountAuth.getSalt()));
authDao.insertSelective(accountAuth);
return auth;
@ -1144,7 +1145,7 @@ public class UserService implements IUserService {
//获取手机号
String phone = getPhoneByRegisterType(userSignVo.getUserId(),identifyType);
//获取账号
String account = selectAccountByPhone(phone);
String account = selectAccountByUserId(userSignVo.getUserId());
//获取用户的基本信息、
UserVo.WxInfo wxInfo = null;
SysUser user = userDao.selectByPrimaryKey(userSignVo.getUserId());
@ -1162,6 +1163,22 @@ public class UserService implements IUserService {
return tokenBean;
}
/**
* 通过userId查找账号
* @param userId
* @return
*/
private String selectAccountByUserId(Long userId) {
String account = null;
SysAuthExample sysAuthExample = new SysAuthExample();
sysAuthExample.createCriteria().andUserIdEqualTo(userId).andIdentifyTypeEqualTo((byte) WebConstant.IDENTIFY_TYPE.Account.value);
List<SysAuth> authList = authDao.selectByExample(sysAuthExample);
if(CollectionUtil.isNotEmpty(authList)){
account = authList.get(0).getIdentifier();
}
return account;
}
private String getPhoneByRegisterType(Long userId, WebConstant.IDENTIFY_TYPE identifyType) {
SysAuthExample authExample = new SysAuthExample();
authExample.createCriteria().andUserIdEqualTo(userId).andIdentifyTypeEqualTo((byte) WebConstant.IDENTIFY_TYPE.Phone.value);
@ -1368,6 +1385,8 @@ public class UserService implements IUserService {
SysAuth auth = authList.get(0);
auth.setRecStatus((byte) 2);
authDao.updateByPrimaryKeySelective(auth);
}else {
throw new BaseException(CodeEnum.PHONE_ERR);
}
}

58
tall/src/main/resources/mapper_dao/ProMemberDao.xml

@ -14,6 +14,21 @@
<result column="mJoinTime" property="joinTime" />
</resultMap>
<resultMap id="memberInfos" type="com.ccsens.tall.bean.vo.ProjectVo$MembersByProject">
<id column="memberId" property="memberId"/>
<result column="name" property="name"/>
<result column="account" property="account"/>
<result column="phone" property="phone"/>
<result column="sId" property="sId"/>
<result column="sName" property="sName"/>
<result column="sAccount" property="sAccount"/>
<result column="sPhone" property="sPhone"/>
<collection property="belongRole" ofType="com.ccsens.tall.bean.vo.ProjectVo$MembersByProject$BelongRole">
<id column="roleId" property="roleId"/>
<result column="roleName" property="roleName"/>
</collection>
</resultMap>
<select id="selectByProjectIdAndUserId" parameterType="java.util.Map"
resultMap="resultMap_ProMemberInfo">
select
@ -141,4 +156,47 @@
and mr.rec_status = 0 and r.rec_status = 0)
</select>
<select id="selectMembersByProjectId" parameterType="java.util.Map" resultMap="memberInfos">
SELECT
m.id as memberId,
m.nickname as name,
r.id as roleId,
r.name as roleName,
a.identifier as account,
m.phone as phone,
t.sId as sId,
t.sNickname as sName,
t.sAccount as sAccount,
t.sPhone as sPhone
FROM
t_pro_member m LEFT JOIN t_pro_member_role mr on mr.member_id = m.id
LEFT JOIN t_pro_role r on r.id = mr.role_id
LEFT JOIN t_sys_auth a on a.user_id = m.user_id and a.identify_type = 3 and a.rec_status = 0
LEFT JOIN
(
SELECT
m.id as sId,
m.nickname as sNickname,
r.id as srId,
a.identifier as sAccount,
m.phone as sPhone
FROM
t_pro_member m LEFT JOIN t_pro_member_role mr on mr.member_id = m.id
LEFT JOIN t_pro_role r on r.id = mr.role_id
LEFT JOIN t_sys_auth a on a.user_id = m.user_id and a.identify_type = 3 and a.rec_status = 0
WHERE
m.rec_status = 0
and
r.rec_status = 0
and
r.name = 'MoneyStakeholder'
) t on t.sId = m.stakeholder_id
WHERE
m.rec_status = 0
and
r.rec_status = 0
and
m.project_id = #{projectId}
</select>
</mapper>

30
tall/src/main/resources/mapper_dao/SysRingMsgDao.xml

@ -8,11 +8,7 @@
<result column="mine" property="mine" />
<result column="unread" property="unread" />
<result column="time" property="time" />
<collection property="roleList" ofType="com.ccsens.tall.bean.vo.RingVo$MsgReceiveRole">
<id column="roleId" property="id"/>
<result column="roleName" property="name"/>
<result column="readStatus" property="readStatus"/>
</collection>
<collection property="sender" ofType="com.ccsens.tall.bean.vo.RingVo$MsgSender">
<id column="senderId" property="id"/>
<result column="senderName" property="name"/>
@ -20,15 +16,16 @@
</resultMap>
<select id="selectRingInfoByProject" parameterType="java.util.Map" resultMap="ring_message">
SELECT
*
FROM
(
SELECT
m.id as messageId,
m.`value` as `value`,
m.`value_text` as `valueText`,
m.`time` as time,
if(m.sender_id = #{userId},1,0) as mine,
r.id as roleId,
r.name as roleName,
s.read_status as readStatus,
m.sender_id as senderId,
(
SELECT
@ -48,7 +45,6 @@
(SELECT count(read_status) FROM t_sys_ring_send WHERE ring_id = m.id and read_status = 0) as unread
FROM
t_sys_ring_msg m LEFT JOIN t_sys_ring_send s on m.id = s.ring_id
LEFT JOIN t_pro_role r on s.role_id = r.id
WHERE
(
m.sender_id = #{userId}
@ -70,8 +66,9 @@
)
and
m.project_id = #{projectId}
ORDER BY m.time DESC
GROUP BY m.id
)a
ORDER BY a.time DESC
</select>
<select id="selectRoleIdByUserId" parameterType="java.util.Map" resultType="Long">
@ -89,5 +86,16 @@
r.project_id = #{projectId}
</select>
<select id="ringReceiveRole" parameterType="java.util.Map" resultType="com.ccsens.tall.bean.vo.RingVo$MsgReceiveRole">
SELECT
r.id as id,
r.name as name,
s.read_status as readStatus
FROM
t_sys_ring_msg m LEFT JOIN t_sys_ring_send s on m.id = s.ring_id
LEFT JOIN t_pro_role r on s.role_id = r.id
WHERE
m.id = #{messageId}
</select>
</mapper>
Loading…
Cancel
Save