大数据正式39 我会带着你远行 2022-06-02 06:16 168阅读 0赞 # 大数据正式39 # ### 国际物汇通商贸项目 》 系统管理 ### * 一睹为快 -![qialKDZ.png][] * 流程 * ![NMx1SY0.png][] ### 国际物汇通商贸项目 》 系统管理 》 部门管理 ### * 一睹为快 * ![P4msTk5.png][] * 流程 * ![ycPVVLn.png][] ### 国际物汇通商贸项目 》 系统管理 》 用户管理 ### * 一睹为快 * ![rrOzqqG.png][] * 流程 * ![ICaKPim.png][] ### 国际物汇通商贸项目 》 系统管理 》 角色管理 ### * 一睹为快 * ![ON9TH9f.png][] * 流程 * ![WKetXDa.png][] # 以部门管理为例介绍 # * 控制层【部分展示】 # # package com.peng.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import com.peng.pojo.Dept; import com.peng.service.DeptService; @Controller(value = "deptServlet") @RequestMapping(value = "/sysadmin/dept") public class DeptController { @Autowired @Qualifier(value = "deptService") private DeptService deptService; @RequestMapping("/list") public String findAllAction(Model model) { List<Dept> deptList = deptService.findAll(); model.addAttribute("deptList", deptList); return "/sysadmin/dept/jDeptList"; } // 点击“启用”按钮,实现禁用按钮--批量操作--非必传参数 @RequestMapping("/stop") public String stop(@RequestParam(name = "deptId", required = false) String[] deptIds) { if (deptIds != null) { deptService.changeState(0, deptIds); } return "redirect:/sysadmin/dept/list"; } // 点击“禁用”按钮,实现启用按钮--批量操作--非必传参数 @RequestMapping("/start") public String start(@RequestParam(name = "deptId", required = false) String[] deptIds) { if (deptIds != null) { deptService.changeState(1, deptIds); } return "redirect:/sysadmin/dept/list"; } // 点击“删除”按钮--批量操作--非必传参数 @RequestMapping("/delete") public String delete(@RequestParam(name = "deptId", required = false) String[] deptIds) { if (deptIds != null) { deptService.deleteDeptByIds(deptIds); } return "redirect:/sysadmin/dept/list"; } // 点击“新增”按钮--增加部门 @RequestMapping("/tocreate") public String tocreate(Model model) { List<Dept> deptList = deptService.findAll(); model.addAttribute("deptList", deptList); return "/sysadmin/dept/jDeptCreate"; } // 点击“增加”按钮--保存部门 @RequestMapping("/save") public String save(Model model, Dept dept) { try { deptService.saveDept(dept); return "redirect:/sysadmin/dept/list"; } catch (Exception e) { List<Dept> deptList = deptService.findAll(); model.addAttribute("deptList", deptList); model.addAttribute("save_error", "新增失败,可能是部门编号重复了!"); return "/sysadmin/dept/jDeptCreate"; } } // 点击“修改”按钮 @RequestMapping("/toupdate") public String toUpdate(Model model, @RequestParam(name = "deptId", required = false) String[] deptIds) { String deptId = deptIds != null ? deptIds[0] : null;// 只获取第一个 if (deptId == null || "".equals(deptId)) { model.addAttribute("error_up", "请选择一个部门"); List<Dept> deptList = deptService.findAll(); model.addAttribute("deptList", deptList); return "/sysadmin/dept/jDeptList"; } Dept dept = deptService.findOneById(deptId); List<Dept> deptList = deptService.findAll(); model.addAttribute("deptList", deptList); model.addAttribute("dept", dept); return "/sysadmin/dept/jDeptUpdate"; } // 点击“修改”按钮--保存部门 @RequestMapping("/update") public String update(Model model, Dept dept) { try { System.out.println(dept); deptService.updateDept(dept); return "redirect:/sysadmin/dept/list"; } catch (Exception e) { List<Dept> deptList = deptService.findAll(); model.addAttribute("deptList", deptList); model.addAttribute("update_error", "更新失败,走神了!"); model.addAttribute("deptList", deptList); model.addAttribute("dept", dept); return "/sysadmin/dept/jDeptUpdate"; } } // 点击“查看”按钮 @RequestMapping("/toview") public String showView(Model model, @RequestParam(name = "deptId", required = false) String[] deptIds) { String deptId = deptIds != null ? deptIds[0] : null;// 只获取第一个 if (deptId == null || "".equals(deptId)) { model.addAttribute("error_up", "请选择一个部门"); List<Dept> deptList = deptService.findAll(); model.addAttribute("deptList", deptList); return "/sysadmin/dept/jDeptList"; } Dept dept = deptService.findOneById(deptId); List<Dept> deptList = deptService.findAll(); model.addAttribute("deptList", deptList); model.addAttribute("dept", dept); return "/sysadmin/dept/jDeptView"; } } * service层【部分展示】 # # package com.peng.service; import java.util.List; import com.peng.pojo.Dept; public interface DeptService { /** * 查询所有的部门 * * @return */ List<Dept> findAll(); /** * 批量删除dept * * @param deptIds */ void deleteDeptByIds(String[] deptIds); /** * 批量更改状态 * * @param state * @param deptIds */ void changeState(int state, String[] deptIds); /** * 保存dept * * @param dept */ void saveDept(Dept dept); /** * 通过id查询dept * * @param deptId * @return */ Dept findOneById(String deptId); /** * 更新部门 * * @param dept */ void updateDept(Dept dept); } # # package com.peng.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import com.peng.mapper.DeptMapper; import com.peng.pojo.Dept; @Service(value = "deptService") public class DeptServiceImpl implements DeptService { // 注入dao层对象 @Autowired @Qualifier(value = "deptMapper") private DeptMapper deptMapper; public List<Dept> findAll() { return deptMapper.findAll(); } @Override public void deleteDeptByIds(String[] deptIds) { deptMapper.deleteDeptByIds(deptIds); } @Override public void changeState(int state, String[] deptIds) { deptMapper.changeState(state, deptIds); } @Override public void saveDept(Dept dept) { deptMapper.saveDept(dept); } @Override public Dept findOneById(String deptId) { return deptMapper.findOneById(deptId); } @Override public void updateDept(Dept dept) { deptMapper.updateDept(dept); } } * dao层 # # package com.peng.mapper; import java.util.List; import org.apache.ibatis.annotations.Param; import com.peng.pojo.Dept; public interface DeptMapper { /** * 查询所有部门 */ public List<Dept> findAll(); /** * 通过id更改状态 * * @param state * @param id */ public void changeState(@Param("state") int state, @Param("deptIds") String[] deptIds); /** * 批量删除dept * * @param deptIds */ public void deleteDeptByIds(String[] deptIds); /** * 保存dept * * @param dept */ public void saveDept(Dept dept); /** * 通过dept_id查询dept * * @param deptId * @return */ public Dept findOneById(String deptId); /** * 更新dept * * @param dept */ public void updateDept(Dept dept); } * dao层对应的mapper文件 # # <?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.peng.mapper.DeptMapper"> <!-- 查询所有的部门 --> <resultMap type="Dept" id="deptRM" autoMapping="true"> <id column="dept_id" property="deptId"></id> <association property="parentDept" javaType="Dept"> <id column="pId" property="deptId"></id> <result column="pName" property="deptName"></result> </association> </resultMap> <select id="findAll" resultMap="deptRM"> SELECT * FROM dept_p d LEFT JOIN (SELECT dept_id pId,dept_name pName FROM dept_p) p ON d.parent_id = p.pId </select> <!-- 通过id更改状态 :这里的参数deptIds直接写在collection --> <update id="changeState"> update dept_p set state=#{state} where dept_id in <foreach collection="deptIds" item="id" open="(" close=")" separator=",">#{id} </foreach> </update> <!-- 批量删除dept --> <delete id="deleteDeptByIds"> delete from dept_p where dept_id in <foreach collection="array" item="id" open="(" close=")" separator=",">#{id} </foreach> </delete> <!-- 保存dept --> <insert id="saveDept"> insert into dept_p (dept_id,dept_name,parent_id,state) values(#{deptId},#{deptName},#{parentDept.deptId},#{state}); </insert> <!-- 通过id查询dept --> <select id="findOneById" resultMap="deptRM"> SELECT * FROM ( SELECT * FROM dept_p d LEFT JOIN (SELECT dept_id pId,dept_name pName FROM dept_p) p ON d.parent_id = p.pId ) temp WHERE temp.dept_id=#{deptId} </select> <!-- 更新dept --> <update id="updateDept"> update dept_p <set> <if test="deptName!=null">dept_name=#{deptName},</if> <if test="parentDept.deptId!=null">dept_id=#{deptId},</if> <if test="state!=null">state=#{state}</if> </set> where dept_id=#{deptId} </update> </mapper> * 数据库设计 * ![Spklmy4.png][] * pojo # # package com.peng.pojo; public class Dept extends BaseEntity { private String deptId; private Dept parentDept;// 上级部门 private String deptName; private Integer state; public String getDeptId() { return deptId; } public void setDeptId(String deptId) { this.deptId = deptId; } public Dept getParentDept() { return parentDept; } public void setParentDept(Dept parentDept) { this.parentDept = parentDept; } public String getdeptName() { return deptName; } public void setdeptName(String deptName) { this.deptName = deptName; } public Integer getState() { return state; } public void setState(Integer state) { this.state = state; } @Override public String toString() { return "Dept [deptId=" + deptId + ", parentDept=" + parentDept + ", deptName=" + deptName + ", state=" + state + "]"; } } [qialKDZ.png]: https://i.imgur.com/qialKDZ.png [NMx1SY0.png]: https://i.imgur.com/NMx1SY0.png [P4msTk5.png]: https://i.imgur.com/P4msTk5.png [ycPVVLn.png]: https://i.imgur.com/ycPVVLn.png [rrOzqqG.png]: https://i.imgur.com/rrOzqqG.png [ICaKPim.png]: https://i.imgur.com/ICaKPim.png [ON9TH9f.png]: https://i.imgur.com/ON9TH9f.png [WKetXDa.png]: https://i.imgur.com/WKetXDa.png [Spklmy4.png]: https://i.imgur.com/Spklmy4.png
相关 大数据正式5 大数据正式5 常见的shell命令 管道命令 管道符| 将两个命令隔开,左边命令的输出就会作为管道右边命令的输入 连续使 旧城等待,/ 2022年06月06日 10:29/ 0 赞/ 270 阅读
相关 大数据正式2 大数据正式2 用户身份与用户组记录的文件 在Linux系统当中,默认情况下所有的系统上的账号信息都记录在/etc/passwd这个文件内(包括root用户), 快来打我*/ 2022年06月06日 08:38/ 0 赞/ 193 阅读
相关 大数据正式10 大数据正式10 jQuery 定义:jQuery是一个“写的更少”,但“做的更多”的轻量级JavaScript函数库 优势 1. 可 ゞ 浴缸里的玫瑰/ 2022年06月05日 06:24/ 0 赞/ 301 阅读
相关 大数据正式32 大数据正式32 Spring中的JDBC jar包准备 ![zW1gEQQ.png][] bean+properties普通配置 悠悠/ 2022年06月03日 08:44/ 0 赞/ 205 阅读
相关 大数据正式27 大数据正式27 Spring 先来张图简单看一下 ![oQySJMC.png][] spring框架的特点 1 悠悠/ 2022年06月03日 04:38/ 0 赞/ 177 阅读
相关 大数据正式39 大数据正式39 国际物汇通商贸项目 》 系统管理 一睹为快 -![qialKDZ.png][] 流程 ![NMx1SY0.png 我会带着你远行/ 2022年06月02日 06:16/ 0 赞/ 169 阅读
相关 大数据正式37 大数据正式37 Maven 传统项目存在的弊端 1. 导入jar包得经验丰富 2. 传统项目打包方式不通用,不能很好的支持聚合项 左手的ㄟ右手/ 2022年06月02日 01:46/ 0 赞/ 195 阅读
相关 大数据正式36 大数据正式36 MyBatis的接口形式 注意两点 1. 接口名---namespace值对应 2. 方法名---id一致 淩亂°似流年/ 2022年06月02日 01:12/ 0 赞/ 300 阅读
相关 大数据正式34 大数据正式34 Spring+SpringMVC 小例子 效果图 ![hsIEQmd.png][] 功能说明 川长思鸟来/ 2022年06月02日 00:16/ 0 赞/ 319 阅读
还没有评论,来说两句吧...