<?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.stylefeng.guns.modular.system.dao.TDriverMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.TDriver">
|
<id column="id" property="id" />
|
<result column="account" property="account" />
|
<result column="jobNumber" property="jobNumber" />
|
<result column="phone" property="phone" />
|
<result column="password" property="password" />
|
<result column="name" property="name" />
|
<result column="sex" property="sex" />
|
<result column="idCard" property="idCard" />
|
<result column="companyId" property="companyId" />
|
<result column="headImgUrl" property="headImgUrl" />
|
<result column="faceImgUrl" property="faceImgUrl" />
|
<result column="idCardImgUrl1" property="idCardImgUrl1" />
|
<result column="idCardImgUrl2" property="idCardImgUrl2" />
|
<result column="placeOfEmployment" property="placeOfEmployment" />
|
<result column="birthday" property="birthday" />
|
<result column="bankCardNumber" property="bankCardNumber" />
|
<result column="driverNationality" property="driverNationality" />
|
<result column="driverNation" property="driverNation" />
|
<result column="driverMaritalStatus" property="driverMaritalStatus" />
|
<result column="driverLanguageLevel" property="driverLanguageLevel" />
|
<result column="driverEducation" property="driverEducation" />
|
<result column="driverCensus" property="driverCensus" />
|
<result column="driverAddress" property="driverAddress" />
|
<result column="driverContactAddress" property="driverContactAddress" />
|
<result column="driverAge" property="driverAge" />
|
<result column="driveCard" property="driveCard" />
|
<result column="driveCardImgUrl" property="driveCardImgUrl" />
|
<result column="driverType" property="driverType" />
|
<result column="getDriverLicenseDate" property="getDriverLicenseDate" />
|
<result column="driverLicenseOn" property="driverLicenseOn" />
|
<result column="driverLicenseOff" property="driverLicenseOff" />
|
<result column="taxiDriver" property="taxiDriver" />
|
<result column="taxiAptitudeCard" property="taxiAptitudeCard" />
|
<result column="networkCarlssueImg" property="networkCarlssueImg" />
|
<result column="networkCarlssueOrganization" property="networkCarlssueOrganization" />
|
<result column="networkCarlssueDate" property="networkCarlssueDate" />
|
<result column="getNetworkCarProofDate" property="getNetworkCarProofDate" />
|
<result column="networkCarProofOn" property="networkCarProofOn" />
|
<result column="networkCarProofOff" property="networkCarProofOff" />
|
<result column="registerDate" property="registerDate" />
|
<result column="fullTimeDriver" property="fullTimeDriver" />
|
<result column="inDriverBlacklist" property="inDriverBlacklist" />
|
<result column="commercialType" property="commercialType" />
|
<result column="contractCompany" property="contractCompany" />
|
<result column="contractOn" property="contractOn" />
|
<result column="contractOff" property="contractOff" />
|
<result column="emergencyContact" property="emergencyContact" />
|
<result column="emergencyContactPhone" property="emergencyContactPhone" />
|
<result column="emergencyContactAddress" property="emergencyContactAddress" />
|
<result column="remark" property="remark" />
|
<result column="isPlatCar" property="isPlatCar" />
|
<result column="carId" property="carId" />
|
<result column="authState" property="authState" />
|
<result column="state" property="state" />
|
<result column="flag" property="flag" />
|
<result column="insertTime" property="insertTime" />
|
<result column="insertUser" property="insertUser" />
|
<result column="updateTime" property="updateTime" />
|
<result column="updateUser" property="updateUser" />
|
<result column="addType" property="addType" />
|
<result column="laveBusinessMoney" property="laveBusinessMoney"/>
|
<result column="businessMoney" property="businessMoney"/>
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
id, account, jobNumber, phone, password, name, sex, idCard, companyId, headImgUrl, faceImgUrl, idCardImgUrl1, idCardImgUrl2, placeOfEmployment, birthday, bankCardNumber, driverNationality, driverNation, driverMaritalStatus, driverLanguageLevel, driverEducation, driverCensus, driverAddress, driverContactAddress, licenseCode, licenselImgUrl, driverAge, driveCard, driveCardImgUrl, driverType, getDriverLicenseDate, driverLicenseOn, driverLicenseOff, taxiDriver, taxiAptitudeCard, networkCarlssueImg, networkCarlssueOrganization, networkCarlssueDate, getNetworkCarProofDate, networkCarProofOn, networkCarProofOff, registerDate, fullTimeDriver, inDriverBlacklist, commercialType, contractCompany, contractOn, contractOff, emergencyContact, emergencyContactPhone, emergencyContactAddress, remark, isPlatCar, carId, authState, state, flag, insertTime, insertUser, updateTime, updateUser, addType
|
</sql>
|
|
<!--根据条件查询待审核司机列表-->
|
<select id="getAuthDriverList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page">
|
SELECT * FROM (SELECT cc1.`name` as companyName,cc2.`name` as franchiseeName,ds.serverStr,dd.* from t_driver as dd
|
LEFT JOIN (select * from t_company where type = 2 and flag != 3) as cc1 on cc1.id = dd.companyId
|
LEFT JOIN (select * from t_company where type = 3 and flag != 3) as cc2 on cc2.id = dd.franchiseeId
|
LEFT JOIN (
|
SELECT
|
GROUP_CONCAT(case when type = 1 then '专车'
|
when type = 2 then '出租车'
|
when type = 3 then '跨城出行'
|
when type = 4 then '小件物流-同城'
|
when type = 5 then '小件物流-跨城'
|
when type = 6 then '包车'
|
else '' end ) as serverStr,driverId from t_driver_service GROUP BY driverId) as ds on ds.driverId = dd.id
|
) as o
|
<where>
|
o.flag != 3 and (o.authState =1 or o.authState =4)
|
<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
|
AND (o.insertTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59'))
|
</if>
|
<if test="companyName != null and companyName != ''">
|
and (o.companyName LIKE CONCAT('%',#{companyName},'%') or o.franchiseeName LIKE CONCAT('%',#{companyName},'%'))
|
</if>
|
<if test="phone != null and phone != ''">
|
and o.phone LIKE CONCAT('%',#{phone},'%')
|
</if>
|
<if test="account != null and account != ''">
|
and o.account LIKE CONCAT('%',#{account},'%')
|
</if>
|
<if test="addType != null and addType != ''">
|
and o.addType = #{addType}
|
</if>
|
<if test="authState != null and authState != ''">
|
and o.authState = #{authState}
|
</if>
|
<if test="roleType != null and roleType != '' and roleType == 2">
|
and o.companyId = #{objectId} and (o.franchiseeId IS NULL or o.franchiseeId = 0)
|
</if>
|
<if test="roleType != null and roleType != '' and roleType == 3">
|
and o.franchiseeId = #{objectId}
|
</if>
|
</where>
|
order by o.id desc
|
</select>
|
|
<!--根据用户ID获取用户详情-->
|
<select id="getDriverById" resultType="map">
|
SELECT cc.`name` as companyName,ds.serverStr,
|
case when dd.addType = 1 then '司机注册' when dd.addType = 2 then '平台添加' when dd.addType = 3 then '分公司添加' when dd.addType = 4 then '加盟商添加' else '' end as addTypeStr,
|
case when dd.sex = 1 then '男' when dd.sex = 2 then '女' else '' end as sexStr,
|
case when dd.authState = 1 then '待审核' when dd.authState = 2 then '正常' when dd.authState = 3 then '冻结' when dd.authState = 4 then '已拒绝' end as authStateStr,
|
dd.* from t_driver as dd
|
LEFT JOIN (select * from t_company where flag != 3) as cc on cc.id = dd.companyId
|
LEFT JOIN (
|
SELECT
|
GROUP_CONCAT(case when type = 1 then '专车'
|
when type = 2 then '出租车'
|
when type = 3 then '跨城出行'
|
when type = 4 then '小件物流-同城'
|
when type = 5 then '小件物流-跨城'
|
when type = 6 then '包车'
|
else '' end SEPARATOR '、') as serverStr,driverId from t_driver_service GROUP BY driverId) as ds on ds.driverId = dd.id
|
where dd.id = #{driverId}
|
</select>
|
|
<!--根据审核通过的司机列表-->
|
<select id="getDriverList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page">
|
SELECT * FROM (SELECT cc1.`name` as companyName,cc2.`name` as franchiseeName,ci.carLicensePlate,
|
ds.serverStr,IFNULL(oe.evaluateNum,0) as evaluateNum,
|
(IFNULL(ot1.taxiNum, 0) + IFNULL(ot3.num, 0) + IFNULL(ot5.num, 0) + IFNULL(ot7.num, 0)) as historyNum,
|
(IFNULL(ot2.taxiMoney, 0)+ IFNULL(ot4.money, 0) + IFNULL(ot6.money, 0) + IFNULL(ot8.money, 0)) as historyMoney,
|
dd.* from t_driver as dd
|
LEFT JOIN (select * from t_company where type = 2 and flag != 3) as cc1 on cc1.id = dd.companyId
|
LEFT JOIN (select * from t_company where type = 3 and flag != 3) as cc2 on cc2.id = dd.franchiseeId
|
LEFT JOIN (select * from t_car where state = 1) as ci on ci.id = dd.carId
|
LEFT JOIN (
|
SELECT
|
GROUP_CONCAT(case when type = 1 then '专车'
|
when type = 2 then '出租车'
|
when type = 3 then '跨城出行'
|
when type = 4 then '小件物流-同城'
|
when type = 5 then '小件物流-跨城'
|
when type = 6 then '包车'
|
else '' end ) as serverStr,driverId from t_driver_service GROUP BY driverId) as ds on ds.driverId = dd.id
|
LEFT JOIN (SELECT IFNULL(SUM(fraction)/COUNT(id),0) as evaluateNum,driverId FROM t_order_evaluate GROUP BY driverId) as oe on oe.driverId = dd.id
|
LEFT JOIN (SELECT COUNT(id) as taxiNum,driverId FROM t_order_taxi where FIND_IN_SET(state,'7,8,9') GROUP BY driverId) as ot1 on ot1.driverId = dd.id
|
LEFT JOIN (SELECT SUM(orderMoney) as taxiMoney,driverId FROM t_order_taxi where FIND_IN_SET(state,'7,8,9') GROUP BY driverId) as ot2 on ot2.driverId = dd.id
|
LEFT JOIN (SELECT COUNT(id) as num,driverId FROM t_order_private_car where FIND_IN_SET(state,'7,8,9') GROUP BY driverId) as ot3 on ot3.driverId = dd.id
|
LEFT JOIN (SELECT SUM(orderMoney) as money,driverId FROM t_order_private_car where FIND_IN_SET(state,'7,8,9') GROUP BY driverId) as ot4 on ot4.driverId = dd.id
|
LEFT JOIN (SELECT COUNT(id) as num,driverId FROM t_order_cross_city where FIND_IN_SET(state,'6,8,9') GROUP BY driverId) as ot5 on ot5.driverId = dd.id
|
LEFT JOIN (SELECT SUM(orderMoney) as money,driverId FROM t_order_cross_city where FIND_IN_SET(state,'6,8,9') GROUP BY driverId) as ot6 on ot6.driverId = dd.id
|
LEFT JOIN (SELECT COUNT(id) as num,driverId FROM t_order_logistics where FIND_IN_SET(state,'6,9') GROUP BY driverId) as ot7 on ot7.driverId = dd.id
|
LEFT JOIN (SELECT SUM(orderMoney) as money,driverId FROM t_order_logistics where FIND_IN_SET(state,'6,9') GROUP BY driverId) as ot8 on ot8.driverId = dd.id) as o
|
<where>
|
o.flag != 3 and o.authState = 2
|
<if test="roleType != null and roleType != '' and roleType == 1">
|
and FIND_IN_SET(o.authState,'2,3')
|
</if>
|
<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
|
AND (o.insertTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59'))
|
</if>
|
<if test="companyName != null and companyName != ''">
|
and (o.companyName LIKE CONCAT('%',#{companyName},'%') or o.franchiseeName LIKE CONCAT('%',#{companyName},'%'))
|
</if>
|
<if test="phone != null and phone != ''">
|
and o.phone LIKE CONCAT('%',#{phone},'%')
|
</if>
|
<if test="name != null and name != ''">
|
and o.name LIKE CONCAT('%',#{name},'%')
|
</if>
|
<if test="addType != null and addType != ''">
|
and o.addType = #{addType}
|
</if>
|
<if test="authState != null and authState != ''">
|
and o.authState = #{authState}
|
</if>
|
<if test="roleType != null and roleType != '' and roleType == 2">
|
and (o.companyId = #{nowUserId} or FIND_IN_SET(o.franchiseeId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId)))
|
</if>
|
<if test="roleType != null and roleType != '' and roleType == 3">
|
and o.franchiseeId = #{nowUserId}
|
</if>
|
</where>
|
order by o.id desc
|
</select>
|
|
<!--查询已被使用的车辆ID-->
|
<select id="getUseCarIdStr" resultType="java.lang.String">
|
SELECT GROUP_CONCAT(dd.carId) as carIdStr from t_driver as dd where dd.authState = 2 and dd.flag != 3
|
<if test="carId != null and carId != '' and carId != 0">
|
and dd.carId != #{carId}
|
</if>
|
</select>
|
|
<!--查询当前可被选择的车辆列表-->
|
<select id="getCanSelectCarList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page">
|
SELECT * FROM (SELECT cm.`name` as modelName,cb.`name` as brandName,ds.serverStr,ci.* from t_car as ci
|
LEFT JOIN (select * from t_car_model where state = 1) as cm on cm.id = ci.carModelId
|
LEFT JOIN (select * from t_car_brand where state = 1) as cb on cb.id = ci.carBrandId
|
LEFT JOIN (
|
SELECT
|
GROUP_CONCAT(case when type = 1 then '专车'
|
when type = 2 then '出租车'
|
when type = 3 then '跨城出行'
|
when type = 4 then '小件物流-同城'
|
when type = 5 then '小件物流-跨城'
|
when type = 6 then '包车'
|
else '' end ) as serverStr,carId from t_car_service GROUP BY carId) as ds on ds.carId = ci.id) as o
|
<where>
|
o.state = 1 and o.audit = 1
|
<if test="carIdStr != null and carIdStr != ''">
|
and not FIND_IN_SET(o.id,#{carIdStr})
|
</if>
|
<if test="carLicensePlate != null and carLicensePlate != ''">
|
and o.carLicensePlate LIKE CONCAT('%',#{carLicensePlate},'%')
|
</if>
|
<if test="brandName != null and brandName != ''">
|
and o.brandName LIKE CONCAT('%',#{brandName},'%')
|
</if>
|
<if test="modelName != null and modelName != ''">
|
and o.modelName LIKE CONCAT('%',#{modelName},'%')
|
</if>
|
<if test="color != null and color != ''">
|
and o.carColor LIKE CONCAT('%',#{color},'%')
|
</if>
|
<if test="serverStr != null and serverStr != ''">
|
and o.serverStr LIKE CONCAT('%',#{serverStr},'%')
|
</if>
|
<if test="roleType != null and roleType != '' and roleType == 2">
|
and (o.companyId = #{nowUserId} or FIND_IN_SET(o.franchiseeId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where type = 3 and superiorId = #{nowUserId} GROUP BY superiorId)))
|
</if>
|
<if test="roleType != null and roleType != '' and roleType == 3">
|
and o.franchiseeId = #{nowUserId}
|
</if>
|
</where>
|
order by o.id desc
|
</select>
|
|
<!--修改分公司司机的状态-->
|
<update id="updateCompanyDriverState" parameterType="java.lang.Integer">
|
update t_driver
|
<set>
|
<if test="authState != null"> authState = #{authState} </if>
|
</set>
|
where companyId = #{companyId} and (franchiseeId = 0 or franchiseeId is null)
|
</update>
|
|
<!--修改加盟商司机的状态-->
|
<update id="updateFranchiseeDriverState" parameterType="java.lang.Integer">
|
update t_driver
|
<set>
|
<if test="authState != null"> authState = #{authState} </if>
|
</set>
|
where franchiseeId = #{franchiseeId}
|
</update>
|
|
<!--根据审核通过的司机列表无分页-->
|
<select id="getDriverListNoPage" resultType="map">
|
SELECT * FROM (SELECT cc1.`name` as companyName,cc2.`name` as franchiseeName,ci.carLicensePlate,ds.serverStr,IFNULL(oe.evaluateNum,0) as evaluateNum,
|
(IFNULL(ot1.taxiNum, 0) + IFNULL(ot3.num, 0) + IFNULL(ot5.num, 0)) as historyNum,(IFNULL(ot2.taxiMoney, 0)+ IFNULL(ot4.money, 0) + IFNULL(ot6.money, 0)) as historyMoney,ti.inviteNumber,dd.* from t_driver as dd
|
LEFT JOIN (select * from t_company where type = 2 and flag != 3) as cc1 on cc1.id = dd.companyId
|
LEFT JOIN (select * from t_company where type = 3 and flag != 3) as cc2 on cc2.id = dd.franchiseeId
|
LEFT JOIN (select * from t_car where state = 1) as ci on ci.id = dd.carId
|
LEFT JOIN (
|
SELECT
|
GROUP_CONCAT(case when type = 1 then '专车'
|
when type = 2 then '出租车'
|
when type = 3 then '跨城出行'
|
when type = 4 then '小件物流-同城'
|
when type = 5 then '小件物流-跨城'
|
when type = 6 then '包车'
|
else '' end ) as serverStr,driverId from t_driver_service GROUP BY driverId) as ds on ds.driverId = dd.id
|
LEFT JOIN (SELECT IFNULL(SUM(fraction)/COUNT(id),0) as evaluateNum,driverId FROM t_order_evaluate GROUP BY driverId) as oe on oe.driverId = dd.id
|
LEFT JOIN (SELECT COUNT(id) as taxiNum,driverId FROM t_order_taxi where FIND_IN_SET(state,'7,8,9') GROUP BY driverId) as ot1 on ot1.driverId = dd.id
|
LEFT JOIN (SELECT SUM(orderMoney) as taxiMoney,driverId FROM t_order_taxi where FIND_IN_SET(state,'8,9') GROUP BY driverId) as ot2 on ot2.driverId = dd.id
|
LEFT JOIN (SELECT COUNT(id) as num,driverId FROM t_order_private_car where FIND_IN_SET(state,'7,8,9') GROUP BY driverId) as ot3 on ot3.driverId = dd.id
|
LEFT JOIN (SELECT SUM(orderMoney) as money,driverId FROM t_order_private_car where FIND_IN_SET(state,'7,8,9') GROUP BY driverId) as ot4 on ot4.driverId = dd.id
|
LEFT JOIN (SELECT COUNT(id) as num,driverId FROM t_order_cross_city where FIND_IN_SET(state,'6,7,8') GROUP BY driverId) as ot5 on ot5.driverId = dd.id
|
LEFT JOIN (SELECT SUM(orderMoney) as money,driverId FROM t_order_cross_city where FIND_IN_SET(state,'6,7,8') GROUP BY driverId) as ot6 on ot6.driverId = dd.id
|
LEFT JOIN (select COUNT(id) as inviteNumber,inviteUserId from t_invite where userType =2 GROUP BY inviteUserId)as ti on ti.inviteUserId = dd.id
|
|
) as o
|
<where>
|
o.flag != 3
|
<if test="roleType != null and roleType != '' and roleType == 1">
|
and FIND_IN_SET(o.authState,'2,3')
|
</if>
|
<if test="roleType != null and roleType != '' and roleType == 2">
|
and (o.companyId = #{nowUserId} or FIND_IN_SET(o.franchiseeId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId)))
|
</if>
|
<if test="roleType != null and roleType != '' and roleType == 3">
|
and o.franchiseeId = #{nowUserId}
|
</if>
|
</where>
|
order by o.id desc
|
</select>
|
|
|
<select id="queryIdleDriver" resultType="com.stylefeng.guns.modular.system.model.TDriver">
|
select
|
id as id,
|
account as account,
|
jobNumber as jobNumber,
|
phone as phone,
|
password as password,
|
name as name,
|
sex as sex,
|
idCard as idCard,
|
companyId as companyId,
|
franchiseeId as franchiseeId,
|
headImgUrl as headImgUrl,
|
faceImgUrl as faceImgUrl,
|
idCardImgUrl1 as idCardImgUrl1,
|
idCardImgUrl2 as idCardImgUrl2,
|
placeOfEmployment as placeOfEmployment,
|
birthday as birthday,
|
bankCardNumber as bankCardNumber,
|
driverNationality as driverNationality,
|
driverNation as driverNation,
|
driverMaritalStatus as driverMaritalStatus,
|
driverLanguageLevel as driverLanguageLevel,
|
driverEducation as driverEducation,
|
driverCensus as driverCensus,
|
driverAddress as driverAddress,
|
driverContactAddress as driverContactAddress,
|
driverAge as driverAge,
|
driveCard as driveCard,
|
driveCardImgUrl as driveCardImgUrl,
|
driverType as driverType,
|
getDriverLicenseDate as getDriverLicenseDate,
|
driverLicenseOn as driverLicenseOn,
|
driverLicenseOff as driverLicenseOff,
|
taxiDriver as taxiDriver,
|
taxiAptitudeCard as taxiAptitudeCard,
|
networkCarlssueImg as networkCarlssueImg,
|
networkCarlssueOrganization as networkCarlssueOrganization,
|
networkCarlssueDate as networkCarlssueDate,
|
getNetworkCarProofDate as getNetworkCarProofDate,
|
networkCarProofOn as networkCarProofOn,
|
networkCarProofOff as networkCarProofOff,
|
registerDate as registerDate,
|
fullTimeDriver as fullTimeDriver,
|
inDriverBlacklist as inDriverBlacklist,
|
commercialType as commercialType,
|
contractCompany as contractCompany,
|
contractOn as contractOn,
|
contractOff as contractOff,
|
emergencyContact as emergencyContact,
|
emergencyContactPhone as emergencyContactPhone,
|
emergencyContactAddress as emergencyContactAddress,
|
remark as remark,
|
isPlatCar as isPlatCar,
|
carId as carId,
|
authState as authState,
|
state as state,
|
addType as addType,
|
balance as balance,
|
flag as flag,
|
insertTime as insertTime,
|
insertUser as insertUser,
|
updateTime as updateTime,
|
updateUser as updateUser
|
from t_driver
|
where flag != 3 and state = 2 and authState = 2
|
<if test="null != companyId">
|
<choose>
|
<when test="companyId != 1">
|
and companyId = #{companyId} or franchiseeId = #{companyId}
|
</when>
|
<otherwise>
|
and companyId is null or companyId = 0 or companyId = 1 or franchiseeId is null or franchiseeId = 0
|
</otherwise>
|
</choose>
|
|
</if>
|
and id in
|
(
|
select driverId from t_driver_work where startTime < now() and state = 1 and `type` like CONCAT('%', #{type}, '%')
|
)
|
and id in (select driverId from t_driver_orders where `type` = #{type})
|
</select>
|
<select id="inviteList" resultType="java.util.Map">
|
select t1.*,t2.phone,t2.avatar,t2.nickName from t_invite t1
|
left join t_user t2 on t2.id = t1.userId
|
where 1=1
|
<if test="null != uid">
|
and t1.inviteUserId = #{uid}
|
</if>
|
<if test="inviteName != null and inviteName != ''">
|
and t2.nickName LIKE CONCAT('%',#{inviteName},'%')
|
</if>
|
<if test="null != startTime and null != endTime">
|
and t1.registerTime between #{startTime} and #{endTime}
|
</if>
|
order by t1.registerTime desc
|
</select>
|
</mapper>
|