SSM_login

来源:互联网 发布:淘宝中文国际版app 编辑:程序博客网 时间:2024/06/03 20:17

1.M

1.1 M_pojo

分页

package com.fh.entity;import com.fh.util.Const;import com.fh.util.PageData;import com.fh.util.Tools;public class Page {private int showCount;          //每页显示记录数private int totalPage;//总页数private int totalResult;//总记录数private int currentPage;//当前页private int currentResult;//当前记录起始索引private boolean entityOrField;//true:需要分页的地方,传入的参数就是Page实体;false:需要分页的地方,传入的参数所代表的实体拥有Page属性private String pageStr;//最终页面显示的底部翻页导航,详细见:getPageStr();private PageData pd = new PageData();public Page(){try {this.showCount = Integer.parseInt(Tools.readTxtFile(Const.PAGE));} catch (Exception e) {this.showCount = 15;}}public int getTotalPage() {if(totalResult%showCount==0)totalPage = totalResult/showCount;elsetotalPage = totalResult/showCount+1;return totalPage;}public void setTotalPage(int totalPage) {this.totalPage = totalPage;}public int getTotalResult() {return totalResult;}public void setTotalResult(int totalResult) {this.totalResult = totalResult;}public int getCurrentPage() {if(currentPage<=0)currentPage = 1;if(currentPage>getTotalPage())currentPage = getTotalPage();return currentPage;}public void setCurrentPage(int currentPage) {this.currentPage = currentPage;}public String getPageStr() {StringBuffer sb = new StringBuffer();if(totalResult>0){sb.append("<ul>\n");if(currentPage==1){sb.append("<li><a>共<font color=red>"+totalResult+"</font>条</a></li>\n");sb.append("<li><input type=\"number\" value=\"\" id=\"toGoPage\" style=\"width:50px;text-align:center;float:left\" placeholder=\"页码\"/></li>\n");sb.append("<li style=\"cursor:pointer;\"><a onclick=\"toTZ();\"  class=\"btn btn-mini btn-success\">跳转</a></li>\n");sb.append("<li><a>首页</a></li>\n");sb.append("<li><a>上页</a></li>\n");}else{sb.append("<li><a>共<font color=red>"+totalResult+"</font>条</a></li>\n");sb.append("<li><input type=\"number\" value=\"\" id=\"toGoPage\" style=\"width:50px;text-align:center;float:left\" placeholder=\"页码\"/></li>\n");sb.append("<li style=\"cursor:pointer;\"><a onclick=\"toTZ();\"  class=\"btn btn-mini btn-success\">跳转</a></li>\n");sb.append("<li style=\"cursor:pointer;\"><a onclick=\"nextPage(1)\">首页</a></li>\n");sb.append("<li style=\"cursor:pointer;\"><a onclick=\"nextPage("+(currentPage-1)+")\">上页</a></li>\n");}int showTag = 5;//分页标签显示数量int startTag = 1;if(currentPage>showTag){startTag = currentPage-1;}int endTag = startTag+showTag-1;for(int i=startTag; i<=totalPage && i<=endTag; i++){if(currentPage==i)sb.append("<li><a><font color='#808080'>"+i+"</font></a></li>\n");elsesb.append("<li style=\"cursor:pointer;\"><a onclick=\"nextPage("+i+")\">"+i+"</a></li>\n");}if(currentPage==totalPage){sb.append("<li><a>下页</a></li>\n");sb.append("<li><a>尾页</a></li>\n");}else{sb.append("<li style=\"cursor:pointer;\"><a onclick=\"nextPage("+(currentPage+1)+")\">下页</a></li>\n");sb.append("<li style=\"cursor:pointer;\"><a onclick=\"nextPage("+totalPage+")\">尾页</a></li>\n");}sb.append("<li><a>第"+currentPage+"页</a></li>\n");sb.append("<li><a>共"+totalPage+"页</a></li>\n");sb.append("<li><select title='显示条数' style=\"width:55px;float:left;\" onchange=\"changeCount(this.value)\">\n");sb.append("<option value='"+showCount+"'>"+showCount+"</option>\n");sb.append("<option value='10'>10</option>\n");sb.append("<option value='20'>20</option>\n");sb.append("<option value='30'>30</option>\n");sb.append("<option value='40'>40</option>\n");sb.append("<option value='50'>50</option>\n");sb.append("<option value='60'>60</option>\n");sb.append("<option value='70'>70</option>\n");sb.append("<option value='80'>80</option>\n");sb.append("<option value='90'>90</option>\n");sb.append("<option value='99'>99</option>\n");sb.append("</select>\n");sb.append("</li>\n");sb.append("</ul>\n");sb.append("<script type=\"text/javascript\">\n");//换页函数sb.append("function nextPage(page){");sb.append(" top.jzts();");sb.append("if(true && document.forms[0]){\n");sb.append("var url = document.forms[0].getAttribute(\"action\");\n");sb.append("if(url.indexOf('?')>-1){url += \"&"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n");sb.append("else{url += \"?"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n");sb.append("url = url + page + \"&" +(entityOrField?"showCount":"page.showCount")+"="+showCount+"\";\n");sb.append("document.forms[0].action = url;\n");sb.append("document.forms[0].submit();\n");sb.append("}else{\n");sb.append("var url = document.location+'';\n");sb.append("if(url.indexOf('?')>-1){\n");sb.append("if(url.indexOf('currentPage')>-1){\n");sb.append("var reg = /currentPage=\\d*/g;\n");sb.append("url = url.replace(reg,'currentPage=');\n");sb.append("}else{\n");sb.append("url += \"&"+(entityOrField?"currentPage":"page.currentPage")+"=\";\n");sb.append("}\n");sb.append("}else{url += \"?"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n");sb.append("url = url + page + \"&" +(entityOrField?"showCount":"page.showCount")+"="+showCount+"\";\n");sb.append("document.location = url;\n");sb.append("}\n");sb.append("}\n");//调整每页显示条数sb.append("function changeCount(value){");sb.append(" top.jzts();");sb.append("if(true && document.forms[0]){\n");sb.append("var url = document.forms[0].getAttribute(\"action\");\n");sb.append("if(url.indexOf('?')>-1){url += \"&"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n");sb.append("else{url += \"?"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n");sb.append("url = url + \"1&" +(entityOrField?"showCount":"page.showCount")+"=\"+value;\n");sb.append("document.forms[0].action = url;\n");sb.append("document.forms[0].submit();\n");sb.append("}else{\n");sb.append("var url = document.location+'';\n");sb.append("if(url.indexOf('?')>-1){\n");sb.append("if(url.indexOf('currentPage')>-1){\n");sb.append("var reg = /currentPage=\\d*/g;\n");sb.append("url = url.replace(reg,'currentPage=');\n");sb.append("}else{\n");sb.append("url += \"1&"+(entityOrField?"currentPage":"page.currentPage")+"=\";\n");sb.append("}\n");sb.append("}else{url += \"?"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n");sb.append("url = url + \"&" +(entityOrField?"showCount":"page.showCount")+"=\"+value;\n");sb.append("document.location = url;\n");sb.append("}\n");sb.append("}\n");//跳转函数 sb.append("function toTZ(){");sb.append("var toPaggeVlue = document.getElementById(\"toGoPage\").value;");sb.append("if(toPaggeVlue == ''){document.getElementById(\"toGoPage\").value=1;return;}");sb.append("if(isNaN(Number(toPaggeVlue))){document.getElementById(\"toGoPage\").value=1;return;}");sb.append("nextPage(toPaggeVlue);");sb.append("}\n");sb.append("</script>\n");}pageStr = sb.toString();return pageStr;}public void setPageStr(String pageStr) {this.pageStr = pageStr;}public int getShowCount() {return showCount;}public void setShowCount(int showCount) {this.showCount = showCount;}public int getCurrentResult() {currentResult = (getCurrentPage()-1)*getShowCount();if(currentResult<0)currentResult = 0;return currentResult;}public void setCurrentResult(int currentResult) {this.currentResult = currentResult;}public boolean isEntityOrField() {return entityOrField;}public void setEntityOrField(boolean entityOrField) {this.entityOrField = entityOrField;}public PageData getPd() {return pd;}public void setPd(PageData pd) {this.pd = pd;}}

用户

public class User {private String USER_ID;//用户idprivate String USERNAME;//用户名private String PASSWORD; //密码private String NAME;//姓名private String RIGHTS;//权限private String ROLE_ID;//角色idprivate String LAST_LOGIN;//最后登录时间private String IP;//用户登录ip地址private String STATUS;//状态private Role role;//角色对象private Page page;//分页对象private String SKIN;//皮肤


菜单
public class Menu {private String MENU_ID;private String MENU_NAME;private String MENU_URL;private String PARENT_ID;private String MENU_ORDER;private String MENU_ICON;private String MENU_TYPE;private String target;private Menu parentMenu;private List<Menu> subMenu;private boolean hasMenu = false;


角色
public class Role {private String ROLE_ID;private String ROLE_NAME;private String RIGHTS;private String PARENT_ID;private String ADD_QX;private String DEL_QX;private String EDIT_QX;private String CHA_QX;private String QX_ID;


1.2 M_DAO

基本接口

package com.fh.dao;public interface DAO {/** * 保存对象 * @param str * @param obj * @return * @throws Exception */public Object save(String str, Object obj) throws Exception;/** * 修改对象 * @param str * @param obj * @return * @throws Exception */public Object update(String str, Object obj) throws Exception;/** * 删除对象  * @param str * @param obj * @return * @throws Exception */public Object delete(String str, Object obj) throws Exception;/** * 查找对象 * @param str * @param obj * @return * @throws Exception */public Object findForObject(String str, Object obj) throws Exception;/** * 查找对象 * @param str * @param obj * @return * @throws Exception */public Object findForList(String str, Object obj) throws Exception;/** * 查找对象封装成Map * @param s * @param obj * @return * @throws Exception */public Object findForMap(String sql, Object obj, String key , String value) throws Exception;}


基本实现接口

package com.fh.dao;import java.util.List;import javax.annotation.Resource;import org.apache.ibatis.session.ExecutorType;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionTemplate;import org.springframework.stereotype.Repository;@Repository("daoSupport")public class DaoSupport implements DAO {@Resource(name = "sqlSessionTemplate")private SqlSessionTemplate sqlSessionTemplate;/** * 保存对象 * @param str * @param obj * @return * @throws Exception */public Object save(String str, Object obj) throws Exception {return sqlSessionTemplate.insert(str, obj);}/** * 批量更新 * @param str * @param obj * @return * @throws Exception */public Object batchSave(String str, List objs )throws Exception{return sqlSessionTemplate.insert(str, objs);}/** * 修改对象 * @param str * @param obj * @return * @throws Exception */public Object update(String str, Object obj) throws Exception {return sqlSessionTemplate.update(str, obj);}/** * 批量更新 * @param str * @param obj * @return * @throws Exception */public void batchUpdate(String str, List objs )throws Exception{SqlSessionFactory sqlSessionFactory = sqlSessionTemplate.getSqlSessionFactory();//批量执行器SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH,false);try{if(objs!=null){for(int i=0,size=objs.size();i<size;i++){sqlSession.update(str, objs.get(i));}sqlSession.flushStatements();sqlSession.commit();sqlSession.clearCache();}}finally{sqlSession.close();}}/** * 批量更新 * @param str * @param obj * @return * @throws Exception */public Object batchDelete(String str, List objs )throws Exception{return sqlSessionTemplate.delete(str, objs);}/** * 删除对象  * @param str * @param obj * @return * @throws Exception */public Object delete(String str, Object obj) throws Exception {return sqlSessionTemplate.delete(str, obj);} /** * 查找对象 * @param str * @param obj * @return * @throws Exception */public Object findForObject(String str, Object obj) throws Exception {return sqlSessionTemplate.selectOne(str, obj);}/** * 查找对象 * @param str * @param obj * @return * @throws Exception */public Object findForList(String str, Object obj) throws Exception {return sqlSessionTemplate.selectList(str, obj);}public Object findForMap(String str, Object obj, String key, String value) throws Exception {return sqlSessionTemplate.selectMap(str, obj, key);}}

DAO映射实现-->基本

用户Mapper.xml

<?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="UserMapper"><sql id="userColumns">USERNAME,NAME,PASSWORD,RIGHTS,STATUS,ROLE_ID</sql><resultMap type="User" id="userAndRoleResultMap"><id column="USER_ID" property="USER_ID"/><result column="USERNAME" property="USERNAME"/><result column="PASSWORD" property="PASSWORD"/><result column="NAME" property="NAME"/><result column="RIGHTS" property="RIGHTS"/><result column="LAST_LOGIN" property="LAST_LOGIN"/><result column="IP" property="IP"/><result column="STATUS" property="STATUS"/><result column="SKIN" property="SKIN"/><association property="role" column="ROLE_ID" javaType="Role"><id column="ROLE_ID" property="ROLE_ID"/><result column="ROLE_NAME" property="ROLE_NAME"/><result column="ROLE_RIGHTS" property="RIGHTS"/></association></resultMap><resultMap type="User" id="userResultMap"><id column="USER_ID" property="USER_ID"/><result column="USERNAME" property="USERNAME"/><result column="PASSWORD" property="PASSWORD"/><result column="NAME" property="NAME"/><result column="RIGHTS" property="RIGHTS"/><result column="LAST_LOGIN" property="LAST_LOGIN"/><result column="IP" property="IP"/><result column="STATUS" property="STATUS"/><result column="ROLE_ID" property="ROLE_ID"/><result column="SKIN" property="SKIN"/></resultMap><!-- 判断用户名和密码 --><select id="getUserInfo" parameterType="User" resultMap="userResultMap">select * from SYS_USER where 1=1<if test="USERNAME!=null and PASSWORD!=null">and USERNAME = #{USERNAME} and PASSWORD=#{PASSWORD}</if><if test="USER_ID!=null and USER_ID>0">and USER_ID = #{USER_ID}</if></select><select id="getUserAndRoleById" parameterType="String" resultMap="userAndRoleResultMap">select  u.USER_ID,u.USERNAME,u.NAME,u.RIGHTS as USER_RIGHTS,u.PASSWORD,u.SKIN,r.ROLE_ID,r.ROLE_NAME,r.RIGHTS as ROLE_RIGHTS from SYS_USER u left join SYS_ROLE r on u.ROLE_ID=r.ROLE_ID where u.STATUS=0 and u.USER_ID=#{USER_ID}</select><update id="updateLastLogin" parameterType="User">update SYS_USER set LAST_LOGIN=#{LAST_LOGIN} where USER_ID=#{USER_ID}</update></mapper>

菜单Mapper.xml

<?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="MenuMapper"><resultMap type="Menu" id="menuResultMap"><id column="MENU_ID" property="MENU_ID"/><result column="MENU_NAME" property="MENU_NAME"/><result column="MENU_URL" property="MENU_URL"/><result column="PARENT_ID" property="PARENT_ID"/><result column="MENU_ORDER" property="MENU_ORDER"/><result column="MENU_ICON" property="MENU_ICON"/><result column="MENU_TYPE" property="MENU_TYPE"/></resultMap><!-- ztree --><resultMap type="Menu" id="menuZtreeResultMap"><id column="MENU_ID" property="MENU_ID"/><result column="MENU_NAME" property="MENU_NAME"/><result column="MENU_URL" property="MENU_URL"/><result column="PARENT_ID" property="PARENT_ID"/><result column="MENU_ORDER" property="MENU_ORDER"/><result column="MENU_ICON" property="MENU_ICON"/><result column="MENU_TYPE" property="MENU_TYPE"/><result column="target" property="target"></result></resultMap><select id="findMaxId" parameterType="pd" resultType="pd">select MAX(MENU_ID) MID FROM SYS_MENU</select><select id="listAllParentMenu" resultMap="menuResultMap">select * from SYS_MENU where PARENT_ID = '0' order by MENU_ORDER </select><select id="listSubMenuByParentId" parameterType="String" resultMap="menuResultMap">select  * from SYS_MENUwhere PARENT_ID = #{parentId} order by MENU_ORDER </select><select id="getMenuById" parameterType="pd" resultType="pd">select  MENU_ID, MENU_NAME, MENU_URL, PARENT_ID, MENU_ORDER, MENU_TYPE from SYS_MENU  where MENU_ID=#{MENU_ID}</select><insert id="insertMenu" parameterType="Menu">insert into SYS_MENU (MENU_ID,MENU_NAME,MENU_URL,PARENT_ID,MENU_ORDER,MENU_TYPE) values (#{MENU_ID},#{MENU_NAME},#{MENU_URL},#{PARENT_ID},#{MENU_ORDER},#{MENU_TYPE})</insert><update id="updateMenu" parameterType="Menu">update SYS_MENU set MENU_NAME =#{MENU_NAME},MENU_URL  =#{MENU_URL} ,PARENT_ID =#{PARENT_ID},MENU_ORDER=#{MENU_ORDER},MENU_TYPE =#{MENU_TYPE}where MENU_ID=#{MENU_ID}</update><update id="editicon" parameterType="Menu">update SYS_MENU set MENU_ICON=#{MENU_ICON}where MENU_ID=#{MENU_ID}</update><update id="editType" parameterType="Menu">update SYS_MENU set MENU_TYPE=#{MENU_TYPE}where PARENT_ID=#{MENU_ID}</update><delete id="deleteMenuById" parameterType="String">delete from SYS_MENU where MENU_ID=#{MENU_ID} or PARENT_ID=#{MENU_ID}</delete></mapper>


角色Mapper.xml

<?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="RoleMapper"><resultMap type="Role" id="roleResultMap"><id column="ROLE_ID" property="ROLE_ID"/><result column="ROLE_NAME" property="ROLE_NAME"/><result column="RIGHTS" property="RIGHTS"/></resultMap><!-- 权限 --><update id="c1" parameterType="pd">update SYS_USER_QX set C1=#{value} where U_ID=#{kefu_id}</update><!-- 列出二级角色信息 --><select id="listAllERRoles" resultMap="roleResultMap">select ROLE_ID,ROLE_NAME,RIGHTS,PARENT_ID,ADD_QX,DEL_QX,EDIT_QX,CHA_QX,QX_IDfrom SYS_ROLE where PARENT_ID != '0' and  PARENT_ID != '7'</select><!-- 列出会员二级角色信息 --><select id="listAllappERRoles" resultMap="roleResultMap">select ROLE_ID,ROLE_NAME,RIGHTS,PARENT_ID,ADD_QX,DEL_QX,EDIT_QX,CHA_QX,QX_IDfrom SYS_ROLE where  PARENT_ID = '7'</select><!-- 列出此角色下的所有用户 --><select id="listAllUByRid"  parameterType="pd" resultType="pd" >select USER_IDfrom SYS_USERwhere ROLE_ID = #{ROLE_ID}</select><!-- 列出此角色下的所有会员 --><select id="listAllAppUByRid"  parameterType="pd" resultType="pd" >select USER_IDfrom SYS_APP_USERwhere ROLE_ID = #{ROLE_ID}</select><!-- 通过当前登录用的角色id获取管理权限数据 --><select id="findGLbyrid"  parameterType="pd" resultType="pd" >SELECT b.GL_ID,b.ROLE_ID,b.FX_QX,b.FW_QX,b.QX1,b.QX2,b.QX3,b.QX4from SYS_ROLE a, SYS_GL_QX b, SYS_USER cwhere a.QX_ID = b.GL_IDand a.ROLE_ID = c.ROLE_IDandc.ROLE_ID =  '${ROLE_ID}'limit 0,1</select><!-- 通过当前登录用的角色id获取用户权限数据 --><select id="findYHbyrid"  parameterType="pd" resultType="pd" >SELECT b.U_ID,b.C1,b.C2,b.C3,b.C4,b.Q1,b.Q2,b.Q3,b.Q4from SYS_ROLE a, SYS_USER_QX b, SYS_USER cwhere a.QX_ID = b.U_IDand a.ROLE_ID = c.ROLE_IDandc.ROLE_ID =  '${ROLE_ID}'limit 0,1</select><!-- 列出K权限表里的数据 --><select id="listAllkefu"  parameterType="pd" resultType="pd" >select GL_ID,ROLE_ID,FX_QX,FW_QX,QX1,QX2,QX3,QX4from SYS_GL_QX</select><!-- 列出G权限表里的数据 --><select id="listAllGysQX"  parameterType="pd" resultType="pd" >select U_ID,C1,C2,C3,C4,Q1,Q2,Q3,Q4from SYS_USER_QX</select><!-- 给全部子职位加菜单权限 --><update id="setAllRights" parameterType="pd">update SYS_ROLE set RIGHTS=#{rights} where PARENT_ID=#{roleId}</update><update id="add_qx" parameterType="pd">update SYS_ROLE set ADD_QX=#{value} where ROLE_ID=#{ROLE_ID}</update><update id="del_qx" parameterType="pd">update SYS_ROLE set DEL_QX=#{value} where ROLE_ID=#{ROLE_ID}</update><update id="edit_qx" parameterType="pd">update SYS_ROLE set EDIT_QX=#{value} where ROLE_ID=#{ROLE_ID}</update><update id="cha_qx" parameterType="pd">update SYS_ROLE set CHA_QX=#{value} where ROLE_ID=#{ROLE_ID}</update><update id="kfqx1" parameterType="pd">update SYS_GL_QX set QX1=#{value} where GL_ID=#{kefu_id}</update><update id="kfqx2" parameterType="pd">update SYS_GL_QX set QX2=#{value} where GL_ID=#{kefu_id}</update><update id="fxqx" parameterType="pd">update SYS_GL_QX set FX_QX=#{value} where GL_ID=#{kefu_id}</update><update id="fwqx" parameterType="pd">update SYS_GL_QX set FW_QX=#{value} where GL_ID=#{kefu_id}</update><select id="listAllRoles" resultMap="roleResultMap">select ROLE_ID,ROLE_NAME,RIGHTS,PARENT_ID,ADD_QX,DEL_QX,EDIT_QX,CHA_QX,QX_IDfrom SYS_ROLE where PARENT_ID = '0'ORDER BY ROLE_ID</select><select id="listAllRolesByPId" resultMap="roleResultMap">select ROLE_ID,ROLE_NAME,RIGHTS,PARENT_ID,ADD_QX,DEL_QX,EDIT_QX,CHA_QX,QX_IDfrom SYS_ROLE  where PARENT_ID = #{ROLE_ID}ORDER BY ROLE_ID</select><select id="getRoleById" parameterType="String" resultMap="roleResultMap">select * from SYS_ROLE where ROLE_ID=#{roleId}</select><update id="updateRoleRights" parameterType="Role">update SYS_ROLE set RIGHTS=#{RIGHTS} where ROLE_ID=#{ROLE_ID}</update><delete id="deleteRoleById" parameterType="String">delete from SYS_ROLE where ROLE_ID=#{ROLE_ID}</delete><!-- 删除K权限表里对应的数据 --><delete id="deleteKeFuById" parameterType="String">delete from SYS_GL_QX where GL_ID = #{ROLE_ID}</delete><!-- 删除G权限表里对应的数据 --><delete id="deleteGById" parameterType="String">delete from SYS_USER_QX where U_ID = #{ROLE_ID}</delete><!-- 保存K权限 --><insert id="saveKeFu" parameterType="pd">insert into SYS_GL_QX (GL_ID,ROLE_ID,FX_QX,FW_QX,QX1,QX2,QX3,QX4) values (#{GL_ID},#{ROLE_ID},#{FX_QX},#{FW_QX},#{QX1},#{QX2},#{QX3},#{QX4})</insert><!-- 保存G权限 --><insert id="saveGYSQX" parameterType="pd">insert into SYS_USER_QX (U_ID,C1,C2,C3,C4,Q1,Q2,Q3,Q4) values (#{U_ID},#{C1},#{C2},#{C3},#{C4},#{Q1},#{Q2},#{Q3},#{Q4})</insert><!-- 添加 --><insert id="insert" parameterType="pd">insert into SYS_ROLE (ROLE_ID,ROLE_NAME,RIGHTS,PARENT_ID,ADD_QX,DEL_QX,EDIT_QX,CHA_QX,QX_ID) values (#{ROLE_ID},#{ROLE_NAME},#{RIGHTS},#{PARENT_ID},#{ADD_QX},#{DEL_QX},#{EDIT_QX},#{CHA_QX},#{QX_ID})</insert><!-- 通过id查找 --><select id="findObjectById" parameterType="pd" resultType="pd">select  ROLE_ID,ROLE_NAME,RIGHTS,PARENT_ID,ADD_QX,DEL_QX,EDIT_QX,CHA_QXfrom SYS_ROLEwhere ROLE_ID = #{ROLE_ID}</select><!-- 编辑角色 --><update id="edit" parameterType="pd">update SYS_ROLE set ROLE_NAME = #{ROLE_NAME}where ROLE_ID = #{ROLE_ID}</update></mapper>



1.3 M_service

业务接口

不用了


业务实现

业务实现--用户

package com.fh.service.system.user;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Service;import com.fh.dao.DaoSupport;import com.fh.entity.Page;import com.fh.entity.system.User;import com.fh.util.PageData;@Service("userService")public class UserService {@Resource(name = "daoSupport")private DaoSupport dao;//======================================================================================/** 通过id获取数据*/public PageData findByUiId(PageData pd)throws Exception{return (PageData)dao.findForObject("UserXMapper.findByUiId", pd);}/** 通过loginname获取数据*/public PageData findByUId(PageData pd)throws Exception{return (PageData)dao.findForObject("UserXMapper.findByUId", pd);}/** 通过邮箱获取数据*/public PageData findByUE(PageData pd)throws Exception{return (PageData)dao.findForObject("UserXMapper.findByUE", pd);}/** 通过编号获取数据*/public PageData findByUN(PageData pd)throws Exception{return (PageData)dao.findForObject("UserXMapper.findByUN", pd);}/** 保存用户*/public void saveU(PageData pd)throws Exception{dao.save("UserXMapper.saveU", pd);}/** 修改用户*/public void editU(PageData pd)throws Exception{dao.update("UserXMapper.editU", pd);}/** 换皮肤*/public void setSKIN(PageData pd)throws Exception{dao.update("UserXMapper.setSKIN", pd);}/** 删除用户*/public void deleteU(PageData pd)throws Exception{dao.delete("UserXMapper.deleteU", pd);}/** 批量删除用户*/public void deleteAllU(String[] USER_IDS)throws Exception{dao.delete("UserXMapper.deleteAllU", USER_IDS);}/**用户列表(用户组)*/public List<PageData> listPdPageUser(Page page)throws Exception{return (List<PageData>) dao.findForList("UserXMapper.userlistPage", page);}/**用户列表(全部)*/public List<PageData> listAllUser(PageData pd)throws Exception{return (List<PageData>) dao.findForList("UserXMapper.listAllUser", pd);}/**用户列表(供应商用户)*/public List<PageData> listGPdPageUser(Page page)throws Exception{return (List<PageData>) dao.findForList("UserXMapper.userGlistPage", page);}/** 保存用户IP*/public void saveIP(PageData pd)throws Exception{dao.update("UserXMapper.saveIP", pd);}/** 登录判断*/public PageData getUserByNameAndPwd(PageData pd)throws Exception{return (PageData)dao.findForObject("UserXMapper.getUserInfo", pd);}/** 跟新登录时间*/public void updateLastLogin(PageData pd)throws Exception{dao.update("UserXMapper.updateLastLogin", pd);}/**通过id获取数据*/public User getUserAndRoleById(String USER_ID) throws Exception {return (User) dao.findForObject("UserMapper.getUserAndRoleById", USER_ID);}}


业务实现--菜单

package com.fh.service.system.menu;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Service;import com.fh.dao.DaoSupport;import com.fh.entity.system.Menu;import com.fh.util.PageData;@Service("menuService")public class MenuService{@Resource(name = "daoSupport")private DaoSupport dao;public void deleteMenuById(String MENU_ID) throws Exception {dao.save("MenuMapper.deleteMenuById", MENU_ID);}public PageData getMenuById(PageData pd) throws Exception {return (PageData) dao.findForObject("MenuMapper.getMenuById", pd);}//取最大idpublic PageData findMaxId(PageData pd) throws Exception {return (PageData) dao.findForObject("MenuMapper.findMaxId", pd);}public List<Menu> listAllParentMenu() throws Exception {return (List<Menu>) dao.findForList("MenuMapper.listAllParentMenu", null);}public void saveMenu(Menu menu) throws Exception {if(menu.getMENU_ID()!=null && menu.getMENU_ID() != ""){//dao.update("MenuMapper.updateMenu", menu);dao.save("MenuMapper.insertMenu", menu);}else{dao.save("MenuMapper.insertMenu", menu);}}public List<Menu> listSubMenuByParentId(String parentId) throws Exception {return (List<Menu>) dao.findForList("MenuMapper.listSubMenuByParentId", parentId);}public List<Menu> listAllMenu() throws Exception {List<Menu> rl = this.listAllParentMenu();for(Menu menu : rl){List<Menu> subList = this.listSubMenuByParentId(menu.getMENU_ID());menu.setSubMenu(subList);}return rl;}public List<Menu> listAllSubMenu() throws Exception{return (List<Menu>) dao.findForList("MenuMapper.listAllSubMenu", null);}/** * 编辑 */public PageData edit(PageData pd) throws Exception {return (PageData)dao.findForObject("MenuMapper.updateMenu", pd);}/** * 保存菜单图标 (顶部菜单) */public PageData editicon(PageData pd) throws Exception {return (PageData)dao.findForObject("MenuMapper.editicon", pd);}/** * 更新子菜单类型菜单 */public PageData editType(PageData pd) throws Exception {return (PageData)dao.findForObject("MenuMapper.editType", pd);}}


业务实现--角色

package com.fh.service.system.role;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Service;import com.fh.dao.DaoSupport;import com.fh.entity.system.Role;import com.fh.util.PageData;@Service("roleService")public class RoleService{@Resource(name = "daoSupport")private DaoSupport dao;public List<Role> listAllERRoles() throws Exception {return (List<Role>) dao.findForList("RoleMapper.listAllERRoles", null);}public List<Role> listAllappERRoles() throws Exception {return (List<Role>) dao.findForList("RoleMapper.listAllappERRoles", null);}public List<Role> listAllRoles() throws Exception {return (List<Role>) dao.findForList("RoleMapper.listAllRoles", null);}//通过当前登录用的角色id获取管理权限数据public PageData findGLbyrid(PageData pd) throws Exception {return (PageData) dao.findForObject("RoleMapper.findGLbyrid", pd);}//通过当前登录用的角色id获取用户权限数据public PageData findYHbyrid(PageData pd) throws Exception {return (PageData) dao.findForObject("RoleMapper.findYHbyrid", pd);}//列出此角色下的所有用户public List<PageData> listAllUByRid(PageData pd) throws Exception {return (List<PageData>) dao.findForList("RoleMapper.listAllUByRid", pd);}//列出此角色下的所有会员public List<PageData> listAllAppUByRid(PageData pd) throws Exception {return (List<PageData>) dao.findForList("RoleMapper.listAllAppUByRid", pd);}/** * 列出此部门的所有下级 */public List<Role> listAllRolesByPId(PageData pd) throws Exception {return (List<Role>) dao.findForList("RoleMapper.listAllRolesByPId", pd);}//列出K权限表里的数据 public List<PageData> listAllkefu(PageData pd) throws Exception {return (List<PageData>) dao.findForList("RoleMapper.listAllkefu", pd);}//列出G权限表里的数据 public List<PageData> listAllGysQX(PageData pd) throws Exception {return (List<PageData>) dao.findForList("RoleMapper.listAllGysQX", pd);}//删除K权限表里对应的数据public void deleteKeFuById(String ROLE_ID) throws Exception {dao.delete("RoleMapper.deleteKeFuById", ROLE_ID);}//删除G权限表里对应的数据public void deleteGById(String ROLE_ID) throws Exception {dao.delete("RoleMapper.deleteGById", ROLE_ID);}public void deleteRoleById(String ROLE_ID) throws Exception {dao.delete("RoleMapper.deleteRoleById", ROLE_ID);}public Role getRoleById(String roleId) throws Exception {return (Role) dao.findForObject("RoleMapper.getRoleById", roleId);}public void updateRoleRights(Role role) throws Exception {dao.update("RoleMapper.updateRoleRights", role);}/** * 权限(增删改查) */public void updateQx(String msg,PageData pd) throws Exception {dao.update("RoleMapper."+msg, pd);}/** * 客服权限 */public void updateKFQx(String msg,PageData pd) throws Exception {dao.update("RoleMapper."+msg, pd);}/** * Gc权限 */public void gysqxc(String msg,PageData pd) throws Exception {dao.update("RoleMapper."+msg, pd);}/** * 给全部子职位加菜单权限 */public void setAllRights(PageData pd) throws Exception {dao.update("RoleMapper.setAllRights", pd);}/** * 添加 */public void add(PageData pd) throws Exception {dao.findForList("RoleMapper.insert", pd);}/** * 保存客服权限 */public void saveKeFu(PageData pd) throws Exception {dao.findForList("RoleMapper.saveKeFu", pd);}/** * 保存G权限 */public void saveGYSQX(PageData pd) throws Exception {dao.findForList("RoleMapper.saveGYSQX", pd);}/** * 通过id查找 */public PageData findObjectById(PageData pd) throws Exception {return (PageData)dao.findForObject("RoleMapper.findObjectById", pd);}/** * 编辑角色 */public PageData edit(PageData pd) throws Exception {return (PageData)dao.findForObject("RoleMapper.edit", pd);}}


2.C

登录功能

package com.fh.controller.system.login;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import org.apache.shiro.SecurityUtils;import org.apache.shiro.authc.AuthenticationException;import org.apache.shiro.authc.UsernamePasswordToken;import org.apache.shiro.crypto.hash.SimpleHash;import org.apache.shiro.session.Session;import org.apache.shiro.subject.Subject;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.servlet.ModelAndView;import com.fh.controller.base.BaseController;import com.fh.entity.system.Menu;import com.fh.entity.system.Role;import com.fh.entity.system.User;import com.fh.service.system.menu.MenuService;import com.fh.service.system.role.RoleService;import com.fh.service.system.user.UserService;import com.fh.util.AppUtil;import com.fh.util.Const;import com.fh.util.DateUtil;import com.fh.util.PageData;import com.fh.util.RightsHelper;import com.fh.util.Tools;/* * 总入口 */@Controllerpublic class LoginController extends BaseController {@Resource(name="userService")//用户private UserService userService;@Resource(name="menuService")//菜单private MenuService menuService;@Resource(name="roleService")//角色private RoleService roleService;/** * 获取登录用户的IP * @throws Exception  */public void getRemortIP(String USERNAME) throws Exception {  PageData pd = new PageData();HttpServletRequest request = this.getRequest();String ip = "";if (request.getHeader("x-forwarded-for") == null) {  ip = request.getRemoteAddr();      }else{    ip = request.getHeader("x-forwarded-for");      }pd.put("USERNAME", USERNAME);pd.put("IP", ip);userService.saveIP(pd);}  /** * 访问登录页 * @return */@RequestMapping(value="/login_toLogin")public ModelAndView toLogin()throws Exception{ModelAndView mv = this.getModelAndView();PageData pd = new PageData();pd = this.getPageData();pd.put("SYSNAME", Tools.readTxtFile(Const.SYSNAME)); //读取系统名称mv.setViewName("system/admin/login");mv.addObject("pd",pd);return mv;}/** * 请求登录,验证用户 */@RequestMapping(value="/login_login" ,produces="application/json;charset=UTF-8")@ResponseBodypublic Object login()throws Exception{Map<String,String> map = new HashMap<String,String>();PageData pd = new PageData();pd = this.getPageData();String errInfo = "";String KEYDATA[] = pd.getString("KEYDATA").replaceAll("qq313596790fh", "").replaceAll("QQ978336446fh", "").split(",fh,");if(null != KEYDATA && KEYDATA.length == 3){//shiro管理的sessionSubject currentUser = SecurityUtils.getSubject();  Session session = currentUser.getSession();String sessionCode = (String)session.getAttribute(Const.SESSION_SECURITY_CODE);//获取session中的验证码String code = KEYDATA[2];if(null == code || "".equals(code)){errInfo = "nullcode"; //验证码为空}else{String USERNAME = KEYDATA[0];String PASSWORD  = KEYDATA[1];pd.put("USERNAME", USERNAME);if(Tools.notEmpty(sessionCode) && sessionCode.equalsIgnoreCase(code)){String passwd = new SimpleHash("SHA-1", USERNAME, PASSWORD).toString();//密码加密pd.put("PASSWORD", passwd);pd = userService.getUserByNameAndPwd(pd);if(pd != null){pd.put("LAST_LOGIN",DateUtil.getTime().toString());userService.updateLastLogin(pd);User user = new User();user.setUSER_ID(pd.getString("USER_ID"));user.setUSERNAME(pd.getString("USERNAME"));user.setPASSWORD(pd.getString("PASSWORD"));user.setNAME(pd.getString("NAME"));user.setRIGHTS(pd.getString("RIGHTS"));user.setROLE_ID(pd.getString("ROLE_ID"));user.setLAST_LOGIN(pd.getString("LAST_LOGIN"));user.setIP(pd.getString("IP"));user.setSTATUS(pd.getString("STATUS"));session.setAttribute(Const.SESSION_USER, user);session.removeAttribute(Const.SESSION_SECURITY_CODE);//shiro加入身份验证Subject subject = SecurityUtils.getSubject();     UsernamePasswordToken token = new UsernamePasswordToken(USERNAME, PASSWORD);     try {         subject.login(token);     } catch (AuthenticationException e) {     errInfo = "身份验证失败!";    }    }else{errInfo = "usererror"; //用户名或密码有误}}else{errInfo = "codeerror"; //验证码输入有误}if(Tools.isEmpty(errInfo)){errInfo = "success";//验证成功}}}else{errInfo = "error";//缺少参数}map.put("result", errInfo);return AppUtil.returnObject(new PageData(), map);}/** * 访问系统首页 */@RequestMapping(value="/main/{changeMenu}")public ModelAndView login_index(@PathVariable("changeMenu") String changeMenu){ModelAndView mv = this.getModelAndView();PageData pd = new PageData();pd = this.getPageData();try{//shiro管理的sessionSubject currentUser = SecurityUtils.getSubject();  Session session = currentUser.getSession();User user = (User)session.getAttribute(Const.SESSION_USER);if (user != null) {User userr = (User)session.getAttribute(Const.SESSION_USERROL);if(null == userr){user = userService.getUserAndRoleById(user.getUSER_ID());session.setAttribute(Const.SESSION_USERROL, user);}else{user = userr;}Role role = user.getRole();String roleRights = role!=null ? role.getRIGHTS() : "";//避免每次拦截用户操作时查询数据库,以下将用户所属角色权限、用户权限限都存入sessionsession.setAttribute(Const.SESSION_ROLE_RIGHTS, roleRights); //将角色权限存入sessionsession.setAttribute(Const.SESSION_USERNAME, user.getUSERNAME());//放入用户名List<Menu> allmenuList = new ArrayList<Menu>();if(null == session.getAttribute(Const.SESSION_allmenuList)){allmenuList = menuService.listAllMenu();if(Tools.notEmpty(roleRights)){for(Menu menu : allmenuList){menu.setHasMenu(RightsHelper.testRights(roleRights, menu.getMENU_ID()));if(menu.isHasMenu()){List<Menu> subMenuList = menu.getSubMenu();for(Menu sub : subMenuList){sub.setHasMenu(RightsHelper.testRights(roleRights, sub.getMENU_ID()));}}}}session.setAttribute(Const.SESSION_allmenuList, allmenuList);//菜单权限放入session中}else{allmenuList = (List<Menu>)session.getAttribute(Const.SESSION_allmenuList);}//切换菜单=====List<Menu> menuList = new ArrayList<Menu>();//if(null == session.getAttribute(Const.SESSION_menuList) || ("yes".equals(pd.getString("changeMenu")))){if(null == session.getAttribute(Const.SESSION_menuList) || ("yes".equals(changeMenu))){List<Menu> menuList1 = new ArrayList<Menu>();List<Menu> menuList2 = new ArrayList<Menu>();//拆分菜单for(int i=0;i<allmenuList.size();i++){Menu menu = allmenuList.get(i);if("1".equals(menu.getMENU_TYPE())){menuList1.add(menu);}else{menuList2.add(menu);}}session.removeAttribute(Const.SESSION_menuList);if("2".equals(session.getAttribute("changeMenu"))){session.setAttribute(Const.SESSION_menuList, menuList1);session.removeAttribute("changeMenu");session.setAttribute("changeMenu", "1");menuList = menuList1;}else{session.setAttribute(Const.SESSION_menuList, menuList2);session.removeAttribute("changeMenu");session.setAttribute("changeMenu", "2");menuList = menuList2;}}else{menuList = (List<Menu>)session.getAttribute(Const.SESSION_menuList);}//切换菜单=====if(null == session.getAttribute(Const.SESSION_QX)){session.setAttribute(Const.SESSION_QX, this.getUQX(session));//按钮权限放到session中}//FusionCharts 报表 String strXML = "<graph caption='前12个月订单销量柱状图' xAxisName='月份' yAxisName='值' decimalPrecision='0' formatNumberScale='0'><set name='2013-05' value='4' color='AFD8F8'/><set name='2013-04' value='0' color='AFD8F8'/><set name='2013-03' value='0' color='AFD8F8'/><set name='2013-02' value='0' color='AFD8F8'/><set name='2013-01' value='0' color='AFD8F8'/><set name='2012-01' value='0' color='AFD8F8'/><set name='2012-11' value='0' color='AFD8F8'/><set name='2012-10' value='0' color='AFD8F8'/><set name='2012-09' value='0' color='AFD8F8'/><set name='2012-08' value='0' color='AFD8F8'/><set name='2012-07' value='0' color='AFD8F8'/><set name='2012-06' value='0' color='AFD8F8'/></graph>" ; mv.addObject("strXML", strXML); //FusionCharts 报表 mv.setViewName("system/admin/index");mv.addObject("user", user);mv.addObject("menuList", menuList);}else {mv.setViewName("system/admin/login");//session失效后跳转登录页面}} catch(Exception e){mv.setViewName("system/admin/login");logger.error(e.getMessage(), e);}pd.put("SYSNAME", Tools.readTxtFile(Const.SYSNAME)); //读取系统名称mv.addObject("pd",pd);return mv;}/** * 进入tab标签 * @return */@RequestMapping(value="/tab")public String tab(){return "system/admin/tab";}/** * 进入首页后的默认页面 * @return */@RequestMapping(value="/login_default")public String defaultPage(){return "system/admin/default";}/** * 用户注销 * @param session * @return */@RequestMapping(value="/logout")public ModelAndView logout(){ModelAndView mv = this.getModelAndView();PageData pd = new PageData();//shiro管理的sessionSubject currentUser = SecurityUtils.getSubject();  Session session = currentUser.getSession();session.removeAttribute(Const.SESSION_USER);session.removeAttribute(Const.SESSION_ROLE_RIGHTS);session.removeAttribute(Const.SESSION_allmenuList);session.removeAttribute(Const.SESSION_menuList);session.removeAttribute(Const.SESSION_QX);session.removeAttribute(Const.SESSION_userpds);session.removeAttribute(Const.SESSION_USERNAME);session.removeAttribute(Const.SESSION_USERROL);session.removeAttribute("changeMenu");//shiro销毁登录Subject subject = SecurityUtils.getSubject(); subject.logout();pd = this.getPageData();String  msg = pd.getString("msg");pd.put("msg", msg);pd.put("SYSNAME", Tools.readTxtFile(Const.SYSNAME)); //读取系统名称mv.setViewName("system/admin/login");mv.addObject("pd",pd);return mv;}/** * 获取用户权限 */public Map<String, String> getUQX(Session session){PageData pd = new PageData();Map<String, String> map = new HashMap<String, String>();try {String USERNAME = session.getAttribute(Const.SESSION_USERNAME).toString();pd.put(Const.SESSION_USERNAME, USERNAME);String ROLE_ID = userService.findByUId(pd).get("ROLE_ID").toString();pd.put("ROLE_ID", ROLE_ID);PageData pd2 = new PageData();pd2.put(Const.SESSION_USERNAME, USERNAME);pd2.put("ROLE_ID", ROLE_ID);pd = roleService.findObjectById(pd);pd2 = roleService.findGLbyrid(pd2);if(null != pd2){map.put("FX_QX", pd2.get("FX_QX").toString());map.put("FW_QX", pd2.get("FW_QX").toString());map.put("QX1", pd2.get("QX1").toString());map.put("QX2", pd2.get("QX2").toString());map.put("QX3", pd2.get("QX3").toString());map.put("QX4", pd2.get("QX4").toString());pd2.put("ROLE_ID", ROLE_ID);pd2 = roleService.findYHbyrid(pd2);map.put("C1", pd2.get("C1").toString());map.put("C2", pd2.get("C2").toString());map.put("C3", pd2.get("C3").toString());map.put("C4", pd2.get("C4").toString());map.put("Q1", pd2.get("Q1").toString());map.put("Q2", pd2.get("Q2").toString());map.put("Q3", pd2.get("Q3").toString());map.put("Q4", pd2.get("Q4").toString());}map.put("adds", pd.getString("ADD_QX"));map.put("dels", pd.getString("DEL_QX"));map.put("edits", pd.getString("EDIT_QX"));map.put("chas", pd.getString("CHA_QX"));//System.out.println(map);this.getRemortIP(USERNAME);} catch (Exception e) {logger.error(e.toString(), e);}return map;}}



3.V

4

5

6

0 0
原创粉丝点击