diff --git a/ruoyi-ui/src/api/benyi/halfdayplan.js b/ruoyi-ui/src/api/benyi/halfdayplan.js new file mode 100644 index 000000000..b8dec5db7 --- /dev/null +++ b/ruoyi-ui/src/api/benyi/halfdayplan.js @@ -0,0 +1,69 @@ +import request from '@/utils/request' + +// 查询入园半日体验计划列表 +export function listHalfdayplan(query) { + return request({ + url: '/benyi/halfdayplan/list', + method: 'get', + params: query + }) +} + +// 查询入园半日体验计划详细 +export function getHalfdayplan(id) { + return request({ + url: '/benyi/halfdayplan/' + id, + method: 'get' + }) +} + +// 查询入班体验申请详细 +export function getHalfdayplan_query(id) { + return request({ + url: '/benyi/halfdayplan/getInfo/'+id, + method: 'get' + }) +} + +// 新增入园半日体验计划 +export function addHalfdayplan(data) { + return request({ + url: '/benyi/halfdayplan', + method: 'post', + data: data + }) +} + +// 修改入园半日体验计划 +export function updateHalfdayplan(data) { + return request({ + url: '/benyi/halfdayplan', + method: 'put', + data: data + }) +} + +// 删除入园半日体验计划 +export function delHalfdayplan(id) { + return request({ + url: '/benyi/halfdayplan/' + id, + method: 'delete' + }) +} + +// 复制入园通知书 +export function copyHalfdayplan(id) { + return request({ + url: '/benyi/halfdayplan/copy/' + id, + method: 'post' + }) +} + +// 导出入园半日体验计划 +export function exportHalfdayplan(query) { + return request({ + url: '/benyi/halfdayplan/export', + method: 'get', + params: query + }) +} diff --git a/ruoyi-ui/src/permission.js b/ruoyi-ui/src/permission.js index fabfd0d8d..5b3c7bc37 100644 --- a/ruoyi-ui/src/permission.js +++ b/ruoyi-ui/src/permission.js @@ -66,7 +66,7 @@ router.beforeEach((to, from, next) => { } else { //console.log(whiteList.indexOf(to.path)); // 没有token - if (whiteList.indexOf(to.path) !== -1 ||to.path.indexOf("/experience/apply/") != -1||to.path.indexOf("/experience/result/") != -1) { + if (whiteList.indexOf(to.path) !== -1 ||to.path.indexOf("/experience/apply/") != -1||to.path.indexOf("/experience/result/") != -1||to.path.indexOf("/experience/content/") != -1) { // 在免登录白名单,直接进入 next() } else { diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js index 54414f463..0d3c05bd9 100644 --- a/ruoyi-ui/src/router/index.js +++ b/ruoyi-ui/src/router/index.js @@ -53,13 +53,18 @@ export const constantRoutes = [{ import('@/views/error/401'), hidden: true }, + { + path: '/experience/content/:id', + component: () => + import('@/views/benyi/experience/content'), + hidden: true + }, { path: '/experience/apply/:id(\\d+)', component: () => import('@/views/benyi/experience/choose'), hidden: true, - children: [ - { + children: [{ path: '/experience/apply/:id(\\d+)', component: () => import('@/views/benyi/experience/apply'), diff --git a/ruoyi-ui/src/views/benyi/experience/content.vue b/ruoyi-ui/src/views/benyi/experience/content.vue new file mode 100644 index 000000000..abd3da86e --- /dev/null +++ b/ruoyi-ui/src/views/benyi/experience/content.vue @@ -0,0 +1,56 @@ +<template> + <div class="content"> + <h3 class="title">{{title}}</h3> + <div class="artic"> + <p class="part" v-html="content"></p> + </div> + </div> +</template> +<script> +import { getHalfdayplan_query } from "@/api/benyi/halfdayplan"; + +export default { + name: "content", + data() { + return { + id: "", + title: "", + content: "", + }; + }, + created() { + this.id = this.$route.params && this.$route.params.id; + this.getInfo(); + }, + methods: { + /** 查询体验内容 */ + getInfo() { + getHalfdayplan_query(this.id).then((response) => { + if (response.code == "200") { + this.title = response.data.title; + this.content = response.data.content; + } + }); + }, + }, +}; +</script> + +<style lang="scss" scoped> +.content { + padding: 0 40px; + .title { + text-align: center; + font-size: 30px; + margin-bottom: 16px; + } + + .artic { + font-size: 14px; + .part { + line-height: 22px; + padding-bottom: 15px; + } + } +} +</style> diff --git a/ruoyi-ui/src/views/benyi/experience/index.vue b/ruoyi-ui/src/views/benyi/experience/index.vue index 992e313ad..4de5e2eda 100644 --- a/ruoyi-ui/src/views/benyi/experience/index.vue +++ b/ruoyi-ui/src/views/benyi/experience/index.vue @@ -36,13 +36,15 @@ <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> - <el-button - type="primary" - icon="el-icon-plus" - size="mini" - @click="copy($event,inviteCode)" - v-hasPermi="['benyi:experience:add']" - >一键复制</el-button> + <el-tooltip effect="dark" content="点我,可以复制内容发送给家长填报《入园体验申请》呦" placement="top-start"> + <el-button + type="primary" + icon="el-icon-plus" + size="mini" + @click="copy($event,inviteCode)" + v-hasPermi="['benyi:experience:add']" + >一键复制</el-button> + </el-tooltip> </el-col> <el-col :span="1.5"> <el-button @@ -52,7 +54,7 @@ :disabled="single" @click="handleUpdate" v-hasPermi="['benyi:experience:edit']" - >修改</el-button> + >回复</el-button> </el-col> <el-col :span="1.5"> <el-button @@ -84,6 +86,7 @@ </el-table-column> <el-table-column label="上午或下午" align="center" prop="swxw" :formatter="swxwFormat" /> <el-table-column label="是否回复" align="center" prop="sfhf" :formatter="ynFormat" /> + <el-table-column label="体验内容" align="center" prop="tynrid" :formatter="tynrFormat" /> <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <template slot-scope="scope"> <el-button @@ -92,7 +95,7 @@ icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['benyi:experience:edit']" - >修改</el-button> + >回复</el-button> <el-button size="mini" type="text" @@ -118,17 +121,17 @@ <el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-col :span="12"> <el-form-item label="家长姓名" prop="jzxm"> - <el-input v-model="form.jzxm" placeholder="请输入家长姓名" disabled="true" /> + <el-input v-model="form.jzxm" placeholder="请输入家长姓名" :disabled="true" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="联系方式" prop="lxfs"> - <el-input v-model="form.lxfs" placeholder="请输入联系方式" disabled="true" /> + <el-input v-model="form.lxfs" placeholder="请输入联系方式" :disabled="true" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="幼儿姓名" prop="yexm"> - <el-input v-model="form.yexm" placeholder="请输入幼儿姓名" disabled="true" /> + <el-input v-model="form.yexm" placeholder="请输入幼儿姓名" :disabled="true" /> </el-form-item> </el-col> <el-col :span="12"> @@ -141,7 +144,7 @@ type="date" value-format="yyyy-MM-dd" placeholder="选择幼儿出生日期" - disabled="true" + :disabled="true" ></el-date-picker> </el-form-item> </el-col> @@ -155,7 +158,7 @@ type="date" value-format="yyyy-MM-dd" placeholder="选择拟入园时间" - disabled="true" + :disabled="true" ></el-date-picker> </el-form-item> </el-col> @@ -169,13 +172,13 @@ type="date" value-format="yyyy-MM-dd" placeholder="选择申请体验时间" - disabled="true" + :disabled="true" ></el-date-picker> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="上午或下午" prop="swxw"> - <el-select v-model="form.swxw" placeholder="请选择" disabled="true"> + <el-select v-model="form.swxw" placeholder="请选择" :disabled="true"> <el-option v-for="dict in swxwOptions" :key="dict.dictValue" @@ -207,6 +210,18 @@ <el-input v-model="form.yzzs" type="textarea" placeholder="请输入内容" /> </el-form-item> </el-col> + <el-col :span="12"> + <el-form-item label="体验内容" prop="tynrid"> + <el-select v-model="form.tynrid" placeholder="请选择"> + <el-option + v-for="dict in tynrOptions" + :key="dict.id" + :label="dict.title" + :value="dict.id" + ></el-option> + </el-select> + </el-form-item> + </el-col> <el-col :span="12"> <el-form-item label="体验结果" prop="tyjg"> <el-select v-model="form.tyjg" placeholder="请选择"> @@ -252,6 +267,8 @@ import { exportExperience, } from "@/api/benyi/experience"; +import { listHalfdayplan } from "@/api/benyi/halfdayplan"; + import { getUserProfile } from "@/api/system/user"; import Clipboard from "clipboard"; @@ -277,6 +294,7 @@ export default { swxwOptions: [], ynOptions: [], tyjgOptions: [], + tynrOptions: [], // 弹出层标题 title: "", // 是否显示弹出层 @@ -300,6 +318,7 @@ export default { yzzs: undefined, tyjg: undefined, rysj: undefined, + tynrid: undefined, }, // 表单参数 form: {}, @@ -337,12 +356,16 @@ export default { yzzs: [ { required: true, message: "园长指示不能为空", trigger: "blur" }, ], + tynrid: [ + { required: true, message: "体验内容不能为空", trigger: "blur" }, + ], }, }; }, created() { this.getList(); this.getUser(); + this.getTynr(); this.getDicts("sys_dm_swxw").then((response) => { this.swxwOptions = response.data; }); @@ -354,10 +377,16 @@ export default { }); }, methods: { + getTynr() { + listHalfdayplan(null).then((response) => { + //console.log(response.rows); + this.tynrOptions = response.rows; + }); + }, getUser() { getUserProfile().then((response) => { var domain = window.location.host; - console.log(domain); + //console.log(domain); //this.user = response.data; this.inviteCode = response.data.dept.deptName + @@ -369,6 +398,18 @@ export default { }); }, // 字典翻译 + tynrFormat(row, column) { + var actions = []; + var datas = this.tynrOptions; + Object.keys(datas).map((key) => { + if (datas[key].id == row.tynrid) { + actions.push(datas[key].title); + return false; + } + }); + return actions.join(""); + }, + // 字典翻译 ynFormat(row, column) { return this.selectDictLabel(this.ynOptions, row.sfhf); }, @@ -409,6 +450,7 @@ export default { yzzs: undefined, tyjg: undefined, rysj: undefined, + tynrid: undefined, createTime: undefined, }; this.resetForm("form"); diff --git a/ruoyi-ui/src/views/benyi/experience/result.vue b/ruoyi-ui/src/views/benyi/experience/result.vue index df2f1262f..4b3bd9853 100644 --- a/ruoyi-ui/src/views/benyi/experience/result.vue +++ b/ruoyi-ui/src/views/benyi/experience/result.vue @@ -26,6 +26,13 @@ <el-alert :title="yzzs" :closable="false" type="info"></el-alert> </div> </div> + <div class="result-info"> + <h3 class="title">体验内容</h3> + <div class="info"> + <a target="_blank" :href="href_tynr">{{tynrcontent}}</a> + <!-- <el-alert :title="tyrnid" :closable="false" type="info"></el-alert> --> + </div> + </div> <div class="result-form"> <p class="form-title">提交信息核对</p> <el-form class="form" ref="form" :model="form" label-width="110px"> @@ -97,6 +104,8 @@ export default { ishf: true, hfrn: "", yzzs: "", + tynrcontent: "", + href_tynr: "", // 查询参数 queryParams: { yexm: undefined, @@ -109,7 +118,7 @@ export default { }, created() { const sid = this.$route.params && this.$route.params.id; - this.queryParams.schoolid = sid; + this.queryParams.schoolid = sid; }, methods: { // 字典翻译 @@ -131,6 +140,8 @@ export default { this.ishf = false; this.hfrn = response.data.hfrn; this.yzzs = response.data.yzzs; + this.href_tynr = "/experience/content/" + response.data.tynrid; + this.tynrcontent = response.data.tynrcontent; } else { this.ishf = true; } diff --git a/ruoyi-ui/src/views/benyi/halfdayplan/index.vue b/ruoyi-ui/src/views/benyi/halfdayplan/index.vue new file mode 100644 index 000000000..2702d27f3 --- /dev/null +++ b/ruoyi-ui/src/views/benyi/halfdayplan/index.vue @@ -0,0 +1,313 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px"> + <el-form-item label="标题" prop="title"> + <el-input + v-model="queryParams.title" + placeholder="请输入标题" + clearable + size="small" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['benyi:halfdayplan:add']" + >新增</el-button> + </el-col> + </el-row> + + <el-table v-loading="loading" :data="halfdayplanList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <!-- <el-table-column label="编号" align="center" prop="id" /> --> + <el-table-column label="标题" align="center" prop="title" /> + <el-table-column label="类型" align="center" prop="type" :formatter="typeFormat" /> + <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="handleCopy(scope.row)" + v-hasPermi="['benyi:halfdayplan:edit']" + v-show="!selectable(scope.row)" + >复制</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['benyi:halfdayplan:edit']" + v-show="selectable(scope.row)" + >修改</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['benyi:halfdayplan:remove']" + v-show="selectable(scope.row)" + >删除</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-view" + @click="handleView(scope.row,scope.index)" + v-hasPermi="['benyi:halfdayplan:query']" + >详细</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="800px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label="标题" prop="title"> + <el-input v-model="form.title" placeholder="请输入标题" /> + </el-form-item> + <el-form-item label="内容" prop="content"> + <Editor v-model="form.content" placeholder="请输入内容" /> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" v-show="isshow" @click="submitForm">确 定</el-button> + <el-button @click="cancel">取 消</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { + listHalfdayplan, + getHalfdayplan, + delHalfdayplan, + addHalfdayplan, + updateHalfdayplan, + copyHalfdayplan, +} from "@/api/benyi/halfdayplan"; + +import Editor from "@/components/Editor"; + +export default { + name: "Halfdayplan", + components: { + Editor, + }, + data() { + return { + // 遮罩层 + loading: true, + // 选中数组 + ids: [], + // 非单个禁用 + single: true, + // 非多个禁用 + multiple: true, + // 总条数 + total: 0, + // 入园半日体验计划表格数据 + halfdayplanList: [], + //字典 + typeOptions: [], + // 弹出层标题 + title: "", + // 是否显示弹出层 + open: false, + isshow: true, + // 查询参数 + queryParams: { + pageNum: 1, + pageSize: 10, + schoolid: undefined, + classid: undefined, + title: undefined, + content: undefined, + }, + // 表单参数 + form: { name: "", phone: "" }, + // 表单校验 + rules: { + title: [{ required: true, message: "标题不能为空", trigger: "blur" }], + content: [{ required: true, message: "内容不能为空", trigger: "blur" }], + }, + }; + }, + created() { + this.getList(); + this.getDicts("sys_dm_noticetype").then((response) => { + this.typeOptions = response.data; + }); + }, + methods: { + //能否选中 + selectable(row) { + if (row.type == "1") { + return false; + } else { + return true; + } + }, + // 字典翻译 + typeFormat(row, column) { + return this.selectDictLabel(this.typeOptions, row.type); + }, + /** 查询入园半日体验计划列表 */ + getList() { + this.loading = true; + listHalfdayplan(this.queryParams).then((response) => { + this.halfdayplanList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 取消按钮 + cancel() { + this.open = false; + this.reset(); + }, + // 表单重置 + reset() { + this.form = { + id: undefined, + schoolid: undefined, + classid: undefined, + title: undefined, + content: undefined, + createTime: undefined, + }; + this.resetForm("form"); + }, + /** 搜索按钮操作 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 重置按钮操作 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 多选框选中数据 + handleSelectionChange(selection) { + this.ids = selection.map((item) => item.id); + this.single = selection.length != 1; + this.multiple = !selection.length; + }, + /** 详细按钮操作 */ + handleView(row) { + this.reset(); + const id = row.id || this.ids; + getHalfdayplan(id).then((response) => { + this.form = response.data; + this.open = true; + this.title = "入园半日体验计划详情"; + this.isshow = false; + }); + }, + /** 新增按钮操作 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "添加入园半日体验计划"; + this.isshow = true; + }, + /** 修改按钮操作 */ + handleUpdate(row) { + this.reset(); + const id = row.id || this.ids; + getHalfdayplan(id).then((response) => { + this.form = response.data; + this.open = true; + this.title = "修改入园半日体验计划"; + this.isshow = true; + }); + }, + /** 提交按钮 */ + submitForm: function () { + this.$refs["form"].validate((valid) => { + if (valid) { + if (this.form.id != undefined) { + updateHalfdayplan(this.form).then((response) => { + if (response.code === 200) { + this.msgSuccess("修改成功"); + this.open = false; + this.getList(); + } + }); + } else { + addHalfdayplan(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( + '是否确认删除入园半日体验计划编号为"' + ids + '"的数据项?', + "警告", + { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + } + ) + .then(function () { + return delHalfdayplan(ids); + }) + .then(() => { + this.getList(); + this.msgSuccess("删除成功"); + }) + .catch(function () {}); + }, + /** 复制按钮操作 */ + handleCopy(row) { + const id = row.id || this.ids; + this.$confirm( + '确认复制入园半日体验计划编号为"' + id + '"的数据项?', + "警告", + { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + } + ) + .then(function () { + return copyHalfdayplan(id); + }) + .then(() => { + this.getList(); + this.msgSuccess("复制成功"); + }) + .catch(function () {}); + }, + }, +}; +</script> \ No newline at end of file diff --git a/ruoyi/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index 7aeef7216..966f49215 100644 --- a/ruoyi/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -104,6 +104,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers("/druid/**").anonymous() .antMatchers("/benyi/experience/add").anonymous()//半日入园体验申请 .antMatchers("/benyi/experience/getInfo**").anonymous()//半日入园体验明细 + .antMatchers("/benyi/halfdayplan/getInfo/**").anonymous()//半日入园内容 // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated() .and() diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByHalfdayplanController.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByHalfdayplanController.java new file mode 100644 index 000000000..bb254d840 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByHalfdayplanController.java @@ -0,0 +1,143 @@ +package com.ruoyi.project.benyi.controller; + +import java.util.List; + +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.project.common.SchoolCommon; +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.ByHalfdayplan; +import com.ruoyi.project.benyi.service.IByHalfdayplanService; +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-07-29 + */ +@RestController +@RequestMapping("/benyi/halfdayplan") +public class ByHalfdayplanController extends BaseController { + @Autowired + private IByHalfdayplanService byHalfdayplanService; + @Autowired + private SchoolCommon schoolCommon; + + /** + * 查询入园半日体验计划列表 + */ + @PreAuthorize("@ss.hasPermi('benyi:halfdayplan:list')") + @GetMapping("/list") + public TableDataInfo list(ByHalfdayplan byHalfdayplan) { + byHalfdayplan.setSchoolid(SecurityUtils.getLoginUser().getUser().getDept().getDeptId()); + startPage(); + List<ByHalfdayplan> list = byHalfdayplanService.selectByHalfdayplanList(byHalfdayplan); + return getDataTable(list); + } + + /** + * 导出入园半日体验计划列表 + */ + @PreAuthorize("@ss.hasPermi('benyi:halfdayplan:export')") + @Log(title = "入园半日体验计划", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(ByHalfdayplan byHalfdayplan) { + List<ByHalfdayplan> list = byHalfdayplanService.selectByHalfdayplanList(byHalfdayplan); + ExcelUtil<ByHalfdayplan> util = new ExcelUtil<ByHalfdayplan>(ByHalfdayplan.class); + return util.exportExcel(list, "halfdayplan"); + } + + /** + * 获取入园半日体验计划详细信息 + */ + @PreAuthorize("@ss.hasPermi('benyi:halfdayplan:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") String id) { + return AjaxResult.success(byHalfdayplanService.selectByHalfdayplanById(id)); + } + + //@PreAuthorize("@ss.hasPermi('benyi:halfdayplan:query')") + @GetMapping(value = "/getInfo/{id}") + public AjaxResult getTyInfo(@PathVariable("id") String id) { + return AjaxResult.success(byHalfdayplanService.selectByHalfdayplanById(id)); + } + + /** + * 新增入园半日体验计划 + */ + @PreAuthorize("@ss.hasPermi('benyi:halfdayplan:add')") + @Log(title = "入园半日体验计划", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ByHalfdayplan byHalfdayplan) { + byHalfdayplan.setId(schoolCommon.getUuid()); + //首先判断当前账户是否为幼儿园账号 + if (schoolCommon.isSchool()) { + byHalfdayplan.setType("2"); + byHalfdayplan.setSchoolid(SecurityUtils.getLoginUser().getUser().getDept().getDeptId()); + } else { + byHalfdayplan.setType("1"); + } + return toAjax(byHalfdayplanService.insertByHalfdayplan(byHalfdayplan)); + } + + /** + * 修改入园半日体验计划 + */ + @PreAuthorize("@ss.hasPermi('benyi:halfdayplan:edit')") + @Log(title = "入园半日体验计划", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ByHalfdayplan byHalfdayplan) { + return toAjax(byHalfdayplanService.updateByHalfdayplan(byHalfdayplan)); + } + + /** + * 复制入园通知书 + */ + @PreAuthorize("@ss.hasPermi('benyi:halfdayplan:edit')") + @Log(title = "入园半日体验计划", businessType = BusinessType.INSERT) + @PostMapping("/copy/{id}") + public AjaxResult copy(@PathVariable String id) { + System.out.println("id===" + id); + ByHalfdayplan byHalfdayplan = byHalfdayplanService.selectByHalfdayplanById(id); + ByHalfdayplan byHalfdayplanCopy = new ByHalfdayplan(); + byHalfdayplanCopy.setId(schoolCommon.getUuid()); + byHalfdayplanCopy.setType("2"); + byHalfdayplanCopy.setSchoolid(SecurityUtils.getLoginUser().getUser().getDept().getDeptId()); + byHalfdayplanCopy.setContent(byHalfdayplan.getContent()); + byHalfdayplanCopy.setTitle(byHalfdayplan.getTitle()); + + return toAjax(byHalfdayplanService.insertByHalfdayplan(byHalfdayplanCopy)); + } + + /** + * 删除入园半日体验计划 + */ + @PreAuthorize("@ss.hasPermi('benyi:halfdayplan:remove')") + @Log(title = "入园半日体验计划", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable String[] ids) { + //判断id是否为系统定义 + for (int i = 0; i < ids.length; i++) { + String id = ids[i]; + ByHalfdayplan byHalfdayplan = byHalfdayplanService.selectByHalfdayplanById(id); + if (byHalfdayplan.getType() == "1") { + return AjaxResult.error("包含系统半日体验计划,无法删除"); + } + } + return toAjax(byHalfdayplanService.deleteByHalfdayplanByIds(ids)); + } +} diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByRecruitstudentsNoticeController.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByRecruitstudentsNoticeController.java index 9ef681a99..d1a2f98dd 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByRecruitstudentsNoticeController.java +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByRecruitstudentsNoticeController.java @@ -98,7 +98,7 @@ public class ByRecruitstudentsNoticeController extends BaseController { } /** - * 删除入园通知书 + * 复制入园通知书 */ @PreAuthorize("@ss.hasPermi('benyi:recruitstudentsnotice:edit')") @Log(title = "入园通知书", businessType = BusinessType.INSERT) diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByExperience.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByExperience.java index 5dfb3214a..96c706b07 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByExperience.java +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByExperience.java @@ -119,6 +119,14 @@ public class ByExperience extends BaseEntity { @Excel(name = "入园时间", width = 30, dateFormat = "yyyy-MM-dd") private Date rysj; + /** + * 体验内容id + */ + @Excel(name = "体验内容id") + private String tynrid; + + private String tynrcontent; + public void setId(Long id) { this.id = id; } @@ -247,6 +255,22 @@ public class ByExperience extends BaseEntity { return rysj; } + public void setTynrid(String tynrid) { + this.tynrid = tynrid; + } + + public String getTynrid() { + return tynrid; + } + + public void setTynrcontent(String tynrcontent) { + this.tynrcontent = tynrcontent; + } + + public String getTynrcontent() { + return tynrcontent; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) @@ -267,6 +291,8 @@ public class ByExperience extends BaseEntity { .append("tyjg", getTyjg()) .append("rysj", getRysj()) .append("createTime", getCreateTime()) + .append("tynrid", getTynrid()) + .append("tynrcontent", getTynrcontent()) .toString(); } -} +} \ No newline at end of file diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByHalfdayplan.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByHalfdayplan.java new file mode 100644 index 000000000..7b9de1a53 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByHalfdayplan.java @@ -0,0 +1,112 @@ +package com.ruoyi.project.benyi.domain; + +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_halfdayplan + * + * @author tsbz + * @date 2020-07-29 + */ +public class ByHalfdayplan extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 编号 + */ + private String id; + + /** + * 学校id + */ + @Excel(name = "学校id") + private Long schoolid; + + /** + * 班级编号 + */ + @Excel(name = "班级编号") + private String classid; + + /** + * 标题 + */ + @Excel(name = "标题") + private String title; + + /** + * 内容 + */ + @Excel(name = "内容") + private String content; + + /** + * 类型 + */ + @Excel(name = "类型") + private String type; + + public void setId(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + public void setSchoolid(Long schoolid) { + this.schoolid = schoolid; + } + + public Long getSchoolid() { + return schoolid; + } + + public void setClassid(String classid) { + this.classid = classid; + } + + public String getClassid() { + return classid; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getTitle() { + return title; + } + + public void setContent(String content) { + this.content = content; + } + + public String getContent() { + return content; + } + + public void setType(String type) { + this.type = type; + } + + public String getType() { + return type; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("schoolid", getSchoolid()) + .append("classid", getClassid()) + .append("title", getTitle()) + .append("content", getContent()) + .append("createTime", getCreateTime()) + .append("type", getType()) + .toString(); + } +} \ No newline at end of file diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByHalfdayplanMapper.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByHalfdayplanMapper.java new file mode 100644 index 000000000..6f0cf1ff2 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByHalfdayplanMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.project.benyi.mapper; + +import java.util.List; + +import com.ruoyi.project.benyi.domain.ByHalfdayplan; + +/** + * 入园半日体验计划Mapper接口 + * + * @author tsbz + * @date 2020-07-30 + */ +public interface ByHalfdayplanMapper { + /** + * 查询入园半日体验计划 + * + * @param id 入园半日体验计划ID + * @return 入园半日体验计划 + */ + public ByHalfdayplan selectByHalfdayplanById(String id); + + /** + * 查询入园半日体验计划列表 + * + * @param byHalfdayplan 入园半日体验计划 + * @return 入园半日体验计划集合 + */ + public List<ByHalfdayplan> selectByHalfdayplanList(ByHalfdayplan byHalfdayplan); + + /** + * 新增入园半日体验计划 + * + * @param byHalfdayplan 入园半日体验计划 + * @return 结果 + */ + public int insertByHalfdayplan(ByHalfdayplan byHalfdayplan); + + /** + * 修改入园半日体验计划 + * + * @param byHalfdayplan 入园半日体验计划 + * @return 结果 + */ + public int updateByHalfdayplan(ByHalfdayplan byHalfdayplan); + + /** + * 删除入园半日体验计划 + * + * @param id 入园半日体验计划ID + * @return 结果 + */ + public int deleteByHalfdayplanById(String id); + + /** + * 批量删除入园半日体验计划 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteByHalfdayplanByIds(String[] ids); +} \ No newline at end of file diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByHalfdayplanService.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByHalfdayplanService.java new file mode 100644 index 000000000..4f6fdf3c9 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByHalfdayplanService.java @@ -0,0 +1,61 @@ +package com.ruoyi.project.benyi.service; + +import java.util.List; + +import com.ruoyi.project.benyi.domain.ByHalfdayplan; + +/** + * 入园半日体验计划Service接口 + * + * @author tsbz + * @date 2020-07-30 + */ +public interface IByHalfdayplanService { + /** + * 查询入园半日体验计划 + * + * @param id 入园半日体验计划ID + * @return 入园半日体验计划 + */ + public ByHalfdayplan selectByHalfdayplanById(String id); + + /** + * 查询入园半日体验计划列表 + * + * @param byHalfdayplan 入园半日体验计划 + * @return 入园半日体验计划集合 + */ + public List<ByHalfdayplan> selectByHalfdayplanList(ByHalfdayplan byHalfdayplan); + + /** + * 新增入园半日体验计划 + * + * @param byHalfdayplan 入园半日体验计划 + * @return 结果 + */ + public int insertByHalfdayplan(ByHalfdayplan byHalfdayplan); + + /** + * 修改入园半日体验计划 + * + * @param byHalfdayplan 入园半日体验计划 + * @return 结果 + */ + public int updateByHalfdayplan(ByHalfdayplan byHalfdayplan); + + /** + * 批量删除入园半日体验计划 + * + * @param ids 需要删除的入园半日体验计划ID + * @return 结果 + */ + public int deleteByHalfdayplanByIds(String[] ids); + + /** + * 删除入园半日体验计划信息 + * + * @param id 入园半日体验计划ID + * @return 结果 + */ + public int deleteByHalfdayplanById(String id); +} \ No newline at end of file diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByHalfdayplanServiceImpl.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByHalfdayplanServiceImpl.java new file mode 100644 index 000000000..e3c619c41 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByHalfdayplanServiceImpl.java @@ -0,0 +1,95 @@ +package com.ruoyi.project.benyi.service.impl; + +import java.util.List; + +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.project.benyi.mapper.ByHalfdayplanMapper; +import com.ruoyi.project.benyi.domain.ByHalfdayplan; +import com.ruoyi.project.benyi.service.IByHalfdayplanService; + +/** + * 入园半日体验计划Service业务层处理 + * + * @author tsbz + * @date 2020-07-30 + */ +@Service +public class ByHalfdayplanServiceImpl implements IByHalfdayplanService { + @Autowired + private ByHalfdayplanMapper byHalfdayplanMapper; + + /** + * 查询入园半日体验计划 + * + * @param id 入园半日体验计划ID + * @return 入园半日体验计划 + */ + @Override + public ByHalfdayplan selectByHalfdayplanById(String id) + { + return byHalfdayplanMapper.selectByHalfdayplanById(id); + } + + /** + * 查询入园半日体验计划列表 + * + * @param byHalfdayplan 入园半日体验计划 + * @return 入园半日体验计划 + */ + @Override + public List<ByHalfdayplan> selectByHalfdayplanList(ByHalfdayplan byHalfdayplan) + { + return byHalfdayplanMapper.selectByHalfdayplanList(byHalfdayplan); + } + + /** + * 新增入园半日体验计划 + * + * @param byHalfdayplan 入园半日体验计划 + * @return 结果 + */ + @Override + public int insertByHalfdayplan(ByHalfdayplan byHalfdayplan) + { + byHalfdayplan.setCreateTime(DateUtils.getNowDate()); + return byHalfdayplanMapper.insertByHalfdayplan(byHalfdayplan); + } + + /** + * 修改入园半日体验计划 + * + * @param byHalfdayplan 入园半日体验计划 + * @return 结果 + */ + @Override + public int updateByHalfdayplan(ByHalfdayplan byHalfdayplan) + { + return byHalfdayplanMapper.updateByHalfdayplan(byHalfdayplan); + } + + /** + * 批量删除入园半日体验计划 + * + * @param ids 需要删除的入园半日体验计划ID + * @return 结果 + */ + @Override + public int deleteByHalfdayplanByIds(String[] ids) + { + return byHalfdayplanMapper.deleteByHalfdayplanByIds(ids); + } + + /** + * 删除入园半日体验计划信息 + * + * @param id 入园半日体验计划ID + * @return 结果 + */ + @Override + public int deleteByHalfdayplanById(String id) + { + return byHalfdayplanMapper.deleteByHalfdayplanById(id); + } +} \ No newline at end of file diff --git a/ruoyi/src/main/java/com/ruoyi/project/common/SchoolCommon.java b/ruoyi/src/main/java/com/ruoyi/project/common/SchoolCommon.java index c97916fe7..19fc5c224 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/common/SchoolCommon.java +++ b/ruoyi/src/main/java/com/ruoyi/project/common/SchoolCommon.java @@ -19,6 +19,7 @@ import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.UUID; @RestController public class SchoolCommon { @@ -170,4 +171,9 @@ public class SchoolCommon { } return false; } + + // 生成UUID + public String getUuid(){ + return UUID.randomUUID().toString().replace("-",""); + } } diff --git a/ruoyi/src/main/resources/mybatis/benyi/ByExperienceMapper.xml b/ruoyi/src/main/resources/mybatis/benyi/ByExperienceMapper.xml index b3aa01af3..c6e82d454 100644 --- a/ruoyi/src/main/resources/mybatis/benyi/ByExperienceMapper.xml +++ b/ruoyi/src/main/resources/mybatis/benyi/ByExperienceMapper.xml @@ -21,11 +21,13 @@ <result property="yzzs" column="yzzs"/> <result property="tyjg" column="tyjg"/> <result property="rysj" column="rysj"/> + <result property="tynrcontent" column="tynrcontent"/> + <result property="tynrid" column="tynrid"/> <result property="createTime" column="create_time"/> </resultMap> <sql id="selectByExperienceVo"> - select id, jzxm, yexm, csrq, lxfs, nrysj, sqtysj, swxw, schoolid, sfhf, hfrn, hfuserid, fhsj, yzzs, tyjg, rysj, create_time from by_experience + select id, jzxm, yexm, csrq, lxfs, nrysj, sqtysj, swxw, schoolid, sfhf, hfrn, hfuserid, fhsj, yzzs, tyjg, rysj, tynrid,(select title from by_halfdayplan where by_halfdayplan.id=tynrid) tynrcontent, create_time from by_experience </sql> <select id="selectByExperienceList" parameterType="ByExperience" resultMap="ByExperienceResult"> @@ -46,6 +48,7 @@ <if test="yzzs != null and yzzs != ''">and yzzs = #{yzzs}</if> <if test="tyjg != null and tyjg != ''">and tyjg = #{tyjg}</if> <if test="rysj != null ">and rysj = #{rysj}</if> + <if test="tynrid != null ">and tynrid = #{tynrid}</if> </where> order by create_time desc </select> @@ -74,6 +77,7 @@ <if test="tyjg != null and tyjg != ''">tyjg,</if> <if test="rysj != null ">rysj,</if> <if test="createTime != null ">create_time,</if> + <if test="tynrid != null ">tynrid,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="jzxm != null and jzxm != ''">#{jzxm},</if> @@ -92,6 +96,7 @@ <if test="tyjg != null and tyjg != ''">#{tyjg},</if> <if test="rysj != null ">#{rysj},</if> <if test="createTime != null ">#{createTime},</if> + <if test="tynrid != null ">#{tynrid},</if> </trim> </insert> @@ -114,6 +119,7 @@ <if test="tyjg != null and tyjg != ''">tyjg = #{tyjg},</if> <if test="rysj != null ">rysj = #{rysj},</if> <if test="createTime != null ">create_time = #{createTime},</if> + <if test="tynrid != null ">tynrid = #{tynrid},</if> </trim> where id = #{id} </update> diff --git a/ruoyi/src/main/resources/mybatis/benyi/ByHalfdayplanMapper.xml b/ruoyi/src/main/resources/mybatis/benyi/ByHalfdayplanMapper.xml new file mode 100644 index 000000000..68f6f1c37 --- /dev/null +++ b/ruoyi/src/main/resources/mybatis/benyi/ByHalfdayplanMapper.xml @@ -0,0 +1,84 @@ +<?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.ByHalfdayplanMapper"> + + <resultMap type="ByHalfdayplan" id="ByHalfdayplanResult"> + <result property="id" column="id"/> + <result property="schoolid" column="schoolid"/> + <result property="classid" column="classid"/> + <result property="title" column="title"/> + <result property="content" column="content"/> + <result property="createTime" column="create_time"/> + <result property="type" column="type"/> + </resultMap> + + <sql id="selectByHalfdayplanVo"> + select id, schoolid, classid, title, content, create_time, type from by_halfdayplan + </sql> + + <select id="selectByHalfdayplanList" parameterType="ByHalfdayplan" resultMap="ByHalfdayplanResult"> + <include refid="selectByHalfdayplanVo"/> + where type='1' + <if test="schoolid != null ">or schoolid = #{schoolid}</if> + <if test="classid != null and classid != ''">and classid = #{classid}</if> + <if test="title != null and title != ''">and title = #{title}</if> + <if test="content != null and content != ''">and content = #{content}</if> + <if test="type != null and type != ''">and type = #{type}</if> + + order by type + </select> + + <select id="selectByHalfdayplanById" parameterType="String" resultMap="ByHalfdayplanResult"> + <include refid="selectByHalfdayplanVo"/> + where id = #{id} + </select> + + <insert id="insertByHalfdayplan" parameterType="ByHalfdayplan" useGeneratedKeys="true" keyProperty="id"> + insert into by_halfdayplan + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null and id != ''">id,</if> + <if test="schoolid != null ">schoolid,</if> + <if test="classid != null and classid != ''">classid,</if> + <if test="title != null and title != ''">title,</if> + <if test="content != null and content != ''">content,</if> + <if test="createTime != null ">create_time,</if> + <if test="type != null and type != ''">type,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null and id != ''">#{id},</if> + <if test="schoolid != null ">#{schoolid},</if> + <if test="classid != null and classid != ''">#{classid},</if> + <if test="title != null and title != ''">#{title},</if> + <if test="content != null and content != ''">#{content},</if> + <if test="createTime != null ">#{createTime},</if> + <if test="type != null and type != ''">#{type},</if> + </trim> + </insert> + + <update id="updateByHalfdayplan" parameterType="ByHalfdayplan"> + update by_halfdayplan + <trim prefix="SET" suffixOverrides=","> + <if test="schoolid != null ">schoolid = #{schoolid},</if> + <if test="classid != null and classid != ''">classid = #{classid},</if> + <if test="title != null and title != ''">title = #{title},</if> + <if test="content != null and content != ''">content = #{content},</if> + <if test="createTime != null ">create_time = #{createTime},</if> + <if test="type != null and type != ''">type = #{type},</if> + </trim> + where id = #{id} + </update> + + <delete id="deleteByHalfdayplanById" parameterType="String"> + delete from by_halfdayplan where id = #{id} + </delete> + + <delete id="deleteByHalfdayplanByIds" parameterType="String"> + delete from by_halfdayplan where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> + +</mapper> \ No newline at end of file