사용자 음악파일 설정 작업중-2

dev_bert
jonghwan76 3 years ago
parent 9eba3d6b2c
commit 67d355ea4c

@ -69,9 +69,17 @@ CREATE TABLE `tbl_music` (
`member_id` varchar(30) DEFAULT NULL COMMENT '회원아이디',
`music_file_path` varchar(255) DEFAULT NULL COMMENT '음악파일위치',
`music_name` varchar(255) DEFAULT NULL COMMENT '음악파일명',
`reg_dt` datetime DEFAULT NULL COMMENT '등록일자',
`mot_dt` datetime DEFAULT NULL COMMENT '수정일자',
`reg_dt` datetime DEFAULT NULL COMMENT '등록일자'
PRIMARY KEY (`idx`),
UNIQUE KEY `idx` (`idx`)
) ENGINE=InnoDB DEFAULT CHARSET=euckr COMMENT='음악설정';
-- 음악기본파일 테이블 추가
CREATE TABLE `tbl_music_basic` (
`idx` int(11) NOT NULL AUTO_INCREMENT,
`music_file_path` varchar(255) DEFAULT NULL COMMENT '음악파일위치',
`music_name` varchar(255) DEFAULT NULL COMMENT '음악파일명',
`reg_dt` datetime DEFAULT NULL COMMENT '등록일자',
PRIMARY KEY (`idx`),
UNIQUE KEY `idx` (`idx`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=euckr COMMENT='음악기본파일';

@ -95,6 +95,7 @@ public class ConstantSystem {
public static String API_KEY = "";
public static String API_SENDNUM = "";
public static String MUSIC_PATH = "";
public static final String M_KEY = "376d69737379787568616e6765a65a61";
@ -133,6 +134,8 @@ public class ConstantSystem {
API_KEY = PropertyUtil.getProperty(PROPERTIES_FILE, "sms.api_key");
API_SENDNUM = PropertyUtil.getProperty(PROPERTIES_FILE, "sms.api_sendnum");
MUSIC_PATH = PropertyUtil.getProperty(PROPERTIES_FILE, "file.music_path");
SERVER_NAME_SHORT_URL = SERVER_NAME + "/c/"; //
}

@ -19,4 +19,5 @@ public interface M_LoginBO {
int update_member(DataMap paramMap) throws Exception;
public abstract Object insert_member(DataMap paramMap) throws Exception;
public abstract Object insert_member_music(DataMap paramMap) throws Exception;
}

@ -111,7 +111,7 @@ public class M_LoginBOImpl extends AbstractBOManager implements M_LoginBO {
return result;
}
public Object insert_member(DataMap paramMap) throws Exception{
Object resultObj = null;
@ -148,5 +148,24 @@ public class M_LoginBOImpl extends AbstractBOManager implements M_LoginBO {
}
return resultObj;
}
}
public Object insert_member_music(DataMap paramMap) throws Exception{
Object resultObj = null;
try {
generalDAO.setNamespace(SQLMAP_NAMESPACE);
generalDAO.startTransaction();
resultObj = generalDAO.insert("insert_member_music", paramMap);
generalDAO.commitTransaction();
} catch (SQLException e) {
throw e;
}finally{
generalDAO.endTransaction();
}
return resultObj;
}
}

@ -396,7 +396,8 @@ public class M_LoginController extends AbstractControllerManager{
//해당 이메일로 가입된 회원이 없을 경우 회원가입 3단계로 이동
if(RenaStringUtil.isNullOrEmpty(rm_mem)) {
// 회원 가입
Object obj = loginBO.insert_member(paramMap);
Object obj1 = loginBO.insert_member(paramMap);
Object obj2 = loginBO.insert_member_music(paramMap);
session.setAttribute(M_Util.SESSION_RM_MEMBER, paramMap); //회원가입정보 세션에 세팅(member_id, password)
// String phone_num = RenaStringUtil.getData(paramMap, "email");

@ -647,17 +647,17 @@ public class M_Member_envController extends AbstractControllerManager{
@RequestMapping(value = "/saveMusicFile", method = RequestMethod.POST)
@ResponseBody
public Map<String, Object> saveMusicFile(MultipartHttpServletRequest request) {
log.info("------- saveMusicFile -------------- ");
HashMap<String, Object> result = new HashMap<String, Object>();
result.put("RESULT", ConstantResultCode.RESULT_INIT);
M_Util gmUtil = new M_Util();
HttpSession session = request.getSession(false);
String delList = request.getParameter("delList"); //삭제 음악파일 목록(콤마구분)
String modList = request.getParameter("modList"); //수정 음악파일 목록(콤마구분)
List<MultipartFile> fileList = request.getFiles("file[]"); //파일 목록
String path = "e:/bf/music/"; //업로드 경로 -> 추후 프로퍼티로 빼야함.
List<MultipartFile> fileList = request.getFiles("file"); //파일 목록
String path = ConstantSystem.MUSIC_PATH; //업로드 경로 -> 추후 프로퍼티로 빼야함.
String nFileName = gmUtil.getUniqueNumber(); //업로드 파일명
int idx = 0;
@ -670,20 +670,38 @@ public class M_Member_envController extends AbstractControllerManager{
try {
int uploadResultCnt = 0;
//삭제 목록이 있다면
if(delList != null) {
log.info("delList:" + delList);
String delListArr[] = delList.split(",");
for(int i=0;i<delListArr.length;i++) {
DataMap paramMap = new DataMap();
paramMap.put("idx", delListArr[i]);
//음악정보 DB 삭제
int result1 = member_envBO.delete_tbl_music(paramMap);
}
}
log.info("fileList size : " + fileList.size());
for (MultipartFile mf : fileList) {
idx = idx + 1;
String originFileName = mf.getOriginalFilename(); // 원본 파일 명
String fileType = originFileName.substring(originFileName.lastIndexOf(".") + 1);
String saveFileName = nFileName + "_" + idx + "." + fileType; //저장된 음악 파일명
String filePath = path + "/" + rm_mem.get("member_id"); //저장파일 위치
String filePath = path + rm_mem.get("member_id"); //저장파일 위치
mf.transferTo(new File(filePath, saveFileName));
log.info(originFileName);
DataMap paramMap = new DataMap();
paramMap.put("member_id", rm_mem.get("member_id"));
paramMap.put("music_file_path", filePath);
paramMap.put("music_file_path", rm_mem.get("member_id") + "/" + saveFileName);
paramMap.put("music_name", originFileName);
//작업기준정보 DB 등록
//음악정보 DB 등록
int result1 = member_envBO.insert_tbl_music(paramMap);
uploadResultCnt++;
}

@ -52,6 +52,8 @@ sms.api_id=gaonn0509
sms.api_key=040ec316ad13c59031b5c4c30cdec923
sms.api_sendnum=02-363-5123
file.music_path=e:/bf/music/
mysql_driver=net.sf.log4jdbc.DriverSpy
mysql_url=jdbc:log4jdbc:mysql://devops.lookylooks.ai:14236/babyfeed
mysql_username=imcloud

@ -159,7 +159,24 @@
WHERE member_id = #member_id#
</update>
<insert id="insert_member" parameterClass="dataMap">
<insert id="insert_member_music" parameterClass="dataMap">
INSERT INTO tbl_music
(
member_id,
music_file_path,
music_name,
reg_dt
)
SELECT
#member_id#,
music_file_path,
music_name,
now()
FROM
tbl_music_basic;
</insert>
<insert id="insert_member" parameterClass="dataMap">
INSERT tbl_member
(
reg_dt

@ -153,7 +153,7 @@
<!-- 음악 파일 삭제 -->
<insert id="delete_tbl_music" parameterClass="dataMap">
DELETE FROM tbl_music WHERE member_id = #member_id# and idx = #idx#
DELETE FROM tbl_music WHERE idx = #idx#
</insert>
<!-- 자주쓰는 표현 삭제 -->

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/">
<Resources>
<PostResources base="e:\bf\music" className="org.apache.catalina.webresources.DirResourceSet" webAppMount="/upload"/>
<!-- <PostResources base="e:\bf\music" className="org.apache.catalina.webresources.DirResourceSet" webAppMount="/upload"/>-->
</Resources>
</Context>

@ -14,68 +14,70 @@
</h2>
</header>
<div class="cont">
<form id="frmUpdate" name="frmUpdate" method="post">
<form id="frmUpdate" name="frmUpdate" method="post" ecntype="multipart/form-data" onsubmit="return false">
<input type="hidden" id="delList" name="delList" value="">
<div class="set_list_wrap">
<#list model['music_list'] as item>
<div name="list_item" class="list_item item_order">
<span class="fileSpan" style="display:none">
<input type="file" name="attachFile">
</span>
<label class="radio-label">${item['music_name']!}</label>
<input type="button" onclick="fncModify(this)" value="수정">
<input type="button" onclick="fncRemove(this)" value="삭제">
<input type="hidden" name="music_list" value="${URL_ROOT}/upload/${item['music_file_path']!}">
<input type="button" key="${item['idx']!}" onclick="fncRemove(this)" value="삭제">
</div>
</#list>
</div>
<input type="button" value="추가" onclick="fncAddItem()">
<button type="submit" id="" name="" class="btns blue_btn">저장</button>
<button type="button" onclick="fncSave()" id="" name="" class="btns blue_btn">저장</button>
</form>
</div>
<#include "/m/include/index_bottom_info.ftl">
<audio src="${URL_ROOT}/upload/1645858397889/20220226172458931003_1.mp3" controls id="audio_control" onended="fncNextPlay()">
<#-- <source type="audio/mp3"></source>-->
</audio>
<#include "/m/include/index_bottom_info.ftl">
</main>
</div>
<script>
var env = {
is_loading: false,
var delList = "";
var music_idx = 0;
$("#audio_control").attr("src", $("input[name='music_list']").eq(0).val());
function fncNextPlay() {
$("#audio_control").get(0).src = $("input[name='music_list']").eq(music_idx).val();
$("#audio_control").get(0).play();
init: function(){
$('#frmUpdate').on('submit',function(e){
if(this.is_loading) {
e.preventDefault()
return;
if( music_idx >= $("input[name='music_list']").length-1) {
music_idx = 0;
} else {
music_idx++;
}
}
function fncSave() {
var formData = new FormData($("#frmUpdate")[0]);
var delList = $("#delList").val();
if(delList.length > 0) {
$("#delList").val( delList.substring(0, delList.length-1) );
}
$.ajax({
url: "${URL_ROOT}/m/member_env/saveMusicFile.do",
processData: false,
contentType: false,
data: formData,
type: 'POST',
async : false,
success: function(response){
Swal.fire({text: '저장 되었습니다.'}).then((result)=>{ location.reload(); })
// callback(response);
}
var data = $('#frmUpdate').serialize()
$.ajax({
url:'${URL_ROOT}/m/member_env/ajax_update_favorite_word.do',
type: 'post',
data: data,
dataType: 'json',
error:function(request,status,error){
this.is_loading = false
Swal.fire({text: '오류가 발생했습니다'})
e.preventDefault()
return;
}.bind('this'),
success:function(result){
// console.log(result)
this.is_loading = false
var RESULT = result.RESULT
if(RESULT == "1") {
Swal.fire({text: '정상적으로 수정되었습니다.'});
}
}.bind('this'),
})
e.preventDefault()
return;
})
});
}
}
$(function(){
env.init()
})
@ -89,7 +91,7 @@
}
$(".set_list_wrap").append("<div class='list_item'>" +
"<input type='file' name='attachFile'>")
"<input type='file' onchange='fn_M_my_fileSave(this);' name='file'>")
}
function fncModify(e) {
@ -97,8 +99,33 @@
}
function fncRemove(e) {
delList += $(e).attr("key") + ",";
$(e).parent().remove();
$("#delList").val(delList);
}
// 동영상 업로드 파일 DB에 저장하기
function fn_M_my_fileSave(th) {
try {
var name = $(th)[0].files[0].name;
var ext = name.split('.').pop().toLowerCase();
if($.inArray(ext, ['mp3','mp4']) == -1) {
Swal.fire({text: '음약 파일(mp3)을 업로드 해 주세요.'}).then((result)=>{ $(th).parent().remove(); })
return;
}
var size = $(th)[0].files[0].size;
var size2 = Number(size)/(1024*1024);
if(size2 > 7){
Swal.fire({text: '7M 이하 파일을 업로드 해 주세요.'}).then((result)=>{ $(th).parent().remove(); })
return;
}
} catch (e) { console.log(e); }
}
</script>
<#include "/m/member_env/include_return_url.ftl">

@ -32,4 +32,9 @@
# 세션 회원정보
HttpSession session = request.getSession(false);
DataMap rm_mem = (DataMap) session.getAttribute(ConstantSystem.SESSION_RM_MEMBER);
paramMap.put("member_id", rm_mem.get("member_id"));
paramMap.put("member_id", rm_mem.get("member_id"));
# 클라우드 디비정보(로컬 개발용)
mysql_url=jdbc:log4jdbc:mysql://115.85.181.214:3306/babyfeed
mysql_username=root
mysql_password=123qwe!@#
Loading…
Cancel
Save