tj
2025-06-05 2d549a04870d1315868a7cf19952b64e8071e711
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<?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.cloudroam.mapper.BusinessDailyMapperCustom">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.cloudroam.model.BusinessDailyDO">
        <id column="id" property="id" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="delete_time" property="deleteTime" />
        <result column="project_id" property="projectId" />
        <result column="meeting_id" property="meetingId" />
        <result column="business_date" property="businessDate" />
        <result column="business_content" property="businessContent" />
        <result column="business_start_time" property="businessStartTime" />
        <result column="business_end_time" property="businessEndTime" />
        <result column="remark" property="remark" />
        <result column="create_user_id" property="createUserId" />
        <result column="create_user_name" property="createUserName" />
        <result column="update_user_id" property="updateUserId" />
        <result column="update_user_name" property="updateUserName" />
        <result column="is_deleted" property="isDeleted" />
        <result column="delete_user_id" property="deleteUserId" />
        <result column="delete_user_name" property="deleteUserName" />
    </resultMap>
 
    <resultMap id="UserDOResultMap" type="com.cloudroam.model.UserDO">
        <id column="user_id" property="id"/>
        <result column="username" property="username"/>
        <result column="nickname" property="nickname"/>
        <result column="avatar" property="avatar"/>
        <result column="email" property="email"/>
    </resultMap>
 
    <resultMap id="ResultMapWithUser" type="com.cloudroam.bo.businessDaily.BusinessDailyBO">
        <id column="id" property="id" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="delete_time" property="deleteTime" />
        <result column="project_id" property="projectId" />
        <result column="project_name" property="projectName" />
        <result column="business_date" property="businessDate" />
        <result column="business_content" property="businessContent" />
        <result column="business_start_time" property="businessStartTime" />
        <result column="business_end_time" property="businessEndTime" />
        <result column="remark" property="remark" />
        <result column="create_user_id" property="createUserId" />
        <result column="create_user_name" property="createUserName" />
        <result column="update_user_id" property="updateUserId" />
        <result column="update_user_name" property="updateUserName" />
        <result column="is_deleted" property="isDeleted" />
        <result column="meeting_title" property="meetingTitle" />
 
 
 
        <!--        嵌套查询获取员工列表-->
        <collection property="userDOList" resultMap="UserDOResultMap" />
    </resultMap>
    <delete id="delBusinessDailyByMeetingId">
 
 
    </delete>
 
    <select id="getBusinessDailyWithRelation" resultMap="ResultMapWithUser">
        select m.* ,u.id as user_id,u.username,u.nickname,u.avatar,u.email,p.project_name,meeting.meeting_title
        from business_daily m
        left join business_daily_user_re mr
        on m.id=mr.bussiness_daily_id
        left join lin_user u
        on mr.user_id=u.id
        left join project_info p
        on m.project_id=p.id
        LEFT JOIN (select * from meeting m where m.is_deleted=0) meeting
        on m.meeting_id=meeting.id
        where m.is_deleted=0
        <if test=" dto.keyword !=null and dto.keyword !='' ">
            and (
            m.business_content like concat('%',#{dto.keyword},'%')
            or m.remark like concat('%',#{dto.keyword},'%')
            )
        </if>
        <if test=" dto.startTime !=null and dto.startTime !='' ">
            and m.business_date &gt;= #{dto.startTime}
        </if>
        <if test=" dto.endTime !=null and dto.endTime !='' ">
            and m.business_date &lt;= #{dto.endTime}
        </if>
 
        <if test=" dto.projectId !=null and dto.projectId !='' ">
            and m.project_id = #{dto.projectId}
        </if>
 
        <if test=" dto.meetingId !=null and dto.meetingId !='' ">
            and m.meeting_id = #{dto.meetingId}
        </if>
 
        <if test=" dto.id !=null and dto.id !='' ">
            and m.id = #{dto.id}
        </if>
        order by m.business_date desc, m.create_time desc
    </select>
    <select id="getBusinessDailyPage" resultType="com.cloudroam.bo.businessDaily.BusinessDailyBO">
        select m.* ,user_list.business_user_names,p.project_name,meeting.meeting_title
        from business_daily m
        left join (
        select mr.bussiness_daily_id,GROUP_CONCAT(u.nickname) as business_user_names
        from business_daily_user_re mr
        left join lin_user u
        on mr.user_id=u.id
        group by mr.bussiness_daily_id
        )user_list
        on m.id=user_list.bussiness_daily_id
        left join project_info p
        on m.project_id=p.id
        LEFT JOIN (select * from meeting m where m.is_deleted=0) meeting
        on m.meeting_id=meeting.id
        where m.is_deleted=0
        <if test=" dto.keyword !=null and dto.keyword !='' ">
            and (
            m.business_content like concat('%',#{dto.keyword},'%')
            or m.remark like concat('%',#{dto.keyword},'%')
            )
        </if>
        <if test=" dto.startTime !=null and dto.startTime !='' ">
            and m.business_date &gt;= #{dto.startTime}
        </if>
        <if test=" dto.endTime !=null and dto.endTime !='' ">
            and m.business_date &lt;= #{dto.endTime}
        </if>
 
        <if test=" dto.projectId !=null and dto.projectId !='' ">
            and m.project_id = #{dto.projectId}
        </if>
 
        <if test=" dto.meetingId !=null and dto.meetingId !='' ">
            and m.meeting_id = #{dto.meetingId}
        </if>
 
        <if test=" dto.id !=null and dto.id !='' ">
            and m.id = #{dto.id}
        </if>
        order by m.business_date desc, m.create_time desc
    </select>
 
</mapper>