16 changed files with 313 additions and 41 deletions
@ -1,8 +1,18 @@ |
|||
package com.ccsens.tall.persist.dao; |
|||
|
|||
import com.ccsens.tall.bean.vo.RingVo; |
|||
import com.ccsens.tall.persist.mapper.SysRingMsgMapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
import org.springframework.stereotype.Repository; |
|||
|
|||
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<Long> selectRoleIdByUserId(@Param("userId")Long userId, @Param("projectId")Long projectId); |
|||
|
|||
void updateStatusByRoleIdAndMsgId(@Param("roleIdList")List<Long> roleIdList, @Param("messageIdList")List<Long> messageIdList); |
|||
} |
|||
|
@ -0,0 +1,93 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="com.ccsens.tall.persist.dao.SysRingMsgDao"> |
|||
|
|||
<resultMap id="ring_message" type="com.ccsens.tall.bean.vo.RingVo$RingInfo"> |
|||
<id column="messageId" property="messageId" /> |
|||
<result column="value" property="value" /> |
|||
<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"/> |
|||
</collection> |
|||
</resultMap> |
|||
|
|||
<select id="selectRingInfoByProject" parameterType="java.util.Map" resultMap="ring_message"> |
|||
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 |
|||
IF( u.nickname = '', a.identifier, u.nickname ) AS userName |
|||
FROM |
|||
t_sys_user u |
|||
LEFT JOIN t_sys_auth a ON u.id = a.user_id |
|||
AND a.identify_type = 3 |
|||
WHERE |
|||
u.rec_status = 0 |
|||
and |
|||
a.rec_status = 0 |
|||
and |
|||
u.id = m.sender_id |
|||
limit 1 |
|||
) as senderName, |
|||
(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} |
|||
or |
|||
s.role_id in ( |
|||
SELECT |
|||
r.id as rId |
|||
FROM |
|||
t_pro_role r LEFT JOIN t_pro_member_role mr on r.id = mr.role_id |
|||
LEFT JOIN t_pro_member m on mr.member_id = m.id |
|||
WHERE |
|||
(m.user_id = #{userId} |
|||
or |
|||
r.`name` = '全体成员' |
|||
) |
|||
AND |
|||
r.project_id = #{projectId} |
|||
) |
|||
) |
|||
and |
|||
m.project_id = #{projectId} |
|||
ORDER BY m.time DESC |
|||
|
|||
</select> |
|||
|
|||
<select id="selectRoleIdByUserId" parameterType="java.util.Map" resultType="Long"> |
|||
SELECT |
|||
r.id as rId |
|||
FROM |
|||
t_pro_role r LEFT JOIN t_pro_member_role mr on r.id = mr.role_id |
|||
LEFT JOIN t_pro_member m on mr.member_id = m.id |
|||
WHERE |
|||
(m.user_id = #{userId} |
|||
or |
|||
r.`name` = '全体成员' |
|||
) |
|||
AND |
|||
r.project_id = #{projectId} |
|||
</select> |
|||
|
|||
|
|||
</mapper> |
Loading…
Reference in new issue