不同用户id

编程入门 行业动态 更新时间:2024-10-08 20:34:26

不同<a href=https://www.elefans.com/category/jswz/34/1771412.html style=用户id"/>

不同用户id

不同用户id--不同服务id--查询同一张表的不同字段信息

  • 一 在数据库先建两张表 result表 testUser表
  • 二 建三个model实体类
  • 三 ctrl层的方法
  • 四 SC层方法
  • 五 Mapper接口方法
  • 六 Mapper.xml文件
  • 七 把查出来的不同字段的表信息展示在页面上
  • 八 效果展示

最近在公司有一个需求,需求就是不同的用户登陆系统之后,调用同样的方法,方法里调用同样的mapper接口,mapper接口调用同一个mapper.xml文件,查出来的也是同一张表,但是重点是 查出来的这张表的字段不一样,比如说A登陆之后查看这张表时可以看到10个字段,B登陆之后查看这张表却只能看到5个字段(不是在前端页面隐藏元素实现的)

一 在数据库先建两张表 result表 testUser表

result表

userIdserverIdresultMap
1SC_find_Name_Agename,age
10SC_find_Name_Agename,age,address
testUser表
idnameageaddress
1王盼13郑州
2张浩16北京
3袁梦阳34上海

二 建三个model实体类

Result 实体类

package cn.qianlong.light.model;
public class Result extends PublicStr{private Integer userid;private String serverid;private String resultmap;public Integer getUserid() {return userid;}public void setUserid(Integer userid) {this.userid = userid;}public String getServerid() {return serverid;}public void setServerid(String serverid) {this.serverid = serverid == null ? null : serverid.trim();}public String getResultmap() {return resultmap;}public void setResultmap(String resultmap) {this.resultmap = resultmap == null ? null : resultmap.trim();}
}

testUser实体类

@Data
public class TestUser {private Integer id;private String name;private Integer age;private String address;
}

PublicStr实体类

@Data
public class PublicStr {private String publicStr;public String getPublicStr() {return publicStr;}public void setPublicStr(String publicStr) {this.publicStr = publicStr;}
}

三 ctrl层的方法

@Controller
@RequestMapping("/look")
public class TestUserCtrl extends LightBaseCtrl {/*** 查询结果集*/@RequestMapping("/result")@ResponseBodypublic List<TestUser> lookResult() throws Exception {String userId = UserUtil.getUserId();//得到登陆的用户idString serverId="SC_find_Name_Age";//设置服务id//根据用户id和服务id去查询结果集Result re=(Result)this.getLightServiceUtil().callServiceWithParam("SC_find_Name_Age",userId,serverId);//从查到的对象中得到结果集项String result=re.getResultmap();//创建公共字段对象,存放结果集PublicStr publicStr=new PublicStr();publicStr.setPublicStr(result);//根据结果集查询出对应的数据List<TestUser> list=(List<TestUser>) this.getLightServiceUtil().callServiceWithParam("findByResultMap", publicStr);return list;}
}

四 SC层方法

@LightServiceContainer
public class TestUserSC extends LightBaseService {
@Autowiredprivate TestUserMapper testUserMapper;
@Autowiredprivate ResultMapper resultMapper;@LightService(serviceName = "SC_find_Name_Age",memo = "查询结果集",version = "V1.0")public Result getResult(String userId,String serverId){Result result = resultMapper.getResult(userId, serverId);return result;}@LightService(serviceName = "findByResultMap",memo = "根据结果集查询结果",version = "V1.0")public List<TestUser> getUserByResultMap(PublicStr publicStr){List<TestUser> userByResultMap = testUserMapper.getUserByResultMap(publicStr);return userByResultMap;}
}

五 Mapper接口方法

public interface TestUserMapper {TestUser getList(Integer id);List<TestUser> getUserByResultMap(PublicStr publicStr);
}

六 Mapper.xml文件

 <select id="getUserByResultMap" parameterType="cn.qianlong.light.model.PublicStr" resultMap="BaseResultMap">select ${publicStr} from testUser</select>

七 把查出来的不同字段的表信息展示在页面上

前台页面是dataGrid写的,使用ajax请求数据,并把请求的数据进行处理之后放到columnModel中就可以了。
因为静态的字段写法是这样的

