| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312 |
- package com.style24.front.biz.web;
- import java.util.Collection;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.mobile.device.Device;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- import org.springframework.web.servlet.ModelAndView;
- import com.style24.core.biz.service.TscCustomerService;
- import com.style24.core.support.env.TscConstants;
- import com.style24.core.support.message.TscMessageByLocale;
- import com.style24.front.biz.service.TsfPlanningService;
- import com.style24.front.support.controller.TsfBaseController;
- import com.style24.front.support.security.session.TsfSession;
- import com.style24.persistence.domain.Coupon;
- import com.style24.persistence.domain.Customer;
- import com.style24.persistence.domain.Plan;
- import com.style24.persistence.domain.Review;
- import lombok.extern.slf4j.Slf4j;
- import com.gagaframework.web.parameter.GagaMap;
- import com.gagaframework.web.rest.server.GagaResponseStatus;
- /**
- * 기획전 Controller
- *
- * @author gagamel
- * @since 2020. 12. 29
- */
- @Controller
- @RequestMapping("/planning")
- @Slf4j
- public class TsfPlanningController extends TsfBaseController {
- @Autowired
- private TscMessageByLocale message;
- @Autowired
- private TsfPlanningService planningService;
- @Autowired
- private TscCustomerService coreCustomerService;
- /**
- * 기획전 메인 화면
- * @param cateNo - 카테고리번호
- * @return
- * @author sowon
- * @since 2021. 3. 5
- */
- @GetMapping("/main/form")
- public ModelAndView planningMainForm(@RequestParam(value = "cateNo", required = false) Integer cateNo) {
- ModelAndView mav = new ModelAndView(super.getDeviceViewName("planning/PlanningMainForm"));
- Plan plan = new Plan();
- plan.setSiteCd(TscConstants.Site.STYLE24.value());
- plan.setFrontGb(TsfSession.getFrontGb());
- // 기획전 카테고리 목록
- mav.addObject("cateList", planningService.getPlanningCategoryList(plan));
- mav.addObject("cateNo", cateNo);
- return mav;
- }
- /**
- * 기획전 메인 목록
- * @param plan - 기획전 정보
- * @param device - 디바이스 정보
- * @return
- * @author gagamel
- * @since 2021. 3. 29
- */
- @GetMapping("/main/list")
- @ResponseBody
- public Collection<Plan> getPlanningMainList(Plan plan, Device device) {
- plan.setSiteCd(TscConstants.Site.STYLE24.value());
- plan.setFrontGb(TsfSession.getFrontGb());
- plan.setCustGb(TsfSession.getCustGb());
- plan.setCustNo(TsfSession.isLogin() ? TsfSession.getInfo().getCustNo() : 0);
- if (device.isNormal()) {
- plan.setMaxRow(2); // PC웹은 2개
- } else {
- plan.setMaxRow(3); // 모바일은 3개
- }
- return planningService.getPlanningMainList(plan);
- }
- // /**
- // * 기획전 접근확인
- // *
- // * @return
- // * @author sowon
- // * @since 2021. 3. 22
- // */
- // @PostMapping("/access")
- // @ResponseBody
- // public GagaMap PlanningAccessConfrim(@RequestBody Plan plan) throws Exception {
- // GagaMap result = new GagaMap();
- // // 접근 가능 고객 등급 확인
- // planningService.accessCustGrade(plan);
- // result.set("status", "200");
- //
- // return result;
- // }
- /**
- * 기획전 상세화면
- *
- * @return
- * @author sowon
- * @since 2021. 3. 9
- */
- @GetMapping("/detail/form")
- public ModelAndView PlanningDetailForm(Plan plan) {
- ModelAndView mav = new ModelAndView();
-
- // 접근 불가능한 기획전 메시지 조회
- String inaccessibleMsg = planningService.getInaccessiblePlanningMessage(plan.getPlanSq());
- if (StringUtils.isNotBlank(inaccessibleMsg)) {
- mav.addObject("inaccessibleMsg", inaccessibleMsg);
- mav.setViewName(super.getDeviceViewName("error/Inaccess"));
- return mav;
- }
- Review review = new Review();
- Coupon coupon = new Coupon();
- plan.setSiteCd(TscConstants.Site.STYLE24.value());
- plan.setFrontGb(TsfSession.getFrontGb());
- plan.setCustGb(TsfSession.getCustGb());
- plan.setCustNo(TsfSession.isLogin() ? TsfSession.getInfo().getCustNo() : 0);
- // 기본 set
- plan.setExceptPlanSq(plan.getPlanSq());
- plan.setPlanSq(plan.getPlanSq());
- review.setPlanSq(plan.getPlanSq());
- coupon.setPlanSq(plan.getPlanSq());
- //plan.setSiteCd(TscConstants.Site.STYLE24.value());
- plan.setFrontGb(TsfSession.getFrontGb());
- Plan planInfo = planningService.getPlanDetailInfo(plan);
- mav.addObject("planInfo", planInfo);
- mav.addObject("planCount", planningService.getPlanAllCount(plan));
- // 상단소스
- plan.setFrontGb("T");
- mav.addObject("fsrcInfoTop", planningService.getPlanFsrcInfo(plan));
- // 하단소스
- plan.setFrontGb("B");
- mav.addObject("fsrcInfoBtm", planningService.getPlanFsrcInfo(plan));
- // 템플릿 순서
- mav.addObject("templateOrd", planningService.templateDispOrdInfo(plan));
- // 리뷰
- mav.addObject("reviewInfo", planningService.getPlanReviewInfo(review));
- // 쿠폰
- mav.addObject("couponInfo", planningService.getPlanCouponInfo(coupon));
- // 이미지
- mav.addObject("imageInfo", planningService.getPlanImageInfo(plan));
- // 상품1열 전시
- plan.setTmplType("G082_50");
- mav.addObject("goods1Info", planningService.getPlanGoods1Info(plan));
- // 상품2열 전시
- plan.setTmplType("G082_51");
- mav.addObject("goods2Info", planningService.getPlanGoods1Info(plan));
- //상품4열 전시
- plan.setTmplType("G082_52");
- mav.addObject("goods4Info", planningService.getPlanGoods1Info(plan));
- // 다른기획전 보기
- mav.addObject("planList", planningService.getPlanningList(plan));
- //
- // mav.addObject("couponList", planningService.getPlusCouponList(plan));
- //
- // // 기획전 상세 및 코너 목록
- // mav.addObject("planCornerList", planningService.getPlanCornerList(plan));
- //
- // // 특가세일 기준
- // mav.addObject("specialPriceSaleRate", policyService.getSpecialPriceSaleDisplayRate(TsfConstants.SITE_CD));
- //
- // if ("E".equals(planInfo.getPlanGb())) { // 기획전 일 떄
- // if (planInfo.getPrivacyPolicy() != null && !planInfo.getPrivacyPolicy().equals("")) {
- // mav.addObject("planQuestionList", planningService.getPlanQuestionList(plan));
- // }
- // }
- // Popup Parameter
- mav.addObject("preview", plan.getPreview());
- mav.addObject("viewDt", plan.getViewDt());
- mav.addObject("viewPage", "G037_40");
- mav.addObject("popupPlanSq", plan.getPlanSq());
- mav.setViewName(super.getDeviceViewName("planning/PlanningDetailForm"));
- return mav;
- }
- /**
- * 기획전 쿠폰 다운로드. 고객이 상품쿠폰 다운로드 시 발급됨.
- *
- * @param params
- * @return
- * @throws Exception
- * @author sowon
- * @since 2021. 3. 24.
- */
- @PostMapping(value = "/coupon/download")
- @ResponseBody
- public GagaMap createPlanCoupon(@RequestBody Coupon coupon) throws Exception {
- GagaMap result = new GagaMap();
- // 고객정보 조회
- Customer customer = new Customer();
- customer.setSiteCd(TscConstants.Site.STYLE24.value());
- customer.setCustNo(TsfSession.getInfo().getCustNo());
- customer.setCustStat(TscConstants.CustStat.ACTIVE.value());
- customer = coreCustomerService.getCustomerInfo(customer);
- // 고객정보 설정
- coupon.setCustGb(customer.getCustGb());
- coupon.setCustGrade(customer.getCustGrade());
- coupon.setCustNo(customer.getCustNo());
- // 등급쿠폰 다운 처리
- int count = planningService.getPlanCouponDownInfo(coupon);
- result.set("status", GagaResponseStatus.SUCCESS.getCode());
- if (count == 0) {
- result.set("message", message.getMessage("COUPON_0002"));
- } else {
- result.set("message", message.getMessage("COUPON_0001", new Object[] {count}));
- }
- return result;
- }
- /**
- * 이벤트 메인 화면
- *
- * @return
- * @author sowon
- * @since 2021. 3. 8
- */
- @GetMapping("/event/main/form")
- public ModelAndView PlanningEventMainForm(Plan plan) throws Exception {
- ModelAndView mav = new ModelAndView();
- plan.setSiteCd(TscConstants.Site.STYLE24.value());
- plan.setFrontGb(TsfSession.getFrontGb());
- mav.setViewName(super.getDeviceViewName("planning/PlanningEventMainForm"));
- return mav;
- }
- /**
- * 이벤트 메인 목록
- * @param plan - 이벤트 정보
- * @return
- * @author sowon
- * @since 2021. 3. 29
- */
- @GetMapping("/event/main/list")
- @ResponseBody
- public Collection<Plan> getPlanningEventMainList(Plan plan) {
- plan.setSiteCd(TscConstants.Site.STYLE24.value());
- plan.setFrontGb(TsfSession.getFrontGb());
- plan.setCustGb(TsfSession.getCustGb());
- plan.setCustNo(TsfSession.isLogin() ? TsfSession.getInfo().getCustNo() : 0);
- return planningService.getPlanEventList(plan);
- }
-
- /**
- * 총알배송 메인 화면
- *
- * @return
- * @author sowon
- * @since 2021. 3. 30
- */
- @GetMapping("/shot/delivery/guide/form")
- public ModelAndView planningShotDeliveryForm(Plan plan) throws Exception {
- ModelAndView mav = new ModelAndView();
- plan.setSiteCd(TscConstants.Site.STYLE24.value());
- plan.setFrontGb(TsfSession.getFrontGb());
- mav.addObject("shotHtml", planningService.getShotDeliveryHtml(plan));
- mav.setViewName(super.getDeviceViewName("planning/PlanningShotGuideForm"));
- return mav;
- }
- }
|