健康管理系统第三天(预约管理之检查组的添加、修改和分页显示)

一、检查组分页
1.前端checkgroup.html检查组分页的执行流程

2.完善CheckGroupController
package com.oracle.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.oracle.constant.MessageConstant;
import com.oracle.entity.PageResult;
import com.oracle.entity.QueryPageBean;
import com.oracle.entity.Result;
import com.oracle.pojo.CheckGroup;
import com.oracle.pojo.CheckItem;
import com.oracle.service.CheckGroupService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/checkgroup")
public class CheckGroupController {

    @Reference
    CheckGroupService checkGroupService;

    @RequestMapping("/findPage")
    public PageResult findPageFromCheckGroup(@RequestBody QueryPageBean queryPageBean){
         return checkGroupService.findPageFromCheckGroup(queryPageBean);
    }
}
3.完善CheckGroupService接口
package com.oracle.service;

import com.oracle.entity.PageResult;
import com.oracle.entity.QueryPageBean;
import com.oracle.entity.Result;
import com.oracle.pojo.CheckGroup;
import com.oracle.pojo.CheckItem;

import java.util.List;

public interface CheckGroupService {
    /*分页查询检查组*/
    PageResult findPageFromCheckGroup(QueryPageBean queryPageBean);
}
4.完善CheckGroupServiceImpl实现类
package com.oracle.service;

import com.alibaba.dubbo.config.annotation.Service;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.oracle.dao.CheckGroupDao;
import com.oracle.entity.PageResult;
import com.oracle.entity.QueryPageBean;
import com.oracle.pojo.CheckGroup;
import com.oracle.pojo.CheckItem;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service(interfaceClass = CheckGroupService.class)
@Transactional
public class CheckGroupServiceImpl implements CheckGroupService {

    @Autowired
    CheckGroupDao checkGroupDao;

    @Override
    public PageResult findPageFromCheckGroup(QueryPageBean queryPageBean) {
        Integer currentPage = queryPageBean.getCurrentPage();
        Integer pageSize = queryPageBean.getPageSize();
        String queryString = queryPageBean.getQueryString();
        PageHelper.startPage(currentPage,pageSize);
        Page<CheckGroup> page = checkGroupDao.findByCondition(queryString);
        return new PageResult(page.getTotal(),page);
    }
}
5.完善CheckGroupDao接口
package com.oracle.dao;

import com.github.pagehelper.Page;
import com.oracle.pojo.CheckGroup;
import com.oracle.pojo.CheckItem;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
public interface CheckGroupDao {
    /*分页查询检查组*/
    Page<CheckGroup> findByCondition(String queryString);
}
6.完善CheckGroupDao.xml映射文件
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.oracle.dao.CheckGroupDao">
    <!--分页查询检查组-->
    <select id="findByCondition" parameterType="String" resultType="com.oracle.pojo.CheckGroup">
        select * from t_checkgroup
        <if test="value != null and value != '' and value.length > 0">
            where code = #{value} or name = #{value} or helpCode = #{value}
        </if>
    </select>
</mapper>
7.测试检查组分页显示是否正常

二、新增检查组
  • 当用户点击新建按钮之后弹出一个模态框,同时发出一个findAll的请求获取数据库中与检查组关联的所有的检查项的信息,当用户输入完检查组的基本信息并选择对应的检查项关联信息之后点击添加按钮
  • 然后发送一个add的添加请求,这时请求到业务层时先将用户添加的检查组基本信息存入数据库中的t_checkgroup表中,然后再继续添加检查组和检查项之间的对应关系到t_checkgroup_checkitem表中
1.前端checkgroup.html新增检查组的执行流程

2.完善CheckGroupController
package com.oracle.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.oracle.constant.MessageConstant;
import com.oracle.entity.PageResult;
import com.oracle.entity.QueryPageBean;
import com.oracle.entity.Result;
import com.oracle.pojo.CheckGroup;
import com.oracle.pojo.CheckItem;
import com.oracle.service.CheckGroupService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/checkgroup")
public class CheckGroupController {

    @Reference
    CheckGroupService checkGroupService;

    @RequestMapping("/findPage")
    public PageResult findPageFromCheckGroup(@RequestBody QueryPageBean queryPageBean){
         return checkGroupService.findPageFromCheckGroup(queryPageBean);
    }

