구글 차트.hwp
0.40MB
차트연습문제.txt
0.00MB
<!-- 회원 별 매출 금액 합계 통계 -->
<mapper>
<select id="memAmount" resultType="hashMap">
SELECT M.MEMBERID || '(' ||M.NAME || ')' NAME
, SUM(P.PROD_SALE * C.CART_QTY) MONEY
FROM MEMBER M,PROD P, CART C
WHERE M.MEMBERID = C.CART_MEMBERAND P.PROD_ID =C.CART_PROD
GROUP BY M.MEMBERID || '(' || M.NAME || ')'
HAVING SUM(P.PROD_SALE * C.CART_QTY) >= 10000000
</select>
</mapper>
public interface MemberMapper {
// 회원 별 판매 금액 합계 차트
public List<Map<String, Object>> memAmount();
}
package kr.or.ddit.member.service;
import org.json.simple.JSONObject;
import kr.or.ddit.member.vo.MemberVO;
public interface MemberService {
// 메소드 시그니처 처리
public JSONObject memAmount();
}
@Service
public class MemberServiceImpl implements MemberService {
private static final Logger logger = LoggerFactory.getLogger(LprodServiceImpl.class);
@Autowired
MemberMapper memberMapper;
// 회원 별 판매 금액 합계 차트
@Override
public JSONObject memAmount() {
List<Map<String, Object>> list = this.memberMapper.memAmount();
logger.info("list : " + list.get(0).toString());
// 0.최종적으로 리턴할 json 객체
JSONObject data = new JSONObject();
// 1. cols 배열에 넣기
JSONObject col1 = new JSONObject();
JSONObject col2 = new JSONObject();
JSONArray title = new JSONArray();
col1.put("label", "회원명");
col1.put("type", "string");
col2.put("label", "금액");
col2.put("type", "number");
title.add(col1);
title.add(col2);
data.put("cols", title);
// 2. rows 배열에 넣기
JSONArray body = new JSONArray(); // rows
for (Map<String, Object> map : list) {
JSONObject memName = new JSONObject();
memName.put("v", map.get("MEM_NAME")); // 회원명
JSONObject money = new JSONObject();
money.put("v", map.get("MONEY")); // 금액
JSONArray row = new JSONArray();
row.add(memName);
row.add(money);
JSONObject cell = new JSONObject();
cell.put("c", row);
body.add(cell); // 레코드 1행 추가
} // end for
data.put("rows", body);
return data;
}
}
@RequestMapping(value = "/member")
@Controller
public class MemberController {
private static final Logger logger = LoggerFactory.getLogger(MemberController.class);
// DI(Dependency Injection : 의존성 주입)
@Autowired
MemberService memberService;
@GetMapping("/memAmount")
public String memAmount() {
return "member/memAmount";
}
@GetMapping("/memAmount_money")
@ResponseBody
public JSONObject memAmount_money() {
return this.memberService.memAmount();
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<title>회원 별 판매 금액 합계 차트</title>
<script type="text/javascript">
google.load("visualization", "1", {
"packages" : [ "corechart" ]
});
google.setOnLoadCallback(drawChart);
function drawChart() {
var jsonData = $.ajax({
url : "/member/memAmount_money",
dataType : "json",
async : false
}).responseText;
console.log("jsonData : " + jsonData);
var data = new google.visualization.DataTable(jsonData);
var chart = new google.visualization.ColumnChart(document
.getElementById("chart_div"));
chart.draw(data, {
title : "회원 별 판매 금액 합계 차트",
curveType : "function",
width : 600,
height : 440
});
}
</script>
</head>
<body>
<div id="chart_div"></div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<title>구글차트</title>
</head>
<body>
<a href="/member/memAmount">회원 별 판매 금액 합계 차트</a>
</body>
</html>
'개발자 > JspSpring' 카테고리의 다른 글
| 20220218 프로젝트 SVN 받아오기 (0) | 2022.02.18 |
|---|---|
| 20220218 프로젝트 SVN 연결하기 (0) | 2022.02.18 |
| 20220217 다수리 - sql 데이터베이스 만들기 (0) | 2022.02.17 |
| 20220216 다수리 프로젝트 (0) | 2022.02.16 |
| outer 조인 (0) | 2022.02.16 |