1.上午复习了一下昨日学习的代码。
2.中午看了看右边刘涛的代码,学习了一下,遇到贺宇杰的指点。
业务代表<--主任<--经理<--督导
业务代表<--主任<--机构<--片区
业务代表是 NS_USER 表 ,该表内有业务代表 ,业务代表的name ,业务代表的 propertity 表的id
根据此id关联 USER_PROPERTITY 表 ,此表中有 UID字段 ,此代表了此业务代表的领导 ;有SAMELEVELMAN 字段 ,代表了同等级的人的id ,里面记录了与我同等级的人,我可以看他们的下属。 //这也是与业务相关联的,一切是根据业务出发的,我由于个人原因无法处理的下属的请求可以让同等级的人处理。(其实此处应该还有部分没有讲的,我在的情况下,让同等级的人插手我的下属应该也是不妥当的。不过看这个项目进度,不用在这个点过多考虑)。
用这个uid 可以再进入NS_USER中查询此领导的 信息,包括他的propertity表。
这个大致试验下这个sql的结构,光想,不写出来也是没有意义的。
1. 这样用子查询应该也可以吧,但是看起来比较水 select uid from user_propertity
where id=( select propertityId from NS_USER where id='8888');
2. 试验下联合查询 select up.uid
from user_propertity up join ns_user nu
on up.id=nu.propertityId
where nu.id='8888';
目测应该是2的效率高,链好了查,总比查2次好。
活动分为 特惠 sperical 最红星期五 redFriday 营销 (大概是marketing) 卧龙岗wlg
最后一个不清楚 ,特惠和最红星期五只能参加一次 。
有业代做了别人就不能做了。一旦有人做了特惠,这个机构的其他活动就不应该做了。,一个商户有多个活动,应该指的是没人做特惠的情况,因为毕竟是sperical ,比较少。
一个业代只能同时做一个活动,所以,可以根据业代查找活动,直到活动结束。 既然活动是短期的所以对时间,报表要求比较高。对sql语句的要求也就好。不知道批量是怎么写的,这个应该是比较重要的部分。
3 .想一下昨天刘涛的表,
区域,机构,主任 ,业代 -------------------》》》》要根据业带查 -------业代对应的商户与活动,这里试着写一个demo
public Business getBusiness { //business是一个JAVA BEAN 这里偷懒就不写了 ,里面有所有要的信息(商户,活动等等)
if (业代不为空) {
处理处理
Business bs= new business();
bs.setXXX(XXX);
bs.setYYY(YYY);
return bs;
}
if ( 主任不为空) {
处理处理
Business bs= new business();
bs.setXXX(XXX);
bs.setYYY(YYY);
return bs;
}
if ( 机构不为空) {
处理处理
Business bs= new business();
bs.setXXX(XXX);
bs.setYYY(YYY);
return bs;
}
if ( 区域不为空) {
处理处理
Business bs= new business();
bs.setXXX(XXX);
bs.setYYY(YYY);
return bs;
}else {
很悲剧都是空,那我必须吧全部查出来
处理处理
Business bs= new business();
bs.setXXX(XXX);
bs.setYYY(YYY);
return bs;
}
}
这样这个方法,把处理处理的部分填上就可以使用了,而且用起来应该没啥问题,但是。。。。
实际项目中的类实在太多了。如果什么都用entity 也就是dao 来面向对象封装的话,会发现维护你自己写的项目应该会很困难(目测是如此),重构一下用map ,现在知道为什么老师上课的时候用map了,当时觉得这样写有什么好,不好管理,主要原因还是用的少,其实用的多的话,会发现如果能自己搞清的情况下还是用 map 会方便多了,也不用怕文件太乱。
public Map getBusiness {
if (业代不为空) {
处理处理
Map bsMap =new HashMap();
bsMap.put(XXX,YYY); //好像是这样的,用的少有错勿喷
return bsMap;
}
if ( 主任不为空) {
处理处理
Map bsMap =new HashMap();
bsMap.put(XXX,YYY); //好像是这样的,用的少有错勿喷
return bsMap;
}
if ( 机构不为空) {
处理处理
Map bsMap =new HashMap();
bsMap.put(XXX,YYY); //好像是这样的,用的少有错勿喷
return bsMap;
}
if ( 区域不为空) {
处理处理
Map bsMap =new HashMap();
bsMap.put(XXX,YYY); //好像是这样的,用的少有错勿喷
return bsMap;
}else {
很悲剧都是空,那我必须吧全部查出来
处理处理
Map bsMap =new HashMap();
bsMap.put(XXX,YYY); //好像是这样的,用的少有错勿喷
return bsMap;
}
}
Map 中的key一定是string ,但是value 不一定是string 也可能是int 就没法用泛型了,就不用了吧。处理处理的内容就从service层调用不同的方法来实现,这样就不拼sql 了。拼sql 看起来挺麻烦了,主要也是关联的表多。怕到时候,反而没执行效率了得不偿失。
明天做个demo上传上来给大家看看。要给自己点目标,否则又偷懒没动力了