	/*展示检查组的检查项信息*/
    @RequestMapping("/findAll")
    public Result findAllFromCheckItem(){
        List<CheckItem> checkItemList=null;
        try {
            checkItemList = checkGroupService.findAllFromCheckItem();
        } catch (Exception e) {
            e.printStackTrace();
            return new Result(false, MessageConstant.QUERY_CHECKITEM_FAIL);
        }
        return new Result(true, MessageConstant.QUERY_CHECKITEM_SUCCESS,checkItemList);
    }
}

	@RequestMapping("/add")
    public Result addCheckGroup(@RequestBody CheckGroup checkGroup, Integer[] checkItemIds){
        try {
            System.out.println(checkItemIds);
            checkGroupService.addCheckGroup(checkGroup,checkItemIds);
        } catch (Exception e) {
            e.printStackTrace();
            return new Result(false, MessageConstant.ADD_CHECKGROUP_FAIL);
        }
        return new Result(true, MessageConstant.ADD_CHECKGROUP_SUCCESS);
    }
3.完善CheckGroupService接口
package com.oracle.service;

import com.oracle.entity.PageResult;
import com.oracle.entity.QueryPageBean;
import com.oracle.entity.Result;
import com.oracle.pojo.CheckGroup;
import com.oracle.pojo.CheckItem;

import java.util.List;

public interface CheckGroupService {
    /*分页查询检查组*/
    PageResult findPageFromCheckGroup(QueryPageBean queryPageBean);
    
    /*点击新建之后展示检查组的检查项信息*/
    List<CheckItem> findAllFromCheckItem();
    /*新增检查组*/
    void addCheckGroup(CheckGroup checkGroup, Integer[] checkItemIds);
}
4.完善CheckGroupServiceImpl实现类
package com.oracle.service;

import com.alibaba.dubbo.config.annotation.Service;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.oracle.dao.CheckGroupDao;
import com.oracle.entity.PageResult;
import com.oracle.entity.QueryPageBean;
import com.oracle.pojo.CheckGroup;
import com.oracle.pojo.CheckItem;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service(interfaceClass = CheckGroupService.class)
@Transactional
public class CheckGroupServiceImpl implements CheckGroupService {

    @Autowired
    CheckGroupDao checkGroupDao;

    @Override
    public PageResult findPageFromCheckGroup(QueryPageBean queryPageBean) {
        Integer currentPage = queryPageBean.getCurrentPage();
        Integer pageSize = queryPageBean.getPageSize();
        String queryString = queryPageBean.getQueryString();
        PageHelper.startPage(currentPage,pageSize);
        Page<CheckGroup> page = checkGroupDao.findByCondition(queryString);
        return new PageResult(page.getTotal(),page);
    }

	@Override
    public List<CheckItem> findAllFromCheckItem() {
        return checkGroupDao.findAllFromCheckItem();
    }
    @Override
    public void addCheckGroup(CheckGroup checkGroup, Integer[] checkItemIds) {
        //新增检查组
        checkGroupDao.addCheckGoup(checkGroup);
        //将新增的检查组和检查项建立多对多的关系
        Integer checkGroupId = checkGroup.getId();
        this.setCheckGroupAndCheckItem(checkGroupId,checkItemIds);
    }
    /*建立检查组和检查项的关联关系*/
    public void setCheckGroupAndCheckItem(Integer checkGroupId, Integer[] checkItemIds) {
        if(checkItemIds!=null && checkItemIds.length > 0){
            for (Integer checkItemId : checkItemIds) {
                Map<String,Integer> map=new HashMap<>();
                map.put("checkGroupId",checkGroupId);
                map.put("checkItemId",checkItemId);
                checkGroupDao.setCheckGroupAndCheckItem(map);
            }
        }
    }
}
5.完善CheckGroupDao接口
package com.oracle.dao;

import com.github.pagehelper.Page;
import com.oracle.pojo.CheckGroup;
import com.oracle.pojo.CheckItem;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
public interface CheckGroupDao {
    /*分页查询检查组*/
    Page<CheckGroup> findByCondition(String queryString);
	
