Browse Source

入园人数统计

LIVE_YE 1 năm trước cách đây
mục cha
commit
90d1a4c7a5

+ 115 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/tourists/BomanTouristsNumberController.java

@@ -0,0 +1,115 @@
+package com.ruoyi.web.controller.tourists;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.BomanTouristsNumber;
+import com.ruoyi.system.service.IBomanTouristsNumberService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 记录浏览人数Controller
+ * 
+ * @author ruoyi
+ * @date 2024-04-03
+ */
+@RestController
+@RequestMapping("/system/number")
+public class BomanTouristsNumberController extends BaseController
+{
+    @Autowired
+    private IBomanTouristsNumberService bomanTouristsNumberService;
+
+    /**
+     * 查询记录浏览人数列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:number:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BomanTouristsNumber bomanTouristsNumber)
+    {
+        startPage();
+        List<BomanTouristsNumber> list = bomanTouristsNumberService.selectBomanTouristsNumberList(bomanTouristsNumber);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出记录浏览人数列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:number:export')")
+    @Log(title = "记录浏览人数", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BomanTouristsNumber bomanTouristsNumber)
+    {
+        List<BomanTouristsNumber> list = bomanTouristsNumberService.selectBomanTouristsNumberList(bomanTouristsNumber);
+        ExcelUtil<BomanTouristsNumber> util = new ExcelUtil<BomanTouristsNumber>(BomanTouristsNumber.class);
+        util.exportExcel(response, list, "记录浏览人数数据");
+    }
+
+    /**
+     * 获取记录浏览人数详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:number:query')")
+    @GetMapping(value = "/{touristsId}")
+    public AjaxResult getInfo(@PathVariable("touristsId") Long touristsId)
+    {
+        return success(bomanTouristsNumberService.selectBomanTouristsNumberByTouristsId(touristsId));
+    }
+
+    /**
+     * 新增记录浏览人数
+     */
+    @PreAuthorize("@ss.hasPermi('system:number:add')")
+    @Log(title = "记录浏览人数", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BomanTouristsNumber bomanTouristsNumber)
+    {
+        return toAjax(bomanTouristsNumberService.insertBomanTouristsNumber(bomanTouristsNumber));
+    }
+
+    /**
+     * 修改记录浏览人数
+     */
+    @PreAuthorize("@ss.hasPermi('system:number:edit')")
+    @Log(title = "记录浏览人数", businessType = BusinessType.UPDATE)
+    @PostMapping("/put")
+    public AjaxResult edit(@RequestBody BomanTouristsNumber bomanTouristsNumber)
+    {
+        return toAjax(bomanTouristsNumberService.updateBomanTouristsNumber(bomanTouristsNumber));
+    }
+
+    /**
+     * 删除记录浏览人数
+     */
+    @PreAuthorize("@ss.hasPermi('system:number:remove')")
+    @Log(title = "记录浏览人数", businessType = BusinessType.DELETE)
+	@GetMapping("/delete/{touristsIds}")
+    public AjaxResult remove(@PathVariable Long[] touristsIds)
+    {
+        return toAjax(bomanTouristsNumberService.deleteBomanTouristsNumberByTouristsIds(touristsIds));
+    }
+
+    /**
+     * 根据日期查询数据(返回总数)
+     */
+    @PreAuthorize("@ss.hasPermi('system:number:statistics')")
+    @Log(title = "记录浏览人数", businessType = BusinessType.DELETE)
+    @GetMapping("/statistics")
+    public AjaxResult num(BomanTouristsNumber bomanTouristsNumber)
+    {
+        return bomanTouristsNumberService.num(bomanTouristsNumber);
+    }
+}

+ 1 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java

@@ -113,7 +113,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 // 对于登录login 注册register 验证码captchaImage 允许匿名访问
                 .antMatchers("/login", "/register", "/captchaImage","/boman/common/**","/sendSms/**","/system/pinglun/**").permitAll()
                 .antMatchers("/system/personnel/**", "/reservat/config/**", "/reservat/time/**","/system/reservat/**","/system/news/**","/system/annex/listNo").permitAll()
-                .antMatchers("/system/dict/data/type/**","/system/app/new","/playvision/**","/wstest/**","/task/**","/system/camera/list").permitAll()
+                .antMatchers("/system/dict/data/type/**","/system/app/new","/playvision/**","/wstest/**","/task/**","/system/camera/list","/system/number/statistics").permitAll()
                 // 静态资源,可匿名访问
                 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
                 .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()

+ 105 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/BomanTouristsNumber.java

