This commit is contained in:
name 2023-08-09 15:19:23 +09:00
commit 9b71ab859f
13 changed files with 161 additions and 15 deletions

View File

@ -44,7 +44,7 @@ public interface MberGrdService {
public void insertMberGrd(MberGrdVO mberGrdVO) throws Exception;
// 회원별 등급 수정
public void updateMberGrd(MberGrdVO mberGrdVO) throws Exception;
public void updateMberGrdOk(MberGrdVO mberGrdVO) throws Exception;
// 회원별 등급 등록 All => 기존대상자 제외
public void insertMberGrdAllByExist(MberGrdVO mberGrdVO) throws Exception;
@ -82,6 +82,9 @@ public interface MberGrdService {
// 회원별 등급 적용
public void mberGrdSaveByUser(MberGrdVO mberGrdVO) throws Exception;
// 회원별 등급 적용(로그인시 사용 => 히스토리 저장 제외)
public void mberGrdSaveByUserNoHist(MberGrdVO mberGrdVO) throws Exception;
// 회원별 등급제 대상여부
int selectMberGrdCnt(String mberId) throws Exception;

View File

@ -69,8 +69,8 @@ public class MberGrdDAO extends EgovAbstractDAO {
}
// 회원별 등급 수정
public void updateMberGrd(MberGrdVO mberGrdVO) throws Exception{
update("mberGrdDAO.updateMberGrd", mberGrdVO);
public void updateMberGrdOk(MberGrdVO mberGrdVO) throws Exception{
update("mberGrdDAO.updateMberGrdOk", mberGrdVO);
}
// 회원별 등급 등록 All => 기존대상자 제외

View File

@ -153,8 +153,8 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
// 회원별 등급 수정
@Override
public void updateMberGrd(MberGrdVO mberGrdVO) throws Exception {
mberGrdDAO.updateMberGrd(mberGrdVO);
public void updateMberGrdOk(MberGrdVO mberGrdVO) throws Exception {
mberGrdDAO.updateMberGrdOk(mberGrdVO);
}
// 회원별 등급 등록 All => 기존대상자 제외
@ -303,7 +303,7 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
MberGrdVO mberGrdVO5 = new MberGrdVO();
mberGrdVO5 = selectMberGrdDetail(mberGrdVO);
if (null != mberGrdVO5) {
updateMberGrd(mberGrdVO);
updateMberGrdOk(mberGrdVO);
// 회원별 등급 히스토리 인서트
insertMberGrdHist(mberGrdVO);
@ -331,6 +331,77 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG
*/
}
// 회원별 등급 적용(로그인시 사용 => 히스토리 저장 제외)
@Override
public void mberGrdSaveByUserNoHist(MberGrdVO mberGrdVO) throws Exception {
/*
try {
// 현재 날짜 구하기
LocalDate now = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 포맷 정의
String nowDate = now.format(formatter); // 포맷 적용
mberGrdVO.setRegId(mberGrdVO.getMberId());
mberGrdVO.setEditId(mberGrdVO.getMberId());
// Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우)
MberGrdVO mberGrdVO1 = new MberGrdVO();
mberGrdVO1 = selectMberSettingDetail(mberGrdVO);
if (mberGrdVO1.getGrdNoti().equals("Y")) {
mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate());
// Step 2. 문자할인, B선라인, 스팸회원 대상자 제외
int isMberGrd = selectMberGrdCnt(mberGrdVO.getMberId()); // 등급제 대상여부(1: 대상, 0: 미대상)
if(isMberGrd == 1) {
// Step 3. 누적결제금액(이벤트금액 제외) 추출 등급 조회
MberGrdVO mberGrdVO3 = new MberGrdVO();
mberGrdVO3 = selectMberGrdAmtDetail(mberGrdVO);
if (null != mberGrdVO3) {
mberGrdVO.setTotAmt(mberGrdVO3.getTotAmt());
mberGrdVO.setGrdSetNo(mberGrdVO3.getGrdSetNo());
// Step 4. 등급제 설정값 조회
MberGrdVO mberGrdVO4 = new MberGrdVO();
mberGrdVO4 = selectMberGrdSettingDetail(mberGrdVO);
if (null != mberGrdVO4) {
mberGrdVO.setAmt(mberGrdVO.getAmt());
mberGrdVO.setTotAmt(mberGrdVO.getTotAmt());
mberGrdVO.setShortPrice(mberGrdVO4.getShortPrice());
mberGrdVO.setLongPrice(mberGrdVO4.getLongPrice());
mberGrdVO.setPicturePrice(mberGrdVO4.getPicturePrice());
mberGrdVO.setPicture2Price(mberGrdVO4.getPicture2Price());
mberGrdVO.setPicture3Price(mberGrdVO4.getPicture3Price());
mberGrdVO.setGrdDate(mberGrdVO.getGrdDate());
mberGrdVO.setGrdStartDate(nowDate + " 00:00:00");
mberGrdVO.setGrdEndDate("9999:12:31 23:59:59");
mberGrdVO.setGrdStatus("Y");
// Step 5. 인서트 Or 업데이트
MberGrdVO mberGrdVO5 = new MberGrdVO();
mberGrdVO5 = selectMberGrdDetail(mberGrdVO);
if (null != mberGrdVO5) {
updateMberGrdOk(mberGrdVO);
}
else {
// 인서트
insertMberGrd(mberGrdVO);
}
}
}
}
}
}
catch (Exception e) {
// Slack 메시지 발송(단순본문)
String msg = "[문자온] " + mberGrdVO.getMberId() + "님 로그인중 회원등급 저장 오류 알림 => 개발팀에게 문의해주세요.";
mjonCommon.sendSimpleSlackMsg(msg);
System.out.println("#############################################################");
System.out.println(mberGrdVO.getMberId() + "님 로그인중 회원등급 저장 오류");
}
*/
}
// 회원별 등급제 대상여부
@Override
public int selectMberGrdCnt(String mberId) throws Exception{

View File

@ -95,6 +95,8 @@ import itn.let.mjo.msgsent.service.MjonMsgSentService;
import itn.let.mjo.msgsent.service.MjonMsgSentVO;
import itn.let.mjo.pay.service.KmcVO;
import itn.let.mjo.pay.service.MjonPayService;
import itn.let.sym.grd.service.MberGrdService;
import itn.let.sym.grd.service.MberGrdVO;
import itn.let.sym.log.clg.service.EgovLoginLogService;
import itn.let.sym.log.clg.service.LoginLog;
import itn.let.sym.mnu.mpm.service.MenuManageJTreeVO;
@ -231,6 +233,9 @@ public class EgovLoginController {
@Resource(name = "mjonPayService")
private MjonPayService mjonPayService;
@Resource(name = "mberGrdService")
MberGrdService mberGrdService;
private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class);
/* 문자온 사용자 로그인 시작 */
@ -1719,6 +1724,15 @@ public class EgovLoginController {
loginService.insertActionLoginLog(loginVO);
}
// 등급제 Start
// 회원별 등급 적용
MberGrdVO mberGrdVO = new MberGrdVO();
mberGrdVO.setMberId(loginVO.getId());
mberGrdVO.setAmt("0");
mberGrdVO.setMoid("");
mberGrdService.mberGrdSaveByUserNoHist(mberGrdVO);
// End
// 이벤트 결제 바로가기 로직 체크 Start
String goEventPay = (String) commandMap.get("goEventPay");
System.out.println("goEventPay : " + goEventPay);

View File

@ -6,6 +6,7 @@ import java.util.List;
import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
@ -199,8 +200,11 @@ public class EgovMypageRESTAPIController{
resultList = apiKeyMngService.selectApiKeyApplyStatus(apiKeyVO);
System.out.println("=============");
if (resultList.size()>0) {
resultList.get(0).setFrstRegistPnttm(DateUtil.getChangFormatS(resultList.get(0).getFrstRegistPnttm()));
resultList.get(0).setLastUpdtPnttm(DateUtil.getChangFormatS(resultList.get(0).getLastUpdtPnttm()));
if(StringUtils.isNotEmpty(resultList.get(0).getFrstRegistPnttm()))
{
resultList.get(0).setFrstRegistPnttm(DateUtil.getChangFormatS(resultList.get(0).getFrstRegistPnttm()));
resultList.get(0).setLastUpdtPnttm(DateUtil.getChangFormatS(resultList.get(0).getLastUpdtPnttm()));
}
model.addAttribute("apiVO", resultList.get(0));

View File

@ -1092,6 +1092,14 @@ public class EgovUserManageController {
//1.시스템 기본 단가 정보 조회하기
JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo();
model.addAttribute("sysShortPrice", sysJoinSetVO.getShortPrice());
model.addAttribute("sysLongPrice", sysJoinSetVO.getLongPrice());
model.addAttribute("sysPicturePrice", sysJoinSetVO.getPicturePrice());
model.addAttribute("sysPicture2Price", sysJoinSetVO.getPicture2Price());
model.addAttribute("sysPicture3Price", sysJoinSetVO.getPicture3Price());
model.addAttribute("sysPicture3Price", sysJoinSetVO.getPicture3Price());
model.addAttribute("sysKakaoAtPrice", sysJoinSetVO.getKakaoAtPrice());
// 등급제 단가 추출 => 시스템 단가에 적용
sysJoinSetVO = mberGrdService.selectMberGrdDefaultInfo(sysJoinSetVO, userId);
@ -2791,7 +2799,30 @@ public class EgovUserManageController {
}
try {
//1.시스템 기본 단가 정보 조회하기
JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo();
// 문자 => 수정하려는 단가가 시스템기본단가와 동일할경우 0으로 세팅
if (Float.compare(sysJoinSetVO.getShortPrice(), mberManageVO.getShortPrice()) == 0) {
if (Float.compare(sysJoinSetVO.getLongPrice(), mberManageVO.getLongPrice()) == 0) {
if (Float.compare(sysJoinSetVO.getPicturePrice(), mberManageVO.getPicturePrice()) == 0) {
if (Float.compare(sysJoinSetVO.getPicture2Price(), mberManageVO.getPicture2Price()) == 0) {
if (Float.compare(sysJoinSetVO.getPicture3Price(), mberManageVO.getPicture3Price()) == 0) {
mberManageVO.setShortPrice(0);
mberManageVO.setLongPrice(0);
mberManageVO.setPicturePrice(0);
mberManageVO.setPicture2Price(0);
mberManageVO.setPicture3Price(0);
}
}
}
}
}
// 알림톡 => 수정하려는 단가가 시스템기본단가와 동일할경우 0으로 세팅
if (Float.compare(sysJoinSetVO.getKakaoAtPrice(), mberManageVO.getKakaoAtPrice()) == 0) {
mberManageVO.setKakaoAtPrice(0);
}
int resultCnt = mberManageService.updateUserPrice(mberManageVO);
if(resultCnt > 0) {

View File

@ -418,7 +418,7 @@
</insert>
<!-- 회원별 등급 수정 -->
<update id="mberGrdDAO.updateMberGrd" parameterClass="mberGrdVO">
<update id="mberGrdDAO.updateMberGrdOk" parameterClass="mberGrdVO">
UPDATE MJ_MBER_GRD_INFO SET
MBER_ID = #mberId#
, GRD_SET_NO = #grdSetNo#
@ -432,6 +432,8 @@
, GRD_DATE = #grdNewDate#
, EDIT_ID = #editId#
, EDIT_DATE = NOW()
, GRD_END_DATE = '9999:12:31 23:59:59'
, GRD_STATUS = 'Y'
WHERE
MBER_ID = #mberId#
</update>
@ -680,6 +682,8 @@
, A.GRD_DATE = CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
, A.EDIT_DATE = NOW()
, A.TEMP_YN = 'Y'
, A.GRD_END_DATE = '9999:12:31 23:59:59'
, A.GRD_STATUS = 'Y'
WHERE A.TEMP_YN = 'N'
AND C.GRD_SET_NO = (SELECT MAX(GRD_SET_NO) FROM MJ_MBER_GRD_SETTING)
]]>

View File

@ -61,6 +61,12 @@ tbody tr td.sms_detail:hover .sms_detail_hover {display:-webkit-box;}
<!-- <script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script> -->
<script type="text/javaScript" language="javascript" defer="defer">
var grdSettingList = []; // 등급별 단가 정보
var sysShortPrice = "${sysShortPrice}";
var sysLongPrice = "${sysLongPrice}";
var sysPicturePrice = "${sysPicturePrice}";
var sysPicture2Price = "${sysPicture2Price}";
var sysPicture3Price = "${sysPicture3Price}";
var sysKakaoAtPrice = "${sysKakaoAtPrice}";
$(document).ready(function(){
console.log('${serverName}');
@ -700,6 +706,18 @@ function fn_userSearch(){
form.submit();
}
// 문자 금액 초기화
function fnPriceReset() {
form = document.msgPriceForm;
form.shortPrice.value = sysShortPrice;
form.longPrice.value = sysLongPrice;
form.picturePrice.value = sysPicturePrice;
form.picture2Price.value = sysPicture2Price;
form.picture3Price.value = sysPicture3Price;
form.kakaoAtPrice.value = sysKakaoAtPrice;
}
//문자발송 금액 변경 처리
function fnPriceUpdate(mberId){
@ -5572,6 +5590,7 @@ function kakaoATDelayCancel(msgGroupId){
</table>
<div class="button_box">
<button type="button" onclick="fnPriceUpdate('<c:out value="${mberManageVO.mberId}"/>'); return false;">금액 변경</button>
<button type="button" onclick="fnPriceReset(); return false;">초기화</button>
</div>
</div>
</div>

View File

@ -24,7 +24,7 @@
</tr>
<tr>
<th>프로토콜</th>
<td>HHTP/1.1</td>
<td>HTTP/1.1</td>
</tr>
<tr>
<th>HOST</th>

View File

@ -24,7 +24,7 @@
</tr>
<tr>
<th>프로토콜</th>
<td>HHTP/1.1</td>
<td>HTTP/1.1</td>
</tr>
<tr>
<th>HOST</th>

View File

@ -23,7 +23,7 @@
</tr>
<tr>
<th>프로토콜</th>
<td>HHTP/1.1</td>
<td>HTTP/1.1</td>
</tr>
<tr>
<th>HOST</th>

View File

@ -23,7 +23,7 @@
</tr>
<tr>
<th>프로토콜</th>
<td>HHTP/1.1</td>
<td>HTTP/1.1</td>
</tr>
<tr>
<th>HOST</th>

View File

@ -25,7 +25,7 @@
//회원아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 mberId와 apiKey 값을 적어서 사용
//실제서비스용
final String mberId = "dudgusw"; //문자온 로그인 아이디
final String apiKey = "0096519c62100b9eea77c040a6045c"; //발급받은 api ke
final String apiKey = "59d8d714ad68ae2e24e3ae2055334e3e"; //발급받은 api ke
//테스트용