	/*点击新建之后展示检查组的检查项信息*/
    List<CheckItem> findAllFromCheckItem();
    /*新增检查组*/
    void addCheckGoup(CheckGroup checkGroup);
	/*将<检查项,检查组>新增进关联表中*/
    void setCheckGroupAndCheckItem(Map<String, Integer> map);
}
6.完善CheckGroupDao.xml映射文件
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.oracle.dao.CheckGroupDao">
    <!--分页查询检查组-->
    <select id="findByCondition" parameterType="String" resultType="com.oracle.pojo.CheckGroup">
        select * from t_checkgroup
        <if test="value != null and value != '' and value.length > 0">
            where code = #{value} or name = #{value} or helpCode = #{value}
        </if>
    </select>

	<!--查询所有的检查项-->
    <select id="findAllFromCheckItem" resultType="com.oracle.pojo.CheckItem">
        select * from t_checkitem
        <if test="value !=null and value.length>0">
            where code=#{value} or name=#{value}
        </if>
    </select>
    <!--新增检查组信息-->
    <insert id="addCheckGoup" parameterType="com.oracle.pojo.CheckGroup">
        <selectKey resultType="Integer" order="AFTER" keyProperty="id">
            select LAST_INSERT_ID()
        </selectKey>
        insert into t_checkgroup(code,name,helpCode,sex,remark,attention) values(#{code},#{name},#{helpCode},#{sex},#{remark},#{attention})
    </insert>
    <!--关联检查项-->
    <insert id="setCheckGroupAndCheckItem" parameterType="map">
        insert into t_checkgroup_checkitem(checkgroup_id,checkitem_id)
        values
        (#{checkGroupId},#{checkItemId})
    </insert>
</mapper>
7.测试检查组分页显示是否正常



三、编辑检查组
1.前端checkgroup.html编辑检查组的执行流程
  • 点击某个检查组的编辑按钮之后,弹出编辑模态框,同时发送三个请求:1.回显该检查组的基本信息,2.显示所有的检查项,3.在检查组对应的检查项的复选框回显
  • 当用户修改完成之后,点击确定按钮,发送修改的请求到后台(携带检查组的所有信息和选择好的检查项的集合),后台将其封装到一个CheckGroup和一个Integer[]中
2.完善CheckGroupController
package com.oracle.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.oracle.constant.MessageConstant;
import com.oracle.entity.PageResult;
import com.oracle.entity.QueryPageBean;
import com.oracle.entity.Result;
import com.oracle.pojo.CheckGroup;
import com.oracle.pojo.CheckItem;
import com.oracle.service.CheckGroupService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/checkgroup")
public class CheckGroupController {

    @Reference
    CheckGroupService checkGroupService;

    @RequestMapping("/findPage")
    public PageResult findPageFromCheckGroup(@RequestBody QueryPageBean queryPageBean){
         return checkGroupService.findPageFromCheckGroup(queryPageBean);
    }

	/*展示检查组的检查项信息*/
    @RequestMapping("/findAll")
    public Result findAllFromCheckItem(){
        List<CheckItem> checkItemList=null;
        try {
            checkItemList = checkGroupService.findAllFromCheckItem();
        } catch (Exception e) {
            e.printStackTrace();
            return new Result(false, MessageConstant.QUERY_CHECKITEM_FAIL);
        }
        return new Result(true, MessageConstant.QUERY_CHECKITEM_SUCCESS,checkItemList);
    }

	@RequestMapping("/add")
    public Result addCheckGroup(@RequestBody CheckGroup checkGroup, Integer[] checkItemIds){
        try {
            System.out.println(checkItemIds);
            checkGroupService.addCheckGroup(checkGroup,checkItemIds);
        } catch (Exception e) {
            e.printStackTrace();
            return new Result(false, MessageConstant.ADD_CHECKGROUP_FAIL);
        }
        return new Result(true, MessageConstant.ADD_CHECKGROUP_SUCCESS);
    }

	@RequestMapping("/findById")
    public Result findById(Integer id){
        CheckGroup checkGroup=null;
        try {
            checkGroup = checkGroupService.findById(id);
        } catch (Exception e) {
            e.printStackTrace();
            return new Result(false, MessageConstant.QUERY_CHECKGROUP_FAIL);
        }
        return new Result(true, MessageConstant.QUERY_CHECKGROUP_SUCCESS,checkGroup);
    }

    /*根据检查组ID查询检查组包含的多个检查项ID*/
    @RequestMapping("/findCheckItemIdsByCheckGroupId")
    public Result findCheckItemIdsByCheckGroupId(Integer id){
        try{
            List<Integer> checkitemIds = checkGroupService.findCheckItemIdsByCheckGroupId(id);
            return new Result(true,MessageConstant.QUERY_CHECKITEM_SUCCESS,checkitemIds);//查询成功
        }catch (Exception e){
            e.printStackTrace();
            return new Result(false, MessageConstant.QUERY_CHECKITEM_FAIL);//查询失败
        }
    }

    @RequestMapping("/edit")
    public Result editCheckGroup_Submit(@RequestBody CheckGroup checkGroup, Integer[] checkItemIds){
        try {
            checkGroupService.editCheckGroup_Submit(checkGroup,checkItemIds);
        } catch (Exception e) {
            e.printStackTrace();
            return new Result(false, MessageConstant.EDIT_CHECKGROUP_FAIL);
        }
        return new Result(true, MessageConstant.EDIT_CHECKGROUP_SUCCESS);
    }
}
2.完善CheckGroupService接口
package com.oracle.service;

import com.oracle.entity.PageResult;
import com.oracle.entity.QueryPageBean;
import com.oracle.entity.Result;
import com.oracle.pojo.CheckGroup;
import com.oracle.pojo.CheckItem;

import java.util.List;

public interface CheckGroupService {
    /*分页查询检查组*/
    PageResult findPageFromCheckGroup(QueryPageBean queryPageBean);
    
    /*点击新建之后展示检查组的检查项信息*/
    List<CheckItem> findAllFromCheckItem();
    /*新增检查组*/
    void addCheckGroup(CheckGroup checkGroup, Integer[] checkItemIds);

	/*打开编辑之后的数据回显*/
    CheckGroup findById(Integer id);
    /*根据检查组的id*/
    List<Integer> findCheckItemIdsByCheckGroupId(Integer id);
    /*提交编辑之后的检查组*/
    void editCheckGroup_Submit(CheckGroup checkGroup, Integer[] checkItemIds);
}
3.完善CheckGroupServiceImpl实现类
package com.oracle.service;

import com.alibaba.dubbo.config.annotation.Service;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.oracle.dao.CheckGroupDao;
import com.oracle.entity.PageResult;
import com.oracle.entity.QueryPageBean;
import com.oracle.pojo.CheckGroup;
import com.oracle.pojo.CheckItem;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service(interfaceClass = CheckGroupService.class)
@Transactional
public class CheckGroupServiceImpl implements CheckGroupService {

    @Autowired
    CheckGroupDao checkGroupDao;

    @Override
    public PageResult findPageFromCheckGroup(QueryPageBean queryPageBean) {
        Integer currentPage = queryPageBean.getCurrentPage();
        Integer pageSize = queryPageBean.getPageSize();
        String queryString = queryPageBean.getQueryString();
        PageHelper.startPage(currentPage,pageSize);
        Page<CheckGroup> page = checkGroupDao.findByCondition(queryString);
        return new PageResult(page.getTotal(),page);
    }

	@Override
    public List<CheckItem> findAllFromCheckItem() {
        return checkGroupDao.findAllFromCheckItem();
    }
    @Override
    public void addCheckGroup(CheckGroup checkGroup, Integer[] checkItemIds) {
        //新增检查组
        checkGroupDao.addCheckGoup(checkGroup);
        //将新增的检查组和检查项建立多对多的关系
        Integer checkGroupId = checkGroup.getId();
        this.setCheckGroupAndCheckItem(checkGroupId,checkItemIds);
    }
    /*建立检查组和检查项的关联关系*/
    public void setCheckGroupAndCheckItem(Integer checkGroupId, Integer[] checkItemIds) {
        if(checkItemIds!=null && checkItemIds.length > 0){
            for (Integer checkItemId : checkItemIds) {
                Map<String,Integer> map=new HashMap<>();
                map.put("checkGroupId",checkGroupId);
                map.put("checkItemId",checkItemId);
                checkGroupDao.setCheckGroupAndCheckItem(map);
            }
        }
    }

	@Override
    public CheckGroup findById(Integer id) {
        return checkGroupDao.findById(id);
    }
    @Override
    public List<Integer> findCheckItemIdsByCheckGroupId(Integer id) {
        return checkGroupDao.findCheckItemIdsByCheckGroupId(id);
    }
    @Override
    public void editCheckGroup_Submit(CheckGroup checkGroup, Integer[] checkItemIds) {
        //修改检查组基本信息,操作检查组t_checkgroup表
        checkGroupDao.editCheckGroup_Submit(checkGroup);
        //清理当前检查组关联的检查项,操作中间关系表t_checkgroup_checkitem表
        checkGroupDao.deleteAssocication(checkGroup.getId());
        //重新建立当前检查组和检查项的关联关系
        Integer checkGroupId = checkGroup.getId();
        this.setCheckGroupAndCheckItem(checkGroupId,checkItemIds);
    }
}
4.完善CheckGroupDao接口
package com.oracle.dao;

import com.github.pagehelper.Page;
import com.oracle.pojo.CheckGroup;
import com.oracle.pojo.CheckItem;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
public interface CheckGroupDao {
    /*分页查询检查组*/
    Page<CheckGroup> findByCondition(String queryString);
	
	/*点击新建之后展示检查组的检查项信息*/
    List<CheckItem> findAllFromCheckItem();
    /*新增检查组*/
    void addCheckGoup(CheckGroup checkGroup);
	/*将<检查项,检查组>新增进关联表中*/
    void setCheckGroupAndCheckItem(Map<String, Integer> map);

	/*打开编辑之后的数据回显*/
    CheckGroup findById(Integer id);
    /*根据检查组的id查询对应的检查项的id的集合*/
    List<Integer> findCheckItemIdsByCheckGroupId(Integer id);
    /*提交编辑之后的检查组基本信息*/
    void editCheckGroup_Submit(CheckGroup checkGroup);
    /*删除关联表中的关联数据*/
    void deleteAssocication(Integer id);
}
5.完善CheckGroupDao.xml映射文件
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.oracle.dao.CheckGroupDao">
    <!--分页查询检查组-->
    <select id="findByCondition" parameterType="String" resultType="com.oracle.pojo.CheckGroup">
        select * from t_checkgroup
        <if test="value != null and value != '' and value.length > 0">
            where code = #{value} or name = #{value} or helpCode = #{value}
        </if>
    </select>

	<!--查询所有的检查项-->
    <select id="findAllFromCheckItem" resultType="com.oracle.pojo.CheckItem">
        select * from t_checkitem
        <if test="value !=null and value.length>0">
            where code=#{value} or name=#{value}
        </if>
    </select>
    <!--新增检查组信息-->
    <insert id="addCheckGoup" parameterType="com.oracle.pojo.CheckGroup">
        <selectKey resultType="Integer" order="AFTER" keyProperty="id">
            select LAST_INSERT_ID()
        </selectKey>
        insert into t_checkgroup(code,name,helpCode,sex,remark,attention) values(#{code},#{name},#{helpCode},#{sex},#{remark},#{attention})
    </insert>
    <!--关联检查项-->
    <insert id="setCheckGroupAndCheckItem" parameterType="map">
        insert into t_checkgroup_checkitem(checkgroup_id,checkitem_id)
        values
        (#{checkGroupId},#{checkItemId})
    </insert>

	<!--点击编辑之后根据检查组的id查询到对应的检查项的id-->
    <select id="findCheckItemIdsByCheckGroupId" parameterType="int" resultType="int">
        select checkitem_id from t_checkgroup_checkitem where checkgroup_id = #{id}
    </select>
    <!--点击编辑之后的数据回显-->
    <select id="findById" parameterType="int" resultType="com.oracle.pojo.CheckGroup">
        select * from t_checkgroup where id = #{id}
    </select>
    <!--根据ID动态修改检查组相关字段-->
    <update id="editCheckGroup_Submit" parameterType="com.oracle.pojo.CheckGroup">
        update t_checkgroup
        <set>
            <if test="name != null">
                name = #{name},
            </if>
            <if test="sex != null">
                sex = #{sex},
            </if>
            <if test="code != null">
                code = #{code},
            </if>
            <if test="helpCode != null">
                helpCode = #{helpCode},
            </if>
            <if test="attention != null">
                attention = #{attention},
            </if>
            <if test="remark != null">
                remark = #{remark},
            </if>
        </set>
        where id = #{id}
    </update>
    <!--根据检查组ID清理关联的检查项信息,操作的表t_checkgroup_checkitem-->
    <delete id="deleteAssocication" parameterType="Integer">
        delete from t_checkgroup_checkitem where checkgroup_id = #{id}
    </delete>
</mapper>
6.测试编辑检查组是否正常



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值