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.

111 lines
7.1 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="hisUserSupplierMap" type="com.qs.serve.modules.his.entity.HisUserSupplier" >
<result property="id" column="id"/>
<result property="userId" column="user_id"/>
<result property="supplierId" column="supplier_id"/>
<result property="supplierName" column="supplier_name"/>
<result property="supplierCode" column="supplier_code"/>
<result property="type" column="type"/>
<result property="regionId" column="region_id"/>
<result property="saleRegionFirst" column="sale_region_first"/>
<result property="saleRegionSecond" column="sale_region_second"/>
<result property="saleRegionThird" column="sale_region_third"/>
<result property="saleRegionFourthly" column="sale_region_fourthly"/>
<result property="masterFlag" column="master_flag"/>
<result property="createTime" column="create_time"/>
<result property="bizRegionFirst" column="biz_region_first"/>
<result property="bizRegionSecond" column="biz_region_second"/>
<result property="bizRegionThird" column="biz_region_third"/>
<result property="bizRegionFourthly" column="biz_region_fourthly"/>
<result property="costFlag" column="cost_flag"/>
<result property="addressId" column="address_id"/>
<result property="addressDetail" column="address_detail"/>
</resultMap>
<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>
<sql id="hisUserSupplierSql">
his_user_supplier.`id`,
his_user_supplier.`user_id`,
his_user_supplier.`supplier_id`,
his_user_supplier.`supplier_name`,
his_user_supplier.`supplier_code`,
his_user_supplier.`type`,
his_user_supplier.`region_id`,
his_user_supplier.`sale_region_first`,
his_user_supplier.`sale_region_second`,
his_user_supplier.`sale_region_third`,
his_user_supplier.`sale_region_fourthly`,
his_user_supplier.`master_flag`,
his_user_supplier.`create_time`,
his_user_supplier.`biz_region_first`,
his_user_supplier.`biz_region_second`,
his_user_supplier.`biz_region_third`,
his_user_supplier.`biz_region_fourthly`,
his_user_supplier.`tenant_id`,
his_user_supplier.`cost_flag` </sql>
<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>
</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>