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
'개발자 > 국비지원 SW' 카테고리의 다른 글
국비지원 107일차 - Spring 계층형게시판(페이징,블록,답글) (0) | 2020.09.24 |
---|---|
국비지원 106일차 - Vue 컴포넌트 Lifecycle, vue-ajax, axios VueCli생성 (0) | 2020.09.23 |
국비지원 104일차 - Vue 인스턴스, 컴포넌트(전역, 지역, 통신), 이벤트 버스, To Do App (0) | 2020.09.21 |
국비지원 103일차 - Spring 주문처리2, MyBatis foreach (0) | 2020.09.18 |
국비지원 102일차 - VueJS CRUD(update, delete), set, ES6문법 (0) | 2020.09.17 |