 $('#dataGrid').dataGrid({searchForm: $("#searchForm"),lazyLoad:false,//懒加载//multiselect:true,//多选inputPageNo: $("#pageNo"),inputPageSize: $("#pageSize"),inputOrderBy: $("#orderBy"),columnModel:column,columnModel: [{header:'学号', name:'studentId', index:'a.student_id', width:200, align:"center", formatter: function(val, obj, row, act){return '<a href="${ctxPath}/studentdemo/studentform?studentId='+row.studentId+'&op=edit" class="btnList" data-title="编辑用户">'+(val||row.studentId)+'</a>';}},{header:'姓名', name:'studentName', index:'a.student_name', width:200, align:"center"},{header:'手机号', name:'mobile', index:'a.mobile', width:200, align:"center"},{header:'院系', name:'college', index:'a.college', width:200, align:"center"},{header:'专业', name:'major', index:'a.major', width:200, align:"center"},{header:'操作', name:'actions', width:260, sortable:false, title:false, align:"center",formatter: function(val, obj, row, act){var actions = [];actions.push('<a href="${ctxPath}/studentdemo/studentform?studentId='+row.studentId+'&op=edit" class="btnList" title="编辑用户"><i class="fa fa-pencil"></i></a>&nbsp;');// actions.push('<a href="${ctxPath}/studentGridDemo/editStudent?studentId='+row.studentId+'" class="btnList" title="停用用户" data-confirm="确认要停用该用户吗?"><i class="glyphicon glyphicon-ban-circle"></i></a>&nbsp;');actions.push('<a href="${ctxPath}/studentdemo/deletestudent?studentId='+row.studentId+'" class="btnList" title="删除用户" data-confirm="确认要删除该用户吗?"><i class="fa fa-trash-o"></i></a>&nbsp;');actions.push('<a href="javascript:" οnclick="deleteSelectRowData({gridId:\'dataGrid\',url:\'${ctxPath}/studentdemo/deletemorestudent\',paramField:\'studentIdList\',info:\'确认要删除选中的学生信息吗?\',resultHandle:handleFunction,resultCallBack:callBackFuncion});" title="删除"><i class="fa fa-trash-o"></i></a>&nbsp;');//deleteSelectRowData({gridId:'dataGrid',url:'${ctxPath}/studentdemo/deletemorestudent',paramField:'studentIdList',info:'确认要删除选中的学生信息吗?',resultHandle:handleFunction(ele),resultCallBack:callBackFuncion(gridId)});return actions.join('');}}],// 加载成功后执行事件ajaxSuccess: function(data){}});

所以动态字段就这样写

 $(function () {$.ajax({url:"/look/result",type:"post",dataType:"json",async:false,success:function (data) {alert(JSON.stringify(data));//声明一个空数组column,column要赋值给columnModel,columnModel是dataGrid的表格的字段显示// 因为data里面是[{},{},{}]这样的形式,所以取出data的第一个{}即可,对data[0]进行遍历var column=[];$.each(data[0],function (key,value) {//参数key和value是data[0]中的key和valueif(value!==null){   //查出来的包括null的value,要把null的value排除掉,只显示有值的部分column.push({   //给数组里面添加{}header:key,name:key,index:"a."+key,width:100,align:"center"});}});$('#dataGrid').dataGrid({searchForm: $("#searchForm"),lazyLoad:false,//懒加载//multiselect:true,//多选inputPageNo: $("#pageNo"),inputPageSize: $("#pageSize"),inputOrderBy: $("#orderBy"),columnModel:column,     //把column数组赋值给columnModelajaxSuccess: function(result){}});}});});

最后就实现了上面这个需求,代码是运行成功之后的源码。

八 效果展示

admin用户登陆查看表信息

jn_jsb用户登陆查看表信息

更多推荐

不同用户id

本文发布于:2024-02-28 01:42:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1767396.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:用户   id

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!