2.7-6.25(2022年)java部分经验

经过疫情 在家办公作息全乱,基本上就是在摸鱼
一.先回顾下做的数据仓库
1.1:具体实现效果
配置权限,先随机生成一个权限ID,有keyID与keyValue,备注,启用状态等,上方有一个新增权限按钮,点击 先随机生成keyid与keyValue 填写备注,在选择是否启用,点击生成就生成了一个权限实例
在这里插入图片描述
这是修改 需要回显数据
在这里插入图片描述
这是查看已有的权限(分别有那些地市与表有这些权限)
在这里插入图片描述
在这里插入图片描述
这里就是这个功能的核心部分,根据keyid查询有那些地市权限与表权限,
需要在表格回显出来(用勾选的形式),当我们不做任何修改时,点击确定不能够去新增这个keyid下面的权限。当我们发生修改一个或多个时,也不能够发生错误。

前面几个功能没什么好说的,最关键的最后这个,
先说下前端
在这里插入图片描述
先获取到勾线的数据,使用bootstrap中getSelections便可获取到
对勾选的数据进行处理,传入后台进行处理
在这里插入图片描述
这里需要注意的是,ajax传入后台的格式必须为json类型的数据,因为我们需要传到后台的是一个数组,所以我们在前台将数组转换成json类型的数组
转成json类型的数组使用:JSON.stringify(selList)
注意看 这个 data: {data: JSON.stringify(selList), proNameData: this.proNameData},
因为是个对象的形式传到后台,所以需要大括号保证 key:value的形式
数组是中括号array【index】 对象是大括号{key:value} 这个要熟记 总是混为一谈
在这里插入图片描述
上面的是地市的权限勾选,这个是表权限的勾选
分了两个异步请求去处理
在这里插入图片描述
在这里插入图片描述
总共四个请求 当都勾选的走上面那个在这里插入图片描述
当不满足时,根据是否勾选再去走不同的请求
在这里插入图片描述
在这里插入图片描述
前端大概就这样,我们来看下后端如何处理的

这是后端处理表权限的部分代码(controller)
在这里插入图片描述
我们先来看下proNameData 这个是前端记录 勾选的全局变量
在这里插入图片描述
记录勾选的权限名 并传入后台 debug了下 当同时取消多个时,是将多个存入到对象中,并没有使用集合或者数组的形式,
在这里插入图片描述

SQL部分使用in 这样就可以包含一个或多个的情况
在这里插入图片描述
上面是取消勾选时
当没有取消勾选 时则不走上面的内容
下面是 将前台传入json类型的数组 转换成集合 这些则是勾选的内容 就是要新添加的权限
JSONArray objects = JSONArray.parseArray(data); 将传入的data 转换成
JSONArray 类型数组 在进行循环 循环时 将里面内容转换成JSONObject类型 JSONObject jo = new JSONObject(objects.getJSONObject(i));
在使用jo.getString(“city”)去获取 获取时 要与前端存的对应
在这里插入图片描述
获得到之后,将这些数据循环的加到list集合中
在调用service层,去处理
在这里插入图片描述
在这里插入图片描述
这里是判断勾选的数据与数据库已有的数据相同 如果相同则不加进去 否则加进去
我们来看下如何写的这段逻辑
1.将传入集合list 加到list1中 ,在将list1作为参数 传入到一个实现的方法中 查出数据 并返回
在这里插入图片描述
将传入的参数 存到一个map集合中,在将这个map集合传入mapper层去查
在这里插入图片描述
查的数据加到集合中去 并返回

然后在将查出数据(数据库已有的权限)与勾选的权限数据进行比较 这个比较因为是勾选的数据和查出数据有多个 使用双重for循环来比较 这里有个逻辑的问题 我需要口述清楚 本人逻辑思维能力不是很强
在勾选的数据(第一组)与数据库已有的数据(第一组)进行比较时,如果相同则不加进去 如果将标识写在for外面 这样就会在判断最后一个时相同时,将flag这个标识改变状态,这样就不能满足 有的不能加进去的逻辑 并且这个加进去的逻辑也要写在第一层循环里面, 这样判断一个相同时就不加进去 这里后面要的逻辑相似 但又不一样 后面销账撤销中有类似的逻辑。以上便是数据仓库权限部分 核心部分。

二.回款销账与撤销销账
概述:只要实现功能就是导入excel 进行校验,校验成功插入数据库,在进行销账,不想销账时,就撤销销账 然后对撤销销账进行审核,通过后撤销金额回到可销账余额,并相应的减去已销账金额 并存入日志等操作
这里主要讲一些新的知识点
1.在这里插入图片描述
当弹框关闭监听的操作
2
在这里插入图片描述
js中的正则测试与字符串中将指定字符替换成指定字符
3
在这里插入图片描述
这里 当需要将指定参数传到后台,在前台获取data 这里import不存在 但是需要这个载体,去将我们要传的参数进行转换成json格式,这个使用 data.set(“setData”,JSON.stringify(arr)); 在后台 只需要使用对象中的object.getSetdat就可以获取到 如图
在这里插入图片描述

4.bootstrap几种获取数据,动态查询,获取勾选数据等方式
在这里插入图片描述
4.1 $RevocationDetails1.bootstrapTable(“refresh”,{query:data}); 动态获取参数查询
4.2 $(“#searchForm”).getform(); 获取表单数据
4.3 $RevocationDetails.bootstrapTable(“getSelections”) 获取勾选的数据
4.4 $tablethis.bootstrapTable(“load”,result.data); 动态展示表格数据 一般用于导入的表格预览
4.5 $table.bootstrapTable(“refreshOptions”,{columns:columns}); 动态生成表格
4.6 $checkCollectionTable.bootstrapTable(“getData”); 获取表格数据

5:当导入的表格 不在弹框中 我们可以这样做
5.1先在能够获取到这个表格数据的方法里将他存起来
在这里插入图片描述
在到需要这个表格的数据方法里去获取
在这里插入图片描述
后台和之前一样的操作
在这里插入图片描述

6
在这里插入图片描述
这里的a代表的是from表单中的nama属性 b是对应的name属性的值

7.js拼接html代码
确认单’+(parseInt(i)+1)+‘
注意看这段拼接的代码 单引号里面是我们要拼接的内容 当要拼接的内容中有单引号 我们使用’进行转译
当拼接的内容中有变量我们使用’+ 如 ‘+ index +’

8.jQuery中attr方法 :attr() 方法设置或返回被选元素的属性值。
9.jQuery中each方法:jQuery.each() 函数用于遍历指定的对象和数组。
参数 :object Object类型 指定需要遍历的对象或数组。
callback Function类型 指定的用于循环执行的函数。

10.sql中多级排序(先根据名字首字符排序,在根据年龄)
在这里插入图片描述
后面会有一篇关于逻辑部分的记录 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值