中扬CRM客户关系管理系统
#
whycq
2023-09-09 34f99d106551b51bf2af3bbd40c64624a3af25eb
src/main/resources/mapper/OrderMapper.xml
@@ -27,7 +27,116 @@
        <result column="update_by" property="updateBy" />
        <result column="update_time" property="updateTime" />
        <result column="memo" property="memo" />
        <result column="transaction_rate" property="transactionRate" />
    </resultMap>
    <select id="selectByUuid" resultMap="BaseResultMap">
        select * from man_order
        where 1=1
        and uuid = #{uuid}
        <if test="hostId != null">
            and host_id = #{hostId}
        </if>
    </select>
    <select id="selectOrderByNewestUuid" resultMap="BaseResultMap">
        select top 1 * from man_order
        where 1=1
        <if test="hostId != null">
            and host_id = #{hostId}
        </if>
        order by uuid + 0 desc
    </select>
    <select id="listByPage" resultMap="BaseResultMap">
        SELECT
        mo.*
        FROM man_order mo
        LEFT JOIN sys_dept sd ON mo.dept_id = sd.id
        WHERE 1=1
        <choose>
            <when test="deptId != null and deptId != ''">
                AND (CHARINDEX(','+#{deptId}+',', ','+sd.path+',') > 0 OR sd.id = #{deptId})
                or
                (
                    user_id = #{userId}
                    or
                    mo.id in
                    (
                        select
                        order_id
                        from man_order_foll
                        where 1=1
                        and user_id = #{userId}
                    )
                )
            </when>
            <otherwise>
                and
                (
                    user_id = #{userId}
                    or
                    mo.id in
                    (
                        select
                        order_id
                        from man_order_foll
                        where 1=1
                        and user_id = #{userId}
                    )
                )
            </otherwise>
        </choose>
        <if test="hostId != null">
            and mo.host_id = #{hostId}
        </if>
        <if test="status != null">
            and mo.status = #{status}
        </if>
        <if test="condition != null and condition != ''">
            and (
            mo.uuid like concat('%',#{condition},'%')
            or mo.name like concat('%',#{condition},'%')
            or mo.remarks like concat('%',#{condition},'%')
            or mo.addr like concat('%',#{condition},'%')
            )
        </if>
        ORDER BY mo.create_time DESC
    </select>
    <select id="selectMoneyByYearAndStatus" resultType="java.lang.Double">
        select sum(money) money from man_order
        where year(create_time) = #{year}
        and status = #{status}
    </select>
    <select id="selectMoneyByUserAndYearAndStatus" resultType="java.lang.Double">
        select sum(money) money from man_order
        where year(create_time) = #{year}
        and status = #{status}
        and user_id = #{userId}
    </select>
    <select id="selectCountByUserYearAndStatus" resultType="java.lang.Integer">
        select count(*) num from man_order
        where year(create_time) = #{year}
        and status = #{status}
        and user_id = #{userId}
    </select>
    <select id="selectTopMoney" resultMap="BaseResultMap">
        select top 7 user_id,sum(money) money from man_order
        where status = 1
        group by user_id
        order by money desc
    </select>
    <select id="selectCurrentYearMonthSuccess" resultType="java.util.HashMap">
        select month(create_time) mon,sum(money) money from man_order
        where year(create_time) = year(GETDATE())
        and status = 1
        group by month(create_time)
    </select>
</mapper>