order serviceimpl
5.수령자 정보 insert
int n3=this.orderMapper.receiverInsert(ovo);

Ordermapper.xml 수령자 정보 insert문 작성
<!-- 수령자정보 insert -->
	<insert id="receiverInsert" parameterType="com.tis.domain.OrderVO">
		insert into receiver(onum, name, hp1,hp2,hp3,zipcode,addr1,addr2)
		values(#{onum},#{receiver.name},#{receiver.hp1},#{receiver.hp2},#{receiver.hp3},#{receiver.zipcode},
		#{receiver.addr1},#{receiver.addr2})
	</insert>

orderServiceinpl
@Inject
private UserMapper userMapper; 생성

6.사용한 마일리지 차감
if(ovo.getOpointUse()>0) {
	this.userMapper.updateMileageDown(ovo);
}

7. 카드결제라면 구매포인트를 회원 마일리지 적립
if(ovo.getOpayWay().equals("200")) {
	this.userMapper.updateMileageUp(ovo);
}

UserMapper.xml
<!--[주문관련] 사용포인트가 있을 경우 회원의 마일리지 차감 -->
	<update id="updateMileageDown" parameterType="Order">
		update member set mileage = mileage - #{opointUse:NUMERIC} where idx = #{idx_fk}
	</update>
	
	<!--[주문관련] 결제가 완료됐을 경우 회원의 마일리지 적립 -->
	<update id="updateMileageUp" parameterType="Order">
		update member set mileage = mileage + #{ototalPoint:NUMERIC} where idx = #{idx_fk}
</update>

ordercontroller
@Inject
private UserService userSvc; 생성

6. 주문이 완료되면 적립금 등의 변동이 있으므로 회원정보를 db에서 다시 가져와
UserVO user=this.userSvc.getUser(ovo.getIdx_fk());
	if(user!=null) {
		int mileage=user.getMileage();
		log.info("mileage===="+mileage);
		ses.setAttribute("mileage", mileage);
	}

7번 안함

UserServiceimpl
public UserVO getUser(int idx) {
return this.userMapper.getUser(idx);
}

UserMapper.xml
<select id="getUser" parameterType="int" resultType="User">
	select * from member where idx= #{idx}
</select>

OrderController 
//주문자의 마일리지 가져오기
UserVO user = this.userSvc.getUser(loginUser.getIdx()); 만들고
ses.setAttribute loginUser -> user 로 변경 

@Inject
private CommonUtil util; 생성

@GetMapping("/orderDetail")
	public String orderDetail(Model model, HttpSession ses, @RequestParam(defaultValue="") String onum) {
		log.info("onum==="+onum);
		if(onum.isEmpty()) {
			onum=(String)ses.getAttribute("onum");
		}
		if(onum==null) {
			return util.addMsgBack(model, "잘못 들어온 경로입니다.");
		}
	//주문번호로 상세 주문 내역 가져오기
	List<OrderVO> orderDesc=this.orderSvc.getOrderDesc(onum);
	model.addAttribute("onum",onum); //주문번호
	model.addAttribute("orderDesc",orderDesc); //주문내역
	
	return "shop/orderDesc";
		
}//---------------------------------------------- orderAdd 밑에 생성

shop폴더 안에
orderDesc.jsp 붙여넣기

orderServiceimpl
public List<OrderVO> getOrderDesc(String onum) {
	return this.orderMapper.getOrderDesc(onum);
}

orderMapper.xml 
<!-- 주문번호로 주문 상세 내역 정보 가져오기 -->
	<!-- <select id="getOrderDesc" parameterType="string" resultType="Order"> 여러개의 VO타입이 존재해서 안됨-->
	<select id="getOrderDesc" parameterType="string" resultMap="OrderJoin">
	select a.onum, idx_fk,ototalprice,ototalpoint,odeliver,opaystate,odeliverPrice,
	opayway,orderdate,opointuse,ordermemo, b.pnum_fk, 
	(select pname from product where pnum = b.pnum_fk ) pname, oqty,
	b.saleprice, b.opoint, b.pimage,name,hp1,hp2,hp3,zipcode,addr1,addr2
	from orderDesc a join order_product b
	on a.onum = b.onum
	join receiver c
	on b.onum = c.onum and a.onum=#{onum}
	</select>
	
	<!-- Join절에 사용할 매핑정보. DB에서 가져오는 컬럼명과 VO객체의 프로퍼티명을 매핑해주자. -->
	<resultMap type="Order" id="OrderJoin">
	<!-- property는 빈객체의 프로퍼티명, column은 DB의 컬럼명을 적는다. -->
		<id property="onum" column="onum" /> <!-- id엘리먼트에는 primary key컬럼을 지정한다.-->
		
		<result property="idx_fk" column="idx_fk"/>
		<result property="ototalPrice" column="ototalPrice"/>
		<result property="ototalPoint" column="ototalPoint"/>
		<result property="odeliver" column="odeliver"/>
		<result property="odeliverPrice" column="odeliverPrice"/>
		<result property="opayState" column="opayState"/>
		<result property="opayWay" column="opayWay"/>
		<result property="orderDate" column="orderDate"/>
		<result property="opointUse" column="opointUse"/>
		<result property="orderMemo" column="orderMemo"/>
		
		<!-- OrderVO has a ReceiverVO 단일 엘리먼트 일때=association-->
		<association property="receiver" javaType="Receiver">
			<id property="onum" column="onum"/>
			<result property="name" column="name"/>
			<result property="hp1" column="hp1"/>
			<result property="hp2" column="hp2"/>
			<result property="hp3" column="hp3"/>
			<result property="zipcode" column="zipcode"/>
			<result property="addr1" column="addr1"/>
			<result property="addr2" column="addr2"/>
		</association>
		
		<!-- OrderVO has List<ProductVO> 다중 엘리먼트 일때=collection-->
		<collection property="orderList" javaType="java.util.ArrayList" ofType="Product">
			<result property="pnum" column="pnum_fk" />
			<result property="pname" column="pname" />
			<result property="pimage1" column="pimage" />
			<result property="pqty" column="oqty" />
			<result property="saleprice" column="saleprice" />
			<result property="point" column="opoint" />
		</collection>
		
	</resultMap>

---------------------
spring 게시판 boardWrite
views 밑에 board폴더 생성

com.tis.domain에 boardVO, pagingVO붙여넣기
com.tis.service에 BoardService 붙여넣기
BoardServiceImpl 생성 인터페이스 BoardService

com.tis.mapper -> BoradMapper 인터페이스 생성
com.tis.myshop -> BoardController 생성

pom.xml 파일 업로드 라이브러리 추가
<!-- File Upload -->
	<dependency>
    	<groupId>commons-fileupload</groupId>
    	<artifactId>commons-fileupload</artifactId>
    	<version>1.3.3</version>
	</dependency>
	<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
	<dependency>
	    <groupId>commons-io</groupId>
	    <artifactId>commons-io</artifactId>
	    <version>2.6</version>
	</dependency>

servlet-context.xml에 MultipartResolver빈 등록
<!-- MultipartResolver빈 등록 [주의사항 id를 반드시 multipartResolver로 등록해야 한다.] -->
	<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<beans:property name="defaultEncoding" value="UTF-8"></beans:property>
		<beans:property name="maxUploadSize" value="-1" />
		<!-- 업로드 최대 용량은 무제한으로 설정(-1은 무제한) -->
</beans:bean>

Boardcontroller 

webapp -> Upload폴더 생성


BoardController
파일업로드 처리


orderDesc.jsp, board.jsp파일, boardVO, pagingVO, BoardService, pom.xml사진,boardController



+ Recent posts