项目整理(WEB层 DAO层交互方式)

1.分页交互


前端请求:

前端用分页表格用的是 qui-QUI grid

		var grid = null;
		function initComplete() {

			grid = $("#dataBasic")
					.quiGrid(
							{
								columns : [
										{
											display : '所属组织',
											name : 'orgData.name',
											align : 'left',
											width : "10%",
											type : "orgFields"
										},
										{
											display : '设备负责人',
											name : 'masterName',
											align : 'left',
											width : "10%",
											type : "orgFields"
										},
										{
											display : '终端IP',
											name : 'ip',
											align : 'left',
											width : "10%"
										},
										{
											display : 'MAC地址',
											name : 'mac',
											align : 'left',
											width : "10%"
										},
										{
											display : '硬盘序列号',
											name : 'hardDisk',
											align : 'left',
											width : "10%"
										},
										{
											display : 'CPU序列号',
											name : 'cpu',
											align : 'left',
											width : "10%"
										},
										{
											display : '主机名',
											name : 'hostName',
											align : 'left',
											width : "10%"
										},
										{
											display : '审核状态',
											isAllowHide : false,
											align : 'center',
											width : "10%",
											render : function(rowdata,
													rowindex, value, column) {
												var value = rowdata.stasus;
												if (value == '0')
													return '审核中';
												else if (value == '1')
													return '通过';
												else if (value == '2')
													return '未通过';
											}
										},
										{
											display : '状态',
											isAllowHide : false,
											align : 'center',
											width : "10%",
											render : function(rowdata,
													rowindex, value, column) {
												var value = rowdata.type;
												if (value == '1')
													return '<font color="green">在线</fon>';
												else if (value == '2')
													return '离线';
												else if (value == '3')
													return '<font color="red">告警</fon>';
											}
										},
										{
											display : '操作',
											isAllowHide : false,
											align : 'center',
											width : "10%",
											render : function(rowdata,
													rowindex, value, column) {
												var value = rowdata.type;
												var id = "'" + rowdata.id + "'";
												var str = '<div class="padding_top4 padding_left5"><span class="img_edit hand" title="修改" onclick="onEdit('
														+ id + ')"></span>';
												if (rowdata.stasus == 0)
													str += '<span class="img_delete hand" title="删除" onclick="onDelete('
															+ id + ')"></span>';
												str += '</div>';
												return str;
											}
										} ],
								url : '${basePath}terwarning/terminal/showlist.json',
								sortOrder : 'desc',
								rownumbers : true,
								checkbox : false,
								height : '100%',
								width : "100%",
								pageSize : 10,
								pageSizeOptions : [ 10, 15, 20, 30, 40, 50 ],
								percentWidthMode : true,
								toolbar : {
									position : "left",
									items : [ {
										text : '新增',
										click : addUnit,
										iconClass : 'icon_add'
									}, {
										text : 'EXCEL新增',
										click : excelAdd,
										iconClass : 'icon_add'
									}, {
										text : 'EXCEL模板下载',
										click : excelDownload,
										iconClass : 'icon_btn_down'
									} ]
								}

							});
复制代码

WEB层:

	/**
	 * 数据列表
	 * 
	 * @param pagerModel
	 * @param conData
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("showlist.json")
	public ResponseEntity<String> showlist(TerminalData conData, HttpServletRequest request, PagerModel pagerModel)
			throws Exception {
		LoginUserData loginUserData = CommonUtil.getCurrentUserData(request);
		conData.setOrgData(loginUserData.getUserData().getOrgData());
		pagerModel.setPageType(true);
		pagerModel = terminalService.queryList(conData, pagerModel);
		return PrintUtil.printResponseEntity(pagerModel);
	}
复制代码

Dao层:

	public PagerModel queryList(TerminalData conData, PagerModel pagerModel)
			throws Exception {
		List<Object> params = new ArrayList<Object>();
		String hql = "from TerminalData u where 1=1 and u.delflag='F' ";
		if (conData != null) {
			if (conData.getOrgData()!=null&&conData.getOrgData().getKeyId() != null && !conData.getOrgData().getKeyId().equals("")) {
				hql += " and u.orgData.keyId = ? ";
				params.add(conData.getOrgData().getKeyId());
			}
			if (conData.getMasterName() != null && !conData.getMasterName().equals("")) {
				hql += " and u.masterName = ? ";
				params.add(conData.getMasterName());
			}
			if (conData.getIp() != null && !conData.getIp().equals("")) {
				hql += " and u.ip = ? ";
				params.add(conData.getIp());
			}
			if (conData.getMac() != null && !conData.getMac().equals("")) {
				hql += " and u.mac = ? ";
				params.add(conData.getMac());
			}
			if (conData.getType() != null && !conData.getType().equals("")) {
				hql += " and u.type = ? ";
				params.add(conData.getType());
			}
			if (conData.getHostName() != null
					&& !conData.getHostName().equals("")) {
				hql += " and u.hostName = ? ";
				params.add(conData.getHostName());
			}
			if (conData.getHardDisk() != null
					&& !conData.getHardDisk().equals("")) {
				hql += " and u.hardDisk = ? ";
				params.add(conData.getHardDisk());
			}
			if (conData.getCpu() != null && !conData.getCpu().equals("")) {
				hql += " and u.cpu = ? ";
				params.add(conData.getCpu());
			}
			if (conData.getStasus() != null && conData.getStasus()>=0) {
				hql += " and u.stasus = ? ";
				params.add(conData.getStasus());
			}
		}
		if (pagerModel.getSort() != null && !"".equals(pagerModel.getSort())) {
			hql += " order by u." + pagerModel.getSort() + " "
					+ pagerModel.getDirection();
		}
		return baseDao.searchPaginated(hql, params, pagerModel);
	}
复制代码

2.树组件交互:

前端:

<!--数据表格start-->
<script src="${basePath}libs/js/table/quiGrid.js" type="text/javascript"></script>
<!--数据表格end-->
<script type="text/javascript">
	var grid;
	function initComplete(){
		 grid = $("#orggrid").quiGrid({
	        columns: [
	        { display: '部门名', name: 'name', id:'deptId', width: "30%", align: 'left' },
	        { display: '代码', name: 'infoMap.code',width: "20%", type: 'int', align: 'left' },
	        { display: '备注', name: 'infoMap.memo', width: "35%", align: 'left' },
	        { display: '操作', isAllowHide: false, align: 'left',width: "15%",
						 render: function (rowdata, rowindex, value, column){
						 var str = '';
						 if(rowdata.infoMap.keyId == 0) {
						 <c:choose>
							<c:when test="${canManager eq true}">
							str = '<div class="padding_top4 padding_left5">'
	                 	    		+ '<span class="img_add hand" title="添加子部门" onclick="onAdd(' + rowdata.infoMap.keyId + ')"></span>' 
	                             + '</div>';
	                        </c:when>
						 	<c:otherwise>
								str = '';
					 		</c:otherwise>
				 		</c:choose>
						 }else {
						 <c:choose>
							<c:when test="${canManager eq true}">
						 str = '<div class="padding_top4 padding_left5">'
	                 	    		+ '<span class="img_add hand" title="添加子部门" onclick="onAdd(' + rowdata.infoMap.keyId + ')"></span>' 
	                                 + '<span class="img_edit hand" title="修改" onclick="onEdit(' + rowdata.infoMap.keyId + ')"></span>' 
	                                 + '<span class="img_delete hand" title="删除" onclick="onDelete(' + rowdata.infoMap.keyId+ ')"></span>'
	                             + '</div>';
	                             </c:when>
						 	<c:otherwise>
								str = '';
					 		</c:otherwise>
				 		</c:choose>
						 }
	                 	    return str;
		                 }
		            }
	        ], 
	        height: '100%', 
	        width:"100%",
	        usePager: false,
	        url:'${basePath}/right/org/orgList.json',
	        toolbar:{
				        	 items:[
				        		  {text: '新增', click: function(){addRootNode()},    iconClass: 'icon_add'},
				        		  { line : true }
				        		]
				         	},
	        tree: { columnId: 'deptId' }
	    });
	}
	
	//新增
	function addRootNode(){
		quiDialog.open({
			URL:"${basePath}/right/org/addSubOrg.save?keyId=0",
			Title:"修改",Width:500,Height:220});
	}
	
	//添加子部门
	function onAdd(keyId){
		quiDialog.open({
			URL:"${basePath}/right/org/addSubOrg.save?keyId=" + keyId,
			Title:"修改",Width:500,Height:220});
	}
	
	//修改	
	function onEdit(keyId){
		quiDialog.open({
			URL:"${basePath}/right/org/updateOrg.save?keyId=" + keyId,
			Title:"修改",Width:500,Height:220});
	}
	
	//删除	
	function onDelete(keyId){
		quiDialog.confirm("确定要删除该记录吗?",function(){
	  	//删除记录
	  	$.post("${basePath}right/org/deleteOrg.delete",
	  			{"keyId":keyId},
	  			function(result){
	  				handleResult(result);
				},"json");
				
		});
	}
	
	//删除后的提示
function handleResult(result){
	if(result.operFlag=='S'){
		quiDialog.alert(result.message,function(){
			grid.loadData();
        });	
	}else{
		quiDialog.alert(result.message);
	}
	
}
	
	//刷新表格数据并重置排序和页数
function refresh(isUpdate){
	if(!isUpdate){
		//重置排序
    	grid.options.sortName='keyId';
    	grid.options.sortOrder="asc";
    	//页号重置为1
		grid.setNewPage(1);
	}
	
	grid.loadData();
}
</script>
复制代码

web层:

	@RequestMapping("orgList.json")
	@ResponseBody
	public Map<String,Object> queryOrgListJson(ConditionData conData) throws Exception{
		Map<String,Object> results = new Hashtable<String, Object>();
		//获取所有组织架构信息
		List<OrgData> orgDataList = orgService.queryOrgList(conData);
		results.put("rows", orgService.queryOrgTreeList(orgDataList));
		return results;
	}
复制代码

Dao层:

	/**
	 * 说明:查询组织架构信息列表
	 * 操作表:t_org
	 * @param conData
	 * @throws Exception
	 */
	public List<OrgData> queryOrgList(ConditionData conData) throws Exception{
		List<Object> params = new ArrayList<Object>();
		String hql = "from OrgData o where 1=1  ";
		if(conData!=null && conData.getEnableFlag()!=null && "F".equals(conData.getEnableFlag())){
		} else {
			hql += " and o.enableFlag='T' ";
		}
		if(conData!=null && conData.getKeyId()!=null &&conData.getKeyId()>0){
			hql +=" and o.keyId=? ";
			params.add(conData.getKeyId());
		}
		if(conData!=null && conData.getName()!=null && !"".equals(conData.getName())){
			hql += " and o.name like ? ";
			params.add("%"+conData.getName()+"%");
		}
		if(conData!=null && conData.getCode()!=null && !"".equals(conData.getCode())){
			hql += " and o.code=? ";
			params.add(conData.getCode());
		}
		return (ArrayList<OrgData>)baseDao.getJpaTemplate().find(hql,params.toArray());
	}

复制代码

service 层树数据生成:

	/**
	 * 根据组织架构集合生成组织架构数
	 * @return
	 * @throws Exception
	 */
	public List<TreeNode> queryOrgTreeList(List<OrgData> orgDataList) throws Exception{
		
		List<TreeNode> treeNodeList = new ArrayList<TreeNode>();
		
		for(OrgData orgData:orgDataList){
			TreeNode treeNode = new TreeNode();
			if(orgData.getPid()!=null){
				treeNode.setParentId(String.valueOf(orgData.getPid()));
				treeNode.setId(String.valueOf(orgData.getKeyId()));
				treeNode.setName(orgData.getName());
				treeNode.setInfoMap(BeanToMapUtil.convertBean(orgData));
				treeNodeList.add(treeNode);
			}
			
		}
		return TreeUtil.generateTree(treeNodeList);
		
	}
复制代码


转载于:https://juejin.im/post/5c427d1ff265da616624bd4a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值