구글 차트.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

+ Recent posts