<?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.changhu.module.management.mapper.ServiceProjectMapper"> <select id="pager" resultType="com.changhu.module.management.pojo.vo.ServiceProjectPagerVo"> select sp.*, JSON_ARRAY(eu.province,eu.city,eu.districts,eu.street) as 'enterprisesUnitAdministrativeDivisionCodes', eu.name as 'enterprisesUnitName', mpu.name as 'projectManagerMiniProgramUserName', msuu.name as 'createUserName' from service_project sp left join enterprises_unit eu on sp.enterprises_unit_id = eu.snow_flake_id left join mini_program_user mpu on sp.project_manager_mini_program_user_id = mpu.snow_flake_id left join management_security_unit_user msuu on sp.create_by = msuu.snow_flake_id where sp.delete_flag = 0 and sp.security_unit_id = ${@com.changhu.common.utils.UserUtil@getUnitId()} <if test="params.name!=null and params.name!=''"> and sp.name like concat('%',#{params.name},'%') </if> <if test="params.type!=null"> and sp.type = #{params.type.value} </if> <if test="params.remark!=null and params.remark!=''"> and sp.remark like concat('%',#{params.remark},'%') </if> <if test="params.projectManagerMiniProgramUserName!=null and params.projectManagerMiniProgramUserName!=''"> and mpu.name like concat('%',#{params.projectManagerMiniProgramUserName},'%') </if> order by sp.create_time desc </select> <resultMap id="ProjectManageServiceProjectListVoResultMap" type="com.changhu.module.miniProgram.pojo.vo.IndexServiceProjectListVo"> <result column="contact_person_info" typeHandler="com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler" property="contactPersonInfo"/> <result column="service_project_list" typeHandler="com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler" property="serviceProjectList"/> </resultMap> <select id="getServiceProjectList" resultMap="ProjectManageServiceProjectListVoResultMap"> select eu.*, ad1.name as 'provinceName', ad2.name as 'cityName', ad3.name as 'districtsName', ad4.name as 'streetName', JSON_ARRAYAGG(JSON_OBJECT( 'snowFlakeId', sp.snow_flake_id, 'securityUnitId',sp.security_unit_id, 'name', sp.name, 'type', sp.type, 'isRecruitSecurity', sp.is_recruit_security, 'idNumber', sp.id_number, 'serviceArea', sp.service_area, 'buildingTotal', sp.building_total, 'houseTotal', sp.house_total, 'staffTotal', sp.staff_total, 'securityUserTotal', sp.security_user_total, 'projectManagerMiniProgramUserInfo',JSON_OBJECT( 'name',mpu.name, 'telephone',mpu.telephone, 'idCard',mpu.id_card), 'remark', sp.remark)) as 'service_project_list' from enterprises_unit eu join service_project sp on eu.snow_flake_id = sp.enterprises_unit_id and sp.delete_flag = 0 left join mini_program_user mpu on sp.project_manager_mini_program_user_id = mpu.snow_flake_id and mpu.delete_flag = 0 left join administrative_division ad1 on eu.province = ad1.code and ad1.delete_flag = 0 left join administrative_division ad2 on eu.city = ad2.code and ad2.delete_flag = 0 left join administrative_division ad3 on eu.districts = ad3.code and ad3.delete_flag = 0 left join administrative_division ad4 on eu.street = ad4.code and ad4.delete_flag = 0 where eu.delete_flag = 0 <choose> <when test="policeUnitId!=null"> and eu.police_unit_id = #{policeUnitId} </when> <otherwise> and sp.project_manager_mini_program_user_id = #{projectManagerMiniProgramUserId} </otherwise> </choose> group by eu.snow_flake_id order by any_value(sp.create_time) desc; </select> <resultMap id="ServiceProjectDTOResultMap" type="com.changhu.pojo.dto.ServiceProjectDTO"> <result column="projectManagerInfo" typeHandler="com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler" property="projectManagerInfo"/> <result column="securityUnitInfo" typeHandler="com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler" property="securityUnitInfo" /> <result column="securityUserList" typeHandler="com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler" property="securityUserList" /> </resultMap> <select id="getServiceProjectByEnterprisesUnitId" resultMap="ServiceProjectDTOResultMap"> SELECT sp.*, IF(mpu.snow_flake_id IS NOT NULL,json_object( 'name', mpu.NAME, 'sex', mpu.sex, 'telephone', mpu.telephone, 'idCard', mpu.id_card ),NULL) AS 'projectManagerInfo', json_object( 'name',su1.name, 'socialCode',su1.social_code, 'businessLicense',su1.business_license, 'legalPersonInfo',su1.legal_person_info, 'address',su1.address, 'nature',su1.nature ) as 'securityUnitInfo', if(COUNT(su.snow_flake_id)>0,JSON_ARRAYAGG(json_object( 'snowFlakeId',su.snow_flake_id, 'name',su.name, 'telephone',su.telephone, 'workPost',su.work_post, 'sex',su.sex, 'nativePlace',su.native_place, 'idCard',su.id_card, 'dateOfBirth',su.date_of_birth, 'securityNumber',su.security_number, 'homeAddress',su.home_address, 'remark',su.remark, 'createTime',su.create_time )),JSON_ARRAY()) as 'securityUserList' FROM service_project sp left join security_unit su1 on sp.security_unit_id = su1.snow_flake_id LEFT JOIN mini_program_user mpu ON sp.project_manager_mini_program_user_id = mpu.snow_flake_id AND mpu.identity = 'project_manager' left join security_user su on su.service_project_id = sp.snow_flake_id and su.delete_flag = 0 WHERE sp.delete_flag = 0 AND sp.enterprises_unit_id = #{enterprisesUnitId} group by sp.snow_flake_id ORDER BY sp.create_time DESC </select> </mapper>