You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
5.2 KiB

<?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.qs.serve.modules.his.mapper.HisUserSupplierMapper">
<resultMap id="supplierVisitAddressMap" type="com.qs.serve.modules.his.entity.dto.HisUserSupplierAddressVo" >
<result property="supplierId" column="supplier_id"/>
<result property="addressId" column="address_id"/>
<result property="distance" column="distance"/>
</resultMap>
<select id="selectHisUserSupplierAddressList" parameterType="com.qs.serve.modules.his.entity.HisUserSupplier" resultMap="supplierVisitAddressMap">
SELECT DISTINCT
his_user_supplier.supplier_id,
bms_supplier_visit_address.id as address_id
<if test="query.localY!=null and query.localX!=null">
,st_distance_sphere (
POINT ( bms_supplier_visit_address.local_y, bms_supplier_visit_address.local_x ),
POINT ( #{query.localY}, #{query.localX} )) AS distance
</if>
FROM
`his_user_supplier` `his_user_supplier`
LEFT JOIN `bms_supplier_visit_address` `bms_supplier_visit_address`
ON `his_user_supplier`.`supplier_id` = bms_supplier_visit_address.`supplier_id`
and `bms_supplier_visit_address`.`del_flag` != 1
<where>
and `his_user_supplier`.`supplier_id` != 0
<if test="query.id != null"> and `his_user_supplier`.`id` = #{query.id}</if>
<if test="query.userId != null and query.userId != ''"> and `his_user_supplier`.`user_id` = #{query.userId}</if>
<if test="query.supplierId != null"> and `his_user_supplier`.`supplier_id` = #{query.supplierId}</if>
<if test="query.supplierName != null and query.supplierName != ''"> and `his_user_supplier`.`supplier_name` like concat('%',#{query.supplierName},'%') </if>
<if test="query.supplierCode != null and query.supplierCode != ''"> and `his_user_supplier`.`supplier_code` like concat('%',#{query.supplierCode},'%') </if>
<if test="query.type != null"> and `his_user_supplier`.`type` = #{query.type}</if>
<if test="query.regionId != null and query.regionId != ''"> and `his_user_supplier`.`region_id` = #{query.regionId}</if>
<if test="query.saleRegionFirst != null and query.saleRegionFirst != ''"> and `his_user_supplier`.`sale_region_first` = #{query.saleRegionFirst}</if>
<if test="query.saleRegionSecond != null and query.saleRegionSecond != ''"> and `his_user_supplier`.`sale_region_second` = #{query.saleRegionSecond}</if>
<if test="query.saleRegionThird != null and query.saleRegionThird != ''"> and `his_user_supplier`.`sale_region_third` = #{query.saleRegionThird}</if>
<if test="query.saleRegionFourthly != null and query.saleRegionFourthly != ''"> and `his_user_supplier`.`sale_region_fourthly` = #{query.saleRegionFourthly}</if>
<if test="query.masterFlag != null"> and `his_user_supplier`.`master_flag` = #{query.masterFlag}</if>
<if test="query.createTime != null"> and `his_user_supplier`.`create_time` = #{query.createTime}</if>
<if test="query.bizRegionFirst != null and query.bizRegionFirst != ''"> and `his_user_supplier`.`biz_region_first` = #{query.bizRegionFirst}</if>
<if test="query.bizRegionSecond != null and query.bizRegionSecond != ''"> and `his_user_supplier`.`biz_region_second` = #{query.bizRegionSecond}</if>
<if test="query.bizRegionThird != null and query.bizRegionThird != ''"> and `his_user_supplier`.`biz_region_third` = #{query.bizRegionThird}</if>
<if test="query.bizRegionFourthly != null and query.bizRegionFourthly != ''"> and `his_user_supplier`.`biz_region_fourthly` = #{query.bizRegionFourthly}</if>
<if test="query.tenantId != null and query.tenantId != ''"> and `his_user_supplier`.`tenant_id` = #{query.tenantId}</if>
<if test="query.costFlag != null"> and `his_user_supplier`.`cost_flag` = #{query.costFlag}</if>
<if test="query.queryAddress != null and query.queryAddress != ''"> and `bms_supplier_visit_address`.`address_detail` like concat('%',#{query.queryAddress},'%') </if>
<if test="query.queryValue != null and query.queryValue != ''">
and (`bms_supplier_visit_address`.`address_detail` like concat('%',#{query.queryValue},'%')
or `his_user_supplier`.`supplier_name` like concat('%',#{query.queryValue},'%')
or `his_user_supplier`.`supplier_code` like concat('%',#{query.queryValue},'%')
)
</if>
<if test="query.selectUserIds!=null and query.selectUserIds.size > 0">
and `his_user_supplier`.`user_id` in
<foreach collection="query.selectUserIds" item="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</if>
</where>
ORDER BY
<if test="query.localY!=null and query.localX!=null">
-distance desc,
</if>
his_user_supplier.supplier_id,
bms_supplier_visit_address.id
</select>
</mapper>