Просмотр исходного кода

총알배송 영업일 관리 추가

gagamel 4 лет назад
Родитель
Сommit
fd7ac72220

+ 34 - 0
src/main/java/com/style24/admin/biz/dao/TsaBusinessDao.java

@@ -359,6 +359,40 @@ public interface TsaBusinessDao {
 	 */
 	void updateBizday(Bizday bizday);
 
+	/**
+	 * 총알배송 휴무일 목록
+	 * @param bizday - 영업일 정보
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 9. 29
+	 */
+	Collection<Bizday> getHoliday2List(Bizday bizday);
+
+	/**
+	 * 총알배송 영업일여부 조회
+	 * @param bizday - 영업일
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 9. 29
+	 */
+	String getBizday2Yn(String bizday);
+
+	/**
+	 * 총알배송 영업일 생성
+	 * @param bizday - 영업일 정보
+	 * @author gagamel
+	 * @since 2021. 9. 29
+	 */
+	void createBizday2(Bizday bizday);
+
+	/**
+	 * 총알배송 영업일 수정 처리
+	 * @param bizday - 영업일 정보
+	 * @author gagamel
+	 * @since 2021. 9. 29
+	 */
+	void updateBizday2(Bizday bizday);
+
 	/**
 	 * 총알배송 브랜드 등록
 	 * @param brand - 브랜드 정보

+ 34 - 0
src/main/java/com/style24/admin/biz/service/TsaBusinessService.java

@@ -576,4 +576,38 @@ public class TsaBusinessService {
 		}
 	}
 
+	/**
+	 * 총알배송 휴무일 목록
+	 * @param bizday - 영업일 정보
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 9. 29
+	 */
+	public Collection<Bizday> getHoliday2List(Bizday bizday) {
+		return businessDao.getHoliday2List(bizday);
+	}
+
+	/**
+	 * 총알배송 영업일 저장 처리
+	 * @param
+	 * @return
+	 * @author jaewonHo
+	 * @since 2019. 12. 13
+	 */
+	@Transactional("shopTxnManager")
+	public void saveBizday2(Bizday bizday) {
+		bizday.setRegNo(TsaSession.getInfo().getUserNo());
+		bizday.setUpdNo(TsaSession.getInfo().getUserNo());
+
+		String bizdayYn = businessDao.getBizday2Yn(bizday.getBizday());
+
+		if (StringUtils.isEmpty(bizdayYn)) {
+			// 영업일여부 값이 없으면 신규로 등록
+			businessDao.createBizday2(bizday);
+		} else {
+			bizday.setBizdayYn(bizdayYn);
+			businessDao.updateBizday2(bizday);
+		}
+	}
+
 }

+ 42 - 0
src/main/java/com/style24/admin/biz/web/TsaBusinessController.java

@@ -890,6 +890,48 @@ public class TsaBusinessController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0009"));
 	}
 
