2024-09-18 20:17:55 +08:00
|
|
|
<?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.ruoyi.system.mapper.StoreMapper">
|
|
|
|
|
|
|
|
<resultMap type="StoreVo" id="SmStoreResult" autoMapping="true"/>
|
|
|
|
|
|
|
|
<sql id="selectSmStoreVo">
|
|
|
|
select
|
|
|
|
ss.store_id,
|
|
|
|
ss.name,
|
|
|
|
ss.user_id,
|
|
|
|
ss.group_sort,
|
|
|
|
ss.is_default,
|
|
|
|
ss.address,
|
|
|
|
ss.lng,
|
|
|
|
ss.lat,
|
|
|
|
ss.create_time,
|
|
|
|
ss.create_by,
|
|
|
|
ss.update_time,
|
|
|
|
ss.update_by,
|
|
|
|
ss.deleted,
|
|
|
|
ss.picture,
|
|
|
|
ss.business_time_start,
|
|
|
|
ss.business_time_end,
|
|
|
|
ss.province,
|
|
|
|
ss.city,
|
|
|
|
ss.county,
|
|
|
|
ss.type,
|
|
|
|
ss.contact_name,
|
|
|
|
ss.contact_mobile,
|
|
|
|
ss.show,
|
|
|
|
ss.status,
|
|
|
|
ss.enabled,
|
2024-09-19 11:25:42 +08:00
|
|
|
ss.agent_id,
|
2024-09-19 17:13:15 +08:00
|
|
|
ss.is_free_car,
|
|
|
|
ss.server_phone,
|
2024-09-18 20:17:55 +08:00
|
|
|
su.user_name as user_name
|
|
|
|
from rl_store ss
|
|
|
|
left join rl_user su on su.user_id = ss.user_id
|
|
|
|
</sql>
|
|
|
|
|
|
|
|
<sql id="searchCondition">
|
|
|
|
<if test="query.name != null and query.name != ''"> and ss.name like concat('%', #{query.name}, '%')</if>
|
|
|
|
<if test="query.userId != null "> and ss.user_id = #{query.userId}</if>
|
|
|
|
<if test="query.show != null "> and ss.show = #{query.show}</if>
|
|
|
|
<if test="query.storeId != null "> and ss.store_id = #{query.storeId}</if>
|
|
|
|
<if test="query.isDefault != null "> and ss.is_default = #{query.isDefault}</if>
|
|
|
|
<if test="query.type != null "> and ss.type = #{query.type}</if>
|
|
|
|
<if test="query.address != null and query.address != ''"> and ss.address like concat('%', #{query.address}, '%')</if>
|
2024-09-19 11:25:42 +08:00
|
|
|
<if test="query.agentId != null "> and ss.agent_id = #{query.agentId}</if>
|
2024-09-18 20:17:55 +08:00
|
|
|
<if test="query.userName != null "> and su.user_name like concat('%', #{query.userName}, '%')</if>
|
|
|
|
<if test="query.status != null "> and ss.status = #{query.status}</if>
|
|
|
|
<if test="query.enabled != null "> and ss.enabled = #{query.enabled}</if>
|
2024-09-19 17:13:15 +08:00
|
|
|
<if test="query.isFreeCar != null "> and ss.is_free_car = #{query.isFreeCar}</if>
|
2024-09-18 20:17:55 +08:00
|
|
|
<if test="query.keyword != null and query.keyword != ''">
|
|
|
|
and (
|
|
|
|
ss.name like concat('%', #{query.keyword}, '%')
|
|
|
|
or ss.contact_name like concat('%', #{query.keyword}, '%')
|
|
|
|
or ss.contact_mobile like concat('%', #{query.keyword}, '%')
|
|
|
|
or ss.address like concat('%', #{query.keyword}, '%')
|
|
|
|
)
|
|
|
|
</if>
|
|
|
|
<if test="query.center != null and query.center.size() == 2 and query.radius != null">
|
|
|
|
and #{query.radius} >= round(st_distance_sphere(point(#{query.center[0]}, #{query.center[1]}), point(ss.lng, ss.lat)))
|
|
|
|
</if>
|
|
|
|
<if test="query.storeIds != null and query.storeIds.size() > 0">
|
|
|
|
and ss.store_id in
|
|
|
|
<foreach collection="query.storeIds" close=")" item="item" open="(" separator=",">
|
|
|
|
#{item}
|
|
|
|
</foreach>
|
|
|
|
</if>
|
|
|
|
<if test="query.userIds != null and query.userIds.size() > 0">
|
|
|
|
and ss.user_id in
|
|
|
|
<foreach collection="query.userIds" close=")" item="item" open="(" separator=",">
|
|
|
|
#{item}
|
|
|
|
</foreach>
|
|
|
|
</if>
|
|
|
|
</sql>
|
|
|
|
|
|
|
|
<select id="selectSmStoreList" parameterType="StoreQuery" resultMap="SmStoreResult">
|
|
|
|
<include refid="selectSmStoreVo"/>
|
|
|
|
<where>
|
|
|
|
<include refid="searchCondition"/>
|
|
|
|
</where>
|
|
|
|
order by ss.group_sort asc, ss.create_time asc
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<select id="selectSmStoreById" parameterType="Long" resultMap="SmStoreResult">
|
|
|
|
<include refid="selectSmStoreVo"/>
|
|
|
|
where ss.store_id = #{storeId} and ss.deleted = false
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<select id="selectSmStoreByIds" resultMap="SmStoreResult">
|
|
|
|
<include refid="selectSmStoreVo"/>
|
|
|
|
where ss.store_id in
|
|
|
|
<foreach collection="storeIds" close=")" item="item" open="(" separator=",">
|
|
|
|
#{item}
|
|
|
|
</foreach>
|
|
|
|
and ss.deleted = false
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<select id="selectCount" resultType="java.lang.Integer">
|
|
|
|
select count(ss.store_id)
|
|
|
|
from rl_store ss
|
|
|
|
<where>
|
|
|
|
<include refid="searchCondition"/>
|
|
|
|
</where>
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<select id="selectOne" resultMap="SmStoreResult">
|
|
|
|
<include refid="selectSmStoreVo"/>
|
|
|
|
<where>
|
|
|
|
<include refid="searchCondition"/>
|
|
|
|
</where>
|
|
|
|
order by ss.group_sort asc, ss.create_time asc
|
|
|
|
limit 1
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<select id="selectCommonCount" resultType="com.ruoyi.system.domain.store.StoreCountVO">
|
|
|
|
<trim prefix="select" suffixOverrides=",">
|
|
|
|
<if test="query.groupBy != null">
|
|
|
|
ss.${query.groupBy},
|
|
|
|
</if>
|
|
|
|
count(ss.store_id) as `count`
|
|
|
|
</trim>
|
|
|
|
from rl_store ss
|
|
|
|
<where>
|
|
|
|
<include refid="searchCondition"/>
|
|
|
|
</where>
|
|
|
|
<if test="query.groupBy != null">
|
|
|
|
group by ss.${query.groupBy}
|
|
|
|
</if>
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<insert id="insertSmStore" parameterType="Store" useGeneratedKeys="true" keyProperty="storeId">
|
|
|
|
<selectKey keyProperty="storeId" resultType="Long" order="AFTER">
|
|
|
|
SELECT LAST_INSERT_ID();
|
|
|
|
</selectKey>
|
|
|
|
insert into rl_store
|
|
|
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
|
|
|
<if test="name != null">name,</if>
|
|
|
|
<if test="userId != null">user_id,</if>
|
|
|
|
<if test="createTime != null">create_time,</if>
|
|
|
|
<if test="createBy != null">create_by,</if>
|
|
|
|
<if test="groupSort != null">group_sort,</if>
|
|
|
|
<if test="isDefault != null">is_default,</if>
|
|
|
|
<if test="picture != null">picture,</if>
|
|
|
|
<if test="address != null and address != ''">address,</if>
|
|
|
|
<if test="lng != null">lng,</if>
|
|
|
|
<if test="lat != null">lat,</if>
|
|
|
|
<if test="businessTimeStart != null">business_time_start,</if>
|
|
|
|
<if test="businessTimeEnd != null">business_time_end,</if>
|
|
|
|
<if test="province != null">province,</if>
|
|
|
|
<if test="city != null">city,</if>
|
|
|
|
<if test="county != null">county,</if>
|
|
|
|
<if test="type != null">`type`,</if>
|
|
|
|
<if test="contactName != null">`contact_name`,</if>
|
|
|
|
<if test="contactMobile != null">`contact_mobile`,</if>
|
|
|
|
<if test="show != null">`show`,</if>
|
|
|
|
<if test="status != null">`status`,</if>
|
|
|
|
<if test="enabled != null">`enabled`,</if>
|
2024-09-19 17:13:15 +08:00
|
|
|
<if test="agentId != null">agent_id,</if>
|
|
|
|
<if test="isFreeCar != null">is_free_car,</if>
|
|
|
|
<if test="serverPhone != null">server_phone,</if>
|
2024-09-18 20:17:55 +08:00
|
|
|
</trim>
|
|
|
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
|
|
|
<if test="name != null">#{name},</if>
|
|
|
|
<if test="userId != null">#{userId},</if>
|
|
|
|
<if test="createTime != null">#{createTime},</if>
|
|
|
|
<if test="createBy != null">#{createBy},</if>
|
|
|
|
<if test="groupSort != null">#{groupSort},</if>
|
|
|
|
<if test="isDefault != null">#{isDefault},</if>
|
|
|
|
<if test="picture != null">#{picture},</if>
|
|
|
|
<if test="address != null and address != ''">#{address},</if>
|
|
|
|
<if test="lng != null">#{lng},</if>
|
|
|
|
<if test="lat != null">#{lat},</if>
|
|
|
|
<if test="businessTimeStart != null">#{businessTimeStart},</if>
|
|
|
|
<if test="businessTimeEnd != null">#{businessTimeEnd},</if>
|
|
|
|
<if test="province != null">#{province},</if>
|
|
|
|
<if test="city != null">#{city},</if>
|
|
|
|
<if test="county != null">#{county},</if>
|
|
|
|
<if test="type != null">#{type},</if>
|
|
|
|
<if test="contactName != null">#{contactName},</if>
|
|
|
|
<if test="contactMobile != null">#{contactMobile},</if>
|
|
|
|
<if test="show != null">#{show},</if>
|
|
|
|
<if test="status != null">#{status},</if>
|
|
|
|
<if test="enabled != null">#{enabled},</if>
|
2024-09-19 17:13:15 +08:00
|
|
|
<if test="agentId != null">#{agentId},</if>
|
|
|
|
<if test="isFreeCar != null">#{isFreeCar},</if>
|
|
|
|
<if test="serverPhone != null">#{serverPhone},</if>
|
2024-09-18 20:17:55 +08:00
|
|
|
</trim>
|
|
|
|
</insert>
|
|
|
|
|
|
|
|
<update id="updateSmStore" parameterType="Store">
|
|
|
|
update rl_store
|
|
|
|
<trim prefix="SET" suffixOverrides=",">
|
|
|
|
<include refid="updateColumns"/>
|
|
|
|
</trim>
|
|
|
|
where store_id = #{data.storeId}
|
|
|
|
</update>
|
|
|
|
|
|
|
|
<sql id="updateColumns">
|
|
|
|
<if test="data.name != null">`name` = #{data.name},</if>
|
|
|
|
<if test="data.userId != null">user_id = #{data.userId},</if>
|
|
|
|
<if test="data.groupSort != null">group_sort = #{data.groupSort},</if>
|
|
|
|
<if test="data.picture != null">picture = #{data.picture},</if>
|
|
|
|
<if test="data.address != null and data.address != ''">address = #{data.address},</if>
|
|
|
|
<if test="data.lng != null">lng = #{data.lng},</if>
|
|
|
|
<if test="data.lat != null">lat = #{data.lat},</if>
|
|
|
|
<if test="data.businessTimeStart != null">business_time_start = #{data.businessTimeStart},</if>
|
|
|
|
<if test="data.businessTimeEnd != null">business_time_end = #{data.businessTimeEnd},</if>
|
|
|
|
<if test="data.province != null">province = #{data.province},</if>
|
|
|
|
<if test="data.city != null">city = #{data.city},</if>
|
|
|
|
<if test="data.county != null">county = #{data.county},</if>
|
|
|
|
<if test="data.type != null">`type` = #{data.type},</if>
|
|
|
|
<if test="data.updateTime != null">`update_time` = #{data.updateTime},</if>
|
|
|
|
<if test="data.updateBy != null">`update_by` = #{data.updateBy},</if>
|
|
|
|
<if test="data.contactName != null">`contact_name` = #{data.contactName},</if>
|
|
|
|
<if test="data.contactMobile != null">`contact_mobile` = #{data.contactMobile},</if>
|
|
|
|
<if test="data.show != null">`show` = #{data.show},</if>
|
|
|
|
<if test="data.status != null">`status` = #{data.status},</if>
|
|
|
|
<if test="data.enabled != null">`enabled` = #{data.enabled},</if>
|
2024-09-19 17:13:15 +08:00
|
|
|
<if test="data.agentId != null">agent_id = #{data.agentId},</if>
|
|
|
|
<if test="data.isFreeCar != null">is_free_car = #{data.isFreeCar},</if>
|
|
|
|
<if test="data.serverPhone != null">server_phone = #{data.serverPhone},</if>
|
2024-09-18 20:17:55 +08:00
|
|
|
</sql>
|
|
|
|
|
|
|
|
<update id="updateByQuery">
|
|
|
|
update rl_store ss
|
|
|
|
<trim prefix="SET" suffixOverrides=",">
|
|
|
|
<include refid="updateColumns"/>
|
|
|
|
</trim>
|
|
|
|
<where>
|
|
|
|
<include refid="searchCondition"/>
|
|
|
|
</where>
|
|
|
|
</update>
|
|
|
|
|
|
|
|
<update id="updateSort">
|
|
|
|
update rl_store
|
|
|
|
set group_sort = group_sort + #{offset}
|
|
|
|
where group_sort between #{start} and #{end}
|
|
|
|
</update>
|
|
|
|
|
|
|
|
<update id="batchUpdate">
|
|
|
|
UPDATE rl_store
|
|
|
|
<trim prefix="SET" suffixOverrides=",">
|
|
|
|
<foreach open="name = CASE store_id" collection="list" item="item" close="END,">
|
|
|
|
<choose>
|
|
|
|
<when test="item.name != null">
|
|
|
|
WHEN #{item.storeId} THEN #{item.name}
|
|
|
|
</when>
|
|
|
|
<otherwise>
|
|
|
|
WHEN #{item.storeId} THEN name
|
|
|
|
</otherwise>
|
|
|
|
</choose>
|
|
|
|
</foreach>
|
|
|
|
<foreach open="user_id = CASE store_id" collection="list" item="item" close="END,">
|
|
|
|
<choose>
|
|
|
|
<when test="item.userId != null">
|
|
|
|
WHEN #{item.storeId} THEN #{item.userId}
|
|
|
|
</when>
|
|
|
|
<otherwise>
|
|
|
|
WHEN #{item.storeId} THEN user_id
|
|
|
|
</otherwise>
|
|
|
|
</choose>
|
|
|
|
</foreach>
|
|
|
|
<foreach open="group_sort = CASE store_id" collection="list" item="item" close="END,">
|
|
|
|
<choose>
|
|
|
|
<when test="item.groupSort != null">
|
|
|
|
WHEN #{item.storeId} THEN #{item.groupSort}
|
|
|
|
</when>
|
|
|
|
<otherwise>
|
|
|
|
WHEN #{item.storeId} THEN group_sort
|
|
|
|
</otherwise>
|
|
|
|
</choose>
|
|
|
|
</foreach>
|
|
|
|
</trim>
|
|
|
|
WHERE store_id IN
|
|
|
|
<foreach open="(" collection="list" item="item" close=")" separator=",">
|
|
|
|
#{item.storeId}
|
|
|
|
</foreach>
|
|
|
|
</update>
|
|
|
|
|
|
|
|
<update id="logicDel">
|
|
|
|
update rl_store
|
|
|
|
set deleted = true
|
|
|
|
where store_id in
|
|
|
|
<foreach item="id" collection="ids" open="(" separator="," close=")">
|
|
|
|
#{id}
|
|
|
|
</foreach>
|
|
|
|
</update>
|
|
|
|
|
|
|
|
<update id="setDefault">
|
|
|
|
update rl_store
|
|
|
|
set is_default = if(store_id = #{storeId}, true, false)
|
|
|
|
where user_id = #{userId}
|
|
|
|
</update>
|
|
|
|
|
|
|
|
<delete id="deleteSmStoreById" parameterType="Long">
|
|
|
|
delete from rl_store where store_id = #{storeId}
|
|
|
|
</delete>
|
|
|
|
|
|
|
|
<delete id="deleteSmStoreByIds" parameterType="String">
|
|
|
|
delete from rl_store where store_id in
|
|
|
|
<foreach item="storeId" collection="array" open="(" separator="," close=")">
|
|
|
|
#{storeId}
|
|
|
|
</foreach>
|
|
|
|
</delete>
|
|
|
|
</mapper>
|