QQZiFramework笔记:DBContext配置篇

上一篇文章一直有提到一个Permission参数,以及Peremission.json文件,现在我们就来介绍一个它

并非每次的查询都需要定义在Permission文件中,我们的原则是:

1、由客户端直接发起的查询(pubic.erp.js中的EntityTable和clientEx.execQuerry等方法)一定要配置,并且默认为严格模式

2、需要查询多张表的和特别的列的,需要配置


一个完整的文件格式如下:

{
	"query1":{
		TableSql:"A0_Users a join A0_RealName b on b.UserId = a.UserId",
		Fields:{
			StatusText:["case Status when '0' then '未处理' when '1' then '已处理'  end"],
			Mobile:["b.Mobile","b.Mobile like '%{0}%'"]
		}
	},
	"query2":{		
		Fields:{
			StartDate :["convert(varchar(10),StartDate,120)","StartDate between '{0}' and '{1}'","StartDate"]	
		},
		NotAllowQuery:["Password","列2"],
		NotAllowSaving:["*"],
		NotAllowDelete:false,
		Defaults:"{UserId:{loginUserId}}"
	}
}


指定了两个查询,query1和query2,也就是之前说的配置项,QuerySingle中的permission参数,这样就能自定义查询

TableSql:需要查询的表,如果只是单表,不需要指定,多表的情况最好重名一下,比如A0_Users a

Fields:对特别的字段进行配置,比如日期显示,状态的case显示,日期的查询条件,格式为长度3的字符串数组,["查询表达式","条件表达式","排序表达式"]

Defaults:默认会带入的查询条件,比如上面的{UserId:{LoginUserId}}用来限制只能查询登录用户的,

NotAllowQuery:哪些字段不允许查询,默认无限制

NotAllowSaving:哪些字段不需要保存和更新,默认所有不允许

NotAllowDelete:是否不允许删除,默认不允许

query1中的StatusText列,是表中没有的,在查询的时候,会转换为配置的case
query2中的StartDate在查询的时候会转日期格式,做where条件的时候会格式化为StartData between '日期' and ‘日期’(需要在QuerySingle或者QueryMany中的where动态类中传入两个日期,new {StartData="2016-01-01|2016-06-01"},以竖线隔开)


{LoginUserId}:代表登录用户的ID,可用在配置中的所有地方


------------------------------扩展-------------------------------

设计中并不包含分组功能的实现,不过我们可以通过列的配置达到,比如

"Home-AgencyProfits":{
	TableSql:"A0_Agencys a   join A0_AgencyBusiness b on b.AgencyCode = a.AgencyCode join A1_AgencyProfits  c on c.AgencyBusinessId= b.Id join A0_Business d on d.Id=b.BusinessID",
		Fields:{			
			Money:["sum(Money)"],
			TotalMoney:["sum(TotalMoney)"],		
			GroupBy:["","1=1 group by AgencyBusinessId,a.AgencyCode,a.ParentCode,a.Company,b.Id, c.Status,c.SettlementTime,c.SettlementUser,d.Title"]			
		}	
}

这里的groupby是通过where条件来实现的,所有会加上1=1(因为还有其它条件),sum是通过查询条件来实现的,另外需要注意,此时使用entityTable,主键和order必须要是group by语句中分组依据的列,比如上面的AgencyCode,并且如果表格中没显示该列,则显示在queryCols中也定义


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值