@@ -0,0 +1,105 @@
+package com.ruoyi.system.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 记录浏览人数对象 boman_tourists_number
+ * 
+ * @author ruoyi
+ * @date 2024-04-03
+ */
+public class BomanTouristsNumber extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** ID */
+    private Long touristsId;
+
+    /** 游客数量 */
+    @Excel(name = "游客数量")
+    private Long number;
+
+    /** 日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private String day;
+
+    /** 创建部门 */
+    @Excel(name = "创建部门")
+    private Long createDept;
+
+    private String startTime;
+    private String endTime;
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+    public void setTouristsId(Long touristsId)
+    {
+        this.touristsId = touristsId;
+    }
+
+    public Long getTouristsId() 
+    {
+        return touristsId;
+    }
+    public void setNumber(Long number) 
+    {
+        this.number = number;
+    }
+
+    public Long getNumber() 
+    {
+        return number;
+    }
+    public void setDay(String day)
+    {
+        this.day = day;
+    }
+
+    public String getDay()
+    {
+        return day;
+    }
+    public void setCreateDept(Long createDept) 
+    {
+        this.createDept = createDept;
+    }
+
+    public Long getCreateDept() 
+    {
+        return createDept;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("touristsId", getTouristsId())
+            .append("number", getNumber())
+            .append("day", getDay())
+            .append("createDept", getCreateDept())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/BomanTouristsNumberMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.BomanTouristsNumber;
+
+/**
+ * 记录浏览人数Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-04-03
+ */
+public interface BomanTouristsNumberMapper 
+{
+    /**
+     * 查询记录浏览人数
+     * 
+     * @param touristsId 记录浏览人数主键
+     * @return 记录浏览人数
+     */
+    public BomanTouristsNumber selectBomanTouristsNumberByTouristsId(Long touristsId);
+
+    /**
+     * 查询记录浏览人数列表
+     * 
+     * @param bomanTouristsNumber 记录浏览人数
+     * @return 记录浏览人数集合
+     */
+    public List<BomanTouristsNumber> selectBomanTouristsNumberList(BomanTouristsNumber bomanTouristsNumber);
+
+    /**
+     * 新增记录浏览人数
+     * 
+     * @param bomanTouristsNumber 记录浏览人数
+     * @return 结果
+     */
+    public int insertBomanTouristsNumber(BomanTouristsNumber bomanTouristsNumber);
+
+    /**
+     * 修改记录浏览人数
+     * 
+     * @param bomanTouristsNumber 记录浏览人数
+     * @return 结果
+     */
+    public int updateBomanTouristsNumber(BomanTouristsNumber bomanTouristsNumber);
+
+    /**
+     * 删除记录浏览人数
+     * 
+     * @param touristsId 记录浏览人数主键
+     * @return 结果
+     */
+    public int deleteBomanTouristsNumberByTouristsId(Long touristsId);
+
+    /**
+     * 批量删除记录浏览人数
+     * 
+     * @param touristsIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBomanTouristsNumberByTouristsIds(Long[] touristsIds);
+}

+ 65 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IBomanTouristsNumberService.java

@@ -0,0 +1,65 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.system.domain.BomanTouristsNumber;
+
+/**
+ * 记录浏览人数Service接口
+ * 
+ * @author ruoyi
+ * @date 2024-04-03
+ */
+public interface IBomanTouristsNumberService 
+{
+    /**
+     * 查询记录浏览人数
+     * 
+     * @param touristsId 记录浏览人数主键
+     * @return 记录浏览人数
+     */
+    public BomanTouristsNumber selectBomanTouristsNumberByTouristsId(Long touristsId);
+
+    /**
+     * 查询记录浏览人数列表
+     * 
+     * @param bomanTouristsNumber 记录浏览人数
+     * @return 记录浏览人数集合
+     */
+    public List<BomanTouristsNumber> selectBomanTouristsNumberList(BomanTouristsNumber bomanTouristsNumber);
+
+    /**
+     * 新增记录浏览人数
+     * 
+     * @param bomanTouristsNumber 记录浏览人数
+     * @return 结果
+     */
+    public int insertBomanTouristsNumber(BomanTouristsNumber bomanTouristsNumber);
+
+    /**
+     * 修改记录浏览人数
+     * 
+     * @param bomanTouristsNumber 记录浏览人数
+     * @return 结果
+     */
+    public int updateBomanTouristsNumber(BomanTouristsNumber bomanTouristsNumber);
+
+    /**
+     * 批量删除记录浏览人数
+     * 
+     * @param touristsIds 需要删除的记录浏览人数主键集合
+     * @return 结果
+     */
+    public int deleteBomanTouristsNumberByTouristsIds(Long[] touristsIds);
+
+    /**
+     * 删除记录浏览人数信息
+     * 
+     * @param touristsId 记录浏览人数主键
+     * @return 结果
+     */
+    public int deleteBomanTouristsNumberByTouristsId(Long touristsId);
+
+    AjaxResult num(BomanTouristsNumber bomanTouristsNumber);
+}

+ 15 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/Task.java

@@ -3,7 +3,10 @@ package com.ruoyi.system.service;
 
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.core.text.Convert;
+import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.domain.BomanTouristsNumber;
+import com.ruoyi.system.mapper.BomanTouristsNumberMapper;
 import com.ruoyi.system.mapper.SysUserMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
@@ -18,6 +21,9 @@ public class Task {
     @Autowired
     private static RedisCache redisCache;
 
+    @Autowired
+    private BomanTouristsNumberMapper bomanTouristsNumberMapper;
+
     @Autowired
     public void setRedisCache(RedisCache redisCache) {
         Task.redisCache = redisCache;
@@ -30,7 +36,9 @@ public class Task {
     @Scheduled(cron = "0 1 0 * * ? ")
     //@Scheduled(cron = "0 0/2 * * * ?")
     public void generateDb() throws Exception {
+        //当前
         String configKey = "lyssllsj";
+        //前一天
         String configKey_1 = "lyssllsj_1";
         String configValue = Convert.toStr(redisCache.getCacheObject(configKey));
         if(StringUtils.isEmpty(configValue)){
@@ -39,6 +47,13 @@ public class Task {
         redisCache.setCacheObject(configKey_1, configValue);
         redisCache.setCacheObject(configKey, String.valueOf("0"));
 
+        BomanTouristsNumber bomanTouristsNumber = new BomanTouristsNumber();
+        bomanTouristsNumber.setNumber(Long.valueOf(configValue));
+        //获取当前时间的前一天
+        bomanTouristsNumber.setDay(DateUtils.getDateByDays(-1));
+        bomanTouristsNumber.setCreateTime(DateUtils.getNowDate());
+        bomanTouristsNumberMapper.insertBomanTouristsNumber(bomanTouristsNumber);
+
         System.out.println("定时任务结束");
 
     }

+ 131 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BomanTouristsNumberServiceImpl.java

@@ -0,0 +1,131 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.core.text.Convert;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.BomanTouristsNumberMapper;
+import com.ruoyi.system.domain.BomanTouristsNumber;
+import com.ruoyi.system.service.IBomanTouristsNumberService;
+
+/**
+ * 记录浏览人数Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-04-03
+ */
+@Service
+public class BomanTouristsNumberServiceImpl implements IBomanTouristsNumberService 
+{
+    @Autowired
+    private BomanTouristsNumberMapper bomanTouristsNumberMapper;
+
+    @Autowired
+    private static RedisCache redisCache;
+    @Autowired
+    public void setRedisCache(RedisCache redisCache) {
+        BomanTouristsNumberServiceImpl.redisCache = redisCache;
+    }
+
+    /**
+     * 查询记录浏览人数
+     * 
+     * @param touristsId 记录浏览人数主键
+     * @return 记录浏览人数
+     */
+    @Override
+    public BomanTouristsNumber selectBomanTouristsNumberByTouristsId(Long touristsId)
+    {
+        return bomanTouristsNumberMapper.selectBomanTouristsNumberByTouristsId(touristsId);
+    }
+
+    /**
+     * 查询记录浏览人数列表
+     * 
+     * @param bomanTouristsNumber 记录浏览人数
+     * @return 记录浏览人数
+     */
+    @Override
+    public List<BomanTouristsNumber> selectBomanTouristsNumberList(BomanTouristsNumber bomanTouristsNumber)
+    {
+        return bomanTouristsNumberMapper.selectBomanTouristsNumberList(bomanTouristsNumber);
+    }
+
+    /**
+     * 新增记录浏览人数
+     * 
+     * @param bomanTouristsNumber 记录浏览人数
+     * @return 结果
+     */
+    @Override
+    public int insertBomanTouristsNumber(BomanTouristsNumber bomanTouristsNumber)
+    {
+        bomanTouristsNumber.setCreateTime(DateUtils.getNowDate());
+        return bomanTouristsNumberMapper.insertBomanTouristsNumber(bomanTouristsNumber);
+    }
+
+    /**
+     * 修改记录浏览人数
+     * 
+     * @param bomanTouristsNumber 记录浏览人数
+     * @return 结果
+     */
+    @Override
+    public int updateBomanTouristsNumber(BomanTouristsNumber bomanTouristsNumber)
+    {
+        bomanTouristsNumber.setUpdateTime(DateUtils.getNowDate());
+        return bomanTouristsNumberMapper.updateBomanTouristsNumber(bomanTouristsNumber);
+    }
+
+    /**
+     * 批量删除记录浏览人数
+     * 
+     * @param touristsIds 需要删除的记录浏览人数主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBomanTouristsNumberByTouristsIds(Long[] touristsIds)
+    {
+        return bomanTouristsNumberMapper.deleteBomanTouristsNumberByTouristsIds(touristsIds);
+    }
+
+    /**
+     * 删除记录浏览人数信息
+     * 
+     * @param touristsId 记录浏览人数主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBomanTouristsNumberByTouristsId(Long touristsId)
+    {
+        return bomanTouristsNumberMapper.deleteBomanTouristsNumberByTouristsId(touristsId);
+    }
+
+    @Override
+    public AjaxResult num(BomanTouristsNumber bomanTouristsNumber) {
+
+        List<BomanTouristsNumber> bomanTouristsNumberList = bomanTouristsNumberMapper.selectBomanTouristsNumberList(bomanTouristsNumber);
+        Long num = 0L;
+        if(bomanTouristsNumberList!=null && bomanTouristsNumberList.size()>0){
+            for (BomanTouristsNumber touristsNumber : bomanTouristsNumberList) {
+                num = num + touristsNumber.getNumber();
+            }
+        }
+        //获取当前时间
+        String date = DateUtils.getDate();
+        if(date.equals(bomanTouristsNumber.getEndTime())){
+            //当前
+            String configKey = "lyssllsj";
+            String configValue = Convert.toStr(redisCache.getCacheObject(configKey));
+            if(StringUtils.isNotEmpty(configValue)){
+                num = num + Long.valueOf(configValue);
+            }
+        }
+        return AjaxResult.success(num);
+    }
+}

+ 91 - 0
ruoyi-system/src/main/resources/mapper/system/BomanTouristsNumberMapper.xml

@@ -0,0 +1,91 @@
+<?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.BomanTouristsNumberMapper">
+    
+    <resultMap type="BomanTouristsNumber" id="BomanTouristsNumberResult">
+        <result property="touristsId"    column="tourists_id"    />
+        <result property="number"    column="number"    />
+        <result property="day"    column="day"    />
+        <result property="createDept"    column="create_dept"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectBomanTouristsNumberVo">
+        select tourists_id, number, day, create_dept, create_by, create_time, update_by, update_time, remark from boman_tourists_number
+    </sql>
+
+    <select id="selectBomanTouristsNumberList" parameterType="BomanTouristsNumber" resultMap="BomanTouristsNumberResult">
+        <include refid="selectBomanTouristsNumberVo"/>
+        <where>  
+            <if test="number != null "> and number = #{number}</if>
+            <if test="createDept != null "> and create_dept = #{createDept}</if>
+            <if test="startTime != null and startTime != ''"><!-- 开始时间检索 -->
+                AND date_format(day,'%y%m%d') &gt;= date_format(#{startTime},'%y%m%d')
+            </if>
+            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
+                AND date_format(day,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
+            </if>
+        </where>
+    </select>
+    
+    <select id="selectBomanTouristsNumberByTouristsId" parameterType="Long" resultMap="BomanTouristsNumberResult">
+        <include refid="selectBomanTouristsNumberVo"/>
+        where tourists_id = #{touristsId}
+    </select>
+        
+    <insert id="insertBomanTouristsNumber" parameterType="BomanTouristsNumber" useGeneratedKeys="true" keyProperty="touristsId">
+        insert into boman_tourists_number
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="number != null">number,</if>
+            <if test="day != null">day,</if>
+            <if test="createDept != null">create_dept,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="number != null">#{number},</if>
+            <if test="day != null">#{day},</if>
+            <if test="createDept != null">#{createDept},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBomanTouristsNumber" parameterType="BomanTouristsNumber">
+        update boman_tourists_number
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="number != null">number = #{number},</if>
+            <if test="day != null">day = #{day},</if>
+            <if test="createDept != null">create_dept = #{createDept},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where tourists_id = #{touristsId}
+    </update>
+
+    <delete id="deleteBomanTouristsNumberByTouristsId" parameterType="Long">
+        delete from boman_tourists_number where tourists_id = #{touristsId}
+    </delete>
+
+    <delete id="deleteBomanTouristsNumberByTouristsIds" parameterType="String">
+        delete from boman_tourists_number where tourists_id in 
+        <foreach item="touristsId" collection="array" open="(" separator="," close=")">
+            #{touristsId}
+        </foreach>
+    </delete>
+</mapper>