7.28~学习笔记——Spring后端框架搭建
-
mapper层定义方法
package com.cdeledu.yunqi.biz.dao; import com.cdeledu.yunqi.biz.model.BizReferInfo; import java.util.List; import java.util.Map; public interface BizReferInfoMapper { int insert(BizReferInfo record); List<BizReferInfo> selectAll(); /** * 获取访问来源列表 * @param dn * @param time * @return */ List<Map<String,Object>> selectReferList(String dn,String time); List<BizReferInfo> selectReferParent(); }
-
xml层写mapper层的方法的sql
<select id="selectAll" resultMap="BaseResultMap"> select id, url, des, pid, description from biz_refer_info </select> <select id="selectReferParent" resultType="com.cdeledu.yunqi.biz.model.BizReferInfo"> select id, url, des, pid, description from biz_refer_info where id=pid order by pid asc </select> <select id="selectReferList" resultType="java.util.HashMap"> SELECT t1.id, t1.description, t1.url, t1.pid, t2.pv, t2.uv, t2.ip_count FROM biz_refer_info t1 JOIN ( SELECT refer, sum( pv ) AS pv, sum( uv ) AS uv, sum( ip_count ) AS ip_count FROM biz_flow_refer WHERE dn = #{dn} AND dt = #{time} GROUP BY refer ) AS t2 ON t1.id = t2.refer order by t1.pid asc </select> </mapper>
-
server接口函数
package com.cdeledu.yunqi.biz.service; import com.cdeledu.yunqi.biz.model.BizReferInfo; import java.util.List; public interface IBizReferInfoService { List<BizReferInfo> selectReferList(String dn,String time); }
-
server实现类
package com.cdeledu.yunqi.biz.service.impl; import com.cdeledu.yunqi.biz.dao.BizReferInfoMapper; import com.cdeledu.yunqi.biz.model.BizReferInfo; import com.cdeledu.yunqi.biz.service.IBizReferInfoService; import com.cdeledu.yunqi.common.utils.StringUtils; import org.apache.poi.hssf.record.DVALRecord; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; @Service public class BizReferInfoServiceImpl implements IBizReferInfoService { @Resource private BizReferInfoMapper bizReferInfoMapper; @Override public List<BizReferInfo> selectReferList(String dn, String time) { List<Map<String, Object>> list = bizReferInfoMapper.selectReferList(dn, time); Map<Integer, BizReferInfo> map = new HashMap<>(); if (list != null && list.size() > 0) { for (int i = 0; i < list.size(); i++) { Map<String, Object> stringObjectMap = list.get(i); if (stringObjectMap.get("id") == null || stringObjectMap.get("pid") == null) { continue; } Integer id = Integer.valueOf(stringObjectMap.get("id") + ""); Integer pid = Integer.valueOf(stringObjectMap.get("pid") + ""); String description = stringObjectMap.get("description") + ""; String url = stringObjectMap.get("url") + ""; String des = stringObjectMap.get("des") + ""; Integer pv = stringObjectMap.get("pv") == null ? 0 : Integer.valueOf(stringObjectMap.get("pv") + ""); Integer uv = stringObjectMap.get("uv") == null ? 0 : Integer.valueOf(stringObjectMap.get("uv") + ""); Integer ip_count = stringObjectMap.get("ip_count") == null ? 0 : Integer.valueOf(stringObjectMap.get("ip_count") + ""); BizReferInfo item = new BizReferInfo(); item.setId(id); item.setDescription(description); item.setUrl(url); item.setPid(pid); item.setDes(des); item.setPv(pv); item.setUv(uv); item.setIp(ip_count); if (id.equals(pid)) { BizReferInfo bizReferInfo = map.get(pid); if (bizReferInfo != null) { System.out.println(bizReferInfo); } else { map.put(pid, item); } } else { BizReferInfo bizReferInfo = map.get(pid); if (bizReferInfo != null) { List<BizReferInfo> children = bizReferInfo.getChildren(); children.add(item); } else { List<BizReferInfo> children = new ArrayList<>(); bizReferInfo = new BizReferInfo(); children.add(item); bizReferInfo.setChildren(children); map.put(pid,bizReferInfo); } } } } // System.out.println(map); List<BizReferInfo> listPa = bizReferInfoMapper.selectReferParent(); // System.out.println(listPa); Map<Integer,BizReferInfo> mapPa = new HashMap<>(); for(int i = 0;i<listPa.size();i++){ BizReferInfo bizReferInfo = listPa.get(i); if(bizReferInfo!=null){ mapPa.put(bizReferInfo.getId(),bizReferInfo); } } List<BizReferInfo> reList = new ArrayList<>(); if(map!=null && map.size()>0){ Set<Integer> keys = map.keySet(); for (Integer key :keys){ BizReferInfo tmp = map.get(key); BizReferInfo bizReferInfo = mapPa.get(key); if(bizReferInfo!=null){ tmp.setDescription(bizReferInfo.getDescription()); tmp.setDes(bizReferInfo.getDes()); tmp.setId(bizReferInfo.getId()); tmp.setUrl(bizReferInfo.getUrl()); tmp.setPid(bizReferInfo.getPid()); } reList.add(tmp); } } for (int i = 0; i < reList.size() ; i++) { BizReferInfo bizReferInfo = reList.get(i); List<BizReferInfo> children = bizReferInfo.getChildren(); if(children !=null ||children.size()>0){ int Pv=0,Uv=0,Ip=0; for (int j = 0;j<children.size();j++){ BizReferInfo bizReferInfo1 = children.get(j); Pv += bizReferInfo1.getPv(); Uv +=bizReferInfo1.getUv(); Ip +=bizReferInfo1.getIp(); } bizReferInfo.setPv(Pv); bizReferInfo.setUv(Uv); bizReferInfo.setIp(Ip); } } // System.out.println(reList); return null ; } }
-
java类声明对象
package com.cdeledu.yunqi.biz.model; import io.swagger.models.auth.In; import java.io.Serializable; import java.util.ArrayList; import java.util.List; public class BizReferInfo implements Serializable { private Integer id; private String url; private String des; private Integer pid; private String description; private static final long serialVersionUID = 1L; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url == null ? null : url.trim(); } public String getDes() { return des; } public void setDes(String des) { this.des = des == null ? null : des.trim(); } public Integer getPid() { return pid; } public void setPid(Integer pid) { this.pid = pid; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description == null ? null : description.trim(); } /** * 子节点 */ List<BizReferInfo> children = new ArrayList<>(); private Integer pv; private Integer uv; private Integer ip; public List<BizReferInfo> getChildren() { return children; } public void setChildren(List<BizReferInfo> children) { this.children = children; } public Integer getPv() { return pv; } public void setPv(Integer pv) { this.pv = pv; } public Integer getUv() { return uv; } public void setUv(Integer uv) { this.uv = uv; } public Integer getIp() { return ip; } public void setIp(Integer ip) { this.ip = ip; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(getClass().getSimpleName()); sb.append(" ["); sb.append("Hash = ").append(hashCode()); sb.append(", id=").append(id); sb.append(", url=").append(url); sb.append(", des=").append(des); sb.append(", pid=").append(pid); sb.append(", description=").append(description); sb.append(", serialVersionUID=").append(serialVersionUID); sb.append("]"); return sb.toString(); } }