diff --git a/ruoyi-ui/src/api/benyi/schoolcharge.js b/ruoyi-ui/src/api/benyi/schoolcharge.js new file mode 100644 index 000000000..377c84c04 --- /dev/null +++ b/ruoyi-ui/src/api/benyi/schoolcharge.js @@ -0,0 +1,53 @@ +import request from '@/utils/request' + +// 查询园所收费标准列表 +export function listSchoolcharge(query) { + return request({ + url: '/benyi/schoolcharge/list', + method: 'get', + params: query + }) +} + +// 查询园所收费标准详细 +export function getSchoolcharge(id) { + return request({ + url: '/benyi/schoolcharge/' + id, + method: 'get' + }) +} + +// 新增园所收费标准 +export function addSchoolcharge(data) { + return request({ + url: '/benyi/schoolcharge', + method: 'post', + data: data + }) +} + +// 修改园所收费标准 +export function updateSchoolcharge(data) { + return request({ + url: '/benyi/schoolcharge', + method: 'put', + data: data + }) +} + +// 删除园所收费标准 +export function delSchoolcharge(id) { + return request({ + url: '/benyi/schoolcharge/' + id, + method: 'delete' + }) +} + +// 导出园所收费标准 +export function exportSchoolcharge(query) { + return request({ + url: '/benyi/schoolcharge/export', + method: 'get', + params: query + }) +} \ No newline at end of file diff --git a/ruoyi-ui/src/views/benyi/schoolcharge/index.vue b/ruoyi-ui/src/views/benyi/schoolcharge/index.vue new file mode 100644 index 000000000..cfef20d60 --- /dev/null +++ b/ruoyi-ui/src/views/benyi/schoolcharge/index.vue @@ -0,0 +1,227 @@ +<template> + <div class="app-container"> + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="success" + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['benyi:schoolcharge:edit']" + >修改</el-button + > + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['benyi:schoolcharge:remove']" + >删除</el-button + > + </el-col> + </el-row> + + <el-table + v-loading="loading" + :data="schoolchargeList" + @selection-change="handleSelectionChange" + > + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="园所名称" align="center" prop="dept.deptName" /> + <el-table-column label="保育费/月" align="center" prop="byf" /> + <el-table-column label="伙食费/天" align="center" prop="hsf" /> + <el-table-column + label="操作" + align="center" + class-name="small-padding fixed-width" + > + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['benyi:schoolcharge:edit']" + >修改</el-button + > + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['benyi:schoolcharge:remove']" + >删除</el-button + > + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total > 0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 添加或修改园所收费标准对话框 --> + <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label="保育费(月)" prop="byf"> + <el-input-number v-model="form.byf" :precision="2" placeholder="请输入保育费" /> + </el-form-item> + <el-form-item label="伙食费(天)" prop="hsf"> + <el-input-number v-model="form.hsf" :precision="2" placeholder="请输入伙食费" /> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">确 定</el-button> + <el-button @click="cancel">取 消</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { + listSchoolcharge, + getSchoolcharge, + delSchoolcharge, + addSchoolcharge, + updateSchoolcharge, +} from "@/api/benyi/schoolcharge"; + +export default { + name: "Schoolcharge", + data() { + return { + // 遮罩层 + loading: true, + // 选中数组 + ids: [], + // 非单个禁用 + single: true, + // 非多个禁用 + multiple: true, + // 总条数 + total: 0, + // 园所收费标准表格数据 + schoolchargeList: [], + // 弹出层标题 + title: "", + // 是否显示弹出层 + open: false, + // 查询参数 + queryParams: { + pageNum: 1, + pageSize: 10, + deptId: undefined, + byf: undefined, + hsf: undefined, + createUserid: undefined, + }, + // 表单参数 + form: {}, + // 表单校验 + rules: {}, + }; + }, + created() { + this.getList(); + }, + methods: { + /** 查询园所收费标准列表 */ + getList() { + this.loading = true; + listSchoolcharge(this.queryParams).then((response) => { + this.schoolchargeList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 取消按钮 + cancel() { + this.open = false; + this.reset(); + }, + // 表单重置 + reset() { + this.form = { + id: undefined, + deptId: undefined, + byf: undefined, + hsf: undefined, + createUserid: undefined, + createTime: undefined, + }; + this.resetForm("form"); + }, + // 多选框选中数据 + handleSelectionChange(selection) { + this.ids = selection.map((item) => item.id); + this.single = selection.length != 1; + this.multiple = !selection.length; + }, + /** 修改按钮操作 */ + handleUpdate(row) { + this.reset(); + if (row.id == null) { + this.open = true; + this.title = "添加园所收费标准"; + } else { + const id = row.id || this.ids; + getSchoolcharge(id).then((response) => { + this.form = response.data; + this.open = true; + this.title = "修改园所收费标准"; + }); + } + }, + /** 提交按钮 */ + submitForm: function () { + this.$refs["form"].validate((valid) => { + if (valid) { + if (this.form.id != undefined) { + updateSchoolcharge(this.form).then((response) => { + if (response.code === 200) { + this.msgSuccess("修改成功"); + this.open = false; + this.getList(); + } + }); + } else { + addSchoolcharge(this.form).then((response) => { + if (response.code === 200) { + this.msgSuccess("新增成功"); + this.open = false; + this.getList(); + } + }); + } + } + }); + }, + /** 删除按钮操作 */ + handleDelete(row) { + const ids = row.id || this.ids; + this.$confirm("是否确认删除园所收费标准数据项?", "警告", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + }) + .then(function () { + return delSchoolcharge(ids); + }) + .then(() => { + this.getList(); + this.msgSuccess("删除成功"); + }) + .catch(function () {}); + }, + }, +}; +</script> \ No newline at end of file diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/BySchoolchargeController.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/BySchoolchargeController.java new file mode 100644 index 000000000..ecae8fe69 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/BySchoolchargeController.java @@ -0,0 +1,100 @@ +package com.ruoyi.project.benyi.controller; + +import java.util.List; + +import com.ruoyi.common.utils.SecurityUtils; +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.framework.aspectj.lang.annotation.Log; +import com.ruoyi.framework.aspectj.lang.enums.BusinessType; +import com.ruoyi.project.benyi.domain.BySchoolcharge; +import com.ruoyi.project.benyi.service.IBySchoolchargeService; +import com.ruoyi.framework.web.controller.BaseController; +import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.framework.web.page.TableDataInfo; + +/** + * 园所收费标准Controller + * + * @author tsbz + * @date 2020-12-10 + */ +@RestController +@RequestMapping("/benyi/schoolcharge") +public class BySchoolchargeController extends BaseController { + @Autowired + private IBySchoolchargeService bySchoolchargeService; + + /** + * 查询园所收费标准列表 + */ + @PreAuthorize("@ss.hasPermi('benyi:schoolcharge:list')") + @GetMapping("/list") + public TableDataInfo list(BySchoolcharge bySchoolcharge) { + startPage(); + List<BySchoolcharge> list = bySchoolchargeService.selectBySchoolchargeList(bySchoolcharge); + return getDataTable(list); + } + + /** + * 导出园所收费标准列表 + */ + @PreAuthorize("@ss.hasPermi('benyi:schoolcharge:export')") + @Log(title = "园所收费标准", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(BySchoolcharge bySchoolcharge) { + List<BySchoolcharge> list = bySchoolchargeService.selectBySchoolchargeList(bySchoolcharge); + ExcelUtil<BySchoolcharge> util = new ExcelUtil<BySchoolcharge>(BySchoolcharge.class); + return util.exportExcel(list, "schoolcharge"); + } + + /** + * 获取园所收费标准详细信息 + */ + @PreAuthorize("@ss.hasPermi('benyi:schoolcharge:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(bySchoolchargeService.selectBySchoolchargeById(id)); + } + + /** + * 新增园所收费标准 + */ + @PreAuthorize("@ss.hasPermi('benyi:schoolcharge:edit')") + @Log(title = "园所收费标准", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BySchoolcharge bySchoolcharge) { + bySchoolcharge.setCreateUserid(SecurityUtils.getLoginUser().getUser().getUserId()); + bySchoolcharge.setDeptId(SecurityUtils.getLoginUser().getUser().getDeptId()); + return toAjax(bySchoolchargeService.insertBySchoolcharge(bySchoolcharge)); + } + + /** + * 修改园所收费标准 + */ + @PreAuthorize("@ss.hasPermi('benyi:schoolcharge:edit')") + @Log(title = "园所收费标准", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BySchoolcharge bySchoolcharge) { + return toAjax(bySchoolchargeService.updateBySchoolcharge(bySchoolcharge)); + } + + /** + * 删除园所收费标准 + */ + @PreAuthorize("@ss.hasPermi('benyi:schoolcharge:remove')") + @Log(title = "园所收费标准", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(bySchoolchargeService.deleteBySchoolchargeByIds(ids)); + } +} diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/BySchoolcharge.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/BySchoolcharge.java new file mode 100644 index 000000000..3954665ba --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/BySchoolcharge.java @@ -0,0 +1,109 @@ +package com.ruoyi.project.benyi.domain; + +import com.ruoyi.project.system.domain.SysDept; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.framework.aspectj.lang.annotation.Excel; +import com.ruoyi.framework.web.domain.BaseEntity; + +/** + * 园所收费标准对象 by_schoolcharge + * + * @author tsbz + * @date 2020-12-10 + */ +public class BySchoolcharge extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 编号 + */ + private Long id; + + /** + * 园所id + */ + @Excel(name = "园所id") + private Long deptId; + + /** + * 保育费 + */ + @Excel(name = "保育费") + private Double byf; + + /** + * 伙食费 + */ + @Excel(name = "伙食费") + private Double hsf; + + /** + * 创建人 + */ + @Excel(name = "创建人") + private Long createUserid; + + private SysDept dept; + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + public Long getDeptId() { + return deptId; + } + + public void setByf(Double byf) { + this.byf = byf; + } + + public Double getByf() { + return byf; + } + + public void setHsf(Double hsf) { + this.hsf = hsf; + } + + public Double getHsf() { + return hsf; + } + + public void setCreateUserid(Long createUserid) { + this.createUserid = createUserid; + } + + public Long getCreateUserid() { + return createUserid; + } + + public SysDept getDept() { + return dept; + } + + public void setDept(SysDept dept) { + this.dept = dept; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("deptId", getDeptId()) + .append("byf", getByf()) + .append("hsf", getHsf()) + .append("createUserid", getCreateUserid()) + .append("createTime", getCreateTime()) + .append("dept", getDept()) + .toString(); + } +} diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/BySchoolchargeMapper.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/BySchoolchargeMapper.java new file mode 100644 index 000000000..38311a239 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/BySchoolchargeMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.project.benyi.mapper; + +import java.util.List; + +import com.ruoyi.project.benyi.domain.BySchoolcharge; + +/** + * 园所收费标准Mapper接口 + * + * @author tsbz + * @date 2020-12-10 + */ +public interface BySchoolchargeMapper { + /** + * 查询园所收费标准 + * + * @param id 园所收费标准ID + * @return 园所收费标准 + */ + public BySchoolcharge selectBySchoolchargeById(Long id); + + /** + * 查询园所收费标准列表 + * + * @param bySchoolcharge 园所收费标准 + * @return 园所收费标准集合 + */ + public List<BySchoolcharge> selectBySchoolchargeList(BySchoolcharge bySchoolcharge); + + /** + * 新增园所收费标准 + * + * @param bySchoolcharge 园所收费标准 + * @return 结果 + */ + public int insertBySchoolcharge(BySchoolcharge bySchoolcharge); + + /** + * 修改园所收费标准 + * + * @param bySchoolcharge 园所收费标准 + * @return 结果 + */ + public int updateBySchoolcharge(BySchoolcharge bySchoolcharge); + + /** + * 删除园所收费标准 + * + * @param id 园所收费标准ID + * @return 结果 + */ + public int deleteBySchoolchargeById(Long id); + + /** + * 批量删除园所收费标准 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteBySchoolchargeByIds(Long[] ids); +} diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IBySchoolchargeService.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IBySchoolchargeService.java new file mode 100644 index 000000000..e3e2c5e21 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IBySchoolchargeService.java @@ -0,0 +1,61 @@ +package com.ruoyi.project.benyi.service; + +import java.util.List; + +import com.ruoyi.project.benyi.domain.BySchoolcharge; + +/** + * 园所收费标准Service接口 + * + * @author tsbz + * @date 2020-12-10 + */ +public interface IBySchoolchargeService { + /** + * 查询园所收费标准 + * + * @param id 园所收费标准ID + * @return 园所收费标准 + */ + public BySchoolcharge selectBySchoolchargeById(Long id); + + /** + * 查询园所收费标准列表 + * + * @param bySchoolcharge 园所收费标准 + * @return 园所收费标准集合 + */ + public List<BySchoolcharge> selectBySchoolchargeList(BySchoolcharge bySchoolcharge); + + /** + * 新增园所收费标准 + * + * @param bySchoolcharge 园所收费标准 + * @return 结果 + */ + public int insertBySchoolcharge(BySchoolcharge bySchoolcharge); + + /** + * 修改园所收费标准 + * + * @param bySchoolcharge 园所收费标准 + * @return 结果 + */ + public int updateBySchoolcharge(BySchoolcharge bySchoolcharge); + + /** + * 批量删除园所收费标准 + * + * @param ids 需要删除的园所收费标准ID + * @return 结果 + */ + public int deleteBySchoolchargeByIds(Long[] ids); + + /** + * 删除园所收费标准信息 + * + * @param id 园所收费标准ID + * @return 结果 + */ + public int deleteBySchoolchargeById(Long id); +} diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/BySchoolchargeServiceImpl.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/BySchoolchargeServiceImpl.java new file mode 100644 index 000000000..253f8b8dd --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/BySchoolchargeServiceImpl.java @@ -0,0 +1,91 @@ +package com.ruoyi.project.benyi.service.impl; + +import java.util.List; + +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.framework.aspectj.lang.annotation.DataScope; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.project.benyi.mapper.BySchoolchargeMapper; +import com.ruoyi.project.benyi.domain.BySchoolcharge; +import com.ruoyi.project.benyi.service.IBySchoolchargeService; + +/** + * 园所收费标准Service业务层处理 + * + * @author tsbz + * @date 2020-12-10 + */ +@Service +public class BySchoolchargeServiceImpl implements IBySchoolchargeService { + @Autowired + private BySchoolchargeMapper bySchoolchargeMapper; + + /** + * 查询园所收费标准 + * + * @param id 园所收费标准ID + * @return 园所收费标准 + */ + @Override + public BySchoolcharge selectBySchoolchargeById(Long id) { + return bySchoolchargeMapper.selectBySchoolchargeById(id); + } + + /** + * 查询园所收费标准列表 + * + * @param bySchoolcharge 园所收费标准 + * @return 园所收费标准 + */ + @Override + @DataScope(deptAlias = "b") + public List<BySchoolcharge> selectBySchoolchargeList(BySchoolcharge bySchoolcharge) { + return bySchoolchargeMapper.selectBySchoolchargeList(bySchoolcharge); + } + + /** + * 新增园所收费标准 + * + * @param bySchoolcharge 园所收费标准 + * @return 结果 + */ + @Override + public int insertBySchoolcharge(BySchoolcharge bySchoolcharge) { + bySchoolcharge.setCreateTime(DateUtils.getNowDate()); + return bySchoolchargeMapper.insertBySchoolcharge(bySchoolcharge); + } + + /** + * 修改园所收费标准 + * + * @param bySchoolcharge 园所收费标准 + * @return 结果 + */ + @Override + public int updateBySchoolcharge(BySchoolcharge bySchoolcharge) { + return bySchoolchargeMapper.updateBySchoolcharge(bySchoolcharge); + } + + /** + * 批量删除园所收费标准 + * + * @param ids 需要删除的园所收费标准ID + * @return 结果 + */ + @Override + public int deleteBySchoolchargeByIds(Long[] ids) { + return bySchoolchargeMapper.deleteBySchoolchargeByIds(ids); + } + + /** + * 删除园所收费标准信息 + * + * @param id 园所收费标准ID + * @return 结果 + */ + @Override + public int deleteBySchoolchargeById(Long id) { + return bySchoolchargeMapper.deleteBySchoolchargeById(id); + } +} diff --git a/ruoyi/src/main/resources/mybatis/benyi/BySchoolchargeMapper.xml b/ruoyi/src/main/resources/mybatis/benyi/BySchoolchargeMapper.xml new file mode 100644 index 000000000..c359ba046 --- /dev/null +++ b/ruoyi/src/main/resources/mybatis/benyi/BySchoolchargeMapper.xml @@ -0,0 +1,87 @@ +<?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.project.benyi.mapper.BySchoolchargeMapper"> + + <resultMap type="BySchoolcharge" id="BySchoolchargeResult"> + <result property="id" column="id"/> + <result property="deptId" column="dept_id"/> + <result property="byf" column="byf"/> + <result property="hsf" column="hsf"/> + <result property="createUserid" column="create_userid"/> + <result property="createTime" column="create_time"/> + <association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult"/> + </resultMap> + + <resultMap id="deptResult" type="SysDept"> + <id property="deptId" column="dept_id"/> + <result property="parentId" column="parent_id"/> + <result property="deptName" column="dept_name"/> + <result property="orderNum" column="order_num"/> + <result property="leader" column="leader"/> + <result property="status" column="dept_status"/> + </resultMap> + + <sql id="selectBySchoolchargeVo"> + select a.id, a.dept_id, a.byf, a.hsf, a.create_userid, a.create_time,b.dept_name from by_schoolcharge a + right join sys_dept b on a.dept_id=b.dept_id + </sql> + + <select id="selectBySchoolchargeList" parameterType="BySchoolcharge" resultMap="BySchoolchargeResult"> + <include refid="selectBySchoolchargeVo"/> + where school_id is not null and del_flag=0 + <if test="byf != null ">and byf = #{byf}</if> + <if test="hsf != null ">and hsf = #{hsf}</if> + <if test="createUserid != null ">and create_userid = #{createUserid}</if> + <!-- 数据范围过滤 --> + ${dataScope} + </select> + + <select id="selectBySchoolchargeById" parameterType="Long" resultMap="BySchoolchargeResult"> + <include refid="selectBySchoolchargeVo"/> + where a.id = #{id} + </select> + + <insert id="insertBySchoolcharge" parameterType="BySchoolcharge" useGeneratedKeys="true" keyProperty="id"> + insert into by_schoolcharge + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="deptId != null ">dept_id,</if> + <if test="byf != null ">byf,</if> + <if test="hsf != null ">hsf,</if> + <if test="createUserid != null ">create_userid,</if> + <if test="createTime != null ">create_time,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="deptId != null ">#{deptId},</if> + <if test="byf != null ">#{byf},</if> + <if test="hsf != null ">#{hsf},</if> + <if test="createUserid != null ">#{createUserid},</if> + <if test="createTime != null ">#{createTime},</if> + </trim> + </insert> + + <update id="updateBySchoolcharge" parameterType="BySchoolcharge"> + update by_schoolcharge + <trim prefix="SET" suffixOverrides=","> + <if test="deptId != null ">dept_id = #{deptId},</if> + <if test="byf != null ">byf = #{byf},</if> + <if test="hsf != null ">hsf = #{hsf},</if> + <if test="createUserid != null ">create_userid = #{createUserid},</if> + <if test="createTime != null ">create_time = #{createTime},</if> + </trim> + where id = #{id} + </update> + + <delete id="deleteBySchoolchargeById" parameterType="Long"> + delete from by_schoolcharge where id = #{id} + </delete> + + <delete id="deleteBySchoolchargeByIds" parameterType="String"> + delete from by_schoolcharge where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> + +</mapper> \ No newline at end of file