嗯,上次在做项目中,有用到了map操作,自己当时对map还不是特别了解,主要要实现list里面嵌套一个list。所以,在这里进行相关的总结。
首先,我在Action中利用List保存model里面的实体类,然后进行json操作:
List list = this.queryorderService.getAllOrderInfo(esfemployeetab, order); // 封装好的查询方法
JSONArray json = new JSONArray().fromObject(list); // 封装好的json操作,这里不做详细解释
result = json.toString(); // 得到json的result
在getAllOrderInfo方法里面,对list进行了一个嵌套list的操作:
List list = this.find(hsql.toString() + where.toString());
if (list.size() >= 1) {
Map map = null; // 定义map
String orid = "";
for (int i = 0; i < list.size(); i++) {
map = (Map) list.get(i); // map获得list集合
if (map.get("orid") != null) {// 订单号
orid = map.get("orid").toString();
Long cenicid = new Long(map.get("iscenicid").toString());
TOrder torder = (TOrder) this.get(TOrder.class,
new TOrderId(orid, cenicid));
if (torder != null) {
Long iregionalid = torder.getIregionalid();
if (iregionalid != null && !"".equals(iregionalid)) {
Galsourceregiontab regional = (Galsourceregiontab) this
.get(Galsourceregiontab.class, iregionalid);
if (regional != null) {
map.put("szregionalname",regional.getSzregionalname());
}
}
}
// String
String sql = "select distinct new map(tzl.icrowdkindid as icrowdkindid,p.szcrowdkindname as szcrowdkindname,tzl.itickettypeid as itickettypeid,tor.dtstartdate as dtstartdate,prd.sztickettypename as sztickettypename,tzl.pric as pric,sum(tzl.numb) as numb,sum(tzl.amnt) as amnt,tzl.isj as isj )from Edpcrowdkindtab p,TOrder tor,Sysparv5 sys1,Edmtickettypetab prd,TOrderlist tzl,MOrder mor where ( mor.orid='"
+ orid
+ "' or mor.srid='"
+ orid
+ "') and mor.orid=tor.id.orid and tor.id.iscenicid="
+ cenicid
+ " and tzl.icrowdkindid=p.icrowdkindid and sys1.id.pmky='DDZT' and tor.id.iscenicid = tzl.id.iscenicid and sys1.id.pmcd=tor.ddzt and tzl.id.orid = tor.id.orid and tzl.itickettypeid = prd.itickettypeid group by tzl.icrowdkindid,p.szcrowdkindname,tzl.itickettypeid,tor.dtstartdate,prd.sztickettypename,tzl.pric,tzl.isj order by tzl.isj desc";
List torderList = this.find(sql);
if (torderList.size() >= 1) {
double totalprice = 0;
for (int j = 0; j < torderList.size(); j++) {
Map zmap = (Map) torderList.get(j); // 定义另一个map并保存torderList集合
if (null != zmap.get("isj")) {
if (Long.parseLong(zmap.get("isj").toString()) == -1) {
zmap.put("numb", new Long(zmap.get("numb").toString()) * -1);
}
}
totalprice += Double.parseDouble(zmap.get("pric")
.toString())
* Long.parseLong(zmap.get("numb")
.toString());
}
map.put("torderlists", torderList); // 将torderList集合映射到list集合中
map.put("totalprice", totalprice); // 将totalprice变量映射到list集合中
}else {
torderList = null;
map.put("torderlists", torderList);
map.put("totalprice", "");
}
}
}
}
因为时间原因就先到这里,有时间了再修改。。
表示还有很多要学啊!!!
更多精彩敬请关注公众号
Java极客思维
微信扫一扫,关注公众号