+	/**
+	 * 총알배송 영업일관리 화면
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 9. 29
+	 */
+	@GetMapping("/bizday2/form")
+	public ModelAndView bizday2Form() {
+		ModelAndView mav = new ModelAndView();
+
+		mav.setViewName("business/Bizday2Form");
+
+		return mav;
+	}
+
+	/**
+	 * 총알배송 휴무일 목록
+	 * @param bizday - 영업일 정보
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 9. 29
+	 */
+	@GetMapping("/holiday2/list")
+	@ResponseBody
+	public Collection<Bizday> getHoliday2List(Bizday bizday) {
+		return businessService.getHoliday2List(bizday);
+	}
+
+	/**
+	 * 총알배송영업일 저장
+	 * @param bizday - 영업일 정보
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 9. 29
+	 */
+	@PostMapping("/bizday2/save")
+	@ResponseBody
+	public GagaResponse saveBizday2(@RequestBody Bizday bizday) {
+		businessService.saveBizday2(bizday);
+		return super.ok(message.getMessage("SUCC_0009"));
+	}
+
 	/**
 	 * 계좌인증
 	 *

+ 83 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsaBusiness.xml

@@ -1187,7 +1187,7 @@
 
 	<!-- 영업일 생성 -->
 	<insert id="createBizday" parameterType="Bizday">
-		/*  TsaBusiness.saveBizday */
+		/*  TsaBusiness.createBizday */
 		INSERT INTO TB_BIZDAY (
 		       BIZDAY
 		     , WEEK_DAY
@@ -1245,6 +1245,88 @@
 		WHERE  BIZDAY = #{bizday}
 	</insert>
 	
+	<!-- 총알배송 휴무일 목록 -->
+	<select id="getHoliday2List" parameterType="Bizday" resultType="Bizday">
+		/* TsaBusiness.getHoliday2List */
+		SELECT DATE_FORMAT(BIZDAY,'%Y-%m-%d') AS BIZDAY /*영업일*/
+		     , WEEK_DAY                                 /*요일*/
+		     , BIZDAY_YN                                /*영업일여부*/
+		     , RESTDAY_DESC                             /*휴무일설명*/
+		FROM   TB_BIZDAY2
+		WHERE  1= 1
+		AND    BIZDAY <![CDATA[>=]]> #{startDt}
+		AND    BIZDAY <![CDATA[<]]> #{endDt}
+		AND    BIZDAY_YN = 'N' /*영업일이 아닌 넘만*/
+	</select>
+	
+	<!-- 총알배송 영업일여부 조회 -->
+	<select id="getBizday2Yn" parameterType="String" resultType="String">
+		/* TsaBusiness.getBizday2Yn */
+		SELECT BIZDAY_YN
+		FROM   TB_BIZDAY2
+		WHERE  BIZDAY = #{bizday}
+	</select>
+
+	<!-- 총알배송 영업일 생성 -->
+	<insert id="createBizday2" parameterType="Bizday">
+		/*  TsaBusiness.createBizday2 */
+		INSERT INTO TB_BIZDAY2 (
+		       BIZDAY
+		     , WEEK_DAY
+		     , BIZDAY_YN
+		     , RESTDAY_DESC
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT
+		)
+		VALUES (
+		       #{bizday}
+		     , CASE DAYOFWEEK(#{bizday})
+		            WHEN 1 THEN '일'
+		            WHEN 2 THEN '월'
+		            WHEN 3 THEN '화'
+		            WHEN 4 THEN '수'
+		            WHEN 5 THEN '목'
+		            WHEN 6 THEN '금'
+		            WHEN 7 THEN '토'
+		       END
+		     , CASE DAYOFWEEK(#{bizday})
+		            WHEN 1 THEN 'N'
+		            WHEN 2 THEN 'Y'
+		            WHEN 3 THEN 'Y'
+		            WHEN 4 THEN 'Y'
+		            WHEN 5 THEN 'Y'
+		            WHEN 6 THEN 'Y'
+		            WHEN 7 THEN 'N'
+		       END
+		     , CASE DAYOFWEEK(#{bizday})
+		            WHEN 1 THEN '휴일'
+		            WHEN 2 THEN NULL
+		            WHEN 3 THEN NULL
+		            WHEN 4 THEN NULL
+		            WHEN 5 THEN NULL
+		            WHEN 6 THEN NULL
+		            WHEN 7 THEN '휴일'
+		       END
+		     , #{regNo}
+		     , NOW()
+		     , #{updNo}
+		     , NOW()
+		)
+	</insert>
+	
+	<!-- 총알배송 영업일 수정 -->
+	<insert id="updateBizday2" parameterType="Bizday">
+		/*  TsaBusiness.updateBizday2 */
+		UPDATE TB_BIZDAY2
+		SET    BIZDAY_YN = (CASE WHEN #{bizdayYn} = 'Y' THEN 'N' ELSE 'Y' END)
+		     , RESTDAY_DESC = (CASE WHEN #{bizdayYn} = 'Y' THEN '휴일' ELSE NULL END)
+		     , UPD_NO = #{updNo}
+		     , UPD_DT = NOW()
+		WHERE  BIZDAY = #{bizday}
+	</insert>
+	
 	<!-- 총알배송 브랜드 등록 -->
 	<insert id="createShotDelvBrand" parameterType="Brand">
 		/*  TsaBusiness.createShotDelvBrand */

+ 152 - 0
src/main/webapp/WEB-INF/views/business/Bizday2Form.html

@@ -0,0 +1,152 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : Bizday2Form.html
+ * @desc    : 총알배송영업일관리 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.09.29   gagamel     최초 작성
+ *******************************************************************************
+ -->
+	<link rel="stylesheet" href="/ux/plugins/fullcalendar/fullcalendar-4.2.0.css"/>
+	
+	<div id="main">
+		<!-- 메인타이틀 영역 -->
+		<div class="main-title">
+		</div>
+		<!-- //메인타이틀 영역 -->
+		
+		<!-- 메뉴 설명 -->
+		<div class="infoBox menu-desc">
+		</div>
+		<!-- //메뉴 설명 -->
+		
+		<div class="panelStyle">
+			<ul class="notice">
+				<li><strong class="cBlue">영업일 : </strong>휴일을 클릭하시면 영업일로 변경됩니다.</li>
+				<li><strong class="cRed">휴무일 : </strong>영업일을 클릭하시면 휴무일로 변경됩니다.</li>
+			</ul>
+			
+			<!-- FULLCALENDAR -->
+			<div id="calendar"></div>
+			<!-- //FULLCALENDAR -->
+		</div>
+	</div>
+	
+	<form id="calendarForm" name="calendarForm">
+		<input type="hidden" name="startDt" id="startDt"/>
+		<input type="hidden" name="endDt" id="endDt"/>
+		<input type="hidden" name="bizday" id="bizday"/>
+	</form>
+
+<script type="text/javascript" src="/ux/plugins/fullcalendar/fullcalendar-4.2.0.js"></script>
+<script th:inline="javascript">
+/*<![CDATA[*/
+	// 해당월의 시작일, 마지막일 설정
+	var setViewDate = function(date) {
+		var dt = [];
+		dt[0] = (new Date(date.startStr)).format('YYYYMMDD');
+		dt[1] = (new Date(date.endStr)).format('YYYYMMDD');
+		return dt;
+	}
+	
+	// 휴일,영업일 업데이트(저장)
+	var fnUpdateBizday = function(day ,arg) {
+		var start = "";
+		var end = "";
+		$('#calendarForm input[name=bizday]').val("");
+		
+		if (day == 'Holiday') {
+			var bizday = (new Date(arg.start)).format('YYYYMMDD');
+			$('#calendarForm input[name=bizday]').val(bizday);
+			
+			gagajf.ajaxFormSubmit('/business/bizday2/save', '#calendarForm', function() {
+				calendar.addEvent({
+					title: '휴일',
+					start: arg.start,
+					end: arg.end,
+					allDay: arg.allDay
+				});
+			});
+		} else {
+			var bizday = (new Date(arg.event.start)).format('YYYYMMDD');
+			$('#calendarForm input[name=bizday]').val(bizday);
+			
+			gagajf.ajaxFormSubmit('/business/bizday2/save', '#calendarForm', function() {
+				arg.event.remove();
+			});
+		}
+	}
+	
+	// 캘린더 생성
+	var calendar;
+	var fnCreateCalendar = function() {
+		var calendarEl = document.getElementById('calendar');
+		
+		calendar = new FullCalendar.Calendar(calendarEl, {
+			plugins: [ 'interaction', 'dayGrid' ],
+			locale: 'ko', // 한글화
+// 			weekNumberCalculation: 'ISO', //월~일 순서로
+			selectable: true,
+			editable: true,
+			eventLimit: true, // allow "more" link when too many events
+
+			select: function(arg) {
+				if ((new Date(arg.end)).format('YYYYMMDD') - (new Date(arg.start)).format('YYYYMMDD') > 1) return;
+				var title ='휴일';
+				
+				mcxDialog.confirm("휴일로 변경하시겠습니까?", {
+					cancelBtnText: "취소",
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						fnUpdateBizday('Holiday', arg);
+					}
+				});
+				calendar.unselect();
+			},
+
+			// 영업일로 변경 -----
+			eventClick: function(arg) {
+				mcxDialog.confirm("영업일로 변경하시겠습니까?", {
+					cancelBtnText: "취소",
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						fnUpdateBizday('Bizday', arg);
+					}
+				});
+			},
+
+			events: function(info, callback) {
+				var dt = setViewDate(info);
+				$('#calendarForm input[name=startDt]').val(dt[0]);
+				$('#calendarForm input[name=endDt]').val(dt[1]);
+				$.get('/business/holiday2/list' + '?' + $('#calendarForm').serialize()
+					, function(data) {
+						var events = [];
+						for (var i = 0 ; i < data.length ; i++) {
+							events.push({
+								title : (gagajf.isNull(data[i].restdayDesc) ? '' : data[i].restdayDesc),
+								start : data[i].bizday
+							});
+						}
+						callback(events);
+					});
+			}
+		});
+		
+		calendar.render();
+	}
+
+	$(document).ready(function() {
+		fnCreateCalendar();
+	});
+/*]]>*/
+</script>
+
+</html>