蓝缘基础框架项目-角色物理或逻辑删除

物理或逻辑删除的概念解析,物理删除表示从数据库表中删除该记录,逻辑删除表示改变状态,数据过滤的时候达到不可见的效果。

在这里插入图片描述

		$("#deleteView").click("click", function() {//绑定删除按扭
			var cbox = grid.getSelectedCheckbox();

			if (cbox.length == 0) {
				parent.$.ligerDialog.alert("请选择删除项");
				return;
			}
			parent.$.ligerDialog.confirm('删除后不能恢复,确定删除吗?', function(confirm) {
				if (confirm) {
					$.ajax({
					    type: "post", //使用get方法访问后台
					    dataType: "json", //json格式的数据
					    async: false, //同步   不写的情况下 默认为true
					    url: rootPath + '/background/role/deleteById.html', //要访问的后台地址
					    data: {ids:cbox.join(","),type:0}, //要发送的数据
					    success: function(data){
					    	if (data.flag) {
					    		parent.$.ligerDialog.success('删除成功', '提示', function() {
					    			loadGird();//重新加载表格数据
								});
							}else{
								parent.$.ligerDialog.warn("删除失败");
							}
						}
					});
				}
			});
		});
	});

说明:
1、删除按钮绑定删除事件。
2、删除提交前需要选择删除项,否则弹出提示信息。
3、删除上送删除类型,选择物理删除或者逻辑删除。
4、成功后重新加载表格数据,失败则提示删除失败。

/**
	 * 批量删除
	 */
	@ResponseBody
	@RequestMapping("deleteById")
	public Map<String, Object> deleteById(String ids, int type) {
		Map<String, Object> map = new HashMap<String, Object>();
		boolean res = false;
		try {
			String[] id = ids.split(",");
			List<String> idList = new ArrayList<>();

			for (String str : id) {
				if(!Common.isEmpty(str)){
					idList.add(str);
				}
			}
			if (idList.isEmpty()){
				map.put("flag", false);
				return map;
			}
			if (0 == type){
				//逻辑删除
				res = roleService.deleteByLogic(idList);
			}else{
				//物理删除
				res = roleService.deleteByPhysics(idList);
			}
			map.put("flag", res);
		} catch (Exception e) {
			map.put("flag", false);
		}
		return map;
	}

说明:
1、组装上送记录id成集合,过滤无效空数据,若集合为空则返回false。
2、当type上送0,表示逻辑删除,否则进行物理删除。
3、记录并返回删除结果,若出现异常也是返回失败。

    <delete id="deleteByPhysics" parameterType="java.util.List">
        DELETE FROM sys_role WHERE id IN(
        <foreach collection="list" item="id" index="index" separator=",">
            ${id}
        </foreach>
        )
    </delete>

    <delete id="deleteByLogic" parameterType="java.util.List">
        update sys_role SET enable = '-1'  WHERE id IN(
        <foreach collection="list" item="id" index="index" separator=",">
             ${id}
        </foreach>
        )
    </delete>

说明:
1、物理删除使用delete,而逻辑删除使用update。
2、foreach 批量处理集合。

在这里插入图片描述

软件定制及其他业务
请加微信号:13128600812

公众号:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张先生程序猿

谢谢您的打赏,我会持续创作下去

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值